summaryrefslogtreecommitdiffstats
path: root/private/inc/sys/stropts.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/inc/sys/stropts.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/inc/sys/stropts.h')
-rw-r--r--private/inc/sys/stropts.h236
1 files changed, 236 insertions, 0 deletions
diff --git a/private/inc/sys/stropts.h b/private/inc/sys/stropts.h
new file mode 100644
index 000000000..12ab512f3
--- /dev/null
+++ b/private/inc/sys/stropts.h
@@ -0,0 +1,236 @@
+/*++
+
+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_
+
+
+/*
+ * 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
+
+
+/*
+ * General buffer structure (putmsg, getmsg, etc)
+ */
+
+struct strbuf {
+ int maxlen; /* no. of bytes in buffer */
+ int len; /* no. of bytes returned */
+ char *buf; /* pointer to data */
+};
+
+/*
+ * General ioctl
+ */
+
+struct strioctl {
+ int ic_cmd; /* command */
+ int ic_timout; /* timeout value */
+ int ic_len; /* length of data */
+ char *ic_dp; /* pointer to data */
+};
+
+/*
+ * 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_ */