summaryrefslogtreecommitdiffstats
path: root/sys/compat/ndis/ntoskrnl_var.h
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2005-02-25 18:25:48 +0000
committerwpaul <wpaul@FreeBSD.org>2005-02-25 18:25:48 +0000
commit371673aec831d8335f177b4cc155e42394ab140a (patch)
treebec133a8ae90c37b3ed4ba8ee9b55949212b9bf3 /sys/compat/ndis/ntoskrnl_var.h
parent3f4b3cea66572eb3ed0ac4713956de6c1cccef29 (diff)
downloadFreeBSD-src-371673aec831d8335f177b4cc155e42394ab140a.zip
FreeBSD-src-371673aec831d8335f177b4cc155e42394ab140a.tar.gz
Add macros to construct Windows IOCTL codes, and to extract function
codes from an IOCTL. (The USB module will need them later.)
Diffstat (limited to 'sys/compat/ndis/ntoskrnl_var.h')
-rw-r--r--sys/compat/ndis/ntoskrnl_var.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/compat/ndis/ntoskrnl_var.h b/sys/compat/ndis/ntoskrnl_var.h
index 4992d7c..0a24471 100644
--- a/sys/compat/ndis/ntoskrnl_var.h
+++ b/sys/compat/ndis/ntoskrnl_var.h
@@ -750,8 +750,27 @@ typedef struct devobj_extension devobj_extension;
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
+/* File access types */
+
+#define FILE_ANY_ACCESS 0x0000
+#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS
+#define FILE_READ_ACCESS 0x0001
+#define FILE_WRITE_ACCESS 0x0002
+
+/* Recover I/O access method from IOCTL code. */
+
#define IO_METHOD(x) ((x) & 0xFFFFFFFC)
+/* Recover function code from IOCTL code */
+
+#define IO_FUNC(x) (((x) & 0x7FFC) >> 2)
+
+/* Macro to construct an IOCTL code. */
+
+#define IOCTL_CODE(dev, func, iomethod, acc) \
+ ((dev) << 16) | (acc << 14) | (func << 2) | (iomethod))
+
+
struct io_status_block {
union {
uint32_t isb_status;
OpenPOWER on IntegriCloud