Remove leftover old headers and fix missed spots
This commit is contained in:
@@ -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));
|
||||
|
@@ -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));
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_AMD64_ARI_H
|
||||
#define __XTOSKRNL_AMD64_ARI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_AMD64_GLOBALS_H
|
||||
#define __XTOSKRNL_AMD64_GLOBALS_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_AMD64_HLI_H
|
||||
#define __XTOSKRNL_AMD64_HLI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_AMD64_KEI_H
|
||||
#define __XTOSKRNL_AMD64_KEI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_AMD64_MMI_H
|
||||
#define __XTOSKRNL_AMD64_MMI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_AMD64_RTLI_H
|
||||
#define __XTOSKRNL_AMD64_RTLI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* Runtime Library routines specific to AMD64 forward references */
|
||||
XTAPI
|
||||
VOID
|
||||
RtlGetStackLimits(OUT PULONG_PTR StackBase,
|
||||
OUT PULONG_PTR StackLimit);
|
||||
|
||||
#endif /* __XTOSKRNL_AMD64_RTLI_H */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_GLOBALS_H
|
||||
#define __XTOSKRNL_GLOBALS_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_HLI_H
|
||||
#define __XTOSKRNL_HLI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_I686_ARI_H
|
||||
#define __XTOSKRNL_I686_ARI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_I686_GLOBALS_H
|
||||
#define __XTOSKRNL_I686_GLOBALS_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_I686_HLI_H
|
||||
#define __XTOSKRNL_I686_HLI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_I686_KEI_H
|
||||
#define __XTOSKRNL_I686_KEI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_I686_MMI_H
|
||||
#define __XTOSKRNL_I686_MMI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_I686_RTLI_H
|
||||
#define __XTOSKRNL_I686_RTLI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* Runtime Library routines specific to I686 forward references */
|
||||
XTAPI
|
||||
VOID
|
||||
RtlGetStackLimits(OUT PULONG_PTR StackBase,
|
||||
OUT PULONG_PTR StackLimit);
|
||||
|
||||
#endif /* __XTOSKRNL_I686_RTLI_H */
|
@@ -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 <harraiken91@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_KDI_H
|
||||
#define __XTOSKRNL_KDI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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);
|
||||
|
||||
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_KEI_H
|
||||
#define __XTOSKRNL_KEI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_MMI_H
|
||||
#define __XTOSKRNL_MMI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_POI_H
|
||||
#define __XTOSKRNL_POI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTOSKRNL_RTLI_H
|
||||
#define __XTOSKRNL_RTLI_H
|
||||
|
||||
#include <xtos.h>
|
||||
|
||||
|
||||
/* 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 */
|
@@ -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 <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
/* XT Development Kit */
|
||||
#include <xtkmapi.h>
|
||||
|
||||
/* XT OS version */
|
||||
#include <xtver.h>
|
||||
|
||||
/* Kernel specific headers */
|
||||
#include "kei.h"
|
||||
|
||||
|
||||
#include ARCH_HEADER(kei.h)
|
@@ -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 <xtkmapi.h>
|
||||
|
||||
/* XT OS version */
|
||||
#include <xtver.h>
|
||||
|
||||
/* Kernel specific headers */
|
||||
#include <xtos.h>
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include <ar.hh>
|
||||
#include <ex.hh>
|
||||
#include <hl.hh>
|
||||
|
@@ -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)
|
||||
{
|
||||
/* Check if the initialization block is already initialized */
|
||||
if(!InitializationBlock)
|
||||
{
|
||||
/* Save the kernel initialization block */
|
||||
InitializationBlock = Block;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -6,7 +6,7 @@
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#include <xtos.h>
|
||||
#include <xtos.hh>
|
||||
|
||||
|
||||
/* This is required for floating numbers to keep LLVM happy */
|
||||
|
Reference in New Issue
Block a user