- Support INIT section pragmas for msvc. Patch by Brezenbak.
Modified: trunk/reactos/ntoskrnl/cc/view.c
Modified: trunk/reactos/ntoskrnl/cm/import.c
Modified: trunk/reactos/ntoskrnl/cm/registry.c
Modified: trunk/reactos/ntoskrnl/ex/callback.c
Modified: trunk/reactos/ntoskrnl/ex/event.c
Modified: trunk/reactos/ntoskrnl/ex/evtpair.c
Modified: trunk/reactos/ntoskrnl/ex/init.c
Modified: trunk/reactos/ntoskrnl/ex/lookas.c
Modified: trunk/reactos/ntoskrnl/ex/mutant.c
Modified: trunk/reactos/ntoskrnl/ex/profile.c
Modified: trunk/reactos/ntoskrnl/ex/sem.c
Modified: trunk/reactos/ntoskrnl/ex/time.c
Modified: trunk/reactos/ntoskrnl/ex/timer.c
Modified: trunk/reactos/ntoskrnl/ex/uuid.c
Modified: trunk/reactos/ntoskrnl/ex/win32k.c
Modified: trunk/reactos/ntoskrnl/ex/work.c
Modified: trunk/reactos/ntoskrnl/fs/filelock.c
Modified: trunk/reactos/ntoskrnl/fs/notify.c
Modified: trunk/reactos/ntoskrnl/fs/util.c
Modified: trunk/reactos/ntoskrnl/inbv/inbv.c
Modified: trunk/reactos/ntoskrnl/io/arcname.c
Modified: trunk/reactos/ntoskrnl/io/bootlog.c
Modified: trunk/reactos/ntoskrnl/io/driver.c
Modified: trunk/reactos/ntoskrnl/io/fs.c
Modified: trunk/reactos/ntoskrnl/io/iomgr.c
Modified: trunk/reactos/ntoskrnl/io/plugplay.c
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
Modified: trunk/reactos/ntoskrnl/io/pnpnotify.c
Modified: trunk/reactos/ntoskrnl/io/vpb.c
Modified: trunk/reactos/ntoskrnl/kd/kdinit.c
Modified: trunk/reactos/ntoskrnl/ke/bug.c
Modified: trunk/reactos/ntoskrnl/ke/clock.c
Modified: trunk/reactos/ntoskrnl/ke/device.c
Modified: trunk/reactos/ntoskrnl/ke/dpc.c
Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
Modified: trunk/reactos/ntoskrnl/ke/i386/kernel.c
Modified: trunk/reactos/ntoskrnl/ke/i386/tss.c
Modified: trunk/reactos/ntoskrnl/ke/i386/vdm.c
Modified: trunk/reactos/ntoskrnl/ke/main.c
Modified: trunk/reactos/ntoskrnl/ke/usercall.c
Modified: trunk/reactos/ntoskrnl/ldr/loader.c
Modified: trunk/reactos/ntoskrnl/lpc/port.c
Modified: trunk/reactos/ntoskrnl/mm/aspace.c
Modified: trunk/reactos/ntoskrnl/mm/balance.c
Modified: trunk/reactos/ntoskrnl/mm/freelist.c
Modified: trunk/reactos/ntoskrnl/mm/i386/page.c
Modified: trunk/reactos/ntoskrnl/mm/marea.c
Modified: trunk/reactos/ntoskrnl/mm/mdl.c
Modified: trunk/reactos/ntoskrnl/mm/mminit.c
Modified: trunk/reactos/ntoskrnl/mm/npool.c
Modified: trunk/reactos/ntoskrnl/mm/pagefile.c
Modified: trunk/reactos/ntoskrnl/mm/pageop.c
Modified: trunk/reactos/ntoskrnl/mm/ppool.c
Modified: trunk/reactos/ntoskrnl/mm/process.c
Modified: trunk/reactos/ntoskrnl/mm/rmap.c
Modified: trunk/reactos/ntoskrnl/mm/section.c
Modified: trunk/reactos/ntoskrnl/ob/namespc.c
Modified: trunk/reactos/ntoskrnl/ob/symlink.c
Modified: trunk/reactos/ntoskrnl/po/power.c
Modified: trunk/reactos/ntoskrnl/ps/idle.c
Modified: trunk/reactos/ntoskrnl/ps/job.c
Modified: trunk/reactos/ntoskrnl/ps/locale.c
Modified: trunk/reactos/ntoskrnl/ps/process.c
Modified: trunk/reactos/ntoskrnl/ps/psmgr.c
Modified: trunk/reactos/ntoskrnl/rtl/nls.c
Modified: trunk/reactos/ntoskrnl/se/acl.c
Modified: trunk/reactos/ntoskrnl/se/luid.c
Modified: trunk/reactos/ntoskrnl/se/priv.c
Modified: trunk/reactos/ntoskrnl/se/sd.c
Modified: trunk/reactos/ntoskrnl/se/semgr.c
Modified: trunk/reactos/ntoskrnl/se/sid.c
Modified: trunk/reactos/ntoskrnl/se/token.c

Modified: trunk/reactos/ntoskrnl/cc/view.c
--- trunk/reactos/ntoskrnl/cc/view.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/cc/view.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -36,6 +36,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, CcInitView)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 /*

Modified: trunk/reactos/ntoskrnl/cm/import.c
--- trunk/reactos/ntoskrnl/cm/import.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/cm/import.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -16,6 +16,10 @@
 
 #include "cm.h"
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, CmImportHardwareHive)
+#endif
+
 /* GLOBALS ******************************************************************/
 
 static BOOLEAN CmiHardwareHiveImported = FALSE;

Modified: trunk/reactos/ntoskrnl/cm/registry.c
--- trunk/reactos/ntoskrnl/cm/registry.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/cm/registry.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -16,6 +16,13 @@
 
 #include "cm.h"
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, CmInitHives)
+#pragma alloc_text(INIT, CmInitializeRegistry)
+#pragma alloc_text(INIT, CmInit2)
+#endif
+
+
 /* GLOBALS ******************************************************************/
 
 POBJECT_TYPE  CmiKeyType = NULL;

Modified: trunk/reactos/ntoskrnl/ex/callback.c
--- trunk/reactos/ntoskrnl/ex/callback.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/callback.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -12,6 +12,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeCallbacks)
+#endif
+
+
 /* TYPES ********************************************************************/
 
 /* Mapping for Callback Object */

Modified: trunk/reactos/ntoskrnl/ex/event.c
--- trunk/reactos/ntoskrnl/ex/event.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/event.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeEventImplementation)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 POBJECT_TYPE ExEventObjectType = NULL;

Modified: trunk/reactos/ntoskrnl/ex/evtpair.c
--- trunk/reactos/ntoskrnl/ex/evtpair.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/evtpair.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -16,6 +16,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeEventPairImplementation)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 POBJECT_TYPE ExEventPairObjectType = NULL;

Modified: trunk/reactos/ntoskrnl/ex/init.c
--- trunk/reactos/ntoskrnl/ex/init.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/init.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -32,6 +32,18 @@
 
 VOID PspPostInitSystemProcess(VOID);
 
+static VOID INIT_FUNCTION InitSystemSharedUserPage (PCSZ ParameterLine);
+VOID INIT_FUNCTION ExpDisplayNotice(VOID);
+INIT_FUNCTION NTSTATUS ExpLoadInitialProcess(PHANDLE ProcessHandle, PHANDLE ThreadHandle);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, InitSystemSharedUserPage)
+#pragma alloc_text(INIT, ExpDisplayNotice)
+#pragma alloc_text(INIT, ExpLoadInitialProcess)
+#pragma alloc_text(INIT, ExpInitializeExecutive)
+#pragma alloc_text(INIT, ExInit2)
+#endif
+
 /* FUNCTIONS ****************************************************************/
 
 static

Modified: trunk/reactos/ntoskrnl/ex/lookas.c
--- trunk/reactos/ntoskrnl/ex/lookas.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/lookas.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitLookasideLists)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 LIST_ENTRY ExpNonPagedLookasideListHead;

Modified: trunk/reactos/ntoskrnl/ex/mutant.c
--- trunk/reactos/ntoskrnl/ex/mutant.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/mutant.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeMutantImplementation)
+#endif
+
 #ifndef MUTANT_INCREMENT
 #define MUTANT_INCREMENT                1
 #endif

Modified: trunk/reactos/ntoskrnl/ex/profile.c
--- trunk/reactos/ntoskrnl/ex/profile.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/profile.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -13,6 +13,10 @@
 #include <ntoskrnl.h>
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeProfileImplementation)
+#endif
+
 /* FIXME: NDK This structure is a *GUESS* -- Alex */
 typedef struct _EPROFILE {
     PEPROCESS Process;

Modified: trunk/reactos/ntoskrnl/ex/sem.c
--- trunk/reactos/ntoskrnl/ex/sem.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/sem.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeSemaphoreImplementation()
+#endif
+
 /* GLOBALS ******************************************************************/
 
 POBJECT_TYPE ExSemaphoreObjectType;

Modified: trunk/reactos/ntoskrnl/ex/time.c
--- trunk/reactos/ntoskrnl/ex/time.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/time.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -17,6 +17,10 @@
 
 #define TICKSPERMINUTE  600000000
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitTimeZoneInfo)
+#endif
+
 /* GLOBALS ******************************************************************/
 
 /* Note: Bias[minutes] = UTC - local time */

Modified: trunk/reactos/ntoskrnl/ex/timer.c
--- trunk/reactos/ntoskrnl/ex/timer.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/timer.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeTimerImplementation)
+#endif
+
+
 /* TYPES ********************************************************************/
 
 /* Executive Timer Object */

Modified: trunk/reactos/ntoskrnl/ex/uuid.c
--- trunk/reactos/ntoskrnl/ex/uuid.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/uuid.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -26,7 +26,11 @@
 #define SECS_15_OCT_1582_TO_1601  ((17 + 30 + 31 + 365 * 18 + 5) * SECSPERDAY)
 #define TICKS_15_OCT_1582_TO_1601 ((ULONGLONG)SECS_15_OCT_1582_TO_1601 * TICKSPERSEC)
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitUuids)
+#endif
 
+
 /* GLOBALS ****************************************************************/
 
 static FAST_MUTEX UuidMutex;

Modified: trunk/reactos/ntoskrnl/ex/win32k.c
--- trunk/reactos/ntoskrnl/ex/win32k.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/win32k.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -13,6 +13,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpWin32kInit)
+#endif
+
 /* DATA **********************************************************************/
 
 POBJECT_TYPE ExWindowStationObjectType = NULL;

Modified: trunk/reactos/ntoskrnl/ex/work.c
--- trunk/reactos/ntoskrnl/ex/work.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ex/work.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, ExpInitializeWorkerThreads)
+#endif
+
 /* DEFINES *******************************************************************/
 
 #define NUMBER_OF_WORKER_THREADS   (5)

Modified: trunk/reactos/ntoskrnl/fs/filelock.c
--- trunk/reactos/ntoskrnl/fs/filelock.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/fs/filelock.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -12,6 +12,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, FsRtlpInitFileLockingImplementation)
+#endif
+
+
 /*
 NOTE:
 I'm not using resource syncronization here, since FsRtlFastCheckLockForRead/Write

Modified: trunk/reactos/ntoskrnl/fs/notify.c
--- trunk/reactos/ntoskrnl/fs/notify.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/fs/notify.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -13,7 +13,11 @@
 //#define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, FsRtlpInitNotifyImplementation)
+#endif
 
+
 PAGED_LOOKASIDE_LIST    NotifyEntryLookaside;
 
 typedef struct _NOTIFY_ENTRY
@@ -61,7 +65,7 @@
 
 
 static
-inline
+__inline
 BOOLEAN
 FsRtlpIsUnicodePath(
    PSTRING Path
@@ -593,7 +597,7 @@
 
 
 static
-inline
+__inline
 VOID
 FsRtlpCopyName(
    PFILE_NOTIFY_INFORMATION CurrentEntry,

Modified: trunk/reactos/ntoskrnl/fs/util.c
--- trunk/reactos/ntoskrnl/fs/util.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/fs/util.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -21,9 +21,14 @@
 /* GLOBALS *******************************************************************/
 
 BOOLEAN STDCALL MmIsFileAPagingFile(PFILE_OBJECT FileObject);
+VOID STDCALL INIT_FUNCTION RtlpInitializeResources(VOID);
 static ULONG FsRtlpAllocatedResources = 0;
 static PERESOURCE FsRtlpResources;
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, RtlpInitializeResources)
+#endif
+
 /* PRIVATE FUNCTIONS**********************************************************/
 
 VOID

Modified: trunk/reactos/ntoskrnl/inbv/inbv.c
--- trunk/reactos/ntoskrnl/inbv/inbv.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/inbv/inbv.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,7 +15,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, InbvEnableBootDriver)
+#endif
 
+
 /* GLOBALS *******************************************************************/
 
 /* DATA **********************************************************************/

Modified: trunk/reactos/ntoskrnl/io/arcname.c
--- trunk/reactos/ntoskrnl/io/arcname.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/arcname.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,38 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+static NTSTATUS 
+STDCALL INIT_FUNCTION 
+DiskQueryRoutine(PWSTR ValueName, 
+                 ULONG ValueType, 
+                 PVOID ValueData, 
+                 ULONG ValueLength,
+                 PVOID Context,
+                 PVOID EntryContext);
+
+static VOID INIT_FUNCTION
+IopEnumerateBiosDisks(PLIST_ENTRY ListHead);
+
+static VOID INIT_FUNCTION
+IopEnumerateDisks(PLIST_ENTRY ListHead);
+
+static NTSTATUS INIT_FUNCTION
+IopAssignArcNamesToDisk(PDEVICE_OBJECT DeviceObject, ULONG RDisk, ULONG DiskNumber);
+
+static NTSTATUS INIT_FUNCTION
+IopCheckCdromDevices(PULONG DeviceNumber);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, DiskQueryRoutine)
+#pragma alloc_text(INIT, IopEnumerateBiosDisks)
+#pragma alloc_text(INIT, IopEnumerateDisks)
+#pragma alloc_text(INIT, IopAssignArcNamesToDisk)
+#pragma alloc_text(INIT, IoCreateArcNames)
+#pragma alloc_text(INIT, IopCheckCdromDevices)
+#pragma alloc_text(INIT, IoCreateSystemRootLink)
+#endif
+
+
 /* MACROS *******************************************************************/
 
 #define FS_VOLUME_BUFFER_SIZE (MAX_PATH + sizeof(FILE_FS_VOLUME_INFORMATION))

Modified: trunk/reactos/ntoskrnl/io/bootlog.c
--- trunk/reactos/ntoskrnl/io/bootlog.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/bootlog.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IopInitBootLog)
+#pragma alloc_text(INIT, IopStartBootLog()
+#endif
 
 /* GLOBALS ******************************************************************/
 

Modified: trunk/reactos/ntoskrnl/io/driver.c
--- trunk/reactos/ntoskrnl/io/driver.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/driver.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -19,11 +19,6 @@
 extern ULONG KeTickCount;
 extern BOOLEAN SetupMode;
 
-NTSTATUS
-LdrProcessModule(PVOID ModuleLoadBase,
-		 PUNICODE_STRING ModuleName,
-		 PLDR_DATA_TABLE_ENTRY *ModuleObject);
-
 typedef struct _SERVICE_GROUP
 {
   LIST_ENTRY GroupListEntry;
@@ -80,6 +75,41 @@
 VOID STDCALL
 IopDeleteDriver(PVOID ObjectBody);
 
+NTSTATUS
+LdrProcessModule(PVOID ModuleLoadBase,
+		 PUNICODE_STRING ModuleName,
+		 PLDR_DATA_TABLE_ENTRY *ModuleObject);
+
+VOID 
+FASTCALL
+INIT_FUNCTION
+IopDisplayLoadingMessage(PVOID ServiceName, 
+                         BOOLEAN Unicode);
+
+static VOID INIT_FUNCTION
+MiFreeBootDriverMemory(PVOID StartAddress, ULONG Length);
+
+NTSTATUS FASTCALL INIT_FUNCTION
+IopInitializeBuiltinDriver(
+   PDEVICE_NODE ModuleDeviceNode,
+   PVOID ModuleLoadBase,
+   PCHAR FileName,
+   ULONG ModuleLength);
+
+static INIT_FUNCTION NTSTATUS
+IopLoadDriver(PSERVICE Service);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IopInitDriverImplementation)
+#pragma alloc_text(INIT, IopDisplayLoadingMessage)
+#pragma alloc_text(INIT, IoCreateDriverList)
+#pragma alloc_text(INIT, IoDestroyDriverList)
+#pragma alloc_text(INIT, MiFreeBootDriverMemory)
+#pragma alloc_text(INIT, IopInitializeBuiltinDriver)
+#pragma alloc_text(INIT, IopLoadDriver)
+#endif
+
+
 /* PRIVATE FUNCTIONS **********************************************************/
 
 VOID 
@@ -1153,7 +1183,7 @@
   return(STATUS_SUCCESS);
 }
 
-VOID STATIC INIT_FUNCTION
+static VOID INIT_FUNCTION
 MiFreeBootDriverMemory(PVOID StartAddress, ULONG Length)
 {
    ULONG i;

Modified: trunk/reactos/ntoskrnl/io/fs.c
--- trunk/reactos/ntoskrnl/io/fs.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/fs.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,9 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IoInitFileSystemImplementation)
+#endif
 
 /* TYPES *******************************************************************/
 

Modified: trunk/reactos/ntoskrnl/io/iomgr.c
--- trunk/reactos/ntoskrnl/io/iomgr.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/iomgr.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -40,6 +40,18 @@
 NPAGED_LOOKASIDE_LIST IoLargeIrpLookaside;
 NPAGED_LOOKASIDE_LIST IoSmallIrpLookaside;
 
+VOID INIT_FUNCTION IopInitLookasideLists(VOID);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IoInitCancelHandling)
+#pragma alloc_text(INIT, IoInitShutdownNotification)
+#pragma alloc_text(INIT, IopInitLookasideLists)
+#pragma alloc_text(INIT, IoInit)
+#pragma alloc_text(INIT, IoInit2)
+#pragma alloc_text(INIT, IoInit3)
+#endif
+
+
 /* INIT FUNCTIONS ************************************************************/
 
 VOID

Modified: trunk/reactos/ntoskrnl/io/plugplay.c
--- trunk/reactos/ntoskrnl/io/plugplay.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/plugplay.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,9 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IopInitPlugPlayEvents)
+#endif
 
 typedef struct _PNP_EVENT_ENTRY
 {

Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
--- trunk/reactos/ntoskrnl/io/pnpmgr.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/pnpmgr.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -97,7 +97,16 @@
 	0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
 };
 
+static NTSTATUS INIT_FUNCTION
+IopSetRootDeviceInstanceData(PDEVICE_NODE DeviceNode);
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IopSetRootDeviceInstanceData)
+#pragma alloc_text(INIT, PnpInit)
+#pragma alloc_text(INIT, PnpInit2)
+#endif
+
+
 /* FUNCTIONS *****************************************************************/
 
 PDEVICE_NODE FASTCALL

Modified: trunk/reactos/ntoskrnl/io/pnpnotify.c
--- trunk/reactos/ntoskrnl/io/pnpnotify.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/pnpnotify.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,11 @@
 #include <ntoskrnl.h>
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IopInitPnpNotificationImplementation)
+#endif
+
+
 /* TYPES *******************************************************************/
 
 typedef struct _PNP_NOTIFY_ENTRY

Modified: trunk/reactos/ntoskrnl/io/vpb.c
--- trunk/reactos/ntoskrnl/io/vpb.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/io/vpb.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, IoInitVpbImplementation)
+#endif
+
+
 /* GLOBALS *******************************************************************/
 
 static KSPIN_LOCK IoVpbLock;

Modified: trunk/reactos/ntoskrnl/kd/kdinit.c
--- trunk/reactos/ntoskrnl/kd/kdinit.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/kd/kdinit.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -11,6 +11,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, KdInitSystem)
+#endif
+
+
 /* Make bochs debug output in the very early boot phase available */
 //#define AUTO_ENABLE_BOCHS
 

Modified: trunk/reactos/ntoskrnl/ke/bug.c
--- trunk/reactos/ntoskrnl/ke/bug.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/bug.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, KiInitializeBugCheck)
+#endif
+
 /* GLOBALS ******************************************************************/
 
 static LIST_ENTRY BugcheckCallbackListHead = {NULL,NULL};

Modified: trunk/reactos/ntoskrnl/ke/clock.c
--- trunk/reactos/ntoskrnl/ke/clock.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/clock.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -20,6 +20,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, KiInitializeSystemClock)
+#endif
+
 /* GLOBALS ****************************************************************/
 
 /*

Modified: trunk/reactos/ntoskrnl/ke/device.c
--- trunk/reactos/ntoskrnl/ke/device.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/device.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -11,6 +11,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, KeFindConfigurationEntry)
+#pragma alloc_text(INIT, KeFindConfigurationNextEntry)
+#endif
+
 /*
  * @implemented
  */

Modified: trunk/reactos/ntoskrnl/ke/dpc.c
--- trunk/reactos/ntoskrnl/ke/dpc.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/dpc.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -21,6 +21,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, KeInitDpc)
+#endif
+
+
 /* TYPES *******************************************************************/
 
 #define MAX_QUANTUM 0x7F

Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
--- trunk/reactos/ntoskrnl/ke/i386/exp.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/i386/exp.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, KeInitExceptions)
+#endif
+
+
 /*
  * FIXMES:
  *  - Put back VEH.

Modified: trunk/reactos/ntoskrnl/ke/i386/kernel.c
--- trunk/reactos/ntoskrnl/ke/i386/kernel.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/i386/kernel.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -29,9 +29,20 @@
 extern PVOID Ki386InitialStackArray[MAXIMUM_PROCESSORS];
 extern ULONG IdleProcessorMask;
 
+static VOID INIT_FUNCTION Ki386GetCpuId(VOID);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, Ki386GetCpuId)
+#pragma alloc_text(INIT, KeCreateApplicationProcessorIdleThread)
+#pragma alloc_text(INIT, KePrepareForApplicationProcessorInit)
+#pragma alloc_text(INIT, KeInit1)
+#pragma alloc_text(INIT, KeInit2)
+#pragma alloc_text(INIT, Ki386SetProcessorFeatures)
+#endif
+
 /* FUNCTIONS *****************************************************************/
 
-VOID INIT_FUNCTION STATIC
+static VOID INIT_FUNCTION
 Ki386GetCpuId(VOID)
 {
    ULONG OrigFlags, Flags, FinalFlags;

Modified: trunk/reactos/ntoskrnl/ke/i386/tss.c
--- trunk/reactos/ntoskrnl/ke/i386/tss.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/i386/tss.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, Ki386BootInitializeTSS)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 typedef struct _KTSSNOIOPM

Modified: trunk/reactos/ntoskrnl/ke/i386/vdm.c
--- trunk/reactos/ntoskrnl/ke/i386/vdm.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/i386/vdm.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -13,6 +13,11 @@
 #include <ntoskrnl.h>
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, NtEarlyInitVdm)
+#endif
+
+
 /* GLOBALS *******************************************************************/
 
 static UCHAR OrigIVT[1024];

Modified: trunk/reactos/ntoskrnl/ke/main.c
--- trunk/reactos/ntoskrnl/ke/main.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/main.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -64,6 +64,12 @@
 extern unsigned int _image_base__;
 ULONG_PTR KERNEL_BASE = (ULONG_PTR)&_image_base__;
 
+VOID INIT_FUNCTION _main(ULONG MultiBootMagic, PLOADER_PARAMETER_BLOCK _LoaderBlock);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, _main)
+#endif
+
 /* FUNCTIONS ****************************************************************/
 
 /*

Modified: trunk/reactos/ntoskrnl/ke/usercall.c
--- trunk/reactos/ntoskrnl/ke/usercall.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ke/usercall.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -13,6 +13,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, PsInitialiseW32Call)
+#endif
+
 /* FUNCTIONS *****************************************************************/
 
 #if ALEX_CB_REWRITE

Modified: trunk/reactos/ntoskrnl/ldr/loader.c
--- trunk/reactos/ntoskrnl/ldr/loader.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/ldr/loader.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -34,6 +34,12 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, LdrInit1)
+#pragma alloc_text(INIT, LdrInitModuleManagement)
+#pragma alloc_text(INIT, LdrSafePEProcessModule)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 LIST_ENTRY ModuleListHead;

Modified: trunk/reactos/ntoskrnl/lpc/port.c
--- trunk/reactos/ntoskrnl/lpc/port.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/lpc/port.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, LpcpInitSystem)
+#endif
+ 
 
 /* GLOBALS *******************************************************************/
 

Modified: trunk/reactos/ntoskrnl/mm/aspace.c
--- trunk/reactos/ntoskrnl/mm/aspace.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/aspace.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -13,6 +13,11 @@
 #include <ntoskrnl.h>
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializeKernelAddressSpace)
+#endif
+
+
 /* GLOBALS ******************************************************************/
 
 STATIC MADDRESS_SPACE KernelAddressSpace;

Modified: trunk/reactos/ntoskrnl/mm/balance.c
--- trunk/reactos/ntoskrnl/mm/balance.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/balance.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,13 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializeBalancer)
+#pragma alloc_text(INIT, MmInitializeMemoryConsumer)
+#pragma alloc_text(INIT, MiInitBalancerThread)
+#endif
+
+
 /* TYPES ********************************************************************/
 typedef struct _MM_ALLOCATION_REQUEST
 {

Modified: trunk/reactos/ntoskrnl/mm/freelist.c
--- trunk/reactos/ntoskrnl/mm/freelist.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/freelist.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -15,6 +15,12 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializePageList)
+#pragma alloc_text(INIT, MmInitZeroPageThread)
+#endif
+
+
 /* TYPES *******************************************************************/
 
 #define MM_PHYSICAL_PAGE_FREE    (0x1)

Modified: trunk/reactos/ntoskrnl/mm/i386/page.c
--- trunk/reactos/ntoskrnl/mm/i386/page.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/i386/page.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,12 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitGlobalKernelPageDirectory)
+#pragma alloc_text(INIT, MiInitPageDirectoryMap)
+#endif
+
+
 /* GLOBALS *****************************************************************/
 
 #define PA_BIT_PRESENT   (0)

Modified: trunk/reactos/ntoskrnl/mm/marea.c
--- trunk/reactos/ntoskrnl/mm/marea.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/marea.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -47,6 +47,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitMemoryAreas)
+#endif
+
 /* #define VALIDATE_MEMORY_AREAS */
 
 /* FUNCTIONS *****************************************************************/

Modified: trunk/reactos/ntoskrnl/mm/mdl.c
--- trunk/reactos/ntoskrnl/mm/mdl.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/mdl.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializeMdlImplementation)
+#endif
+
 /* GLOBALS *******************************************************************/
 
 #define TAG_MDL    TAG('M', 'D', 'L', ' ')

Modified: trunk/reactos/ntoskrnl/mm/mminit.c
--- trunk/reactos/ntoskrnl/mm/mminit.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/mminit.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -39,6 +39,15 @@
 extern ULONG init_stack;
 extern ULONG init_stack_top;
 
+VOID INIT_FUNCTION NTAPI MmInitVirtualMemory(ULONG_PTR LastKernelAddress, ULONG KernelLength);
+
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitVirtualMemory)
+#pragma alloc_text(INIT, MmInit1)
+#pragma alloc_text(INIT, MmInit2)
+#pragma alloc_text(INIT, MmInit3)
+#endif
+
 /* FUNCTIONS ****************************************************************/
 
 /*

Modified: trunk/reactos/ntoskrnl/mm/npool.c
--- trunk/reactos/ntoskrnl/mm/npool.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/npool.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -17,6 +17,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MiInitializeNonPagedPool)
+#endif
+
 #ifdef ENABLE_VALIDATE_POOL
 #define VALIDATE_POOL validate_kernel_pool()
 #else

Modified: trunk/reactos/ntoskrnl/mm/pagefile.c
--- trunk/reactos/ntoskrnl/mm/pagefile.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/pagefile.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -32,6 +32,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitPagingFile)
+#endif
+
+
 /* TYPES *********************************************************************/
 
 typedef struct _PAGINGFILE

Modified: trunk/reactos/ntoskrnl/mm/pageop.c
--- trunk/reactos/ntoskrnl/mm/pageop.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/pageop.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,11 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializePageOp)
+#endif
+ 
+
 /* GLOBALS *******************************************************************/
 
 #define PAGEOP_HASH_TABLE_SIZE       (32)

Modified: trunk/reactos/ntoskrnl/mm/ppool.c
--- trunk/reactos/ntoskrnl/mm/ppool.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/ppool.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -19,6 +19,10 @@
 #include <internal/debug.h>
 #endif//PPOOL_UMODE_TEST
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializePagedPool)
+#endif
+
 #undef ASSERT
 #define ASSERT(x) if (!(x)) {DbgPrint("Assertion "#x" failed at %s:%d\n", __FILE__,__LINE__); KeBugCheck(0); }
 

Modified: trunk/reactos/ntoskrnl/mm/process.c
--- trunk/reactos/ntoskrnl/mm/process.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/process.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -206,7 +206,7 @@
     /* Allocate the PEB */
     Peb = MiCreatePebOrTeb(Process,
                            (PVOID)((ULONG_PTR)MM_HIGHEST_VAD_ADDRESS + 1));
-    ASSERT(Peb == (PVOID)0x7FFDF000)
+    ASSERT(Peb == (PVOID)0x7FFDF000);
 
     /* Map NLS Tables */
     DPRINT("Mapping NLS\n");

Modified: trunk/reactos/ntoskrnl/mm/rmap.c
--- trunk/reactos/ntoskrnl/mm/rmap.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/rmap.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -14,6 +14,10 @@
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializeRmapList)
+#endif
+
 /* TYPES ********************************************************************/
 
 typedef struct _MM_RMAP_ENTRY

Modified: trunk/reactos/ntoskrnl/mm/section.c
--- trunk/reactos/ntoskrnl/mm/section.c	2005-11-28 23:21:24 UTC (rev 19731)
+++ trunk/reactos/ntoskrnl/mm/section.c	2005-11-28 23:25:31 UTC (rev 19732)
@@ -49,9 +49,14 @@
 #include <ntoskrnl.h>
 #define NDEBUG
 #include <internal/debug.h>
-
[truncated at 1000 lines; 279 more skipped]