From 355ca2e38e46f8b4a6652da0055006d7dcbc4532 Mon Sep 17 00:00:00 2001 From: hyperassembler Date: Wed, 24 Sep 2014 00:00:01 -0400 Subject: [PATCH] Refactoring started! --- OScript/type.h | 8 --- kalib/io32.asm | 23 ++++++++ kclib/KeDef.h | 59 ------------------- kclib/KeIO32.h | 4 +- kclib/MM/KeMemoryManager32.h | 5 -- kclib/header/io32.h | 9 +++ kclib/header/kdef32.h | 11 ++++ .../KeMemoryManager32.c => header/mem32.h} | 0 kclib/header/type32.h | 11 ++++ kclib/source/intr32.c | 0 kclib/source/io32.c | 0 kclib/source/mem32.c | 0 kclib/source/proc32.c | 0 13 files changed, 56 insertions(+), 74 deletions(-) delete mode 100644 OScript/type.h create mode 100644 kalib/io32.asm delete mode 100644 kclib/KeDef.h delete mode 100644 kclib/MM/KeMemoryManager32.h create mode 100644 kclib/header/io32.h create mode 100644 kclib/header/kdef32.h rename kclib/{MM/KeMemoryManager32.c => header/mem32.h} (100%) create mode 100644 kclib/header/type32.h create mode 100644 kclib/source/intr32.c create mode 100644 kclib/source/io32.c create mode 100644 kclib/source/mem32.c create mode 100644 kclib/source/proc32.c diff --git a/OScript/type.h b/OScript/type.h deleted file mode 100644 index 8943ba3..0000000 --- a/OScript/type.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _type_h_ -#define _type_h_ -typedef unsigned int UINT32, *PUINT32 -typedef unsigned short UINT16, *PUINT16 -typedef unsigned long UINT64, *PUINT64 -typedef unsigned char BYTE, *PBYTE -typedef BYTE CHAR, *PCHAR -#endif \ No newline at end of file diff --git a/kalib/io32.asm b/kalib/io32.asm new file mode 100644 index 0000000..959d781 --- /dev/null +++ b/kalib/io32.asm @@ -0,0 +1,23 @@ +global _HkWritePort32 ; void HkWritePort32(uint16 port ,uint16 data) +push ebp +mov ebp,esp +mov edx,[ ebp + 8 ] +mov eax,[ ebp + 12 ] +out dx,ax +nop +nop +mov esp,ebp +pop ebp +ret + +global _HkReadPort32 ; void HkWritePort32(uint16 port ,uint16 data) +push ebp +mov ebp,esp +mov edx,[ ebp + 8] +mov eax,[ ebp + 12] +in ax,dx +nop +nop +mov esp,ebp +pop ebp +ret diff --git a/kclib/KeDef.h b/kclib/KeDef.h deleted file mode 100644 index 6a84bb6..0000000 --- a/kclib/KeDef.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _KeDef_h_ -#define _KeDef_h_ -// calling conventions -#define HYPKERNELAPI _cdecl -#define _OPTIONAL_ -#define _IN_ -#define _OUT_ - -// null pointer -#define NULL ((void*)0) - -//Struct Naming: -//AAXXXXBB -//AA: Identifier -//BB: 32 or 64 bits -//XXXX: Name - -typedef unsigned int ULONG32,*PULONG32; -typedef unsigned int DWORD,*PDWORD; -typedef unsigned long long QWORD,*PQWORD; -typedef unsigned long long ULONG64,*PULONG64; -typedef unsigned char ULONG8,*PULONG8; -typedef unsigned char BYTE,*PBYTE; -typedef unsigned short ULONG16,*PULONG16; -typedef void VOID,*PVOID; -typedef char CHAR,*PCHAR; - -#define GDT_SELECTOR(Index,RPL) (((Index) << 3) + (RPL)) -#define GDT_SELECTOR_DUMMY GDT_SELECTOR(0,0) -#define GDT_SELECTOR_GRAPH GDT_SELECTOR(1,0) -#define GDT_SELECTOR_CODE GDT_SELECTOR(2,0) -#define GDT_SELECTOR_DATA GDT_SELECTOR(3,0) -#define GDT_SELECTOR_USER_DATA GDT_SELECTOR(4,3) -#define GDT_SELECTOR_USER_CODE GDT_SELECTOR(5,3) -#define GDT_SELECTOR_LDT GDT_SELECTOR(6,0) -#define GDT_SELECTOR_TSS GDT_SELECTOR(7,0) - -#define GDT_INDEX_DUMMY 0 -#define GDT_INDEX_GRAPH 1 -#define GDT_INDEX_CODE 2 -#define GDT_INDEX_DATA 3 -#define GDT_INDEX_USER_CODE 4 -#define GDT_INDEX_USER_DATA 5 -#define GDT_INDEX_LDT 6 -#define GDT_INDEX_TSS 7 - -#define KeKernelPhysicalAddress 0x30000 -#define KeLoaderPhysicalAddress 0x90000 -#define KeBootPhysicalAddress 0x07c00 -#define KePDEBase 0x100000 -#define KePTEBase 0x101000 - - -#define GDT_DESCRIPTOR_NUMBER 128 -#define IDT_GATE_NUMBER 256 -#define MAXIMUM_PROCESS_NUMBER 1 -#define PROCESS_STACK_MAX_SIZE 1024 - -#endif diff --git a/kclib/KeIO32.h b/kclib/KeIO32.h index 9cd57e1..bb5b0ef 100644 --- a/kclib/KeIO32.h +++ b/kclib/KeIO32.h @@ -1,7 +1,7 @@ #ifndef _KeIO32_h_ #define _KeIO32_h_ -#include "KeDef.h" +#include "hkdef32.h" #include "KeGlobalVariables.h" #include "KeCPUStruct32.h" #include "KeKernelStruct32.h" @@ -12,7 +12,7 @@ typedef VOID (*PExceptionHandler)(VOID); -VOID HYPKERNELAPI _asm_KeWritePort(_IN_ ULONG16 Port, _IN_ ULONG8 Value); +void HKA32 _asm_KeWritePort(_IN_ ULONG16 Port, _IN_ ULONG8 Value); ULONG8 HYPKERNELAPI _asm_KeReadPort(_IN_ ULONG16 Port); VOID HYPKERNELAPI _asm_KeLoadIDT(VOID); VOID HYPKERNELAPI KeInit8259A(VOID); diff --git a/kclib/MM/KeMemoryManager32.h b/kclib/MM/KeMemoryManager32.h deleted file mode 100644 index 484cf6e..0000000 --- a/kclib/MM/KeMemoryManager32.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef _KeMemoryManager32_h_ -#define _KeMemoryManager32_h_ - - -#endif \ No newline at end of file diff --git a/kclib/header/io32.h b/kclib/header/io32.h new file mode 100644 index 0000000..889c3a2 --- /dev/null +++ b/kclib/header/io32.h @@ -0,0 +1,9 @@ +#ifndef _IO32_H_ +#define _IO32_H_ + +#include "type32.h" + +extern void HkWritePort(uint16 port, uint16 data); +extern void HkReadPort(uint16 port, uint16 data); + +#endif \ No newline at end of file diff --git a/kclib/header/kdef32.h b/kclib/header/kdef32.h new file mode 100644 index 0000000..1b1d0b9 --- /dev/null +++ b/kclib/header/kdef32.h @@ -0,0 +1,11 @@ +#ifndef _HKDEF32_H_ +#define _HKDEF32_H_ + +#define HKA32 _cdecl + +#define NULL ((void*)0) + +#define GDT_SELECTOR(Index,RPL) (((Index) << 3) + (RPL)) + +#define HKernelAddress (0x01000000) +#endif diff --git a/kclib/MM/KeMemoryManager32.c b/kclib/header/mem32.h similarity index 100% rename from kclib/MM/KeMemoryManager32.c rename to kclib/header/mem32.h diff --git a/kclib/header/type32.h b/kclib/header/type32.h new file mode 100644 index 0000000..59bc4cc --- /dev/null +++ b/kclib/header/type32.h @@ -0,0 +1,11 @@ +#ifndef _TYPE_H_ +#define _TYPE_H_ +typedef unsigned int uint32; +typedef unsigned short uint16; +typedef unsigned long long uint64; +typedef unsigned char uint8; +typedef int int32; +typedef short int16; +typedef long long int64; +typedef char int8; +#endif \ No newline at end of file diff --git a/kclib/source/intr32.c b/kclib/source/intr32.c new file mode 100644 index 0000000..e69de29 diff --git a/kclib/source/io32.c b/kclib/source/io32.c new file mode 100644 index 0000000..e69de29 diff --git a/kclib/source/mem32.c b/kclib/source/mem32.c new file mode 100644 index 0000000..e69de29 diff --git a/kclib/source/proc32.c b/kclib/source/proc32.c new file mode 100644 index 0000000..e69de29