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 { extern {
fn asm_printchar() -> u32; fn asm_printchar() -> u32;
fn get_rdtsc() -> u32;
fn call_interrupt(); fn call_interrupt();
} }

View File

@@ -1,6 +1,5 @@
global long_mode_start global long_mode_start
global asm_printchar global asm_printchar
global get_rdtsc
global call_interrupt global call_interrupt
extern rust_interrupt_handler extern rust_interrupt_handler
extern rust_handle_keyboard extern rust_handle_keyboard
@@ -70,13 +69,8 @@ asm_printchar:
mov rax, 0x1 mov rax, 0x1
ret ret
get_rdtsc:
rdtsc
ret
call_interrupt: ; ----------- IDT section ---------------------
int 9
ret
%define PIC1_COMMAND 0x20 %define PIC1_COMMAND 0x20
%define PIC1_DATA 0x21 %define PIC1_DATA 0x21
@@ -85,7 +79,6 @@ call_interrupt:
%define END_OF_INTERRUPT 0x20 %define END_OF_INTERRUPT 0x20
%macro interrupt_handler_preamble 0 %macro interrupt_handler_preamble 0
push rax push rax
push rcx push rcx
@@ -128,14 +121,7 @@ handle_keyboard:
handle_timer: handle_timer:
push rax interrupt_handler_preamble
push rcx
push rdx
push r8
push r9
push r10
push r11
pushfq
call rust_handle_timer call rust_handle_timer
@@ -143,15 +129,13 @@ handle_timer:
out PIC1_COMMAND, al out PIC1_COMMAND, al
out PIC2_COMMAND, al out PIC2_COMMAND, al
popfq interrupt_handler_final
pop r11
pop r10 handle_double_fault:
pop r9 interrupt_handler_preamble
pop r8 cli
pop rdx hlt
pop rcx interrupt_handler_final
pop rax
iretq
;expects name of label, offset in table ;expects name of label, offset in table
%macro load_IDT_entry 2 %macro load_IDT_entry 2
@@ -175,12 +159,13 @@ setup_IDT:
ret ret
idt64:
resb 50*16
.pointer:
dw .pointer - idt64
dq idt64
handle_double_fault: ; --------- end of IDT section --------
interrupt_handler_preamble
cli
hlt
interrupt_handler_final
setup_PIT: setup_PIT:
%define PIT_CH0 0x40 %define PIT_CH0 0x40
@@ -197,9 +182,3 @@ setup_PIT:
ret ret
idt64:
resb 50*16
.pointer:
dw .pointer - idt64
dq idt64