diff --git a/xtoskrnl/includes/amd64/arpfuncs.h b/xtoskrnl/includes/amd64/arpfuncs.h new file mode 100644 index 0000000..4ef72f4 --- /dev/null +++ b/xtoskrnl/includes/amd64/arpfuncs.h @@ -0,0 +1,162 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/includes/amd64/arpfuncs.h + * DESCRIPTION: Private AMD64 routine definitions for architecture library + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTOSKRNL_AMD64_ARPFUNCS_H +#define __XTOSKRNL_AMD64_ARPFUNCS_H + +#include + + +XTCDECL +VOID +ArpHandleSystemCall32(); + +XTCDECL +VOID +ArpHandleSystemCall64(); + +XTCDECL +VOID +ArpHandleTrap00(); + +XTCDECL +VOID +ArpHandleTrap01(); + +XTCDECL +VOID +ArpHandleTrap02(); + +XTCDECL +VOID +ArpHandleTrap03(); + +XTCDECL +VOID +ArpHandleTrap04(); + +XTCDECL +VOID +ArpHandleTrap05(); + +XTCDECL +VOID +ArpHandleTrap06(); + +XTCDECL +VOID +ArpHandleTrap07(); + +XTCDECL +VOID +ArpHandleTrap08(); + +XTCDECL +VOID +ArpHandleTrap09(); + +XTCDECL +VOID +ArpHandleTrap0A(); + +XTCDECL +VOID +ArpHandleTrap0B(); + +XTCDECL +VOID +ArpHandleTrap0C(); + +XTCDECL +VOID +ArpHandleTrap0D(); + +XTCDECL +VOID +ArpHandleTrap0E(); + +XTCDECL +VOID +ArpHandleTrap10(); + +XTCDECL +VOID +ArpHandleTrap11(); + +XTCDECL +VOID +ArpHandleTrap12(); + +XTCDECL +VOID +ArpHandleTrap13(); + +XTCDECL +VOID +ArpHandleTrap2C(); + +XTCDECL +VOID +ArpHandleTrap2D(); + +XTCDECL +VOID +ArpHandleTrapFF(); + +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 +ArpInitializeSegments(VOID); + +XTAPI +VOID +ArpInitializeTss(IN PKPROCESSOR_BLOCK ProcessorBlock); + +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); + +#endif /* __XTOSKRNL_AMD64_ARPFUNCS_H */ diff --git a/xtoskrnl/includes/amd64/kepfuncs.h b/xtoskrnl/includes/amd64/kepfuncs.h new file mode 100644 index 0000000..f3d8347 --- /dev/null +++ b/xtoskrnl/includes/amd64/kepfuncs.h @@ -0,0 +1,39 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/includes/amd64/kepfuncs.h + * DESCRIPTION: Private AMD64 routine definitions for kernel services + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTOSKRNL_AMD64_KEPFUNCS_H +#define __XTOSKRNL_AMD64_KEPFUNCS_H + +#include + + +XTAPI +PKPROCESSOR_BLOCK +KeGetCurrentProcessorBlock(VOID); + +XTAPI +PKPROCESSOR_CONTROL_BLOCK +KeGetCurrentProcessorControlBlock(VOID); + +XTAPI +PKTHREAD +KeGetCurrentThread(VOID); + +XTAPI +VOID +KepArchInitialize(VOID); + +XTAPI +VOID +KepStartKernel(VOID); + +XTAPI +VOID +KepSwitchBootStack(IN ULONG_PTR Stack); + +#endif /* __XTOSKRNL_AMD64_KEPFUNCS_H */ diff --git a/xtoskrnl/includes/arpfuncs.h b/xtoskrnl/includes/arpfuncs.h index 422c874..44f9b96 100644 --- a/xtoskrnl/includes/arpfuncs.h +++ b/xtoskrnl/includes/arpfuncs.h @@ -10,161 +10,7 @@ #define __XTOSKRNL_ARPFUNCS_H #include +#include ARCH_HEADER(arpfuncs.h) -XTCDECL -VOID -ArpHandleSystemCall32(); - -XTCDECL -VOID -ArpHandleSystemCall64(); - -XTCDECL -VOID -ArpHandleTrap00(); - -XTCDECL -VOID -ArpHandleTrap01(); - -XTCDECL -VOID -ArpHandleTrap02(); - -XTCDECL -VOID -ArpHandleTrap03(); - -XTCDECL -VOID -ArpHandleTrap04(); - -XTCDECL -VOID -ArpHandleTrap05(); - -XTCDECL -VOID -ArpHandleTrap06(); - -XTCDECL -VOID -ArpHandleTrap07(); - -XTCDECL -VOID -ArpHandleTrap08(); - -XTCDECL -VOID -ArpHandleTrap09(); - -XTCDECL -VOID -ArpHandleTrap0A(); - -XTCDECL -VOID -ArpHandleTrap0B(); - -XTCDECL -VOID -ArpHandleTrap0C(); - -XTCDECL -VOID -ArpHandleTrap0D(); - -XTCDECL -VOID -ArpHandleTrap0E(); - -XTCDECL -VOID -ArpHandleTrap10(); - -XTCDECL -VOID -ArpHandleTrap11(); - -XTCDECL -VOID -ArpHandleTrap12(); - -XTCDECL -VOID -ArpHandleTrap13(); - -XTCDECL -VOID -ArpHandleTrap2C(); - -XTCDECL -VOID -ArpHandleTrap2D(); - -XTCDECL -VOID -ArpHandleTrapFF(); - -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 -ArpInitializeSegments(VOID); - -XTAPI -VOID -ArpInitializeTss(IN PKPROCESSOR_BLOCK ProcessorBlock); - -XTAPI -VOID -ArpSetDoubleFaultTssEntry(IN PKPROCESSOR_BLOCK ProcessorBlock); - -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); - #endif /* __XTOSKRNL_ARPFUNCS_H */ diff --git a/xtoskrnl/includes/i686/arpfuncs.h b/xtoskrnl/includes/i686/arpfuncs.h new file mode 100644 index 0000000..9b96a2b --- /dev/null +++ b/xtoskrnl/includes/i686/arpfuncs.h @@ -0,0 +1,162 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/includes/i686/arpfuncs.h + * DESCRIPTION: Private i686 routine definitions for architecture library + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTOSKRNL_I686_ARPFUNCS_H +#define __XTOSKRNL_I686_ARPFUNCS_H + +#include + + +XTCDECL +VOID +ArpHandleTrap00(); + +XTCDECL +VOID +ArpHandleTrap01(); + +XTCDECL +VOID +ArpHandleTrap02(); + +XTCDECL +VOID +ArpHandleTrap03(); + +XTCDECL +VOID +ArpHandleTrap04(); + +XTCDECL +VOID +ArpHandleTrap05(); + +XTCDECL +VOID +ArpHandleTrap06(); + +XTCDECL +VOID +ArpHandleTrap07(); + +XTCDECL +VOID +ArpHandleTrap08(); + +XTCDECL +VOID +ArpHandleTrap09(); + +XTCDECL +VOID +ArpHandleTrap0A(); + +XTCDECL +VOID +ArpHandleTrap0B(); + +XTCDECL +VOID +ArpHandleTrap0C(); + +XTCDECL +VOID +ArpHandleTrap0D(); + +XTCDECL +VOID +ArpHandleTrap0E(); + +XTCDECL +VOID +ArpHandleTrap10(); + +XTCDECL +VOID +ArpHandleTrap11(); + +XTCDECL +VOID +ArpHandleTrap12(); + +XTCDECL +VOID +ArpHandleTrap13(); + +XTCDECL +VOID +ArpHandleTrap2C(); + +XTCDECL +VOID +ArpHandleTrap2D(); + +XTCDECL +VOID +ArpHandleTrapFF(); + +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 +ArpInitializeSegments(VOID); + +XTAPI +VOID +ArpInitializeTss(IN PKPROCESSOR_BLOCK ProcessorBlock); + +XTAPI +VOID +ArpSetDoubleFaultTssEntry(IN PKPROCESSOR_BLOCK ProcessorBlock); + +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); + +#endif /* __XTOSKRNL_I686_ARPFUNCS_H */ diff --git a/xtoskrnl/includes/i686/kepfuncs.h b/xtoskrnl/includes/i686/kepfuncs.h new file mode 100644 index 0000000..e43ea33 --- /dev/null +++ b/xtoskrnl/includes/i686/kepfuncs.h @@ -0,0 +1,39 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/includes/i686/kepfuncs.h + * DESCRIPTION: Private i686 routine definitions for kernel services + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTOSKRNL_I686_KEPFUNCS_H +#define __XTOSKRNL_I686_KEPFUNCS_H + +#include + + +XTAPI +PKPROCESSOR_BLOCK +KeGetCurrentProcessorBlock(VOID); + +XTAPI +PKPROCESSOR_CONTROL_BLOCK +KeGetCurrentProcessorControlBlock(VOID); + +XTAPI +PKTHREAD +KeGetCurrentThread(VOID); + +XTAPI +VOID +KepArchInitialize(VOID); + +XTAPI +VOID +KepStartKernel(VOID); + +XTAPI +VOID +KepSwitchBootStack(IN ULONG_PTR Stack); + +#endif /* __XTOSKRNL_I686_KEPFUNCS_H */ diff --git a/xtoskrnl/includes/kepfuncs.h b/xtoskrnl/includes/kepfuncs.h index d53ee5a..1589dfb 100644 --- a/xtoskrnl/includes/kepfuncs.h +++ b/xtoskrnl/includes/kepfuncs.h @@ -10,30 +10,7 @@ #define __XTOSKRNL_KEPFUNCS_H #include +#include ARCH_HEADER(kepfuncs.h) -XTAPI -PKPROCESSOR_BLOCK -KeGetCurrentProcessorBlock(VOID); - -XTAPI -PKPROCESSOR_CONTROL_BLOCK -KeGetCurrentProcessorControlBlock(VOID); - -XTAPI -PKTHREAD -KeGetCurrentThread(VOID); - -XTAPI -VOID -KepArchInitialize(VOID); - -XTAPI -VOID -KepStartKernel(VOID); - -XTAPI -VOID -KepSwitchBootStack(IN ULONG_PTR Stack); - #endif /* __XTOSKRNL_KEPFUNCS_H */