#define VM_GETPHYS (VM_RQ_BASE+35)
#define VM_GETREF (VM_RQ_BASE+36)
-# define VMREFCNT_ENDPT m2_i1
-# define VMREFCNT_ADDR m2_l1
-# define VMREFCNT_RETC m2_i2
#define VM_RS_SET_PRIV (VM_RQ_BASE+37)
# define VM_RS_NR m2_i1
} mess_lc_vm_getphys;
_ASSERT_MSG_SIZE(mess_lc_vm_getphys);
+typedef struct {
+ endpoint_t endpt;
+ void *addr;
+ int retc;
+ uint8_t padding[44];
+} mess_lsys_vm_getref;
+_ASSERT_MSG_SIZE(mess_lsys_vm_getref);
+
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_lsys_vm_getref m_lsys_vm_getref;
mess_lc_vm_getphys m_lc_vm_getphys;
mess_lc_vm_shm_unmap m_lc_vm_shm_unmap;
int r;
memset(&m, 0, sizeof(m));
- m.VMREFCNT_ENDPT = endpt;
- m.VMREFCNT_ADDR = (long) addr;
+ m.m_lsys_vm_getref.endpt = endpt;
+ m.m_lsys_vm_getref.addr = addr;
r = _syscall(VM_PROC_NR, VM_GETREF, &m);
if (r != OK)
return (u8_t) -1;
- return (u8_t) m.VMREFCNT_RETC;
+ return (u8_t) m.m_lsys_vm_getref.retc;
}
u8_t cnt;
vir_bytes addr;
- target = m->VMREFCNT_ENDPT;
- addr = m->VMREFCNT_ADDR;
+ target = m->m_lsys_vm_getref.endpt;
+ addr = (vir_bytes) m->m_lsys_vm_getref.addr;
if ((r = vm_isokendpt(target, &n)) != OK)
return EINVAL;
r = map_get_ref(vmp, addr, &cnt);
- m->VMREFCNT_RETC = cnt;
+ m->m_lsys_vm_getref.retc = cnt;
return r;
}