/SPARTAN/trunk/arch/amd64/include/asm.h |
53,13 → 53,13 |
{ |
__u8 out; |
|
asm ( |
__asm__ volatile ( |
"mov %1, %%dx;" |
"inb %%dx,%%al;" |
"mov %%al, %0;" |
:"=m"(out) |
:"m"(port) |
:"%dx","%al" |
:"%rdx","%rax" |
); |
return out; |
} |
66,13 → 66,13 |
|
static inline __u8 outb(__u16 port,__u8 b) |
{ |
asm ( |
__asm__ volatile ( |
"mov %0,%%dx;" |
"mov %1,%%al;" |
"outb %%al,%%dx;" |
: |
:"m"( port), "m" (b) |
:"%dx","%al" |
:"%rdx","%rax" |
); |
} |
|
/SPARTAN/trunk/arch/amd64/src/asm_utils.S |
39,17 → 39,22 |
.text |
.global interrupt_handlers |
.global panic_printf |
.global cpuid |
|
panic_printf: |
movq $halt, (%rsp) |
jmp printf |
|
.global memcpy |
memcpy: |
jmp _memcpy |
|
.global cpuid |
.global has_cpuid |
.global rdtsc |
.global read_efer_flag |
.global set_efer_flag |
|
|
## Determine CPUID support |
# |
# Return 0 in EAX if CPUID is not support, 1 if supported. |