From 03035c98b4ba3297b837e96080e78e0aac1e86db Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Mon, 31 Jan 2022 11:16:38 +0100 Subject: Promene --- include/04.idt/deo1 | 3 -- include/04.idt/deo10 | 4 -- include/04.idt/deo11 | 14 ------- include/04.idt/deo12 | 37 ----------------- include/04.idt/deo13 | 2 - include/04.idt/deo14 | 2 - include/04.idt/deo2 | 1 - include/04.idt/deo3 | 2 - include/04.idt/deo4 | 4 -- include/04.idt/deo5 | 8 ---- include/04.idt/deo6 | 5 --- include/04.idt/deo7 | 2 - include/04.idt/deo8 | 2 - include/04.idt/deo9 | 8 ---- include/04.idt/idt.c | 108 -------------------------------------------------- include/04.idt/idt.h | 37 +++++++++++++++++ include/04.idt/idt1.h | 2 + include/04.idt/idt2.h | 1 + include/04.idt/idt3.h | 1 + include/04.idt/idt4.h | 2 + include/04.idt/idt5.h | 4 ++ include/04.idt/idt6.h | 8 ++++ include/04.idt/idt7.h | 5 +++ include/04.idt/idt8.h | 5 +++ include/04.idt/idt9.h | 1 + 25 files changed, 66 insertions(+), 202 deletions(-) delete mode 100644 include/04.idt/deo1 delete mode 100644 include/04.idt/deo10 delete mode 100644 include/04.idt/deo11 delete mode 100644 include/04.idt/deo12 delete mode 100644 include/04.idt/deo13 delete mode 100644 include/04.idt/deo14 delete mode 100644 include/04.idt/deo2 delete mode 100644 include/04.idt/deo3 delete mode 100644 include/04.idt/deo4 delete mode 100644 include/04.idt/deo5 delete mode 100644 include/04.idt/deo6 delete mode 100644 include/04.idt/deo7 delete mode 100644 include/04.idt/deo8 delete mode 100644 include/04.idt/deo9 delete mode 100644 include/04.idt/idt.c create mode 100644 include/04.idt/idt.h create mode 100644 include/04.idt/idt1.h create mode 100644 include/04.idt/idt2.h create mode 100644 include/04.idt/idt3.h create mode 100644 include/04.idt/idt4.h create mode 100644 include/04.idt/idt5.h create mode 100644 include/04.idt/idt6.h create mode 100644 include/04.idt/idt7.h create mode 100644 include/04.idt/idt8.h create mode 100644 include/04.idt/idt9.h (limited to 'include/04.idt') diff --git a/include/04.idt/deo1 b/include/04.idt/deo1 deleted file mode 100644 index 7c174c9..0000000 --- a/include/04.idt/deo1 +++ /dev/null @@ -1,3 +0,0 @@ -#include -#include -#include diff --git a/include/04.idt/deo10 b/include/04.idt/deo10 deleted file mode 100644 index 409dd15..0000000 --- a/include/04.idt/deo10 +++ /dev/null @@ -1,4 +0,0 @@ -void add_idt_entry(size_t num,uint32_t offset) -{ - init_idt_entry(num,offset,KERNEL_CODE,INTERRUPT_GATE_32); -} diff --git a/include/04.idt/deo11 b/include/04.idt/deo11 deleted file mode 100644 index 055e22a..0000000 --- a/include/04.idt/deo11 +++ /dev/null @@ -1,14 +0,0 @@ -void init_pic() -{ - ioport_out(PIC1_COMMAND_PORT, 0x11); - ioport_out(PIC2_COMMAND_PORT, 0x11); - ioport_out(PIC1_DATA_PORT, 0x20); - ioport_out(PIC2_DATA_PORT, 0x28); - ioport_out(PIC1_DATA_PORT, 0x04); - ioport_out(PIC2_DATA_PORT, 0x02); - ioport_out(PIC1_DATA_PORT, 0x01); - ioport_out(PIC2_DATA_PORT, 0x01); - ioport_out(PIC1_DATA_PORT, 0xff); - ioport_out(PIC2_DATA_PORT, 0xff); - ioport_out(PIC1_DATA_PORT, 0xFC); -} diff --git a/include/04.idt/deo12 b/include/04.idt/deo12 deleted file mode 100644 index ea57b35..0000000 --- a/include/04.idt/deo12 +++ /dev/null @@ -1,37 +0,0 @@ -void init_idt_table() -{ - init_pic(); - add_idt_entry(0,(uint32_t)irq0); - add_idt_entry(1,(uint32_t)irq1); - add_idt_entry(2,(uint32_t)irq2); - add_idt_entry(3,(uint32_t)irq3); - add_idt_entry(4,(uint32_t)irq4); - add_idt_entry(5,(uint32_t)irq5); - add_idt_entry(6,(uint32_t)irq6); - add_idt_entry(7,(uint32_t)irq7); - add_idt_entry(8,(uint32_t)irq8); - add_idt_entry(9,(uint32_t)irq9); - add_idt_entry(10,(uint32_t)irq10); - add_idt_entry(11,(uint32_t)irq11); - add_idt_entry(12,(uint32_t)irq12); - add_idt_entry(13,(uint32_t)irq13); - add_idt_entry(14,(uint32_t)irq14); - add_idt_entry(15,(uint32_t)irq15); - add_idt_entry(16,(uint32_t)irq16); - add_idt_entry(17,(uint32_t)irq17); - add_idt_entry(18,(uint32_t)irq18); - add_idt_entry(19,(uint32_t)irq19); - add_idt_entry(20,(uint32_t)irq20); - add_idt_entry(21,(uint32_t)irq21); - add_idt_entry(22,(uint32_t)irq22); - add_idt_entry(23,(uint32_t)irq23); - add_idt_entry(24,(uint32_t)irq24); - add_idt_entry(25,(uint32_t)irq25); - add_idt_entry(26,(uint32_t)irq26); - add_idt_entry(27,(uint32_t)irq27); - add_idt_entry(28,(uint32_t)irq28); - add_idt_entry(29,(uint32_t)irq29); - add_idt_entry(30,(uint32_t)irq30); - add_idt_entry(31,(uint32_t)irq31); - add_idt_entry(32,(uint32_t)timer_irq); - add_idt_entry(33,(uint32_t)keyboard_irq); diff --git a/include/04.idt/deo13 b/include/04.idt/deo13 deleted file mode 100644 index 427144b..0000000 --- a/include/04.idt/deo13 +++ /dev/null @@ -1,2 +0,0 @@ - idtp.size=sizeof(struct idt_entry)*256-1; - idtp.offset=(uint32_t)&idt; diff --git a/include/04.idt/deo14 b/include/04.idt/deo14 deleted file mode 100644 index 8442fdc..0000000 --- a/include/04.idt/deo14 +++ /dev/null @@ -1,2 +0,0 @@ - load_idt(&idtp); -} diff --git a/include/04.idt/deo2 b/include/04.idt/deo2 deleted file mode 100644 index afb8506..0000000 --- a/include/04.idt/deo2 +++ /dev/null @@ -1 +0,0 @@ -#define INTERRUPT_GATE_32 0x8E diff --git a/include/04.idt/deo3 b/include/04.idt/deo3 deleted file mode 100644 index c564d8a..0000000 --- a/include/04.idt/deo3 +++ /dev/null @@ -1,2 +0,0 @@ -#define KERNEL_CODE 0x08 -#define KERNEL_DATA 0x10 diff --git a/include/04.idt/deo4 b/include/04.idt/deo4 deleted file mode 100644 index ca70fa7..0000000 --- a/include/04.idt/deo4 +++ /dev/null @@ -1,4 +0,0 @@ -#define PIC1_COMMAND_PORT 0x20 -#define PIC1_DATA_PORT 0x21 -#define PIC2_COMMAND_PORT 0xA0 -#define PIC2_DATA_PORT 0xA1 diff --git a/include/04.idt/deo5 b/include/04.idt/deo5 deleted file mode 100644 index dcab25c..0000000 --- a/include/04.idt/deo5 +++ /dev/null @@ -1,8 +0,0 @@ -struct idt_entry -{ - uint16_t offset1; - uint16_t selector; - uint8_t zero; - uint8_t type_attr; - uint16_t offset2; -} __attribute__((packed)); diff --git a/include/04.idt/deo6 b/include/04.idt/deo6 deleted file mode 100644 index fe1bff5..0000000 --- a/include/04.idt/deo6 +++ /dev/null @@ -1,5 +0,0 @@ -struct idt_pointer -{ - uint16_t size; - uint32_t offset; -} __attribute__((packed)); diff --git a/include/04.idt/deo7 b/include/04.idt/deo7 deleted file mode 100644 index ffa0e82..0000000 --- a/include/04.idt/deo7 +++ /dev/null @@ -1,2 +0,0 @@ -extern void load_idt(struct idt_pointer *idtp); -extern void keyboard_irq(); diff --git a/include/04.idt/deo8 b/include/04.idt/deo8 deleted file mode 100644 index 28b2298..0000000 --- a/include/04.idt/deo8 +++ /dev/null @@ -1,2 +0,0 @@ -struct idt_entry idt[256]; -struct idt_pointer idtp; diff --git a/include/04.idt/deo9 b/include/04.idt/deo9 deleted file mode 100644 index d11c19e..0000000 --- a/include/04.idt/deo9 +++ /dev/null @@ -1,8 +0,0 @@ -void init_idt_entry(size_t num, uint32_t offset, uint16_t selector, uint8_t type_attr) -{ - idt[num].offset1=(offset & 0xffff); - idt[num].selector=selector; - idt[num].zero=0; - idt[num].type_attr=type_attr; - idt[num].offset2=(offset & 0xffff0000)>>16; -} diff --git a/include/04.idt/idt.c b/include/04.idt/idt.c deleted file mode 100644 index 843c9da..0000000 --- a/include/04.idt/idt.c +++ /dev/null @@ -1,108 +0,0 @@ -#include -#include -#include - -#define INTERRUPT_GATE_32 0x8E - -#define KERNEL_CODE 0x08 -#define KERNEL_DATA 0x10 - -#define PIC1_COMMAND_PORT 0x20 -#define PIC1_DATA_PORT 0x21 -#define PIC2_COMMAND_PORT 0xA0 -#define PIC2_DATA_PORT 0xA1 - -struct idt_entry -{ - uint16_t offset1; - uint16_t selector; - uint8_t zero; - uint8_t type_attr; - uint16_t offset2; -} __attribute__((packed)); - -struct idt_pointer -{ - uint16_t size; - uint32_t offset; -} __attribute__((packed)); - - -extern void load_idt(struct idt_pointer *idtp); -extern void keyboard_irq(); - -struct idt_entry idt[256]; -struct idt_pointer idtp; - -void init_idt_entry(size_t num, uint32_t offset, uint16_t selector, uint8_t type_attr) -{ - idt[num].offset1=(offset & 0xffff); - idt[num].selector=selector; - idt[num].zero=0; - idt[num].type_attr=type_attr; - idt[num].offset2=(offset & 0xffff0000)>>16; -} - -void add_idt_entry(size_t num,uint32_t offset) -{ - init_idt_entry(num,offset,KERNEL_CODE,INTERRUPT_GATE_32); -} - -void init_pic() -{ - ioport_out(PIC1_COMMAND_PORT, 0x11); - ioport_out(PIC2_COMMAND_PORT, 0x11); - ioport_out(PIC1_DATA_PORT, 0x20); - ioport_out(PIC2_DATA_PORT, 0x28); - ioport_out(PIC1_DATA_PORT, 0x04); - ioport_out(PIC2_DATA_PORT, 0x02); - ioport_out(PIC1_DATA_PORT, 0x01); - ioport_out(PIC2_DATA_PORT, 0x01); - ioport_out(PIC1_DATA_PORT, 0xff); - ioport_out(PIC2_DATA_PORT, 0xff); - ioport_out(PIC1_DATA_PORT, 0xFC); -} - -void init_idt_table() -{ - init_pic(); - add_idt_entry(0,(uint32_t)irq0); - add_idt_entry(1,(uint32_t)irq1); - add_idt_entry(2,(uint32_t)irq2); - add_idt_entry(3,(uint32_t)irq3); - add_idt_entry(4,(uint32_t)irq4); - add_idt_entry(5,(uint32_t)irq5); - add_idt_entry(6,(uint32_t)irq6); - add_idt_entry(7,(uint32_t)irq7); - add_idt_entry(8,(uint32_t)irq8); - add_idt_entry(9,(uint32_t)irq9); - add_idt_entry(10,(uint32_t)irq10); - add_idt_entry(11,(uint32_t)irq11); - add_idt_entry(12,(uint32_t)irq12); - add_idt_entry(13,(uint32_t)irq13); - add_idt_entry(14,(uint32_t)irq14); - add_idt_entry(15,(uint32_t)irq15); - add_idt_entry(16,(uint32_t)irq16); - add_idt_entry(17,(uint32_t)irq17); - add_idt_entry(18,(uint32_t)irq18); - add_idt_entry(19,(uint32_t)irq19); - add_idt_entry(20,(uint32_t)irq20); - add_idt_entry(21,(uint32_t)irq21); - add_idt_entry(22,(uint32_t)irq22); - add_idt_entry(23,(uint32_t)irq23); - add_idt_entry(24,(uint32_t)irq24); - add_idt_entry(25,(uint32_t)irq25); - add_idt_entry(26,(uint32_t)irq26); - add_idt_entry(27,(uint32_t)irq27); - add_idt_entry(28,(uint32_t)irq28); - add_idt_entry(29,(uint32_t)irq29); - add_idt_entry(30,(uint32_t)irq30); - add_idt_entry(31,(uint32_t)irq31); - add_idt_entry(32,(uint32_t)timer_irq); - add_idt_entry(33,(uint32_t)keyboard_irq); - - idtp.size=sizeof(struct idt_entry)*256-1; - idtp.offset=(uint32_t)&idt; - - load_idt(&idtp); -} diff --git a/include/04.idt/idt.h b/include/04.idt/idt.h new file mode 100644 index 0000000..cbae940 --- /dev/null +++ b/include/04.idt/idt.h @@ -0,0 +1,37 @@ +#ifndef SOURCE_IDT_H +#define SOURCE_IDT_H + +#include + +#define INTERRUPT_GATE_32 0x8E + +#define KERNEL_CODE 0x08 +#define KERNEL_DATA 0x10 + +#define PIC1_COMMAND_PORT 0x20 +#define PIC1_DATA_PORT 0x21 +#define PIC2_COMMAND_PORT 0xA0 +#define PIC2_DATA_PORT 0xA1 + +struct idt_entry +{ + uint16_t offset1; + uint16_t selector; + uint8_t zero; + uint8_t type_attr; + uint16_t offset2; +} __attribute__((packed)); + +struct idt_pointer +{ + uint16_t size; + uint32_t offset; +} __attribute__((packed)); + +void init_idt_entry(size_t num, uint32_t offset, uint16_t selector, uint8_t + type_attr); +void add_idt_entry(size_t num,uint32_t offset); +void init_pic(void); +void init_idt_table(void); + +#endif diff --git a/include/04.idt/idt1.h b/include/04.idt/idt1.h new file mode 100644 index 0000000..46876e9 --- /dev/null +++ b/include/04.idt/idt1.h @@ -0,0 +1,2 @@ +#ifndef SOURCE_IDT_H +#define SOURCE_IDT_H diff --git a/include/04.idt/idt2.h b/include/04.idt/idt2.h new file mode 100644 index 0000000..c45e28b --- /dev/null +++ b/include/04.idt/idt2.h @@ -0,0 +1 @@ +#include diff --git a/include/04.idt/idt3.h b/include/04.idt/idt3.h new file mode 100644 index 0000000..afb8506 --- /dev/null +++ b/include/04.idt/idt3.h @@ -0,0 +1 @@ +#define INTERRUPT_GATE_32 0x8E diff --git a/include/04.idt/idt4.h b/include/04.idt/idt4.h new file mode 100644 index 0000000..c564d8a --- /dev/null +++ b/include/04.idt/idt4.h @@ -0,0 +1,2 @@ +#define KERNEL_CODE 0x08 +#define KERNEL_DATA 0x10 diff --git a/include/04.idt/idt5.h b/include/04.idt/idt5.h new file mode 100644 index 0000000..ca70fa7 --- /dev/null +++ b/include/04.idt/idt5.h @@ -0,0 +1,4 @@ +#define PIC1_COMMAND_PORT 0x20 +#define PIC1_DATA_PORT 0x21 +#define PIC2_COMMAND_PORT 0xA0 +#define PIC2_DATA_PORT 0xA1 diff --git a/include/04.idt/idt6.h b/include/04.idt/idt6.h new file mode 100644 index 0000000..dcab25c --- /dev/null +++ b/include/04.idt/idt6.h @@ -0,0 +1,8 @@ +struct idt_entry +{ + uint16_t offset1; + uint16_t selector; + uint8_t zero; + uint8_t type_attr; + uint16_t offset2; +} __attribute__((packed)); diff --git a/include/04.idt/idt7.h b/include/04.idt/idt7.h new file mode 100644 index 0000000..fe1bff5 --- /dev/null +++ b/include/04.idt/idt7.h @@ -0,0 +1,5 @@ +struct idt_pointer +{ + uint16_t size; + uint32_t offset; +} __attribute__((packed)); diff --git a/include/04.idt/idt8.h b/include/04.idt/idt8.h new file mode 100644 index 0000000..046ac06 --- /dev/null +++ b/include/04.idt/idt8.h @@ -0,0 +1,5 @@ +void init_idt_entry(size_t num, uint32_t offset, uint16_t selector, uint8_t + type_attr); +void add_idt_entry(size_t num,uint32_t offset); +void init_pic(void); +void init_idt_table(void); diff --git a/include/04.idt/idt9.h b/include/04.idt/idt9.h new file mode 100644 index 0000000..69331c3 --- /dev/null +++ b/include/04.idt/idt9.h @@ -0,0 +1 @@ +#endif -- cgit v1.2.3