should be a working build, uhh i add uhm ISR? sorta, not done dont care
This commit is contained in:
parent
46da32cfcc
commit
8a2cb7168f
@ -18,6 +18,9 @@ export TARGET_LINKFLAGS =
|
||||
export TARGET_LIBS =
|
||||
|
||||
export BUILD_DIR = $(abspath build)
|
||||
export SOURCE_DIR = $(abspath .)
|
||||
|
||||
# i hate making make files...
|
||||
|
||||
BINUTILS_VERSION = 2.43.1
|
||||
BINUTILS_URL = https://ftp.gnu.org/gnu/binutils/binutils-$(BINUTILS_VERSION).tar.gz
|
||||
|
||||
50
build_scripts/genISR.sh
Executable file
50
build_scripts/genISR.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# exit on err
|
||||
set -e
|
||||
|
||||
if [ $# -le 1 ]; then
|
||||
echo "Usage: genISR.sh <ISRgen.c> <ISRgen.inc>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# varibles
|
||||
ISRS_GEN_C=$1
|
||||
ISRS_GEN_ASM=$2
|
||||
|
||||
ISRS_WITH_ERROR_CODE="8 10 11 12 13 14 17 21 29 30"
|
||||
|
||||
# Gen C File
|
||||
# Later(TM), scratch that... NOW
|
||||
echo "// THIS FILE IS AUTOGENERATED VIA genISR.sh, because im pacient but not THAT pacient good lord its 500 lines of pure hell also like i have no braincells left..." > $ISRS_GEN_C
|
||||
echo "#include \"idt.h\"" >> $ISRS_GEN_C
|
||||
echo "#include \"gdt.h\"" >> $ISRS_GEN_C
|
||||
echo "" >> $ISRS_GEN_C
|
||||
|
||||
for i in $(seq 0 255); do
|
||||
echo "void __attribute((cdecl)) i686_ISR${i}();" >> $ISRS_GEN_C
|
||||
done
|
||||
|
||||
echo "" >> $ISRS_GEN_C
|
||||
echo "void i686_ISR_InitializeGates()" >> $ISRS_GEN_C
|
||||
echo "{" >> $ISRS_GEN_C
|
||||
|
||||
for i in $(seq 0 255); do
|
||||
echo " i686_IDT_SetGate(${i}, i686_ISR${i}, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);" >> $ISRS_GEN_C
|
||||
done
|
||||
|
||||
|
||||
echo "}" >> $ISRS_GEN_C
|
||||
# die die die die die die die die die go my braincells
|
||||
|
||||
# Generate ASM
|
||||
echo "; THIS FILE IS AUTOGENERATED VIA genISR.sh i could've done this once myself but shell script is my fren" > $ISRS_GEN_ASM
|
||||
|
||||
for i in $(seq 0 255); do
|
||||
if echo "$ISRS_WITH_ERROR_CODE" | grep -q "\b${i}\b"; then
|
||||
echo "ISR_ERRORCODE ${i}" >> $ISRS_GEN_ASM
|
||||
else
|
||||
echo "ISR_NOERRORCODE ${i}" >> $ISRS_GEN_ASM
|
||||
fi
|
||||
echo "I Have No Braincells^10, its 4:30 in the morning... anyways your files were made..."
|
||||
done
|
||||
@ -3,10 +3,34 @@ TARGET_CFLAGS += -ffreestanding -nostdlib -I.
|
||||
TARGET_LIBS += -lgcc
|
||||
TARGET_LINKFLAGS += -T linker.ld -nostdlib
|
||||
|
||||
SOURCES_C=$(shell find . -type f -name "*.c")
|
||||
SOURCES_ASM=$(shell find . -type f -name "*.asm")
|
||||
OBJECTS_C=$(patsubst %.c, $(BUILD_DIR)/kernel/c/%.obj, $(SOURCES_C))
|
||||
OBJECTS_ASM=$(patsubst %.asm, $(BUILD_DIR)/kernel/asm/%.obj, $(SOURCES_ASM))
|
||||
HEADERS_C = $(wildcard *.h) \
|
||||
$(wildcard */*.h) \
|
||||
$(wildcard */*/*.h) \
|
||||
$(wildcard */*/*/*.h)
|
||||
|
||||
SOURCES_C = $(wildcard *.c) \
|
||||
$(wildcard */*.c) \
|
||||
$(wildcard */*/*.c) \
|
||||
$(wildcard */*/*/*.c) \
|
||||
arch/i686/gen_isr.c
|
||||
|
||||
OBJECTS_C = $(patsubst %.c, $(BUILD_DIR)/kernel/c/%.obj, $(SOURCES_C))
|
||||
|
||||
HEADERS_ASM = $(wildcard *.inc) \
|
||||
$(wildcard */*.inc) \
|
||||
$(wildcard */*/*.inc) \
|
||||
$(wildcard */*/*/*.inc) \
|
||||
arch/i686/gen_isr.inc
|
||||
|
||||
SOURCES_ASM = $(wildcard *.asm) \
|
||||
$(wildcard */*.asm) \
|
||||
$(wildcard */*/*.asm) \
|
||||
$(wildcard */*/*/*.asm)
|
||||
|
||||
|
||||
OBJECTS_ASM = $(patsubst %.asm, $(BUILD_DIR)/kernel/asm/%.obj, $(SOURCES_ASM))
|
||||
|
||||
# i love rejanking this cuz yes (its 4am fuck off)
|
||||
|
||||
.PHONY: all kernel clean always
|
||||
|
||||
@ -18,15 +42,19 @@ $(BUILD_DIR)/kernel.bin: $(OBJECTS_ASM) $(OBJECTS_C)
|
||||
@$(TARGET_LD) $(TARGET_LINKFLAGS) -Wl,-Map=$(BUILD_DIR)/kernel.map -o $@ $^ $(TARGET_LIBS)
|
||||
@echo "--> Created: kernel.bin"
|
||||
|
||||
$(BUILD_DIR)/kernel/c/%.obj: %.c
|
||||
$(BUILD_DIR)/kernel/c/%.obj: %.c $(HEADERS_C)
|
||||
@mkdir -p $(@D)
|
||||
@$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $<
|
||||
@echo "--> Compiled: " $<
|
||||
|
||||
$(BUILD_DIR)/kernel/asm/%.obj: %.asm
|
||||
$(BUILD_DIR)/kernel/asm/%.obj: %.asm $(HEADERS_ASM)
|
||||
@mkdir -p $(@D)
|
||||
@$(TARGET_ASM) $(TARGET_ASMFLAGS) -o $@ $<
|
||||
@echo "--> Compiled: " $<
|
||||
|
||||
arch/i686/gen_isr.c arch/i686/gen_isr.inc:
|
||||
@$(SOURCE_DIR)/build_tools/generate_isrs.sh $@
|
||||
@echo "--> Compiled: ISR Gen Files"
|
||||
|
||||
clean:
|
||||
rm -f $(BUILD_DIR)/kernel.bin
|
||||
520
src/kernel/arch/i686/gen_isr.c
Normal file
520
src/kernel/arch/i686/gen_isr.c
Normal file
@ -0,0 +1,520 @@
|
||||
// THIS FILE IS AUTOGENERATED VIA genISR.sh, because im pacient but not THAT pacient good lord its 500 lines of pure hell also like i have no braincells left...
|
||||
#include "idt.h"
|
||||
#include "gdt.h"
|
||||
|
||||
void __attribute((cdecl)) i686_ISR0();
|
||||
void __attribute((cdecl)) i686_ISR1();
|
||||
void __attribute((cdecl)) i686_ISR2();
|
||||
void __attribute((cdecl)) i686_ISR3();
|
||||
void __attribute((cdecl)) i686_ISR4();
|
||||
void __attribute((cdecl)) i686_ISR5();
|
||||
void __attribute((cdecl)) i686_ISR6();
|
||||
void __attribute((cdecl)) i686_ISR7();
|
||||
void __attribute((cdecl)) i686_ISR8();
|
||||
void __attribute((cdecl)) i686_ISR9();
|
||||
void __attribute((cdecl)) i686_ISR10();
|
||||
void __attribute((cdecl)) i686_ISR11();
|
||||
void __attribute((cdecl)) i686_ISR12();
|
||||
void __attribute((cdecl)) i686_ISR13();
|
||||
void __attribute((cdecl)) i686_ISR14();
|
||||
void __attribute((cdecl)) i686_ISR15();
|
||||
void __attribute((cdecl)) i686_ISR16();
|
||||
void __attribute((cdecl)) i686_ISR17();
|
||||
void __attribute((cdecl)) i686_ISR18();
|
||||
void __attribute((cdecl)) i686_ISR19();
|
||||
void __attribute((cdecl)) i686_ISR20();
|
||||
void __attribute((cdecl)) i686_ISR21();
|
||||
void __attribute((cdecl)) i686_ISR22();
|
||||
void __attribute((cdecl)) i686_ISR23();
|
||||
void __attribute((cdecl)) i686_ISR24();
|
||||
void __attribute((cdecl)) i686_ISR25();
|
||||
void __attribute((cdecl)) i686_ISR26();
|
||||
void __attribute((cdecl)) i686_ISR27();
|
||||
void __attribute((cdecl)) i686_ISR28();
|
||||
void __attribute((cdecl)) i686_ISR29();
|
||||
void __attribute((cdecl)) i686_ISR30();
|
||||
void __attribute((cdecl)) i686_ISR31();
|
||||
void __attribute((cdecl)) i686_ISR32();
|
||||
void __attribute((cdecl)) i686_ISR33();
|
||||
void __attribute((cdecl)) i686_ISR34();
|
||||
void __attribute((cdecl)) i686_ISR35();
|
||||
void __attribute((cdecl)) i686_ISR36();
|
||||
void __attribute((cdecl)) i686_ISR37();
|
||||
void __attribute((cdecl)) i686_ISR38();
|
||||
void __attribute((cdecl)) i686_ISR39();
|
||||
void __attribute((cdecl)) i686_ISR40();
|
||||
void __attribute((cdecl)) i686_ISR41();
|
||||
void __attribute((cdecl)) i686_ISR42();
|
||||
void __attribute((cdecl)) i686_ISR43();
|
||||
void __attribute((cdecl)) i686_ISR44();
|
||||
void __attribute((cdecl)) i686_ISR45();
|
||||
void __attribute((cdecl)) i686_ISR46();
|
||||
void __attribute((cdecl)) i686_ISR47();
|
||||
void __attribute((cdecl)) i686_ISR48();
|
||||
void __attribute((cdecl)) i686_ISR49();
|
||||
void __attribute((cdecl)) i686_ISR50();
|
||||
void __attribute((cdecl)) i686_ISR51();
|
||||
void __attribute((cdecl)) i686_ISR52();
|
||||
void __attribute((cdecl)) i686_ISR53();
|
||||
void __attribute((cdecl)) i686_ISR54();
|
||||
void __attribute((cdecl)) i686_ISR55();
|
||||
void __attribute((cdecl)) i686_ISR56();
|
||||
void __attribute((cdecl)) i686_ISR57();
|
||||
void __attribute((cdecl)) i686_ISR58();
|
||||
void __attribute((cdecl)) i686_ISR59();
|
||||
void __attribute((cdecl)) i686_ISR60();
|
||||
void __attribute((cdecl)) i686_ISR61();
|
||||
void __attribute((cdecl)) i686_ISR62();
|
||||
void __attribute((cdecl)) i686_ISR63();
|
||||
void __attribute((cdecl)) i686_ISR64();
|
||||
void __attribute((cdecl)) i686_ISR65();
|
||||
void __attribute((cdecl)) i686_ISR66();
|
||||
void __attribute((cdecl)) i686_ISR67();
|
||||
void __attribute((cdecl)) i686_ISR68();
|
||||
void __attribute((cdecl)) i686_ISR69();
|
||||
void __attribute((cdecl)) i686_ISR70();
|
||||
void __attribute((cdecl)) i686_ISR71();
|
||||
void __attribute((cdecl)) i686_ISR72();
|
||||
void __attribute((cdecl)) i686_ISR73();
|
||||
void __attribute((cdecl)) i686_ISR74();
|
||||
void __attribute((cdecl)) i686_ISR75();
|
||||
void __attribute((cdecl)) i686_ISR76();
|
||||
void __attribute((cdecl)) i686_ISR77();
|
||||
void __attribute((cdecl)) i686_ISR78();
|
||||
void __attribute((cdecl)) i686_ISR79();
|
||||
void __attribute((cdecl)) i686_ISR80();
|
||||
void __attribute((cdecl)) i686_ISR81();
|
||||
void __attribute((cdecl)) i686_ISR82();
|
||||
void __attribute((cdecl)) i686_ISR83();
|
||||
void __attribute((cdecl)) i686_ISR84();
|
||||
void __attribute((cdecl)) i686_ISR85();
|
||||
void __attribute((cdecl)) i686_ISR86();
|
||||
void __attribute((cdecl)) i686_ISR87();
|
||||
void __attribute((cdecl)) i686_ISR88();
|
||||
void __attribute((cdecl)) i686_ISR89();
|
||||
void __attribute((cdecl)) i686_ISR90();
|
||||
void __attribute((cdecl)) i686_ISR91();
|
||||
void __attribute((cdecl)) i686_ISR92();
|
||||
void __attribute((cdecl)) i686_ISR93();
|
||||
void __attribute((cdecl)) i686_ISR94();
|
||||
void __attribute((cdecl)) i686_ISR95();
|
||||
void __attribute((cdecl)) i686_ISR96();
|
||||
void __attribute((cdecl)) i686_ISR97();
|
||||
void __attribute((cdecl)) i686_ISR98();
|
||||
void __attribute((cdecl)) i686_ISR99();
|
||||
void __attribute((cdecl)) i686_ISR100();
|
||||
void __attribute((cdecl)) i686_ISR101();
|
||||
void __attribute((cdecl)) i686_ISR102();
|
||||
void __attribute((cdecl)) i686_ISR103();
|
||||
void __attribute((cdecl)) i686_ISR104();
|
||||
void __attribute((cdecl)) i686_ISR105();
|
||||
void __attribute((cdecl)) i686_ISR106();
|
||||
void __attribute((cdecl)) i686_ISR107();
|
||||
void __attribute((cdecl)) i686_ISR108();
|
||||
void __attribute((cdecl)) i686_ISR109();
|
||||
void __attribute((cdecl)) i686_ISR110();
|
||||
void __attribute((cdecl)) i686_ISR111();
|
||||
void __attribute((cdecl)) i686_ISR112();
|
||||
void __attribute((cdecl)) i686_ISR113();
|
||||
void __attribute((cdecl)) i686_ISR114();
|
||||
void __attribute((cdecl)) i686_ISR115();
|
||||
void __attribute((cdecl)) i686_ISR116();
|
||||
void __attribute((cdecl)) i686_ISR117();
|
||||
void __attribute((cdecl)) i686_ISR118();
|
||||
void __attribute((cdecl)) i686_ISR119();
|
||||
void __attribute((cdecl)) i686_ISR120();
|
||||
void __attribute((cdecl)) i686_ISR121();
|
||||
void __attribute((cdecl)) i686_ISR122();
|
||||
void __attribute((cdecl)) i686_ISR123();
|
||||
void __attribute((cdecl)) i686_ISR124();
|
||||
void __attribute((cdecl)) i686_ISR125();
|
||||
void __attribute((cdecl)) i686_ISR126();
|
||||
void __attribute((cdecl)) i686_ISR127();
|
||||
void __attribute((cdecl)) i686_ISR128();
|
||||
void __attribute((cdecl)) i686_ISR129();
|
||||
void __attribute((cdecl)) i686_ISR130();
|
||||
void __attribute((cdecl)) i686_ISR131();
|
||||
void __attribute((cdecl)) i686_ISR132();
|
||||
void __attribute((cdecl)) i686_ISR133();
|
||||
void __attribute((cdecl)) i686_ISR134();
|
||||
void __attribute((cdecl)) i686_ISR135();
|
||||
void __attribute((cdecl)) i686_ISR136();
|
||||
void __attribute((cdecl)) i686_ISR137();
|
||||
void __attribute((cdecl)) i686_ISR138();
|
||||
void __attribute((cdecl)) i686_ISR139();
|
||||
void __attribute((cdecl)) i686_ISR140();
|
||||
void __attribute((cdecl)) i686_ISR141();
|
||||
void __attribute((cdecl)) i686_ISR142();
|
||||
void __attribute((cdecl)) i686_ISR143();
|
||||
void __attribute((cdecl)) i686_ISR144();
|
||||
void __attribute((cdecl)) i686_ISR145();
|
||||
void __attribute((cdecl)) i686_ISR146();
|
||||
void __attribute((cdecl)) i686_ISR147();
|
||||
void __attribute((cdecl)) i686_ISR148();
|
||||
void __attribute((cdecl)) i686_ISR149();
|
||||
void __attribute((cdecl)) i686_ISR150();
|
||||
void __attribute((cdecl)) i686_ISR151();
|
||||
void __attribute((cdecl)) i686_ISR152();
|
||||
void __attribute((cdecl)) i686_ISR153();
|
||||
void __attribute((cdecl)) i686_ISR154();
|
||||
void __attribute((cdecl)) i686_ISR155();
|
||||
void __attribute((cdecl)) i686_ISR156();
|
||||
void __attribute((cdecl)) i686_ISR157();
|
||||
void __attribute((cdecl)) i686_ISR158();
|
||||
void __attribute((cdecl)) i686_ISR159();
|
||||
void __attribute((cdecl)) i686_ISR160();
|
||||
void __attribute((cdecl)) i686_ISR161();
|
||||
void __attribute((cdecl)) i686_ISR162();
|
||||
void __attribute((cdecl)) i686_ISR163();
|
||||
void __attribute((cdecl)) i686_ISR164();
|
||||
void __attribute((cdecl)) i686_ISR165();
|
||||
void __attribute((cdecl)) i686_ISR166();
|
||||
void __attribute((cdecl)) i686_ISR167();
|
||||
void __attribute((cdecl)) i686_ISR168();
|
||||
void __attribute((cdecl)) i686_ISR169();
|
||||
void __attribute((cdecl)) i686_ISR170();
|
||||
void __attribute((cdecl)) i686_ISR171();
|
||||
void __attribute((cdecl)) i686_ISR172();
|
||||
void __attribute((cdecl)) i686_ISR173();
|
||||
void __attribute((cdecl)) i686_ISR174();
|
||||
void __attribute((cdecl)) i686_ISR175();
|
||||
void __attribute((cdecl)) i686_ISR176();
|
||||
void __attribute((cdecl)) i686_ISR177();
|
||||
void __attribute((cdecl)) i686_ISR178();
|
||||
void __attribute((cdecl)) i686_ISR179();
|
||||
void __attribute((cdecl)) i686_ISR180();
|
||||
void __attribute((cdecl)) i686_ISR181();
|
||||
void __attribute((cdecl)) i686_ISR182();
|
||||
void __attribute((cdecl)) i686_ISR183();
|
||||
void __attribute((cdecl)) i686_ISR184();
|
||||
void __attribute((cdecl)) i686_ISR185();
|
||||
void __attribute((cdecl)) i686_ISR186();
|
||||
void __attribute((cdecl)) i686_ISR187();
|
||||
void __attribute((cdecl)) i686_ISR188();
|
||||
void __attribute((cdecl)) i686_ISR189();
|
||||
void __attribute((cdecl)) i686_ISR190();
|
||||
void __attribute((cdecl)) i686_ISR191();
|
||||
void __attribute((cdecl)) i686_ISR192();
|
||||
void __attribute((cdecl)) i686_ISR193();
|
||||
void __attribute((cdecl)) i686_ISR194();
|
||||
void __attribute((cdecl)) i686_ISR195();
|
||||
void __attribute((cdecl)) i686_ISR196();
|
||||
void __attribute((cdecl)) i686_ISR197();
|
||||
void __attribute((cdecl)) i686_ISR198();
|
||||
void __attribute((cdecl)) i686_ISR199();
|
||||
void __attribute((cdecl)) i686_ISR200();
|
||||
void __attribute((cdecl)) i686_ISR201();
|
||||
void __attribute((cdecl)) i686_ISR202();
|
||||
void __attribute((cdecl)) i686_ISR203();
|
||||
void __attribute((cdecl)) i686_ISR204();
|
||||
void __attribute((cdecl)) i686_ISR205();
|
||||
void __attribute((cdecl)) i686_ISR206();
|
||||
void __attribute((cdecl)) i686_ISR207();
|
||||
void __attribute((cdecl)) i686_ISR208();
|
||||
void __attribute((cdecl)) i686_ISR209();
|
||||
void __attribute((cdecl)) i686_ISR210();
|
||||
void __attribute((cdecl)) i686_ISR211();
|
||||
void __attribute((cdecl)) i686_ISR212();
|
||||
void __attribute((cdecl)) i686_ISR213();
|
||||
void __attribute((cdecl)) i686_ISR214();
|
||||
void __attribute((cdecl)) i686_ISR215();
|
||||
void __attribute((cdecl)) i686_ISR216();
|
||||
void __attribute((cdecl)) i686_ISR217();
|
||||
void __attribute((cdecl)) i686_ISR218();
|
||||
void __attribute((cdecl)) i686_ISR219();
|
||||
void __attribute((cdecl)) i686_ISR220();
|
||||
void __attribute((cdecl)) i686_ISR221();
|
||||
void __attribute((cdecl)) i686_ISR222();
|
||||
void __attribute((cdecl)) i686_ISR223();
|
||||
void __attribute((cdecl)) i686_ISR224();
|
||||
void __attribute((cdecl)) i686_ISR225();
|
||||
void __attribute((cdecl)) i686_ISR226();
|
||||
void __attribute((cdecl)) i686_ISR227();
|
||||
void __attribute((cdecl)) i686_ISR228();
|
||||
void __attribute((cdecl)) i686_ISR229();
|
||||
void __attribute((cdecl)) i686_ISR230();
|
||||
void __attribute((cdecl)) i686_ISR231();
|
||||
void __attribute((cdecl)) i686_ISR232();
|
||||
void __attribute((cdecl)) i686_ISR233();
|
||||
void __attribute((cdecl)) i686_ISR234();
|
||||
void __attribute((cdecl)) i686_ISR235();
|
||||
void __attribute((cdecl)) i686_ISR236();
|
||||
void __attribute((cdecl)) i686_ISR237();
|
||||
void __attribute((cdecl)) i686_ISR238();
|
||||
void __attribute((cdecl)) i686_ISR239();
|
||||
void __attribute((cdecl)) i686_ISR240();
|
||||
void __attribute((cdecl)) i686_ISR241();
|
||||
void __attribute((cdecl)) i686_ISR242();
|
||||
void __attribute((cdecl)) i686_ISR243();
|
||||
void __attribute((cdecl)) i686_ISR244();
|
||||
void __attribute((cdecl)) i686_ISR245();
|
||||
void __attribute((cdecl)) i686_ISR246();
|
||||
void __attribute((cdecl)) i686_ISR247();
|
||||
void __attribute((cdecl)) i686_ISR248();
|
||||
void __attribute((cdecl)) i686_ISR249();
|
||||
void __attribute((cdecl)) i686_ISR250();
|
||||
void __attribute((cdecl)) i686_ISR251();
|
||||
void __attribute((cdecl)) i686_ISR252();
|
||||
void __attribute((cdecl)) i686_ISR253();
|
||||
void __attribute((cdecl)) i686_ISR254();
|
||||
void __attribute((cdecl)) i686_ISR255();
|
||||
|
||||
void i686_ISR_InitializeGates()
|
||||
{
|
||||
i686_IDT_SetGate(0, i686_ISR0, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(1, i686_ISR1, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(2, i686_ISR2, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(3, i686_ISR3, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(4, i686_ISR4, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(5, i686_ISR5, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(6, i686_ISR6, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(7, i686_ISR7, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(8, i686_ISR8, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(9, i686_ISR9, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(10, i686_ISR10, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(11, i686_ISR11, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(12, i686_ISR12, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(13, i686_ISR13, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(14, i686_ISR14, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(15, i686_ISR15, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(16, i686_ISR16, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(17, i686_ISR17, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(18, i686_ISR18, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(19, i686_ISR19, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(20, i686_ISR20, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(21, i686_ISR21, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(22, i686_ISR22, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(23, i686_ISR23, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(24, i686_ISR24, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(25, i686_ISR25, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(26, i686_ISR26, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(27, i686_ISR27, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(28, i686_ISR28, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(29, i686_ISR29, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(30, i686_ISR30, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(31, i686_ISR31, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(32, i686_ISR32, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(33, i686_ISR33, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(34, i686_ISR34, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(35, i686_ISR35, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(36, i686_ISR36, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(37, i686_ISR37, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(38, i686_ISR38, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(39, i686_ISR39, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(40, i686_ISR40, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(41, i686_ISR41, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(42, i686_ISR42, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(43, i686_ISR43, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(44, i686_ISR44, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(45, i686_ISR45, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(46, i686_ISR46, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(47, i686_ISR47, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(48, i686_ISR48, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(49, i686_ISR49, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(50, i686_ISR50, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(51, i686_ISR51, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(52, i686_ISR52, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(53, i686_ISR53, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(54, i686_ISR54, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(55, i686_ISR55, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(56, i686_ISR56, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(57, i686_ISR57, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(58, i686_ISR58, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(59, i686_ISR59, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(60, i686_ISR60, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(61, i686_ISR61, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(62, i686_ISR62, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(63, i686_ISR63, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(64, i686_ISR64, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(65, i686_ISR65, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(66, i686_ISR66, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(67, i686_ISR67, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(68, i686_ISR68, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(69, i686_ISR69, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(70, i686_ISR70, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(71, i686_ISR71, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(72, i686_ISR72, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(73, i686_ISR73, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(74, i686_ISR74, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(75, i686_ISR75, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(76, i686_ISR76, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(77, i686_ISR77, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(78, i686_ISR78, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(79, i686_ISR79, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(80, i686_ISR80, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(81, i686_ISR81, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(82, i686_ISR82, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(83, i686_ISR83, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(84, i686_ISR84, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(85, i686_ISR85, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(86, i686_ISR86, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(87, i686_ISR87, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(88, i686_ISR88, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(89, i686_ISR89, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(90, i686_ISR90, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(91, i686_ISR91, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(92, i686_ISR92, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(93, i686_ISR93, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(94, i686_ISR94, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(95, i686_ISR95, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(96, i686_ISR96, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(97, i686_ISR97, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(98, i686_ISR98, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(99, i686_ISR99, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(100, i686_ISR100, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(101, i686_ISR101, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(102, i686_ISR102, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(103, i686_ISR103, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(104, i686_ISR104, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(105, i686_ISR105, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(106, i686_ISR106, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(107, i686_ISR107, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(108, i686_ISR108, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(109, i686_ISR109, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(110, i686_ISR110, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(111, i686_ISR111, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(112, i686_ISR112, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(113, i686_ISR113, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(114, i686_ISR114, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(115, i686_ISR115, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(116, i686_ISR116, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(117, i686_ISR117, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(118, i686_ISR118, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(119, i686_ISR119, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(120, i686_ISR120, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(121, i686_ISR121, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(122, i686_ISR122, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(123, i686_ISR123, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(124, i686_ISR124, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(125, i686_ISR125, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(126, i686_ISR126, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(127, i686_ISR127, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(128, i686_ISR128, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(129, i686_ISR129, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(130, i686_ISR130, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(131, i686_ISR131, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(132, i686_ISR132, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(133, i686_ISR133, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(134, i686_ISR134, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(135, i686_ISR135, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(136, i686_ISR136, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(137, i686_ISR137, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(138, i686_ISR138, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(139, i686_ISR139, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(140, i686_ISR140, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(141, i686_ISR141, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(142, i686_ISR142, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(143, i686_ISR143, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(144, i686_ISR144, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(145, i686_ISR145, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(146, i686_ISR146, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(147, i686_ISR147, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(148, i686_ISR148, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(149, i686_ISR149, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(150, i686_ISR150, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(151, i686_ISR151, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(152, i686_ISR152, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(153, i686_ISR153, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(154, i686_ISR154, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(155, i686_ISR155, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(156, i686_ISR156, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(157, i686_ISR157, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(158, i686_ISR158, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(159, i686_ISR159, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(160, i686_ISR160, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(161, i686_ISR161, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(162, i686_ISR162, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(163, i686_ISR163, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(164, i686_ISR164, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(165, i686_ISR165, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(166, i686_ISR166, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(167, i686_ISR167, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(168, i686_ISR168, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(169, i686_ISR169, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(170, i686_ISR170, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(171, i686_ISR171, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(172, i686_ISR172, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(173, i686_ISR173, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(174, i686_ISR174, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(175, i686_ISR175, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(176, i686_ISR176, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(177, i686_ISR177, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(178, i686_ISR178, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(179, i686_ISR179, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(180, i686_ISR180, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(181, i686_ISR181, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(182, i686_ISR182, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(183, i686_ISR183, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(184, i686_ISR184, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(185, i686_ISR185, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(186, i686_ISR186, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(187, i686_ISR187, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(188, i686_ISR188, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(189, i686_ISR189, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(190, i686_ISR190, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(191, i686_ISR191, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(192, i686_ISR192, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(193, i686_ISR193, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(194, i686_ISR194, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(195, i686_ISR195, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(196, i686_ISR196, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(197, i686_ISR197, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(198, i686_ISR198, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(199, i686_ISR199, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(200, i686_ISR200, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(201, i686_ISR201, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(202, i686_ISR202, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(203, i686_ISR203, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(204, i686_ISR204, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(205, i686_ISR205, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(206, i686_ISR206, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(207, i686_ISR207, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(208, i686_ISR208, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(209, i686_ISR209, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(210, i686_ISR210, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(211, i686_ISR211, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(212, i686_ISR212, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(213, i686_ISR213, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(214, i686_ISR214, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(215, i686_ISR215, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(216, i686_ISR216, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(217, i686_ISR217, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(218, i686_ISR218, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(219, i686_ISR219, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(220, i686_ISR220, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(221, i686_ISR221, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(222, i686_ISR222, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(223, i686_ISR223, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(224, i686_ISR224, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(225, i686_ISR225, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(226, i686_ISR226, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(227, i686_ISR227, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(228, i686_ISR228, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(229, i686_ISR229, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(230, i686_ISR230, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(231, i686_ISR231, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(232, i686_ISR232, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(233, i686_ISR233, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(234, i686_ISR234, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(235, i686_ISR235, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(236, i686_ISR236, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(237, i686_ISR237, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(238, i686_ISR238, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(239, i686_ISR239, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(240, i686_ISR240, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(241, i686_ISR241, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(242, i686_ISR242, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(243, i686_ISR243, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(244, i686_ISR244, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(245, i686_ISR245, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(246, i686_ISR246, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(247, i686_ISR247, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(248, i686_ISR248, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(249, i686_ISR249, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(250, i686_ISR250, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(251, i686_ISR251, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(252, i686_ISR252, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(253, i686_ISR253, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(254, i686_ISR254, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
i686_IDT_SetGate(255, i686_ISR255, i686_GDT_CODE_SEGMENT, IDT_FLAG_RING0 | IDT_FLAG_GATE_32BIT_INT);
|
||||
}
|
||||
257
src/kernel/arch/i686/gen_isr.inc
Normal file
257
src/kernel/arch/i686/gen_isr.inc
Normal file
@ -0,0 +1,257 @@
|
||||
; THIS FILE IS AUTOGENERATED VIA genISR.sh i could've done this once myself but shell script is my fren
|
||||
ISR_NOERRORCODE 0
|
||||
ISR_NOERRORCODE 1
|
||||
ISR_NOERRORCODE 2
|
||||
ISR_NOERRORCODE 3
|
||||
ISR_NOERRORCODE 4
|
||||
ISR_NOERRORCODE 5
|
||||
ISR_NOERRORCODE 6
|
||||
ISR_NOERRORCODE 7
|
||||
ISR_ERRORCODE 8
|
||||
ISR_NOERRORCODE 9
|
||||
ISR_ERRORCODE 10
|
||||
ISR_ERRORCODE 11
|
||||
ISR_ERRORCODE 12
|
||||
ISR_ERRORCODE 13
|
||||
ISR_ERRORCODE 14
|
||||
ISR_NOERRORCODE 15
|
||||
ISR_NOERRORCODE 16
|
||||
ISR_ERRORCODE 17
|
||||
ISR_NOERRORCODE 18
|
||||
ISR_NOERRORCODE 19
|
||||
ISR_NOERRORCODE 20
|
||||
ISR_ERRORCODE 21
|
||||
ISR_NOERRORCODE 22
|
||||
ISR_NOERRORCODE 23
|
||||
ISR_NOERRORCODE 24
|
||||
ISR_NOERRORCODE 25
|
||||
ISR_NOERRORCODE 26
|
||||
ISR_NOERRORCODE 27
|
||||
ISR_NOERRORCODE 28
|
||||
ISR_ERRORCODE 29
|
||||
ISR_ERRORCODE 30
|
||||
ISR_NOERRORCODE 31
|
||||
ISR_NOERRORCODE 32
|
||||
ISR_NOERRORCODE 33
|
||||
ISR_NOERRORCODE 34
|
||||
ISR_NOERRORCODE 35
|
||||
ISR_NOERRORCODE 36
|
||||
ISR_NOERRORCODE 37
|
||||
ISR_NOERRORCODE 38
|
||||
ISR_NOERRORCODE 39
|
||||
ISR_NOERRORCODE 40
|
||||
ISR_NOERRORCODE 41
|
||||
ISR_NOERRORCODE 42
|
||||
ISR_NOERRORCODE 43
|
||||
ISR_NOERRORCODE 44
|
||||
ISR_NOERRORCODE 45
|
||||
ISR_NOERRORCODE 46
|
||||
ISR_NOERRORCODE 47
|
||||
ISR_NOERRORCODE 48
|
||||
ISR_NOERRORCODE 49
|
||||
ISR_NOERRORCODE 50
|
||||
ISR_NOERRORCODE 51
|
||||
ISR_NOERRORCODE 52
|
||||
ISR_NOERRORCODE 53
|
||||
ISR_NOERRORCODE 54
|
||||
ISR_NOERRORCODE 55
|
||||
ISR_NOERRORCODE 56
|
||||
ISR_NOERRORCODE 57
|
||||
ISR_NOERRORCODE 58
|
||||
ISR_NOERRORCODE 59
|
||||
ISR_NOERRORCODE 60
|
||||
ISR_NOERRORCODE 61
|
||||
ISR_NOERRORCODE 62
|
||||
ISR_NOERRORCODE 63
|
||||
ISR_NOERRORCODE 64
|
||||
ISR_NOERRORCODE 65
|
||||
ISR_NOERRORCODE 66
|
||||
ISR_NOERRORCODE 67
|
||||
ISR_NOERRORCODE 68
|
||||
ISR_NOERRORCODE 69
|
||||
ISR_NOERRORCODE 70
|
||||
ISR_NOERRORCODE 71
|
||||
ISR_NOERRORCODE 72
|
||||
ISR_NOERRORCODE 73
|
||||
ISR_NOERRORCODE 74
|
||||
ISR_NOERRORCODE 75
|
||||
ISR_NOERRORCODE 76
|
||||
ISR_NOERRORCODE 77
|
||||
ISR_NOERRORCODE 78
|
||||
ISR_NOERRORCODE 79
|
||||
ISR_NOERRORCODE 80
|
||||
ISR_NOERRORCODE 81
|
||||
ISR_NOERRORCODE 82
|
||||
ISR_NOERRORCODE 83
|
||||
ISR_NOERRORCODE 84
|
||||
ISR_NOERRORCODE 85
|
||||
ISR_NOERRORCODE 86
|
||||
ISR_NOERRORCODE 87
|
||||
ISR_NOERRORCODE 88
|
||||
ISR_NOERRORCODE 89
|
||||
ISR_NOERRORCODE 90
|
||||
ISR_NOERRORCODE 91
|
||||
ISR_NOERRORCODE 92
|
||||
ISR_NOERRORCODE 93
|
||||
ISR_NOERRORCODE 94
|
||||
ISR_NOERRORCODE 95
|
||||
ISR_NOERRORCODE 96
|
||||
ISR_NOERRORCODE 97
|
||||
ISR_NOERRORCODE 98
|
||||
ISR_NOERRORCODE 99
|
||||
ISR_NOERRORCODE 100
|
||||
ISR_NOERRORCODE 101
|
||||
ISR_NOERRORCODE 102
|
||||
ISR_NOERRORCODE 103
|
||||
ISR_NOERRORCODE 104
|
||||
ISR_NOERRORCODE 105
|
||||
ISR_NOERRORCODE 106
|
||||
ISR_NOERRORCODE 107
|
||||
ISR_NOERRORCODE 108
|
||||
ISR_NOERRORCODE 109
|
||||
ISR_NOERRORCODE 110
|
||||
ISR_NOERRORCODE 111
|
||||
ISR_NOERRORCODE 112
|
||||
ISR_NOERRORCODE 113
|
||||
ISR_NOERRORCODE 114
|
||||
ISR_NOERRORCODE 115
|
||||
ISR_NOERRORCODE 116
|
||||
ISR_NOERRORCODE 117
|
||||
ISR_NOERRORCODE 118
|
||||
ISR_NOERRORCODE 119
|
||||
ISR_NOERRORCODE 120
|
||||
ISR_NOERRORCODE 121
|
||||
ISR_NOERRORCODE 122
|
||||
ISR_NOERRORCODE 123
|
||||
ISR_NOERRORCODE 124
|
||||
ISR_NOERRORCODE 125
|
||||
ISR_NOERRORCODE 126
|
||||
ISR_NOERRORCODE 127
|
||||
ISR_NOERRORCODE 128
|
||||
ISR_NOERRORCODE 129
|
||||
ISR_NOERRORCODE 130
|
||||
ISR_NOERRORCODE 131
|
||||
ISR_NOERRORCODE 132
|
||||
ISR_NOERRORCODE 133
|
||||
ISR_NOERRORCODE 134
|
||||
ISR_NOERRORCODE 135
|
||||
ISR_NOERRORCODE 136
|
||||
ISR_NOERRORCODE 137
|
||||
ISR_NOERRORCODE 138
|
||||
ISR_NOERRORCODE 139
|
||||
ISR_NOERRORCODE 140
|
||||
ISR_NOERRORCODE 141
|
||||
ISR_NOERRORCODE 142
|
||||
ISR_NOERRORCODE 143
|
||||
ISR_NOERRORCODE 144
|
||||
ISR_NOERRORCODE 145
|
||||
ISR_NOERRORCODE 146
|
||||
ISR_NOERRORCODE 147
|
||||
ISR_NOERRORCODE 148
|
||||
ISR_NOERRORCODE 149
|
||||
ISR_NOERRORCODE 150
|
||||
ISR_NOERRORCODE 151
|
||||
ISR_NOERRORCODE 152
|
||||
ISR_NOERRORCODE 153
|
||||
ISR_NOERRORCODE 154
|
||||
ISR_NOERRORCODE 155
|
||||
ISR_NOERRORCODE 156
|
||||
ISR_NOERRORCODE 157
|
||||
ISR_NOERRORCODE 158
|
||||
ISR_NOERRORCODE 159
|
||||
ISR_NOERRORCODE 160
|
||||
ISR_NOERRORCODE 161
|
||||
ISR_NOERRORCODE 162
|
||||
ISR_NOERRORCODE 163
|
||||
ISR_NOERRORCODE 164
|
||||
ISR_NOERRORCODE 165
|
||||
ISR_NOERRORCODE 166
|
||||
ISR_NOERRORCODE 167
|
||||
ISR_NOERRORCODE 168
|
||||
ISR_NOERRORCODE 169
|
||||
ISR_NOERRORCODE 170
|
||||
ISR_NOERRORCODE 171
|
||||
ISR_NOERRORCODE 172
|
||||
ISR_NOERRORCODE 173
|
||||
ISR_NOERRORCODE 174
|
||||
ISR_NOERRORCODE 175
|
||||
ISR_NOERRORCODE 176
|
||||
ISR_NOERRORCODE 177
|
||||
ISR_NOERRORCODE 178
|
||||
ISR_NOERRORCODE 179
|
||||
ISR_NOERRORCODE 180
|
||||
ISR_NOERRORCODE 181
|
||||
ISR_NOERRORCODE 182
|
||||
ISR_NOERRORCODE 183
|
||||
ISR_NOERRORCODE 184
|
||||
ISR_NOERRORCODE 185
|
||||
ISR_NOERRORCODE 186
|
||||
ISR_NOERRORCODE 187
|
||||
ISR_NOERRORCODE 188
|
||||
ISR_NOERRORCODE 189
|
||||
ISR_NOERRORCODE 190
|
||||
ISR_NOERRORCODE 191
|
||||
ISR_NOERRORCODE 192
|
||||
ISR_NOERRORCODE 193
|
||||
ISR_NOERRORCODE 194
|
||||
ISR_NOERRORCODE 195
|
||||
ISR_NOERRORCODE 196
|
||||
ISR_NOERRORCODE 197
|
||||
ISR_NOERRORCODE 198
|
||||
ISR_NOERRORCODE 199
|
||||
ISR_NOERRORCODE 200
|
||||
ISR_NOERRORCODE 201
|
||||
ISR_NOERRORCODE 202
|
||||
ISR_NOERRORCODE 203
|
||||
ISR_NOERRORCODE 204
|
||||
ISR_NOERRORCODE 205
|
||||
ISR_NOERRORCODE 206
|
||||
ISR_NOERRORCODE 207
|
||||
ISR_NOERRORCODE 208
|
||||
ISR_NOERRORCODE 209
|
||||
ISR_NOERRORCODE 210
|
||||
ISR_NOERRORCODE 211
|
||||
ISR_NOERRORCODE 212
|
||||
ISR_NOERRORCODE 213
|
||||
ISR_NOERRORCODE 214
|
||||
ISR_NOERRORCODE 215
|
||||
ISR_NOERRORCODE 216
|
||||
ISR_NOERRORCODE 217
|
||||
ISR_NOERRORCODE 218
|
||||
ISR_NOERRORCODE 219
|
||||
ISR_NOERRORCODE 220
|
||||
ISR_NOERRORCODE 221
|
||||
ISR_NOERRORCODE 222
|
||||
ISR_NOERRORCODE 223
|
||||
ISR_NOERRORCODE 224
|
||||
ISR_NOERRORCODE 225
|
||||
ISR_NOERRORCODE 226
|
||||
ISR_NOERRORCODE 227
|
||||
ISR_NOERRORCODE 228
|
||||
ISR_NOERRORCODE 229
|
||||
ISR_NOERRORCODE 230
|
||||
ISR_NOERRORCODE 231
|
||||
ISR_NOERRORCODE 232
|
||||
ISR_NOERRORCODE 233
|
||||
ISR_NOERRORCODE 234
|
||||
ISR_NOERRORCODE 235
|
||||
ISR_NOERRORCODE 236
|
||||
ISR_NOERRORCODE 237
|
||||
ISR_NOERRORCODE 238
|
||||
ISR_NOERRORCODE 239
|
||||
ISR_NOERRORCODE 240
|
||||
ISR_NOERRORCODE 241
|
||||
ISR_NOERRORCODE 242
|
||||
ISR_NOERRORCODE 243
|
||||
ISR_NOERRORCODE 244
|
||||
ISR_NOERRORCODE 245
|
||||
ISR_NOERRORCODE 246
|
||||
ISR_NOERRORCODE 247
|
||||
ISR_NOERRORCODE 248
|
||||
ISR_NOERRORCODE 249
|
||||
ISR_NOERRORCODE 250
|
||||
ISR_NOERRORCODE 251
|
||||
ISR_NOERRORCODE 252
|
||||
ISR_NOERRORCODE 253
|
||||
ISR_NOERRORCODE 254
|
||||
ISR_NOERRORCODE 255
|
||||
@ -5,18 +5,17 @@
|
||||
;/////////////////////;
|
||||
[bits 32]
|
||||
|
||||
;void __attribute__((cdecl)) i686_IDT_Load(IDTDescriptor* idtDescriptor);
|
||||
; void __attribute__((cdecl)) i686_IDT_Load(IDTDescriptor* idtDescriptor);
|
||||
global i686_IDT_Load
|
||||
i686_IDT_Load:
|
||||
|
||||
; make new call frame
|
||||
push ebp ; save old call frame
|
||||
mov ebp, esp ; initialize new call frame
|
||||
|
||||
; load IDT
|
||||
|
||||
; load idt
|
||||
mov eax, [ebp + 8]
|
||||
lgdt [eax]
|
||||
|
||||
|
||||
lidt [eax]
|
||||
|
||||
; restore old call frame
|
||||
mov esp, ebp
|
||||
|
||||
58
src/kernel/arch/i686/isr.asm
Normal file
58
src/kernel/arch/i686/isr.asm
Normal file
@ -0,0 +1,58 @@
|
||||
;/////////////////////;
|
||||
;Nanite OS ;
|
||||
;COPYRIGHT (C) 2024 ;
|
||||
;Tyler McGurrin ;
|
||||
;/////////////////////;
|
||||
[bits 32]
|
||||
|
||||
extern i686_ISR_Handler
|
||||
|
||||
; cpu pushes to the stack: ss, esp, eflags, cs, eip
|
||||
|
||||
%macro ISR_NOERRORCODE 1
|
||||
|
||||
global i686_ISR%1:
|
||||
i686_ISR%1:
|
||||
push 0 ; push dummy error code
|
||||
push %1 ; push interrupt number
|
||||
jmp isr_common
|
||||
|
||||
%endmacro
|
||||
|
||||
%macro ISR_ERRORCODE 1
|
||||
global i686_ISR%1:
|
||||
i686_ISR%1:
|
||||
; cpu pushes an error code to the stack
|
||||
push %1 ; push interrupt number
|
||||
jmp isr_common
|
||||
|
||||
%endmacro
|
||||
|
||||
%include "arch/i686/gen_isr.inc"
|
||||
|
||||
isr_common:
|
||||
pusha ; pushes in order: eax, ecx, edx, ebx, esp, ebp, esi, edi
|
||||
|
||||
xor eax, eax ; push ds
|
||||
mov ax, ds
|
||||
push eax
|
||||
|
||||
mov ax, 0x10 ; use kernel data segment
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov fs, ax
|
||||
mov gs, ax
|
||||
|
||||
push esp ; pass pointer to stack to C, so we can access all the pushed information
|
||||
call i686_ISR_Handler
|
||||
add esp, 4
|
||||
|
||||
pop eax ; restore old segment
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov fs, ax
|
||||
mov gs, ax
|
||||
|
||||
popa ; pop what we pushed with pusha
|
||||
add esp, 8 ; remove error code and interrupt number
|
||||
iret ; will pop: cs, eip, eflags, ss, esp
|
||||
22
src/kernel/arch/i686/isr.c
Normal file
22
src/kernel/arch/i686/isr.c
Normal file
@ -0,0 +1,22 @@
|
||||
/*----------------*\
|
||||
|Nanite OS |
|
||||
|Copyright (C) 2024|
|
||||
|Tyler McGurrin |
|
||||
\*----------------*/
|
||||
#include "isr.h"
|
||||
#include "idt.h"
|
||||
#include "gdt.h"
|
||||
#include "io.h"
|
||||
#include <stdio.h>
|
||||
|
||||
void i686_ISR_InitializeGates();
|
||||
|
||||
void i686_ISR_Initialize() {
|
||||
i686_ISR_InitializeGates();
|
||||
for (int i = 0; i < 256; i++)
|
||||
i686_IDT_EnableGate(i);
|
||||
}
|
||||
|
||||
void __attribute__((cdecl)) i686_ISR_Handler(Registers* regs) {
|
||||
printf("Interrupt %d\n", regs->interrupt);
|
||||
}
|
||||
21
src/kernel/arch/i686/isr.h
Normal file
21
src/kernel/arch/i686/isr.h
Normal file
@ -0,0 +1,21 @@
|
||||
/*----------------*\
|
||||
|Nanite OS |
|
||||
|Copyright (C) 2024|
|
||||
|Tyler McGurrin |
|
||||
\*----------------*/
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
// in the reverse order they are pushed:
|
||||
uint32_t ds; // data segment pushed by us
|
||||
uint32_t edi, esi, ebp, useless, ebx, edx, ecx, eax; // pusha
|
||||
uint32_t interrupt, error; // we push interrupt, error is pushed automatically (or our dummy)
|
||||
uint32_t eip, cs, eflags, esp, ss; // pushed automatically by CPU
|
||||
} __attribute__((packed)) Registers;
|
||||
|
||||
typedef void (*ISRHandler)(Registers* regs);
|
||||
|
||||
void i686_ISR_Initialize();
|
||||
@ -6,13 +6,21 @@
|
||||
#include "hal.h"
|
||||
#include <arch/i686/gdt.h>
|
||||
#include <arch/i686/idt.h>
|
||||
#include <arch/i686/isr.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void HAL_Initialize() {
|
||||
// init GDT
|
||||
printf("> Initializing GDT...");
|
||||
i686_GDT_Initialize();
|
||||
printf("Done!\n");
|
||||
// init IDT
|
||||
printf("> Initializing IDT...");
|
||||
i686_IDT_Initialize();
|
||||
printf("Done!\n");
|
||||
// init ISR
|
||||
printf("> Initializing ISR...");
|
||||
i686_ISR_Initialize();
|
||||
printf("Done!\n");
|
||||
|
||||
}
|
||||
@ -25,7 +25,14 @@ extern uint8_t __end;
|
||||
int halx, haly = 0;
|
||||
HAL_Initialize();
|
||||
movecursorpos(19, 8);
|
||||
printf("Done!\n\n\n");
|
||||
printf("Done!\n\n\n\n");
|
||||
printf("Testing Interrupts...\n");
|
||||
__asm("int $0x2");
|
||||
printf("Testing Interrupts...\n");
|
||||
__asm("int $0x3");
|
||||
printf("Testing Interrupts...\n");
|
||||
__asm("int $0x4");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user