OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [xen/] [privcmd.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/******************************************************************************
2
 * privcmd.h
3
 *
4
 * Interface to /proc/xen/privcmd.
5
 *
6
 * Copyright (c) 2003-2005, K A Fraser
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License version 2
10
 * as published by the Free Software Foundation; or, when distributed
11
 * separately from the Linux kernel or incorporated into other
12
 * software packages, subject to the following license:
13
 *
14
 * Permission is hereby granted, free of charge, to any person obtaining a copy
15
 * of this source file (the "Software"), to deal in the Software without
16
 * restriction, including without limitation the rights to use, copy, modify,
17
 * merge, publish, distribute, sublicense, and/or sell copies of the Software,
18
 * and to permit persons to whom the Software is furnished to do so, subject to
19
 * the following conditions:
20
 *
21
 * The above copyright notice and this permission notice shall be included in
22
 * all copies or substantial portions of the Software.
23
 *
24
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
30
 * IN THE SOFTWARE.
31
 */
32
 
33
#ifndef __LINUX_PUBLIC_PRIVCMD_H__
34
#define __LINUX_PUBLIC_PRIVCMD_H__
35
 
36
#include <linux/types.h>
37
 
38
#include <xen/interface/xen.h>
39
 
40
struct privcmd_hypercall {
41
        __u64 op;
42
        __u64 arg[5];
43
};
44
 
45
struct privcmd_mmap_entry {
46
        __u64 va;
47
        __u64 mfn;
48
        __u64 npages;
49
};
50
 
51
struct privcmd_mmap {
52
        int num;
53
        domid_t dom; /* target domain */
54
        struct privcmd_mmap_entry *entry;
55
};
56
 
57
struct privcmd_mmapbatch {
58
        int num;     /* number of pages to populate */
59
        domid_t dom; /* target domain */
60
        __u64 addr;  /* virtual address */
61
        xen_pfn_t *arr; /* array of mfns - or'd with
62
                                  PRIVCMD_MMAPBATCH_*_ERROR on err */
63
};
64
 
65
#define PRIVCMD_MMAPBATCH_MFN_ERROR     0xf0000000U
66
#define PRIVCMD_MMAPBATCH_PAGED_ERROR   0x80000000U
67
 
68
struct privcmd_mmapbatch_v2 {
69
        unsigned int num; /* number of pages to populate */
70
        domid_t dom;      /* target domain */
71
        __u64 addr;       /* virtual address */
72
        const xen_pfn_t *arr; /* array of mfns */
73
        int *err;  /* array of error codes */
74
};
75
 
76
/*
77
 * @cmd: IOCTL_PRIVCMD_HYPERCALL
78
 * @arg: &privcmd_hypercall_t
79
 * Return: Value returned from execution of the specified hypercall.
80
 *
81
 * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2
82
 * @arg: &struct privcmd_mmapbatch_v2
83
 * Return: 0 on success (i.e., arg->err contains valid error codes for
84
 * each frame).  On an error other than a failed frame remap, -1 is
85
 * returned and errno is set to EINVAL, EFAULT etc.  As an exception,
86
 * if the operation was otherwise successful but any frame failed with
87
 * -ENOENT, then -1 is returned and errno is set to ENOENT.
88
 */
89
#define IOCTL_PRIVCMD_HYPERCALL                                 \
90
        _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
91
#define IOCTL_PRIVCMD_MMAP                                      \
92
        _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
93
#define IOCTL_PRIVCMD_MMAPBATCH                                 \
94
        _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
95
#define IOCTL_PRIVCMD_MMAPBATCH_V2                              \
96
        _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
97
 
98
#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.