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