Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
stropts.h
Abstract:
This module defines the STREAMS ioctl message interface.
Author:
Eric Chin (ericc) July 18, 1991
Revision History:
--*/
/*
* Streams ioctl message interface * * @(#)stropts.h 1.19 (Spider) 91/11/27 */
#ifndef _SYS_STROPTS_
#define _SYS_STROPTS_
#ifndef _NTDDSTRM_
#include <ntddstrm.h>
#endif
/*
* Read options */
#define RNORM 0x00 /* Normal - bytes stream */
#define RMSGD 0x01 /* Message, non-discard mode */
#define RMSGN 0x02 /* Message, discard mode */
#define RMASK 0x0F /* mask for read options */
/*
* Protocol read options */
#define RPROTNORM 0x00 /* Fail reads with EBADMSG */
#define RPROTDIS 0x10 /* Discard proto part */
#define RPROTDAT 0x20 /* Turn proto part into data */
#define RPROTMASK 0xF0 /* mask for protocol read options */
/*
* Values for I_ATMARK argument */
#define ANYMARK 0 /* check if message is marked */
#define LASTMARK 1 /* check if last one marked */
/*
* Value for I_SWROPT argument */
#define NOSNDZERO 0 /* disallow zero length sends */
#define SNDZERO 1 /* permit zero length sends */
/*
* STREAMS ioctl defines */
#define STR ('S'<<8)
#define I_NREAD (STR|1)
#define I_PUSH (STR|2)
#define I_POP (STR|3)
#define I_LOOK (STR|4)
#define I_FLUSH (STR|5)
#define I_SRDOPT (STR|6)
#define I_GRDOPT (STR|7)
#define I_STR (STR|8)
#define I_SETSIG (STR|9)
#define I_GETSIG (STR|10)
#define I_FIND (STR|11)
#define I_LINK (STR|12)
#define I_UNLINK (STR|13)
#define I_PEEK (STR|15)
#define I_FDINSERT (STR|16)
#define I_SENDFD (STR|17)
#define I_RECVFD (STR|18)
#ifdef SVR2
#define I_GETMSG (STR|19)
#define I_PUTMSG (STR|20)
#define I_GETID (STR|21)
#define I_POLL (STR|22)
#endif /*SVR2*/
#define I_SWROPT (STR|23)
#define I_GWROPT (STR|24)
#define I_LIST (STR|25)
#define I_ATMARK (STR|26)
#define I_SETCLTIME (STR|27)
#define I_GETCLTIME (STR|28)
#define I_PLINK (STR|29)
#define I_PUNLINK (STR|30)
#define I_DEBUG (STR|31)
#define I_CLOSE (STR|32)
#define MUXID_ALL -1
/*
* Structure for I_FDINSERT ioctl */
struct strfdinsert { struct strbuf ctlbuf; struct strbuf databuf; long flags; HANDLE fildes; int offset; };
/*
* Structures for I_DEBUG ioctl */ typedef enum _str_trace_options { MSG_TRACE_PRINT = 0x00000001, MSG_TRACE_FLUSH = 0x00000002, MSG_TRACE_ON = 0x00000004, MSG_TRACE_OFF = 0x00000008, POOL_TRACE_PRINT = 0x00000010, POOL_TRACE_FLUSH = 0x00000020, POOL_TRACE_ON = 0x00000040, POOL_TRACE_OFF = 0x00000080, POOL_FAIL_ON = 0x00000100, POOL_FAIL_OFF = 0x00000200, LOCK_TRACE_ON = 0x00000400, LOCK_TRACE_OFF = 0x00000800, QUEUE_PRINT = 0x00001000, BUFFER_PRINT = 0x00002000, POOL_LOGGING_ON = 0x00004000, POOL_LOGGING_OFF = 0x00008000 } str_trace_options;
struct strdebug { ULONG trace_cmd; };
/*
* stream I_PEEK ioctl format */
struct strpeek { struct strbuf ctlbuf; struct strbuf databuf; long flags; };
/*
* receive file descriptor structure */ struct strrecvfd { #ifdef INKERNEL
union { struct file *fp; int fd; } f; #else
int fd; #endif
unsigned short uid; unsigned short gid; char fill[8]; };
#define FMNAMESZ 8
struct str_mlist { char l_name[FMNAMESZ+1]; };
struct str_list { int sl_nmods; struct str_mlist *sl_modlist; };
/*
* get/putmsg flags */
#define RS_HIPRI 1 /* High priority message */
#define MORECTL 1
#define MOREDATA 2
/*
* M_SETSIG flags */
#define S_INPUT 1
#define S_HIPRI 2
#define S_OUTPUT 4
#define S_MSG 8
#define S_ERROR 16
#define S_HANGUP 32
/*
* Flags for MFLUSH messages */ #define FLUSHW 01 /* flush downstream */
#define FLUSHR 02 /* flush upstream */
#define FLUSHRW (FLUSHR | FLUSHW)
#endif /* _SYS_STROPTS_ */
|