14edb46e9SPaul Traina /* 24edb46e9SPaul Traina * Copyright (c) 1993, 1994, 1995, 1996 34edb46e9SPaul Traina * The Regents of the University of California. All rights reserved. 44edb46e9SPaul Traina * 54edb46e9SPaul Traina * Redistribution and use in source and binary forms, with or without 64edb46e9SPaul Traina * modification, are permitted provided that: (1) source code distributions 74edb46e9SPaul Traina * retain the above copyright notice and this paragraph in its entirety, (2) 84edb46e9SPaul Traina * distributions including binary code include the above copyright notice and 94edb46e9SPaul Traina * this paragraph in its entirety in the documentation or other materials 104edb46e9SPaul Traina * provided with the distribution, and (3) all advertising materials mentioning 114edb46e9SPaul Traina * features or use of this software display the following acknowledgement: 124edb46e9SPaul Traina * ``This product includes software developed by the University of California, 134edb46e9SPaul Traina * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 144edb46e9SPaul Traina * the University nor the names of its contributors may be used to endorse 154edb46e9SPaul Traina * or promote products derived from this software without specific prior 164edb46e9SPaul Traina * written permission. 174edb46e9SPaul Traina * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 184edb46e9SPaul Traina * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 194edb46e9SPaul Traina * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 204edb46e9SPaul Traina * 214edb46e9SPaul Traina * @(#) $Header: os-solaris2.h,v 1.16 96/07/05 22:11:23 leres Exp $ (LBL) 224edb46e9SPaul Traina */ 234edb46e9SPaul Traina 244edb46e9SPaul Traina /* Signal routines are this type */ 254edb46e9SPaul Traina #define SIGRET void 264edb46e9SPaul Traina /* Signal routines use "return SIGRETVAL;" */ 274edb46e9SPaul Traina #define SIGRETVAL 284edb46e9SPaul Traina /* The wait() status variable is this type */ 294edb46e9SPaul Traina #define WAITSTATUS int 304edb46e9SPaul Traina 314edb46e9SPaul Traina #define major(x) ((int)(((unsigned)(x)>>8)&0377)) 324edb46e9SPaul Traina #define minor(x) ((int)((x)&0377)) 334edb46e9SPaul Traina 344edb46e9SPaul Traina /* Prototypes missing in SunOS 5 */ 354edb46e9SPaul Traina int daemon(int, int); 364edb46e9SPaul Traina int dn_expand(u_char *, u_char *, u_char *, u_char *, int); 374edb46e9SPaul Traina int dn_skipname(u_char *, u_char *); 384edb46e9SPaul Traina int getdtablesize(void); 394edb46e9SPaul Traina int gethostname(char *, int); 404edb46e9SPaul Traina char *getusershell(void); 414edb46e9SPaul Traina char *getwd(char *); 424edb46e9SPaul Traina int iruserok(u_int, int, char *, char *); 434edb46e9SPaul Traina #ifdef __STDC__ 444edb46e9SPaul Traina struct utmp; 454edb46e9SPaul Traina void login(struct utmp *); 464edb46e9SPaul Traina #endif 474edb46e9SPaul Traina int logout(const char *); 484edb46e9SPaul Traina int res_query(char *, int, int, u_char *, int); 494edb46e9SPaul Traina int setenv(const char *, const char *, int); 504edb46e9SPaul Traina #if defined(_STDIO_H) && defined(HAVE_SETLINEBUF) 514edb46e9SPaul Traina int setlinebuf(FILE *); 524edb46e9SPaul Traina #endif 534edb46e9SPaul Traina int sigblock(int); 544edb46e9SPaul Traina int sigsetmask(int); 554edb46e9SPaul Traina char *strerror(int); 564edb46e9SPaul Traina int snprintf(char *, size_t, const char *, ...); 574edb46e9SPaul Traina int strcasecmp(const char *, const char *); 584edb46e9SPaul Traina void unsetenv(const char *); 594edb46e9SPaul Traina #ifdef __STDC__ 604edb46e9SPaul Traina struct timeval; 614edb46e9SPaul Traina #endif 624edb46e9SPaul Traina int utimes(const char *, struct timeval *); 634edb46e9SPaul Traina 644edb46e9SPaul Traina /* Solaris signal compat */ 654edb46e9SPaul Traina #ifndef sigmask 664edb46e9SPaul Traina #define sigmask(m) (1 << ((m)-1)) 674edb46e9SPaul Traina #endif 684edb46e9SPaul Traina #ifndef signal 694edb46e9SPaul Traina #define signal(s, f) sigset(s, f) 704edb46e9SPaul Traina #endif 714edb46e9SPaul Traina 724edb46e9SPaul Traina /* Solaris random compat */ 734edb46e9SPaul Traina #ifndef srandom 744edb46e9SPaul Traina #define srandom(seed) srand48((long)seed) 754edb46e9SPaul Traina #endif 764edb46e9SPaul Traina #ifndef random 774edb46e9SPaul Traina #define random() lrand48() 784edb46e9SPaul Traina #endif 794edb46e9SPaul Traina 804edb46e9SPaul Traina #ifndef CBREAK 814edb46e9SPaul Traina #define CBREAK O_CBREAK 824edb46e9SPaul Traina #define CRMOD O_CRMOD 834edb46e9SPaul Traina #define RAW O_RAW 844edb46e9SPaul Traina #define TBDELAY O_TBDELAY 854edb46e9SPaul Traina #endif 864edb46e9SPaul Traina 874edb46e9SPaul Traina #ifndef TIOCPKT_DATA 884edb46e9SPaul Traina #define TIOCPKT_DATA 0x00 /* data packet */ 894edb46e9SPaul Traina #define TIOCPKT_FLUSHREAD 0x01 /* flush packet */ 904edb46e9SPaul Traina #define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ 914edb46e9SPaul Traina #define TIOCPKT_STOP 0x04 /* stop output */ 924edb46e9SPaul Traina #define TIOCPKT_START 0x08 /* start output */ 934edb46e9SPaul Traina #define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ 944edb46e9SPaul Traina #define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ 954edb46e9SPaul Traina #define TIOCPKT_IOCTL 0x40 /* state change of pty driver */ 964edb46e9SPaul Traina #endif 974edb46e9SPaul Traina 984edb46e9SPaul Traina #ifndef STDERR_FILENO 994edb46e9SPaul Traina #define STDERR_FILENO 2 1004edb46e9SPaul Traina #define STDOUT_FILENO 1 1014edb46e9SPaul Traina #define STDIN_FILENO 0 1024edb46e9SPaul Traina #endif 1034edb46e9SPaul Traina 1044edb46e9SPaul Traina #ifndef FD_SET 1054edb46e9SPaul Traina #define FD_SET(n, p) ((p)->fds_bits[0] |= (1<<(n))) 1064edb46e9SPaul Traina #define FD_CLR(n, p) ((p)->fds_bits[0] &= ~(1<<(n))) 1074edb46e9SPaul Traina #define FD_ISSET(n, p) ((p)->fds_bits[0] & (1<<(n))) 1084edb46e9SPaul Traina #define FD_ZERO(p) ((p)->fds_bits[0] = 0) 1094edb46e9SPaul Traina #endif 1104edb46e9SPaul Traina 1114edb46e9SPaul Traina #ifndef S_ISTXT 1124edb46e9SPaul Traina #define S_ISTXT S_ISVTX 1134edb46e9SPaul Traina #endif 114