xref: /minix/minix/lib/libsys/vm_info.c (revision 7f5f010b)
1 
2 #include "syslib.h"
3 
4 #include <string.h>
5 #include <minix/vm.h>
6 
7 /*===========================================================================*
8  *                                vm_info_stats				     *
9  *===========================================================================*/
10 int vm_info_stats(struct vm_stats_info *vsi)
11 {
12     message m;
13 
14     memset(&m, 0, sizeof(m));
15     m.m_lsys_vm_info.what = VMIW_STATS;
16     m.m_lsys_vm_info.ptr = vsi;
17 
18     return _taskcall(VM_PROC_NR, VM_INFO, &m);
19 }
20 
21 /*===========================================================================*
22  *                                vm_info_usage				     *
23  *===========================================================================*/
24 int vm_info_usage(endpoint_t who, struct vm_usage_info *vui)
25 {
26     message m;
27 
28     memset(&m, 0, sizeof(m));
29     m.m_lsys_vm_info.what = VMIW_USAGE;
30     m.m_lsys_vm_info.ep = who;
31     m.m_lsys_vm_info.ptr = vui;
32 
33     return _taskcall(VM_PROC_NR, VM_INFO, &m);
34 }
35 
36 /*===========================================================================*
37  *                                vm_info_region			     *
38  *===========================================================================*/
39 int vm_info_region(endpoint_t who, struct vm_region_info *vri,
40 	int count, vir_bytes *next)
41 {
42     message m;
43     int result;
44 
45     memset(&m, 0, sizeof(m));
46     m.m_lsys_vm_info.what = VMIW_REGION;
47     m.m_lsys_vm_info.ep = who;
48     m.m_lsys_vm_info.count = count;
49     m.m_lsys_vm_info.ptr = vri;
50     m.m_lsys_vm_info.next = *next;
51 
52     if ((result = _taskcall(VM_PROC_NR, VM_INFO, &m)) != OK)
53         return result;
54 
55     *next = m.m_lsys_vm_info.next;
56     return m.m_lsys_vm_info.count;
57 }
58 
59