add linux readahead syscall
[musl] / include / stropts.h
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