Annotation of ntddk/src/network/streams/inc/sys/stropts.h, revision 1.1

1.1     ! root        1: /*++
        !             2: 
        !             3: Copyright (c) 1991  Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     stropts.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     This module defines the STREAMS ioctl message interface.
        !            12: 
        !            13: Author:
        !            14: 
        !            15:     Eric Chin (ericc)           July 18, 1991
        !            16: 
        !            17: Revision History:
        !            18: 
        !            19: --*/
        !            20: 
        !            21: /*
        !            22:  * Streams ioctl message interface
        !            23:  *
        !            24:  * @(#)stropts.h       1.19 (Spider) 91/11/27
        !            25:  */
        !            26: 
        !            27: #ifndef _SYS_STROPTS_
        !            28: #define _SYS_STROPTS_
        !            29: 
        !            30: 
        !            31: /*
        !            32:  * Read options
        !            33:  */
        !            34: 
        !            35: #define RNORM  0x00                    /* Normal - bytes stream */
        !            36: #define RMSGD  0x01                    /* Message, non-discard mode */
        !            37: #define RMSGN  0x02                    /* Message, discard mode */
        !            38: 
        !            39: #define RMASK  0x0F                    /* mask for read options */
        !            40: 
        !            41: /*
        !            42:  * Protocol read options
        !            43:  */
        !            44: 
        !            45: #define        RPROTNORM       0x00            /* Fail reads with EBADMSG */
        !            46: #define RPROTDIS       0x10            /* Discard proto part */
        !            47: #define RPROTDAT       0x20            /* Turn proto part into data */
        !            48: 
        !            49: #define RPROTMASK      0xF0            /* mask for protocol read options */
        !            50: 
        !            51: /*
        !            52:  * Values for I_ATMARK argument
        !            53:  */
        !            54: 
        !            55: #define        ANYMARK         0               /* check if message is marked */
        !            56: #define        LASTMARK        1               /* check if last one marked */
        !            57: 
        !            58: /*
        !            59:  * Value for I_SWROPT argument
        !            60:  */
        !            61: 
        !            62: #define        NOSNDZERO       0               /* disallow zero length sends */
        !            63: #define        SNDZERO         1               /* permit zero length sends */
        !            64: 
        !            65: /*
        !            66:  * STREAMS ioctl defines
        !            67:  */
        !            68: 
        !            69: #define STR             ('S'<<8)
        !            70: #define I_NREAD         (STR|1)
        !            71: #define I_PUSH          (STR|2)
        !            72: #define I_POP           (STR|3)
        !            73: #define I_LOOK          (STR|4)
        !            74: #define I_FLUSH         (STR|5)
        !            75: #define I_SRDOPT        (STR|6)
        !            76: #define I_GRDOPT        (STR|7)
        !            77: #define I_STR           (STR|8)
        !            78: #define I_SETSIG        (STR|9)
        !            79: #define I_GETSIG        (STR|10)
        !            80: #define I_FIND          (STR|11)
        !            81: #define I_LINK          (STR|12)
        !            82: #define I_UNLINK        (STR|13)
        !            83: #define I_PEEK          (STR|15)
        !            84: #define I_FDINSERT      (STR|16)
        !            85: #define I_SENDFD        (STR|17)
        !            86: #define I_RECVFD        (STR|18)
        !            87: #ifdef SVR2
        !            88: #define I_GETMSG        (STR|19)
        !            89: #define I_PUTMSG        (STR|20)
        !            90: #define I_GETID                (STR|21)
        !            91: #define I_POLL         (STR|22)
        !            92: #endif /*SVR2*/
        !            93: #define        I_SWROPT        (STR|23)
        !            94: #define        I_GWROPT        (STR|24)
        !            95: #define        I_LIST          (STR|25)
        !            96: #define        I_ATMARK        (STR|26)
        !            97: #define        I_SETCLTIME     (STR|27)
        !            98: #define        I_GETCLTIME     (STR|28)
        !            99: #define        I_PLINK         (STR|29)
        !           100: #define        I_PUNLINK       (STR|30)
        !           101: #define I_DEBUG         (STR|31)
        !           102: #define        I_CLOSE         (STR|32)
        !           103: 
        !           104: 
        !           105: #define MUXID_ALL      -1
        !           106: 
        !           107: 
        !           108: /*
        !           109:  * General buffer structure (putmsg, getmsg, etc)
        !           110:  */
        !           111: 
        !           112: struct strbuf {
        !           113:         int     maxlen;                 /* no. of bytes in buffer */
        !           114:         int     len;                    /* no. of bytes returned */
        !           115:         char    *buf;                   /* pointer to data */
        !           116: };
        !           117: 
        !           118: /*
        !           119:  * General ioctl
        !           120:  */
        !           121: 
        !           122: struct strioctl {
        !           123:        int     ic_cmd;                 /* command */
        !           124:        int     ic_timout;              /* timeout value */
        !           125:        int     ic_len;                 /* length of data */
        !           126:        char    *ic_dp;                 /* pointer to data */
        !           127: };
        !           128: 
        !           129: /*
        !           130:  * Structure for I_FDINSERT ioctl
        !           131:  */
        !           132: 
        !           133: struct strfdinsert {
        !           134:         struct strbuf ctlbuf;
        !           135:         struct strbuf databuf;
        !           136:         long          flags;
        !           137:         HANDLE        fildes;
        !           138:         int           offset;
        !           139: };
        !           140: 
        !           141: 
        !           142: /*
        !           143:  * Structures for I_DEBUG ioctl
        !           144:  */
        !           145: typedef enum _str_trace_options {
        !           146:     MSG_TRACE_PRINT =      0x00000001,
        !           147:     MSG_TRACE_FLUSH =      0x00000002,
        !           148:     MSG_TRACE_ON =         0x00000004,
        !           149:     MSG_TRACE_OFF =        0x00000008,
        !           150:     POOL_TRACE_PRINT =     0x00000010,
        !           151:     POOL_TRACE_FLUSH =     0x00000020,
        !           152:     POOL_TRACE_ON =        0x00000040,
        !           153:     POOL_TRACE_OFF =       0x00000080,
        !           154:     POOL_FAIL_ON =         0x00000100,
        !           155:     POOL_FAIL_OFF =        0x00000200,
        !           156:     LOCK_TRACE_ON =        0x00000400,
        !           157:     LOCK_TRACE_OFF =       0x00000800,
        !           158:     QUEUE_PRINT =          0x00001000,
        !           159:     BUFFER_PRINT =         0x00002000,
        !           160:     POOL_LOGGING_ON =      0x00004000,
        !           161:     POOL_LOGGING_OFF =     0x00008000
        !           162: } str_trace_options;
        !           163: 
        !           164: 
        !           165: struct strdebug {
        !           166:     ULONG  trace_cmd;
        !           167: };
        !           168: 
        !           169: 
        !           170: /*
        !           171:  * stream I_PEEK ioctl format
        !           172:  */
        !           173: 
        !           174: struct strpeek {
        !           175:        struct strbuf ctlbuf;
        !           176:        struct strbuf databuf;
        !           177:        long          flags;
        !           178: };
        !           179: 
        !           180: /*
        !           181:  * receive file descriptor structure
        !           182:  */
        !           183: struct strrecvfd {
        !           184: #ifdef INKERNEL
        !           185:         union {
        !           186:                 struct file *fp;
        !           187:                 int fd;
        !           188:         } f;
        !           189: #else
        !           190:         int fd;
        !           191: #endif
        !           192:         unsigned short uid;
        !           193:         unsigned short gid;
        !           194:         char fill[8];
        !           195: };
        !           196: 
        !           197: #define FMNAMESZ       8
        !           198: 
        !           199: struct str_mlist {
        !           200:        char l_name[FMNAMESZ+1];
        !           201: };
        !           202: 
        !           203: struct str_list {
        !           204:        int sl_nmods;
        !           205:        struct str_mlist *sl_modlist;
        !           206: };
        !           207: 
        !           208: /*
        !           209:  * get/putmsg flags
        !           210:  */
        !           211: 
        !           212: #define RS_HIPRI       1       /* High priority message */
        !           213: 
        !           214: #define MORECTL                1
        !           215: #define MOREDATA       2
        !           216: 
        !           217: 
        !           218: /*
        !           219:  * M_SETSIG flags
        !           220:  */
        !           221: 
        !           222: #define S_INPUT                1
        !           223: #define S_HIPRI                2
        !           224: #define S_OUTPUT       4
        !           225: #define S_MSG          8
        !           226: #define S_ERROR                16
        !           227: #define S_HANGUP       32
        !           228: 
        !           229: /*
        !           230:  * Flags for MFLUSH messages
        !           231:  */
        !           232: #define FLUSHW         01      /* flush downstream */
        !           233: #define FLUSHR         02      /* flush upstream */
        !           234: #define FLUSHRW                (FLUSHR | FLUSHW)
        !           235: 
        !           236: #endif /* _SYS_STROPTS_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.