xref: /aosp_15_r20/bionic/libc/kernel/uapi/xen/privcmd.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __LINUX_PUBLIC_PRIVCMD_H__
8*8d67ca89SAndroid Build Coastguard Worker #define __LINUX_PUBLIC_PRIVCMD_H__
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/compiler.h>
11*8d67ca89SAndroid Build Coastguard Worker #include <xen/interface/xen.h>
12*8d67ca89SAndroid Build Coastguard Worker struct privcmd_hypercall {
13*8d67ca89SAndroid Build Coastguard Worker   __u64 op;
14*8d67ca89SAndroid Build Coastguard Worker   __u64 arg[5];
15*8d67ca89SAndroid Build Coastguard Worker };
16*8d67ca89SAndroid Build Coastguard Worker struct privcmd_mmap_entry {
17*8d67ca89SAndroid Build Coastguard Worker   __u64 va;
18*8d67ca89SAndroid Build Coastguard Worker   __u64 mfn;
19*8d67ca89SAndroid Build Coastguard Worker   __u64 npages;
20*8d67ca89SAndroid Build Coastguard Worker };
21*8d67ca89SAndroid Build Coastguard Worker struct privcmd_mmap {
22*8d67ca89SAndroid Build Coastguard Worker   int num;
23*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
24*8d67ca89SAndroid Build Coastguard Worker   struct privcmd_mmap_entry  * entry;
25*8d67ca89SAndroid Build Coastguard Worker };
26*8d67ca89SAndroid Build Coastguard Worker struct privcmd_mmapbatch {
27*8d67ca89SAndroid Build Coastguard Worker   int num;
28*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
29*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
30*8d67ca89SAndroid Build Coastguard Worker   xen_pfn_t  * arr;
31*8d67ca89SAndroid Build Coastguard Worker };
32*8d67ca89SAndroid Build Coastguard Worker #define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
33*8d67ca89SAndroid Build Coastguard Worker #define PRIVCMD_MMAPBATCH_PAGED_ERROR 0x80000000U
34*8d67ca89SAndroid Build Coastguard Worker struct privcmd_mmapbatch_v2 {
35*8d67ca89SAndroid Build Coastguard Worker   unsigned int num;
36*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
37*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
38*8d67ca89SAndroid Build Coastguard Worker   const xen_pfn_t  * arr;
39*8d67ca89SAndroid Build Coastguard Worker   int  * err;
40*8d67ca89SAndroid Build Coastguard Worker };
41*8d67ca89SAndroid Build Coastguard Worker struct privcmd_dm_op_buf {
42*8d67ca89SAndroid Build Coastguard Worker   void  * uptr;
43*8d67ca89SAndroid Build Coastguard Worker   size_t size;
44*8d67ca89SAndroid Build Coastguard Worker };
45*8d67ca89SAndroid Build Coastguard Worker struct privcmd_dm_op {
46*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
47*8d67ca89SAndroid Build Coastguard Worker   __u16 num;
48*8d67ca89SAndroid Build Coastguard Worker   const struct privcmd_dm_op_buf  * ubufs;
49*8d67ca89SAndroid Build Coastguard Worker };
50*8d67ca89SAndroid Build Coastguard Worker struct privcmd_mmap_resource {
51*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
52*8d67ca89SAndroid Build Coastguard Worker   __u32 type;
53*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
54*8d67ca89SAndroid Build Coastguard Worker   __u32 idx;
55*8d67ca89SAndroid Build Coastguard Worker   __u64 num;
56*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
57*8d67ca89SAndroid Build Coastguard Worker };
58*8d67ca89SAndroid Build Coastguard Worker #define PRIVCMD_IRQFD_FLAG_DEASSIGN (1 << 0)
59*8d67ca89SAndroid Build Coastguard Worker struct privcmd_irqfd {
60*8d67ca89SAndroid Build Coastguard Worker   __u64 dm_op;
61*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
62*8d67ca89SAndroid Build Coastguard Worker   __u32 fd;
63*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
64*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
65*8d67ca89SAndroid Build Coastguard Worker   __u8 pad[2];
66*8d67ca89SAndroid Build Coastguard Worker };
67*8d67ca89SAndroid Build Coastguard Worker #define PRIVCMD_IOEVENTFD_FLAG_DEASSIGN (1 << 0)
68*8d67ca89SAndroid Build Coastguard Worker struct privcmd_ioeventfd {
69*8d67ca89SAndroid Build Coastguard Worker   __u64 ioreq;
70*8d67ca89SAndroid Build Coastguard Worker   __u64 ports;
71*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
72*8d67ca89SAndroid Build Coastguard Worker   __u32 addr_len;
73*8d67ca89SAndroid Build Coastguard Worker   __u32 event_fd;
74*8d67ca89SAndroid Build Coastguard Worker   __u32 vcpus;
75*8d67ca89SAndroid Build Coastguard Worker   __u32 vq;
76*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
77*8d67ca89SAndroid Build Coastguard Worker   domid_t dom;
78*8d67ca89SAndroid Build Coastguard Worker   __u8 pad[2];
79*8d67ca89SAndroid Build Coastguard Worker };
80*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_HYPERCALL _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
81*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_MMAP _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
82*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_MMAPBATCH _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
83*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_MMAPBATCH_V2 _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
84*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_DM_OP _IOC(_IOC_NONE, 'P', 5, sizeof(struct privcmd_dm_op))
85*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_RESTRICT _IOC(_IOC_NONE, 'P', 6, sizeof(domid_t))
86*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_MMAP_RESOURCE _IOC(_IOC_NONE, 'P', 7, sizeof(struct privcmd_mmap_resource))
87*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_IRQFD _IOW('P', 8, struct privcmd_irqfd)
88*8d67ca89SAndroid Build Coastguard Worker #define IOCTL_PRIVCMD_IOEVENTFD _IOW('P', 9, struct privcmd_ioeventfd)
89*8d67ca89SAndroid Build Coastguard Worker #endif
90