- Define DECLSPEC_ADDRSAFE and FORCEINLINE for gcc in winnt.h
[reactos.git] / reactos / include / ndk / ntndk.h
index 4439bfe..500388b 100644 (file)
@@ -1,60 +1,77 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/ntndk.h
- * PURPOSE:         Main Native Development Kit Header file to include all others.
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    ntndk.h
+
+Abstract:
+
+    Master include file for the Native Development Kit.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _NTNDK_
 #define _NTNDK_
 
-/* C Standard Headers */
+//
+// Rounding Macros
+//
+#define ROUNDUP(a,b)        ((((a)+(b)-1)/(b))*(b))
+#define ROUNDDOWN(a,b)      (((a)/(b))*(b))
+#define ROUND_UP            ROUNDUP
+#define ROUND_DOWN          ROUNDDOWN
+
 #include <stdarg.h>
 
-/* Helper Header */
-#include <reactos/helper.h>
+#ifndef NTOS_MODE_USER
 
-/* A version of ntdef.h to be used with PSDK headers. */
-#include "umtypes.h"
+//
+// Headers that are only useful to Kernel Mode modules
+//
+#include <ifssupp.h>        // IFS Support Header
+#include <kdfuncs.h>        // Kernel Debugger Functions
+#include <cctypes.h>        // Cache Manager Types
+#include <potypes.h>        // Power Manager Types
+#include <haltypes.h>       // Hardware Abstraction Layer Types
+#include <halfuncs.h>       // Hardware Abstraction Layer Functions
+#include <inbvfuncs.h>      // Initialization Boot Video Functions
+#include <exfuncs.h>        // Executive Functions
+#include <iofuncs.h>        // Input/Output Manager Functions
+#include <kefuncs.h>        // Kernel Functions
+#include <mmfuncs.h>        // Memory Manager Functions
+#include <obfuncs.h>        // Object Manager Functions
+#include <psfuncs.h>        // Process Manager Functions
+#include <sefuncs.h>        // Security Subsystem Functions
 
-/* Kernel-Mode NDK */
-#ifndef NTOS_MODE_USER
-#include "ifssupp.h"        /* IFS Support Header */
-#include "kdfuncs.h"        /* Kernel Debugger Functions */
-#include "cctypes.h"        /* Cache Manager Types */
-#include "potypes.h"        /* Power Manager Types */
-#include "haltypes.h"       /* Hardware Abstraction Layer Types */
-#include "halfuncs.h"       /* Hardware Abstraction Layer Functions */
-#include "inbvfuncs.h"      /* Initialization Boot Video Functions */
-#include "exfuncs.h"        /* Executive Functions */
-#include "iofuncs.h"        /* Input/Output Manager Functions */
-#include "kefuncs.h"        /* Kernel Functions */
-#include "mmfuncs.h"        /* Memory Manager Functions */
-#include "obfuncs.h"        /* Object Manager Functions */
-#include "psfuncs.h"        /* Process Manager Functions */
-#include "sefuncs.h"        /* Security Subsystem Functions */
-#endif /* !NTOS_MODE_USER */
-
-/* Shared NDK */
-#include "extypes.h"        /* Executive Types */
-#include "cmtypes.h"        /* Configuration Manager Types */
-#include "kdtypes.h"        /* Kernel Debugger Types */
-#include "ketypes.h"        /* Kernel Types */
-#include "iotypes.h"        /* Input/Output Manager Types */
-#include "ldrtypes.h"       /* Loader Types */
-#include "ldrfuncs.h"       /* Loader Functions */
-#include "mmtypes.h"        /* Memory Manager Types */
-#include "obtypes.h"        /* Object Manager Types */
-#include "pstypes.h"        /* Process Manager Types */
-#include "lpctypes.h"       /* Local Procedure Call Types */
-#include "dbgktypes.h"      /* User-Mode Kernel Debugging Types */
-#include "zwfuncs.h"        /* Native Functions (System Calls) */
-#include "rtltypes.h"       /* Runtime Library Types */
-#include "rtlfuncs.h"       /* Runtime Library Functions */
-#include "setypes.h"        /* Security Subsystem Types */
-#include "umfuncs.h"        /* User-Mode NT Library Functions */
-#include "i386/floatsave.h" /* Floating Point Save Area Definitions for i386 */
-#include "i386/segment.h"   /* Kernel CPU Segment Definitions for i386 */
-
-#endif 
+#endif // !NTOS_MODE_USER
+
+//
+// Headers used both in User Mode and Kernel Mode
+//
+#include <umtypes.h>        // General Definitions
+#include <extypes.h>        // Executive Types
+#include <cmtypes.h>        // Configuration Manager Types
+#include <kdtypes.h>        // Kernel Debugger Types
+#include <ketypes.h>        // Kernel Types
+#include <iotypes.h>        // Input/Output Manager Types
+#include <ldrtypes.h>       // Loader Types
+#include <ldrfuncs.h>       // Loader Functions
+#include <mmtypes.h>        // Memory Manager Types
+#include <obtypes.h>        // Object Manager Types
+#include <pstypes.h>        // Process Manager Types
+#include <lpctypes.h>       // Local Procedure Call Types
+#include <dbgktypes.h>      // User-Mode Kernel Debugging Types
+#include <zwfuncs.h>        // Native Functions (System Calls)
+#include <rtltypes.h>       // Runtime Library Types
+#include <rtlfuncs.h>       // Runtime Library Functions
+#include <setypes.h>        // Security Subsystem Types
+#include <umfuncs.h>        // User-Mode NT Library Functions
+#include <asm.h>            // Assembly Offsets
+
+#endif // _NTNDK_