printf("foo");
// calls
raw_print("foo", 3);
// calls
write(stdout, "foo", 3);
// calls
syscall3(SYS_WRITE, stdout, "foo", 3);
// runs USER MODE
interrupt 0x80 // ---------
// calls KERNEL MODE
isr_syscall(...registers)
// calls
c_interrupt_shim(...registers)
// calls
syscall_handler(...registers)
// calls
do_syscall(SYS_WRITE, stdout, "foo", 3);
// calls
sys_write(stdout, "foo", 3);
// calls
stdout_write("foo", 3);
// calls
printf("%c", 'f'); // and then ... printf("%c", 'o'); printf("%c", 'o');
// calls
raw_print("f", 1);
// calls
vga_write("f", 1);
// calls
vga_pack_char('f', COLOR_LIGHT_GREY, COLOR_BLACK);
// and puts it at
vga_curser_offset();
Comments