|
|
1.1 root 1: /* $Header: $
2: *
3: * System V Stream Operations.
4: *
5: * $Log: $
6: */
7: #ifndef __SYS_STROPTS_H__
8: #define __SYS_STROPTS_H__
9:
10: /*
11: * Read options
12: */
13: #define RNORM 0 /* read msg norm */
14: #define RMSGD 1 /* read msg discard */
15: #define RMSGN 2 /* read msg no discard */
16:
17: /*
18: * Flush options
19: */
20: #define FLUSHR 1 /* flush read queue */
21: #define FLUSHW 2 /* flush write queue */
22: #define FLUSHRW 3 /* flush both queues */
23:
24: /*
25: * Events for which to be sent SIGPOLL signal
26: */
27: #define S_INPUT 001 /* regular priority msg on read Q */
28: #define S_HIPRI 002 /* high priority msg on read Q */
29: #define S_OUTPUT 004 /* write Q no longer full */
30: #define S_MSG 010 /* signal msg on front of read Q */
31:
32: /*
33: * Flags for recv() and send() syscall arguments
34: */
35: #define RS_HIPRI 1 /* send/recv high priority messages */
36:
37: /*
38: * Flags returned as value of recv() syscall
39: */
40: #define MORECTL 1 /* more ctl info is left in message */
41: #define MOREDATA 2 /* more data is left in message */
42:
43: /*
44: * Stream Ioctl defines
45: */
46: #define STR ('S'<<8)
47: #define I_NREAD (STR|01)
48: #define I_PUSH (STR|02)
49: #define I_POP (STR|03)
50: #define I_LOOK (STR|04)
51: #define I_FLUSH (STR|05)
52: #define I_SRDOPT (STR|06)
53: #define I_GRDOPT (STR|07)
54: #define I_STR (STR|010)
55: #define I_SETSIG (STR|011)
56: #define I_GETSIG (STR|012)
57: #define I_FIND (STR|013)
58: #define I_LINK (STR|014)
59: #define I_UNLINK (STR|015)
60: #define I_PEEK (STR|017)
61: #define I_FDINSERT (STR|020)
62: #define I_SENDFD (STR|021)
63: #define I_RECVFD (STR|022)
64:
65: /*
66: * User level ioctl format for ioctl that go downstream I_STR.
67: */
68: struct strioctl {
69: int ic_cmd; /* command */
70: int ic_timeout; /* timeout value */
71: int ic_len; /* length of data */
72: char * ic_dp; /* pointer to data */
73: };
74:
75: /*
76: * Values for timeouts (ioctl,select) that denotes infinity.
77: */
78: #define INFTIM (-1)
79:
80: /*
81: * Stream buffer structure for send and recv system calls.
82: */
83: struct strbuf {
84: int maxlen; /* number of bytes in buffer */
85: int len; /* number of bytes returned */
86: char * buf; /* pointer to data */
87: };
88:
89: /*
90: * Stream I_PEEK ioctl format.
91: */
92: struct strpeek {
93: struct strbuf ctlbuf;
94: struct strbuf databuf;
95: long flags;
96: };
97:
98: /*
99: * Stream I_FDINSERT ioctl format.
100: */
101: struct strfdinsert {
102: struct strbuf ctlbuf;
103: struct strbuf databuf;
104: long flags;
105: int fildes;
106: int off/* set */;
107: };
108:
109: /*
110: * Receive file descriptor structure.
111: */
112: struct strrecvfd {
113: #ifdef KERNEL
114: union {
115: struct file * fp;
116: int fd;
117: } f;
118: #else
119: int fd;
120: #endif
121: unsigned short uid;
122: unsigned short gid;
123: char fill[8];
124: };
125:
126: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.