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