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")
{
*(.text)
*(SORT(.text*))
+ *(INIT)
+ *(SORT(INIT*))
*(.data)
*(SORT(.data*))
*(.rdata)
ExReleaseResourceLite(&(Fcb->MainResource));
}
-INIT_SECTION
+INIT_FUNCTION
VOID
VfatInitFastIoRoutines(
PFAST_IO_DISPATCH FastIoDispatch)
* RegistryPath = path to our configuration entries
* RETURNS: Success or failure
*/
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
DriverEntry(
#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
/* fastio.c */
+INIT_FUNCTION
VOID
VfatInitFastIoRoutines(
PFAST_IO_DISPATCH FastIoDispatch);
/* iface.c */
+INIT_FUNCTION
NTSTATUS
NTAPI
DriverEntry(
UNIMPLEMENTED;
}
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
DfsDriverEntry(PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath)
#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
PDRIVER_OBJECT DriverObject
);
+INIT_FUNCTION
NTSTATUS
DfsDriverEntry(
PDRIVER_OBJECT DriverObject,
#define NDEBUG
#include <debug.h>
+INIT_FUNCTION
NTSTATUS
NTAPI
DriverEntry(
PUNICODE_STRING RegistryPath
);
+INIT_FUNCTION
VOID
MupInitializeData(
VOID
);
+INIT_FUNCTION
VOID
MupInitializeVcb(
PMUP_VCB Vcb
/* FUNCTIONS ****************************************************************/
-INIT_SECTION
+INIT_FUNCTION
VOID
MupInitializeData(VOID)
{
ExDeleteResourceLite(&MupVcbLock);
}
-INIT_SECTION
+INIT_FUNCTION
VOID
MupInitializeVcb(PMUP_VCB Vcb)
{
* RegistryPath = path to our configuration entries
* RETURNS: Success or failure
*/
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
DriverEntry(PDRIVER_OBJECT DriverObject,
#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)
* RegistryPath = path to our configuration entries
* RETURNS: Success or failure
*/
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
DriverEntry(PDRIVER_OBJECT DriverObject,
* DriverObject = object describing this driver
* RETURNS: Nothing
*/
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject)
#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 ? \
/* ntfs.c */
+INIT_FUNCTION
DRIVER_INITIALIZE DriverEntry;
+INIT_FUNCTION
VOID
NTAPI
NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject);
/* PRIVATE FUNCTIONS **********************************************************/
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterKdSupportFunctions(VOID)
//HalaAcpiTimerInit(TimerPort, TimerValExt);
}
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
return STATUS_SUCCESS;
}
+INIT_FUNCTION
VOID
NTAPI
HalpInitializePciBus(VOID)
HalFindBusAddressTranslation = HalpFindBusAddressTranslation;
}
+INIT_FUNCTION
VOID
NTAPI
HalpInitBusHandlers(VOID)
HalpInitNonBusHandler();
}
+INIT_FUNCTION
VOID
NTAPI
HalpBuildAddressMap(VOID)
/* ACPI is magic baby */
}
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpGetDebugPortTable(VOID)
(HalpDebugPortTable->BaseAddress.AddressSpaceID == 1));
}
+INIT_FUNCTION
ULONG
NTAPI
HalpIs16BitPortDecodeSupported(VOID)
/*
* @implemented
*/
+INIT_FUNCTION
VOID
NTAPI
HalReportResourceUsage(VOID)
HalpReleaseCmosSpinLock();
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpInitializeClock(VOID)
return Length - Len;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpInitializeCmos(VOID)
/* FUNCTIONS *****************************************************************/
#ifndef _MINIHAL_
-INIT_SECTION
+INIT_FUNCTION
VOID
HalpInitDma(VOID)
{
#define NDEBUG
#include <debug.h>
+INIT_FUNCTION
VOID
NTAPI
HalpGetParameters(
/* PRIVATE FUNCTIONS *********************************************************/
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpGetParameters(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/*
* @implemented
*/
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalInitSystem(IN ULONG BootPhase,
/* PRIVATE FUNCTIONS **********************************************************/
#ifndef _MINIHAL_
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpReportSerialNumber(VOID)
}
}
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpMarkAcpiHal(VOID)
__writeeflags(Flags);
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpInitializeClock(VOID)
#define NDEBUG
#include <debug.h>
+INIT_FUNCTION
VOID
NTAPI
HalpGetResourceSortValue(
OUT PLARGE_INTEGER Value
);
+INIT_FUNCTION
VOID
NTAPI
HalpBuildPartialFromIdt(
IN PCM_PARTIAL_RESOURCE_DESCRIPTOR TranslatedDescriptor
);
+INIT_FUNCTION
VOID
NTAPI
HalpBuildPartialFromAddress(
/* FUNCTIONS ******************************************************************/
#ifndef _MINIHAL_
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpGetResourceSortValue(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
}
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpBuildPartialFromIdt(IN ULONG Entry,
TranslatedDescriptor->u.Interrupt.Level = HalpIDTUsage[Entry].Irql;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface,
}
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpReportResourceUsage(IN PUNICODE_STRING HalName,
}
#endif
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterVector(IN UCHAR Flags,
}
#ifndef _MINIHAL_
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpEnableInterruptHandler(IN UCHAR Flags,
HalEnableSystemInterrupt(SystemVector, Irql, Mode);
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpGetNMICrashFlag(VOID)
extern PCI_CONFIG_HANDLER PCIConfigHandlerType1;
extern PCI_CONFIG_HANDLER PCIConfigHandlerType2;
+INIT_FUNCTION
PPCI_REGISTRY_INFO_INTERNAL
NTAPI
HalpQueryPciRegistryInfo(
IN ULONG Length
);
+INIT_FUNCTION
VOID
NTAPI
HalpInitializePciBus(
VOID
);
+INIT_FUNCTION
VOID
NTAPI
HalpInitializePciStubs(
IN BOOLEAN NextBus
);
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterPciDebuggingDeviceInfo(
OUT PPHYSICAL_ADDRESS TranslatedAddress
);
+INIT_FUNCTION
ULONG
NTAPI
HalpGetSystemInterruptVector(
IN ULONG Signature
);
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpSetupAcpiPhase0(
#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
PADAPTER_OBJECT NTAPI HalpAllocateAdapterEx(ULONG NumberOfMapRegisters,BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses);
/* sysinfo.c */
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterVector(IN UCHAR Flags,
IN ULONG SystemVector,
IN KIRQL Irql);
+INIT_FUNCTION
VOID
NTAPI
HalpEnableInterruptHandler(IN UCHAR Flags,
extern BOOLEAN HalpProfilingStopped;
/* timer.c */
-VOID NTAPI HalpInitializeClock(VOID);
+INIT_FUNCTION VOID NTAPI HalpInitializeClock(VOID);
VOID __cdecl HalpClockInterrupt(VOID);
VOID __cdecl HalpProfileInterrupt(VOID);
VOID HalpInitPciBus (VOID);
/* dma.c */
-VOID HalpInitDma (VOID);
+INIT_FUNCTION VOID HalpInitDma (VOID);
/* Non-generic initialization */
VOID HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock);
VOID
);
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterKdSupportFunctions(
VOID
);
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpSetupPciDeviceForDebugging(
IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
);
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpReleasePciDeviceForDebugging(
//
// CMOS Routines
//
+INIT_FUNCTION
VOID
NTAPI
HalpInitializeCmos(
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(
IN INTERFACE_TYPE InterfaceType
);
+INIT_FUNCTION
ULONG
NTAPI
HalpIs16BitPortDecodeSupported(
IN KIRQL OldIrql
);
+INIT_FUNCTION
VOID
NTAPI
HalpInitBusHandlers(
VOID
);
+INIT_FUNCTION
VOID
NTAPI
HalpDebugPciDumpBus(
return STATUS_SUCCESS;
}
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpSetupPciDeviceForDebugging(IN PVOID LoaderBlock,
return STATUS_NOT_IMPLEMENTED;
}
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpReleasePciDeviceForDebugging(IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice)
return STATUS_NOT_IMPLEMENTED;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterPciDebuggingDeviceInfo(VOID)
return Length;
}
-INIT_SECTION
+INIT_FUNCTION
PPCI_REGISTRY_INFO_INTERNAL
NTAPI
HalpQueryPciRegistryInfo(VOID)
#endif
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpInitializePciStubs(VOID)
return SystemVector;
}
+INIT_FUNCTION
ULONG
NTAPI
HalpGetSystemInterruptVector(IN PBUS_HANDLER BusHandler,
#define NDEBUG
#include <debug.h>
+INIT_FUNCTION
PBUS_HANDLER
NTAPI
HalpAllocateAndInitPciBusHandler(
IN BOOLEAN TestAllocation
);
+INIT_FUNCTION
VOID
NTAPI
HalpFixupPciSupportedRanges(
IN ULONG BusCount
);
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpGetChipHacks(
IN PULONG HackFlags
);
+INIT_FUNCTION
BOOLEAN
NTAPI
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(
IN ULONG Flags
);
+INIT_FUNCTION
BOOLEAN
NTAPI
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(
return Bus;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterInternalBusHandlers(VOID)
}
#ifndef _MINIHAL_
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpMarkChipsetDecode(BOOLEAN OverrideEnable)
return Status;
}
-INIT_SECTION
+INIT_FUNCTION
PBUS_HANDLER
NTAPI
HalpAllocateAndInitPciBusHandler(IN ULONG PciType,
return Bus;
}
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpIsValidPCIDevice(IN PBUS_HANDLER BusHandler,
static BOOLEAN WarningsGiven[5];
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpGetChipHacks(IN USHORT VendorId,
return Status;
}
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpIsRecognizedCard(IN PPCI_REGISTRY_INFO_INTERNAL PciRegistryInfo,
return FALSE;
}
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpIsIdeDevice(IN PPCI_COMMON_CONFIG PciData)
return FALSE;
}
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpIsBridgeDevice(IN PPCI_COMMON_CONFIG PciData)
(PciData->SubClass == PCI_SUBCLASS_BR_CARDBUS)));
}
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpGetPciBridgeConfig(IN ULONG PciType,
return FALSE;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpFixupPciSupportedRanges(IN ULONG BusCount)
}
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
ShowSize(ULONG x)
*/
#include "pci_classes.h"
#include "pci_vendors.h"
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpDebugPciDumpBus(IN ULONG i,
}
#endif
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpInitializePciBus(VOID)
#endif
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpInitBusHandlers(VOID)
HalpRegisterInternalBusHandlers();
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpRegisterKdSupportFunctions(VOID)
/* PRIVATE FUNCTIONS **********************************************************/
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
return STATUS_NO_SUCH_DEVICE;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalpBuildAddressMap(VOID)
//HalpAddROMRanges();
}
-INIT_SECTION
+INIT_FUNCTION
BOOLEAN
NTAPI
HalpGetDebugPortTable(VOID)
return FALSE;
}
-INIT_SECTION
+INIT_FUNCTION
ULONG
NTAPI
HalpIs16BitPortDecodeSupported(VOID)
}
#if 0
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
NTAPI
HaliInitPnpDriver(VOID)
/*
* @implemented
*/
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
HalReportResourceUsage(VOID)
{
}
+INIT_FUNCTION
NTSTATUS
NTAPI
HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
ULONG ReadAheadGranularity;
} NOCC_CACHE_MAP, *PNOCC_CACHE_MAP;
+INIT_FUNCTION
VOID
NTAPI
CcPfInitializePrefetcher(VOID);
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain);
+INIT_FUNCTION
VOID
NTAPI
CcInitView(VOID);
CcpUnpinData(PNOCC_BCB Bcb,
BOOLEAN ActuallyRelease);
+INIT_FUNCTION
BOOLEAN
NTAPI
CcInitializeCacheManager(VOID);
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CcPfInitializePrefetcher(VOID)
{
/* Notify debugger */
/* FIXME: Setup the rest of the prefetecher */
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CcInitializeCacheManager(VOID)
{
ULONG Thread;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpInitCmPrivateAlloc(VOID)
{
/* Make sure we didn't already do this */
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpInitCmPrivateDelayAlloc(VOID)
{
/* Initialize the delay allocation list and lock */
/* FUNCTIONS ******************************************************************/
+INIT_FUNCTION
HCELL_INDEX
NTAPI
-INIT_FUNCTION
CmpFindControlSet(IN PHHIVE SystemHive,
IN HCELL_INDEX RootCell,
IN PUNICODE_STRING SelectKeyName,
return ControlSetCell;
}
+INIT_FUNCTION
ULONG
NTAPI
-INIT_FUNCTION
CmpFindTagIndex(IN PHHIVE Hive,
IN HCELL_INDEX TagCell,
IN HCELL_INDEX GroupOrderCell,
return -2;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpAddDriverToList(IN PHHIVE Hive,
IN HCELL_INDEX DriverCell,
IN HCELL_INDEX GroupOrderCell,
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpIsLoadType(IN PHHIVE Hive,
IN HCELL_INDEX Cell,
IN SERVICE_LOAD_TYPE LoadType)
return (*Data == LoadType);
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpFindDrivers(IN PHHIVE Hive,
IN HCELL_INDEX ControlSet,
IN SERVICE_LOAD_TYPE LoadType,
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpDoSort(IN PLIST_ENTRY DriverListHead,
IN PUNICODE_STRING OrderList)
{
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpSortDriverList(IN PHHIVE Hive,
IN HCELL_INDEX ControlSet,
IN PLIST_ENTRY DriverListHead)
return CmpDoSort(DriverListHead, &DependList);
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpOrderGroup(IN PBOOT_DRIVER_NODE StartNode,
IN PBOOT_DRIVER_NODE EndNode)
{
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpResolveDriverDependencies(IN PLIST_ENTRY DriverListHead)
{
PLIST_ENTRY NextEntry;
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpIsSafe(IN PHHIVE Hive,
IN HCELL_INDEX SafeBootCell,
IN HCELL_INDEX DriverCell)
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
CmpInitializeRegistryNode(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry,
IN HANDLE NodeHandle,
OUT PHANDLE NewHandle,
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
CmpSetupConfigurationTree(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry,
IN HANDLE ParentHandle,
IN INTERFACE_TYPE InterfaceType,
return STATUS_SUCCESS;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
CmpInitializeHardwareConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
NTSTATUS Status;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
LANGID
NTAPI
-INIT_FUNCTION
CmpConvertLangId(IN LPWSTR Name,
IN ULONG NameLength)
{
return LangId;
}
+INIT_FUNCTION
HCELL_INDEX
NTAPI
-INIT_FUNCTION
CmpWalkPath(IN PHHIVE SystemHive,
IN HCELL_INDEX ParentCell,
IN LPWSTR Path)
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmGetSystemControlValues(IN PVOID SystemHiveData,
IN PCM_SYSTEM_CONTROL_VECTOR ControlVector)
{
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"),
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"),
RTL_CONSTANT_STRING(L"Undefined")
};
-INIT_FUNCTION CMP_MF_TYPE CmpMultifunctionTypes[] =
+INIT_SECTION CMP_MF_TYPE CmpMultifunctionTypes[] =
{
{"ISA", Isa, 0},
{"MCA", MicroChannel, 0},
{NULL, Internal, 0}
};
-INIT_FUNCTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
+INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
{
{
L"Session Manager",
CmpUnlockRegistry();
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpInitializeDelayedCloseTable(VOID)
{
CmpUnlockRegistry();
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpInitDelayDerefKCBEngine(VOID)
{
/* Initialize lock and list */
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpInitCallback(VOID)
{
ULONG i;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpInitializeCache(VOID)
{
ULONG Length, i;
return STATUS_SUCCESS;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
CmpSetSystemValues(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
NTSTATUS Status;
return Status;
}
+INIT_FUNCTION
static
NTSTATUS
-INIT_FUNCTION
CmpCreateHardwareProfile(HANDLE ControlSetHandle)
{
OBJECT_ATTRIBUTES ObjectAttributes;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
CmpCreateControlSet(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
UNICODE_STRING ConfigName = RTL_CONSTANT_STRING(L"Control\\IDConfigDB");
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");
return TRUE;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
CmpCreateObjectTypes(VOID)
{
OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
return ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &CmpKeyObjectType);
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpCreateRootNode(IN PHHIVE Hive,
IN PCWSTR Name,
OUT PHCELL_INDEX Index)
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmpCreateRegistryRoot(VOID)
{
UNICODE_STRING KeyName;
CmpNoVolatileCreates = TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
CmInitSystem1(VOID)
{
OBJECT_ATTRIBUTES ObjectAttributes;
return TRUE;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
CmpFreeDriverList(IN PHHIVE Hive,
IN PLIST_ENTRY DriverList)
{
}
}
+INIT_FUNCTION
PUNICODE_STRING*
NTAPI
-INIT_FUNCTION
CmGetSystemDriverList(VOID)
{
LIST_ENTRY DriverList;
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitializeHandleTables(VOID)
{
/* Initialize the list of handle tables and the lock */
return STATUS_SUCCESS;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
HeadlessInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PHEADLESS_LOADER_BLOCK HeadlessBlock;
/* FUNCTIONS ****************************************************************/
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ExpCreateSystemRootLink(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
UNICODE_STRING LinkName;
return STATUS_SUCCESS;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitNls(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
LARGE_INTEGER SectionSize;
ExpNlsTableBase = SectionBase;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpLoadInitialProcess(IN PINIT_BUFFER InitBuffer,
OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
OUT PCHAR *ProcessEnvironment)
*ProcessEnvironment = EnvironmentPtr;
}
+INIT_FUNCTION
ULONG
NTAPI
-INIT_FUNCTION
ExComputeTickCountMultiplier(IN ULONG ClockIncrement)
{
ULONG MsRemainder = 0, MsIncrement;
return (MsIncrement << 24) | MsRemainder;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExpInitSystemPhase0(VOID)
{
/* Initialize EXRESOURCE Support */
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExpInitSystemPhase1(VOID)
{
/* Initialize worker threads */
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExInitSystem(VOID)
{
/* Check the initialization phase */
}
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
ExpIsLoaderValid(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLOADER_PARAMETER_EXTENSION Extension;
return TRUE;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpLoadBootSymbols(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
ULONG i = 0;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExBurnMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG_PTR PagesToDestroy,
IN TYPE_OF_MEMORY MemoryType)
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitializeExecutive(IN ULONG Cpu,
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
NTAPI
MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock);
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
Phase1InitializationDiscard(IN PVOID Context)
{
PLOADER_PARAMETER_BLOCK LoaderBlock = Context;
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExInitializeSystemLookasideList(IN PGENERAL_LOOKASIDE List,
IN POOL_TYPE Type,
IN ULONG Size,
List->LastAllocateHits = 0;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExInitPoolLookasidePointers(VOID)
{
ULONG i;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitLookasideLists(VOID)
{
ULONG i;
* @remarks The ExpInitializePushLocks routine sets up the spin on SMP machines.
*
*--*/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpInitializePushLocks(VOID)
{
#ifdef CONFIG_SMP
* @remarks This routine should only be called once, during system startup.
*
*--*/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExpResourceInitialization(VOID)
{
/* Setup the timeout */
return STATUS_NOT_IMPLEMENTED;
}
+INIT_FUNCTION
PMEMORY_ALLOCATION_DESCRIPTOR
NTAPI
-INIT_FUNCTION
XIPpFindMemoryDescriptor(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLIST_ENTRY NextEntry;
return NULL;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
XIPInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PCHAR CommandLine, XipBoot, XipRom, XipMegs, XipVerbose, XipRam;
PERESOURCE FsRtlPagingIoResources;
ULONG FsRtlPagingIoResourceSelector;
-NTSTATUS NTAPI INIT_FUNCTION FsRtlInitializeWorkerThread(VOID);
+INIT_FUNCTION NTSTATUS NTAPI FsRtlInitializeWorkerThread(VOID);
extern KSEMAPHORE FsRtlpUncSemaphore;
static const UCHAR LegalAnsiCharacterArray[] =
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
FsRtlInitSystem(VOID)
{
ULONG i;
/*
* @implemented
*/
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
FsRtlInitializeWorkerThread(VOID)
{
ULONG_PTR i;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
PVOID
NTAPI
-INIT_FUNCTION
FindBitmapResource(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG ResourceId)
{
return Data;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
InbvDriverInitialize(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG Count)
{
if (InbvOldIrql <= DISPATCH_LEVEL) KeLowerIrql(OldIrql);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
InbvEnableBootDriver(IN BOOLEAN Enable)
{
/* Check if we're installed */
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
InbvUpdateProgressBar(IN ULONG Progress)
{
ULONG FillCount, BoundedProgress;
InbvProgressState.Bias = (Ceiling * 100) - Floor;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
InbvIndicateProgress(VOID)
{
ULONG Percentage;
PsTerminateSystemThread(STATUS_SUCCESS);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
InbvRotBarInit(VOID)
{
PltRotBarStatus = RBS_FADEIN;
}
#endif
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
DisplayBootBitmap(IN BOOLEAN TextMode)
{
PVOID Header = NULL, Footer = NULL, Screen = NULL;
#endif
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
DisplayFilter(PCHAR *String)
{
/* Windows hack to skip first dots */
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
FinalizeBootLogo(VOID)
{
/* Acquire lock and check the display state */
return ((PointerPte->u.Long & 0xFFFFFC01) != 0);
}
+INIT_FUNCTION
VOID
FORCEINLINE
MmInitGlobalKernelPageDirectory(VOID)
#define NODE_TYPE_PRIVATE_MAP 0x02FE
#define NODE_TYPE_SHARED_MAP 0x02FF
+INIT_FUNCTION
VOID
NTAPI
CcPfInitializePrefetcher(
PROS_VACB *Vacb
);
+INIT_FUNCTION
VOID
NTAPI
CcInitView(VOID);
NTAPI
CcWriteVirtualAddress(PROS_VACB Vacb);
+INIT_FUNCTION
BOOLEAN
NTAPI
CcInitializeCacheManager(VOID);
IN BOOLEAN LockHeld
);
+INIT_FUNCTION
VOID
NTAPI
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(
NTAPI
CmpRemoveFromDelayedClose(IN PCM_KEY_CONTROL_BLOCK Kcb);
+INIT_FUNCTION
VOID
NTAPI
CmpInitializeDelayedCloseTable(
//
// Boot Routines
//
+INIT_FUNCTION
HCELL_INDEX
NTAPI
CmpFindControlSet(
OUT PBOOLEAN AutoSelect
);
+INIT_FUNCTION
VOID
NTAPI
CmGetSystemControlValues(
//
// Hardware Configuration Routines
//
+INIT_FUNCTION
NTSTATUS
NTAPI
CmpInitializeRegistryNode(
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
+INIT_FUNCTION
NTSTATUS
NTAPI
CmpInitializeHardwareConfiguration(
//
// Startup and Shutdown
//
+INIT_FUNCTION
BOOLEAN
NTAPI
CmInitSystem1(
//
// Driver List Routines
//
+INIT_FUNCTION
PUNICODE_STRING*
NTAPI
CmGetSystemDriverList(
VOID
);
+INIT_FUNCTION
BOOLEAN
NTAPI
CmpFindDrivers(
IN PLIST_ENTRY DriverListHead
);
-
+INIT_FUNCTION
BOOLEAN
NTAPI
CmpSortDriverList(
IN PLIST_ENTRY DriverListHead
);
+INIT_FUNCTION
BOOLEAN
NTAPI
CmpResolveDriverDependencies(
IN PLIST_ENTRY DriverListHead
);
+INIT_FUNCTION
BOOLEAN
NTAPI
CmpIsSafe(
#define DBGKTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
#endif
+INIT_FUNCTION
VOID
NTAPI
DbgkInitialize(
/* INITIALIZATION FUNCTIONS *************************************************/
+INIT_FUNCTION
BOOLEAN
NTAPI
ExpWin32kInit(VOID);
IN PVOID Context
);
+INIT_FUNCTION
VOID
NTAPI
ExpInitializePushLocks(VOID);
IN PLARGE_INTEGER SystemBootTime
);
+INIT_FUNCTION
VOID
NTAPI
ExpInitializeWorkerThreads(VOID);
NTAPI
ExSwapinWorkerThreads(IN BOOLEAN AllowSwap);
+INIT_FUNCTION
VOID
NTAPI
ExpInitLookasideLists(VOID);
+INIT_FUNCTION
VOID
NTAPI
ExInitializeSystemLookasideList(
IN PLIST_ENTRY ListHead
);
+INIT_FUNCTION
BOOLEAN
NTAPI
ExpInitializeCallbacks(VOID);
+INIT_FUNCTION
VOID
NTAPI
ExpInitUuids(VOID);
+INIT_FUNCTION
VOID
NTAPI
ExpInitializeExecutive(
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);
ULONG_PTR Context
);
+INIT_FUNCTION
VOID
NTAPI
ExpInitializeHandleTables(
VOID
);
+INIT_FUNCTION
VOID
NTAPI
HeadlessInit(
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
+INIT_FUNCTION
VOID
NTAPI
XIPInit(
//
// Initialization Routines
//
+INIT_FUNCTION
VOID
NTAPI
FsRtlInitializeLargeMcbs(
VOID
);
+INIT_FUNCTION
VOID
NTAPI
FsRtlInitializeTunnels(
IN PFILE_OBJECT FileObject
);
+INIT_FUNCTION
BOOLEAN
NTAPI
FsRtlInitSystem(
Ke386SetGdtEntryBase(&Pcr->GDT[KGDT_R3_TEB / sizeof(KGDTENTRY)], TebAddress);
}
+INIT_FUNCTION
VOID
FASTCALL
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);
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(
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(
//
// 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__
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(
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(
IN ULONG Y
);
+INIT_FUNCTION
VOID
NTAPI
InbvIndicateProgress(
IN PDRIVER_OBJECT DriverObject
);
+INIT_FUNCTION
NTSTATUS
NTAPI
IopInitializePlugPlayServices(
VOID
);
+INIT_FUNCTION
NTSTATUS
IopInitPlugPlayEvents(VOID);
//
// PnP Routines
//
+INIT_FUNCTION
NTSTATUS
NTAPI
IopUpdateRootKey(
VOID
);
+INIT_FUNCTION
NTSTATUS
NTAPI
PiInitCacheGroupInformation(
//
// Initialization Routines
//
+INIT_FUNCTION
NTSTATUS
NTAPI
IopCreateArcNames(
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
+INIT_FUNCTION
NTSTATUS
NTAPI
IopReassignSystemRoot(
OUT PANSI_STRING NtBootPath
);
+INIT_FUNCTION
BOOLEAN
NTAPI
IoInitSystem(
//
// Boot logging support
//
+INIT_FUNCTION
VOID
IopInitBootLog(
IN BOOLEAN StartBootLog
);
+INIT_FUNCTION
VOID
IopStartBootLog(
VOID
IN PDEVICE_OBJECT DeviceObject
);
+INIT_FUNCTION
NTSTATUS
NTAPI
RawFsDriverEntry(
//
// Driver Routines
//
+INIT_FUNCTION
VOID
FASTCALL
IopInitializeBootDrivers(
VOID
);
+INIT_FUNCTION
VOID
FASTCALL
IopInitializeSystemDrivers(
//
// Ramdisk Routines
//
+INIT_FUNCTION
NTSTATUS
NTAPI
IopStartRamdisk(
/* INITIALIZATION FUNCTIONS *************************************************/
+INIT_FUNCTION
BOOLEAN
NTAPI
KeInitSystem(VOID);
+INIT_FUNCTION
VOID
NTAPI
KeInitExceptions(VOID);
NTAPI
KeInitInterrupts(VOID);
+INIT_FUNCTION
VOID
NTAPI
KiInitializeBugCheck(VOID);
+INIT_FUNCTION
VOID
NTAPI
KiSystemStartup(
IN PKINTERRUPT Interrupt
);
+INIT_FUNCTION
VOID
NTAPI
KiInitializeMachineType(
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
+INIT_FUNCTION
VOID
NTAPI
KiInitSpinLocks(
IN CCHAR Number
);
+INIT_FUNCTION
LARGE_INTEGER
NTAPI
KiComputeReciprocal(
OUT PUCHAR Shift
);
+INIT_FUNCTION
VOID
NTAPI
KiInitSystem(
IN NTSTATUS Status
);
+INIT_FUNCTION
VOID
NTAPI
KiInitMachineDependent(VOID);
//
// Initialization functions
//
+INIT_FUNCTION
BOOLEAN
NTAPI
LpcInitSystem(
/* npool.c *******************************************************************/
+INIT_FUNCTION
VOID
NTAPI
MiInitializeNonPagedPool(VOID);
VOID
);
+INIT_FUNCTION
BOOLEAN
NTAPI
MmInitSystem(IN ULONG Phase,
NTAPI
MmFreeSwapPage(SWAPENTRY Entry);
+INIT_FUNCTION
VOID
NTAPI
MmInitPagingFile(VOID);
/* balace.c ******************************************************************/
+INIT_FUNCTION
VOID
NTAPI
MmInitializeMemoryConsumer(
NTSTATUS (*Trim)(ULONG Target, ULONG Priority, PULONG NrFreed)
);
+INIT_FUNCTION
VOID
NTAPI
MmInitializeBalancer(
PPFN_NUMBER AllocatedPage
);
+INIT_FUNCTION
VOID
NTAPI
MiInitBalancerThread(VOID);
PVOID Address
);
+INIT_FUNCTION
VOID
NTAPI
MmInitializeRmapList(VOID);
PVOID Address
);
+INIT_FUNCTION
VOID
NTAPI
MmInitGlobalKernelPageDirectory(VOID);
IN PULONG_PTR DirectoryTableBase
);
+INIT_FUNCTION
NTSTATUS
NTAPI
MmInitializeHandBuiltProcess(
IN PULONG_PTR DirectoryTableBase
);
-
+INIT_FUNCTION
NTSTATUS
NTAPI
MmInitializeHandBuiltProcess2(
PULONG OldProtect
);
+INIT_FUNCTION
NTSTATUS
NTAPI
MmInitSectionImplementation(VOID);
ULONG_PTR Entry
);
+INIT_FUNCTION
NTSTATUS
NTAPI
MmCreatePhysicalMemorySection(VOID);
/* sysldr.c ******************************************************************/
+INIT_FUNCTION
VOID
NTAPI
MiReloadBootLoadedDrivers(
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
+INIT_FUNCTION
BOOLEAN
NTAPI
MiInitializeLoadedModuleList(
#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>
//
// Startup and Shutdown Functions
//
+INIT_FUNCTION
BOOLEAN
NTAPI
ObInitSystem(
IN PEPROCESS Process
);
+INIT_FUNCTION
NTSTATUS
NTAPI
ObpCreateDosDevicesDirectory(
//
// Security descriptor cache functions
//
+INIT_FUNCTION
NTSTATUS
NTAPI
ObpInitSdCache(
//
// Initialization routines
//
+INIT_FUNCTION
BOOLEAN
NTAPI
PoInitSystem(
IN ULONG BootPhase
);
+INIT_FUNCTION
VOID
NTAPI
PoInitializePrcb(
VOID
);
+INIT_FUNCTION
BOOLEAN
NTAPI
PsInitSystem(
IN BOOLEAN UseLargePages
);
+INIT_FUNCTION
NTSTATUS
NTAPI
PsLocateSystemDll(
IN PEJOB Job
);
+INIT_FUNCTION
VOID
NTAPI
PspInitializeJobStructures(
//
// Apphelp functions
//
+INIT_FUNCTION
NTSTATUS
NTAPI
ApphelpCacheInitialize(VOID);
);
/* 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);
_Out_ PACL* Dacl
);
+INIT_FUNCTION
VOID
NTAPI
SepInitializeTokenImplementation(VOID);
/* 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)
{
return Status;
}
-NTSTATUS
INIT_FUNCTION
+NTSTATUS
NTAPI
IopCreateArcNamesCd(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
return Status;
}
-NTSTATUS
INIT_FUNCTION
+NTSTATUS
NTAPI
IopCreateArcNamesDisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN BOOLEAN SingleDisk,
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
IopReassignSystemRoot(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
OUT PANSI_STRING NtBootPath)
{
//
// 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)
*
* 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;
* Return Value
* None
*/
+INIT_FUNCTION
VOID
FASTCALL
-INIT_FUNCTION
IopInitializeBootDrivers(VOID)
{
PLIST_ENTRY ListHead, NextEntry, NextEntry2;
InitializeListHead(&KeLoaderBlock->LoadOrderListHead);
}
+INIT_FUNCTION
VOID
FASTCALL
-INIT_FUNCTION
IopInitializeSystemDrivers(VOID)
{
PUNICODE_STRING *DriverList, *SavedList;
/* FUNCTIONS ******************************************************************/
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PMEMORY_ALLOCATION_DESCRIPTOR MemoryDescriptor;
#endif
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
RawFsDriverEntry(IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)
{
return STATUS_SUCCESS;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PiInitCacheGroupInformation(VOID)
{
HANDLE KeyHandle;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
IopInitializePlugPlayServices(VOID)
{
NTSTATUS Status;
return IopTraverseDeviceTree(&Context);
}
-static NTSTATUS INIT_FUNCTION
+static
+INIT_FUNCTION
+NTSTATUS
IopEnumerateDetectedDevices(
IN HANDLE hBaseKey,
IN PUNICODE_STRING RelativePath OPTIONAL,
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");
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");
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
VOID
NTAPI
KiInitMachineDependent(VOID)
}
}
+INIT_FUNCTION
VOID
NTAPI
KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/*
* @implemented
*/
+INIT_FUNCTION
PCONFIGURATION_COMPONENT_DATA
NTAPI
-INIT_FUNCTION
KeFindConfigurationEntry(IN PCONFIGURATION_COMPONENT_DATA Child,
IN CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type,
/*
* @implemented
*/
+INIT_FUNCTION
PCONFIGURATION_COMPONENT_DATA
NTAPI
-INIT_FUNCTION
KeFindConfigurationNextEntry(IN PCONFIGURATION_COMPONENT_DATA Child,
IN CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type,
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiSetProcessorType(VOID)
{
ULONG EFlags, NewEFlags;
__writeeflags(EFlags);
}
+INIT_FUNCTION
ULONG
NTAPI
-INIT_FUNCTION
KiGetCpuVendor(VOID)
{
PKPRCB Prcb = KeGetCurrentPrcb();
return CPU_UNKNOWN;
}
+INIT_FUNCTION
ULONG
NTAPI
-INIT_FUNCTION
KiGetFeatureBits(VOID)
{
PKPRCB Prcb = KeGetCurrentPrcb();
return FeatureBits;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiGetCacheInformation(VOID)
{
PKIPCR Pcr = (PKIPCR)KeGetPcr();
Pcr->SecondLevelCacheAssociativity);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiSetCR0Bits(VOID)
{
ULONG Cr0;
__writecr0(Cr0);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiInitializeTSS2(IN PKTSS Tss,
IN PKGDTENTRY TssEntry OPTIONAL)
{
Tss->Ss0 = KGDT_R0_DATA;
}
+INIT_FUNCTION
VOID
FASTCALL
-INIT_FUNCTION
Ki386InitializeTss(IN PKTSS Tss,
IN PKIDTENTRY Idt,
IN PKGDTENTRY Gdt)
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 */
return 0;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiRestoreFastSyscallReturnState(VOID)
{
/* Check if the CPU Supports fast system call */
}
}
+INIT_FUNCTION
ULONG_PTR
NTAPI
-INIT_FUNCTION
Ki386EnableDE(IN ULONG_PTR Context)
{
/* Enable DE */
return 0;
}
+INIT_FUNCTION
ULONG_PTR
NTAPI
-INIT_FUNCTION
Ki386EnableFxsr(IN ULONG_PTR Context)
{
/* Enable FXSR */
return 0;
}
+INIT_FUNCTION
ULONG_PTR
NTAPI
-INIT_FUNCTION
Ki386EnableXMMIExceptions(IN ULONG_PTR Context)
{
PKIDTENTRY IdtEntry;
return 0;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiI386PentiumLockErrataFixup(VOID)
{
KDESCRIPTOR IdtDescriptor = {0, 0, 0};
KiSaveProcessorControlState(&Prcb->ProcessorState);
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
KiIsNpxPresent(VOID)
{
ULONG Cr0;
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
KiIsNpxErrataPresent(VOID)
{
static double Value1 = 4195835.0, Value2 = 3145727.0;
/* FUNCTIONS *****************************************************************/
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
KiInitMachineDependent(VOID)
KiSetCR0Bits();
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
KiInitializePcr(IN ULONG ProcessorNumber,
Pcr->PrcbData.MultiThreadProcessorSet = Pcr->PrcbData.SetMember;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
KiInitializeKernel(IN PKPROCESS InitProcess,
LoaderBlock->Prcb = 0;
}
-INIT_SECTION
+INIT_FUNCTION
VOID
FASTCALL
KiGetMachineBootPointers(IN PKGDTENTRY *Gdt,
TssSelector.HighWord.Bytes.BaseHi << 24);
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
KiSystemStartupBootStack(VOID)
__invlpg(Address);
}
-INIT_SECTION
+INIT_FUNCTION
VOID
NTAPI
KiSystemStartup(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* 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 */
/* FUNCTIONS *****************************************************************/
-INIT_SECTION
+INIT_FUNCTION
ULONG_PTR
NTAPI
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;
/* FUNCTIONS *****************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiInitSystem(VOID)
{
ULONG i;
sizeof(KeServiceDescriptorTable));
}
+INIT_FUNCTION
LARGE_INTEGER
NTAPI
-INIT_FUNCTION
KiComputeReciprocal(IN LONG Divisor,
OUT PUCHAR Shift)
{
return Reciprocal;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KiInitSpinLocks(IN PKPRCB Prcb,
IN CCHAR Number)
{
}
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
KeInitSystem(VOID)
{
/* Check if Threaded DPCs are enabled */
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
LpcInitSystem(VOID)
{
OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
/* PRIVATE FUNCTIONS **********************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_SECTION
ExpSeedHotTags(VOID)
{
ULONG i, Key, Hash, Index;
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,
ASSERT(PoolType != PagedPoolSession);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_SECTION
InitializePool(IN POOL_TYPE PoolType,
IN ULONG Threshold)
{
/* PRIVATE FUNCTIONS **********************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeSessionSpaceLayout(VOID)
{
//
MM_ALLOCATION_GRANULARITY);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiComputeNonPagedPoolVa(IN ULONG FreePages)
{
IN PFN_NUMBER PoolPages;
}
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PFN_NUMBER PageFrameIndex;
/* FUNCTIONS ******************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeLargePageSupport(VOID)
{
#if _MI_PAGING_LEVELS > 2
#endif
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiSyncCachedRanges(VOID)
{
ULONG i;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeDriverLargePageList(VOID)
{
PWCHAR p, pp;
return *RefCount;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
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(
VOID
);
+INIT_FUNCTION
BOOLEAN
NTAPI
MiInitializeMemoryEvents(
VOID
);
+INIT_FUNCTION
PFN_NUMBER
NTAPI
MxGetNextPage(
IN PFN_NUMBER PageCount
);
+INIT_FUNCTION
PPHYSICAL_MEMORY_DESCRIPTOR
NTAPI
MmInitializeMemoryLimits(
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( //
); //
// FIXFIX: THIS ONE TOO
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
ExInitializePoolDescriptor(
IN PPOOL_DESCRIPTOR PoolDescriptor,
IN POOL_TYPE PoolType,
VOID
);
+INIT_FUNCTION
VOID
NTAPI
MiInitializeSystemPtes(
IN PVOID Address
);
+INIT_FUNCTION
VOID
NTAPI
MiInitializeDriverLargePageList(
VOID
);
+INIT_FUNCTION
VOID
NTAPI
MiInitializeLargePageSupport(
VOID
);
+INIT_FUNCTION
VOID
NTAPI
MiSyncCachedRanges(
MxOldFreeDescriptor = *MxFreeDescriptor;
}
+INIT_FUNCTION
PFN_NUMBER
NTAPI
-INIT_FUNCTION
MxGetNextPage(IN PFN_NUMBER PageCount)
{
PFN_NUMBER Pfn;
return Pfn;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiComputeColorInformation(VOID)
{
ULONG L2Associativity;
KeGetCurrentPrcb()->SecondaryColorMask = MmSecondaryColorMask;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeColorTables(VOID)
{
ULONG i;
}
#ifndef _M_AMD64
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
MiIsRegularMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN PFN_NUMBER Pfn)
{
return FALSE;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiMapPfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PFN_NUMBER FreePage, FreePageCount, PagesLeft, BasePage, PageCount;
MxFreeDescriptor->PageCount = FreePageCount;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiBuildPfnDatabaseFromPages(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PMMPDE PointerPde;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiBuildPfnDatabaseZeroPage(VOID)
{
PMMPFN Pfn1;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiBuildPfnDatabaseFromLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLIST_ENTRY NextEntry;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiBuildPfnDatabaseSelf(VOID)
{
PMMPTE PointerPte, LastPte;
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializePfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
/* Scan memory and start setting up PFN entries */
}
#endif /* !_M_AMD64 */
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MmFreeLoaderBlock(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLIST_ENTRY NextMd;
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 */
}
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiNotifyMemoryEvents(VOID)
{
/* Are we in a low-memory situation? */
}
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
MiCreateMemoryEvent(IN PUNICODE_STRING Name,
OUT PKEVENT *Event)
{
return Status;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
MiInitializeMemoryEvents(VOID)
{
UNICODE_STRING LowString = RTL_CONSTANT_STRING(L"\\KernelObjects\\LowMemoryCondition");
return TRUE;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiAddHalIoMappings(VOID)
{
PVOID BaseAddress;
KeLowerIrql(OldIrql);
}
+INIT_FUNCTION
PPHYSICAL_MEMORY_DESCRIPTOR
NTAPI
-INIT_FUNCTION
MmInitializeMemoryLimits(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN PBOOLEAN IncludeType)
{
return Buffer;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiBuildPagedPool(VOID)
{
PMMPTE PointerPte;
MiInitializeSystemSpaceMap(NULL);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiDbgDumpMemoryDescriptors(VOID)
{
PLIST_ENTRY NextEntry;
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)
{
if (PoolBlink) MiProtectFreeNonPagedPool(PoolBlink, 1);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeNonPagedPoolThresholds(VOID)
{
PFN_NUMBER Size = MmMaximumNonPagedPoolInPages;
ASSERT(MiLowNonPagedPoolThreshold < MiHighNonPagedPoolThreshold);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializePoolEvents(VOID)
{
KIRQL OldIrql;
KeReleaseQueuedSpinLock(LockQueueMmNonPagedPoolLock, OldIrql);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeNonPagedPool(VOID)
{
ULONG i;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
MmInitializeHandBuiltProcess(IN PEPROCESS Process,
IN PULONG_PTR DirectoryTableBase)
{
return STATUS_SUCCESS;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
MmInitializeHandBuiltProcess2(IN PEPROCESS Process)
{
/* Lock the VAD, ARM3-owned ranges away */
KeLeaveCriticalRegion();
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiUpdateThunks(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN PVOID OldBase,
IN PVOID NewBase,
NULL);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiFindInitializationCode(OUT PVOID *StartVa,
OUT PVOID *EndVa)
{
MiDeleteSystemPageableVm(StartPte, PageCount, 0, NULL);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiReloadBootLoadedDrivers(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLIST_ENTRY NextEntry;
}
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
MiBuildImportsForBootDrivers(VOID)
{
PLIST_ENTRY NextEntry, NextEntry2;
return STATUS_SUCCESS;
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiLocateKernelSections(IN PLDR_DATA_TABLE_ENTRY LdrEntry)
{
ULONG_PTR DllBase;
}
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
MiInitializeLoadedModuleList(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PLDR_DATA_TABLE_ENTRY LdrEntry, NewEntry;
KeReleaseQueuedSpinLock(LockQueueSystemSpaceLock, OldIrql);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiInitializeSystemPtes(IN PMMPTE StartingPte,
IN ULONG NumberOfPtes,
IN MMSYSTEM_PTE_POOL_TYPE PoolType)
// 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)
{
// TODO: Perhaps it would be prudent to bugcheck here, not only assert?
}
-VOID
INIT_FUNCTION
+VOID
NTAPI
MiInitSystemMemoryAreas(VOID)
{
#endif /* _X86_ */
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
MiDbgDumpAddressSpace(VOID)
{
//
"Non Paged Pool Expansion PTE Space");
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
MmInitBsmThread(VOID)
{
NTSTATUS Status;
return Status;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
MmInitSystem(IN ULONG Phase,
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
/* PRIVATE FUNCTIONS *********************************************************/
static
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ObpCreateKernelObjectsSD(OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
{
PSECURITY_DESCRIPTOR Sd = NULL;
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ObpCreateGlobalDosDevicesSD(OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
{
PSECURITY_DESCRIPTOR Sd = NULL;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ObpCreateDosDevicesDirectory(VOID)
{
OBJECT_ATTRIBUTES ObjectAttributes;
KeLeaveCriticalRegion();
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ObpInitSdCache(VOID)
{
ULONG i;
return Status;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
PoInitSystem(IN ULONG BootPhase)
{
PVOID NotificationEntry;
HalProcessorIdle();
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
PoInitializePrcb(IN PKPRCB Prcb)
{
/* Initialize the Power State */
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
ApphelpCacheInitialize(VOID)
{
DPRINT("SHIMS: ApphelpCacheInitialize\n");
ExDeleteResource(&Job->JobLock);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
PspInitializeJobStructures(VOID)
{
InitializeListHead(&PsJobListHead);
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
USHORT
NTAPI
-INIT_FUNCTION
NameToOrdinal(IN PCHAR Name,
IN PVOID DllBase,
IN ULONG NumberOfNames,
return NameToOrdinal(Name, DllBase, NumberOfNames, NameTable, OrdinalTable);
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
LookupEntryPoint(IN PVOID DllBase,
IN PCHAR Name,
OUT PVOID *EntryPoint)
return STATUS_SUCCESS;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PspLookupSystemDllEntryPoint(IN PCHAR Name,
IN PVOID *EntryPoint)
{
return LookupEntryPoint(PspSystemDllBase, Name, EntryPoint);
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PspLookupKernelUserEntryPoints(VOID)
{
NTSTATUS Status;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PsLocateSystemDll(VOID)
{
OBJECT_ATTRIBUTES ObjectAttributes;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PspInitializeSystemDll(VOID)
{
NTSTATUS Status;
return Status;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
PspInitPhase1(VOID)
{
/* Initialize the System DLL and return status of operation */
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
PspInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
NTSTATUS Status;
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
/* Check the initialization phase */
/* FUNCTIONS ***************************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
PsInitializeQuotaSystem(VOID)
{
RtlZeroMemory(&PspDefaultQuotaBlock, sizeof(PspDefaultQuotaBlock));
/* PRIVATE FUNCTIONS **********************************************************/
-static BOOLEAN
+static
INIT_FUNCTION
+BOOLEAN
SepInitExports(VOID)
{
SepExports.SeCreateTokenPrivilege = SeCreateTokenPrivilege;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
SepInitializationPhase0(VOID)
{
PAGED_CODE();
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
SepInitializationPhase1(VOID)
{
OBJECT_ATTRIBUTES ObjectAttributes;
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
SeInitSystem(VOID)
{
/* Check the initialization phase */
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
Ki386VdmEnablePentiumExtentions(IN BOOLEAN Enable)
{
ULONG EFlags, Cr4;
__writeeflags(EFlags);
}
+INIT_FUNCTION
VOID
NTAPI
-INIT_FUNCTION
KeI386VdmInitialize(VOID)
{
NTSTATUS Status;
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}")
#include <umtypes.h>
#include <haltypes.h>
#include <ketypes.h>
+#include <section_attribs.h>
#ifndef NTOS_MODE_USER
_In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock
);
+INIT_FUNCTION
NTHALAPI
BOOLEAN
NTAPI
);
#endif
+INIT_FUNCTION
NTHALAPI
VOID
NTAPI
//
#include <umtypes.h>
#include <inbvtypes.h>
+#include <section_attribs.h>
#ifndef NTOS_MODE_USER
//
//
// Installation Functions
//
+INIT_FUNCTION
VOID
NTAPI
InbvEnableBootDriver(
//
#include <umtypes.h>
#include <ketypes.h>
+#include <section_attribs.h>
#ifndef NTOS_MODE_USER
// ARC Configuration Functions. Only enabled if you have ARC Support
//
#ifdef _ARC_
+INIT_FUNCTION
PCONFIGURATION_COMPONENT_DATA
NTAPI
KeFindConfigurationNextEntry(
_In_ PCONFIGURATION_COMPONENT_DATA *NextLink
);
+INIT_FUNCTION
PCONFIGURATION_COMPONENT_DATA
NTAPI
KeFindConfigurationEntry(
--- /dev/null
+/*++ 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
EngGetLDEV(
PDEVMODEW pdm);
+INIT_FUNCTION
NTSTATUS
APIENTRY
DriverEntry (
/*
* This definition doesn't work
*/
-INIT_SECTION
+INIT_FUNCTION
NTSTATUS
APIENTRY
DriverEntry(
#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