|
|
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.