blob: 3ba37aa40c6c282286bc25e2d7a0b25983153b9d [file] [log] [blame]
Viet-Trung Luu96b05c12016-01-11 11:26:36 -08001#ifndef _STROPTS_H
2#define _STROPTS_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
George Kulakowski17e3b042016-02-18 15:59:50 -08008#define __SID ('S' << 8)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -08009
George Kulakowski17e3b042016-02-18 15:59:50 -080010#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)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080039
George Kulakowski17e3b042016-02-18 15:59:50 -080040#define FMNAMESZ 8
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080041
George Kulakowski17e3b042016-02-18 15:59:50 -080042#define FLUSHR 0x01
43#define FLUSHW 0x02
44#define FLUSHRW 0x03
45#define FLUSHBAND 0x04
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080046
George Kulakowski17e3b042016-02-18 15:59:50 -080047#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
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080058
George Kulakowski17e3b042016-02-18 15:59:50 -080059#define RS_HIPRI 0x01
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080060
George Kulakowski17e3b042016-02-18 15:59:50 -080061#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
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080068
George Kulakowski17e3b042016-02-18 15:59:50 -080069#define SNDZERO 0x001
70#define SNDPIPE 0x002
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080071
George Kulakowski17e3b042016-02-18 15:59:50 -080072#define ANYMARK 0x01
73#define LASTMARK 0x02
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080074
George Kulakowski17e3b042016-02-18 15:59:50 -080075#define MUXID_ALL (-1)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080076
George Kulakowski17e3b042016-02-18 15:59:50 -080077#define MSG_HIPRI 0x01
78#define MSG_ANY 0x02
79#define MSG_BAND 0x04
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080080
George Kulakowski17e3b042016-02-18 15:59:50 -080081#define MORECTL 1
82#define MOREDATA 2
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080083
84struct bandinfo {
George Kulakowski17e3b042016-02-18 15:59:50 -080085 unsigned char bi_pri;
86 int bi_flag;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080087};
88
89struct strbuf {
George Kulakowski17e3b042016-02-18 15:59:50 -080090 int maxlen;
91 int len;
92 char* buf;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080093};
94
95struct strpeek {
George Kulakowski17e3b042016-02-18 15:59:50 -080096 struct strbuf ctlbuf;
97 struct strbuf databuf;
98 unsigned flags;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080099};
100
101struct strfdinsert {
George Kulakowski17e3b042016-02-18 15:59:50 -0800102 struct strbuf ctlbuf;
103 struct strbuf databuf;
104 unsigned flags;
105 int fildes;
106 int offset;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -0800107};
108
109struct strioctl {
George Kulakowski17e3b042016-02-18 15:59:50 -0800110 int ic_cmd;
111 int ic_timout;
112 int ic_len;
113 char* ic_dp;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -0800114};
115
116struct strrecvfd {
George Kulakowski17e3b042016-02-18 15:59:50 -0800117 int fd;
118 int uid;
119 int gid;
120 char __fill[8];
Viet-Trung Luu96b05c12016-01-11 11:26:36 -0800121};
122
123struct str_mlist {
George Kulakowski17e3b042016-02-18 15:59:50 -0800124 char l_name[FMNAMESZ + 1];
Viet-Trung Luu96b05c12016-01-11 11:26:36 -0800125};
126
127struct str_list {
George Kulakowski17e3b042016-02-18 15:59:50 -0800128 int sl_nmods;
129 struct str_mlist* sl_modlist;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -0800130};
131
132int isastream(int);
133int ioctl(int, int, ...);
134
135#ifdef __cplusplus
136}
137#endif
138
139#endif