master
  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