summaryrefslogtreecommitdiff
path: root/minix/lib/libsys/vm_procctl.c
blob: 84e1dba5c0f21f1652e0fd8cb05269f2247b1385 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

#include "syslib.h"

#include <minix/vm.h>
#include <string.h>

/*===========================================================================*
 *                                vm_procctl				     *
 *===========================================================================*/
static int vm_procctl(endpoint_t ep, int param,
	vir_bytes m1, vir_bytes len, int flags)
{
    message m;
    int result;

    memset(&m, 0, sizeof(m));

    m.VMPCTL_WHO = ep;
    m.VMPCTL_PARAM = param;
    m.VMPCTL_M1 = m1;
    m.VMPCTL_LEN = len;
    m.VMPCTL_FLAGS = flags;

    result = _taskcall(VM_PROC_NR, VM_PROCCTL, &m);
    return(result);
}

int vm_procctl_clear(endpoint_t ep)
{
	return vm_procctl(ep, VMPPARAM_CLEAR, 0, 0, 0);
}

int vm_procctl_handlemem(endpoint_t ep, vir_bytes m1, vir_bytes len,
	int writeflag)
{
	return vm_procctl(ep, VMPPARAM_HANDLEMEM, m1, len, writeflag);
}