diff --git a/xtoskrnl/ar/amd64/procsup.cc b/xtoskrnl/ar/amd64/procsup.cc index 94e31e1..adc4e09 100644 --- a/xtoskrnl/ar/amd64/procsup.cc +++ b/xtoskrnl/ar/amd64/procsup.cc @@ -43,7 +43,7 @@ AR::ProcSup::IdentifyProcessor(VOID) UNIMPLEMENTED; /* Get current processor control block */ - Prcb = KeGetCurrentProcessorControlBlock(); + Prcb = KE::Processor::GetCurrentProcessorControlBlock(); /* Get CPU vendor by issueing CPUID instruction */ RtlZeroMemory(&CpuRegisters, sizeof(CPUID_REGISTERS)); diff --git a/xtoskrnl/ar/i686/procsup.cc b/xtoskrnl/ar/i686/procsup.cc index e5578fc..0485fa8 100644 --- a/xtoskrnl/ar/i686/procsup.cc +++ b/xtoskrnl/ar/i686/procsup.cc @@ -43,7 +43,7 @@ AR::ProcSup::IdentifyProcessor(VOID) UNIMPLEMENTED; /* Get current processor control block */ - Prcb = KeGetCurrentProcessorControlBlock(); + Prcb = KE::Processor::GetCurrentProcessorControlBlock(); /* Get CPU vendor by issueing CPUID instruction */ RtlZeroMemory(&CpuRegisters, sizeof(CPUID_REGISTERS)); diff --git a/xtoskrnl/hl/x86/cpu.cc b/xtoskrnl/hl/x86/cpu.cc index 06f656c..a7c416d 100644 --- a/xtoskrnl/hl/x86/cpu.cc +++ b/xtoskrnl/hl/x86/cpu.cc @@ -43,5 +43,5 @@ HL::Cpu::InitializeProcessor(VOID) Pic::InitializePic(); /* Set the APIC running level */ - HL::RunLevel::SetRunLevel(KeGetCurrentProcessorBlock()->RunLevel); + HL::RunLevel::SetRunLevel(KE::Processor::GetCurrentProcessorBlock()->RunLevel); } diff --git a/xtoskrnl/includes/amd64/ari.h b/xtoskrnl/includes/amd64/ari.h deleted file mode 100644 index fa461b1..0000000 --- a/xtoskrnl/includes/amd64/ari.h +++ /dev/null @@ -1,442 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/ari.h - * DESCRIPTION: AMD64 architecture library routines - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_ARI_H -#define __XTOSKRNL_AMD64_ARI_H - -#include - - -/* AMD64 architecture library routines forward references */ -XTCDECL -VOID -ArClearInterruptFlag(VOID); - -XTCDECL -BOOLEAN -ArCpuId(IN OUT PCPUID_REGISTERS Registers); - -XTCDECL -VOID -ArFlushTlb(VOID); - -XTAPI -PVOID -ArGetBootStack(VOID); - -XTCDECL -ULONG -ArGetCpuFlags(VOID); - -XTASSEMBLY -XTCDECL -ULONG_PTR -ArGetStackPointer(VOID); - -XTCDECL -VOID -ArHalt(VOID); - -XTAPI -VOID -ArInitializeProcessor(IN PVOID ProcessorStructures); - -XTCDECL -BOOLEAN -ArInterruptsEnabled(VOID); - -XTCDECL -VOID -ArInvalidateTlbEntry(IN PVOID Address); - -XTCDECL -VOID -ArLoadGlobalDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadInterruptDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadLocalDescriptorTable(IN USHORT Source); - -XTCDECL -VOID -ArLoadMxcsrRegister(IN ULONG Source); - -XTCDECL -VOID -ArLoadSegment(IN USHORT Segment, - IN ULONG Source); - -XTCDECL -VOID -ArLoadTaskRegister(IN USHORT Source); - -XTCDECL -VOID -ArMemoryBarrier(VOID); - -XTCDECL -ULONG_PTR -ArReadControlRegister(IN USHORT ControlRegister); - -XTCDECL -ULONG_PTR -ArReadDebugRegister(IN USHORT DebugRegister); - -XTCDECL -ULONGLONG -ArReadGSQuadWord(IN ULONG Offset); - -XTCDECL -ULONGLONG -ArReadModelSpecificRegister(IN ULONG Register); - -XTCDECL -UINT -ArReadMxCsrRegister(VOID); - -XTCDECL -ULONGLONG -ArReadTimeStampCounter(VOID); - -XTCDECL -VOID -ArReadWriteBarrier(VOID); - -XTAPI -VOID -ArSetGdtEntryBase(IN PKGDTENTRY Gdt, - IN USHORT Selector, - IN ULONG_PTR Base); - -XTCDECL -VOID -ArSetInterruptFlag(VOID); - -XTCDECL -VOID -ArStoreGlobalDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreInterruptDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreLocalDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreSegment(IN USHORT Segment, - OUT PVOID Destination); - -XTCDECL -VOID -ArStoreTaskRegister(OUT PVOID Destination); - -XTCDECL -VOID -ArWriteControlRegister(IN USHORT ControlRegister, - IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteDebugRegister(IN USHORT DebugRegister, - IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteEflagsRegister(IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteModelSpecificRegister(IN ULONG Register, - IN ULONGLONG Value); - -XTCDECL -VOID -ArYieldProcessor(VOID); - -XTCDECL -VOID -ArpDispatchTrap(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleSystemCall32(VOID); - -XTCDECL -VOID -ArpHandleSystemCall64(VOID); - -XTCDECL -VOID -ArpHandleTrap00(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap01(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap02(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap03(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap04(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap05(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap06(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap07(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap08(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap09(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0A(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0B(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0C(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0D(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0E(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap10(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap11(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap12(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap13(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap1F(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2C(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2D(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2F(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrapE1(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrapFF(IN PKTRAP_FRAME TrapFrame); - -XTAPI -VOID -ArpIdentifyProcessor(VOID); - -XTAPI -VOID -ArpInitializeGdt(IN PKPROCESSOR_BLOCK ProcessorBlock); - -XTAPI -VOID -ArpInitializeIdt(IN PKPROCESSOR_BLOCK ProcessorBlock); - -XTAPI -VOID -ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock, - IN PKGDTENTRY Gdt, - IN PKIDTENTRY Idt, - IN PKTSS Tss, - IN PVOID DpcStack); - -XTAPI -VOID -ArpInitializeProcessorRegisters(VOID); - -XTAPI -VOID -ArpInitializeProcessorStructures(IN PVOID ProcessorStructures, - OUT PKGDTENTRY *Gdt, - OUT PKTSS *Tss, - OUT PKPROCESSOR_BLOCK *ProcessorBlock, - OUT PVOID *KernelBootStack, - OUT PVOID *KernelFaultStack); - -XTAPI -VOID -ArpInitializeSegments(VOID); - -XTAPI -VOID -ArpInitializeTss(IN PKPROCESSOR_BLOCK ProcessorBlock, - IN PVOID KernelBootStack, - IN PVOID KernelFaultStack); - -XTAPI -VOID -ArpSetGdtEntry(IN PKGDTENTRY Gdt, - IN USHORT Selector, - IN ULONG_PTR Base, - IN ULONG Limit, - IN UCHAR Type, - IN UCHAR Dpl, - IN UCHAR SegmentMode); - -XTAPI -VOID -ArpSetIdtGate(IN PKIDTENTRY Idt, - IN USHORT Vector, - IN PVOID Handler, - IN USHORT Selector, - IN USHORT Ist, - IN USHORT Access); - -XTCDECL -VOID -ArpTrap0x00(VOID); - -XTCDECL -VOID -ArpTrap0x01(VOID); - -XTCDECL -VOID -ArpTrap0x02(VOID); - -XTCDECL -VOID -ArpTrap0x03(VOID); - -XTCDECL -VOID -ArpTrap0x04(VOID); - -XTCDECL -VOID -ArpTrap0x05(VOID); - -XTCDECL -VOID -ArpTrap0x06(VOID); - -XTCDECL -VOID -ArpTrap0x07(VOID); - -XTCDECL -VOID -ArpTrap0x08(VOID); - -XTCDECL -VOID -ArpTrap0x09(VOID); - -XTCDECL -VOID -ArpTrap0x0A(VOID); - -XTCDECL -VOID -ArpTrap0x0B(VOID); - -XTCDECL -VOID -ArpTrap0x0C(VOID); - -XTCDECL -VOID -ArpTrap0x0D(VOID); - -XTCDECL -VOID -ArpTrap0x0E(VOID); - -XTCDECL -VOID -ArpTrap0x10(VOID); - -XTCDECL -VOID -ArpTrap0x11(VOID); - -XTCDECL -VOID -ArpTrap0x12(VOID); - -XTCDECL -VOID -ArpTrap0x13(VOID); - -XTCDECL -VOID -ArpTrap0x1F(VOID); - -XTCDECL -VOID -ArpTrap0x2C(VOID); - -XTCDECL -VOID -ArpTrap0x2D(VOID); - -XTCDECL -VOID -ArpTrap0x2F(VOID); - -XTCDECL -VOID -ArpTrap0xE1(VOID); - -XTCDECL -VOID -ArpTrap0xFF(VOID); - -#endif /* __XTOSKRNL_AMD64_ARI_H */ diff --git a/xtoskrnl/includes/amd64/asmsup.h b/xtoskrnl/includes/amd64/asmsup.h deleted file mode 100644 index 7e04ab6..0000000 --- a/xtoskrnl/includes/amd64/asmsup.h +++ /dev/null @@ -1,64 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/asm.h - * DESCRIPTION: AMD64 architecture assembly definitions - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_ASMSUP_H -#define __XTOSKRNL_AMD64_ASMSUP_H - - -/* Control Register bit definitions */ -#define CR0_PG 0x80000000 -#define CR4_PGE 0x00000080 -#define CR4_LA57 0x00001000 -#define CR4_PCIDE 0x00020000 - -/* GDT selectors */ -#define GDT_R0_CMCODE 0x08 -#define GDT_R0_CODE 0x10 -#define GDT_R0_DATA 0x18 - -/* MSR registers */ -#define X86_MSR_EFER 0xC0000080 -#define X86_MSR_EFER_LME (1 << 8) - -/* KTRAP_FRAME structure offsets */ -#define TrapXmm0 0 -#define TrapXmm1 16 -#define TrapXmm2 32 -#define TrapXmm3 48 -#define TrapXmm4 64 -#define TrapXmm5 80 -#define TrapXmm6 96 -#define TrapXmm7 112 -#define TrapXmm8 128 -#define TrapXmm9 144 -#define TrapXmm10 160 -#define TrapXmm11 176 -#define TrapXmm12 192 -#define TrapXmm13 208 -#define TrapXmm14 224 -#define TrapXmm15 240 -#define TrapMxCsr 256 -#define TrapPreviousMode 260 -#define TrapCr2 264 -#define TrapCr3 272 -#define TrapDr0 280 -#define TrapDr1 288 -#define TrapDr2 296 -#define TrapDr3 304 -#define TrapDr6 312 -#define TrapDr7 320 -#define TrapSegDs 328 -#define TrapSegEs 330 -#define TrapSegFs 332 -#define TrapSegGs 334 - -/* KTRAP_FRAME length related definitions */ -#define TRAP_FRAME_SIZE 512 -#define TRAP_REGISTERS_SIZE 176 - -#endif /* __XTOSKRNL_AMD64_ASMSUP_H */ diff --git a/xtoskrnl/includes/amd64/globals.h b/xtoskrnl/includes/amd64/globals.h deleted file mode 100644 index 234379a..0000000 --- a/xtoskrnl/includes/amd64/globals.h +++ /dev/null @@ -1,39 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/globals.h - * DESCRIPTION: XT kernel global variables related to AMD64 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_GLOBALS_H -#define __XTOSKRNL_AMD64_GLOBALS_H - -#include - - -/* Initial GDT */ -EXTERN KGDTENTRY ArInitialGdt[GDT_ENTRIES]; - -/* Initial IDT */ -EXTERN KIDTENTRY ArInitialIdt[IDT_ENTRIES]; - -/* Initial Processor Block */ -EXTERN KPROCESSOR_BLOCK ArInitialProcessorBlock; - -/* Initial TSS */ -EXTERN KTSS ArInitialTss; - -/* Kernel own boot stack */ -EXTERN UCHAR ArKernelBootStack[KERNEL_STACK_SIZE]; - -/* Kernel own fault stack */ -EXTERN UCHAR ArKernelFaultStack[KERNEL_STACK_SIZE]; - -/* Page mapping routines for systems using 4-level paging (PML4) */ -EXTERN CMMPAGEMAP_ROUTINES MmpPml4Routines; - -/* Page mapping routines for systems using 5-level paging (PML5) */ -EXTERN CMMPAGEMAP_ROUTINES MmpPml5Routines; - -#endif /* __XTOSKRNL_AMD64_GLOBALS_H */ diff --git a/xtoskrnl/includes/amd64/hli.h b/xtoskrnl/includes/amd64/hli.h deleted file mode 100644 index bc4a268..0000000 --- a/xtoskrnl/includes/amd64/hli.h +++ /dev/null @@ -1,74 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/hli.h - * DESCRIPTION: XT hardware abstraction layer routines specific to AMD64 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_HLI_H -#define __XTOSKRNL_AMD64_HLI_H - -#include - - -/* HAL library routines forward references */ -XTAPI -VOID -HlClearApicErrors(VOID); - -XTFASTCALL -ULONGLONG -HlReadApicRegister(IN APIC_REGISTER Register); - -XTAPI -VOID -HlSendEoi(VOID); - -XTFASTCALL -VOID -HlWriteApicRegister(IN APIC_REGISTER Register, - IN ULONGLONG Value); - -XTAPI -BOOLEAN -HlpCheckX2ApicSupport(VOID); - -XTAPI -ULONG -HlpGetCpuApicId(VOID); - -XTCDECL -VOID -HlpHandleApicSpuriousService(VOID); - -XTCDECL -VOID -HlpHandlePicSpuriousService(VOID); - -XTAPI -VOID -HlpInitializeApic(); - -XTAPI -VOID -HlpInitializeLegacyPic(VOID); - -XTAPI -VOID -HlpInitializePic(); - -XTAPI -VOID -HlpSendIpi(ULONG ApicId, - ULONG Vector); - -XTFASTCALL -KRUNLEVEL -HlpTransformApicTprToRunLevel(IN UCHAR Tpr); - -XTFASTCALL -UCHAR -HlpTransformRunLevelToApicTpr(IN KRUNLEVEL RunLevel); - -#endif /* __XTOSKRNL_AMD64_HLI_H */ diff --git a/xtoskrnl/includes/amd64/kei.h b/xtoskrnl/includes/amd64/kei.h deleted file mode 100644 index 35c6ae2..0000000 --- a/xtoskrnl/includes/amd64/kei.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/kei.h - * DESCRIPTION: XTOS kernel services routine definitions specific to AMD64 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_KEI_H -#define __XTOSKRNL_AMD64_KEI_H - -#include - - -/* AMD64 specific Kernel services routines forward references */ -XTAPI -PKPROCESSOR_BLOCK -KeGetCurrentProcessorBlock(VOID); - -XTAPI -PKPROCESSOR_CONTROL_BLOCK -KeGetCurrentProcessorControlBlock(VOID); - -XTAPI -ULONG -KeGetCurrentProcessorNumber(VOID); - -XTAPI -PKTHREAD -KeGetCurrentThread(VOID); - -XTAPI -VOID -KepInitializeKernel(VOID); - -XTAPI -VOID -KepInitializeMachine(VOID); - -XTAPI -VOID -KepInitializeThreadContext(IN PKTHREAD Thread, - IN PKSYSTEM_ROUTINE SystemRoutine, - IN PKSTART_ROUTINE StartRoutine, - IN PVOID StartContext, - IN PCONTEXT ContextRecord); - -XTAPI -VOID -KepSaveProcessorState(OUT PKPROCESSOR_STATE CpuState); - -XTAPI -VOID -KepStartKernel(VOID); - -XTAPI -VOID -KepSwitchBootStack(); - -#endif /* __XTOSKRNL_AMD64_KEI_H */ diff --git a/xtoskrnl/includes/amd64/mmi.h b/xtoskrnl/includes/amd64/mmi.h deleted file mode 100644 index dbbcba0..0000000 --- a/xtoskrnl/includes/amd64/mmi.h +++ /dev/null @@ -1,73 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/mmi.h - * DESCRIPTION: XT memory manager routines specific to AMD64 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_MMI_H -#define __XTOSKRNL_AMD64_MMI_H - -#include - - -/* AMD64 Memory Manager routines forward references */ -XTAPI -VOID -MmInitializePageMapSupport(VOID); - -XTFASTCALL -VOID -MmZeroPages(IN PVOID Address, - IN ULONG Size); - -XTAPI -VOID -MmpClearPte(PHARDWARE_PTE PtePointer); - -XTAPI -BOOLEAN -MmpGetExtendedPhysicalAddressingStatus(VOID); - -XTAPI -PMMP5E -MmpGetP5eAddress(PVOID Address); - -XTAPI -PMMPDE -MmpGetPdeAddress(PVOID Address); - -XTAPI -PMMPPE -MmpGetPpeAddress(PVOID Address); - -XTAPI -PMMPTE -MmpGetPteAddress(PVOID Address); - -XTAPI -PMMPXE -MmpGetPxeAddress(PVOID Address); - -XTAPI -VOID -MmpInitializeArchitecture(VOID); - -XTAPI -BOOLEAN -MmpPteValid(PHARDWARE_PTE PtePointer); - -XTAPI -VOID -MmpSetPte(PHARDWARE_PTE PtePointer, - PFN_NUMBER PageFrameNumber, - BOOLEAN Writable); - -XTAPI -VOID -MmpSetPteCaching(PHARDWARE_PTE PtePointer, - BOOLEAN CacheDisable, - BOOLEAN WriteThrough); - -#endif /* __XTOSKRNL_AMD64_MMI_H */ diff --git a/xtoskrnl/includes/amd64/rtli.h b/xtoskrnl/includes/amd64/rtli.h deleted file mode 100644 index d9d187d..0000000 --- a/xtoskrnl/includes/amd64/rtli.h +++ /dev/null @@ -1,21 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/amd64/rtli.h - * DESCRIPTION: XT runtime library routines specific to AMD64 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_AMD64_RTLI_H -#define __XTOSKRNL_AMD64_RTLI_H - -#include - - -/* Runtime Library routines specific to AMD64 forward references */ -XTAPI -VOID -RtlGetStackLimits(OUT PULONG_PTR StackBase, - OUT PULONG_PTR StackLimit); - -#endif /* __XTOSKRNL_AMD64_RTLI_H */ diff --git a/xtoskrnl/includes/globals.h b/xtoskrnl/includes/globals.h deleted file mode 100644 index 0c45bfe..0000000 --- a/xtoskrnl/includes/globals.h +++ /dev/null @@ -1,115 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/globals.h - * DESCRIPTION: XT kernel global variables - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_GLOBALS_H -#define __XTOSKRNL_GLOBALS_H - -#include - - -/* ACPI tables cache list */ -EXTERN LIST_ENTRY HlpAcpiCacheList; - -/* ACPI Root System Description Pointer (RSDP) */ -EXTERN PACPI_RSDP HlpAcpiRsdp; - -/* ACPI timer information */ -EXTERN ACPI_TIMER_INFO HlpAcpiTimerInfo; - -/* Active processors count */ -EXTERN KAFFINITY HlpActiveProcessors; - -/* APIC mode */ -EXTERN APIC_MODE HlpApicMode; - -/* FrameBuffer information */ -EXTERN HL_FRAMEBUFFER_DATA HlpFrameBufferData; - -/* Scroll region information */ -EXTERN HL_SCROLL_REGION_DATA HlpScrollRegionData; - -/* System information */ -EXTERN ACPI_SYSTEM_INFO HlpSystemInfo; - -/* Pointer to DbgPrint() routine */ -EXTERN PKD_PRINT_ROUTINE KdPrint; - -/* Kernel Debugger mode */ -EXTERN KD_DEBUG_MODE KdpDebugMode; - -/* Debugger I/O providers initialization routines */ -EXTERN PKD_INIT_ROUTINE KdpIoProvidersInitRoutines[KDBG_PROVIDERS_COUNT]; - -/* List of active I/O providers */ -EXTERN LIST_ENTRY KdpProviders; - -/* Debugger's serial port handle */ -EXTERN CPPORT KdpSerialPort; - -/* Pre-defined serial port addresses */ -EXTERN ULONG KdpSerialPortList[COMPORT_COUNT]; - - -/* Kernel initialization block passed by boot loader */ -EXTERN PKERNEL_INITIALIZATION_BLOCK KeInitializationBlock; - -/* Kernel initial process */ -EXTERN EPROCESS KeInitialProcess; - -/* Kernel initial thread */ -EXTERN ETHREAD KeInitialThread; - -/* Kernel service descriptor table */ -EXTERN KSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable[KSERVICE_TABLES_COUNT]; - -/* Kernel process list */ -EXTERN LIST_ENTRY KepProcessListHead; - -/* Kernel system resources list */ -EXTERN LIST_ENTRY KepSystemResourcesListHead; - -/* Kernel system resources lock */ -EXTERN KSPIN_LOCK KepSystemResourcesLock; - -/* Kernel UBSAN active frame flag */ -EXTERN BOOLEAN KepUbsanActiveFrame; - -/* Biggest free memory descriptor */ -EXTERN PLOADER_MEMORY_DESCRIPTOR MmFreeDescriptor; - -/* Highest physical page number */ -EXTERN ULONG_PTR MmHighestPhysicalPage; - -/* Lowest physical page number */ -EXTERN ULONG_PTR MmLowestPhysicalPage; - -/* Number of physical pages */ -EXTERN ULONG MmNumberOfPhysicalPages; - -/* Old biggest free memory descriptor */ -EXTERN LOADER_MEMORY_DESCRIPTOR MmOldFreeDescriptor; - -/* Processor structures data (THIS IS A TEMPORARY HACK) */ -EXTERN UCHAR MmProcessorStructuresData[MAXIMUM_PROCESSORS][KPROCESSOR_STRUCTURES_SIZE]; - -/* Allocation descriptors dedicated for hardware layer */ -EXTERN LOADER_MEMORY_DESCRIPTOR MmpHardwareAllocationDescriptors[MM_HARDWARE_ALLOCATION_DESCRIPTORS]; - -/* Live address of kernel's hardware heap */ -EXTERN PVOID MmpHardwareHeapStart; - -/* Information about the current page map */ -EXTERN MMPAGEMAP_INFO MmpPageMapInfo; - -/* Pointers to page map routines for the current paging mode */ -EXTERN PCMMPAGEMAP_ROUTINES MmpPageMapRoutines; - -/* Number of used hardware allocation descriptors */ -EXTERN ULONG MmpUsedHardwareAllocationDescriptors; - -#endif /* __XTOSKRNL_GLOBALS_H */ diff --git a/xtoskrnl/includes/hli.h b/xtoskrnl/includes/hli.h deleted file mode 100644 index 874b70e..0000000 --- a/xtoskrnl/includes/hli.h +++ /dev/null @@ -1,152 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/hli.h - * DESCRIPTION: XT hardware abstraction layer routines - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_HLI_H -#define __XTOSKRNL_HLI_H - -#include - - -/* HAL library routines forward references */ -XTAPI -VOID -HlClearScreen(IN ULONG Color); - -XTCDECL -XTSTATUS -HlComPortGetByte(IN PCPPORT Port, - OUT PUCHAR Byte, - IN BOOLEAN Wait, - IN BOOLEAN Poll); - -XTCDECL -XTSTATUS -HlWriteComPort8(IN PCPPORT Port, - IN UCHAR Byte); - -XTCDECL -UCHAR -HlComPortReadLsr(IN PCPPORT Port, - IN UCHAR Byte); - -XTCDECL -XTSTATUS -HlDisplayCharacter(IN WCHAR Character); - -XTAPI -XTSTATUS -HlGetAcpiSystemDescriptionPointer(OUT PACPI_RSDP *Rsdp); - -XTAPI -XTSTATUS -HlGetAcpiTable(IN ULONG Signature, - OUT PACPI_DESCRIPTION_HEADER *AcpiTable); - -XTAPI -VOID -HlGetFrameBufferResolution(OUT PULONG Width, OUT PULONG Height); - -XTFASTCALL -KRUNLEVEL -HlGetRunLevel(VOID); - -XTCDECL -XTSTATUS -HlInitializeComPort(IN OUT PCPPORT Port, - IN PUCHAR PortAddress, - IN ULONG BaudRate); - -XTAPI -XTSTATUS -HlInitializeFrameBuffer(VOID); - -XTAPI -VOID -HlInitializeProcessor(VOID); - -XTAPI -VOID -HlInitializeScrollRegion(IN ULONG Left, - IN ULONG Top, - IN ULONG Right, - IN ULONG Bottom, - IN ULONG FontColor); - -XTAPI -XTSTATUS -HlInitializeSystem(VOID); - -XTFASTCALL -VOID -HlSetRunLevel(IN KRUNLEVEL RunLevel); - -XTAPI -VOID -HlpCacheAcpiTable(IN PACPI_DESCRIPTION_HEADER AcpiTable); - -XTAPI -VOID -HlpDrawCharacter(IN ULONG PositionX, - IN ULONG PositionY, - IN ULONG Color, - IN WCHAR WideCharacter); - -XTAPI -VOID -HlpDrawPixel(IN ULONG PosX, - IN ULONG PosY, - IN ULONG Color); - -XTAPI -XTSTATUS -HlpInitializeAcpi(VOID); - -XTAPI -XTSTATUS -HlpInitializeAcpiCache(VOID); - -XTAPI -XTSTATUS -HlpInitializeAcpiSystemDescriptionTable(OUT PACPI_DESCRIPTION_HEADER *AcpiTable); - -XTAPI -XTSTATUS -HlpInitializeAcpiSystemInformation(VOID); - -XTAPI -XTSTATUS -HlpInitializeAcpiSystemStructure(VOID); - -XTAPI -XTSTATUS -HlpInitializeAcpiTimer(VOID); - -XTAPI -XTSTATUS -HlpQueryAcpiCache(IN ULONG Signature, - OUT PACPI_DESCRIPTION_HEADER *AcpiTable); - -XTAPI -XTSTATUS -HlpQueryAcpiTables(IN ULONG Signature, - OUT PACPI_DESCRIPTION_HEADER *AcpiTable); - -XTAPI -ULONG -HlpRGBColor(IN ULONG Color); - -XTAPI -VOID -HlpScrollRegion(VOID); - -XTAPI -BOOLEAN -HlpValidateAcpiTable(IN PVOID Buffer, - IN UINT_PTR Size); - -#endif /* __XTOSKRNL_HLI_H */ diff --git a/xtoskrnl/includes/i686/ari.h b/xtoskrnl/includes/i686/ari.h deleted file mode 100644 index 4332312..0000000 --- a/xtoskrnl/includes/i686/ari.h +++ /dev/null @@ -1,436 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/ari.h - * DESCRIPTION: I686 architecture library routines - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_ARI_H -#define __XTOSKRNL_I686_ARI_H - -#include - - -/* I686 architecture library routines forward references */ -XTCDECL -VOID -ArClearInterruptFlag(VOID); - -XTCDECL -BOOLEAN -ArCpuId(IN OUT PCPUID_REGISTERS Registers); - -XTCDECL -VOID -ArFlushTlb(VOID); - -XTAPI -PVOID -ArGetBootStack(VOID); - -XTCDECL -ULONG -ArGetCpuFlags(VOID); - -XTASSEMBLY -XTCDECL -ULONG_PTR -ArGetStackPointer(VOID); - -XTCDECL -VOID -ArHalt(VOID); - -XTAPI -VOID -ArInitializeProcessor(IN PVOID ProcessorStructures); - -XTCDECL -BOOLEAN -ArInterruptsEnabled(VOID); - -XTCDECL -VOID -ArInvalidateTlbEntry(IN PVOID Address); - -XTCDECL -VOID -ArLoadGlobalDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadInterruptDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadLocalDescriptorTable(IN USHORT Source); - -XTCDECL -VOID -ArLoadSegment(IN USHORT Segment, - IN ULONG Source); - -XTCDECL -VOID -ArLoadTaskRegister(IN USHORT Source); - -XTCDECL -VOID -ArMemoryBarrier(VOID); - -XTCDECL -ULONG_PTR -ArReadControlRegister(IN USHORT ControlRegister); - -XTCDECL -ULONG_PTR -ArReadDebugRegister(IN USHORT DebugRegister); - -XTCDECL -ULONG -ArReadFSDualWord(IN ULONG Offset); - -XTCDECL -ULONGLONG -ArReadModelSpecificRegister(IN ULONG Register); - -XTCDECL -UINT -ArReadMxCsrRegister(VOID); - -XTCDECL -ULONGLONG -ArReadTimeStampCounter(VOID); - -XTCDECL -VOID -ArReadWriteBarrier(VOID); - -XTAPI -VOID -ArSetGdtEntryBase(IN PKGDTENTRY Gdt, - IN USHORT Selector, - IN ULONG_PTR Base); - -XTCDECL -VOID -ArSetInterruptFlag(VOID); - -XTCDECL -VOID -ArStoreGlobalDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreInterruptDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreLocalDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreSegment(IN USHORT Segment, - OUT PVOID Destination); - -XTCDECL -VOID -ArStoreTaskRegister(OUT PVOID Destination); - -XTCDECL -VOID -ArWriteControlRegister(IN USHORT ControlRegister, - IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteDebugRegister(IN USHORT DebugRegister, - IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteEflagsRegister(IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteModelSpecificRegister(IN ULONG Register, - IN ULONGLONG Value); - -XTCDECL -VOID -ArYieldProcessor(VOID); - -XTCDECL -VOID -ArpDispatchTrap(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap00(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap01(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap02(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap03(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap04(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap05(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap06(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap07(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap08(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap09(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0A(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0B(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0C(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0D(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap0E(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap10(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap11(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap12(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap13(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2A(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2B(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2C(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2D(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrap2E(IN PKTRAP_FRAME TrapFrame); - -XTCDECL -VOID -ArpHandleTrapFF(IN PKTRAP_FRAME TrapFrame); - -XTAPI -VOID -ArpIdentifyProcessor(VOID); - -XTAPI -VOID -ArpInitializeGdt(IN PKPROCESSOR_BLOCK ProcessorBlock); - -XTAPI -VOID -ArpInitializeIdt(IN PKPROCESSOR_BLOCK ProcessorBlock); - -XTAPI -VOID -ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock, - IN PKGDTENTRY Gdt, - IN PKIDTENTRY Idt, - IN PKTSS Tss, - IN PVOID DpcStack); - -XTAPI -VOID -ArpInitializeProcessorRegisters(VOID); - -XTAPI -VOID -ArpInitializeProcessorStructures(IN PVOID ProcessorStructures, - OUT PKGDTENTRY *Gdt, - OUT PKTSS *Tss, - OUT PKPROCESSOR_BLOCK *ProcessorBlock, - OUT PVOID *KernelBootStack, - OUT PVOID *KernelFaultStack); - -XTAPI -VOID -ArpInitializeSegments(VOID); - -XTAPI -VOID -ArpInitializeTss(IN PKPROCESSOR_BLOCK ProcessorBlock, - IN PVOID KernelBootStack, - IN PVOID KernelFaultStack); - -XTAPI -VOID -ArpSetDoubleFaultTssEntry(IN PKPROCESSOR_BLOCK ProcessorBlock, - IN PVOID KernelFaultStack); - -XTAPI -VOID -ArpSetGdtEntry(IN PKGDTENTRY Gdt, - IN USHORT Selector, - IN ULONG_PTR Base, - IN ULONG Limit, - IN UCHAR Type, - IN UCHAR Dpl, - IN UCHAR SegmentMode); - -XTAPI -VOID -ArpSetIdtGate(IN PKIDTENTRY Idt, - IN USHORT Vector, - IN PVOID Handler, - IN USHORT Selector, - IN USHORT Ist, - IN USHORT Access); - -XTAPI -VOID -ArpSetNonMaskableInterruptTssEntry(IN PKPROCESSOR_BLOCK ProcessorBlock, - IN PVOID KernelFaultStack); - -XTCDECL -VOID -ArpTrap0x00(VOID); - -XTCDECL -VOID -ArpTrap0x01(VOID); - -XTCDECL -VOID -ArpTrap0x02(VOID); - -XTCDECL -VOID -ArpTrap0x03(VOID); - -XTCDECL -VOID -ArpTrap0x04(VOID); - -XTCDECL -VOID -ArpTrap0x05(VOID); - -XTCDECL -VOID -ArpTrap0x06(VOID); - -XTCDECL -VOID -ArpTrap0x07(VOID); - -XTCDECL -VOID -ArpTrap0x08(VOID); - -XTCDECL -VOID -ArpTrap0x09(VOID); - -XTCDECL -VOID -ArpTrap0x0A(VOID); - -XTCDECL -VOID -ArpTrap0x0B(VOID); - -XTCDECL -VOID -ArpTrap0x0C(VOID); - -XTCDECL -VOID -ArpTrap0x0D(VOID); - -XTCDECL -VOID -ArpTrap0x0E(VOID); - -XTCDECL -VOID -ArpTrap0x10(VOID); - -XTCDECL -VOID -ArpTrap0x11(VOID); - -XTCDECL -VOID -ArpTrap0x12(VOID); - -XTCDECL -VOID -ArpTrap0x13(VOID); - -XTCDECL -VOID -ArpTrap0x2A(VOID); - -XTCDECL -VOID -ArpTrap0x2B(VOID); - -XTCDECL -VOID -ArpTrap0x2C(VOID); - -XTCDECL -VOID -ArpTrap0x2D(VOID); - -XTCDECL -VOID -ArpTrap0x2E(VOID); - -#endif /* __XTOSKRNL_I686_ARI_H */ diff --git a/xtoskrnl/includes/i686/asmsup.h b/xtoskrnl/includes/i686/asmsup.h deleted file mode 100644 index 7eab0f5..0000000 --- a/xtoskrnl/includes/i686/asmsup.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/asm.h - * DESCRIPTION: i686 architecture assembly definitions - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_ASMSUP_H -#define __XTOSKRNL_I686_ASMSUP_H - - -/* KTRAP_FRAME structure offsets */ -#define TrapPreviousMode 0 -#define TrapCr2 4 -#define TrapCr3 8 -#define TrapDr0 12 -#define TrapDr1 16 -#define TrapDr2 20 -#define TrapDr3 24 -#define TrapDr6 28 -#define TrapDr7 32 -#define TrapSegDs 36 -#define TrapSegEs 38 -#define TrapSegFs 40 -#define TrapSegGs 42 - -/* KTRAP_FRAME length related definitions */ -#define TRAP_FRAME_SIZE 100 -#define TRAP_REGISTERS_SIZE 56 - -#endif /* __XTOSKRNL_AMD64_ASMSUP_H */ diff --git a/xtoskrnl/includes/i686/globals.h b/xtoskrnl/includes/i686/globals.h deleted file mode 100644 index e5bf03e..0000000 --- a/xtoskrnl/includes/i686/globals.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/globals.h - * DESCRIPTION: XT kernel global variables related to i686 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_GLOBALS_H -#define __XTOSKRNL_I686_GLOBALS_H - -#include - - -/* Initial GDT */ -EXTERN KGDTENTRY ArInitialGdt[GDT_ENTRIES]; - -/* Initial IDT */ -EXTERN KIDTENTRY ArInitialIdt[IDT_ENTRIES]; - -/* Initial Processor Block */ -EXTERN KPROCESSOR_BLOCK ArInitialProcessorBlock; - -/* Initial TSS */ -EXTERN KTSS ArInitialTss; - -/* Double Fault and NMI task gates */ -EXTERN UCHAR ArpDoubleFaultTss[KTSS_IO_MAPS]; -EXTERN UCHAR ArpNonMaskableInterruptTss[KTSS_IO_MAPS]; - -/* Kernel own boot stack */ -EXTERN UCHAR ArKernelBootStack[KERNEL_STACK_SIZE]; - -/* Kernel own fault stack */ -EXTERN UCHAR ArKernelFaultStack[KERNEL_STACK_SIZE]; - -/* Page mapping routines for systems using 2-level paging (PML2) */ -EXTERN CMMPAGEMAP_ROUTINES MmpPml2Routines; - -/* Page mapping routines for systems using 3-level paging (PML3) */ -EXTERN CMMPAGEMAP_ROUTINES MmpPml3Routines; - -#endif /* __XTOSKRNL_I686_GLOBALS_H */ diff --git a/xtoskrnl/includes/i686/hli.h b/xtoskrnl/includes/i686/hli.h deleted file mode 100644 index 3ce4df4..0000000 --- a/xtoskrnl/includes/i686/hli.h +++ /dev/null @@ -1,74 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/hli.h - * DESCRIPTION: XT hardware abstraction layer routines specific to i686 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_HLI_H -#define __XTOSKRNL_I686_HLI_H - -#include - - -/* HAL library routines forward references */ -XTAPI -VOID -HlClearApicErrors(VOID); - -XTFASTCALL -ULONGLONG -HlReadApicRegister(IN APIC_REGISTER Register); - -XTAPI -VOID -HlSendEoi(VOID); - -XTFASTCALL -VOID -HlWriteApicRegister(IN APIC_REGISTER Register, - IN ULONGLONG Value); - -XTAPI -BOOLEAN -HlpCheckX2ApicSupport(VOID); - -XTAPI -ULONG -HlpGetCpuApicId(VOID); - -XTCDECL -VOID -HlpHandleApicSpuriousService(VOID); - -XTCDECL -VOID -HlpHandlePicSpuriousService(VOID); - -XTAPI -VOID -HlpInitializeApic(VOID); - -XTAPI -VOID -HlpInitializeLegacyPic(VOID); - -XTAPI -VOID -HlpInitializePic(VOID); - -XTAPI -VOID -HlpSendIpi(ULONG ApicId, - ULONG Vector); - -XTFASTCALL -KRUNLEVEL -HlpTransformApicTprToRunLevel(IN UCHAR Tpr); - -XTFASTCALL -UCHAR -HlpTransformRunLevelToApicTpr(IN KRUNLEVEL RunLevel); - -#endif /* __XTOSKRNL_I686_HLI_H */ diff --git a/xtoskrnl/includes/i686/kei.h b/xtoskrnl/includes/i686/kei.h deleted file mode 100644 index daa9e51..0000000 --- a/xtoskrnl/includes/i686/kei.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/kei.h - * DESCRIPTION: XTOS kernel services routine definitions specific to i686 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_KEI_H -#define __XTOSKRNL_I686_KEI_H - -#include - - -/* I686 specific Kernel services routines forward references */ -XTAPI -PKPROCESSOR_BLOCK -KeGetCurrentProcessorBlock(VOID); - -XTAPI -PKPROCESSOR_CONTROL_BLOCK -KeGetCurrentProcessorControlBlock(VOID); - -XTAPI -ULONG -KeGetCurrentProcessorNumber(VOID); - -XTAPI -PKTHREAD -KeGetCurrentThread(VOID); - -XTAPI -VOID -KepInitializeKernel(VOID); - -XTAPI -VOID -KepInitializeMachine(VOID); - -XTAPI -VOID -KepInitializeThreadContext(IN PKTHREAD Thread, - IN PKSYSTEM_ROUTINE SystemRoutine, - IN PKSTART_ROUTINE StartRoutine, - IN PVOID StartContext, - IN PCONTEXT ContextRecord); - -XTAPI -VOID -KepSaveProcessorState(OUT PKPROCESSOR_STATE CpuState); - -XTAPI -VOID -KepStartKernel(VOID); - -XTAPI -VOID -KepSwitchBootStack(); - -#endif /* __XTOSKRNL_I686_KEI_H */ diff --git a/xtoskrnl/includes/i686/mmi.h b/xtoskrnl/includes/i686/mmi.h deleted file mode 100644 index cc36a58..0000000 --- a/xtoskrnl/includes/i686/mmi.h +++ /dev/null @@ -1,81 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/mmi.h - * DESCRIPTION: XT memory manager routines specific to i686 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_MMI_H -#define __XTOSKRNL_I686_MMI_H - -#include - - -/* i686 Memory Manager routines forward references */ -XTAPI -VOID -MmInitializePageMapSupport(VOID); - -XTFASTCALL -VOID -MmZeroPages(IN PVOID Address, - IN ULONG Size); - -XTAPI -VOID -MmpClearPte(PHARDWARE_PTE PtePointer); - -XTAPI -BOOLEAN -MmpGetExtendedPhysicalAddressingStatus(VOID); - -XTAPI -PMMPDE -MmpGetPdeAddress(PVOID Address); - -XTAPI -PMMPPE -MmpGetPpeAddress(PVOID Address); - -XTAPI -PMMPTE -MmpGetPteAddress(PVOID Address); - -XTAPI -VOID -MmpInitializeArchitecture(VOID); - -XTAPI -BOOLEAN -MmpPml2PteValid(PHARDWARE_PTE PtePointer); - -XTAPI -VOID -MmpSetPml2Pte(PHARDWARE_PTE PtePointer, - PFN_NUMBER PageFrameNumber, - BOOLEAN Writable); - -XTAPI -VOID -MmpSetPml2PteCaching(PHARDWARE_PTE PtePointer, - BOOLEAN CacheDisable, - BOOLEAN WriteThrough); - -XTAPI -BOOLEAN -MmpPml3PteValid(PHARDWARE_PTE PtePointer); - -XTAPI -VOID -MmpSetPml3Pte(PHARDWARE_PTE PtePointer, - PFN_NUMBER PageFrameNumber, - BOOLEAN Writable); - -XTAPI -VOID -MmpSetPml3PteCaching(PHARDWARE_PTE PtePointer, - BOOLEAN CacheDisable, - BOOLEAN WriteThrough); - -#endif /* __XTOSKRNL_I686_MMI_H */ diff --git a/xtoskrnl/includes/i686/rtli.h b/xtoskrnl/includes/i686/rtli.h deleted file mode 100644 index d7fd287..0000000 --- a/xtoskrnl/includes/i686/rtli.h +++ /dev/null @@ -1,21 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/i686/rtli.h - * DESCRIPTION: XT runtime library routines specific to i686 architecture - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_I686_RTLI_H -#define __XTOSKRNL_I686_RTLI_H - -#include - - -/* Runtime Library routines specific to I686 forward references */ -XTAPI -VOID -RtlGetStackLimits(OUT PULONG_PTR StackBase, - OUT PULONG_PTR StackLimit); - -#endif /* __XTOSKRNL_I686_RTLI_H */ diff --git a/xtoskrnl/includes/kdi.h b/xtoskrnl/includes/kdi.h deleted file mode 100644 index 6515273..0000000 --- a/xtoskrnl/includes/kdi.h +++ /dev/null @@ -1,44 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/kdi.h - * DESCRIPTION: Kernel Debugger routines - * DEVELOPERS: Aiken Harris - */ - -#ifndef __XTOSKRNL_KDI_H -#define __XTOSKRNL_KDI_H - -#include - - -/* Kernel Debugger routines forward references */ -XTAPI -XTSTATUS -KdInitializeDebugIoProviders(VOID); - -XTAPI -VOID -KdSetPrintRoutine(PVOID DebugPrintRoutine); - -XTCDECL -VOID -KdpDebugPrint(PCWSTR Format, ...); - -XTAPI -XTSTATUS -KdpDetectDebugPorts(VOID); - -XTAPI -XTSTATUS -KdpInitializeFrameBufferProvider(VOID); - -XTAPI -XTSTATUS -KdpInitializeSerialPortProvider(VOID); - -XTCDECL -XTSTATUS -KdpSerialWriteCharacter(WCHAR Character); - -#endif /* __XTOSKRNL_KDI_H */ diff --git a/xtoskrnl/includes/ke/bootinfo.hh b/xtoskrnl/includes/ke/bootinfo.hh index a65a0da..ff74497 100644 --- a/xtoskrnl/includes/ke/bootinfo.hh +++ b/xtoskrnl/includes/ke/bootinfo.hh @@ -25,6 +25,7 @@ namespace KE STATIC XTAPI SYSTEM_FIRMWARE_TYPE GetFirmwareType(VOID); STATIC XTAPI XTSTATUS GetKernelParameter(IN PCWSTR ParameterName, OUT PCWSTR *Parameter); + STATIC XTAPI PLIST_ENTRY GetMemoryDescriptors(VOID); STATIC XTAPI PLIST_ENTRY GetSystemResources(VOID); STATIC XTAPI VOID InitializeInitializationBlock(IN PKERNEL_INITIALIZATION_BLOCK Block); diff --git a/xtoskrnl/includes/kei.h b/xtoskrnl/includes/kei.h deleted file mode 100644 index c6b8f59..0000000 --- a/xtoskrnl/includes/kei.h +++ /dev/null @@ -1,237 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/kei.h - * DESCRIPTION: XTOS kernel services routine definitions - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_KEI_H -#define __XTOSKRNL_KEI_H - -#include - - -/* Kernel services routines forward references */ -XTAPI -PKERNEL_INITIALIZATION_BLOCK -KeGetInitializationBlock(VOID); - -XTAPI -VOID -KeClearEvent(IN PKEVENT Event); - -XTAPI -VOID -KeClearTimer(IN PKTIMER Timer); - -XTAPI -SYSTEM_FIRMWARE_TYPE -KeGetFirmwareType(VOID); - -XTAPI -XTSTATUS -KeGetKernelParameter(IN PCWSTR ParameterName, - OUT PCWSTR *Parameter); - -XTAPI -VOID -KeHaltSystem(VOID); - -XTAPI -VOID -KeInitializeEvent(OUT PKEVENT Event, - IN KEVENT_TYPE EventType, - IN BOOLEAN InitialState); - -XTAPI -VOID -KeInitializeProcess(IN OUT PKPROCESS Process, - IN KPRIORITY Priority, - IN KAFFINITY Affinity, - IN PULONG_PTR DirectoryTable, - IN BOOLEAN Alignment); - -XTAPI -XTSTATUS -KeInitializeThread(IN PKPROCESS Process, - IN OUT PKTHREAD Thread, - IN PKSYSTEM_ROUTINE SystemRoutine, - IN PKSTART_ROUTINE StartRoutine, - IN PVOID StartContext, - IN PCONTEXT Context, - IN PVOID EnvironmentBlock, - IN PVOID Stack, - IN BOOLEAN StartThread); - -XTAPI -VOID -KePanic(IN ULONG Code); - -XTAPI -VOID -KePanicEx(IN ULONG Code, - IN ULONG_PTR Parameter1, - IN ULONG_PTR Parameter2, - IN ULONG_PTR Parameter3, - IN ULONG_PTR Parameter4); - -XTAPI -ULONGLONG -KeQueryTimer(IN PKTIMER Timer); - -XTAPI -LONG -KeSetEvent(IN PKEVENT Event, - IN KPRIORITY Increment, - IN BOOLEAN Wait); - -XTAPI -VOID -KeSetInterruptHandler(IN ULONG Vector, - IN PVOID Handler); - -XTAPI -VOID -KeStartThread(IN PKTHREAD Thread); - -XTAPI -VOID -KeStartXtSystem(IN PKERNEL_INITIALIZATION_BLOCK Parameters); - -XTCDECL -BOOLEAN -KepCheckUbsanReport(PKUBSAN_SOURCE_LOCATION Location); - -XTCDECL -VOID -KepEnterUbsanFrame(PKUBSAN_SOURCE_LOCATION Location, - PCCHAR Reason); - -XTFASTCALL -VOID -KepExitDispatcher(IN KRUNLEVEL OldRunLevel); - -XTCDECL -LONGLONG -KepGetSignedUbsanValue(PKUBSAN_TYPE_DESCRIPTOR Type, - PVOID Value); - -XTAPI -XTSTATUS -KepGetSystemResource(IN SYSTEM_RESOURCE_TYPE ResourceType, - IN BOOLEAN Acquire, - OUT PSYSTEM_RESOURCE_HEADER *ResourceHeader); - -XTCDECL -PCCHAR -KepGetUbsanTypeKind(UCHAR TypeCheckKind); - -XTCDECL -ULONGLONG -KepGetUnsignedUbsanValue(PKUBSAN_TYPE_DESCRIPTOR Type, - PVOID Value); - -XTCDECL -VOID -KepHandleUbsanDivisionOverflow(PKUBSAN_OVERFLOW_DATA Data, - PVOID Lhs, - PVOID Rhs); - -XTCDECL -VOID -KepHandleUbsanFloatCastOverflow(PKUBSAN_FLOAT_CAST_OVERFLOW_DATA Data, - ULONG_PTR Lhs, - ULONG_PTR Rhs); - -XTCDECL -VOID -KepHandleUbsanFunctionTypeMismatch(PKUBSAN_FUNCTION_TYPE_MISMATCH_DATA Data, - ULONG_PTR Pointer); - -XTCDECL -VOID -KepHandleUbsanIntegerOverflow(PKUBSAN_OVERFLOW_DATA Data, - ULONG_PTR Lhs, - ULONG_PTR Rhs); - -XTCDECL -VOID -KepHandleUbsanInvalidBuiltin(PKUBSAN_INVALID_BUILTIN_DATA Data); - -XTCDECL -VOID -KepHandleUbsanMisalignedAccess(PKUBSAN_TYPE_MISMATCH_DATA Data, - ULONG_PTR Pointer); - -XTCDECL -VOID -KepHandleUbsanNegateOverflow(PKUBSAN_OVERFLOW_DATA Data, - ULONG_PTR OldValue); - -XTCDECL -VOID -KepHandleUbsanNullPointerDereference(PKUBSAN_TYPE_MISMATCH_DATA Data); - -XTCDECL -VOID -KepHandleUbsanObjectSizeMismatch(PKUBSAN_TYPE_MISMATCH_DATA Data, - ULONG_PTR Pointer); - -XTCDECL -VOID -KepHandleUbsanOutOfBounds(PKUBSAN_OUT_OF_BOUNDS_DATA Data, - ULONG_PTR Index); - -XTCDECL -VOID -KepHandleUbsanPointerOverflow(PKUBSAN_OVERFLOW_DATA Data, - ULONG_PTR Lhs, - ULONG_PTR Rhs); - -XTCDECL -VOID -KepHandleUbsanShiftOutOfBounds(PKUBSAN_SHIFT_OUT_OF_BOUNDS_DATA Data, - ULONG_PTR Lhs, - ULONG_PTR Rhs); - -XTCDECL -VOID -KepHandleUbsanTypeMismatch(PKUBSAN_TYPE_MISMATCH_DATA Data, - ULONG_PTR Pointer); - -XTAPI -VOID -KepInitializeSystemResources(VOID); - -XTCDECL -VOID -KepLeaveUbsanFrame(); - -XTAPI -VOID -KepRemoveTimer(IN OUT PKTIMER Timer); - -XTFASTCALL -VOID -KepRetireDpcList(IN PKPROCESSOR_CONTROL_BLOCK Prcb); - -XTAPI -VOID -KepSuspendNop(IN PKAPC Apc, - IN OUT PKNORMAL_ROUTINE *NormalRoutine, - IN OUT PVOID *NormalContext, - IN OUT PVOID *SystemArgument1, - IN OUT PVOID *SystemArgument2); - -XTAPI -VOID -KepSuspendRundown(IN PKAPC Apc); - -XTAPI -VOID -KepSuspendThread(IN PVOID NormalContext, - IN PVOID SystemArgument1, - IN PVOID SystemArgument2); - -#endif /* __XTOSKRNL_KEI_H */ diff --git a/xtoskrnl/includes/mmi.h b/xtoskrnl/includes/mmi.h deleted file mode 100644 index 7118b07..0000000 --- a/xtoskrnl/includes/mmi.h +++ /dev/null @@ -1,86 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/mmi.h - * DESCRIPTION: Memory manager routines - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_MMI_H -#define __XTOSKRNL_MMI_H - -#include - - -/* Memory Manager routines forward references */ -XTAPI -XTSTATUS -MmAllocateHardwareMemory(IN PFN_NUMBER PageCount, - IN BOOLEAN Aligned, - OUT PPHYSICAL_ADDRESS Buffer); - -XTAPI -XTSTATUS -MmAllocateKernelStack(IN PVOID *Stack, - IN BOOLEAN LargeStack, - IN UCHAR SystemNode); - -XTAPI -XTSTATUS -MmAllocateProcessorStructures(IN ULONG CpuNumber, - OUT PVOID *StructuresData); - -XTAPI -VOID -MmFlushTlb(VOID); - -XTAPI -VOID -MmFreeKernelStack(IN PVOID Stack, - IN BOOLEAN LargeStack); - -XTAPI -VOID -MmFreeProcessorStructures(IN PVOID StructuresData); - -XTAPI -VOID -MmInitializeMemoryManager(VOID); - -XTAPI -XTSTATUS -MmMapHardwareMemory(IN PHYSICAL_ADDRESS PhysicalAddress, - IN PFN_NUMBER PageCount, - IN BOOLEAN FlushTlb, - OUT PVOID *VirtualAddress); - -XTAPI -VOID -MmMarkHardwareMemoryWriteThrough(IN PVOID VirtualAddress, - IN PFN_NUMBER PageCount); - -XTAPI -VOID -MmRemapHardwareMemory(IN PVOID VirtualAddress, - IN PHYSICAL_ADDRESS PhysicalAddress, - IN BOOLEAN FlushTlb); - -XTAPI -XTSTATUS -MmUnmapHardwareMemory(IN PVOID VirtualAddress, - IN PFN_NUMBER PageCount, - IN BOOLEAN FlushTlb); - -XTAPI -VOID -MmpScanMemoryDescriptors(VOID); - -XTAPI -BOOLEAN -MmpVerifyMemoryTypeFree(LOADER_MEMORY_TYPE MemoryType); - -XTAPI -BOOLEAN -MmpVerifyMemoryTypeInvisible(LOADER_MEMORY_TYPE MemoryType); - -#endif /* __XTOSKRNL_MMI_H */ diff --git a/xtoskrnl/includes/poi.h b/xtoskrnl/includes/poi.h deleted file mode 100644 index a53e03b..0000000 --- a/xtoskrnl/includes/poi.h +++ /dev/null @@ -1,35 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/poi.h - * DESCRIPTION: Power manager subsystem routines - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_POI_H -#define __XTOSKRNL_POI_H - -#include - - -/* Power Manager routines forward references */ -XTAPI -VOID -PoInitializeProcessorControlBlock(IN OUT PKPROCESSOR_CONTROL_BLOCK Prcb); - -XTFASTCALL -VOID -PopIdle0Function(IN PPROCESSOR_POWER_STATE PowerState); - -XTAPI -VOID -PopPerfIdle(PPROCESSOR_POWER_STATE PowerState); - -XTAPI -VOID -PopPerfIdleDpc(IN PKDPC Dpc, - IN PVOID DeferredContext, - IN PVOID SystemArgument1, - IN PVOID SystemArgument2); - -#endif /* __XTOSKRNL_POI_H */ diff --git a/xtoskrnl/includes/rtli.h b/xtoskrnl/includes/rtli.h deleted file mode 100644 index 93e3562..0000000 --- a/xtoskrnl/includes/rtli.h +++ /dev/null @@ -1,379 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/rtli.h - * DESCRIPTION: XT runtime library routines - * DEVELOPERS: Rafal Kupiec - */ - -#ifndef __XTOSKRNL_RTLI_H -#define __XTOSKRNL_RTLI_H - -#include - - -/* Runtime Library routines forward references */ -XTFASTCALL -CHAR -RtlAtomicAnd8(IN PCHAR Address, - IN CHAR Mask); - -XTFASTCALL -SHORT -RtlAtomicAnd16(IN PSHORT Address, - IN SHORT Mask); - -XTFASTCALL -LONG -RtlAtomicAnd32(IN PLONG Address, - IN LONG Mask); - -XTFASTCALL -LONG_PTR -RtlAtomicAnd64(IN PLONG_PTR Address, - IN LONG_PTR Mask); - -XTFASTCALL -UCHAR -RtlAtomicBitTestAndSet(IN PLONG Base, - IN LONG Offset); - -XTFASTCALL -UCHAR -RtlAtomicBitTestAndSet64(IN PLONGLONG Base, - IN LONGLONG Offset); - -XTFASTCALL -CHAR -RtlAtomicCompareExchange8(IN PCHAR Address, - IN CHAR Comperand, - IN CHAR Exchange); - -XTFASTCALL -SHORT -RtlAtomicCompareExchange16(IN PSHORT Address, - IN SHORT Comperand, - IN SHORT Exchange); - -XTFASTCALL -LONG -RtlAtomicCompareExchange32(IN PLONG Address, - IN LONG Comperand, - IN LONG Exchange); - -XTFASTCALL -LONG_PTR -RtlAtomicCompareExchange64(IN PLONG_PTR Address, - IN LONG_PTR Comperand, - IN LONG_PTR Exchange); - -XTFASTCALL -PVOID -RtlAtomicCompareExchangePointer(IN PVOID *Address, - IN PVOID Comperand, - IN PVOID Exchange); - -XTFASTCALL -CHAR -RtlAtomicDecrement8(IN PCHAR Address); - -XTFASTCALL -SHORT -RtlAtomicDecrement16(IN PSHORT Address); - -XTFASTCALL -LONG -RtlAtomicDecrement32(IN PLONG Address); - -XTFASTCALL -LONG_PTR -RtlAtomicDecrement64(IN PLONG_PTR Address); - -XTFASTCALL -CHAR -RtlAtomicExchange8(IN PCHAR Address, - IN CHAR Exchange); - -XTFASTCALL -SHORT -RtlAtomicExchange16(IN PSHORT Address, - IN SHORT Exchange); - -XTFASTCALL -LONG -RtlAtomicExchange32(IN PLONG Address, - IN LONG Exchange); - -XTFASTCALL -LONG_PTR -RtlAtomicExchange64(IN PLONG_PTR Address, - IN LONG_PTR Exchange); - -XTFASTCALL -CHAR -RtlAtomicExchangeAdd8(IN PCHAR Address, - IN CHAR Value); - -XTFASTCALL -SHORT -RtlAtomicExchangeAdd16(IN PSHORT Address, - IN SHORT Value); - -XTFASTCALL -LONG -RtlAtomicExchangeAdd32(IN PLONG Address, - IN LONG Value); - -XTFASTCALL -LONG_PTR -RtlAtomicExchangeAdd64(IN PLONG_PTR Address, - IN LONG_PTR Value); - -XTFASTCALL -PVOID -RtlAtomicExchangePointer(IN PVOID *Address, - IN PVOID Exchange); - -XTFASTCALL -PSINGLE_LIST_ENTRY -RtlAtomicFlushSingleList(IN PSINGLE_LIST_HEADER Header); - -XTFASTCALL -CHAR -RtlAtomicIncrement8(IN PCHAR Address); - -XTFASTCALL -SHORT -RtlAtomicIncrement16(IN PSHORT Address); - -XTFASTCALL -LONG -RtlAtomicIncrement32(IN PLONG Address); - -XTFASTCALL -LONG_PTR -RtlAtomicIncrement64(IN PLONG_PTR Address); - -XTFASTCALL -CHAR -RtlAtomicOr8(IN PCHAR Address, - IN CHAR Mask); - -XTFASTCALL -SHORT -RtlAtomicOr16(IN PSHORT Address, - IN SHORT Mask); - -XTFASTCALL -LONG -RtlAtomicOr32(IN PLONG Address, - IN LONG Mask); - -XTFASTCALL -LONG_PTR -RtlAtomicOr64(IN PLONG_PTR Address, - IN LONG_PTR Mask); - -XTFASTCALL -PSINGLE_LIST_ENTRY -RtlAtomicPopEntrySingleList(IN PSINGLE_LIST_HEADER Header); - -XTFASTCALL -PSINGLE_LIST_ENTRY -RtlAtomicPushEntrySingleList(IN PSINGLE_LIST_HEADER Header, - IN PSINGLE_LIST_ENTRY Entry); - -XTFASTCALL -CHAR -RtlAtomicXor8(IN PCHAR Address, - IN CHAR Mask); - -XTFASTCALL -SHORT -RtlAtomicXor16(IN PSHORT Address, - IN SHORT Mask); - -XTFASTCALL -LONG -RtlAtomicXor32(IN PLONG Address, - IN LONG Mask); - -XTFASTCALL -LONG_PTR -RtlAtomicXor64(IN PLONG_PTR Address, - IN LONG_PTR Mask); - -XTFASTCALL -USHORT -RtlByteSwap16(IN USHORT Source); - -XTFASTCALL -ULONG -RtlByteSwap32(IN ULONG Source); - -XTFASTCALL -ULONGLONG -RtlByteSwap64(IN ULONGLONG Source); - -XTAPI -INT -RtlCountLeadingZeroes32(IN ULONG Value); - -XTAPI -INT -RtlCountLeadingZeroes64(IN ULONGLONG Value); - -XTAPI -INT -RtlCountTrailingZeroes32(IN ULONG Value); - -XTAPI -INT -RtlCountTrailingZeroes64(IN ULONGLONG Value); - -XTAPI -LONGLONG -RtlDivide32(IN LONG Dividend, - IN LONG Divisor, - OUT PLONG Remainder); - -XTAPI -LONGLONG -RtlDivide64(IN LONGLONG Dividend, - IN LONGLONG Divisor, - OUT PLONGLONG Remainder); - -XTAPI -ULONGLONG -RtlDivideUnsigned32(IN ULONG Dividend, - IN ULONG Divisor, - OUT PULONG Remainder); - -XTAPI -ULONGLONG -RtlDivideUnsigned64(IN ULONGLONG Dividend, - IN ULONGLONG Divisor, - OUT PULONGLONG Remainder); - -XTAPI -VOID -RtlDumpBitMap(IN PRTL_BITMAP BitMap); - -XTAPI -LONG -RtlGetBaseExponent(IN DOUBLE Value, - OUT PDOUBLE PowerOfTen); - -XTCDECL -BOOLEAN -RtlInfiniteDouble(IN DOUBLE Value); - -XTCDECL -VOID -RtlInitializeListHead(IN PLIST_ENTRY ListHead); - -XTCDECL -VOID -RtlInitializeListHead32(IN PLIST_ENTRY32 ListHead); - -XTCDECL -VOID -RtlInsertHeadList(IN OUT PLIST_ENTRY ListHead, - IN PLIST_ENTRY Entry); - -XTCDECL -VOID -RtlInsertTailList(IN OUT PLIST_ENTRY ListHead, - IN PLIST_ENTRY Entry); - -XTCDECL -BOOLEAN -RtlListEmpty(PLIST_ENTRY ListHead); - -XTCDECL -BOOLEAN -RtlListLoop(IN PLIST_ENTRY ListHead); - -XTCDECL -BOOLEAN -RtlNanDouble(IN DOUBLE Value); - -XTCDECL -VOID -RtlRemoveEntryList(IN PLIST_ENTRY Entry); - -XTAPI -ULONG_PTR -RtlpCountBits(IN PRTL_BITMAP BitMap, - IN ULONG_PTR Length, - IN ULONG_PTR StartingIndex, - IN BOOLEAN SetBits); - -XTAPI -ULONG_PTR -RtlpFindBits(IN PRTL_BITMAP BitMap, - IN ULONG_PTR Length, - IN ULONG_PTR StartingIndex, - IN BOOLEAN SetBits); - -XTAPI -XTSTATUS -RtlpFormatWideStringArgumentSpecifier(IN PRTL_PRINT_CONTEXT Context, - IN PCWSTR Format, - IN PVA_LIST ArgumentList, - IN OUT PULONG Index); - -XTAPI -ULONGLONG -RtlpGetWideStringArgument(IN PVA_LIST ArgumentList, - IN ULONG ArgumentNumber, - IN LONG ArgumentSize); - -XTAPI -ULONGLONG -RtlpGetWideStringSpecifierValue(IN PWCHAR *Format); - -XTAPI -XTSTATUS -RtlpWriteWideCharacter(IN PRTL_PRINT_CONTEXT Context, - IN WCHAR Character); - -XTCDECL -XTSTATUS -RtlpWriteWideStringCustomValue(IN PRTL_PRINT_CONTEXT Context, - IN PCWSTR Format, - IN ...); - -XTAPI -XTSTATUS -RtlpWriteWideStringDoubleValue(IN PRTL_PRINT_CONTEXT Context, - IN PRTL_PRINT_FORMAT_PROPERTIES FormatProperties, - IN DOUBLE Value); - -XTAPI -XTSTATUS -RtlpWriteWideStringHexDoubleValue(IN PRTL_PRINT_CONTEXT Context, - IN PRTL_PRINT_FORMAT_PROPERTIES FormatProperties, - IN DOUBLE Value); - -XTAPI -XTSTATUS -RtlpWriteWideStringIntegerValue(IN PRTL_PRINT_CONTEXT Context, - IN PRTL_PRINT_FORMAT_PROPERTIES FormatProperties, - IN ULONGLONG Integer); - -XTAPI -XTSTATUS -RtlpWriteWideStringStringValue(PRTL_PRINT_CONTEXT Context, - PRTL_PRINT_FORMAT_PROPERTIES FormatProperties, - PCHAR String, - SIZE_T StringLength); - -XTAPI -XTSTATUS -RtlpWriteWideStringValue(PRTL_PRINT_CONTEXT Context, - PRTL_PRINT_FORMAT_PROPERTIES FormatProperties, - PWCHAR String, - SIZE_T StringLength); - -#endif /* __XTOSKRNL_RTLI_H */ diff --git a/xtoskrnl/includes/xtos.h b/xtoskrnl/includes/xtos.h deleted file mode 100644 index ad86770..0000000 --- a/xtoskrnl/includes/xtos.h +++ /dev/null @@ -1,19 +0,0 @@ -/** - * PROJECT: ExectOS - * COPYRIGHT: See COPYING.md in the top level directory - * FILE: xtoskrnl/includes/xtos.h - * DESCRIPTION: Top level header for the XT kernel - * DEVELOPERS: Rafal Kupiec - */ - -/* XT Development Kit */ -#include - -/* XT OS version */ -#include - -/* Kernel specific headers */ -#include "kei.h" - - -#include ARCH_HEADER(kei.h) diff --git a/xtoskrnl/includes/xtos.hh b/xtoskrnl/includes/xtos.hh index 4d05229..3363583 100644 --- a/xtoskrnl/includes/xtos.hh +++ b/xtoskrnl/includes/xtos.hh @@ -10,22 +10,13 @@ /* Preprocessor macro for including arch-specific headers */ #define XTOS_ARCH_HEADER(subsystem, header) STRINGIFY(subsystem/_ARCH/header) - - -/* Temporary includes for C code compatibility */ -extern "C" { -/* XT Development Kit */ +/* XT Kernel Mode Development Kit */ #include /* XT OS version */ #include /* Kernel specific headers */ -#include -} - - - #include #include #include diff --git a/xtoskrnl/ke/bootinfo.cc b/xtoskrnl/ke/bootinfo.cc index 7b4ed93..d77d8a4 100644 --- a/xtoskrnl/ke/bootinfo.cc +++ b/xtoskrnl/ke/bootinfo.cc @@ -97,6 +97,13 @@ KE::BootInformation::GetKernelParameter(IN PCWSTR ParameterName, return STATUS_NOT_FOUND; } +XTAPI +PLIST_ENTRY +KE::BootInformation::GetMemoryDescriptors(VOID) +{ + return &InitializationBlock->MemoryDescriptorListHead; +} + /** * Retrieves a pointer to the list of system resources. * @@ -125,7 +132,12 @@ XTAPI VOID KE::BootInformation::InitializeInitializationBlock(IN PKERNEL_INITIALIZATION_BLOCK Block) { - InitializationBlock = Block; + /* Check if the initialization block is already initialized */ + if(!InitializationBlock) + { + /* Save the kernel initialization block */ + InitializationBlock = Block; + } } diff --git a/xtoskrnl/mm/hlpool.cc b/xtoskrnl/mm/hlpool.cc index ececddb..85137bc 100644 --- a/xtoskrnl/mm/hlpool.cc +++ b/xtoskrnl/mm/hlpool.cc @@ -34,7 +34,7 @@ MM::HardwarePool::AllocateHardwareMemory(IN PFN_NUMBER PageCount, PLOADER_MEMORY_DESCRIPTOR Descriptor, ExtraDescriptor, HardwareDescriptor; PFN_NUMBER Alignment, MaxPage; ULONGLONG PhysicalAddress; - PLIST_ENTRY ListEntry; + PLIST_ENTRY ListEntry, LoaderMemoryDescriptors; /* Assume failure */ (*Buffer).QuadPart = 0; @@ -49,9 +49,12 @@ MM::HardwarePool::AllocateHardwareMemory(IN PFN_NUMBER PageCount, return STATUS_INSUFFICIENT_RESOURCES; } + /* Get a list of memory descriptors provided by the boot loader */ + LoaderMemoryDescriptors = KE::BootInformation::GetMemoryDescriptors(); + /* Scan memory descriptors provided by the boot loader */ - ListEntry = KeGetInitializationBlock()->MemoryDescriptorListHead.Flink; - while(ListEntry != &KeGetInitializationBlock()->MemoryDescriptorListHead) + ListEntry = LoaderMemoryDescriptors->Flink; + while(ListEntry != LoaderMemoryDescriptors) { Descriptor = CONTAIN_RECORD(ListEntry, LOADER_MEMORY_DESCRIPTOR, ListEntry); @@ -77,7 +80,7 @@ MM::HardwarePool::AllocateHardwareMemory(IN PFN_NUMBER PageCount, } /* Make sure we found a descriptor */ - if(ListEntry == &KeGetInitializationBlock()->MemoryDescriptorListHead) + if(ListEntry == LoaderMemoryDescriptors) { /* Descriptor not found, return error */ return STATUS_INSUFFICIENT_RESOURCES; diff --git a/xtoskrnl/mm/init.cc b/xtoskrnl/mm/init.cc index dfe54b3..49ffc04 100644 --- a/xtoskrnl/mm/init.cc +++ b/xtoskrnl/mm/init.cc @@ -28,7 +28,7 @@ MM::Init::InitializeMemoryManager(VOID) { /* Insufficient physical pages, kernel panic */ DebugPrint(L"Insufficient physical pages! Install additional memory\n"); - KePanic(0); + KE::Crash::Panic(0); } /* Proceed with architecture specific initialization */ @@ -46,16 +46,19 @@ XTAPI VOID MM::Init::ScanMemoryDescriptors(VOID) { + PLIST_ENTRY LoaderMemoryDescriptors, MemoryMappings; PLOADER_MEMORY_DESCRIPTOR MemoryDescriptor; - PLIST_ENTRY MemoryMappings; PFN_NUMBER FreePages; /* Initially, set number of free pages to 0 */ FreePages = 0; + /* Get a list of memory descriptors provided by the boot loader */ + LoaderMemoryDescriptors = KE::BootInformation::GetMemoryDescriptors(); + /* Iterate through memory mappings provided by the boot loader */ - MemoryMappings = KeGetInitializationBlock()->MemoryDescriptorListHead.Flink; - while(MemoryMappings != &KeGetInitializationBlock()->MemoryDescriptorListHead) + MemoryMappings = LoaderMemoryDescriptors->Flink; + while(MemoryMappings != LoaderMemoryDescriptors) { /* Get memory descriptor */ MemoryDescriptor = CONTAIN_RECORD(MemoryMappings, LOADER_MEMORY_DESCRIPTOR, ListEntry); diff --git a/xtoskrnl/rtl/data.cc b/xtoskrnl/rtl/data.cc index b862c89..03f2057 100644 --- a/xtoskrnl/rtl/data.cc +++ b/xtoskrnl/rtl/data.cc @@ -6,7 +6,7 @@ * DEVELOPERS: Rafal Kupiec */ -#include +#include /* This is required for floating numbers to keep LLVM happy */