- Timestamp:
- 2006-02-01T00:02:16Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 071a8ae6
- Parents:
- fc1e4f6
- Location:
- arch
- Files:
-
- 5 added
- 21 edited
-
amd64/Makefile.inc (modified) (1 diff)
-
amd64/include/mm/as.h (modified) (1 diff)
-
amd64/src/mm/as.c (added)
-
amd64/src/mm/page.c (modified) (2 diffs)
-
ia32/Makefile.inc (modified) (1 diff)
-
ia32/include/mm/as.h (modified) (1 diff)
-
ia32/src/drivers/ega.c (modified) (1 diff)
-
ia32/src/mm/as.c (added)
-
ia32/src/mm/page.c (modified) (2 diffs)
-
ia32/src/smp/smp.c (modified) (1 diff)
-
ia64/Makefile.inc (modified) (1 diff)
-
ia64/include/mm/as.h (modified) (1 diff)
-
ia64/include/mm/page.h (modified) (1 diff)
-
ia64/src/mm/as.c (added)
-
ia64/src/mm/tlb.c (modified) (1 diff)
-
mips32/include/mm/as.h (modified) (1 diff)
-
mips32/src/mm/as.c (modified) (3 diffs)
-
mips32/src/mm/tlb.c (modified) (2 diffs)
-
ppc32/Makefile.inc (modified) (1 diff)
-
ppc32/include/mm/as.h (modified) (1 diff)
-
ppc32/src/mm/as.c (added)
-
sparc64/Makefile.inc (modified) (1 diff)
-
sparc64/include/mm/as.h (modified) (1 diff)
-
sparc64/include/mm/frame.h (modified) (1 diff)
-
sparc64/include/mm/page.h (modified) (1 diff)
-
sparc64/src/mm/as.c (added)
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/Makefile.inc
rfc1e4f6 ref67bab 88 88 arch/$(ARCH)/src/bios/bios.c \ 89 89 arch/$(ARCH)/src/interrupt.c \ 90 arch/$(ARCH)/src/mm/as.c \ 90 91 arch/$(ARCH)/src/mm/frame.c \ 91 92 arch/$(ARCH)/src/mm/page.c \ -
arch/amd64/include/mm/as.h
rfc1e4f6 ref67bab 43 43 #define as_install_arch(as) 44 44 45 extern void as_arch_init(void); 46 45 47 #endif -
arch/amd64/src/mm/page.c
rfc1e4f6 ref67bab 39 39 #include <interrupt.h> 40 40 41 static __address bootstrap_dba;42 43 41 void page_arch_init(void) 44 42 { 45 __address dba;46 43 __address cur; 47 44 … … 49 46 page_operations = &page_pt_operations; 50 47 51 dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME, NULL);52 memsetb(dba, PAGE_SIZE, 0);53 54 bootstrap_dba = dba;55 56 48 /* 57 49 * PA2KA(identity) mapping for all frames. 58 50 */ 59 51 for (cur = 0; cur < last_frame; cur += FRAME_SIZE) { 60 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE | PAGE_EXEC , KA2PA(dba));52 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE | PAGE_EXEC); 61 53 } 62 54 63 55 exc_register(14, "page_fault", page_fault); 64 write_cr3( KA2PA(dba));56 write_cr3((__address) AS_KERNEL->page_table); 65 57 } 66 58 else { 67 write_cr3( KA2PA(bootstrap_dba));59 write_cr3((__address) AS_KERNEL->page_table); 68 60 } 69 61 } -
arch/ia32/Makefile.inc
rfc1e4f6 ref67bab 111 111 arch/$(ARCH)/src/userspace.c \ 112 112 arch/$(ARCH)/src/cpu/cpu.c \ 113 arch/$(ARCH)/src/mm/as.c \ 113 114 arch/$(ARCH)/src/mm/frame.c \ 114 115 arch/$(ARCH)/src/mm/memory_init.c \ -
arch/ia32/include/mm/as.h
rfc1e4f6 ref67bab 43 43 #define as_install_arch(as) 44 44 45 extern void as_arch_init(void); 46 45 47 #endif -
arch/ia32/src/drivers/ega.c
rfc1e4f6 ref67bab 60 60 __u8 hi, lo; 61 61 62 page_mapping_insert(AS_KERNEL, PA2KA(VIDEORAM), VIDEORAM, PAGE_NOT_CACHEABLE , 0);62 page_mapping_insert(AS_KERNEL, PA2KA(VIDEORAM), VIDEORAM, PAGE_NOT_CACHEABLE); 63 63 outb(0x3d4,0xe); 64 64 hi = inb(0x3d5); -
arch/ia32/src/mm/page.c
rfc1e4f6 ref67bab 43 43 #include <interrupt.h> 44 44 45 static __address bootstrap_dba;46 47 45 void page_arch_init(void) 48 46 { 49 __address dba;50 47 __address cur; 51 48 … … 53 50 page_operations = &page_pt_operations; 54 51 55 dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME, NULL);56 memsetb(dba, PAGE_SIZE, 0);57 58 bootstrap_dba = dba;59 60 52 /* 61 53 * PA2KA(identity) mapping for all frames until last_frame. 62 54 */ 63 55 for (cur = 0; cur < last_frame; cur += FRAME_SIZE) 64 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE , KA2PA(dba));56 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, PAGE_CACHEABLE); 65 57 66 58 exc_register(14, "page_fault", page_fault); 67 write_cr3( KA2PA(dba));59 write_cr3((__address) AS_KERNEL->page_table); 68 60 } 69 61 else { 70 write_cr3( KA2PA(bootstrap_dba));62 write_cr3((__address) AS_KERNEL->page_table); 71 63 } 72 64 -
arch/ia32/src/smp/smp.c
rfc1e4f6 ref67bab 67 67 if (config.cpu_count > 1) { 68 68 page_mapping_insert(AS_KERNEL, (__address) l_apic, (__address) l_apic, 69 PAGE_NOT_CACHEABLE , 0);69 PAGE_NOT_CACHEABLE); 70 70 page_mapping_insert(AS_KERNEL, (__address) io_apic, (__address) io_apic, 71 PAGE_NOT_CACHEABLE , 0);71 PAGE_NOT_CACHEABLE); 72 72 } 73 73 -
arch/ia64/Makefile.inc
rfc1e4f6 ref67bab 65 65 arch/$(ARCH)/src/ivt.S \ 66 66 arch/$(ARCH)/src/interrupt.c \ 67 arch/$(ARCH)/src/mm/as.c \ 67 68 arch/$(ARCH)/src/mm/frame.c \ 68 69 arch/$(ARCH)/src/mm/page.c \ -
arch/ia64/include/mm/as.h
rfc1e4f6 ref67bab 43 43 #define as_install_arch(as) 44 44 45 extern void as_arch_init(void); 46 45 47 #endif -
arch/ia64/include/mm/page.h
rfc1e4f6 ref67bab 44 44 #define PA2KA(x) ((__address) (x)) 45 45 46 #define GET_PTL0_ADDRESS_ARCH() ((pte_t *) 0) 47 #define SET_PTL0_ADDRESS_ARCH(ptl0) 46 #define SET_PTL0_ADDRESS_ARCH(x) /**< To be removed as situation permits. */ 48 47 49 48 /** Implementation of page hash table interface. */ 50 #define HT_ ENTRIES_ARCH (VHPT_SIZE/sizeof(pte_t))49 #define HT_WIDTH_ARCH 20 /* 1M */ 51 50 #define HT_HASH_ARCH(page, asid) vhpt_hash((page), (asid)) 52 51 #define HT_COMPARE_ARCH(page, asid, t) vhpt_compare((page), (asid), (t)) -
arch/ia64/src/mm/tlb.c
rfc1e4f6 ref67bab 34 34 #include <arch/mm/asid.h> 35 35 36 /** Invalidate all TLB entries. 37 * 38 * Because of ASID management, region registers must be reset 39 * with new RIDs derived from the potentionally new ASID. 40 */ 36 /** Invalidate all TLB entries. */ 41 37 void tlb_invalidate_all(void) 42 38 { -
arch/mips32/include/mm/as.h
rfc1e4f6 ref67bab 42 42 #define UDATA_ADDRESS_ARCH 0x01001000 43 43 44 extern void as_arch_init(void); 45 44 46 #endif -
arch/mips32/src/mm/as.c
rfc1e4f6 ref67bab 28 28 29 29 #include <arch/mm/as.h> 30 #include <genarch/mm/as_pt.h> 30 31 #include <arch/mm/tlb.h> 31 32 #include <mm/tlb.h> … … 33 34 #include <arch/cp0.h> 34 35 #include <arch.h> 36 37 /** Architecture dependent address space init. */ 38 void as_arch_init(void) 39 { 40 as_operations = &as_pt_operations; 41 } 35 42 36 43 /** Install address space. … … 57 64 interrupts_restore(ipl); 58 65 } 66 -
arch/mips32/src/mm/tlb.c
rfc1e4f6 ref67bab 340 340 * Check if the mapping exists in page tables. 341 341 */ 342 pte = page_mapping_find(AS, badvaddr , 0);342 pte = page_mapping_find(AS, badvaddr); 343 343 if (pte && pte->lo.v) { 344 344 /* … … 357 357 * The mapping ought to be in place. 358 358 */ 359 pte = page_mapping_find(AS, badvaddr , 0);359 pte = page_mapping_find(AS, badvaddr); 360 360 ASSERT(pte && pte->lo.v); 361 361 return pte; -
arch/ppc32/Makefile.inc
rfc1e4f6 ref67bab 61 61 arch/$(ARCH)/src/asm.S \ 62 62 arch/$(ARCH)/src/cpu/cpu.c \ 63 arch/$(ARCH)/src/mm/as.c \ 63 64 arch/$(ARCH)/src/mm/frame.c \ 64 65 arch/$(ARCH)/src/mm/memory_init.c \ -
arch/ppc32/include/mm/as.h
rfc1e4f6 ref67bab 43 43 #define as_install_arch(as) 44 44 45 extern void as_arch_init(void); 46 45 47 #endif -
arch/sparc64/Makefile.inc
rfc1e4f6 ref67bab 65 65 arch/$(ARCH)/src/context.S \ 66 66 arch/$(ARCH)/src/dummy.s \ 67 arch/$(ARCH)/src/mm/as.c \ 67 68 arch/$(ARCH)/src/mm/frame.c \ 68 69 arch/$(ARCH)/src/mm/page.c \ -
arch/sparc64/include/mm/as.h
rfc1e4f6 ref67bab 43 43 #define as_install_arch(as) 44 44 45 extern void as_arch_init(void); 46 45 47 #endif -
arch/sparc64/include/mm/frame.h
rfc1e4f6 ref67bab 32 32 #include <arch/types.h> 33 33 34 #define FRAME_SIZE 8192 34 #define FRAME_WIDTH 13 35 #define FRAME_SIZE (1<<FRAME_WIDTH) 35 36 36 37 union frame_address { -
arch/sparc64/include/mm/page.h
rfc1e4f6 ref67bab 39 39 #define PA2KA(x) ((__address) (x)) 40 40 41 #define GET_PTL0_ADDRESS_ARCH() 0 42 #define SET_PTL0_ADDRESS_ARCH(ptl0) 41 #define SET_PTL0_ADDRESS_ARCH(x) /**< To be removed as situation permits. */ 43 42 44 43 /** Implementation of page hash table interface. */ 45 #define HT_ ENTRIES_ARCH 044 #define HT_WIDTH_ARCH 20 /* 1M */ 46 45 #define HT_HASH_ARCH(page, asid) 0 47 46 #define HT_COMPARE_ARCH(page, asid, t) 0
Note:
See TracChangeset
for help on using the changeset viewer.
