- Timestamp:
- 2005-10-17T23:31:41Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4b2c872d
- Parents:
- 75eacab
- Location:
- src/mm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mm/frame.c
r75eacab r22f7769 69 69 __address frame_alloc(int flags) 70 70 { 71 pri_t pri;71 ipl_t ipl; 72 72 link_t *cur, *tmp; 73 73 zone_t *z; … … 77 77 78 78 loop: 79 pri = cpu_priority_high();79 ipl = interrupts_disable(); 80 80 spinlock_lock(&zone_head_lock); 81 81 … … 105 105 */ 106 106 spinlock_unlock(&zone_head_lock); 107 cpu_priority_restore(pri);107 interrupts_restore(ipl); 108 108 109 109 panic("Sleep not implemented.\n"); … … 127 127 128 128 spinlock_unlock(&zone_head_lock); 129 cpu_priority_restore(pri);129 interrupts_restore(ipl); 130 130 131 131 return v; … … 142 142 void frame_free(__address addr) 143 143 { 144 pri_t pri;144 ipl_t ipl; 145 145 link_t *cur; 146 146 zone_t *z; … … 150 150 ASSERT(addr % FRAME_SIZE == 0); 151 151 152 pri = cpu_priority_high();152 ipl = interrupts_disable(); 153 153 spinlock_lock(&zone_head_lock); 154 154 … … 188 188 189 189 spinlock_unlock(&zone_head_lock); 190 cpu_priority_restore(pri);190 interrupts_restore(ipl); 191 191 } 192 192 … … 200 200 void frame_not_free(__address addr) 201 201 { 202 pri_t pri;202 ipl_t ipl; 203 203 link_t *cur; 204 204 zone_t *z; … … 208 208 ASSERT(addr % FRAME_SIZE == 0); 209 209 210 pri = cpu_priority_high();210 ipl = interrupts_disable(); 211 211 spinlock_lock(&zone_head_lock); 212 212 … … 247 247 248 248 spinlock_unlock(&zone_head_lock); 249 cpu_priority_restore(pri);249 interrupts_restore(ipl); 250 250 } 251 251 … … 336 336 void zone_attach(zone_t *zone) 337 337 { 338 pri_t pri;339 340 pri = cpu_priority_high();338 ipl_t ipl; 339 340 ipl = interrupts_disable(); 341 341 spinlock_lock(&zone_head_lock); 342 342 … … 344 344 345 345 spinlock_unlock(&zone_head_lock); 346 cpu_priority_restore(pri);346 interrupts_restore(ipl); 347 347 } 348 348 -
src/mm/heap.c
r75eacab r22f7769 61 61 void *early_malloc(size_t size) 62 62 { 63 pri_t pri;63 ipl_t ipl; 64 64 chunk_t *x, *y, *z; 65 65 … … 68 68 69 69 x = chunk0; 70 pri = cpu_priority_high();70 ipl = interrupts_disable(); 71 71 spinlock_lock(&heaplock); 72 72 while (x) { … … 85 85 if (x->size < size + sizeof(chunk_t) + 1) { 86 86 spinlock_unlock(&heaplock); 87 cpu_priority_restore(pri);87 interrupts_restore(ipl); 88 88 return &x->data[0]; 89 89 } … … 106 106 x->next = y; 107 107 spinlock_unlock(&heaplock); 108 cpu_priority_restore(pri);108 interrupts_restore(ipl); 109 109 110 110 return &x->data[0]; 111 111 } 112 112 spinlock_unlock(&heaplock); 113 cpu_priority_restore(pri);113 interrupts_restore(ipl); 114 114 return NULL; 115 115 } … … 117 117 void early_free(void *ptr) 118 118 { 119 pri_t pri;119 ipl_t ipl; 120 120 chunk_t *x, *y, *z; 121 121 … … 128 128 panic("freeing unused/damaged chunk"); 129 129 130 pri = cpu_priority_high();130 ipl = interrupts_disable(); 131 131 spinlock_lock(&heaplock); 132 132 x = y->prev; … … 151 151 y->used = 0; 152 152 spinlock_unlock(&heaplock); 153 cpu_priority_restore(pri);153 interrupts_restore(ipl); 154 154 } -
src/mm/vm.c
r75eacab r22f7769 90 90 vm_area_t *vm_area_create(vm_t *m, vm_type_t type, size_t size, __address addr) 91 91 { 92 pri_t pri;92 ipl_t ipl; 93 93 vm_area_t *a; 94 94 … … 96 96 panic("addr not aligned to a page boundary"); 97 97 98 pri = cpu_priority_high();98 ipl = interrupts_disable(); 99 99 spinlock_lock(&m->lock); 100 100 … … 111 111 free(a); 112 112 spinlock_unlock(&m->lock); 113 cpu_priority_restore(pri);113 interrupts_restore(ipl); 114 114 return NULL; 115 115 } … … 130 130 131 131 spinlock_unlock(&m->lock); 132 cpu_priority_restore(pri);132 interrupts_restore(ipl); 133 133 134 134 return a; … … 142 142 { 143 143 int i, flags; 144 pri_t pri;145 146 pri = cpu_priority_high();144 ipl_t ipl; 145 146 ipl = interrupts_disable(); 147 147 spinlock_lock(&m->lock); 148 148 spinlock_lock(&a->lock); … … 166 166 spinlock_unlock(&a->lock); 167 167 spinlock_unlock(&m->lock); 168 cpu_priority_restore(pri);168 interrupts_restore(ipl); 169 169 } 170 170 … … 172 172 { 173 173 int i; 174 pri_t pri;175 176 pri = cpu_priority_high();174 ipl_t ipl; 175 176 ipl = interrupts_disable(); 177 177 spinlock_lock(&m->lock); 178 178 spinlock_lock(&a->lock); … … 184 184 spinlock_unlock(&a->lock); 185 185 spinlock_unlock(&m->lock); 186 cpu_priority_restore(pri);186 interrupts_restore(ipl); 187 187 } 188 188 … … 190 190 { 191 191 link_t *l; 192 pri_t pri;193 194 pri = cpu_priority_high();192 ipl_t ipl; 193 194 ipl = interrupts_disable(); 195 195 196 196 tlb_shootdown_start(); … … 203 203 tlb_shootdown_finalize(); 204 204 205 cpu_priority_restore(pri);205 interrupts_restore(ipl); 206 206 207 207 vm_install_arch(m);
Note:
See TracChangeset
for help on using the changeset viewer.
