#define VM_REMAP (VM_RQ_BASE+33)
#define VM_SHM_UNMAP (VM_RQ_BASE+34)
-# define VMUN_ENDPT m_mmap.forwhom
-# define VMUN_ADDR m_mmap.addr
#define VM_GETPHYS (VM_RQ_BASE+35)
# define VMPHYS_ENDPT m2_i1
} mess_lsys_vm_vmremap;
_ASSERT_MSG_SIZE(mess_lsys_vm_vmremap);
+typedef struct {
+ endpoint_t forwhom;
+ void *addr;
+ uint8_t padding[48];
+} mess_lc_vm_shm_unmap;
+_ASSERT_MSG_SIZE(mess_lc_vm_shm_unmap);
+
typedef struct {
endpoint_t m_source; /* who sent the message */
int m_type; /* what kind of message is it */
mess_vfs_lc_lseek m_vfs_lc_lseek;
mess_lsys_vm_vmremap m_lsys_vm_vmremap;
+ mess_lc_vm_shm_unmap m_lc_vm_shm_unmap;
mess_vfs_lchardriver_cancel m_vfs_lchardriver_cancel;
mess_vfs_lchardriver_openclose m_vfs_lchardriver_openclose;
message m;
memset(&m, 0, sizeof(m));
- m.VMUN_ENDPT = endpt;
- m.VMUN_ADDR = addr;
+ m.m_lc_vm_shm_unmap.forwhom = endpt;
+ m.m_lc_vm_shm_unmap.addr = addr;
return _syscall(VM_PROC_NR, VM_SHM_UNMAP, &m);
}
if(m->m_type == VM_UNMAP_PHYS) {
target = m->VMUP_EP;
} else if(m->m_type == VM_SHM_UNMAP) {
- target = m->VMUN_ENDPT;
+ target = m->m_lc_vm_shm_unmap.forwhom;
}
if(target == SELF)
if(m->m_type == VM_UNMAP_PHYS) {
addr = (vir_bytes) m->VMUP_VADDR;
} else if(m->m_type == VM_SHM_UNMAP) {
- addr = (vir_bytes) m->VMUN_ADDR;
+ addr = (vir_bytes) m->m_lc_vm_shm_unmap.addr;
} else addr = (vir_bytes) m->VMUM_ADDR;
if(addr % VM_PAGE_SIZE)