( bzt | 2023. 07. 18., k – 17:35 )

> > teletűzdelve 100+ soros függvényekkel

> Szerinted melyik függvény az, ami nem egy jól definiált feladatot lát el, precízen definiált absztrakciós rétegként és jól meghatározott ki-bementi értékekkel? Nem kötözködök, tényleg érdekelne, szerinted melyik.

Ejnye, ez most tényleg zavar, hogy melyik függvény lehet az, amit szerinted szét kéne robbantani, Szerintem mindnek egyértelmű, jól definiált szerepe van.

gethex - hexa sztringet alakít int-é
getint - decimális sztringet alakít int-é
console_init - inicializálja a boot konzolt
console_putc - kirak egy betűt a konzolra
printf - kirak egy formázott sztringet a konzolra
pb_init - inicializálja a progrsszbárt
pb_draw - frissíti a progresszbart
pb_fini - bezárja a progresszbart
efi_gop - videómód állítása UEFI alatt és siker esetén a paraméterek visszaadása
efi_memmap - memóriatérkép lekérése UEFI alatt
efi_alloc - egy üres lap lefoglalása UEFI alatt
efi_open - fájl megnyitása UEFI alatt
efi_read - olvasás fájlból UEFI alatt
efi_close - fájl bezárása UEFI alatt
efi_systables - rendszerleíró táblák lekérdezése UEFI alatt
bios_loadsec - alacsony szintű szektor olvasás BIOS alatt
bios_vbe - videómód állítása BIOS alatt és siker esetén a paraméterek visszaadása
bios_e820 - memóriatérkép lekérése BIOS alatt
bios_alloc - egy üres lap lefoglalása BIOS alatt
bios_nextclu - következő kluszter lekérése a FAT-ból
bios_open - fájl megnyitása BIOS alatt
bios_read - olvasás fájlból BIOS alatt
bios_close - fájl bezárása BIOS alatt
bios_systables - rendszerleíró táblák lekérdezése BIOS alatt
fw_init - firmware inicializálása (implementációtól független API)
fw_bootsplash - logó kirakása
fw_open - fájl megnyitása (implementációtól független API)
fw_read - olvasás fájlból
fw_close - fájl bezárása
fw_loadconfig - konfiguráció bekérése
fw_loadmodules - modulok betöltése
fw_map - virtuális memória leképezése
fw_loadseg - egy teljes szegmens beolvasása fájlból (az fw_read-et hívja, és ha kell, akkor az fw_map-et)
fw_loadkernel - kernel beolvasása (detektálja a formátumot és az fw_loadseg-et hívja ciklusban)
fw_fini - firmware erőforrások felszabadítása, boot paraméterek véglegesítése
_start - fő függvény, belépési pont. A legnagyobb része egyetlen "switch(kernel_mode)", ami a különféle vezérlésátadást kezeli.

Tényleg érdekelne, hogy melyiket kéne szétrobbantani, mert túl sok mindent csinál. Nem látom, ezek közül melyik lehet az. (Nem gúnyolódok, tényleg kíváncsi vagyok, mert ha az erőforrások engedik, akkor szétszedném.)