Rev 168 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 168 | Rev 195 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | #include <config.h> |
38 | #include <config.h> |
39 | #include <list.h> |
39 | #include <list.h> |
40 | #include <panic.h> |
40 | #include <panic.h> |
41 | #include <arch/asm.h> |
41 | #include <arch/asm.h> |
42 | #include <debug.h> |
42 | #include <debug.h> |
- | 43 | #include <memstr.h> |
|
- | 44 | #include <arch.h> |
|
43 | 45 | ||
44 | #define KAS_START_INDEX PTL0_INDEX(KERNEL_ADDRESS_SPACE_START) |
46 | #define KAS_START_INDEX PTL0_INDEX(KERNEL_ADDRESS_SPACE_START) |
45 | #define KAS_END_INDEX PTL0_INDEX(KERNEL_ADDRESS_SPACE_END) |
47 | #define KAS_END_INDEX PTL0_INDEX(KERNEL_ADDRESS_SPACE_END) |
46 | #define KAS_INDICES (1+(KAS_END_INDEX-KAS_START_INDEX)) |
48 | #define KAS_INDICES (1+(KAS_END_INDEX-KAS_START_INDEX)) |
47 | 49 | ||
Line 64... | Line 66... | ||
64 | 66 | ||
65 | src_ptl0 = (pte_t *) PA2KA((__address) GET_PTL0_ADDRESS()); |
67 | src_ptl0 = (pte_t *) PA2KA((__address) GET_PTL0_ADDRESS()); |
66 | dst_ptl0 = (pte_t *) frame_alloc(FRAME_KA | FRAME_PANIC); |
68 | dst_ptl0 = (pte_t *) frame_alloc(FRAME_KA | FRAME_PANIC); |
67 | // memsetb((__address) dst_ptl0, PAGE_SIZE, 0); |
69 | // memsetb((__address) dst_ptl0, PAGE_SIZE, 0); |
68 | // memcopy((__address) &src_ptl0[KAS_START_INDEX], (__address) &dst_ptl0[KAS_START_INDEX], KAS_INDICES*sizeof(pte_t)); |
70 | // memcopy((__address) &src_ptl0[KAS_START_INDEX], (__address) &dst_ptl0[KAS_START_INDEX], KAS_INDICES*sizeof(pte_t)); |
69 | memcopy(PA2KA((__address) GET_PTL0_ADDRESS()), (__address) dst_ptl0, PAGE_SIZE); |
71 | memcopy((void *)PA2KA((__address) dst_ptl0), (void *)GET_PTL0_ADDRESS() , PAGE_SIZE); |
70 | m->ptl0 = (pte_t *) KA2PA((__address) dst_ptl0); |
72 | m->ptl0 = (pte_t *) KA2PA((__address) dst_ptl0); |
71 | } |
73 | } |
72 | } |
74 | } |
73 | 75 | ||
74 | return m; |
76 | return m; |