Updated: October 28, 2024 |
In addition to the debug kernel callouts, the startup code must provide some functions that enable it to output the debug information.
These functions don't need to be position-independent, so they can be written in C. Both the startup debug functions and the kernel debug callouts are specified in a structure that is often set up in the startup code’s main() function. For example:
const struct debug_device debug_devices[] = { { "console", { "", NULL }, init_vga, put_vga, { &display_char_vga, &poll_key_pckbd, } }, { "8250", { "0x3f8^0.57600.1843200.16", "0x2f8^0.57600.1843200.16" }, init_8250, put_8250, { &display_char_8250, &poll_key_8250, &break_detect_8250, } }, };