Also gut habe mal mit "outb(0x20, 0x02);" den Tastaturinterrupt maskiert, bekomme jedoch weiterhin einen Tastaturinterrupt, und sonst nichts anderes.
Hier mal mein Interrupthandler:
struct cpu_state* handle_interrupt(struct cpu_state* cpu)
{
struct cpu_state* new_cpu = cpu;
if (cpu->intr <= 0x1f) {
// kprintf("Exception %d, Kernel angehalten!\n", cpu->intr);
kputs("Exception: ");
kputn(cpu->intr, 10);
kputs("\n Fehlercode: ");
kputn(cpu->error, 16);
debug(cpu, 1, "EXCEPTION:");
kputs("\n Kernel angehalten! \n");
while(1) {
// Prozessor anhalten
asm volatile("cli; hlt");
}
} else {
// Hier den Hardwareinterrupt behandeln
// kputs("Hardwareinterrupt");
if (cpu->intr >= 0x20 && cpu->intr <= 0x2f) {
if (cpu->intr == 0x20) {
new_cpu = schedule(cpu);
set_tss_entry(1, (unsigned long) (new_cpu + 1));
}
if (cpu->intr == 0x21) {
debug(cpu, 1, "Tastaturinterrupt:");
}
if (cpu->intr >= 0x28) {
outb(0xa0, 0x20); // End of Interrupt: Slave PIC
}
outb(0x20, 0x20); // End of Interrupt: Master PIC
}
if (cpu->intr == 0x30) {
new_cpu = syscall(cpu);
}
}
return new_cpu;
}
Danke schonmal für den Tipp mit dem PIC^^