Changes in kernel/generic/src/mm/page.c [b93d637:97bdb4a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/page.c
rb93d637 r97bdb4a 60 60 61 61 #include <mm/page.h> 62 #include <genarch/mm/page_ht.h>63 #include <genarch/mm/page_pt.h>64 62 #include <arch/mm/page.h> 65 63 #include <arch/mm/asid.h> … … 72 70 #include <debug.h> 73 71 #include <arch.h> 74 #include <syscall/copy.h>75 #include <errno.h>76 72 77 73 /** Virtual operations for page subsystem. */ … … 177 173 } 178 174 179 /** Syscall wrapper for getting mapping of a virtual page.180 *181 * @retval EOK Everything went find, @p uspace_frame and @p uspace_node182 * contains correct values.183 * @retval ENOENT Virtual address has no mapping.184 */185 sysarg_t sys_page_find_mapping(uintptr_t virt_address,186 uintptr_t *uspace_frame)187 {188 mutex_lock(&AS->lock);189 190 pte_t *pte = page_mapping_find(AS, virt_address);191 if (!PTE_VALID(pte) || !PTE_PRESENT(pte)) {192 mutex_unlock(&AS->lock);193 194 return (sysarg_t) ENOENT;195 }196 197 uintptr_t phys_address = PTE_GET_FRAME(pte);198 199 mutex_unlock(&AS->lock);200 201 int rc = copy_to_uspace(uspace_frame,202 &phys_address, sizeof(phys_address));203 if (rc != EOK) {204 return (sysarg_t) rc;205 }206 207 return EOK;208 }209 210 175 /** @} 211 176 */
Note:
See TracChangeset
for help on using the changeset viewer.