Changeset 03427d0 in mainline for arch/ia64/src/mm/as.c
- Timestamp:
- 2006-03-02T17:57:45Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9459255
- Parents:
- 9ad03fe
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/src/mm/as.c
r9ad03fe r03427d0 28 28 29 29 #include <arch/mm/as.h> 30 #include <arch/mm/asid.h> 31 #include <arch/mm/page.h> 30 32 #include <genarch/mm/as_ht.h> 31 33 #include <genarch/mm/asid_fifo.h> 34 #include <mm/asid.h> 35 #include <arch.h> 36 #include <arch/barrier.h> 37 #include <synch/spinlock.h> 32 38 33 39 /** Architecture dependent address space init. */ … … 37 43 asid_fifo_init(); 38 44 } 45 46 /** Prepare registers for switching to another address space. 47 * 48 * @param as Address space. 49 */ 50 void as_install_arch(as_t *as) 51 { 52 ipl_t ipl; 53 region_register rr; 54 int i; 55 56 ipl = interrupts_disable(); 57 spinlock_lock(&as->lock); 58 59 ASSERT(as->asid != ASID_INVALID); 60 61 /* 62 * Load respective ASID (7 consecutive RIDs) to 63 * region registers. 64 */ 65 for (i = 0; i < REGION_REGISTERS; i++) { 66 if (i == VRN_KERNEL) 67 continue; 68 69 rr.word = rr_read(i); 70 rr.map.ve = false; /* disable VHPT walker */ 71 rr.map.rid = ASID2RID(as->asid, i); 72 rr.map.ps = PAGE_WIDTH; 73 rr_write(i, rr.word); 74 } 75 srlz_d(); 76 srlz_i(); 77 78 spinlock_unlock(&as->lock); 79 interrupts_restore(ipl); 80 }
Note:
See TracChangeset
for help on using the changeset viewer.