1 #ifndef _STROPTS_H 2 #define _STROPTS_H 3 4 #ifdef __cplusplus 5 extern "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 84 struct bandinfo { 85 unsigned char bi_pri; 86 int bi_flag; 87 }; 88 89 struct strbuf { 90 int maxlen; 91 int len; 92 char *buf; 93 }; 94 95 struct strpeek { 96 struct strbuf ctlbuf; 97 struct strbuf databuf; 98 unsigned flags; 99 }; 100 101 struct strfdinsert { 102 struct strbuf ctlbuf; 103 struct strbuf databuf; 104 unsigned flags; 105 int fildes; 106 int offset; 107 }; 108 109 struct strioctl { 110 int ic_cmd; 111 int ic_timout; 112 int ic_len; 113 char *ic_dp; 114 }; 115 116 struct strrecvfd { 117 int fd; 118 int uid; 119 int gid; 120 char __fill[8]; 121 }; 122 123 struct str_mlist { 124 char l_name[FMNAMESZ + 1]; 125 }; 126 127 struct str_list { 128 int sl_nmods; 129 struct str_mlist *sl_modlist; 130 }; 131 132 int isastream(int); 133 int ioctl(int, int, ...); 134 135 #ifdef __cplusplus 136 } 137 #endif 138 139 #endif 140