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