https://git.reactos.org/?p=reactos.git;a=commitdiff;h=71fefa32db013317842fd9...
commit 71fefa32db013317842fd9224b63bcf5f72f2e32 Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Sun Dec 30 12:19:11 2018 +0100 Commit: GitHub noreply@github.com CommitDate: Sun Dec 30 12:19:11 2018 +0100
[NDK][NTOS] Add global definition of INIT_FUNCTION/INIT_SECTION (#779)
* Add an NDK header to define INIT_FUNCTION/INIT_SECTION globally * Use _declspec(allocate(x)) and _declspec(code_seg(x)) on MSVC versions that support it * Use INIT_FUNCTION on functions only and INIT_SECTION on data only (required by MSVC) * Place INIT_FUNCTION before the return type (required by MSVC) * Make sure declarations and implementations share the same modifiers (required by MSVC) * Add a global linker option to suppress warnings about defined but unused INIT section * Merge INIT section into .text in freeldr --- boot/freeldr/freeldr/CMakeLists.txt | 4 ++-- boot/freeldr/freeldr/freeldr_i386.lds | 2 ++ drivers/filesystems/fastfat/fastio.c | 2 +- drivers/filesystems/fastfat/iface.c | 2 +- drivers/filesystems/fastfat/vfat.h | 9 +++----- drivers/filesystems/mup/dfs.c | 2 +- drivers/filesystems/mup/dfs.h | 10 +++++++++ drivers/filesystems/mup/mup.c | 9 +++++--- drivers/filesystems/mup/mup.h | 7 +----- drivers/filesystems/ntfs/ntfs.c | 4 ++-- drivers/filesystems/ntfs/ntfs.h | 9 +++----- hal/halx86/acpi/busemul.c | 1 + hal/halx86/acpi/halacpi.c | 7 ++++++ hal/halx86/apic/rtctimer.c | 2 +- hal/halx86/generic/cmos.c | 2 +- hal/halx86/generic/dma.c | 2 +- hal/halx86/generic/halinit.c | 5 +++-- hal/halx86/generic/misc.c | 4 ++-- hal/halx86/generic/timer.c | 2 +- hal/halx86/generic/usage.c | 17 +++++++++------ hal/halx86/include/bus.h | 5 +++++ hal/halx86/include/halacpi.h | 1 + hal/halx86/include/halp.h | 26 ++++++++++++++-------- hal/halx86/legacy/bus/pcibus.c | 10 ++++----- hal/halx86/legacy/bus/sysbus.c | 1 + hal/halx86/legacy/bussupp.c | 41 ++++++++++++++++++++++------------- hal/halx86/legacy/halpcat.c | 12 +++++----- hal/halx86/up/halinit_mini.c | 1 + ntoskrnl/cache/newcc.h | 3 +++ ntoskrnl/cc/cacheman.c | 4 ++-- ntoskrnl/config/cmalloc.c | 4 ++-- ntoskrnl/config/cmboot.c | 20 ++++++++--------- ntoskrnl/config/cmconfig.c | 6 ++--- ntoskrnl/config/cmcontrl.c | 6 ++--- ntoskrnl/config/cmdata.c | 8 +++---- ntoskrnl/config/cmdelay.c | 4 ++-- ntoskrnl/config/cmhook.c | 2 +- ntoskrnl/config/cmkcbncb.c | 2 +- ntoskrnl/config/cmsysini.c | 20 ++++++++--------- ntoskrnl/ex/handle.c | 2 +- ntoskrnl/ex/hdlsterm.c | 2 +- ntoskrnl/ex/init.c | 24 ++++++++++---------- ntoskrnl/ex/lookas.c | 6 ++--- ntoskrnl/ex/pushlock.c | 2 +- ntoskrnl/ex/resource.c | 2 +- ntoskrnl/ex/xipdisp.c | 4 ++-- ntoskrnl/fsrtl/fsrtlpc.c | 4 ++-- ntoskrnl/fsrtl/stackovf.c | 2 +- ntoskrnl/inbv/inbv.c | 18 +++++++-------- ntoskrnl/include/internal/amd64/mm.h | 1 + ntoskrnl/include/internal/cc.h | 3 +++ ntoskrnl/include/internal/cm.h | 17 ++++++++++++++- ntoskrnl/include/internal/dbgk.h | 1 + ntoskrnl/include/internal/ex.h | 20 +++++++++++++++++ ntoskrnl/include/internal/fsrtl.h | 3 +++ ntoskrnl/include/internal/i386/ke.h | 21 +++++++++++++++++- ntoskrnl/include/internal/inbv.h | 8 +++++++ ntoskrnl/include/internal/io.h | 13 +++++++++++ ntoskrnl/include/internal/ke.h | 9 ++++++++ ntoskrnl/include/internal/lpc.h | 1 + ntoskrnl/include/internal/mm.h | 15 ++++++++++++- ntoskrnl/include/internal/ntoskrnl.h | 11 +--------- ntoskrnl/include/internal/ob.h | 3 +++ ntoskrnl/include/internal/po.h | 2 ++ ntoskrnl/include/internal/ps.h | 4 ++++ ntoskrnl/include/internal/se.h | 7 ++++++ ntoskrnl/io/iomgr/arcname.c | 12 +++++----- ntoskrnl/io/iomgr/driver.c | 8 +++---- ntoskrnl/io/iomgr/ramdisk.c | 2 +- ntoskrnl/io/iomgr/rawfs.c | 2 +- ntoskrnl/io/pnpmgr/pnpinit.c | 4 ++-- ntoskrnl/io/pnpmgr/pnpmgr.c | 10 ++++++--- ntoskrnl/ke/amd64/kiinit.c | 2 ++ ntoskrnl/ke/config.c | 4 ++-- ntoskrnl/ke/i386/cpu.c | 32 +++++++++++++-------------- ntoskrnl/ke/i386/kiinit.c | 12 +++++----- ntoskrnl/ke/i386/mtrr.c | 4 ++-- ntoskrnl/ke/i386/patpge.c | 6 ++--- ntoskrnl/ke/krnlinit.c | 8 +++---- ntoskrnl/lpc/port.c | 2 +- ntoskrnl/mm/ARM3/expool.c | 6 ++--- ntoskrnl/mm/ARM3/i386/init.c | 6 ++--- ntoskrnl/mm/ARM3/largepag.c | 6 ++--- ntoskrnl/mm/ARM3/miarm.h | 20 ++++++++++++++++- ntoskrnl/mm/ARM3/mminit.c | 40 +++++++++++++++++----------------- ntoskrnl/mm/ARM3/pool.c | 6 ++--- ntoskrnl/mm/ARM3/procsup.c | 4 ++-- ntoskrnl/mm/ARM3/sysldr.c | 12 +++++----- ntoskrnl/mm/ARM3/syspte.c | 2 +- ntoskrnl/mm/mminit.c | 10 ++++----- ntoskrnl/ob/obinit.c | 2 +- ntoskrnl/ob/obname.c | 4 ++-- ntoskrnl/ob/obsdcach.c | 2 +- ntoskrnl/po/power.c | 4 ++-- ntoskrnl/ps/apphelp.c | 2 +- ntoskrnl/ps/job.c | 2 +- ntoskrnl/ps/psmgr.c | 18 +++++++-------- ntoskrnl/ps/quota.c | 2 +- ntoskrnl/se/semgr.c | 9 ++++---- ntoskrnl/vdm/vdmmain.c | 4 ++-- sdk/cmake/msvc.cmake | 6 ++--- sdk/include/ndk/halfuncs.h | 3 +++ sdk/include/ndk/inbvfuncs.h | 2 ++ sdk/include/ndk/kefuncs.h | 3 +++ sdk/include/ndk/section_attribs.h | 41 +++++++++++++++++++++++++++++++++++ win32ss/gdi/eng/ldevobj.h | 1 + win32ss/user/ntuser/main.c | 2 +- win32ss/win32kp.h | 8 ------- 108 files changed, 522 insertions(+), 296 deletions(-)
diff --git a/boot/freeldr/freeldr/CMakeLists.txt b/boot/freeldr/freeldr/CMakeLists.txt index 762b53e396..3b5698133c 100644 --- a/boot/freeldr/freeldr/CMakeLists.txt +++ b/boot/freeldr/freeldr/CMakeLists.txt @@ -233,8 +233,8 @@ if(MSVC) add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER") add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER") else() - add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") - add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") + add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:INIT=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") + add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:INIT=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") endif() else() add_target_link_flags(freeldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds") diff --git a/boot/freeldr/freeldr/freeldr_i386.lds b/boot/freeldr/freeldr/freeldr_i386.lds index 36a44ee7ad..5cb2cb6c7b 100644 --- a/boot/freeldr/freeldr/freeldr_i386.lds +++ b/boot/freeldr/freeldr/freeldr_i386.lds @@ -4,6 +4,8 @@ SECTIONS { *(.text) *(SORT(.text*)) + *(INIT) + *(SORT(INIT*)) *(.data) *(SORT(.data*)) *(.rdata) diff --git a/drivers/filesystems/fastfat/fastio.c b/drivers/filesystems/fastfat/fastio.c index 248f39f5bf..428fdbb220 100644 --- a/drivers/filesystems/fastfat/fastio.c +++ b/drivers/filesystems/fastfat/fastio.c @@ -753,7 +753,7 @@ VfatReleaseFromLazyWrite( ExReleaseResourceLite(&(Fcb->MainResource)); }
-INIT_SECTION +INIT_FUNCTION VOID VfatInitFastIoRoutines( PFAST_IO_DISPATCH FastIoDispatch) diff --git a/drivers/filesystems/fastfat/iface.c b/drivers/filesystems/fastfat/iface.c index c98e64f02b..f4c6608a3e 100644 --- a/drivers/filesystems/fastfat/iface.c +++ b/drivers/filesystems/fastfat/iface.c @@ -48,7 +48,7 @@ PVFAT_GLOBAL_DATA VfatGlobalData; * RegistryPath = path to our configuration entries * RETURNS: Success or failure */ -INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI DriverEntry( diff --git a/drivers/filesystems/fastfat/vfat.h b/drivers/filesystems/fastfat/vfat.h index 77b2998dad..48923cdc94 100644 --- a/drivers/filesystems/fastfat/vfat.h +++ b/drivers/filesystems/fastfat/vfat.h @@ -5,17 +5,12 @@ #include <ntdddisk.h> #include <dos.h> #include <pseh/pseh2.h> +#include <section_attribs.h> #ifdef KDBG #include <ndk/kdfuncs.h> #include <reactos/kdros.h> #endif
-#ifdef __GNUC__ -#define INIT_SECTION __attribute__((section ("INIT"))) -#else -#define INIT_SECTION /* Done via alloc_text for MSC */ -#endif -
#define USE_ROS_CC_AND_FS #define ENABLE_SWAPOUT @@ -823,6 +818,7 @@ VfatSetExtendedAttributes(
/* fastio.c */
+INIT_FUNCTION VOID VfatInitFastIoRoutines( PFAST_IO_DISPATCH FastIoDispatch); @@ -1127,6 +1123,7 @@ VfatFileSystemControl(
/* iface.c */
+INIT_FUNCTION NTSTATUS NTAPI DriverEntry( diff --git a/drivers/filesystems/mup/dfs.c b/drivers/filesystems/mup/dfs.c index 05371e357b..13a4fe205d 100644 --- a/drivers/filesystems/mup/dfs.c +++ b/drivers/filesystems/mup/dfs.c @@ -82,7 +82,7 @@ DfsUnload(PDRIVER_OBJECT DriverObject) UNIMPLEMENTED; }
-INIT_SECTION +INIT_FUNCTION NTSTATUS DfsDriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) diff --git a/drivers/filesystems/mup/dfs.h b/drivers/filesystems/mup/dfs.h index 107cb16be5..d158a055ab 100644 --- a/drivers/filesystems/mup/dfs.h +++ b/drivers/filesystems/mup/dfs.h @@ -1,6 +1,15 @@ #ifndef _DFS_PCH_ #define _DFS_PCH_
+#ifndef INIT_SECTION +#ifdef __GNUC__ +#define INIT_SECTION __attribute__((section ("INIT"))) +#else +#define INIT_SECTION /* Done via alloc_text for MSC */ +#endif +#define INIT_FUNCTION INIT_SECTION +#endif + #define DFS_OPEN_CONTEXT 0xFF444653 #define DFS_DOWNLEVEL_OPEN_CONTEXT 0x11444653 #define DFS_CSCAGENT_NAME_CONTEXT 0xAAAAAAAA @@ -49,6 +58,7 @@ DfsUnload( PDRIVER_OBJECT DriverObject );
+INIT_FUNCTION NTSTATUS DfsDriverEntry( PDRIVER_OBJECT DriverObject, diff --git a/drivers/filesystems/mup/mup.c b/drivers/filesystems/mup/mup.c index e8cc8d7e9b..64a277a465 100644 --- a/drivers/filesystems/mup/mup.c +++ b/drivers/filesystems/mup/mup.c @@ -32,6 +32,7 @@ #define NDEBUG #include <debug.h>
+INIT_FUNCTION NTSTATUS NTAPI DriverEntry( @@ -39,11 +40,13 @@ DriverEntry( PUNICODE_STRING RegistryPath );
+INIT_FUNCTION VOID MupInitializeData( VOID );
+INIT_FUNCTION VOID MupInitializeVcb( PMUP_VCB Vcb @@ -76,7 +79,7 @@ NTSTATUS MupOrderedErrorList[] = { STATUS_UNSUCCESSFUL,
/* FUNCTIONS ****************************************************************/
-INIT_SECTION +INIT_FUNCTION VOID MupInitializeData(VOID) { @@ -102,7 +105,7 @@ MupUninitializeData() ExDeleteResourceLite(&MupVcbLock); }
-INIT_SECTION +INIT_FUNCTION VOID MupInitializeVcb(PMUP_VCB Vcb) { @@ -2507,7 +2510,7 @@ MupUnload(PDRIVER_OBJECT DriverObject) * RegistryPath = path to our configuration entries * RETURNS: Success or failure */ -INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, diff --git a/drivers/filesystems/mup/mup.h b/drivers/filesystems/mup/mup.h index 810ddc6ec5..ad1aaf549c 100644 --- a/drivers/filesystems/mup/mup.h +++ b/drivers/filesystems/mup/mup.h @@ -5,12 +5,7 @@ #include <ntifs.h> #include <pseh/pseh2.h> #include <ndk/muptypes.h> - -#ifdef __GNUC__ -#define INIT_SECTION __attribute__((section ("INIT"))) -#else -#define INIT_SECTION /* Done via alloc_text for MSC */ -#endif +#include <section_attribs.h>
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S)) #define IO_METHOD_FROM_CTL_CODE(C) (C & 0x00000003) diff --git a/drivers/filesystems/ntfs/ntfs.c b/drivers/filesystems/ntfs/ntfs.c index c29badab08..a102439cf9 100644 --- a/drivers/filesystems/ntfs/ntfs.c +++ b/drivers/filesystems/ntfs/ntfs.c @@ -49,7 +49,7 @@ PNTFS_GLOBAL_DATA NtfsGlobalData = NULL; * RegistryPath = path to our configuration entries * RETURNS: Success or failure */ -INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, @@ -169,7 +169,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject, * DriverObject = object describing this driver * RETURNS: Nothing */ -INIT_SECTION +INIT_FUNCTION VOID NTAPI NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject) diff --git a/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h index a0cb6ab7cd..c50a077e1c 100644 --- a/drivers/filesystems/ntfs/ntfs.h +++ b/drivers/filesystems/ntfs/ntfs.h @@ -3,12 +3,7 @@
#include <ntifs.h> #include <pseh/pseh2.h> - -#ifdef __GNUC__ -#define INIT_SECTION __attribute__((section ("INIT"))) -#else -#define INIT_SECTION /* Done via alloc_text for MSC */ -#endif +#include <section_attribs.h>
#define CACHEPAGESIZE(pDeviceExt) \ ((pDeviceExt)->NtfsInfo.UCHARsPerCluster > PAGE_SIZE ? \ @@ -1260,8 +1255,10 @@ NtfsSetVolumeInformation(PNTFS_IRP_CONTEXT IrpContext);
/* ntfs.c */
+INIT_FUNCTION DRIVER_INITIALIZE DriverEntry;
+INIT_FUNCTION VOID NTAPI NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject); diff --git a/hal/halx86/acpi/busemul.c b/hal/halx86/acpi/busemul.c index 87ff519994..d63c89cce5 100644 --- a/hal/halx86/acpi/busemul.c +++ b/hal/halx86/acpi/busemul.c @@ -16,6 +16,7 @@
/* PRIVATE FUNCTIONS **********************************************************/
+INIT_FUNCTION VOID NTAPI HalpRegisterKdSupportFunctions(VOID) diff --git a/hal/halx86/acpi/halacpi.c b/hal/halx86/acpi/halacpi.c index 8b9f204717..7f2779e19c 100644 --- a/hal/halx86/acpi/halacpi.c +++ b/hal/halx86/acpi/halacpi.c @@ -786,6 +786,7 @@ HaliAcpiTimerInit(IN ULONG TimerPort, //HalaAcpiTimerInit(TimerPort, TimerValExt); }
+INIT_FUNCTION NTSTATUS NTAPI HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) @@ -906,6 +907,7 @@ HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return STATUS_SUCCESS; }
+INIT_FUNCTION VOID NTAPI HalpInitializePciBus(VOID) @@ -927,6 +929,7 @@ HalpInitNonBusHandler(VOID) HalFindBusAddressTranslation = HalpFindBusAddressTranslation; }
+INIT_FUNCTION VOID NTAPI HalpInitBusHandlers(VOID) @@ -935,6 +938,7 @@ HalpInitBusHandlers(VOID) HalpInitNonBusHandler(); }
+INIT_FUNCTION VOID NTAPI HalpBuildAddressMap(VOID) @@ -942,6 +946,7 @@ HalpBuildAddressMap(VOID) /* ACPI is magic baby */ }
+INIT_FUNCTION BOOLEAN NTAPI HalpGetDebugPortTable(VOID) @@ -950,6 +955,7 @@ HalpGetDebugPortTable(VOID) (HalpDebugPortTable->BaseAddress.AddressSpaceID == 1)); }
+INIT_FUNCTION ULONG NTAPI HalpIs16BitPortDecodeSupported(VOID) @@ -1059,6 +1065,7 @@ HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requiremen /* * @implemented */ +INIT_FUNCTION VOID NTAPI HalReportResourceUsage(VOID) diff --git a/hal/halx86/apic/rtctimer.c b/hal/halx86/apic/rtctimer.c index b4ffd6c115..afd3d9dab5 100644 --- a/hal/halx86/apic/rtctimer.c +++ b/hal/halx86/apic/rtctimer.c @@ -64,7 +64,7 @@ RtcSetClockRate(UCHAR ClockRate) HalpReleaseCmosSpinLock(); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpInitializeClock(VOID) diff --git a/hal/halx86/generic/cmos.c b/hal/halx86/generic/cmos.c index a8c8d794b4..689883bcc5 100644 --- a/hal/halx86/generic/cmos.c +++ b/hal/halx86/generic/cmos.c @@ -154,7 +154,7 @@ HalpSetCmosData(IN ULONG BusNumber, return Length - Len; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpInitializeCmos(VOID) diff --git a/hal/halx86/generic/dma.c b/hal/halx86/generic/dma.c index 48748c7d5a..7bcfc33e03 100644 --- a/hal/halx86/generic/dma.c +++ b/hal/halx86/generic/dma.c @@ -133,7 +133,7 @@ static DMA_OPERATIONS HalpDmaOperations = { /* FUNCTIONS *****************************************************************/
#ifndef _MINIHAL_ -INIT_SECTION +INIT_FUNCTION VOID HalpInitDma(VOID) { diff --git a/hal/halx86/generic/halinit.c b/hal/halx86/generic/halinit.c index f03038b608..002605deb9 100644 --- a/hal/halx86/generic/halinit.c +++ b/hal/halx86/generic/halinit.c @@ -12,6 +12,7 @@ #define NDEBUG #include <debug.h>
+INIT_FUNCTION VOID NTAPI HalpGetParameters( @@ -29,7 +30,7 @@ BOOLEAN HalpPciLockSettings;
/* PRIVATE FUNCTIONS *********************************************************/
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpGetParameters(IN PLOADER_PARAMETER_BLOCK LoaderBlock) @@ -76,7 +77,7 @@ HalInitializeProcessor( /* * @implemented */ -INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalInitSystem(IN ULONG BootPhase, diff --git a/hal/halx86/generic/misc.c b/hal/halx86/generic/misc.c index b1ca888802..866b459106 100644 --- a/hal/halx86/generic/misc.c +++ b/hal/halx86/generic/misc.c @@ -27,7 +27,7 @@ CHAR HalpSerialNumber[31]; /* PRIVATE FUNCTIONS **********************************************************/
#ifndef _MINIHAL_ -INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpReportSerialNumber(VOID) @@ -58,7 +58,7 @@ HalpReportSerialNumber(VOID) } }
-INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HalpMarkAcpiHal(VOID) diff --git a/hal/halx86/generic/timer.c b/hal/halx86/generic/timer.c index 3b3f77803e..35606b96ec 100644 --- a/hal/halx86/generic/timer.c +++ b/hal/halx86/generic/timer.c @@ -111,7 +111,7 @@ HalpSetTimerRollOver(USHORT RollOver) __writeeflags(Flags); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpInitializeClock(VOID) diff --git a/hal/halx86/generic/usage.c b/hal/halx86/generic/usage.c index 725aa42357..5f94fee5f5 100644 --- a/hal/halx86/generic/usage.c +++ b/hal/halx86/generic/usage.c @@ -12,6 +12,7 @@ #define NDEBUG #include <debug.h>
+INIT_FUNCTION VOID NTAPI HalpGetResourceSortValue( @@ -20,6 +21,7 @@ HalpGetResourceSortValue( OUT PLARGE_INTEGER Value );
+INIT_FUNCTION VOID NTAPI HalpBuildPartialFromIdt( @@ -28,6 +30,7 @@ HalpBuildPartialFromIdt( IN PCM_PARTIAL_RESOURCE_DESCRIPTOR TranslatedDescriptor );
+INIT_FUNCTION VOID NTAPI HalpBuildPartialFromAddress( @@ -97,7 +100,7 @@ ADDRESS_USAGE HalpDefaultIoSpace = /* FUNCTIONS ******************************************************************/
#ifndef _MINIHAL_ -INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpGetResourceSortValue(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, @@ -137,7 +140,7 @@ HalpGetResourceSortValue(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, } }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpBuildPartialFromIdt(IN ULONG Entry, @@ -175,7 +178,7 @@ HalpBuildPartialFromIdt(IN ULONG Entry, TranslatedDescriptor->u.Interrupt.Level = HalpIDTUsage[Entry].Irql; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface, @@ -243,7 +246,7 @@ HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface, } }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpReportResourceUsage(IN PUNICODE_STRING HalName, @@ -522,7 +525,7 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName, } #endif
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpRegisterVector(IN UCHAR Flags, @@ -539,7 +542,7 @@ HalpRegisterVector(IN UCHAR Flags, }
#ifndef _MINIHAL_ -INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpEnableInterruptHandler(IN UCHAR Flags, @@ -562,7 +565,7 @@ HalpEnableInterruptHandler(IN UCHAR Flags, HalEnableSystemInterrupt(SystemVector, Irql, Mode); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpGetNMICrashFlag(VOID) diff --git a/hal/halx86/include/bus.h b/hal/halx86/include/bus.h index 56d3e5507f..755595c3ae 100644 --- a/hal/halx86/include/bus.h +++ b/hal/halx86/include/bus.h @@ -282,6 +282,7 @@ extern PCI_CONFIG_HANDLER PCIConfigHandler; extern PCI_CONFIG_HANDLER PCIConfigHandlerType1; extern PCI_CONFIG_HANDLER PCIConfigHandlerType2;
+INIT_FUNCTION PPCI_REGISTRY_INFO_INTERNAL NTAPI HalpQueryPciRegistryInfo( @@ -425,12 +426,14 @@ HalpSetCmosData( IN ULONG Length );
+INIT_FUNCTION VOID NTAPI HalpInitializePciBus( VOID );
+INIT_FUNCTION VOID NTAPI HalpInitializePciStubs( @@ -470,6 +473,7 @@ HalpFindBusAddressTranslation( IN BOOLEAN NextBus );
+INIT_FUNCTION VOID NTAPI HalpRegisterPciDebuggingDeviceInfo( @@ -606,6 +610,7 @@ HalpTranslateIsaBusAddress( OUT PPHYSICAL_ADDRESS TranslatedAddress );
+INIT_FUNCTION ULONG NTAPI HalpGetSystemInterruptVector( diff --git a/hal/halx86/include/halacpi.h b/hal/halx86/include/halacpi.h index 8f51fdf369..a4a68f6793 100644 --- a/hal/halx86/include/halacpi.h +++ b/hal/halx86/include/halacpi.h @@ -24,6 +24,7 @@ HalpAcpiGetTable( IN ULONG Signature );
+INIT_FUNCTION NTSTATUS NTAPI HalpSetupAcpiPhase0( diff --git a/hal/halx86/include/halp.h b/hal/halx86/include/halp.h index a8e935ff9b..190bfe8463 100644 --- a/hal/halx86/include/halp.h +++ b/hal/halx86/include/halp.h @@ -4,13 +4,6 @@
#pragma once
-#if defined(__GNUC__) && !defined(_MINIHAL_) -#define INIT_SECTION __attribute__((section ("INIT"))) -#else -#define INIT_SECTION /* Done via alloc_text for MSC */ -#endif - - #ifdef CONFIG_SMP #define HAL_BUILD_TYPE (DBG ? PRCB_BUILD_DEBUG : 0) #else @@ -556,6 +549,7 @@ typedef struct _HalAddressUsage PADAPTER_OBJECT NTAPI HalpAllocateAdapterEx(ULONG NumberOfMapRegisters,BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses);
/* sysinfo.c */ +INIT_FUNCTION VOID NTAPI HalpRegisterVector(IN UCHAR Flags, @@ -563,6 +557,7 @@ HalpRegisterVector(IN UCHAR Flags, IN ULONG SystemVector, IN KIRQL Irql);
+INIT_FUNCTION VOID NTAPI HalpEnableInterruptHandler(IN UCHAR Flags, @@ -584,7 +579,7 @@ DECLSPEC_NORETURN VOID FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME Tr extern BOOLEAN HalpProfilingStopped;
/* timer.c */ -VOID NTAPI HalpInitializeClock(VOID); +INIT_FUNCTION VOID NTAPI HalpInitializeClock(VOID); VOID __cdecl HalpClockInterrupt(VOID); VOID __cdecl HalpProfileInterrupt(VOID);
@@ -596,7 +591,7 @@ HalpCalibrateStallExecution(VOID); VOID HalpInitPciBus (VOID);
/* dma.c */ -VOID HalpInitDma (VOID); +INIT_FUNCTION VOID HalpInitDma (VOID);
/* Non-generic initialization */ VOID HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock); @@ -615,12 +610,14 @@ HalpCheckPowerButton( VOID );
+INIT_FUNCTION VOID NTAPI HalpRegisterKdSupportFunctions( VOID );
+INIT_FUNCTION NTSTATUS NTAPI HalpSetupPciDeviceForDebugging( @@ -628,6 +625,7 @@ HalpSetupPciDeviceForDebugging( IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice );
+INIT_FUNCTION NTSTATUS NTAPI HalpReleasePciDeviceForDebugging( @@ -727,6 +725,7 @@ HaliHaltSystem( // // CMOS Routines // +INIT_FUNCTION VOID NTAPI HalpInitializeCmos( @@ -777,36 +776,42 @@ HalpOpenRegistryKey( IN BOOLEAN Create );
+INIT_FUNCTION VOID NTAPI HalpGetNMICrashFlag( VOID );
+INIT_FUNCTION BOOLEAN NTAPI HalpGetDebugPortTable( VOID );
+INIT_FUNCTION VOID NTAPI HalpReportSerialNumber( VOID );
+INIT_FUNCTION NTSTATUS NTAPI HalpMarkAcpiHal( VOID );
+INIT_FUNCTION VOID NTAPI HalpBuildAddressMap( VOID );
+INIT_FUNCTION VOID NTAPI HalpReportResourceUsage( @@ -814,6 +819,7 @@ HalpReportResourceUsage( IN INTERFACE_TYPE InterfaceType );
+INIT_FUNCTION ULONG NTAPI HalpIs16BitPortDecodeSupported( @@ -834,6 +840,7 @@ KeUpdateSystemTime( IN KIRQL OldIrql );
+INIT_FUNCTION VOID NTAPI HalpInitBusHandlers( @@ -846,6 +853,7 @@ HaliInitPnpDriver( VOID );
+INIT_FUNCTION VOID NTAPI HalpDebugPciDumpBus( diff --git a/hal/halx86/legacy/bus/pcibus.c b/hal/halx86/legacy/bus/pcibus.c index 4f363ad379..c06f0bafec 100644 --- a/hal/halx86/legacy/bus/pcibus.c +++ b/hal/halx86/legacy/bus/pcibus.c @@ -608,7 +608,7 @@ HalpGetISAFixedPCIIrq(IN PBUS_HANDLER BusHandler, return STATUS_SUCCESS; }
-INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HalpSetupPciDeviceForDebugging(IN PVOID LoaderBlock, @@ -618,7 +618,7 @@ HalpSetupPciDeviceForDebugging(IN PVOID LoaderBlock, return STATUS_NOT_IMPLEMENTED; }
-INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HalpReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice) @@ -627,7 +627,7 @@ HalpReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice) return STATUS_NOT_IMPLEMENTED; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpRegisterPciDebuggingDeviceInfo(VOID) @@ -862,7 +862,7 @@ HaliPciInterfaceReadConfig(IN PBUS_HANDLER RootBusHandler, return Length; }
-INIT_SECTION +INIT_FUNCTION PPCI_REGISTRY_INFO_INTERNAL NTAPI HalpQueryPciRegistryInfo(VOID) @@ -1095,7 +1095,7 @@ HalpQueryPciRegistryInfo(VOID) #endif }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpInitializePciStubs(VOID) diff --git a/hal/halx86/legacy/bus/sysbus.c b/hal/halx86/legacy/bus/sysbus.c index fccb823398..ec2019dfd6 100644 --- a/hal/halx86/legacy/bus/sysbus.c +++ b/hal/halx86/legacy/bus/sysbus.c @@ -139,6 +139,7 @@ HalpGetRootInterruptVector(IN ULONG BusInterruptLevel, return SystemVector; }
+INIT_FUNCTION ULONG NTAPI HalpGetSystemInterruptVector(IN PBUS_HANDLER BusHandler, diff --git a/hal/halx86/legacy/bussupp.c b/hal/halx86/legacy/bussupp.c index 4d20396560..7fff59f235 100644 --- a/hal/halx86/legacy/bussupp.c +++ b/hal/halx86/legacy/bussupp.c @@ -12,6 +12,7 @@ #define NDEBUG #include <debug.h>
+INIT_FUNCTION PBUS_HANDLER NTAPI HalpAllocateAndInitPciBusHandler( @@ -20,12 +21,14 @@ HalpAllocateAndInitPciBusHandler( IN BOOLEAN TestAllocation );
+INIT_FUNCTION VOID NTAPI HalpFixupPciSupportedRanges( IN ULONG BusCount );
+INIT_FUNCTION NTSTATUS NTAPI HalpGetChipHacks( @@ -35,6 +38,7 @@ HalpGetChipHacks( IN PULONG HackFlags );
+INIT_FUNCTION BOOLEAN NTAPI HalpGetPciBridgeConfig( @@ -42,18 +46,21 @@ HalpGetPciBridgeConfig( IN PUCHAR BusCount );
+INIT_FUNCTION BOOLEAN NTAPI HalpIsBridgeDevice( IN PPCI_COMMON_CONFIG PciData );
+INIT_FUNCTION BOOLEAN NTAPI HalpIsIdeDevice( IN PPCI_COMMON_CONFIG PciData );
+INIT_FUNCTION BOOLEAN NTAPI HalpIsRecognizedCard( @@ -62,6 +69,7 @@ HalpIsRecognizedCard( IN ULONG Flags );
+INIT_FUNCTION BOOLEAN NTAPI HalpIsValidPCIDevice( @@ -69,18 +77,21 @@ HalpIsValidPCIDevice( IN PCI_SLOT_NUMBER Slot );
+INIT_FUNCTION NTSTATUS NTAPI HalpMarkChipsetDecode( IN BOOLEAN OverrideEnable );
+INIT_FUNCTION VOID NTAPI HalpRegisterInternalBusHandlers( VOID );
+INIT_FUNCTION VOID NTAPI ShowSize( @@ -160,7 +171,7 @@ HalpAllocateBusHandler(IN INTERFACE_TYPE InterfaceType, return Bus; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpRegisterInternalBusHandlers(VOID) @@ -235,7 +246,7 @@ HalpRegisterInternalBusHandlers(VOID) }
#ifndef _MINIHAL_ -INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HalpMarkChipsetDecode(BOOLEAN OverrideEnable) @@ -283,7 +294,7 @@ HalpMarkChipsetDecode(BOOLEAN OverrideEnable) return Status; }
-INIT_SECTION +INIT_FUNCTION PBUS_HANDLER NTAPI HalpAllocateAndInitPciBusHandler(IN ULONG PciType, @@ -368,7 +379,7 @@ HalpAllocateAndInitPciBusHandler(IN ULONG PciType, return Bus; }
-INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalpIsValidPCIDevice(IN PBUS_HANDLER BusHandler, @@ -430,7 +441,7 @@ HalpIsValidPCIDevice(IN PBUS_HANDLER BusHandler,
static BOOLEAN WarningsGiven[5];
-INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HalpGetChipHacks(IN USHORT VendorId, @@ -494,7 +505,7 @@ HalpGetChipHacks(IN USHORT VendorId, return Status; }
-INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalpIsRecognizedCard(IN PPCI_REGISTRY_INFO_INTERNAL PciRegistryInfo, @@ -575,7 +586,7 @@ HalpIsRecognizedCard(IN PPCI_REGISTRY_INFO_INTERNAL PciRegistryInfo, return FALSE; }
-INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalpIsIdeDevice(IN PPCI_COMMON_CONFIG PciData) @@ -628,7 +639,7 @@ HalpIsIdeDevice(IN PPCI_COMMON_CONFIG PciData) return FALSE; }
-INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalpIsBridgeDevice(IN PPCI_COMMON_CONFIG PciData) @@ -642,7 +653,7 @@ HalpIsBridgeDevice(IN PPCI_COMMON_CONFIG PciData) (PciData->SubClass == PCI_SUBCLASS_BR_CARDBUS))); }
-INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalpGetPciBridgeConfig(IN ULONG PciType, @@ -695,7 +706,7 @@ HalpGetPciBridgeConfig(IN ULONG PciType, return FALSE; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpFixupPciSupportedRanges(IN ULONG BusCount) @@ -758,7 +769,7 @@ HalpFixupPciSupportedRanges(IN ULONG BusCount) } }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI ShowSize(ULONG x) @@ -790,7 +801,7 @@ ShowSize(ULONG x) */ #include "pci_classes.h" #include "pci_vendors.h" -INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpDebugPciDumpBus(IN ULONG i, @@ -943,7 +954,7 @@ HalpDebugPciDumpBus(IN ULONG i, } #endif
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpInitializePciBus(VOID) @@ -1182,7 +1193,7 @@ HalpInitializePciBus(VOID) #endif }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpInitBusHandlers(VOID) @@ -1191,7 +1202,7 @@ HalpInitBusHandlers(VOID) HalpRegisterInternalBusHandlers(); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpRegisterKdSupportFunctions(VOID) diff --git a/hal/halx86/legacy/halpcat.c b/hal/halx86/legacy/halpcat.c index b8d7fa657e..d097ca7c72 100644 --- a/hal/halx86/legacy/halpcat.c +++ b/hal/halx86/legacy/halpcat.c @@ -30,7 +30,7 @@ PWCHAR HalName = L"PC Compatible Eisa/Isa HAL";
/* PRIVATE FUNCTIONS **********************************************************/
-INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) @@ -39,7 +39,7 @@ HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return STATUS_NO_SUCH_DEVICE; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI HalpBuildAddressMap(VOID) @@ -51,7 +51,7 @@ HalpBuildAddressMap(VOID) //HalpAddROMRanges(); }
-INIT_SECTION +INIT_FUNCTION BOOLEAN NTAPI HalpGetDebugPortTable(VOID) @@ -60,7 +60,7 @@ HalpGetDebugPortTable(VOID) return FALSE; }
-INIT_SECTION +INIT_FUNCTION ULONG NTAPI HalpIs16BitPortDecodeSupported(VOID) @@ -70,7 +70,7 @@ HalpIs16BitPortDecodeSupported(VOID) }
#if 0 -INIT_SECTION +INIT_FUNCTION NTSTATUS NTAPI HaliInitPnpDriver(VOID) @@ -84,7 +84,7 @@ HaliInitPnpDriver(VOID) /* * @implemented */ -INIT_SECTION +INIT_FUNCTION VOID NTAPI HalReportResourceUsage(VOID) diff --git a/hal/halx86/up/halinit_mini.c b/hal/halx86/up/halinit_mini.c index ae0f6cde30..505a23a93e 100644 --- a/hal/halx86/up/halinit_mini.c +++ b/hal/halx86/up/halinit_mini.c @@ -34,6 +34,7 @@ HalpInitPhase1(VOID) { }
+INIT_FUNCTION NTSTATUS NTAPI HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) diff --git a/ntoskrnl/cache/newcc.h b/ntoskrnl/cache/newcc.h index adbf1c5d92..a668c52328 100644 --- a/ntoskrnl/cache/newcc.h +++ b/ntoskrnl/cache/newcc.h @@ -38,6 +38,7 @@ typedef struct _NOCC_CACHE_MAP ULONG ReadAheadGranularity; } NOCC_CACHE_MAP, *PNOCC_CACHE_MAP;
+INIT_FUNCTION VOID NTAPI CcPfInitializePrefetcher(VOID); @@ -53,6 +54,7 @@ CcMdlWriteComplete2(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain);
+INIT_FUNCTION VOID NTAPI CcInitView(VOID); @@ -62,6 +64,7 @@ NTAPI CcpUnpinData(PNOCC_BCB Bcb, BOOLEAN ActuallyRelease);
+INIT_FUNCTION BOOLEAN NTAPI CcInitializeCacheManager(VOID); diff --git a/ntoskrnl/cc/cacheman.c b/ntoskrnl/cc/cacheman.c index 8ccd6a703d..9c7bf43298 100644 --- a/ntoskrnl/cc/cacheman.c +++ b/ntoskrnl/cc/cacheman.c @@ -22,9 +22,9 @@ static ULONG BugCheckFileId = 0x4 << 16;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CcPfInitializePrefetcher(VOID) { /* Notify debugger */ @@ -40,9 +40,9 @@ CcPfInitializePrefetcher(VOID) /* FIXME: Setup the rest of the prefetecher */ }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CcInitializeCacheManager(VOID) { ULONG Thread; diff --git a/ntoskrnl/config/cmalloc.c b/ntoskrnl/config/cmalloc.c index 621a265223..2c2868ea7c 100644 --- a/ntoskrnl/config/cmalloc.c +++ b/ntoskrnl/config/cmalloc.c @@ -23,9 +23,9 @@ LIST_ENTRY CmpFreeDelayItemsListHead;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpInitCmPrivateAlloc(VOID) { /* Make sure we didn't already do this */ @@ -38,9 +38,9 @@ CmpInitCmPrivateAlloc(VOID) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpInitCmPrivateDelayAlloc(VOID) { /* Initialize the delay allocation list and lock */ diff --git a/ntoskrnl/config/cmboot.c b/ntoskrnl/config/cmboot.c index 73f6d0ac9f..f1790284fc 100644 --- a/ntoskrnl/config/cmboot.c +++ b/ntoskrnl/config/cmboot.c @@ -19,9 +19,9 @@ extern ULONG InitSafeBootMode;
/* FUNCTIONS ******************************************************************/
+INIT_FUNCTION HCELL_INDEX NTAPI -INIT_FUNCTION CmpFindControlSet(IN PHHIVE SystemHive, IN HCELL_INDEX RootCell, IN PUNICODE_STRING SelectKeyName, @@ -129,9 +129,9 @@ CmpFindControlSet(IN PHHIVE SystemHive, return ControlSetCell; }
+INIT_FUNCTION ULONG NTAPI -INIT_FUNCTION CmpFindTagIndex(IN PHHIVE Hive, IN HCELL_INDEX TagCell, IN HCELL_INDEX GroupOrderCell, @@ -179,9 +179,9 @@ CmpFindTagIndex(IN PHHIVE Hive, return -2; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpAddDriverToList(IN PHHIVE Hive, IN HCELL_INDEX DriverCell, IN HCELL_INDEX GroupOrderCell, @@ -346,9 +346,9 @@ CmpAddDriverToList(IN PHHIVE Hive, return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpIsLoadType(IN PHHIVE Hive, IN HCELL_INDEX Cell, IN SERVICE_LOAD_TYPE LoadType) @@ -377,9 +377,9 @@ CmpIsLoadType(IN PHHIVE Hive, return (*Data == LoadType); }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpFindDrivers(IN PHHIVE Hive, IN HCELL_INDEX ControlSet, IN SERVICE_LOAD_TYPE LoadType, @@ -499,9 +499,9 @@ CmpFindDrivers(IN PHHIVE Hive, return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpDoSort(IN PLIST_ENTRY DriverListHead, IN PUNICODE_STRING OrderList) { @@ -556,9 +556,9 @@ CmpDoSort(IN PLIST_ENTRY DriverListHead, return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpSortDriverList(IN PHHIVE Hive, IN HCELL_INDEX ControlSet, IN PLIST_ENTRY DriverListHead) @@ -605,9 +605,9 @@ CmpSortDriverList(IN PHHIVE Hive, return CmpDoSort(DriverListHead, &DependList); }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpOrderGroup(IN PBOOT_DRIVER_NODE StartNode, IN PBOOT_DRIVER_NODE EndNode) { @@ -668,9 +668,9 @@ CmpOrderGroup(IN PBOOT_DRIVER_NODE StartNode, return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpResolveDriverDependencies(IN PLIST_ENTRY DriverListHead) { PLIST_ENTRY NextEntry; @@ -718,9 +718,9 @@ CmpResolveDriverDependencies(IN PLIST_ENTRY DriverListHead) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpIsSafe(IN PHHIVE Hive, IN HCELL_INDEX SafeBootCell, IN HCELL_INDEX DriverCell) diff --git a/ntoskrnl/config/cmconfig.c b/ntoskrnl/config/cmconfig.c index 97b81d682e..be46cfeb2c 100644 --- a/ntoskrnl/config/cmconfig.c +++ b/ntoskrnl/config/cmconfig.c @@ -14,9 +14,9 @@
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION CmpInitializeRegistryNode(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry, IN HANDLE NodeHandle, OUT PHANDLE NewHandle, @@ -199,9 +199,9 @@ CmpInitializeRegistryNode(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry, return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION CmpSetupConfigurationTree(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry, IN HANDLE ParentHandle, IN INTERFACE_TYPE InterfaceType, @@ -322,9 +322,9 @@ CmpSetupConfigurationTree(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry, return STATUS_SUCCESS; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION CmpInitializeHardwareConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { NTSTATUS Status; diff --git a/ntoskrnl/config/cmcontrl.c b/ntoskrnl/config/cmcontrl.c index 54d4949979..935d55bf30 100644 --- a/ntoskrnl/config/cmcontrl.c +++ b/ntoskrnl/config/cmcontrl.c @@ -16,9 +16,9 @@
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION LANGID NTAPI -INIT_FUNCTION CmpConvertLangId(IN LPWSTR Name, IN ULONG NameLength) { @@ -67,9 +67,9 @@ CmpConvertLangId(IN LPWSTR Name, return LangId; }
+INIT_FUNCTION HCELL_INDEX NTAPI -INIT_FUNCTION CmpWalkPath(IN PHHIVE SystemHive, IN HCELL_INDEX ParentCell, IN LPWSTR Path) @@ -98,9 +98,9 @@ CmpWalkPath(IN PHHIVE SystemHive, } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmGetSystemControlValues(IN PVOID SystemHiveData, IN PCM_SYSTEM_CONTROL_VECTOR ControlVector) { diff --git a/ntoskrnl/config/cmdata.c b/ntoskrnl/config/cmdata.c index a32909da34..77d82616de 100644 --- a/ntoskrnl/config/cmdata.c +++ b/ntoskrnl/config/cmdata.c @@ -65,7 +65,7 @@ ULONG CmpTypeCount[MaximumType + 1];
HANDLE CmpRegistryRootHandle;
-INIT_FUNCTION UNICODE_STRING CmClassName[MaximumClass + 1] = +INIT_SECTION UNICODE_STRING CmClassName[MaximumClass + 1] = { RTL_CONSTANT_STRING(L"System"), RTL_CONSTANT_STRING(L"Processor"), @@ -77,7 +77,7 @@ INIT_FUNCTION UNICODE_STRING CmClassName[MaximumClass + 1] = RTL_CONSTANT_STRING(L"Undefined") };
-INIT_FUNCTION UNICODE_STRING CmTypeName[MaximumType + 1] = +INIT_SECTION UNICODE_STRING CmTypeName[MaximumType + 1] = { RTL_CONSTANT_STRING(L"System"), RTL_CONSTANT_STRING(L"CentralProcessor"), @@ -123,7 +123,7 @@ INIT_FUNCTION UNICODE_STRING CmTypeName[MaximumType + 1] = RTL_CONSTANT_STRING(L"Undefined") };
-INIT_FUNCTION CMP_MF_TYPE CmpMultifunctionTypes[] = +INIT_SECTION CMP_MF_TYPE CmpMultifunctionTypes[] = { {"ISA", Isa, 0}, {"MCA", MicroChannel, 0}, @@ -136,7 +136,7 @@ INIT_FUNCTION CMP_MF_TYPE CmpMultifunctionTypes[] = {NULL, Internal, 0} };
-INIT_FUNCTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] = +INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] = { { L"Session Manager", diff --git a/ntoskrnl/config/cmdelay.c b/ntoskrnl/config/cmdelay.c index e0c487d90c..34321eaba3 100644 --- a/ntoskrnl/config/cmdelay.c +++ b/ntoskrnl/config/cmdelay.c @@ -185,9 +185,9 @@ CmpDelayCloseWorker(IN PVOID Context) CmpUnlockRegistry(); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpInitializeDelayedCloseTable(VOID) {
@@ -262,9 +262,9 @@ CmpDelayDerefKCBWorker(IN PVOID Context) CmpUnlockRegistry(); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpInitDelayDerefKCBEngine(VOID) { /* Initialize lock and list */ diff --git a/ntoskrnl/config/cmhook.c b/ntoskrnl/config/cmhook.c index 7f8acdf4cb..1ba3c5bbbd 100644 --- a/ntoskrnl/config/cmhook.c +++ b/ntoskrnl/config/cmhook.c @@ -32,9 +32,9 @@ typedef struct _REGISTRY_CALLBACK
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpInitCallback(VOID) { ULONG i; diff --git a/ntoskrnl/config/cmkcbncb.c b/ntoskrnl/config/cmkcbncb.c index 8751357e8b..d9b0941e12 100644 --- a/ntoskrnl/config/cmkcbncb.c +++ b/ntoskrnl/config/cmkcbncb.c @@ -20,9 +20,9 @@ PCM_NAME_HASH_TABLE_ENTRY CmpNameCacheTable;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpInitializeCache(VOID) { ULONG Length, i; diff --git a/ntoskrnl/config/cmsysini.c b/ntoskrnl/config/cmsysini.c index 295e4b4376..d672ead8c2 100644 --- a/ntoskrnl/config/cmsysini.c +++ b/ntoskrnl/config/cmsysini.c @@ -391,9 +391,9 @@ CmpInitHiveFromFile(IN PCUNICODE_STRING HiveName, return STATUS_SUCCESS; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION CmpSetSystemValues(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { NTSTATUS Status; @@ -446,9 +446,9 @@ Quit: return Status; }
+INIT_FUNCTION static NTSTATUS -INIT_FUNCTION CmpCreateHardwareProfile(HANDLE ControlSetHandle) { OBJECT_ATTRIBUTES ObjectAttributes; @@ -518,9 +518,9 @@ done: return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION CmpCreateControlSet(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { UNICODE_STRING ConfigName = RTL_CONSTANT_STRING(L"Control\IDConfigDB"); @@ -859,9 +859,9 @@ CmpLinkHiveToMaster(IN PUNICODE_STRING LinkName, return STATUS_SUCCESS; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpInitializeSystemHive(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { static const UNICODE_STRING HiveName = RTL_CONSTANT_STRING(L"SYSTEM"); @@ -976,9 +976,9 @@ CmpInitializeSystemHive(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return TRUE; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION CmpCreateObjectTypes(VOID) { OBJECT_TYPE_INITIALIZER ObjectTypeInitializer; @@ -1010,9 +1010,9 @@ CmpCreateObjectTypes(VOID) return ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &CmpKeyObjectType); }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpCreateRootNode(IN PHHIVE Hive, IN PCWSTR Name, OUT PHCELL_INDEX Index) @@ -1066,9 +1066,9 @@ CmpCreateRootNode(IN PHHIVE Hive, return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmpCreateRegistryRoot(VOID) { UNICODE_STRING KeyName; @@ -1511,9 +1511,9 @@ CmpInitializeHiveList(VOID) CmpNoVolatileCreates = TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION CmInitSystem1(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; @@ -1727,9 +1727,9 @@ CmInitSystem1(VOID) return TRUE; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION CmpFreeDriverList(IN PHHIVE Hive, IN PLIST_ENTRY DriverList) { @@ -1776,9 +1776,9 @@ CmpFreeDriverList(IN PHHIVE Hive, } }
+INIT_FUNCTION PUNICODE_STRING* NTAPI -INIT_FUNCTION CmGetSystemDriverList(VOID) { LIST_ENTRY DriverList; diff --git a/ntoskrnl/ex/handle.c b/ntoskrnl/ex/handle.c index 5c26ccdca8..a0ea5fb448 100644 --- a/ntoskrnl/ex/handle.c +++ b/ntoskrnl/ex/handle.c @@ -22,9 +22,9 @@ EX_PUSH_LOCK HandleTableListLock;
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpInitializeHandleTables(VOID) { /* Initialize the list of handle tables and the lock */ diff --git a/ntoskrnl/ex/hdlsterm.c b/ntoskrnl/ex/hdlsterm.c index ffd6b0afb2..3b8dc13ea6 100644 --- a/ntoskrnl/ex/hdlsterm.c +++ b/ntoskrnl/ex/hdlsterm.c @@ -183,9 +183,9 @@ HdlspEnableTerminal(IN BOOLEAN Enable) return STATUS_SUCCESS; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION HeadlessInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PHEADLESS_LOADER_BLOCK HeadlessBlock; diff --git a/ntoskrnl/ex/init.c b/ntoskrnl/ex/init.c index 66819c56c8..10be805374 100644 --- a/ntoskrnl/ex/init.c +++ b/ntoskrnl/ex/init.c @@ -91,9 +91,9 @@ BOOLEAN ExpRealTimeIsUniversal;
/* FUNCTIONS ****************************************************************/
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION ExpCreateSystemRootLink(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { UNICODE_STRING LinkName; @@ -203,9 +203,9 @@ ExpCreateSystemRootLink(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return STATUS_SUCCESS; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpInitNls(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { LARGE_INTEGER SectionSize; @@ -379,9 +379,9 @@ ExpInitNls(IN PLOADER_PARAMETER_BLOCK LoaderBlock) ExpNlsTableBase = SectionBase; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpLoadInitialProcess(IN PINIT_BUFFER InitBuffer, OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters, OUT PCHAR *ProcessEnvironment) @@ -596,9 +596,9 @@ ExpLoadInitialProcess(IN PINIT_BUFFER InitBuffer, *ProcessEnvironment = EnvironmentPtr; }
+INIT_FUNCTION ULONG NTAPI -INIT_FUNCTION ExComputeTickCountMultiplier(IN ULONG ClockIncrement) { ULONG MsRemainder = 0, MsIncrement; @@ -629,9 +629,9 @@ ExComputeTickCountMultiplier(IN ULONG ClockIncrement) return (MsIncrement << 24) | MsRemainder; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION ExpInitSystemPhase0(VOID) { /* Initialize EXRESOURCE Support */ @@ -652,9 +652,9 @@ ExpInitSystemPhase0(VOID) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION ExpInitSystemPhase1(VOID) { /* Initialize worker threads */ @@ -729,9 +729,9 @@ ExpInitSystemPhase1(VOID) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION ExInitSystem(VOID) { /* Check the initialization phase */ @@ -755,9 +755,9 @@ ExInitSystem(VOID) } }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION ExpIsLoaderValid(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PLOADER_PARAMETER_EXTENSION Extension; @@ -781,9 +781,9 @@ ExpIsLoaderValid(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return TRUE; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpLoadBootSymbols(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { ULONG i = 0; @@ -862,9 +862,9 @@ ExpLoadBootSymbols(IN PLOADER_PARAMETER_BLOCK LoaderBlock) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExBurnMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG_PTR PagesToDestroy, IN TYPE_OF_MEMORY MemoryType) @@ -908,9 +908,9 @@ ExBurnMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpInitializeExecutive(IN ULONG Cpu, IN PLOADER_PARAMETER_BLOCK LoaderBlock) { @@ -1327,9 +1327,9 @@ VOID NTAPI MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock);
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION Phase1InitializationDiscard(IN PVOID Context) { PLOADER_PARAMETER_BLOCK LoaderBlock = Context; diff --git a/ntoskrnl/ex/lookas.c b/ntoskrnl/ex/lookas.c index ceb3789f9c..376d94baf3 100644 --- a/ntoskrnl/ex/lookas.c +++ b/ntoskrnl/ex/lookas.c @@ -29,9 +29,9 @@ GENERAL_LOOKASIDE ExpSmallPagedPoolLookasideLists[MAXIMUM_PROCESSORS];
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExInitializeSystemLookasideList(IN PGENERAL_LOOKASIDE List, IN POOL_TYPE Type, IN ULONG Size, @@ -57,9 +57,9 @@ ExInitializeSystemLookasideList(IN PGENERAL_LOOKASIDE List, List->LastAllocateHits = 0; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExInitPoolLookasidePointers(VOID) { ULONG i; @@ -87,9 +87,9 @@ ExInitPoolLookasidePointers(VOID) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpInitLookasideLists(VOID) { ULONG i; diff --git a/ntoskrnl/ex/pushlock.c b/ntoskrnl/ex/pushlock.c index 9ac77a11aa..855231393a 100644 --- a/ntoskrnl/ex/pushlock.c +++ b/ntoskrnl/ex/pushlock.c @@ -39,9 +39,9 @@ ULONG ExPushLockSpinCount = 0; * @remarks The ExpInitializePushLocks routine sets up the spin on SMP machines. * *--*/ +INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpInitializePushLocks(VOID) { #ifdef CONFIG_SMP diff --git a/ntoskrnl/ex/resource.c b/ntoskrnl/ex/resource.c index 1911ef1813..192f8702e3 100644 --- a/ntoskrnl/ex/resource.c +++ b/ntoskrnl/ex/resource.c @@ -163,9 +163,9 @@ ExpCheckForApcsDisabled(IN KIRQL Irql, * @remarks This routine should only be called once, during system startup. * *--*/ +INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExpResourceInitialization(VOID) { /* Setup the timeout */ diff --git a/ntoskrnl/ex/xipdisp.c b/ntoskrnl/ex/xipdisp.c index 1fe7725097..669a706f77 100644 --- a/ntoskrnl/ex/xipdisp.c +++ b/ntoskrnl/ex/xipdisp.c @@ -25,9 +25,9 @@ XIPDispatch(IN ULONG DispatchCode, return STATUS_NOT_IMPLEMENTED; }
+INIT_FUNCTION PMEMORY_ALLOCATION_DESCRIPTOR NTAPI -INIT_FUNCTION XIPpFindMemoryDescriptor(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PLIST_ENTRY NextEntry; @@ -49,9 +49,9 @@ XIPpFindMemoryDescriptor(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return NULL; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION XIPInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PCHAR CommandLine, XipBoot, XipRom, XipMegs, XipVerbose, XipRam; diff --git a/ntoskrnl/fsrtl/fsrtlpc.c b/ntoskrnl/fsrtl/fsrtlpc.c index 1a97085d79..30d0b46d83 100644 --- a/ntoskrnl/fsrtl/fsrtlpc.c +++ b/ntoskrnl/fsrtl/fsrtlpc.c @@ -16,7 +16,7 @@
PERESOURCE FsRtlPagingIoResources; ULONG FsRtlPagingIoResourceSelector; -NTSTATUS NTAPI INIT_FUNCTION FsRtlInitializeWorkerThread(VOID); +INIT_FUNCTION NTSTATUS NTAPI FsRtlInitializeWorkerThread(VOID); extern KSEMAPHORE FsRtlpUncSemaphore;
static const UCHAR LegalAnsiCharacterArray[] = @@ -155,9 +155,9 @@ const UCHAR * const FsRtlLegalAnsiCharacterArray = LegalAnsiCharacterArray;
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION FsRtlInitSystem(VOID) { ULONG i; diff --git a/ntoskrnl/fsrtl/stackovf.c b/ntoskrnl/fsrtl/stackovf.c index 353e893aa7..c5dda39f7a 100644 --- a/ntoskrnl/fsrtl/stackovf.c +++ b/ntoskrnl/fsrtl/stackovf.c @@ -144,9 +144,9 @@ FsRtlWorkerThread(IN PVOID StartContext) /* * @implemented */ +INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION FsRtlInitializeWorkerThread(VOID) { ULONG_PTR i; diff --git a/ntoskrnl/inbv/inbv.c b/ntoskrnl/inbv/inbv.c index 9228569298..c1ece52461 100644 --- a/ntoskrnl/inbv/inbv.c +++ b/ntoskrnl/inbv/inbv.c @@ -212,9 +212,9 @@ BootLogoFadeIn(VOID)
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION PVOID NTAPI -INIT_FUNCTION FindBitmapResource(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG ResourceId) { @@ -277,9 +277,9 @@ FindBitmapResource(IN PLOADER_PARAMETER_BLOCK LoaderBlock, return Data; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION InbvDriverInitialize(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Count) { @@ -357,9 +357,9 @@ InbvReleaseLock(VOID) if (InbvOldIrql <= DISPATCH_LEVEL) KeLowerIrql(OldIrql); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION InbvEnableBootDriver(IN BOOLEAN Enable) { /* Check if we're installed */ @@ -622,9 +622,9 @@ InbvSolidColorFill(IN ULONG Left, } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION InbvUpdateProgressBar(IN ULONG Progress) { ULONG FillCount, BoundedProgress; @@ -738,9 +738,9 @@ InbvSetProgressBarSubset(IN ULONG Floor, InbvProgressState.Bias = (Ceiling * 100) - Floor; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION InbvIndicateProgress(VOID) { ULONG Percentage; @@ -930,9 +930,9 @@ InbvRotationThread( PsTerminateSystemThread(STATUS_SUCCESS); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION InbvRotBarInit(VOID) { PltRotBarStatus = RBS_FADEIN; @@ -940,9 +940,9 @@ InbvRotBarInit(VOID) } #endif
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION DisplayBootBitmap(IN BOOLEAN TextMode) { PVOID Header = NULL, Footer = NULL, Screen = NULL; @@ -1185,9 +1185,9 @@ DisplayBootBitmap(IN BOOLEAN TextMode) #endif }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION DisplayFilter(PCHAR *String) { /* Windows hack to skip first dots */ @@ -1209,9 +1209,9 @@ DisplayFilter(PCHAR *String) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION FinalizeBootLogo(VOID) { /* Acquire lock and check the display state */ diff --git a/ntoskrnl/include/internal/amd64/mm.h b/ntoskrnl/include/internal/amd64/mm.h index f788094458..8f881a12c2 100644 --- a/ntoskrnl/include/internal/amd64/mm.h +++ b/ntoskrnl/include/internal/amd64/mm.h @@ -289,6 +289,7 @@ MI_IS_MAPPED_PTE(PMMPTE PointerPte) return ((PointerPte->u.Long & 0xFFFFFC01) != 0); }
+INIT_FUNCTION VOID FORCEINLINE MmInitGlobalKernelPageDirectory(VOID) diff --git a/ntoskrnl/include/internal/cc.h b/ntoskrnl/include/internal/cc.h index 10bdb43a86..332ad524c4 100644 --- a/ntoskrnl/include/internal/cc.h +++ b/ntoskrnl/include/internal/cc.h @@ -288,6 +288,7 @@ extern LAZY_WRITER LazyWriter; #define NODE_TYPE_PRIVATE_MAP 0x02FE #define NODE_TYPE_SHARED_MAP 0x02FF
+INIT_FUNCTION VOID NTAPI CcPfInitializePrefetcher( @@ -324,6 +325,7 @@ CcRosGetVacb( PROS_VACB *Vacb );
+INIT_FUNCTION VOID NTAPI CcInitView(VOID); @@ -340,6 +342,7 @@ NTSTATUS NTAPI CcWriteVirtualAddress(PROS_VACB Vacb);
+INIT_FUNCTION BOOLEAN NTAPI CcInitializeCacheManager(VOID); diff --git a/ntoskrnl/include/internal/cm.h b/ntoskrnl/include/internal/cm.h index 76fc5b9d1a..a65e5e8ba2 100644 --- a/ntoskrnl/include/internal/cm.h +++ b/ntoskrnl/include/internal/cm.h @@ -694,6 +694,7 @@ CmpFlushNotify( IN BOOLEAN LockHeld );
+INIT_FUNCTION VOID NTAPI CmpInitCallback( @@ -703,24 +704,28 @@ CmpInitCallback( // // KCB Cache/Delay Routines // +INIT_FUNCTION VOID NTAPI CmpInitializeCache( VOID );
+INIT_FUNCTION VOID NTAPI CmpInitCmPrivateDelayAlloc( VOID );
+INIT_FUNCTION VOID NTAPI CmpInitCmPrivateAlloc( VOID );
+INIT_FUNCTION VOID NTAPI CmpInitDelayDerefKCBEngine( @@ -963,6 +968,7 @@ VOID NTAPI CmpRemoveFromDelayedClose(IN PCM_KEY_CONTROL_BLOCK Kcb);
+INIT_FUNCTION VOID NTAPI CmpInitializeDelayedCloseTable( @@ -1161,6 +1167,7 @@ CmpCreateLinkNode( // // Boot Routines // +INIT_FUNCTION HCELL_INDEX NTAPI CmpFindControlSet( @@ -1170,6 +1177,7 @@ CmpFindControlSet( OUT PBOOLEAN AutoSelect );
+INIT_FUNCTION VOID NTAPI CmGetSystemControlValues( @@ -1186,6 +1194,7 @@ CmpSaveBootControlSet( // // Hardware Configuration Routines // +INIT_FUNCTION NTSTATUS NTAPI CmpInitializeRegistryNode( @@ -1203,6 +1212,7 @@ CmpInitializeMachineDependentConfiguration( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION NTSTATUS NTAPI CmpInitializeHardwareConfiguration( @@ -1407,6 +1417,7 @@ CmSaveMergedKeys( // // Startup and Shutdown // +INIT_FUNCTION BOOLEAN NTAPI CmInitSystem1( @@ -1434,12 +1445,14 @@ CmpSetVersionData( // // Driver List Routines // +INIT_FUNCTION PUNICODE_STRING* NTAPI CmGetSystemDriverList( VOID );
+INIT_FUNCTION BOOLEAN NTAPI CmpFindDrivers( @@ -1450,7 +1463,7 @@ CmpFindDrivers( IN PLIST_ENTRY DriverListHead );
- +INIT_FUNCTION BOOLEAN NTAPI CmpSortDriverList( @@ -1459,12 +1472,14 @@ CmpSortDriverList( IN PLIST_ENTRY DriverListHead );
+INIT_FUNCTION BOOLEAN NTAPI CmpResolveDriverDependencies( IN PLIST_ENTRY DriverListHead );
+INIT_FUNCTION BOOLEAN NTAPI CmpIsSafe( diff --git a/ntoskrnl/include/internal/dbgk.h b/ntoskrnl/include/internal/dbgk.h index 96cbb1f309..ef49aebbc5 100644 --- a/ntoskrnl/include/internal/dbgk.h +++ b/ntoskrnl/include/internal/dbgk.h @@ -46,6 +46,7 @@ #define DBGKTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__) #endif
+INIT_FUNCTION VOID NTAPI DbgkInitialize( diff --git a/ntoskrnl/include/internal/ex.h b/ntoskrnl/include/internal/ex.h index 89fec75914..2eaf8d2da0 100644 --- a/ntoskrnl/include/internal/ex.h +++ b/ntoskrnl/include/internal/ex.h @@ -169,6 +169,7 @@ ExGetPoolTagInfo(
/* INITIALIZATION FUNCTIONS *************************************************/
+INIT_FUNCTION BOOLEAN NTAPI ExpWin32kInit(VOID); @@ -183,6 +184,7 @@ Phase1Initialization( IN PVOID Context );
+INIT_FUNCTION VOID NTAPI ExpInitializePushLocks(VOID); @@ -193,6 +195,7 @@ ExRefreshTimeZoneInformation( IN PLARGE_INTEGER SystemBootTime );
+INIT_FUNCTION VOID NTAPI ExpInitializeWorkerThreads(VOID); @@ -201,10 +204,12 @@ VOID NTAPI ExSwapinWorkerThreads(IN BOOLEAN AllowSwap);
+INIT_FUNCTION VOID NTAPI ExpInitLookasideLists(VOID);
+INIT_FUNCTION VOID NTAPI ExInitializeSystemLookasideList( @@ -216,14 +221,17 @@ ExInitializeSystemLookasideList( IN PLIST_ENTRY ListHead );
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeCallbacks(VOID);
+INIT_FUNCTION VOID NTAPI ExpInitUuids(VOID);
+INIT_FUNCTION VOID NTAPI ExpInitializeExecutive( @@ -235,38 +243,47 @@ VOID NTAPI ExShutdownSystem(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeEventImplementation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeKeyedEventImplementation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeEventPairImplementation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeSemaphoreImplementation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeMutantImplementation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeTimerImplementation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI ExpInitializeProfileImplementation(VOID);
+INIT_FUNCTION VOID NTAPI ExpResourceInitialization(VOID);
+INIT_FUNCTION VOID NTAPI ExInitPoolLookasidePointers(VOID); @@ -406,6 +423,7 @@ typedef BOOLEAN ULONG_PTR Context );
+INIT_FUNCTION VOID NTAPI ExpInitializeHandleTables( @@ -1461,12 +1479,14 @@ ExTimerRundown( VOID );
+INIT_FUNCTION VOID NTAPI HeadlessInit( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION VOID NTAPI XIPInit( diff --git a/ntoskrnl/include/internal/fsrtl.h b/ntoskrnl/include/internal/fsrtl.h index 6e65bd7888..67464d4abb 100644 --- a/ntoskrnl/include/internal/fsrtl.h +++ b/ntoskrnl/include/internal/fsrtl.h @@ -108,12 +108,14 @@ typedef struct _INT_MAPPING // // Initialization Routines // +INIT_FUNCTION VOID NTAPI FsRtlInitializeLargeMcbs( VOID );
+INIT_FUNCTION VOID NTAPI FsRtlInitializeTunnels( @@ -129,6 +131,7 @@ FsRtlPTeardownPerFileObjectContexts( IN PFILE_OBJECT FileObject );
+INIT_FUNCTION BOOLEAN NTAPI FsRtlInitSystem( diff --git a/ntoskrnl/include/internal/i386/ke.h b/ntoskrnl/include/internal/i386/ke.h index c7c48eaf5f..10eb6eb1be 100644 --- a/ntoskrnl/include/internal/i386/ke.h +++ b/ntoskrnl/include/internal/i386/ke.h @@ -321,6 +321,7 @@ KiSetTebBase(PKPCR Pcr, PVOID TebAddress) Ke386SetGdtEntryBase(&Pcr->GDT[KGDT_R3_TEB / sizeof(KGDTENTRY)], TebAddress); }
+INIT_FUNCTION VOID FASTCALL Ki386InitializeTss( @@ -329,30 +330,36 @@ Ki386InitializeTss( IN PKGDTENTRY Gdt );
+INIT_FUNCTION VOID NTAPI KiSetCR0Bits(VOID);
+INIT_FUNCTION VOID NTAPI KiGetCacheInformation(VOID);
+INIT_FUNCTION BOOLEAN NTAPI KiIsNpxPresent( VOID );
+INIT_FUNCTION BOOLEAN NTAPI KiIsNpxErrataPresent( VOID );
+INIT_FUNCTION VOID NTAPI KiSetProcessorType(VOID);
+INIT_FUNCTION ULONG NTAPI KiGetFeatureBits(VOID); @@ -387,18 +394,21 @@ Ki386SetupAndExitToV86Mode( OUT PTEB VdmTeb );
+INIT_FUNCTION VOID NTAPI KeI386VdmInitialize( VOID );
+INIT_FUNCTION ULONG_PTR NTAPI Ki386EnableGlobalPage( IN ULONG_PTR Context );
+INIT_FUNCTION ULONG_PTR NTAPI Ki386EnableTargetLargePage( @@ -426,48 +436,56 @@ Ki386EnableCurrentLargePage( IN ULONG Cr3 );
+INIT_FUNCTION VOID NTAPI KiI386PentiumLockErrataFixup( VOID );
+INIT_FUNCTION VOID NTAPI KiInitializePAT( VOID );
+INIT_FUNCTION VOID NTAPI KiInitializeMTRR( IN BOOLEAN FinalCpu );
+INIT_FUNCTION VOID NTAPI KiAmdK6InitializeMTRR( VOID );
+INIT_FUNCTION VOID NTAPI KiRestoreFastSyscallReturnState( VOID );
+INIT_FUNCTION ULONG_PTR NTAPI Ki386EnableDE( IN ULONG_PTR Context );
+INIT_FUNCTION ULONG_PTR NTAPI Ki386EnableFxsr( IN ULONG_PTR Context );
+INIT_FUNCTION ULONG_PTR NTAPI Ki386EnableXMMIExceptions( @@ -791,11 +809,12 @@ KiCheckForApcDelivery(IN PKTRAP_FRAME TrapFrame) // // Switches from boot loader to initial kernel stack // +INIT_FUNCTION FORCEINLINE VOID KiSwitchToBootStack(IN ULONG_PTR InitialStack) { - VOID NTAPI KiSystemStartupBootStack(VOID); + INIT_FUNCTION VOID NTAPI KiSystemStartupBootStack(VOID);
/* We have to switch to a new stack before continuing kernel initialization */ #ifdef __GNUC__ diff --git a/ntoskrnl/include/internal/inbv.h b/ntoskrnl/include/internal/inbv.h index 92de2cc83b..3fb6669a58 100644 --- a/ntoskrnl/include/internal/inbv.h +++ b/ntoskrnl/include/internal/inbv.h @@ -21,18 +21,21 @@ typedef enum _ROT_BAR_TYPE RB_PROGRESS_BAR } ROT_BAR_TYPE;
+INIT_FUNCTION VOID NTAPI InbvUpdateProgressBar( IN ULONG Progress );
+INIT_FUNCTION VOID NTAPI InbvRotBarInit( VOID );
+INIT_FUNCTION BOOLEAN NTAPI InbvDriverInitialize( @@ -40,24 +43,28 @@ InbvDriverInitialize( IN ULONG Count );
+INIT_FUNCTION VOID NTAPI InbvEnableBootDriver( IN BOOLEAN Enable );
+INIT_FUNCTION VOID NTAPI DisplayBootBitmap( IN BOOLEAN TextMode );
+INIT_FUNCTION VOID NTAPI DisplayFilter( IN PCHAR *String );
+INIT_FUNCTION VOID NTAPI FinalizeBootLogo( @@ -78,6 +85,7 @@ InbvBitBlt( IN ULONG Y );
+INIT_FUNCTION VOID NTAPI InbvIndicateProgress( diff --git a/ntoskrnl/include/internal/io.h b/ntoskrnl/include/internal/io.h index 8ae32a0dc5..7e93ca8856 100644 --- a/ntoskrnl/include/internal/io.h +++ b/ntoskrnl/include/internal/io.h @@ -577,6 +577,7 @@ PipCallDriverAddDevice( IN PDRIVER_OBJECT DriverObject );
+INIT_FUNCTION NTSTATUS NTAPI IopInitializePlugPlayServices( @@ -692,6 +693,7 @@ IoDestroyDriverList( VOID );
+INIT_FUNCTION NTSTATUS IopInitPlugPlayEvents(VOID);
@@ -740,12 +742,14 @@ IopTraverseDeviceTree( // // PnP Routines // +INIT_FUNCTION NTSTATUS NTAPI IopUpdateRootKey( VOID );
+INIT_FUNCTION NTSTATUS NTAPI PiInitCacheGroupInformation( @@ -783,12 +787,14 @@ PnpRegSzToString( // // Initialization Routines // +INIT_FUNCTION NTSTATUS NTAPI IopCreateArcNames( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION NTSTATUS NTAPI IopReassignSystemRoot( @@ -796,6 +802,7 @@ IopReassignSystemRoot( OUT PANSI_STRING NtBootPath );
+INIT_FUNCTION BOOLEAN NTAPI IoInitSystem( @@ -986,11 +993,13 @@ IopShutdownBaseFileSystems( // // Boot logging support // +INIT_FUNCTION VOID IopInitBootLog( IN BOOLEAN StartBootLog );
+INIT_FUNCTION VOID IopStartBootLog( VOID @@ -1062,6 +1071,7 @@ RawFsIsRawFileSystemDeviceObject( IN PDEVICE_OBJECT DeviceObject );
+INIT_FUNCTION NTSTATUS NTAPI RawFsDriverEntry( @@ -1094,12 +1104,14 @@ PnpRootRegisterDevice( // // Driver Routines // +INIT_FUNCTION VOID FASTCALL IopInitializeBootDrivers( VOID );
+INIT_FUNCTION VOID FASTCALL IopInitializeSystemDrivers( @@ -1356,6 +1368,7 @@ IoSetIoCompletion( // // Ramdisk Routines // +INIT_FUNCTION NTSTATUS NTAPI IopStartRamdisk( diff --git a/ntoskrnl/include/internal/ke.h b/ntoskrnl/include/internal/ke.h index 7bdd97fd8e..1abde8fff6 100644 --- a/ntoskrnl/include/internal/ke.h +++ b/ntoskrnl/include/internal/ke.h @@ -724,10 +724,12 @@ KeQueryValuesProcess(IN PKPROCESS Process,
/* INITIALIZATION FUNCTIONS *************************************************/
+INIT_FUNCTION BOOLEAN NTAPI KeInitSystem(VOID);
+INIT_FUNCTION VOID NTAPI KeInitExceptions(VOID); @@ -736,10 +738,12 @@ VOID NTAPI KeInitInterrupts(VOID);
+INIT_FUNCTION VOID NTAPI KiInitializeBugCheck(VOID);
+INIT_FUNCTION VOID NTAPI KiSystemStartup( @@ -900,6 +904,7 @@ KiChainedDispatch( IN PKINTERRUPT Interrupt );
+INIT_FUNCTION VOID NTAPI KiInitializeMachineType( @@ -917,6 +922,7 @@ KiSetupStackAndInitializeKernel( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION VOID NTAPI KiInitSpinLocks( @@ -924,6 +930,7 @@ KiInitSpinLocks( IN CCHAR Number );
+INIT_FUNCTION LARGE_INTEGER NTAPI KiComputeReciprocal( @@ -931,6 +938,7 @@ KiComputeReciprocal( OUT PUCHAR Shift );
+INIT_FUNCTION VOID NTAPI KiInitSystem( @@ -959,6 +967,7 @@ KiCallbackReturn( IN NTSTATUS Status );
+INIT_FUNCTION VOID NTAPI KiInitMachineDependent(VOID); diff --git a/ntoskrnl/include/internal/lpc.h b/ntoskrnl/include/internal/lpc.h index e862a4f247..667309ebdd 100644 --- a/ntoskrnl/include/internal/lpc.h +++ b/ntoskrnl/include/internal/lpc.h @@ -137,6 +137,7 @@ LpcExitThread( // // Initialization functions // +INIT_FUNCTION BOOLEAN NTAPI LpcInitSystem( diff --git a/ntoskrnl/include/internal/mm.h b/ntoskrnl/include/internal/mm.h index cf9e5069ac..b4d7ad85bc 100644 --- a/ntoskrnl/include/internal/mm.h +++ b/ntoskrnl/include/internal/mm.h @@ -559,6 +559,7 @@ MiCheckAllProcessMemoryAreas(VOID);
/* npool.c *******************************************************************/
+INIT_FUNCTION VOID NTAPI MiInitializeNonPagedPool(VOID); @@ -609,6 +610,7 @@ MmInit1( VOID );
+INIT_FUNCTION BOOLEAN NTAPI MmInitSystem(IN ULONG Phase, @@ -625,6 +627,7 @@ VOID NTAPI MmFreeSwapPage(SWAPENTRY Entry);
+INIT_FUNCTION VOID NTAPI MmInitPagingFile(VOID); @@ -793,6 +796,7 @@ MmDeleteKernelStack(PVOID Stack,
/* balace.c ******************************************************************/
+INIT_FUNCTION VOID NTAPI MmInitializeMemoryConsumer( @@ -800,6 +804,7 @@ MmInitializeMemoryConsumer( NTSTATUS (*Trim)(ULONG Target, ULONG Priority, PULONG NrFreed) );
+INIT_FUNCTION VOID NTAPI MmInitializeBalancer( @@ -822,6 +827,7 @@ MmRequestPageMemoryConsumer( PPFN_NUMBER AllocatedPage );
+INIT_FUNCTION VOID NTAPI MiInitBalancerThread(VOID); @@ -867,6 +873,7 @@ MmDeleteRmap( PVOID Address );
+INIT_FUNCTION VOID NTAPI MmInitializeRmapList(VOID); @@ -1076,6 +1083,7 @@ MmIsDisabledPage( PVOID Address );
+INIT_FUNCTION VOID NTAPI MmInitGlobalKernelPageDirectory(VOID); @@ -1178,6 +1186,7 @@ MmCreateProcessAddressSpace( IN PULONG_PTR DirectoryTableBase );
+INIT_FUNCTION NTSTATUS NTAPI MmInitializeHandBuiltProcess( @@ -1185,7 +1194,7 @@ MmInitializeHandBuiltProcess( IN PULONG_PTR DirectoryTableBase );
- +INIT_FUNCTION NTSTATUS NTAPI MmInitializeHandBuiltProcess2( @@ -1305,6 +1314,7 @@ MmProtectSectionView( PULONG OldProtect );
+INIT_FUNCTION NTSTATUS NTAPI MmInitSectionImplementation(VOID); @@ -1327,6 +1337,7 @@ MmPageOutSectionView( ULONG_PTR Entry );
+INIT_FUNCTION NTSTATUS NTAPI MmCreatePhysicalMemorySection(VOID); @@ -1345,12 +1356,14 @@ MmFreeSectionSegments(PFILE_OBJECT FileObject);
/* sysldr.c ******************************************************************/
+INIT_FUNCTION VOID NTAPI MiReloadBootLoadedDrivers( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION BOOLEAN NTAPI MiInitializeLoadedModuleList( diff --git a/ntoskrnl/include/internal/ntoskrnl.h b/ntoskrnl/include/internal/ntoskrnl.h index eb7b92fb8e..c16a4b5ad2 100644 --- a/ntoskrnl/include/internal/ntoskrnl.h +++ b/ntoskrnl/include/internal/ntoskrnl.h @@ -1,15 +1,6 @@ #pragma once
-/* - * Use these to place a function in a specific section of the executable - */ -#ifdef __GNUC__ -#define INIT_SECTION __attribute__((section ("INIT"))) -#define INIT_FUNCTION INIT_SECTION -#else -#define INIT_SECTION /* Done via alloc_text for MSC */ -#define INIT_FUNCTION INIT_SECTION -#endif +#include <section_attribs.h>
diff --git a/ntoskrnl/include/internal/ob.h b/ntoskrnl/include/internal/ob.h index 1026c49ee7..355e9339d8 100644 --- a/ntoskrnl/include/internal/ob.h +++ b/ntoskrnl/include/internal/ob.h @@ -159,6 +159,7 @@ typedef struct _OB_TEMP_BUFFER // // Startup and Shutdown Functions // +INIT_FUNCTION BOOLEAN NTAPI ObInitSystem( @@ -421,6 +422,7 @@ ObInheritDeviceMap( IN PEPROCESS Process );
+INIT_FUNCTION NTSTATUS NTAPI ObpCreateDosDevicesDirectory( @@ -430,6 +432,7 @@ ObpCreateDosDevicesDirectory( // // Security descriptor cache functions // +INIT_FUNCTION NTSTATUS NTAPI ObpInitSdCache( diff --git a/ntoskrnl/include/internal/po.h b/ntoskrnl/include/internal/po.h index 1fe2940721..f9d57e3e59 100644 --- a/ntoskrnl/include/internal/po.h +++ b/ntoskrnl/include/internal/po.h @@ -264,12 +264,14 @@ typedef struct _POP_SHUTDOWN_WAIT_ENTRY // // Initialization routines // +INIT_FUNCTION BOOLEAN NTAPI PoInitSystem( IN ULONG BootPhase );
+INIT_FUNCTION VOID NTAPI PoInitializePrcb( diff --git a/ntoskrnl/include/internal/ps.h b/ntoskrnl/include/internal/ps.h index b6eb06d250..fd360cfa33 100644 --- a/ntoskrnl/include/internal/ps.h +++ b/ntoskrnl/include/internal/ps.h @@ -90,6 +90,7 @@ PspShutdownProcessManager( VOID );
+INIT_FUNCTION BOOLEAN NTAPI PsInitSystem( @@ -120,6 +121,7 @@ PspMapSystemDll( IN BOOLEAN UseLargePages );
+INIT_FUNCTION NTSTATUS NTAPI PsLocateSystemDll( @@ -352,6 +354,7 @@ PspRemoveProcessFromJob( IN PEJOB Job );
+INIT_FUNCTION VOID NTAPI PspInitializeJobStructures( @@ -415,6 +418,7 @@ PspIsProcessExiting(IN PEPROCESS Process); // // Apphelp functions // +INIT_FUNCTION NTSTATUS NTAPI ApphelpCacheInitialize(VOID); diff --git a/ntoskrnl/include/internal/se.h b/ntoskrnl/include/internal/se.h index 563cd23d33..e2285fd29d 100644 --- a/ntoskrnl/include/internal/se.h +++ b/ntoskrnl/include/internal/se.h @@ -243,26 +243,32 @@ SepSidInTokenEx( );
/* Functions */ +INIT_FUNCTION BOOLEAN NTAPI SeInitSystem(VOID);
+INIT_FUNCTION VOID NTAPI ExpInitLuid(VOID);
+INIT_FUNCTION VOID NTAPI SepInitPrivileges(VOID);
+INIT_FUNCTION BOOLEAN NTAPI SepInitSecurityIDs(VOID);
+INIT_FUNCTION BOOLEAN NTAPI SepInitDACLs(VOID);
+INIT_FUNCTION BOOLEAN NTAPI SepInitSDs(VOID); @@ -329,6 +335,7 @@ SepCreateImpersonationTokenDacl( _Out_ PACL* Dacl );
+INIT_FUNCTION VOID NTAPI SepInitializeTokenImplementation(VOID); diff --git a/ntoskrnl/io/iomgr/arcname.c b/ntoskrnl/io/iomgr/arcname.c index 6ef7dd0e89..9d01104357 100644 --- a/ntoskrnl/io/iomgr/arcname.c +++ b/ntoskrnl/io/iomgr/arcname.c @@ -22,22 +22,22 @@ extern BOOLEAN IoRemoteBootClient;
/* FUNCTIONS *****************************************************************/
-NTSTATUS INIT_FUNCTION +NTSTATUS NTAPI IopCreateArcNamesCd(IN PLOADER_PARAMETER_BLOCK LoaderBlock );
-NTSTATUS INIT_FUNCTION +NTSTATUS NTAPI IopCreateArcNamesDisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN BOOLEAN SingleDisk, IN PBOOLEAN FoundBoot );
-NTSTATUS INIT_FUNCTION +NTSTATUS NTAPI IopCreateArcNames(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { @@ -147,8 +147,8 @@ IopCreateArcNames(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return Status; }
-NTSTATUS INIT_FUNCTION +NTSTATUS NTAPI IopCreateArcNamesCd(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { @@ -409,8 +409,8 @@ Cleanup: return Status; }
-NTSTATUS INIT_FUNCTION +NTSTATUS NTAPI IopCreateArcNamesDisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN BOOLEAN SingleDisk, @@ -831,9 +831,9 @@ Cleanup: return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION IopReassignSystemRoot(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PANSI_STRING NtBootPath) { diff --git a/ntoskrnl/io/iomgr/driver.c b/ntoskrnl/io/iomgr/driver.c index a1584f5810..c9fa6116c4 100644 --- a/ntoskrnl/io/iomgr/driver.c +++ b/ntoskrnl/io/iomgr/driver.c @@ -713,9 +713,9 @@ MiResolveImageReferences(IN PVOID ImageBase, // // Used for images already loaded (boot drivers) // +INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION LdrProcessDriverModule(PLDR_DATA_TABLE_ENTRY LdrEntry, PUNICODE_STRING FileName, PLDR_DATA_TABLE_ENTRY *ModuleObject) @@ -793,9 +793,9 @@ LdrProcessDriverModule(PLDR_DATA_TABLE_ENTRY LdrEntry, * * Initialize a driver that is already loaded in memory. */ +INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION IopInitializeBuiltinDriver(IN PLDR_DATA_TABLE_ENTRY BootLdrEntry) { PDEVICE_NODE DeviceNode; @@ -924,9 +924,9 @@ IopInitializeBuiltinDriver(IN PLDR_DATA_TABLE_ENTRY BootLdrEntry) * Return Value * None */ +INIT_FUNCTION VOID FASTCALL -INIT_FUNCTION IopInitializeBootDrivers(VOID) { PLIST_ENTRY ListHead, NextEntry, NextEntry2; @@ -1120,9 +1120,9 @@ IopInitializeBootDrivers(VOID) InitializeListHead(&KeLoaderBlock->LoadOrderListHead); }
+INIT_FUNCTION VOID FASTCALL -INIT_FUNCTION IopInitializeSystemDrivers(VOID) { PUNICODE_STRING *DriverList, *SavedList; diff --git a/ntoskrnl/io/iomgr/ramdisk.c b/ntoskrnl/io/iomgr/ramdisk.c index 810b106203..67ec971982 100644 --- a/ntoskrnl/io/iomgr/ramdisk.c +++ b/ntoskrnl/io/iomgr/ramdisk.c @@ -22,9 +22,9 @@
/* FUNCTIONS ******************************************************************/
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PMEMORY_ALLOCATION_DESCRIPTOR MemoryDescriptor; diff --git a/ntoskrnl/io/iomgr/rawfs.c b/ntoskrnl/io/iomgr/rawfs.c index 569be1a1bf..de3a90f1b8 100644 --- a/ntoskrnl/io/iomgr/rawfs.c +++ b/ntoskrnl/io/iomgr/rawfs.c @@ -1187,9 +1187,9 @@ RawUnload(IN PDRIVER_OBJECT DriverObject) #endif }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION RawFsDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) { diff --git a/ntoskrnl/io/pnpmgr/pnpinit.c b/ntoskrnl/io/pnpmgr/pnpinit.c index 5ae33e377f..944704aa3b 100644 --- a/ntoskrnl/io/pnpmgr/pnpinit.c +++ b/ntoskrnl/io/pnpmgr/pnpinit.c @@ -42,9 +42,9 @@ IopInitializeArbiters(VOID) return STATUS_SUCCESS; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION PiInitCacheGroupInformation(VOID) { HANDLE KeyHandle; @@ -374,9 +374,9 @@ Exit: return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION IopInitializePlugPlayServices(VOID) { NTSTATUS Status; diff --git a/ntoskrnl/io/pnpmgr/pnpmgr.c b/ntoskrnl/io/pnpmgr/pnpmgr.c index 9c0d030464..1362a89f03 100644 --- a/ntoskrnl/io/pnpmgr/pnpmgr.c +++ b/ntoskrnl/io/pnpmgr/pnpmgr.c @@ -3095,7 +3095,9 @@ IopInitializePnpServices(IN PDEVICE_NODE DeviceNode) return IopTraverseDeviceTree(&Context); }
-static NTSTATUS INIT_FUNCTION +static +INIT_FUNCTION +NTSTATUS IopEnumerateDetectedDevices( IN HANDLE hBaseKey, IN PUNICODE_STRING RelativePath OPTIONAL, @@ -3526,7 +3528,9 @@ cleanup: return Status; }
-static BOOLEAN INIT_FUNCTION +static +INIT_FUNCTION +BOOLEAN IopIsFirmwareMapperDisabled(VOID) { UNICODE_STRING KeyPathU = RTL_CONSTANT_STRING(L"\Registry\Machine\SYSTEM\CURRENTCONTROLSET\Control\Pnp"); @@ -3594,9 +3598,9 @@ IopIsFirmwareMapperDisabled(VOID) return (KeyValue != 0) ? TRUE : FALSE; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION IopUpdateRootKey(VOID) { UNICODE_STRING EnumU = RTL_CONSTANT_STRING(L"\Registry\Machine\SYSTEM\CurrentControlSet\Enum"); diff --git a/ntoskrnl/ke/amd64/kiinit.c b/ntoskrnl/ke/amd64/kiinit.c index a8647203ce..3afeaf8858 100644 --- a/ntoskrnl/ke/amd64/kiinit.c +++ b/ntoskrnl/ke/amd64/kiinit.c @@ -40,6 +40,7 @@ void KiSystemCallEntry32();
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI KiInitMachineDependent(VOID) @@ -364,6 +365,7 @@ KiInitModuleList(IN PLOADER_PARAMETER_BLOCK LoaderBlock) } }
+INIT_FUNCTION VOID NTAPI KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock) diff --git a/ntoskrnl/ke/config.c b/ntoskrnl/ke/config.c index 9c40183e8e..ca3d8b009b 100644 --- a/ntoskrnl/ke/config.c +++ b/ntoskrnl/ke/config.c @@ -17,9 +17,9 @@ /* * @implemented */ +INIT_FUNCTION PCONFIGURATION_COMPONENT_DATA NTAPI -INIT_FUNCTION KeFindConfigurationEntry(IN PCONFIGURATION_COMPONENT_DATA Child, IN CONFIGURATION_CLASS Class, IN CONFIGURATION_TYPE Type, @@ -38,9 +38,9 @@ KeFindConfigurationEntry(IN PCONFIGURATION_COMPONENT_DATA Child, /* * @implemented */ +INIT_FUNCTION PCONFIGURATION_COMPONENT_DATA NTAPI -INIT_FUNCTION KeFindConfigurationNextEntry(IN PCONFIGURATION_COMPONENT_DATA Child, IN CONFIGURATION_CLASS Class, IN CONFIGURATION_TYPE Type, diff --git a/ntoskrnl/ke/i386/cpu.c b/ntoskrnl/ke/i386/cpu.c index ea582d8885..5f366665bd 100644 --- a/ntoskrnl/ke/i386/cpu.c +++ b/ntoskrnl/ke/i386/cpu.c @@ -85,9 +85,9 @@ setCx86(UCHAR reg, UCHAR data)
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiSetProcessorType(VOID) { ULONG EFlags, NewEFlags; @@ -152,9 +152,9 @@ KiSetProcessorType(VOID) __writeeflags(EFlags); }
+INIT_FUNCTION ULONG NTAPI -INIT_FUNCTION KiGetCpuVendor(VOID) { PKPRCB Prcb = KeGetCurrentPrcb(); @@ -208,9 +208,9 @@ KiGetCpuVendor(VOID) return CPU_UNKNOWN; }
+INIT_FUNCTION ULONG NTAPI -INIT_FUNCTION KiGetFeatureBits(VOID) { PKPRCB Prcb = KeGetCurrentPrcb(); @@ -454,9 +454,9 @@ KiGetFeatureBits(VOID) return FeatureBits; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiGetCacheInformation(VOID) { PKIPCR Pcr = (PKIPCR)KeGetPcr(); @@ -722,9 +722,9 @@ KiGetCacheInformation(VOID) Pcr->SecondLevelCacheAssociativity); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiSetCR0Bits(VOID) { ULONG Cr0; @@ -739,9 +739,9 @@ KiSetCR0Bits(VOID) __writecr0(Cr0); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiInitializeTSS2(IN PKTSS Tss, IN PKGDTENTRY TssEntry OPTIONAL) { @@ -793,9 +793,9 @@ KiInitializeTSS(IN PKTSS Tss) Tss->Ss0 = KGDT_R0_DATA; }
+INIT_FUNCTION VOID FASTCALL -INIT_FUNCTION Ki386InitializeTss(IN PKTSS Tss, IN PKIDTENTRY Idt, IN PKGDTENTRY Gdt) @@ -982,18 +982,18 @@ KiSaveProcessorControlState(OUT PKPROCESSOR_STATE ProcessorState) ProcessorState->SpecialRegisters.Ldtr = Ke386GetLocalDescriptorTable(); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiInitializeMachineType(VOID) { /* Set the Machine Type we got from NTLDR */ KeI386MachineType = KeLoaderBlock->u.I386.MachineType & 0x000FF; }
+INIT_FUNCTION ULONG_PTR NTAPI -INIT_FUNCTION KiLoadFastSyscallMachineSpecificRegisters(IN ULONG_PTR Context) { /* Set CS and ESP */ @@ -1005,9 +1005,9 @@ KiLoadFastSyscallMachineSpecificRegisters(IN ULONG_PTR Context) return 0; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiRestoreFastSyscallReturnState(VOID) { /* Check if the CPU Supports fast system call */ @@ -1039,9 +1039,9 @@ KiRestoreFastSyscallReturnState(VOID) } }
+INIT_FUNCTION ULONG_PTR NTAPI -INIT_FUNCTION Ki386EnableDE(IN ULONG_PTR Context) { /* Enable DE */ @@ -1049,9 +1049,9 @@ Ki386EnableDE(IN ULONG_PTR Context) return 0; }
+INIT_FUNCTION ULONG_PTR NTAPI -INIT_FUNCTION Ki386EnableFxsr(IN ULONG_PTR Context) { /* Enable FXSR */ @@ -1059,9 +1059,9 @@ Ki386EnableFxsr(IN ULONG_PTR Context) return 0; }
+INIT_FUNCTION ULONG_PTR NTAPI -INIT_FUNCTION Ki386EnableXMMIExceptions(IN ULONG_PTR Context) { PKIDTENTRY IdtEntry; @@ -1082,9 +1082,9 @@ Ki386EnableXMMIExceptions(IN ULONG_PTR Context) return 0; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiI386PentiumLockErrataFixup(VOID) { KDESCRIPTOR IdtDescriptor = {0, 0, 0}; @@ -1158,9 +1158,9 @@ KiSaveProcessorState(IN PKTRAP_FRAME TrapFrame, KiSaveProcessorControlState(&Prcb->ProcessorState); }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION KiIsNpxPresent(VOID) { ULONG Cr0; @@ -1199,9 +1199,9 @@ KiIsNpxPresent(VOID) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION KiIsNpxErrataPresent(VOID) { static double Value1 = 4195835.0, Value2 = 3145727.0; diff --git a/ntoskrnl/ke/i386/kiinit.c b/ntoskrnl/ke/i386/kiinit.c index c17f4dd1f3..6d437a0581 100644 --- a/ntoskrnl/ke/i386/kiinit.c +++ b/ntoskrnl/ke/i386/kiinit.c @@ -31,7 +31,7 @@ ULONGLONG BootCycles, BootCyclesEnd;
/* FUNCTIONS *****************************************************************/
-INIT_SECTION +INIT_FUNCTION VOID NTAPI KiInitMachineDependent(VOID) @@ -330,7 +330,7 @@ KiInitMachineDependent(VOID) KiSetCR0Bits(); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI KiInitializePcr(IN ULONG ProcessorNumber, @@ -392,7 +392,7 @@ KiInitializePcr(IN ULONG ProcessorNumber, Pcr->PrcbData.MultiThreadProcessorSet = Pcr->PrcbData.SetMember; }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI KiInitializeKernel(IN PKPROCESS InitProcess, @@ -617,7 +617,7 @@ KiInitializeKernel(IN PKPROCESS InitProcess, LoaderBlock->Prcb = 0; }
-INIT_SECTION +INIT_FUNCTION VOID FASTCALL KiGetMachineBootPointers(IN PKGDTENTRY *Gdt, @@ -658,7 +658,7 @@ KiGetMachineBootPointers(IN PKGDTENTRY *Gdt, TssSelector.HighWord.Bytes.BaseHi << 24); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI KiSystemStartupBootStack(VOID) @@ -710,7 +710,7 @@ KiMarkPageAsReadOnly( __invlpg(Address); }
-INIT_SECTION +INIT_FUNCTION VOID NTAPI KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock) diff --git a/ntoskrnl/ke/i386/mtrr.c b/ntoskrnl/ke/i386/mtrr.c index 13f76950e0..ed2a7fb7ba 100644 --- a/ntoskrnl/ke/i386/mtrr.c +++ b/ntoskrnl/ke/i386/mtrr.c @@ -16,18 +16,18 @@
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiInitializeMTRR(IN BOOLEAN FinalCpu) { /* FIXME: Support this */ DPRINT("MTRR support detected but not yet taken advantage of\n"); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiAmdK6InitializeMTRR(VOID) { /* FIXME: Support this */ diff --git a/ntoskrnl/ke/i386/patpge.c b/ntoskrnl/ke/i386/patpge.c index a0e9b49424..8a27d7a738 100644 --- a/ntoskrnl/ke/i386/patpge.c +++ b/ntoskrnl/ke/i386/patpge.c @@ -17,7 +17,7 @@
/* FUNCTIONS *****************************************************************/
-INIT_SECTION +INIT_FUNCTION ULONG_PTR NTAPI Ki386EnableGlobalPage(IN ULONG_PTR Context) @@ -55,18 +55,18 @@ Ki386EnableGlobalPage(IN ULONG_PTR Context) return 0; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiInitializePAT(VOID) { /* FIXME: Support this */ DPRINT("PAT support detected but not yet taken advantage of\n"); }
+INIT_FUNCTION ULONG_PTR NTAPI -INIT_FUNCTION Ki386EnableTargetLargePage(IN ULONG_PTR Context) { PLARGE_IDENTITY_MAP IdentityMap = (PLARGE_IDENTITY_MAP)Context; diff --git a/ntoskrnl/ke/krnlinit.c b/ntoskrnl/ke/krnlinit.c index 96ac3d2612..accdeae7ef 100644 --- a/ntoskrnl/ke/krnlinit.c +++ b/ntoskrnl/ke/krnlinit.c @@ -65,9 +65,9 @@ KSPIN_LOCK KiReverseStallIpiLock;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiInitSystem(VOID) { ULONG i; @@ -117,9 +117,9 @@ KiInitSystem(VOID) sizeof(KeServiceDescriptorTable)); }
+INIT_FUNCTION LARGE_INTEGER NTAPI -INIT_FUNCTION KiComputeReciprocal(IN LONG Divisor, OUT PUCHAR Shift) { @@ -181,9 +181,9 @@ KiComputeReciprocal(IN LONG Divisor, return Reciprocal; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KiInitSpinLocks(IN PKPRCB Prcb, IN CCHAR Number) { @@ -287,9 +287,9 @@ KiInitSpinLocks(IN PKPRCB Prcb, } }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION KeInitSystem(VOID) { /* Check if Threaded DPCs are enabled */ diff --git a/ntoskrnl/lpc/port.c b/ntoskrnl/lpc/port.c index 7ca93a1574..ea49eb0c4b 100644 --- a/ntoskrnl/lpc/port.c +++ b/ntoskrnl/lpc/port.c @@ -31,9 +31,9 @@ static GENERIC_MAPPING LpcpPortMapping =
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION LpcInitSystem(VOID) { OBJECT_TYPE_INITIALIZER ObjectTypeInitializer; diff --git a/ntoskrnl/mm/ARM3/expool.c b/ntoskrnl/mm/ARM3/expool.c index 0828126d87..af83d88f05 100644 --- a/ntoskrnl/mm/ARM3/expool.c +++ b/ntoskrnl/mm/ARM3/expool.c @@ -628,9 +628,9 @@ MiDumpPoolConsumers(BOOLEAN CalledFromDbg, ULONG Tag, ULONG Mask, ULONG Flags)
/* PRIVATE FUNCTIONS **********************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_SECTION ExpSeedHotTags(VOID) { ULONG i, Key, Hash, Index; @@ -958,9 +958,9 @@ ExpInsertPoolTracker(IN ULONG Key, DPRINT1("Out of pool tag space, ignoring...\n"); }
+INIT_FUNCTION VOID NTAPI -INIT_SECTION ExInitializePoolDescriptor(IN PPOOL_DESCRIPTOR PoolDescriptor, IN POOL_TYPE PoolType, IN ULONG PoolIndex, @@ -1009,9 +1009,9 @@ ExInitializePoolDescriptor(IN PPOOL_DESCRIPTOR PoolDescriptor, ASSERT(PoolType != PagedPoolSession); }
+INIT_FUNCTION VOID NTAPI -INIT_SECTION InitializePool(IN POOL_TYPE PoolType, IN ULONG Threshold) { diff --git a/ntoskrnl/mm/ARM3/i386/init.c b/ntoskrnl/mm/ARM3/i386/init.c index 58cb5ba03c..6d3e2e7045 100644 --- a/ntoskrnl/mm/ARM3/i386/init.c +++ b/ntoskrnl/mm/ARM3/i386/init.c @@ -39,9 +39,9 @@ MMPTE MmDecommittedPte = {{MM_DECOMMIT << MM_PTE_SOFTWARE_PROTECTION_BITS}};
/* PRIVATE FUNCTIONS **********************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeSessionSpaceLayout(VOID) { // @@ -120,9 +120,9 @@ MiInitializeSessionSpaceLayout(VOID) MM_ALLOCATION_GRANULARITY); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiComputeNonPagedPoolVa(IN ULONG FreePages) { IN PFN_NUMBER PoolPages; @@ -236,9 +236,9 @@ MiComputeNonPagedPoolVa(IN ULONG FreePages) } }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PFN_NUMBER PageFrameIndex; diff --git a/ntoskrnl/mm/ARM3/largepag.c b/ntoskrnl/mm/ARM3/largepag.c index f169b4970b..e0c5ce9d56 100644 --- a/ntoskrnl/mm/ARM3/largepag.c +++ b/ntoskrnl/mm/ARM3/largepag.c @@ -28,9 +28,9 @@ BOOLEAN MiLargePageAllDrivers;
/* FUNCTIONS ******************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeLargePageSupport(VOID) { #if _MI_PAGING_LEVELS > 2 @@ -48,9 +48,9 @@ MiInitializeLargePageSupport(VOID) #endif }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiSyncCachedRanges(VOID) { ULONG i; @@ -62,9 +62,9 @@ MiSyncCachedRanges(VOID) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeDriverLargePageList(VOID) { PWCHAR p, pp; diff --git a/ntoskrnl/mm/ARM3/miarm.h b/ntoskrnl/mm/ARM3/miarm.h index 00801d8c16..27ff0718ba 100644 --- a/ntoskrnl/mm/ARM3/miarm.h +++ b/ntoskrnl/mm/ARM3/miarm.h @@ -1667,6 +1667,7 @@ MiQueryPageTableReferences(IN PVOID Address) return *RefCount; }
+INIT_FUNCTION BOOLEAN NTAPI MmArmInitSystem( @@ -1674,34 +1675,40 @@ MmArmInitSystem( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION VOID NTAPI MiInitializeSessionSpaceLayout(VOID);
+INIT_FUNCTION NTSTATUS NTAPI MiInitMachineDependent( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION VOID NTAPI MiComputeColorInformation( VOID );
+INIT_FUNCTION VOID NTAPI MiMapPfnDatabase( IN PLOADER_PARAMETER_BLOCK LoaderBlock );
+INIT_FUNCTION VOID NTAPI MiInitializeColorTables( VOID );
+INIT_FUNCTION VOID NTAPI MiInitializePfnDatabase( @@ -1720,18 +1727,21 @@ MiInitializeSessionIds( VOID );
+INIT_FUNCTION BOOLEAN NTAPI MiInitializeMemoryEvents( VOID );
+INIT_FUNCTION PFN_NUMBER NTAPI MxGetNextPage( IN PFN_NUMBER PageCount );
+INIT_FUNCTION PPHYSICAL_MEMORY_DESCRIPTOR NTAPI MmInitializeMemoryLimits( @@ -1778,24 +1788,28 @@ MiCheckPdeForPagedPool( IN PVOID Address );
+INIT_FUNCTION VOID NTAPI MiInitializeNonPagedPool( VOID );
+INIT_FUNCTION VOID NTAPI MiInitializeNonPagedPoolThresholds( VOID );
+INIT_FUNCTION VOID NTAPI MiInitializePoolEvents( VOID );
+INIT_FUNCTION VOID // NTAPI // InitializePool( // @@ -1804,9 +1818,9 @@ InitializePool( // ); //
// FIXFIX: THIS ONE TOO +INIT_FUNCTION VOID NTAPI -INIT_FUNCTION ExInitializePoolDescriptor( IN PPOOL_DESCRIPTOR PoolDescriptor, IN POOL_TYPE PoolType, @@ -1821,6 +1835,7 @@ MiInitializeSessionPool( VOID );
+INIT_FUNCTION VOID NTAPI MiInitializeSystemPtes( @@ -1982,18 +1997,21 @@ MiLookupDataTableEntry( IN PVOID Address );
+INIT_FUNCTION VOID NTAPI MiInitializeDriverLargePageList( VOID );
+INIT_FUNCTION VOID NTAPI MiInitializeLargePageSupport( VOID );
+INIT_FUNCTION VOID NTAPI MiSyncCachedRanges( diff --git a/ntoskrnl/mm/ARM3/mminit.c b/ntoskrnl/mm/ARM3/mminit.c index 217aa6569d..bcb8f1652a 100644 --- a/ntoskrnl/mm/ARM3/mminit.c +++ b/ntoskrnl/mm/ARM3/mminit.c @@ -477,9 +477,9 @@ MiScanMemoryDescriptors(IN PLOADER_PARAMETER_BLOCK LoaderBlock) MxOldFreeDescriptor = *MxFreeDescriptor; }
+INIT_FUNCTION PFN_NUMBER NTAPI -INIT_FUNCTION MxGetNextPage(IN PFN_NUMBER PageCount) { PFN_NUMBER Pfn; @@ -502,9 +502,9 @@ MxGetNextPage(IN PFN_NUMBER PageCount) return Pfn; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiComputeColorInformation(VOID) { ULONG L2Associativity; @@ -556,9 +556,9 @@ MiComputeColorInformation(VOID) KeGetCurrentPrcb()->SecondaryColorMask = MmSecondaryColorMask; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeColorTables(VOID) { ULONG i; @@ -607,9 +607,9 @@ MiInitializeColorTables(VOID) }
#ifndef _M_AMD64 +INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION MiIsRegularMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PFN_NUMBER Pfn) { @@ -666,9 +666,9 @@ MiIsRegularMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, return FALSE; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiMapPfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PFN_NUMBER FreePage, FreePageCount, PagesLeft, BasePage, PageCount; @@ -762,9 +762,9 @@ MiMapPfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock) MxFreeDescriptor->PageCount = FreePageCount; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiBuildPfnDatabaseFromPages(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PMMPDE PointerPde; @@ -871,9 +871,9 @@ MiBuildPfnDatabaseFromPages(IN PLOADER_PARAMETER_BLOCK LoaderBlock) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiBuildPfnDatabaseZeroPage(VOID) { PMMPFN Pfn1; @@ -894,9 +894,9 @@ MiBuildPfnDatabaseZeroPage(VOID) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiBuildPfnDatabaseFromLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PLIST_ENTRY NextEntry; @@ -1038,9 +1038,9 @@ MiBuildPfnDatabaseFromLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiBuildPfnDatabaseSelf(VOID) { PMMPTE PointerPte, LastPte; @@ -1068,9 +1068,9 @@ MiBuildPfnDatabaseSelf(VOID) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializePfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { /* Scan memory and start setting up PFN entries */ @@ -1087,9 +1087,9 @@ MiInitializePfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock) } #endif /* !_M_AMD64 */
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PLIST_ENTRY NextMd; @@ -1197,9 +1197,9 @@ MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock) ExFreePoolWithTag(Buffer, 'lMmM'); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiAdjustWorkingSetManagerParameters(IN BOOLEAN Client) { /* This function needs to do more work, for now, we tune page minimums */ @@ -1212,9 +1212,9 @@ MiAdjustWorkingSetManagerParameters(IN BOOLEAN Client) } }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiNotifyMemoryEvents(VOID) { /* Are we in a low-memory situation? */ @@ -1238,9 +1238,9 @@ MiNotifyMemoryEvents(VOID) } }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION MiCreateMemoryEvent(IN PUNICODE_STRING Name, OUT PKEVENT *Event) { @@ -1333,9 +1333,9 @@ CleanUp: return Status; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION MiInitializeMemoryEvents(VOID) { UNICODE_STRING LowString = RTL_CONSTANT_STRING(L"\KernelObjects\LowMemoryCondition"); @@ -1412,9 +1412,9 @@ MiInitializeMemoryEvents(VOID) return TRUE; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiAddHalIoMappings(VOID) { PVOID BaseAddress; @@ -1616,9 +1616,9 @@ MmDumpArmPfnDatabase(IN BOOLEAN StatusOnly) KeLowerIrql(OldIrql); }
+INIT_FUNCTION PPHYSICAL_MEMORY_DESCRIPTOR NTAPI -INIT_FUNCTION MmInitializeMemoryLimits(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PBOOLEAN IncludeType) { @@ -1745,9 +1745,9 @@ MmInitializeMemoryLimits(IN PLOADER_PARAMETER_BLOCK LoaderBlock, return Buffer; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiBuildPagedPool(VOID) { PMMPTE PointerPte; @@ -1985,9 +1985,9 @@ MiBuildPagedPool(VOID) MiInitializeSystemSpaceMap(NULL); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiDbgDumpMemoryDescriptors(VOID) { PLIST_ENTRY NextEntry; @@ -2037,9 +2037,9 @@ MiDbgDumpMemoryDescriptors(VOID) DPRINT1("Total: %08lX (%lu MB)\n", (ULONG)TotalPages, (ULONG)(TotalPages * PAGE_SIZE) / 1024 / 1024); }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION MmArmInitSystem(IN ULONG Phase, IN PLOADER_PARAMETER_BLOCK LoaderBlock) { diff --git a/ntoskrnl/mm/ARM3/pool.c b/ntoskrnl/mm/ARM3/pool.c index 9ef703ef2c..5d6554bad7 100644 --- a/ntoskrnl/mm/ARM3/pool.c +++ b/ntoskrnl/mm/ARM3/pool.c @@ -178,9 +178,9 @@ MiProtectedPoolRemoveEntryList(IN PLIST_ENTRY Entry) if (PoolBlink) MiProtectFreeNonPagedPool(PoolBlink, 1); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeNonPagedPoolThresholds(VOID) { PFN_NUMBER Size = MmMaximumNonPagedPoolInPages; @@ -195,9 +195,9 @@ MiInitializeNonPagedPoolThresholds(VOID) ASSERT(MiLowNonPagedPoolThreshold < MiHighNonPagedPoolThreshold); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializePoolEvents(VOID) { KIRQL OldIrql; @@ -270,9 +270,9 @@ MiInitializePoolEvents(VOID) KeReleaseQueuedSpinLock(LockQueueMmNonPagedPoolLock, OldIrql); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeNonPagedPool(VOID) { ULONG i; diff --git a/ntoskrnl/mm/ARM3/procsup.c b/ntoskrnl/mm/ARM3/procsup.c index 51502b9a5d..cbc784066a 100644 --- a/ntoskrnl/mm/ARM3/procsup.c +++ b/ntoskrnl/mm/ARM3/procsup.c @@ -1028,9 +1028,9 @@ MmInitializeProcessAddressSpace(IN PEPROCESS Process, return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION MmInitializeHandBuiltProcess(IN PEPROCESS Process, IN PULONG_PTR DirectoryTableBase) { @@ -1053,9 +1053,9 @@ MmInitializeHandBuiltProcess(IN PEPROCESS Process, return STATUS_SUCCESS; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION MmInitializeHandBuiltProcess2(IN PEPROCESS Process) { /* Lock the VAD, ARM3-owned ranges away */ diff --git a/ntoskrnl/mm/ARM3/sysldr.c b/ntoskrnl/mm/ARM3/sysldr.c index d614b8bf3a..15b267d146 100644 --- a/ntoskrnl/mm/ARM3/sysldr.c +++ b/ntoskrnl/mm/ARM3/sysldr.c @@ -586,9 +586,9 @@ MiProcessLoaderEntry(IN PLDR_DATA_TABLE_ENTRY LdrEntry, KeLeaveCriticalRegion(); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiUpdateThunks(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PVOID OldBase, IN PVOID NewBase, @@ -1444,9 +1444,9 @@ MiFreeInitializationCode(IN PVOID InitStart, NULL); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiFindInitializationCode(OUT PVOID *StartVa, OUT PVOID *EndVa) { @@ -1679,9 +1679,9 @@ MmFreeDriverInitialization(IN PLDR_DATA_TABLE_ENTRY LdrEntry) MiDeleteSystemPageableVm(StartPte, PageCount, 0, NULL); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiReloadBootLoadedDrivers(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PLIST_ENTRY NextEntry; @@ -1868,9 +1868,9 @@ MiReloadBootLoadedDrivers(IN PLOADER_PARAMETER_BLOCK LoaderBlock) } }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION MiBuildImportsForBootDrivers(VOID) { PLIST_ENTRY NextEntry, NextEntry2; @@ -2133,9 +2133,9 @@ MiBuildImportsForBootDrivers(VOID) return STATUS_SUCCESS; }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiLocateKernelSections(IN PLDR_DATA_TABLE_ENTRY LdrEntry) { ULONG_PTR DllBase; @@ -2194,9 +2194,9 @@ MiLocateKernelSections(IN PLDR_DATA_TABLE_ENTRY LdrEntry) } }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION MiInitializeLoadedModuleList(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { PLDR_DATA_TABLE_ENTRY LdrEntry, NewEntry; diff --git a/ntoskrnl/mm/ARM3/syspte.c b/ntoskrnl/mm/ARM3/syspte.c index 673b2e9a2c..3c1ec6ca6d 100644 --- a/ntoskrnl/mm/ARM3/syspte.c +++ b/ntoskrnl/mm/ARM3/syspte.c @@ -393,9 +393,9 @@ MiReleaseSystemPtes(IN PMMPTE StartingPte, KeReleaseQueuedSpinLock(LockQueueSystemSpaceLock, OldIrql); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiInitializeSystemPtes(IN PMMPTE StartingPte, IN ULONG NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE PoolType) diff --git a/ntoskrnl/mm/mminit.c b/ntoskrnl/mm/mminit.c index e0166ee8fb..4f328ab65c 100644 --- a/ntoskrnl/mm/mminit.c +++ b/ntoskrnl/mm/mminit.c @@ -39,8 +39,8 @@ extern NTSTATUS MiRosTrimCache(ULONG Target, ULONG Priority, PULONG NrFreed); // Helper function to create initial memory areas. // The created area is always read/write. // -VOID INIT_FUNCTION +VOID NTAPI MiCreateArm3StaticMemoryArea(PVOID BaseAddress, SIZE_T Size, BOOLEAN Executable) { @@ -61,8 +61,8 @@ MiCreateArm3StaticMemoryArea(PVOID BaseAddress, SIZE_T Size, BOOLEAN Executable) // TODO: Perhaps it would be prudent to bugcheck here, not only assert? }
-VOID INIT_FUNCTION +VOID NTAPI MiInitSystemMemoryAreas(VOID) { @@ -117,9 +117,9 @@ MiInitSystemMemoryAreas(VOID) #endif /* _X86_ */ }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION MiDbgDumpAddressSpace(VOID) { // @@ -169,9 +169,9 @@ MiDbgDumpAddressSpace(VOID) "Non Paged Pool Expansion PTE Space"); }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION MmInitBsmThread(VOID) { NTSTATUS Status; @@ -193,9 +193,9 @@ MmInitBsmThread(VOID) return Status; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION MmInitSystem(IN ULONG Phase, IN PLOADER_PARAMETER_BLOCK LoaderBlock) { diff --git a/ntoskrnl/ob/obinit.c b/ntoskrnl/ob/obinit.c index dcc2448a4a..e4de1a16d7 100644 --- a/ntoskrnl/ob/obinit.c +++ b/ntoskrnl/ob/obinit.c @@ -55,9 +55,9 @@ ULONG ObpInitializationPhase; /* PRIVATE FUNCTIONS *********************************************************/
static +INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION ObpCreateKernelObjectsSD(OUT PSECURITY_DESCRIPTOR *SecurityDescriptor) { PSECURITY_DESCRIPTOR Sd = NULL; diff --git a/ntoskrnl/ob/obname.c b/ntoskrnl/ob/obname.c index a9d05c8137..b1e541eeb4 100644 --- a/ntoskrnl/ob/obname.c +++ b/ntoskrnl/ob/obname.c @@ -34,9 +34,9 @@ ULONG ObpUnsecureGlobalNamesLength = sizeof(ObpUnsecureGlobalNamesBuffer);
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION ObpCreateGlobalDosDevicesSD(OUT PSECURITY_DESCRIPTOR *SecurityDescriptor) { PSECURITY_DESCRIPTOR Sd = NULL; @@ -127,9 +127,9 @@ done: return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION ObpCreateDosDevicesDirectory(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; diff --git a/ntoskrnl/ob/obsdcach.c b/ntoskrnl/ob/obsdcach.c index 7573ba69f0..4d6433cad8 100644 --- a/ntoskrnl/ob/obsdcach.c +++ b/ntoskrnl/ob/obsdcach.c @@ -55,9 +55,9 @@ ObpSdReleaseLockShared(IN POB_SD_CACHE_LIST CacheEntry) KeLeaveCriticalRegion(); }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION ObpInitSdCache(VOID) { ULONG i; diff --git a/ntoskrnl/po/power.c b/ntoskrnl/po/power.c index c34a660c86..a0dd4fb3af 100644 --- a/ntoskrnl/po/power.c +++ b/ntoskrnl/po/power.c @@ -289,9 +289,9 @@ PopSetSystemPowerState(SYSTEM_POWER_STATE PowerState, POWER_ACTION PowerAction) return Status; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION PoInitSystem(IN ULONG BootPhase) { PVOID NotificationEntry; @@ -383,9 +383,9 @@ PopIdle0(IN PPROCESSOR_POWER_STATE PowerState) HalProcessorIdle(); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION PoInitializePrcb(IN PKPRCB Prcb) { /* Initialize the Power State */ diff --git a/ntoskrnl/ps/apphelp.c b/ntoskrnl/ps/apphelp.c index 6cdea62bca..7692c7ab2e 100644 --- a/ntoskrnl/ps/apphelp.c +++ b/ntoskrnl/ps/apphelp.c @@ -434,9 +434,9 @@ ApphelpCacheWrite(VOID) }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION ApphelpCacheInitialize(VOID) { DPRINT("SHIMS: ApphelpCacheInitialize\n"); diff --git a/ntoskrnl/ps/job.c b/ntoskrnl/ps/job.c index fd0049c991..f37de8bbb0 100644 --- a/ntoskrnl/ps/job.c +++ b/ntoskrnl/ps/job.c @@ -105,9 +105,9 @@ PspDeleteJob ( PVOID ObjectBody ) ExDeleteResource(&Job->JobLock); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION PspInitializeJobStructures(VOID) { InitializeListHead(&PsJobListHead); diff --git a/ntoskrnl/ps/psmgr.c b/ntoskrnl/ps/psmgr.c index ed01622235..317861c128 100644 --- a/ntoskrnl/ps/psmgr.c +++ b/ntoskrnl/ps/psmgr.c @@ -62,9 +62,9 @@ BOOLEAN PspDoingGiveBacks;
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION USHORT NTAPI -INIT_FUNCTION NameToOrdinal(IN PCHAR Name, IN PVOID DllBase, IN ULONG NumberOfNames, @@ -105,9 +105,9 @@ NameToOrdinal(IN PCHAR Name, return NameToOrdinal(Name, DllBase, NumberOfNames, NameTable, OrdinalTable); }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION LookupEntryPoint(IN PVOID DllBase, IN PCHAR Name, OUT PVOID *EntryPoint) @@ -157,9 +157,9 @@ LookupEntryPoint(IN PVOID DllBase, return STATUS_SUCCESS; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION PspLookupSystemDllEntryPoint(IN PCHAR Name, IN PVOID *EntryPoint) { @@ -167,9 +167,9 @@ PspLookupSystemDllEntryPoint(IN PCHAR Name, return LookupEntryPoint(PspSystemDllBase, Name, EntryPoint); }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION PspLookupKernelUserEntryPoints(VOID) { NTSTATUS Status; @@ -273,9 +273,9 @@ PspMapSystemDll(IN PEPROCESS Process, return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION PsLocateSystemDll(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; @@ -359,9 +359,9 @@ PsLocateSystemDll(VOID) return Status; }
+INIT_FUNCTION NTSTATUS NTAPI -INIT_FUNCTION PspInitializeSystemDll(VOID) { NTSTATUS Status; @@ -392,9 +392,9 @@ PspInitializeSystemDll(VOID) return Status; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION PspInitPhase1(VOID) { /* Initialize the System DLL and return status of operation */ @@ -402,9 +402,9 @@ PspInitPhase1(VOID) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION PspInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { NTSTATUS Status; @@ -620,9 +620,9 @@ PspInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock) { /* Check the initialization phase */ diff --git a/ntoskrnl/ps/quota.c b/ntoskrnl/ps/quota.c index f955818f78..b813190a76 100644 --- a/ntoskrnl/ps/quota.c +++ b/ntoskrnl/ps/quota.c @@ -95,9 +95,9 @@ PspReturnProcessQuotaSpecifiedPool(IN PEPROCESS Process,
/* FUNCTIONS ***************************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION PsInitializeQuotaSystem(VOID) { RtlZeroMemory(&PspDefaultQuotaBlock, sizeof(PspDefaultQuotaBlock)); diff --git a/ntoskrnl/se/semgr.c b/ntoskrnl/se/semgr.c index 389f6bf765..3156e64227 100644 --- a/ntoskrnl/se/semgr.c +++ b/ntoskrnl/se/semgr.c @@ -24,8 +24,9 @@ extern ERESOURCE SepSubjectContextLock;
/* PRIVATE FUNCTIONS **********************************************************/
-static BOOLEAN +static INIT_FUNCTION +BOOLEAN SepInitExports(VOID) { SepExports.SeCreateTokenPrivilege = SeCreateTokenPrivilege; @@ -89,9 +90,9 @@ SepInitExports(VOID) }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION SepInitializationPhase0(VOID) { PAGED_CODE(); @@ -124,9 +125,9 @@ SepInitializationPhase0(VOID) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION SepInitializationPhase1(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; @@ -232,9 +233,9 @@ SepInitializationPhase1(VOID) return TRUE; }
+INIT_FUNCTION BOOLEAN NTAPI -INIT_FUNCTION SeInitSystem(VOID) { /* Check the initialization phase */ diff --git a/ntoskrnl/vdm/vdmmain.c b/ntoskrnl/vdm/vdmmain.c index 8bedcd9cdc..32a45a9ba4 100644 --- a/ntoskrnl/vdm/vdmmain.c +++ b/ntoskrnl/vdm/vdmmain.c @@ -17,9 +17,9 @@
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION Ki386VdmEnablePentiumExtentions(IN BOOLEAN Enable) { ULONG EFlags, Cr4; @@ -36,9 +36,9 @@ Ki386VdmEnablePentiumExtentions(IN BOOLEAN Enable) __writeeflags(EFlags); }
+INIT_FUNCTION VOID NTAPI -INIT_FUNCTION KeI386VdmInitialize(VOID) { NTSTATUS Status; diff --git a/sdk/cmake/msvc.cmake b/sdk/cmake/msvc.cmake index eda0972729..747b23b199 100644 --- a/sdk/cmake/msvc.cmake +++ b/sdk/cmake/msvc.cmake @@ -139,9 +139,9 @@ if(RUNTIME_CHECKS) add_compile_flags("/RTC1") endif()
-set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE ${_hotpatch_link_flag}") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE /IGNORE:4104 ${_hotpatch_link_flag}") -set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE ${_hotpatch_link_flag}") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE ${_hotpatch_link_flag} /IGNORE:4039") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE ${_hotpatch_link_flag} /IGNORE:4104 /IGNORE:4039") +set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE ${_hotpatch_link_flag} /IGNORE:4039")
# HACK: Remove the /implib argument, implibs are generated separately string(REPLACE "/implib:<TARGET_IMPLIB>" "" CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE}") diff --git a/sdk/include/ndk/halfuncs.h b/sdk/include/ndk/halfuncs.h index 29877c5a58..03e869887a 100644 --- a/sdk/include/ndk/halfuncs.h +++ b/sdk/include/ndk/halfuncs.h @@ -25,6 +25,7 @@ Author: #include <umtypes.h> #include <haltypes.h> #include <ketypes.h> +#include <section_attribs.h>
#ifndef NTOS_MODE_USER
@@ -80,6 +81,7 @@ HalInitializeProcessor( _In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock );
+INIT_FUNCTION NTHALAPI BOOLEAN NTAPI @@ -175,6 +177,7 @@ HalGetInterruptSource( ); #endif
+INIT_FUNCTION NTHALAPI VOID NTAPI diff --git a/sdk/include/ndk/inbvfuncs.h b/sdk/include/ndk/inbvfuncs.h index 61855e9054..df121830cb 100644 --- a/sdk/include/ndk/inbvfuncs.h +++ b/sdk/include/ndk/inbvfuncs.h @@ -24,6 +24,7 @@ Author: // #include <umtypes.h> #include <inbvtypes.h> +#include <section_attribs.h>
#ifndef NTOS_MODE_USER // @@ -50,6 +51,7 @@ InbvNotifyDisplayOwnershipLost( // // Installation Functions // +INIT_FUNCTION VOID NTAPI InbvEnableBootDriver( diff --git a/sdk/include/ndk/kefuncs.h b/sdk/include/ndk/kefuncs.h index f0b1c275f0..6d7b713cc8 100644 --- a/sdk/include/ndk/kefuncs.h +++ b/sdk/include/ndk/kefuncs.h @@ -24,6 +24,7 @@ Author: // #include <umtypes.h> #include <ketypes.h> +#include <section_attribs.h>
#ifndef NTOS_MODE_USER
@@ -244,6 +245,7 @@ KeSignalCallDpcSynchronize( // ARC Configuration Functions. Only enabled if you have ARC Support // #ifdef _ARC_ +INIT_FUNCTION PCONFIGURATION_COMPONENT_DATA NTAPI KeFindConfigurationNextEntry( @@ -254,6 +256,7 @@ KeFindConfigurationNextEntry( _In_ PCONFIGURATION_COMPONENT_DATA *NextLink );
+INIT_FUNCTION PCONFIGURATION_COMPONENT_DATA NTAPI KeFindConfigurationEntry( diff --git a/sdk/include/ndk/section_attribs.h b/sdk/include/ndk/section_attribs.h new file mode 100644 index 0000000000..a35fae81eb --- /dev/null +++ b/sdk/include/ndk/section_attribs.h @@ -0,0 +1,41 @@ +/*++ NDK Version: 0099 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + section_attribs.h + +Abstract: + + Preprocessor definitions to put code and data into the INIT section. + +Author: + + Timo Kreuzer (timo.kreuzer@reactos.org) + +--*/ + +#pragma once + +#ifdef __GNUC__ + +#define INIT_SECTION __attribute__((section ("INIT"))) +#define INIT_FUNCTION __attribute__((section ("INIT"))) + +#elif defined(_MSC_VER) + +#pragma comment(linker, "/SECTION:INIT,ERW") +#define INIT_SECTION __declspec(allocate("INIT")) +#if (_MSC_VER >= 1800) // Visual Studio 2013 / version 12.0 +#define INIT_FUNCTION __declspec(code_seg("INIT")) +#else +#pragma section("INIT", read,execute,discard) +#define INIT_FUNCTION +#endif + +#else + +#error Invalid compiler! + +#endif diff --git a/win32ss/gdi/eng/ldevobj.h b/win32ss/gdi/eng/ldevobj.h index 5405ec1c69..a689914ad6 100644 --- a/win32ss/gdi/eng/ldevobj.h +++ b/win32ss/gdi/eng/ldevobj.h @@ -51,6 +51,7 @@ NTAPI EngGetLDEV( PDEVMODEW pdm);
+INIT_FUNCTION NTSTATUS APIENTRY DriverEntry ( diff --git a/win32ss/user/ntuser/main.c b/win32ss/user/ntuser/main.c index b97a1f3d37..318a7ea70e 100644 --- a/win32ss/user/ntuser/main.c +++ b/win32ss/user/ntuser/main.c @@ -904,7 +904,7 @@ DriverUnload(IN PDRIVER_OBJECT DriverObject) /* * This definition doesn't work */ -INIT_SECTION +INIT_FUNCTION NTSTATUS APIENTRY DriverEntry( diff --git a/win32ss/win32kp.h b/win32ss/win32kp.h index 1bdcf38edd..2d0f358597 100644 --- a/win32ss/win32kp.h +++ b/win32ss/win32kp.h @@ -10,14 +10,6 @@
#pragma once
-#ifdef __GNUC__ -#define INIT_SECTION __attribute__((section ("INIT"))) -#define INIT_FUNCTION INIT_SECTION -#else -#define INIT_SECTION /* Done via alloc_text for MSC */ -#define INIT_FUNCTION INIT_SECTION -#endif - /* Enable debugging features */ #define GDI_DEBUG 0 #define DBG_ENABLE_GDIOBJ_BACKTRACES 0