From 636b46506f883d2608ddce7e0abb9dab16ebadb5 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 27 Mar 2010 01:12:23 +0000 Subject: [PATCH] [DDK] - Move devioctl.h to PSDK, introduce pragma once, apply consistent formatting and add several missing definitions. [XDK] - Autogenerate devioctl.h based on devioctl.template.h svn path=/branches/header-work/; revision=46482 --- include/{ddk => psdk}/devioctl.h | 40 ++++++++++++++++++++++++-------- include/xdk/devioctl.template.h | 31 +++++++++++++++++++++++++ include/xdk/generate.bat | 1 + include/xdk/iotypes.h | 25 +++++++++++++++++++- 4 files changed, 86 insertions(+), 11 deletions(-) rename include/{ddk => psdk}/devioctl.h (79%) create mode 100644 include/xdk/devioctl.template.h diff --git a/include/ddk/devioctl.h b/include/psdk/devioctl.h similarity index 79% rename from include/ddk/devioctl.h rename to include/psdk/devioctl.h index f5fe01011f5..d192b32462d 100644 --- a/include/ddk/devioctl.h +++ b/include/psdk/devioctl.h @@ -3,7 +3,11 @@ * * IOCTL definitions * - * This file is part of the ReactOS ddk. + * This file is part of the ReactOS PSDK package. + * + * Contributors: + * Amine Khaldi + * Timo Kreuzer (timo.kreuzer@reactos.org) * * THIS SOFTWARE IS NOT COPYRIGHTED * @@ -16,13 +20,12 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */ +#pragma once #ifndef _DEVIOCTL_ #define _DEVIOCTL_ -/* DEVICE_OBJECT.DeviceType */ -#define DEVICE_TYPE ULONG #define FILE_DEVICE_BEEP 0x00000001 #define FILE_DEVICE_CD_ROM 0x00000002 @@ -81,26 +84,43 @@ #define FILE_DEVICE_SERENUM 0x00000037 #define FILE_DEVICE_TERMSRV 0x00000038 #define FILE_DEVICE_KSEC 0x00000039 -#define FILE_DEVICE_FIPS 0x0000003a +#define FILE_DEVICE_FIPS 0x0000003A +#define FILE_DEVICE_INFINIBAND 0x0000003B +#define FILE_DEVICE_VMBUS 0x0000003E +#define FILE_DEVICE_CRYPT_PROVIDER 0x0000003F +#define FILE_DEVICE_WPD 0x00000040 +#define FILE_DEVICE_BLUETOOTH 0x00000041 +#define FILE_DEVICE_MT_COMPOSITE 0x00000042 +#define FILE_DEVICE_MT_TRANSPORT 0x00000043 +#define FILE_DEVICE_BIOMETRIC 0x00000044 +#define FILE_DEVICE_PMI 0x00000045 -#define CTL_CODE(DeviceType, Function, Method, Access)( \ - ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) +/* DEVICE_OBJECT.DeviceType */ +#define DEVICE_TYPE ULONG + + +#define CTL_CODE(DeviceType, Function, Method, Access) \ + (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) #define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16) -#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)((ctrlCode) & 3)) +#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3)) + #define METHOD_BUFFERED 0 #define METHOD_IN_DIRECT 1 #define METHOD_OUT_DIRECT 2 #define METHOD_NEITHER 3 -#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT -#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT +#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT +#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT + #define FILE_ANY_ACCESS 0x00000000 #define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS #define FILE_READ_ACCESS 0x00000001 #define FILE_WRITE_ACCESS 0x00000002 -#endif /* !_DEVIOCTL_ */ + + +#endif /*_DEVIOCTL_ */ diff --git a/include/xdk/devioctl.template.h b/include/xdk/devioctl.template.h new file mode 100644 index 00000000000..ac7e130e822 --- /dev/null +++ b/include/xdk/devioctl.template.h @@ -0,0 +1,31 @@ +/* + * devioctl.h + * + * IOCTL definitions + * + * This file is part of the ReactOS PSDK package. + * + * Contributors: + * Amine Khaldi + * Timo Kreuzer (timo.kreuzer@reactos.org) + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ +#pragma once + +#ifndef _DEVIOCTL_ +#define _DEVIOCTL_ + +$define (_DEVIOCTL_) +$include (iotypes.h) + +#endif /*_DEVIOCTL_ */ diff --git a/include/xdk/generate.bat b/include/xdk/generate.bat index e26f34aa105..c5653ff6638 100644 --- a/include/xdk/generate.bat +++ b/include/xdk/generate.bat @@ -2,3 +2,4 @@ ..\..\output-i386\tools\hpp\hpp.exe wdm.template.h wdm.h ..\..\output-i386\tools\hpp\hpp.exe ntddk.template.h ntddk.h +..\..\output-i386\tools\hpp\hpp.exe devioctl.template.h devioctl.h diff --git a/include/xdk/iotypes.h b/include/xdk/iotypes.h index aac22cb3668..789887852a0 100644 --- a/include/xdk/iotypes.h +++ b/include/xdk/iotypes.h @@ -1,6 +1,8 @@ +$if (_WDMDDK_ || _NTDDK_) /****************************************************************************** * I/O Manager Types * ******************************************************************************/ +$endif $if (_WDMDDK_) #define WDM_MAJORVERSION 0x06 @@ -52,7 +54,9 @@ $if (_WDMDDK_) #define IO_RESOURCE_PREFERRED 0x01 #define IO_RESOURCE_DEFAULT 0x02 #define IO_RESOURCE_ALTERNATIVE 0x08 +$endif +$if (_WDMDDK_ || _DEVIOCTL_) #define FILE_DEVICE_BEEP 0x00000001 #define FILE_DEVICE_CD_ROM 0x00000002 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 @@ -120,6 +124,8 @@ $if (_WDMDDK_) #define FILE_DEVICE_MT_TRANSPORT 0x00000043 #define FILE_DEVICE_BIOMETRIC 0x00000044 #define FILE_DEVICE_PMI 0x00000045 +$endif +$if (_WDMDDK_) #if defined(NT_PROCESSOR_GROUPS) @@ -208,7 +214,9 @@ typedef struct _WAIT_CONTEXT_BLOCK { } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK; $endif +$if (_WDMDDK_ || _NTDDK_) /* DEVICE_OBJECT.Flags */ +$endif $if (_NTDDK_) #define DO_DEVICE_HAS_NAME 0x00000040 #define DO_SYSTEM_BOOT_PARTITION 0x00000100 @@ -259,9 +267,13 @@ $if (_WDMDDK_) #define FILE_128_BYTE_ALIGNMENT 0x0000007f #define FILE_256_BYTE_ALIGNMENT 0x000000ff #define FILE_512_BYTE_ALIGNMENT 0x000001ff +$endif +$if (_WDMDDK_ || _DEVIOCTL_) /* DEVICE_OBJECT.DeviceType */ #define DEVICE_TYPE ULONG +$endif +$if (_WDMDDK_) typedef struct _DEVICE_OBJECT { CSHORT Type; @@ -1767,14 +1779,18 @@ typedef struct _IO_COMPLETION_CONTEXT { #define SL_WATCH_TREE 0x01 #define SL_ALLOW_RAW_MOUNT 0x01 +$endif +$if (_WDMDDK_ || _DEVIOCTL_) #define CTL_CODE(DeviceType, Function, Method, Access) \ (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) #define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16) #define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3)) +$endif +$if (_WDMDDK_) #define IRP_NOCACHE 0x00000001 #define IRP_PAGING_IO 0x00000002 #define IRP_MOUNT_COMPLETION 0x00000002 @@ -2825,7 +2841,9 @@ typedef struct _IO_STACK_LOCATION { #define SL_INVOKE_ON_CANCEL 0x20 #define SL_INVOKE_ON_SUCCESS 0x40 #define SL_INVOKE_ON_ERROR 0x80 +$endif +$if (_WDMDDK_ || _DEVIOCTL_) #define METHOD_BUFFERED 0 #define METHOD_IN_DIRECT 1 #define METHOD_OUT_DIRECT 2 @@ -2833,7 +2851,9 @@ typedef struct _IO_STACK_LOCATION { #define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT #define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT +$endif +$if (_WDMDDK_) #define FILE_SUPERSEDED 0x00000000 #define FILE_OPENED 0x00000001 #define FILE_CREATED 0x00000002 @@ -2921,12 +2941,16 @@ typedef struct _IO_STACK_LOCATION { #define FILE_OPEN_REPARSE_POINT 0x00200000 #define FILE_OPEN_NO_RECALL 0x00400000 #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 +$endif +$if (_WDMDDK_ || _DEVIOCTL_) #define FILE_ANY_ACCESS 0x00000000 #define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS #define FILE_READ_ACCESS 0x00000001 #define FILE_WRITE_ACCESS 0x00000002 +$endif +$if (_WDMDDK_) #define FILE_ALL_ACCESS \ (STANDARD_RIGHTS_REQUIRED | \ SYNCHRONIZE | \ @@ -3749,7 +3773,6 @@ typedef struct _PCI_MSIX_TABLE_CONFIG_INTERFACE { RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry) $endif $if (_NTDDK_) - #ifndef _ARC_DDK_ #define _ARC_DDK_ typedef enum _CONFIGURATION_TYPE {