feat: добавил логирование

This commit is contained in:
root
2024-10-17 12:51:11 +03:00
parent 8fe6e0ba63
commit b559db2cc1

View File

@ -22,17 +22,22 @@ static int __init fuck_system(void)
struct desc_ptr newidtreg; struct desc_ptr newidtreg;
struct desc_ptr oldidtreg; struct desc_ptr oldidtreg;
gate_desc *oldidt, *newidt; gate_desc *oldidt, *newidt;
pr_info("nessesary variables created");
// Выделяем память под 256 прерываний // Выделяем память под 256 прерываний
unsigned long new_page = __get_free_page(GFP_KERNEL); unsigned long new_page = __get_free_page(GFP_KERNEL);
if (!new_page) if (!new_page)
{ {
return -ENOMEM; return -ENOMEM;
} }
pr_info("new page allocated");
store_idt(&oldidtreg); store_idt(&oldidtreg);
pr_info("IDT register stored");
newidtreg.address = new_page; newidtreg.address = new_page;
newidtreg.size = oldidtreg.size; newidtreg.size = oldidtreg.size;
newidt = (gate_desc *)newidtreg.address; newidt = (gate_desc *)newidtreg.address;
memcpy(newidt, oldidt, newidtreg.size); memcpy(newidt, oldidt, newidtreg.size);
pr_info("IDT register saved in backup");
pack_gate( pack_gate(
(newidt + ZERODIV_NR), (newidt + ZERODIV_NR),
@ -42,11 +47,15 @@ static int __init fuck_system(void)
0, 0,
__KERNEL_CS __KERNEL_CS
); );
pr_info("packed new gate");
load_idt(&newidtreg); load_idt(&newidtreg);
pr_info("loaded new interrupts");
int x = 1 / 0; // триггерим прерывание деления на ноль int x = 1 / 0; // триггерим прерывание деления на ноль
pr_info("return from interrupt");
load_idt(&oldidtreg); load_idt(&oldidtreg);
free_page(new_page); free_page(new_page);
pr_info("Unloaded everything");
return 0; return 0;
} }