/kernel/trunk/contrib/conf/msim.conf |
---|
5,9 → 5,9 |
add dcpu mips1 |
add rwm firstmem 0x0 1M load "/dev/zero" |
add rwm mainmem 0x00100000 16M load "kernel.bin" |
add rom startmem 0x1fc00000 1k load "load.bin" |
add rwm init 0x20000000 1M load "init |
add rwm mainmem 0x00100000 16M load "kernel/kernel.bin" |
add rom startmem 0x1fc00000 1k load "kernel/load.bin" |
add rwm init 0x20000000 1M load "uspace/init/init" |
add dprinter printer 0x10000000 |
add dkeyboard keyboard 0x10000000 2 |
/kernel/trunk/arch/amd64/include/interrupt.h |
---|
71,7 → 71,6 |
extern void page_fault(int n, struct interrupt_context *ctx); |
extern void syscall(int n, void *stack); |
extern void tlb_shootdown_ipi(int n, void *stack); |
extern void wakeup_ipi(int n, void *stack); |
extern void trap_virtual_enable_irqs(__u16 irqmask); |
extern void trap_virtual_disable_irqs(__u16 irqmask); |
/kernel/trunk/arch/amd64/include/mm/page.h |
---|
101,7 → 101,8 |
p->uaccessible<<PAGE_USER_SHIFT | |
1<<PAGE_READ_SHIFT | |
p->writeable<<PAGE_WRITE_SHIFT | |
(!p->no_execute)<<PAGE_EXEC_SHIFT |
(!p->no_execute)<<PAGE_EXEC_SHIFT | |
p->global<<PAGE_GLOBAL_SHIFT |
); |
} |
122,6 → 123,7 |
p->uaccessible = (flags & PAGE_USER) != 0; |
p->writeable = (flags & PAGE_WRITE) != 0; |
p->no_execute = (flags & PAGE_EXEC) == 0; |
p->global = (flags & PAGE_GLOBAL) != 0; |
} |
extern void page_arch_init(void); |
/kernel/trunk/arch/amd64/src/amd64.c |
---|
121,7 → 121,6 |
#ifdef CONFIG_SMP |
exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", |
tlb_shootdown_ipi); |
exc_register(VECTOR_WAKEUP_IPI, "wakeup_ipi", wakeup_ipi); |
#endif /* CONFIG_SMP */ |
} |
} |
/kernel/trunk/arch/amd64/src/mm/page.c |
---|
41,6 → 41,7 |
void page_arch_init(void) |
{ |
__address cur; |
int flags; |
if (config.cpu_active == 1) { |
page_mapping_operations = &pt_mapping_operations; |
49,7 → 50,10 |
* PA2KA(identity) mapping for all frames. |
*/ |
for (cur = 0; cur < last_frame; cur += FRAME_SIZE) { |
page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE | PAGE_EXEC); |
flags = PAGE_CACHEABLE | PAGE_EXEC; |
if ((PA2KA(cur) >= config.base) && (PA2KA(cur) < config.base + config.kernel_size)) |
flags |= PAGE_GLOBAL; |
page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); |
} |
exc_register(14, "page_fault", (iroutine)page_fault); |
write_cr3((__address) AS_KERNEL->page_table); |
/kernel/trunk/arch/amd64/src/interrupt.c |
---|
141,11 → 141,6 |
tlb_shootdown_ipi_recv(); |
} |
void wakeup_ipi(int n, void *stack) |
{ |
trap_virtual_eoi(); |
} |
void trap_virtual_enable_irqs(__u16 irqmask) |
{ |
if (enable_irqs_function) |
/kernel/trunk/arch/mips32/include/mm/page.h |
---|
99,7 → 99,8 |
(1<<PAGE_USER_SHIFT) | |
(1<<PAGE_READ_SHIFT) | |
((p->w)<<PAGE_WRITE_SHIFT) | |
(1<<PAGE_EXEC_SHIFT) |
(1<<PAGE_EXEC_SHIFT) | |
p->lo.g<<PAGE_GLOBAL_SHIFT |
); |
} |
110,6 → 111,7 |
p->lo.c = (flags & PAGE_CACHEABLE) != 0 ? PAGE_CACHEABLE_EXC_WRITE : PAGE_UNCACHED; |
p->lo.v = !(flags & PAGE_NOT_PRESENT); |
p->lo.g = (flags & PAGE_GLOBAL) != 0; |
p->w = (flags & PAGE_WRITE) != 0; |
} |
/kernel/trunk/arch/ia32/include/interrupt.h |
---|
59,7 → 59,6 |
#define VECTOR_SYSCALL (IVT_FREEBASE+0) |
#define VECTOR_TLB_SHOOTDOWN_IPI (IVT_FREEBASE+1) |
#define VECTOR_WAKEUP_IPI (IVT_FREEBASE+2) |
extern void (* disable_irqs_function)(__u16 irqmask); |
extern void (* enable_irqs_function)(__u16 irqmask); |
72,7 → 71,6 |
extern void page_fault(int n, void *stack); |
extern void syscall(int n, void *stack); |
extern void tlb_shootdown_ipi(int n, void *stack); |
extern void wakeup_ipi(int n, void *stack); |
extern void trap_virtual_enable_irqs(__u16 irqmask); |
extern void trap_virtual_disable_irqs(__u16 irqmask); |
/kernel/trunk/arch/ia32/include/mm/page.h |
---|
85,7 → 85,8 |
unsigned page_cache_disable : 1; |
unsigned accessed : 1; |
unsigned dirty : 1; |
unsigned : 2; |
unsigned pat : 1; |
unsigned global : 1; |
unsigned avl : 3; |
unsigned frame_address : 20; |
} __attribute__ ((packed)); |
100,7 → 101,8 |
p->uaccessible<<PAGE_USER_SHIFT | |
1<<PAGE_READ_SHIFT | |
p->writeable<<PAGE_WRITE_SHIFT | |
1<<PAGE_EXEC_SHIFT |
1<<PAGE_EXEC_SHIFT | |
p->global<<PAGE_GLOBAL_SHIFT |
); |
} |
112,6 → 114,7 |
p->present = !(flags & PAGE_NOT_PRESENT); |
p->uaccessible = (flags & PAGE_USER) != 0; |
p->writeable = (flags & PAGE_WRITE) != 0; |
p->global = (flags & PAGE_GLOBAL) != 0; |
} |
extern void page_arch_init(void); |
/kernel/trunk/arch/ia32/src/ia32.c |
---|
65,7 → 65,6 |
#ifdef CONFIG_SMP |
exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", |
tlb_shootdown_ipi); |
exc_register(VECTOR_WAKEUP_IPI, "wakeup_ipi", wakeup_ipi); |
#endif /* CONFIG_SMP */ |
} |
} |
/kernel/trunk/arch/ia32/src/mm/page.c |
---|
45,6 → 45,7 |
void page_arch_init(void) |
{ |
__address cur; |
int flags; |
if (config.cpu_active == 1) { |
page_mapping_operations = &pt_mapping_operations; |
52,8 → 53,12 |
/* |
* PA2KA(identity) mapping for all frames until last_frame. |
*/ |
for (cur = 0; cur < last_frame; cur += FRAME_SIZE) |
page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE); |
for (cur = 0; cur < last_frame; cur += FRAME_SIZE) { |
flags = PAGE_CACHEABLE; |
if ((PA2KA(cur) >= config.base) && (PA2KA(cur) < config.base + config.kernel_size)) |
flags |= PAGE_GLOBAL; |
page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); |
} |
exc_register(14, "page_fault", page_fault); |
write_cr3((__address) AS_KERNEL->page_table); |
/kernel/trunk/arch/ia32/src/interrupt.c |
---|
127,11 → 127,6 |
tlb_shootdown_ipi_recv(); |
} |
void wakeup_ipi(int n, void *stack) |
{ |
trap_virtual_eoi(); |
} |
void trap_virtual_enable_irqs(__u16 irqmask) |
{ |
if (enable_irqs_function) |