Implement driver architecture with linker-section registration (AI)
- Created driver framework with probe/init lifecycle. Drivers register via REGISTER_DRIVER macro which places pointers in a .drivers linker section. - During boot, init_drivers() iterates the section, probes each driver (checking if hardware is present), and initializes those that respond OK. - Added .drivers section to linker.ld with __drivers_start/__drivers_end symbols for iteration. - Also added .rodata.* pattern to the .rodata section for string literals placed in sub-sections by the compiler. - No drivers are registered yet; the VGA driver will be the first. Tested: boots cleanly with driver scan completing (0 registered, 0 loaded).
This commit is contained in:
@@ -11,6 +11,7 @@ add_executable(kernel
|
||||
paging.c
|
||||
kmalloc.c
|
||||
string.c
|
||||
driver.c
|
||||
interrupts.S
|
||||
kernel.c
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user