/kernel/trunk/test/mm/mapping1/test.c |
---|
46,8 → 46,8 |
printf("Memory management test mapping #1\n"); |
frame0 = frame_alloc(FRAME_KA); |
frame1 = frame_alloc(FRAME_KA); |
frame0 = frame_alloc(FRAME_KA, ONE_FRAME); |
frame1 = frame_alloc(FRAME_KA, ONE_FRAME); |
printf("Writing %L to physical address %P.\n", VALUE0, KA2PA(frame0)); |
*((__u32 *) frame0) = VALUE0; |
/kernel/trunk/kernel.config |
---|
36,5 → 36,5 |
@ [ARCH=mips] "fpu/mips1" Mips FPU test 1 |
@ "print/print1" Printf test 1 |
@ "thread/trhead1" Thread test 1 |
@ "mm/mapping" Mapping test 1 |
@ "mm/mapping1" Mapping test 1 |
! CONFIG_TEST (choice) |
/kernel/trunk/generic/include/mm/frame.h |
---|
36,6 → 36,8 |
#include <synch/spinlock.h> |
#include <mm/buddy.h> |
#define ONE_FRAME 0 |
#define FRAME_KA 1 /* skip frames conflicting with user address space */ |
#define FRAME_PANIC 2 /* panic on failure */ |
/kernel/trunk/generic/src/console/kconsole.c |
---|
425,11 → 425,17 |
return 1; |
} |
/** Print detailed description of 'describe' command. */ |
void desc_help(void) |
{ |
printf("Syntax: describe command_name\n"); |
} |
/** Halt the kernel. |
* |
* @param argv Argument vector. |
* @param argv Argument vector (ignored). |
* |
* @return 0 on failure, 1 on success. |
* @return 0 on failure, 1 on success (never returns). |
*/ |
int cmd_halt(cmd_arg_t *argv) |
{ |
436,9 → 442,3 |
halt(); |
return 1; |
} |
/** Print detailed description of 'describe' command. */ |
void desc_help(void) |
{ |
printf("Syntax: describe command_name\n"); |
} |
/kernel/trunk/generic/src/proc/thread.c |
---|
175,9 → 175,9 |
spinlock_initialize(&t->lock); |
frame_ks = frame_alloc(FRAME_KA,0); |
frame_ks = frame_alloc(FRAME_KA, ONE_FRAME); |
if (THREAD_USER_STACK & flags) { |
frame_us = frame_alloc(FRAME_KA,0); |
frame_us = frame_alloc(FRAME_KA, ONE_FRAME); |
} |
ipl = interrupts_disable(); |
/kernel/trunk/generic/src/cpu/cpu.c |
---|
60,7 → 60,7 |
memsetb((__address) cpus, sizeof(cpu_t) * config.cpu_count, 0); |
for (i=0; i < config.cpu_count; i++) { |
cpus[i].stack = (__u8 *) frame_alloc(FRAME_KA | FRAME_PANIC,0); |
cpus[i].stack = (__u8 *) frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
if (!cpus[i].stack) |
panic("malloc/cpus[%d].stack\n", i); |
/kernel/trunk/generic/src/mm/vm.c |
---|
69,7 → 69,7 |
pte_t *src_ptl0, *dst_ptl0; |
src_ptl0 = (pte_t *) PA2KA((__address) GET_PTL0_ADDRESS()); |
dst_ptl0 = (pte_t *) frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
dst_ptl0 = (pte_t *) frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
// memsetb((__address) dst_ptl0, PAGE_SIZE, 0); |
// memcpy((void *) &dst_ptl0[KAS_START_INDEX], (void *) &src_ptl0[KAS_START_INDEX], KAS_INDICES); |
115,7 → 115,7 |
} |
for (i=0; i<size; i++) |
a->mapping[i] = frame_alloc(0,0); |
a->mapping[i] = frame_alloc(0, ONE_FRAME); |
spinlock_initialize(&a->lock); |
/kernel/trunk/generic/src/mm/page.c |
---|
79,28 → 79,28 |
ptl0 = (pte_t *) PA2KA(root ? root : (__address) GET_PTL0_ADDRESS()); |
if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT) { |
newpt = frame_alloc(FRAME_KA, 0); |
newpt = frame_alloc(FRAME_KA, ONE_FRAME); |
memsetb(newpt, PAGE_SIZE, 0); |
SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(page), KA2PA(newpt)); |
SET_PTL1_FLAGS(ptl0, PTL0_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC); |
SET_PTL1_FLAGS(ptl0, PTL0_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE); |
} |
ptl1 = (pte_t *) PA2KA(GET_PTL1_ADDRESS(ptl0, PTL0_INDEX(page))); |
if (GET_PTL2_FLAGS(ptl1, PTL1_INDEX(page)) & PAGE_NOT_PRESENT) { |
newpt = frame_alloc(FRAME_KA, 0); |
newpt = frame_alloc(FRAME_KA, ONE_FRAME); |
memsetb(newpt, PAGE_SIZE, 0); |
SET_PTL2_ADDRESS(ptl1, PTL1_INDEX(page), KA2PA(newpt)); |
SET_PTL2_FLAGS(ptl1, PTL1_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC); |
SET_PTL2_FLAGS(ptl1, PTL1_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE); |
} |
ptl2 = (pte_t *) PA2KA(GET_PTL2_ADDRESS(ptl1, PTL1_INDEX(page))); |
if (GET_PTL3_FLAGS(ptl2, PTL2_INDEX(page)) & PAGE_NOT_PRESENT) { |
newpt = frame_alloc(FRAME_KA, 0); |
newpt = frame_alloc(FRAME_KA, ONE_FRAME); |
memsetb(newpt, PAGE_SIZE, 0); |
SET_PTL3_ADDRESS(ptl2, PTL2_INDEX(page), KA2PA(newpt)); |
SET_PTL3_FLAGS(ptl2, PTL2_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC); |
SET_PTL3_FLAGS(ptl2, PTL2_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE); |
} |
ptl3 = (pte_t *) PA2KA(GET_PTL3_ADDRESS(ptl2, PTL2_INDEX(page))); |
/kernel/trunk/arch/amd64/src/mm/page.c |
---|
43,7 → 43,7 |
__address cur; |
if (config.cpu_active == 1) { |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memsetb(dba, PAGE_SIZE, 0); |
bootstrap_dba = dba; |
66,7 → 66,7 |
* processor and adjusts it to fulfill its needs. |
*/ |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
write_cr3(KA2PA(dba)); |
} |
/kernel/trunk/arch/mips32/src/mm/page.c |
---|
39,7 → 39,7 |
{ |
__address ptl0; |
ptl0 = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
ptl0 = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memsetb(ptl0, FRAME_SIZE, 0); |
SET_PTL0_ADDRESS(KA2PA(ptl0)); |
/kernel/trunk/arch/ia32/src/mm/page.c |
---|
48,7 → 48,7 |
__address cur; |
if (config.cpu_active == 1) { |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memsetb(dba, PAGE_SIZE, 0); |
bootstrap_dba = dba; |
70,7 → 70,7 |
* processor and adjusts it to fulfill its needs. |
*/ |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
write_cr3(KA2PA(dba)); |
} |