Compare commits

..

2 Commits

Author SHA1 Message Date
Eric-Paul Ickhorn 0d16e3e35a
Make driver initialization easier in manager.asm
With this change, the driver's setup function only has to be added
to the 'driver_init_functions'-array and it will be called once
'setup_drivers' is called.
2024-07-24 00:14:55 +02:00
Eric-Paul Ickhorn 6e8e022937
Make stage 2 entry (after GDT) call driver setup
The driver setup, which in turn calls all the drivers' setup functions
wasn't being called until now. Now, it is included and being called.

The test text which was used to test some display functions in older
revisions is also gone now.
2024-07-23 23:57:58 +02:00
2 changed files with 39 additions and 8 deletions

View File

@ -26,13 +26,41 @@ setup_drivers:
mov [esi + (64 - 16)], edx
mov [esi + (64 - 20)], edi
; [esi + 8]: Pointer to the current driver init function
; [esi + 12]L Pointer to current driver slot
; ecx: Driver slot index
xor ecx, ecx
.driver_setup_loop:
cmp ecx, DRIVER_SLOT_COUNT
jae .epilog
mov ebx, ecx
shl ebx, 2
add ebx, driver_init_functions
mov eax, [ebx]
mov [esi + 8], eax
cmp eax, 0
je .epilog
mov eax, ecx
mov edx, DRIVER_SLOT_SIZE
mul edx
mov [esi + 12], eax
push ebp
mov ebp, esp
push dword DRIVER_MEMORY_AREA
call initialize_pci_driver
push dword [esi + 12]
mov eax, [esi + 8]
call eax
mov esp, ebp
pop ebp
inc ecx
jmp .driver_setup_loop
.epilog:
mov eax, [esi + (64 - 4)]
mov ebx, [esi + (64 - 8)]
@ -45,3 +73,4 @@ setup_drivers:
ret
%include "drivers/pci/driver.asm"
%include "drivers/acpi/driver.asm"

View File

@ -46,9 +46,6 @@ stage_2_setup_entry:
cli
hlt
some_text:
db "This is some text.", 0x00
; Utilities
; Memory Management
%include "memory/a20.asm"
@ -58,13 +55,18 @@ some_text:
bits 32
stage2_true_entry:
mov [dword 0xb8000], byte 'X'
mov [dword 0xb8000 + 1], byte 0x31
push ebp
mov ebp, esp
call setup_drivers
mov esp, ebp
pop ebp
cli
hlt
%include "utility/math.asm"
%include "utility/memory.asm"
%include "utility/display.asm"
; Driver Manager
; %include "drivers/manager.asm"
%include "drivers/manager.asm"