/SPARTAN/trunk/arch/ia32/src/ia32.c |
---|
44,7 → 44,22 |
#include <arch/interrupt.h> |
#include <arch/asm.h> |
void write_dr0(__u32 v) |
{ |
__asm__("movl %0,%%dr0" : : "r" (v)); |
} |
inline __u32 read_dr0(void) |
{ |
__u32 v; |
__asm__("movl %%dr0,%0\n" : "=r" (v)); |
return v; |
} |
void arch_pre_mm_init(void) |
{ |
pm_init(); |
/SPARTAN/trunk/arch/ia32/src/smp/mp.c |
---|
494,7 → 494,7 |
continue; |
if (pr[i].l_apic_id == l_apic_id()) { |
printf("%X: bad processor entry #%d, will not send IPI to myself\n", &pr[i], i); |
printf("%L: bad processor entry #%d, will not send IPI to myself\n", &pr[i], i); |
continue; |
} |
/SPARTAN/trunk/arch/ia32/src/asm.s |
---|
52,20 → 52,7 |
.global memsetb |
.global memsetw |
.global memcmp |
.global write_dr0 |
.global read_dr0 |
write_dr0: |
pushl %eax |
movl 8(%esp),%eax |
movl %eax,%dr0 |
popl %eax |
ret |
read_dr0: |
movl %dr0,%eax |
ret |
# |
# set priority level high |
cpu_priority_high: |