refactor: reorganize files (wip)
This commit is contained in:
		
							parent
							
								
									4d5bbe3003
								
							
						
					
					
						commit
						ea2f09a44d
					
				
					 10 changed files with 71 additions and 112 deletions
				
			
		|  | @ -1,21 +1,6 @@ | |||
| 	;; File: bootinfo.inc | ||||
| 
 | ||||
| 	;; Struct: BootInfoRange | ||||
| struc BootInfoRange { | ||||
| 	.base dd ? | ||||
| 	.legth dd ? | ||||
| } | ||||
| 
 | ||||
| 	;; Struct: BootInfo | ||||
| 	;; | ||||
| 	;; StupidOS boot protocol structure | ||||
| struc BootInfo { | ||||
| 	.mmap         dd 4*2*20 dup(0) | ||||
| 	.kernel_start dd ? | ||||
| 	.kernel_size  dd ? | ||||
| } | ||||
| 
 | ||||
| 	;; Section: Globals | ||||
| 	include '../../kernel/sys/bootinfo.inc' | ||||
| 
 | ||||
| 	;; Constant: BOOTINFO_MEMORY_LIMIT | ||||
| BOOTINFO_MEMORY_LIMIT = 0xFFFFF000 | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ TARGET = stpdldr.sys | |||
| LOADER_SRCS	= loader.asm \
 | ||||
| 				../common/const.inc \
 | ||||
| 				../common/bootinfo.inc \
 | ||||
| 				../../kernel/sys/bootinfo.inc \
 | ||||
| 				../../kernel/sys/register.inc \
 | ||||
| 				video.inc \
 | ||||
| 				memory.inc \
 | ||||
| 				logger.inc \
 | ||||
|  |  | |||
|  | @ -111,7 +111,7 @@ _start: | |||
| 
 | ||||
| 	; enable protected mode | ||||
| 	mov eax, cr0 | ||||
| 	or al, 1 | ||||
| 	or al, CR0_PE | ||||
| 	mov cr0, eax | ||||
| 
 | ||||
| 	; reload ds, es, fs, gs, ss | ||||
|  | @ -147,6 +147,7 @@ _start: | |||
| 	include 'video.inc' | ||||
| 	include 'gdt.inc' | ||||
| 	include '../common/bootinfo.inc' | ||||
| 	include '../../kernel/sys/register.inc' | ||||
| 
 | ||||
| uDrive    rb 1 | ||||
| bDriveLBA db FALSE | ||||
|  | @ -237,7 +238,7 @@ common32: | |||
| 	mov cr3, eax | ||||
| 
 | ||||
| 	mov eax, cr0 | ||||
| 	or eax, 0x80010000 | ||||
| 	or eax, CR0_PG or CR0_WP | ||||
| 	mov cr0, eax | ||||
| 
 | ||||
| 	mov eax, STPDBOOT_MAGIC | ||||
|  |  | |||
|  | @ -1,3 +1,5 @@ | |||
| 	;; File: video.inc | ||||
| 
 | ||||
| struc VesaInfo | ||||
| { | ||||
| 	.Signature             dd 'VBE2' | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ Timestamp: Updated yyyy/mm/dd | |||
| # These are indexes you deleted, so Natural Docs will not add them again | ||||
| # unless you remove them from this line. | ||||
| 
 | ||||
| Don't Index: Classes, Macros, Variables | ||||
| Don't Index: Macros, Classes, Variables | ||||
| 
 | ||||
| 
 | ||||
| # -------------------------------------------------------------------------- | ||||
|  | @ -66,7 +66,7 @@ Group: BootLoader  { | |||
|       File: loader.asm  (boot/loader/loader.asm) | ||||
|       File: logger.inc  (boot/loader/logger.inc) | ||||
|       File: memory.inc  (boot/loader/memory.inc) | ||||
|       File: video_setup  (boot/loader/video.inc) | ||||
|       File: video.inc  (boot/loader/video.inc) | ||||
|       }  # Group: Loader | ||||
| 
 | ||||
|    Group: Common  { | ||||
|  | @ -88,11 +88,22 @@ Group: BootLoader  { | |||
| 
 | ||||
| Group: Kernel  { | ||||
| 
 | ||||
|    File: bootinfo.inc  (kernel/bootinfo.inc) | ||||
|    File: Introduction  (kernel/intro.txt) | ||||
|    File: kernel.asm  (kernel/kernel.asm) | ||||
|    File: klog  (kernel/klog.inc) | ||||
|    File: vga_console_clear  (kernel/dev/vga_console.inc) | ||||
|    File: klog.inc  (kernel/klog.inc) | ||||
| 
 | ||||
|    Group: Devices  { | ||||
| 
 | ||||
|       File: IBM PC/AT  (kernel/dev/at/intro.txt) | ||||
|       File: vga_console.inc  (kernel/dev/vga_console.inc) | ||||
|       }  # Group: Devices | ||||
| 
 | ||||
|    Group: System Includes  { | ||||
| 
 | ||||
|       File: bootinfo.inc  (kernel/sys/bootinfo.inc) | ||||
|       File: mmu.inc  (kernel/sys/mmu.inc) | ||||
|       File: registers.inc  (kernel/sys/register.inc) | ||||
|       }  # Group: System Includes | ||||
| 
 | ||||
|    Group: Memory Manager  { | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,10 +0,0 @@ | |||
| #ifndef ECHFS_H | ||||
| # define ECHFS_H 1 | ||||
| 
 | ||||
| typedef struct { | ||||
| 	uint8_t jmp[4]; | ||||
| 	uint8_t signature[8]; | ||||
| 
 | ||||
| } EchFSIdentityTable; | ||||
| 
 | ||||
| #endif /* !ECHFS_H */ | ||||
|  | @ -60,7 +60,7 @@ kmain: | |||
| 	call klog | ||||
| 	jmp .halt | ||||
| 
 | ||||
| 	include 'bootinfo.inc' | ||||
| 	include 'sys/bootinfo.inc' | ||||
| 	include 'klog.inc' | ||||
| 	include 'dev/vga_console.inc' | ||||
| 	include 'mm/mm.inc' | ||||
|  |  | |||
|  | @ -1,3 +1,6 @@ | |||
| 	;; File: klog.inc | ||||
| 	;; Kernel logging utilities | ||||
| 
 | ||||
| CMOS_ADDRESS = 0x70 | ||||
| CMOS_DATA    = 0x71 | ||||
| 
 | ||||
|  | @ -7,6 +10,10 @@ CMOS_REG_HOUR   = 0x04 | |||
| 
 | ||||
| COM1 = 0x3F8 | ||||
| 
 | ||||
| 	;; Function: klog_print | ||||
| 	;; | ||||
| 	;; In: | ||||
| 	;;    ESI - Null-terminated string to print | ||||
| klog_print: | ||||
| 	mov dx, COM1 | ||||
| @@: | ||||
|  | @ -18,7 +25,9 @@ klog_print: | |||
| @@: | ||||
| 	ret | ||||
| 
 | ||||
| klog_print_date: | ||||
| 	;; Function: klog_print_time | ||||
| 	;; | ||||
| klog_print_time: | ||||
| @@: | ||||
| 	mov al, 0x0A | ||||
| 	out CMOS_ADDRESS, al | ||||
|  | @ -114,7 +123,7 @@ klog_print_hex: | |||
| 	;; Function: klog | ||||
| 	;; Output kernel log | ||||
| klog: | ||||
| 	call klog_print_date | ||||
| 	call klog_print_time | ||||
| 
 | ||||
| .loop: | ||||
| 	mov al, [esi] | ||||
|  |  | |||
|  | @ -17,23 +17,23 @@ | |||
| 	;; CR0_NW - Not-write through | ||||
| 	;; CR0_CD - Cache disable | ||||
| 	;; CR0_PG - Paging | ||||
| CR0_PE equ 1 << 0 | ||||
| CR0_MP equ 1 << 1 | ||||
| CR0_EM equ 1 << 2 | ||||
| CR0_TS equ 1 << 3 | ||||
| CR0_ET equ 1 << 4 | ||||
| CR0_NE equ 1 << 5 | ||||
| CR0_WP equ 1 << 16 | ||||
| CR0_AM equ 1 << 18 | ||||
| CR0_NW equ 1 << 29 | ||||
| CR0_CD equ 1 << 30 | ||||
| CR0_PG equ 1 << 31 | ||||
| CR0_PE = 0x00000001 | ||||
| CR0_MP = 0x00000002 | ||||
| CR0_EM = 0x00000004 | ||||
| CR0_TS = 0x00000008 | ||||
| CR0_ET = 0x00000010 | ||||
| CR0_NE = 0x00000020 | ||||
| CR0_WP = 0x00010000 | ||||
| CR0_AM = 0x00040000 | ||||
| CR0_NW = 0x20000000 | ||||
| CR0_CD = 0x40000000 | ||||
| CR0_PG = 0x80000000 | ||||
| 
 | ||||
| 	;; Defines: CR3 | ||||
| 	;; CR3_PWT - Page-level Write-Through | ||||
| 	;; CR3_PCD - Page-level Cache Disable | ||||
| CR3_PWT equ 1 << 3 | ||||
| CR3_PCD equ 1 << 4 | ||||
| CR3_PWT = 0x08 | ||||
| CR3_PCD = 0x10 | ||||
| 
 | ||||
| 	;; Defines: CR4 | ||||
| 	;; CR4_VME        - Virtual 8086 Mode Extensions | ||||
|  | @ -60,67 +60,26 @@ CR3_PCD equ 1 << 4 | |||
| 	;; CR4_PKE        - Protection Key Enable | ||||
| 	;; CR4_CET        - Control-flow Enforcement Technology | ||||
| 	;; CR4_PKS        - Enable Protection Keys for Supervisor-Mode Pages | ||||
| CR4_VME        equ 1 << 0 | ||||
| CR4_PVI        equ 1 << 1 | ||||
| CR4_TSD        equ 1 << 2 | ||||
| CR4_DE         equ 1 << 3 | ||||
| CR4_PSE        equ 1 << 4 | ||||
| CR4_PAE        equ 1 << 5 | ||||
| CR4_MCE        equ 1 << 6 | ||||
| CR4_PGE        equ 1 << 7 | ||||
| CR4_PCE        equ 1 << 8 | ||||
| CR4_OSDXSR     equ 1 << 9 | ||||
| CR4_OSXMMEXCPT equ 1 << 10 | ||||
| CR4_UMIP       equ 1 << 11 | ||||
| CR4_VMXE       equ 1 << 13 | ||||
| CR4_SMXE       equ 1 << 14 | ||||
| CR4_FSGSBASE   equ 1 << 16 | ||||
| CR4_PCIDE      equ 1 << 17 | ||||
| CR4_OSXSAVE    equ 1 << 18 | ||||
| CR4_SMEP       equ 1 << 20 | ||||
| CR4_SMAP       equ 1 << 21 | ||||
| CR4_PKE        equ 1 << 22 | ||||
| CR4_CET        equ 1 << 23 | ||||
| CR4_PKS        equ 1 << 24 | ||||
| CR4_VME        = 0x0000001 | ||||
| CR4_PVI        = 0x0000002 | ||||
| CR4_TSD        = 0x0000004 | ||||
| CR4_DE         = 0x0000008 | ||||
| CR4_PSE        = 0x0000010 | ||||
| CR4_PAE        = 0x0000020 | ||||
| CR4_MCE        = 0x0000040 | ||||
| CR4_PGE        = 0x0000080 | ||||
| CR4_PCE        = 0x0000100 | ||||
| CR4_OSDXSR     = 0x0000200 | ||||
| CR4_OSXMMEXCPT = 0x0000400 | ||||
| CR4_UMIP       = 0x0000800 | ||||
| CR4_VMXE       = 0x0002000 | ||||
| CR4_SMXE       = 0x0004000 | ||||
| CR4_FSGSBASE   = 0x0010000 | ||||
| CR4_PCIDE      = 0x0020000 | ||||
| CR4_OSXSAVE    = 0x0040000 | ||||
| CR4_SMEP       = 0x0100000 | ||||
| CR4_SMAP       = 0x0200000 | ||||
| CR4_PKE        = 0x0400000 | ||||
| CR4_CET        = 0x0800000 | ||||
| CR4_PKS        = 0x1000000 | ||||
| 
 | ||||
| 	;; ========================================================================= | ||||
| 	;; eflags | ||||
| 	;; ========================================================================= | ||||
| 
 | ||||
| 	;; Defines: EFLAGS | ||||
| 	;; EFLAGS_CF    - Carry flag | ||||
| 	;; EFLAGS_PF    - Parity flag | ||||
| 	;; EFLAGS_AF    - Auxiliary flag | ||||
| 	;; EFLAGS_ZF    - Zero flag | ||||
| 	;; EFLAGS_SF    - Sign flag | ||||
| 	;; EFLAGS_TF    - Trap flag | ||||
| 	;; EFLAGS_IF    - Interrupt enable flag | ||||
| 	;; EFLAGS_DF    - Direction flag | ||||
| 	;; EFLAGS_OF    - Overflow flag | ||||
| 	;; EFLAGS_IOPL1 - I/O privilege flag | ||||
| 	;; EFLAGS_IOPL2 - I/O privilege flag | ||||
| 	;; EFLAGS_NT    - Nested task flag | ||||
| 	;; EFLAGS_RF    - Resume flag | ||||
| 	;; EFLAGS_VM    - Virtual 8086 mode flag | ||||
| 	;; EFLAGS_AC    - Alignment check | ||||
| 	;; EFLAGS_VIF   - Virtual Interrupt flag | ||||
| 	;; EFLAGS_VIP   - Virtual Interrupt pending | ||||
| 	;; EFLAGS_ID    - CPUID instruction available | ||||
| EFLAGS_CF    equ 1 << 0 | ||||
| EFLAGS_PF    equ 1 << 2 | ||||
| EFLAGS_AF    equ 1 << 4 | ||||
| EFLAGS_ZF    equ 1 << 6 | ||||
| EFLAGS_SF    equ 1 << 7 | ||||
| EFLAGS_TF    equ 1 << 8 | ||||
| EFLAGS_IF    equ 1 << 9 | ||||
| EFLAGS_DF    equ 1 << 10 | ||||
| EFLAGS_OF    equ 1 << 11 | ||||
| EFLAGS_IOPL1 equ 1 << 12 | ||||
| EFLAGS_IOPL2 equ 1 << 13 | ||||
| EFLAGS_NT    equ 1 << 14 | ||||
| EFLAGS_RF    equ 1 << 16 | ||||
| EFLAGS_VM    equ 1 << 17 | ||||
| EFLAGS_AC    equ 1 << 18 | ||||
| EFLAGS_VIF   equ 1 << 19 | ||||
| EFLAGS_VIP   equ 1 << 20 | ||||
| EFLAGS_ID    equ 1 << 21 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue