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:
greg
2015-11-23 22:37:20 -08:00
parent fb6d6df087
commit 49c49cb349
2 changed files with 15 additions and 37 deletions

View File

@@ -10,7 +10,6 @@ extern crate rlibc;
extern {
fn asm_printchar() -> u32;
fn get_rdtsc() -> u32;
fn call_interrupt();
}

View File

@@ -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