diff options
Diffstat (limited to 'freebsd/sys/vm/vm_extern.h')
-rw-r--r-- | freebsd/sys/vm/vm_extern.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/freebsd/sys/vm/vm_extern.h b/freebsd/sys/vm/vm_extern.h index 0d17f8af..f9875c25 100644 --- a/freebsd/sys/vm/vm_extern.h +++ b/freebsd/sys/vm/vm_extern.h @@ -96,6 +96,18 @@ int vm_fault_quick_hold_pages(vm_map_t map, vm_offset_t addr, vm_size_t len, vm_prot_t prot, vm_page_t *ma, int max_count); int vm_fault_trap(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int fault_flags, int *signo, int *ucode); +#else /* __rtems__ */ +static inline int vm_fault_quick_hold_pages(vm_map_t map, vm_offset_t addr, vm_size_t len, + vm_prot_t prot, vm_page_t *ma, int max_count) { + vm_offset_t end; + if (len == 0) + return (0); + end = round_page(addr + len); + addr = trunc_page(addr); + if (atop(end - addr) > max_count) + panic("vm_fault_quick_hold_pages: count > max_count"); + return atop(end - addr); +} #endif /* __rtems__ */ int vm_forkproc(struct thread *, struct proc *, struct thread *, struct vmspace *, int); |