Cleaning up code
Moving things around, deleting some callins to asm (namely get_rdtsc) since I don't need them right yet
This commit is contained in:
@@ -10,7 +10,6 @@ extern crate rlibc;
|
||||
|
||||
extern {
|
||||
fn asm_printchar() -> u32;
|
||||
fn get_rdtsc() -> u32;
|
||||
fn call_interrupt();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
global long_mode_start
|
||||
global asm_printchar
|
||||
global get_rdtsc
|
||||
global call_interrupt
|
||||
extern rust_interrupt_handler
|
||||
extern rust_handle_keyboard
|
||||
@@ -70,13 +69,8 @@ asm_printchar:
|
||||
mov rax, 0x1
|
||||
ret
|
||||
|
||||
get_rdtsc:
|
||||
rdtsc
|
||||
ret
|
||||
|
||||
call_interrupt:
|
||||
int 9
|
||||
ret
|
||||
; ----------- IDT section ---------------------
|
||||
|
||||
%define PIC1_COMMAND 0x20
|
||||
%define PIC1_DATA 0x21
|
||||
@@ -85,7 +79,6 @@ call_interrupt:
|
||||
|
||||
%define END_OF_INTERRUPT 0x20
|
||||
|
||||
|
||||
%macro interrupt_handler_preamble 0
|
||||
push rax
|
||||
push rcx
|
||||
@@ -128,14 +121,7 @@ handle_keyboard:
|
||||
|
||||
|
||||
handle_timer:
|
||||
push rax
|
||||
push rcx
|
||||
push rdx
|
||||
push r8
|
||||
push r9
|
||||
push r10
|
||||
push r11
|
||||
pushfq
|
||||
interrupt_handler_preamble
|
||||
|
||||
call rust_handle_timer
|
||||
|
||||
@@ -143,15 +129,13 @@ handle_timer:
|
||||
out PIC1_COMMAND, al
|
||||
out PIC2_COMMAND, al
|
||||
|
||||
popfq
|
||||
pop r11
|
||||
pop r10
|
||||
pop r9
|
||||
pop r8
|
||||
pop rdx
|
||||
pop rcx
|
||||
pop rax
|
||||
iretq
|
||||
interrupt_handler_final
|
||||
|
||||
handle_double_fault:
|
||||
interrupt_handler_preamble
|
||||
cli
|
||||
hlt
|
||||
interrupt_handler_final
|
||||
|
||||
;expects name of label, offset in table
|
||||
%macro load_IDT_entry 2
|
||||
@@ -175,12 +159,13 @@ setup_IDT:
|
||||
|
||||
ret
|
||||
|
||||
idt64:
|
||||
resb 50*16
|
||||
.pointer:
|
||||
dw .pointer - idt64
|
||||
dq idt64
|
||||
|
||||
handle_double_fault:
|
||||
interrupt_handler_preamble
|
||||
cli
|
||||
hlt
|
||||
interrupt_handler_final
|
||||
; --------- end of IDT section --------
|
||||
|
||||
setup_PIT:
|
||||
%define PIT_CH0 0x40
|
||||
@@ -197,9 +182,3 @@ setup_PIT:
|
||||
|
||||
ret
|
||||
|
||||
idt64:
|
||||
resb 50*16
|
||||
.pointer:
|
||||
dw .pointer - idt64
|
||||
dq idt64
|
||||
|
||||
|
||||
Reference in New Issue
Block a user