1 #include "syslib.h" 2 3 #include <sys/mman.h> 4 #include <minix/vm.h> 5 #include <stdarg.h> 6 #include <string.h> 7 8 void * 9 vm_map_phys(endpoint_t who, void *phaddr, size_t len) 10 { 11 message m; 12 int r; 13 14 memset(&m, 0, sizeof(m)); 15 m.m_lsys_vm_map_phys.ep = who; 16 m.m_lsys_vm_map_phys.phaddr = phaddr; 17 m.m_lsys_vm_map_phys.len = len; 18 19 r = _taskcall(VM_PROC_NR, VM_MAP_PHYS, &m); 20 21 if (r != OK) return MAP_FAILED; 22 23 return m.m_lsys_vm_map_phys.reply; 24 } 25 26 int 27 vm_unmap_phys(endpoint_t who, void *vaddr, size_t len) 28 { 29 message m; 30 31 memset(&m, 0, sizeof(m)); 32 m.m_lsys_vm_unmap_phys.ep = who; 33 m.m_lsys_vm_unmap_phys.vaddr = vaddr; 34 35 return _taskcall(VM_PROC_NR, VM_UNMAP_PHYS, &m); 36 } 37