Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/subr_uio.c
| Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | copyout_nofault(const void *kaddr, void *udaddr, size_t len) | ||||
| int error, save; | int error, save; | ||||
| save = vm_fault_disable_pagefaults(); | save = vm_fault_disable_pagefaults(); | ||||
| error = copyout(kaddr, udaddr, len); | error = copyout(kaddr, udaddr, len); | ||||
| vm_fault_enable_pagefaults(save); | vm_fault_enable_pagefaults(save); | ||||
| return (error); | return (error); | ||||
| } | } | ||||
| #ifdef __CHERI__ | |||||
| int | |||||
| copyinptr_nofault(const void *udaddr, void *kaddr, size_t len) | |||||
| { | |||||
| int error, save; | |||||
| save = vm_fault_disable_pagefaults(); | |||||
| error = copyinptr(udaddr, kaddr, len); | |||||
| vm_fault_enable_pagefaults(save); | |||||
| return (error); | |||||
| } | |||||
| int | |||||
| copyoutptr_nofault(const void *kaddr, void *udaddr, size_t len) | |||||
| { | |||||
| int error, save; | |||||
| save = vm_fault_disable_pagefaults(); | |||||
| error = copyoutptr(kaddr, udaddr, len); | |||||
| vm_fault_enable_pagefaults(save); | |||||
| return (error); | |||||
| } | |||||
| #endif | |||||
| #define PHYS_PAGE_COUNT(len) (howmany(len, PAGE_SIZE) + 1) | #define PHYS_PAGE_COUNT(len) (howmany(len, PAGE_SIZE) + 1) | ||||
| int | int | ||||
| physcopyin(void *src, vm_paddr_t dst, size_t len) | physcopyin(void *src, vm_paddr_t dst, size_t len) | ||||
| { | { | ||||
| vm_page_t m[PHYS_PAGE_COUNT(len)]; | vm_page_t m[PHYS_PAGE_COUNT(len)]; | ||||
| struct iovec iov[1]; | struct iovec iov[1]; | ||||
| struct uio uio; | struct uio uio; | ||||
| ▲ Show 20 Lines • Show All 484 Lines • Show Last 20 Lines | |||||