Changeset a35b458 in mainline for kernel/generic/src/mm/page.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/page.c
r3061bc1 ra35b458 99 99 { 100 100 assert(page_table_locked(as)); 101 101 102 102 assert(page_mapping_operations); 103 103 assert(page_mapping_operations->mapping_insert); … … 105 105 page_mapping_operations->mapping_insert(as, ALIGN_DOWN(page, PAGE_SIZE), 106 106 ALIGN_DOWN(frame, FRAME_SIZE), flags); 107 107 108 108 /* Repel prefetched accesses to the old mapping. */ 109 109 memory_barrier(); … … 123 123 { 124 124 assert(page_table_locked(as)); 125 125 126 126 assert(page_mapping_operations); 127 127 assert(page_mapping_operations->mapping_remove); 128 128 129 129 page_mapping_operations->mapping_remove(as, 130 130 ALIGN_DOWN(page, PAGE_SIZE)); 131 131 132 132 /* Repel prefetched accesses to the old mapping. */ 133 133 memory_barrier(); … … 148 148 { 149 149 assert(nolock || page_table_locked(as)); 150 150 151 151 assert(page_mapping_operations); 152 152 assert(page_mapping_operations->mapping_find); 153 153 154 154 return page_mapping_operations->mapping_find(as, 155 155 ALIGN_DOWN(page, PAGE_SIZE), nolock, pte); … … 169 169 { 170 170 assert(nolock || page_table_locked(as)); 171 171 172 172 assert(page_mapping_operations); 173 173 assert(page_mapping_operations->mapping_find); 174 174 175 175 page_mapping_operations->mapping_update(as, 176 176 ALIGN_DOWN(page, PAGE_SIZE), nolock, pte); … … 186 186 assert(page_mapping_operations); 187 187 assert(page_mapping_operations->mapping_make_global); 188 188 189 189 return page_mapping_operations->mapping_make_global(base, size); 190 190 } … … 193 193 { 194 194 page_table_lock(AS, true); 195 195 196 196 pte_t pte; 197 197 bool found = page_mapping_find(AS, virt, false, &pte); … … 200 200 return ENOENT; 201 201 } 202 202 203 203 *phys = PTE_GET_FRAME(&pte) + 204 204 (virt - ALIGN_DOWN(virt, PAGE_SIZE)); 205 205 206 206 page_table_unlock(AS, true); 207 207 208 208 return EOK; 209 209 } … … 221 221 if (rc != EOK) 222 222 return rc; 223 223 224 224 rc = copy_to_uspace(phys_ptr, &phys, sizeof(phys)); 225 225 return (sys_errno_t) rc;
Note:
See TracChangeset
for help on using the changeset viewer.