Changeset b3f8fb7 in mainline for kernel/arch/ia64/src/mm/vhpt.c
- Timestamp:
- 2007-01-28T13:25:49Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8e8c1a5
- Parents:
- 1ba41c5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/vhpt.c
r1ba41c5 rb3f8fb7 33 33 */ 34 34 35 #include <memstr.h> 35 36 #include <arch/mm/vhpt.h> 36 37 #include <mm/frame.h> … … 41 42 uintptr_t vhpt_set_up(void) 42 43 { 43 vhpt_base = frame_alloc(VHPT_WIDTH -FRAME_WIDTH,FRAME_KA | FRAME_ATOMIC);44 if (!vhpt_base)44 vhpt_base = frame_alloc(VHPT_WIDTH - FRAME_WIDTH, FRAME_KA | FRAME_ATOMIC); 45 if (!vhpt_base) 45 46 panic("Kernel configured with VHPT but no memory for table."); 46 47 vhpt_invalidate_all(); … … 62 63 rid = ASID2RID(asid, vrn); 63 64 64 65 66 67 68 65 rr_save.word = rr_read(vrn); 66 rr.word = rr_save.word; 67 rr.map.rid = rid; 68 rr_write(vrn, rr.word); 69 srlz_i(); 69 70 70 71 ventry = (vhpt_entry_t *) thash(va); 71 72 73 74 72 tag = ttag(va); 73 rr_write(vrn, rr_save.word); 74 srlz_i(); 75 srlz_d(); 75 76 76 ventry->word[0] =entry.word[0];77 ventry->word[1] =entry.word[1];77 ventry->word[0] = entry.word[0]; 78 ventry->word[1] = entry.word[1]; 78 79 ventry->present.tag.tag_word = tag; 79 80 81 80 } 82 81 83 82 void vhpt_invalidate_all() 84 83 { 85 memsetb((uintptr_t) vhpt_base,1<<VHPT_WIDTH,0);84 memsetb((uintptr_t) vhpt_base, 1 << VHPT_WIDTH, 0); 86 85 } 87 86
Note:
See TracChangeset
for help on using the changeset viewer.