Changeset 1d432f9 in mainline for kernel/generic/src/mm
- Timestamp:
- 2010-05-31T22:33:44Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 179d052
- Parents:
- 3a2b636
- Location:
- kernel/generic/src/mm
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/as.c
r3a2b636 r1d432f9 817 817 [PF_ACCESS_EXEC] = AS_AREA_EXEC 818 818 }; 819 820 ASSERT(interrupts_disabled()); 821 ASSERT(mutex_locked(&area->lock)); 819 822 820 823 if (!(area->flags & flagmap[access])) … … 1221 1224 unsigned int as_area_get_flags(as_area_t *area) 1222 1225 { 1226 ASSERT(interrupts_disabled()); 1227 ASSERT(mutex_locked(&area->lock)); 1228 1223 1229 return area_flags_to_page_flags(area->flags); 1224 1230 } … … 1322 1328 as_area_t *find_area_and_lock(as_t *as, uintptr_t va) 1323 1329 { 1330 ASSERT(interrupts_disabled()); 1331 ASSERT(mutex_locked(&as->lock)); 1332 1324 1333 btree_node_t *leaf; 1325 1334 as_area_t *area = (as_area_t *) btree_search(&as->as_area_btree, va, &leaf); … … 1386 1395 as_area_t *avoid_area) 1387 1396 { 1397 ASSERT(interrupts_disabled()); 1398 ASSERT(mutex_locked(&as->lock)); 1399 1388 1400 /* 1389 1401 * We don't want any area to have conflicts with NULL page. … … 1473 1485 /** Return size of the address space area with given base. 1474 1486 * 1475 * @param base Arbitrary address ins ede the address space area.1487 * @param base Arbitrary address inside the address space area. 1476 1488 * 1477 1489 * @return Size of the address space area in bytes or zero if it … … 1484 1496 1485 1497 ipl_t ipl = interrupts_disable(); 1498 page_table_lock(AS, true); 1486 1499 as_area_t *src_area = find_area_and_lock(AS, base); 1487 1500 … … 1492 1505 size = 0; 1493 1506 1507 page_table_unlock(AS, true); 1494 1508 interrupts_restore(ipl); 1495 1509 return size; … … 1509 1523 int used_space_insert(as_area_t *area, uintptr_t page, size_t count) 1510 1524 { 1525 ASSERT(mutex_locked(&area->lock)); 1511 1526 ASSERT(page == ALIGN_DOWN(page, PAGE_SIZE)); 1512 1527 ASSERT(count); … … 1815 1830 int used_space_remove(as_area_t *area, uintptr_t page, size_t count) 1816 1831 { 1832 ASSERT(mutex_locked(&area->lock)); 1817 1833 ASSERT(page == ALIGN_DOWN(page, PAGE_SIZE)); 1818 1834 ASSERT(count); -
kernel/generic/src/mm/backend_anon.c
r3a2b636 r1d432f9 79 79 { 80 80 uintptr_t frame; 81 82 ASSERT(page_table_locked(AS)); 83 ASSERT(mutex_locked(&area->lock)); 81 84 82 85 if (!as_area_check_access(area, access)) … … 168 171 void anon_frame_free(as_area_t *area, uintptr_t page, uintptr_t frame) 169 172 { 173 ASSERT(page_table_locked(area->as)); 174 ASSERT(mutex_locked(&area->lock)); 175 170 176 frame_free(frame); 171 177 } … … 183 189 { 184 190 link_t *cur; 191 192 ASSERT(mutex_locked(&area->as->lock)); 193 ASSERT(mutex_locked(&area->lock)); 185 194 186 195 /* -
kernel/generic/src/mm/backend_elf.c
r3a2b636 r1d432f9 86 86 bool dirty = false; 87 87 88 ASSERT(page_table_locked(AS)); 89 ASSERT(mutex_locked(&area->lock)); 90 88 91 if (!as_area_check_access(area, access)) 89 92 return AS_PF_FAULT; … … 235 238 uintptr_t start_anon; 236 239 237 ASSERT((page >= ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) && 238 (page < entry->p_vaddr + entry->p_memsz)); 240 ASSERT(page_table_locked(area->as)); 241 ASSERT(mutex_locked(&area->lock)); 242 243 ASSERT(page >= ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)); 244 ASSERT(page < entry->p_vaddr + entry->p_memsz); 245 239 246 start_anon = entry->p_vaddr + entry->p_filesz; 240 247 … … 273 280 btree_node_t *leaf, *node; 274 281 uintptr_t start_anon = entry->p_vaddr + entry->p_filesz; 282 283 ASSERT(mutex_locked(&area->as->lock)); 284 ASSERT(mutex_locked(&area->lock)); 275 285 276 286 /* -
kernel/generic/src/mm/backend_phys.c
r3a2b636 r1d432f9 72 72 uintptr_t base = area->backend_data.base; 73 73 74 ASSERT(page_table_locked(AS)); 75 ASSERT(mutex_locked(&area->lock)); 76 74 77 if (!as_area_check_access(area, access)) 75 78 return AS_PF_FAULT; … … 93 96 void phys_share(as_area_t *area) 94 97 { 98 ASSERT(mutex_locked(&area->as->lock)); 99 ASSERT(mutex_locked(&area->lock)); 95 100 } 96 101 -
kernel/generic/src/mm/page.c
r3a2b636 r1d432f9 120 120 unsigned int flags) 121 121 { 122 ASSERT(interrupts_disabled()); 123 ASSERT(page_table_locked(as)); 124 122 125 ASSERT(page_mapping_operations); 123 126 ASSERT(page_mapping_operations->mapping_insert); 124 127 125 128 page_mapping_operations->mapping_insert(as, page, frame, flags); 126 129 … … 143 146 void page_mapping_remove(as_t *as, uintptr_t page) 144 147 { 148 ASSERT(interrupts_disabled()); 149 ASSERT(page_table_locked(as)); 150 145 151 ASSERT(page_mapping_operations); 146 152 ASSERT(page_mapping_operations->mapping_remove); … … 167 173 pte_t *page_mapping_find(as_t *as, uintptr_t page) 168 174 { 175 ASSERT(interrupts_disabled()); 176 ASSERT(page_table_locked(as)); 177 169 178 ASSERT(page_mapping_operations); 170 179 ASSERT(page_mapping_operations->mapping_find);
Note:
See TracChangeset
for help on using the changeset viewer.