Changeset 992bbb97 in mainline
- Timestamp:
- 2005-06-29T20:53:18Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ff9f858
- Parents:
- b60a22c
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/mm/page.h
rb60a22c r992bbb97 38 38 #define PA2KA(x) ((x) + 0x80000000) 39 39 40 /* 41 * Implementation of generic 4-level page table interface. 42 * IA-32 has 2-level page tables, so PTL1 and PTL2 are left out. 43 */ 44 #define PTL0_INDEX_ARCH(vaddr) (((vaddr)>>22)&0x3ff) 45 #define PTL1_INDEX_ARCH(vaddr) 0 46 #define PTL2_INDEX_ARCH(vaddr) 0 47 #define PTL3_INDEX_ARCH(vaddr) (((vaddr)>>12)&0x3ff) 48 49 #define GET_PTL1_ADDRESS_ARCH(ptl0, i) ((pte_t *)((((pte_t *)(ptl0))[(i)].frame_address)<<12)) 50 #define GET_PTL2_ADDRESS_ARCH(ptl1, i) (ptl1) 51 #define GET_PTL3_ADDRESS_ARCH(ptl2, i) (ptl2) 52 #define GET_FRAME_ADDRESS_ARCH(ptl3, i) ((__address)((((pte_t *)(ptl3))[(i)].frame_address)<<12)) 53 54 40 55 struct page_specifier { 41 56 unsigned present : 1; … … 51 66 } __attribute__ ((packed)); 52 67 68 typedef struct page_specifier pte_t; 69 53 70 extern void page_arch_init(void); 54 71 -
include/mm/page.h
rb60a22c r992bbb97 47 47 #define PAGE_EXEC (1<<5) 48 48 49 /* 50 * This is the generic 4-level page table interface. 51 * Architectures are supposed to implement *_ARCH macros. 52 */ 53 54 /* 55 * These macros process vaddr and extract those portions 56 * of it that function as indices to respective page tables. 57 */ 58 #define PTL0_INDEX(vaddr) PTL0_INDEX_ARCH(vaddr) 59 #define PTL1_INDEX(vaddr) PTL1_INDEX_ARCH(vaddr) 60 #define PTL2_INDEX(vaddr) PTL2_INDEX_ARCH(vaddr) 61 #define PTL3_INDEX(vaddr) PTL3_INDEX_ARCH(vaddr) 62 63 /* 64 * These macros traverse the 4-level tree of page tables, 65 * each descending by one level. 66 */ 67 #define GET_PTL1_ADDRESS(ptl0, i) GET_PTL1_ADDRESS_ARCH(ptl0, i) 68 #define GET_PTL2_ADDRESS(ptl1, i) GET_PTL2_ADDRESS_ARCH(ptl1, i) 69 #define GET_PTL3_ADDRESS(ptl2, i) GET_PTL3_ADDRESS_ARCH(ptl2, i) 70 #define GET_FRAME_ADDRESS(ptl3, i) GET_FRAME_ADDRESS_ARCH(ptl3, i) 71 72 /* 73 * These macros are provided to change shape of the 4-level 74 * tree of page tables on respective level. 75 */ 76 #define SET_PTL1_ADDRESS(ptl0, i, a) SET_PTL1_ADDRESS_ARCH(ptl0, i, a) 77 #define SET_PTL2_ADDRESS(ptl1, i, a) SET_PTL2_ADDRESS_ARCH(ptl1, i, a) 78 #define SET_PTL3_ADDRESS(ptl2, i, a) SET_PTL3_ADDRESS_ARCH(ptl2, i, a) 79 #define SET_FRAME_ADDRESS(ptl3, i, a) SET_FRAME_ADDRESS_ARCH(ptl3, i, a) 80 81 /* 82 * These macros are provided to set/clear various flags within the page tables. 83 */ 84 #define SET_PTL1_FLAGS(ptl0, i, x) SET_PTL1_FLAGS_ARCH(ptl0, i, x) 85 #define SET_PTL2_FLAGS(ptl1, i, x) SET_PTL2_FLAGS_ARCH(ptl1, i, x) 86 #define SET_PTL3_FLAGS(ptl2, i, x) SET_PTL3_FLAGS_ARCH(ptl2, i, x) 87 #define SET_FRAME_FLAGS(ptl3, i, x) SET_FRAME_FLAGS_ARCH(ptl3, i, x) 88 89 49 90 extern void page_init(void); 50 91 extern void map_page_to_frame(__address page, __address frame, int flags, __address root); -
src/Makefile.config
rb60a22c r992bbb97 18 18 19 19 # Uncomment if you want to compile in userspace support 20 USERSPACE=__USERSPACE__20 #USERSPACE=__USERSPACE__ 21 21 22 22 # Uncomment if you want to run in the test mode 23 TEST=__TEST__23 #TEST=__TEST__ 24 24 25 25 TEST_FILE=test.c -
test/fpu/fpu1/test.c
rb60a22c r992bbb97 70 70 } 71 71 72 atomic_inc( (int *)&threads_ok);72 atomic_inc(&threads_ok); 73 73 } 74 74 … … 100 100 } 101 101 102 atomic_inc( (int *)&threads_ok);102 atomic_inc(&threads_ok); 103 103 } 104 104 -
test/synch/rwlock5/test.c
rb60a22c r992bbb97 42 42 43 43 static waitq_t can_start; 44 static int items_read;45 static int items_written;44 static volatile int items_read; 45 static volatile int items_written; 46 46 47 47 static void writer(void *arg); -
test/synch/semaphore1/test.c
rb60a22c r992bbb97 43 43 44 44 static waitq_t can_start; 45 static int items_produced;46 static int items_consumed;45 static volatile int items_produced; 46 static volatile int items_consumed; 47 47 48 48 static void consumer(void *arg);
Note:
See TracChangeset
for help on using the changeset viewer.