From: Ben Gras Date: Sat, 26 Jul 2014 11:53:46 +0000 (+0200) Subject: custom message type for VM_GETREF X-Git-Tag: v3.3.0~126 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/man.named-rrchecker.html?a=commitdiff_plain;h=01a50f57d82c12a9f0c3521ede2eeb9cc07dfb2a;p=minix.git custom message type for VM_GETREF --- diff --git a/include/minix/com.h b/include/minix/com.h index e091a4d33..bce17cc6c 100644 --- a/include/minix/com.h +++ b/include/minix/com.h @@ -760,9 +760,6 @@ #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 diff --git a/include/minix/ipc.h b/include/minix/ipc.h index 7401eb53c..a5616fc27 100644 --- a/include/minix/ipc.h +++ b/include/minix/ipc.h @@ -1726,6 +1726,14 @@ typedef struct { } 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 */ @@ -1945,6 +1953,7 @@ typedef struct { 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; diff --git a/lib/libc/sys-minix/mmap.c b/lib/libc/sys-minix/mmap.c index 334cc7782..d9edeaf36 100644 --- a/lib/libc/sys-minix/mmap.c +++ b/lib/libc/sys-minix/mmap.c @@ -161,12 +161,12 @@ u8_t vm_getrefcount(endpoint_t endpt, void *addr) 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; } diff --git a/servers/vm/mmap.c b/servers/vm/mmap.c index d838df47f..c87f9e484 100644 --- a/servers/vm/mmap.c +++ b/servers/vm/mmap.c @@ -471,8 +471,8 @@ int do_get_refcount(message *m) 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; @@ -481,7 +481,7 @@ int do_get_refcount(message *m) r = map_get_ref(vmp, addr, &cnt); - m->VMREFCNT_RETC = cnt; + m->m_lsys_vm_getref.retc = cnt; return r; }