1#ifndef _STROPTS_H 2#define _STROPTS_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#define __SID ('S' << 8) 9 10#define I_NREAD (__SID | 1) 11#define I_PUSH (__SID | 2) 12#define I_POP (__SID | 3) 13#define I_LOOK (__SID | 4) 14#define I_FLUSH (__SID | 5) 15#define I_SRDOPT (__SID | 6) 16#define I_GRDOPT (__SID | 7) 17#define I_STR (__SID | 8) 18#define I_SETSIG (__SID | 9) 19#define I_GETSIG (__SID |10) 20#define I_FIND (__SID |11) 21#define I_LINK (__SID |12) 22#define I_UNLINK (__SID |13) 23#define I_PEEK (__SID |15) 24#define I_FDINSERT (__SID |16) 25#define I_SENDFD (__SID |17) 26#define I_RECVFD (__SID |14) 27#define I_SWROPT (__SID |19) 28#define I_GWROPT (__SID |20) 29#define I_LIST (__SID |21) 30#define I_PLINK (__SID |22) 31#define I_PUNLINK (__SID |23) 32#define I_FLUSHBAND (__SID |28) 33#define I_CKBAND (__SID |29) 34#define I_GETBAND (__SID |30) 35#define I_ATMARK (__SID |31) 36#define I_SETCLTIME (__SID |32) 37#define I_GETCLTIME (__SID |33) 38#define I_CANPUT (__SID |34) 39 40#define FMNAMESZ 8 41 42#define FLUSHR 0x01 43#define FLUSHW 0x02 44#define FLUSHRW 0x03 45#define FLUSHBAND 0x04 46 47#define S_INPUT 0x0001 48#define S_HIPRI 0x0002 49#define S_OUTPUT 0x0004 50#define S_MSG 0x0008 51#define S_ERROR 0x0010 52#define S_HANGUP 0x0020 53#define S_RDNORM 0x0040 54#define S_WRNORM S_OUTPUT 55#define S_RDBAND 0x0080 56#define S_WRBAND 0x0100 57#define S_BANDURG 0x0200 58 59#define RS_HIPRI 0x01 60 61#define RNORM 0x0000 62#define RMSGD 0x0001 63#define RMSGN 0x0002 64#define RPROTDAT 0x0004 65#define RPROTDIS 0x0008 66#define RPROTNORM 0x0010 67#define RPROTMASK 0x001C 68 69#define SNDZERO 0x001 70#define SNDPIPE 0x002 71 72#define ANYMARK 0x01 73#define LASTMARK 0x02 74 75#define MUXID_ALL (-1) 76 77#define MSG_HIPRI 0x01 78#define MSG_ANY 0x02 79#define MSG_BAND 0x04 80 81#define MORECTL 1 82#define MOREDATA 2 83 84struct bandinfo { 85 unsigned char bi_pri; 86 int bi_flag; 87}; 88 89struct strbuf { 90 int maxlen; 91 int len; 92 char *buf; 93}; 94 95struct strpeek { 96 struct strbuf ctlbuf; 97 struct strbuf databuf; 98 unsigned flags; 99}; 100 101struct strfdinsert { 102 struct strbuf ctlbuf; 103 struct strbuf databuf; 104 unsigned flags; 105 int fildes; 106 int offset; 107}; 108 109struct strioctl { 110 int ic_cmd; 111 int ic_timout; 112 int ic_len; 113 char *ic_dp; 114}; 115 116struct strrecvfd { 117 int fd; 118 int uid; 119 int gid; 120 char __fill[8]; 121}; 122 123struct str_mlist { 124 char l_name[FMNAMESZ + 1]; 125}; 126 127struct str_list { 128 int sl_nmods; 129 struct str_mlist *sl_modlist; 130}; 131 132int isastream(int); 133int ioctl(int, int, ...); 134 135#ifdef __cplusplus 136} 137#endif 138 139#endif 140