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