int puts(const char *s) { while(*s) { kput(*s++); } kput('\n'); return 0; }
u8int write(FILE* f_ptr, char* buff, u32int len) { int i; if(f_ptr->file_id == STDOUT) for(i = 0; i < len; i++) kput(buff[i]); return 0; }
void irq_32(struct Register_State rs) { // Send EOI if (rs.int_no >= 40) outb(0xA0, 0x20); outb(0x20, 0x20); // if (interrupt_handlers[rs.int_no] != 0) // { // isr_t handler = interrupt_handlers[rs.int_no]; // handler(rs); // } if (rs.err_code == 0) return; if (rs.err_code == 1) { uint8_t c = inb(0x60); if (c < 0x80) kput(kbdmap[c]); return; } kput(rs.err_code + '0'); kwrite("IRQ"); }
void interrupt_32(struct Register_State rs) { kwrite("Interrupt!"); kput(rs.int_no+'A'); }
void kprintf(char *c) { int i = 0; while(c[i]) { kput(c[i++]); } }