Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 547 → Rev 548

/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));
}