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 __UAPI_VBOXGUEST_H__ 8*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_VBOXGUEST_H__ 9*cda5da8dSAndroid Build Coastguard Worker #include <asm/bitsperlong.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/ioctl.h> 11*cda5da8dSAndroid Build Coastguard Worker #include <linux/vbox_err.h> 12*cda5da8dSAndroid Build Coastguard Worker #include <linux/vbox_vmmdev_types.h> 13*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HDR_VERSION 0x10001 14*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HDR_TYPE_DEFAULT 0 15*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr { 16*cda5da8dSAndroid Build Coastguard Worker __u32 size_in; 17*cda5da8dSAndroid Build Coastguard Worker __u32 version; 18*cda5da8dSAndroid Build Coastguard Worker __u32 type; 19*cda5da8dSAndroid Build Coastguard Worker __s32 rc; 20*cda5da8dSAndroid Build Coastguard Worker __u32 size_out; 21*cda5da8dSAndroid Build Coastguard Worker __u32 reserved; 22*cda5da8dSAndroid Build Coastguard Worker }; 23*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOC_VERSION 0x00010000u 24*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_driver_version_info { 25*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 26*cda5da8dSAndroid Build Coastguard Worker union { 27*cda5da8dSAndroid Build Coastguard Worker struct { 28*cda5da8dSAndroid Build Coastguard Worker __u32 req_version; 29*cda5da8dSAndroid Build Coastguard Worker __u32 min_version; 30*cda5da8dSAndroid Build Coastguard Worker __u32 reserved1; 31*cda5da8dSAndroid Build Coastguard Worker __u32 reserved2; 32*cda5da8dSAndroid Build Coastguard Worker } in; 33*cda5da8dSAndroid Build Coastguard Worker struct { 34*cda5da8dSAndroid Build Coastguard Worker __u32 session_version; 35*cda5da8dSAndroid Build Coastguard Worker __u32 driver_version; 36*cda5da8dSAndroid Build Coastguard Worker __u32 driver_revision; 37*cda5da8dSAndroid Build Coastguard Worker __u32 reserved1; 38*cda5da8dSAndroid Build Coastguard Worker __u32 reserved2; 39*cda5da8dSAndroid Build Coastguard Worker } out; 40*cda5da8dSAndroid Build Coastguard Worker } u; 41*cda5da8dSAndroid Build Coastguard Worker }; 42*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_DRIVER_VERSION_INFO _IOWR('V', 0, struct vbg_ioctl_driver_version_info) 43*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_VMMDEV_REQUEST(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 2, s) 44*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) 45*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hgcm_connect { 46*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 47*cda5da8dSAndroid Build Coastguard Worker union { 48*cda5da8dSAndroid Build Coastguard Worker struct { 49*cda5da8dSAndroid Build Coastguard Worker struct vmmdev_hgcm_service_location loc; 50*cda5da8dSAndroid Build Coastguard Worker } in; 51*cda5da8dSAndroid Build Coastguard Worker struct { 52*cda5da8dSAndroid Build Coastguard Worker __u32 client_id; 53*cda5da8dSAndroid Build Coastguard Worker } out; 54*cda5da8dSAndroid Build Coastguard Worker } u; 55*cda5da8dSAndroid Build Coastguard Worker }; 56*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HGCM_CONNECT _IOWR('V', 4, struct vbg_ioctl_hgcm_connect) 57*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hgcm_disconnect { 58*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 59*cda5da8dSAndroid Build Coastguard Worker union { 60*cda5da8dSAndroid Build Coastguard Worker struct { 61*cda5da8dSAndroid Build Coastguard Worker __u32 client_id; 62*cda5da8dSAndroid Build Coastguard Worker } in; 63*cda5da8dSAndroid Build Coastguard Worker } u; 64*cda5da8dSAndroid Build Coastguard Worker }; 65*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HGCM_DISCONNECT _IOWR('V', 5, struct vbg_ioctl_hgcm_disconnect) 66*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hgcm_call { 67*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 68*cda5da8dSAndroid Build Coastguard Worker __u32 client_id; 69*cda5da8dSAndroid Build Coastguard Worker __u32 function; 70*cda5da8dSAndroid Build Coastguard Worker __u32 timeout_ms; 71*cda5da8dSAndroid Build Coastguard Worker __u8 interruptible; 72*cda5da8dSAndroid Build Coastguard Worker __u8 reserved; 73*cda5da8dSAndroid Build Coastguard Worker __u16 parm_count; 74*cda5da8dSAndroid Build Coastguard Worker }; 75*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HGCM_CALL_32(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 6, s) 76*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HGCM_CALL_64(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 7, s) 77*cda5da8dSAndroid Build Coastguard Worker #if __BITS_PER_LONG == 64 78*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_64(s) 79*cda5da8dSAndroid Build Coastguard Worker #else 80*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_32(s) 81*cda5da8dSAndroid Build Coastguard Worker #endif 82*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_log { 83*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 84*cda5da8dSAndroid Build Coastguard Worker union { 85*cda5da8dSAndroid Build Coastguard Worker struct { 86*cda5da8dSAndroid Build Coastguard Worker char msg[1]; 87*cda5da8dSAndroid Build Coastguard Worker } in; 88*cda5da8dSAndroid Build Coastguard Worker } u; 89*cda5da8dSAndroid Build Coastguard Worker }; 90*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_LOG(s) _IO('V', 9) 91*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_wait_for_events { 92*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 93*cda5da8dSAndroid Build Coastguard Worker union { 94*cda5da8dSAndroid Build Coastguard Worker struct { 95*cda5da8dSAndroid Build Coastguard Worker __u32 timeout_ms; 96*cda5da8dSAndroid Build Coastguard Worker __u32 events; 97*cda5da8dSAndroid Build Coastguard Worker } in; 98*cda5da8dSAndroid Build Coastguard Worker struct { 99*cda5da8dSAndroid Build Coastguard Worker __u32 events; 100*cda5da8dSAndroid Build Coastguard Worker } out; 101*cda5da8dSAndroid Build Coastguard Worker } u; 102*cda5da8dSAndroid Build Coastguard Worker }; 103*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_WAIT_FOR_EVENTS _IOWR('V', 10, struct vbg_ioctl_wait_for_events) 104*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS _IOWR('V', 11, struct vbg_ioctl_hdr) 105*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_change_filter { 106*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 107*cda5da8dSAndroid Build Coastguard Worker union { 108*cda5da8dSAndroid Build Coastguard Worker struct { 109*cda5da8dSAndroid Build Coastguard Worker __u32 or_mask; 110*cda5da8dSAndroid Build Coastguard Worker __u32 not_mask; 111*cda5da8dSAndroid Build Coastguard Worker } in; 112*cda5da8dSAndroid Build Coastguard Worker } u; 113*cda5da8dSAndroid Build Coastguard Worker }; 114*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_CHANGE_FILTER_MASK _IOWR('V', 12, struct vbg_ioctl_change_filter) 115*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_acquire_guest_caps { 116*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 117*cda5da8dSAndroid Build Coastguard Worker union { 118*cda5da8dSAndroid Build Coastguard Worker struct { 119*cda5da8dSAndroid Build Coastguard Worker __u32 flags; 120*cda5da8dSAndroid Build Coastguard Worker __u32 or_mask; 121*cda5da8dSAndroid Build Coastguard Worker __u32 not_mask; 122*cda5da8dSAndroid Build Coastguard Worker } in; 123*cda5da8dSAndroid Build Coastguard Worker } u; 124*cda5da8dSAndroid Build Coastguard Worker }; 125*cda5da8dSAndroid Build Coastguard Worker #define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 126*cda5da8dSAndroid Build Coastguard Worker #define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 127*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) 128*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_set_guest_caps { 129*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 130*cda5da8dSAndroid Build Coastguard Worker union { 131*cda5da8dSAndroid Build Coastguard Worker struct { 132*cda5da8dSAndroid Build Coastguard Worker __u32 or_mask; 133*cda5da8dSAndroid Build Coastguard Worker __u32 not_mask; 134*cda5da8dSAndroid Build Coastguard Worker } in; 135*cda5da8dSAndroid Build Coastguard Worker struct { 136*cda5da8dSAndroid Build Coastguard Worker __u32 session_caps; 137*cda5da8dSAndroid Build Coastguard Worker __u32 global_caps; 138*cda5da8dSAndroid Build Coastguard Worker } out; 139*cda5da8dSAndroid Build Coastguard Worker } u; 140*cda5da8dSAndroid Build Coastguard Worker }; 141*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_CHANGE_GUEST_CAPABILITIES _IOWR('V', 14, struct vbg_ioctl_set_guest_caps) 142*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_check_balloon { 143*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 144*cda5da8dSAndroid Build Coastguard Worker union { 145*cda5da8dSAndroid Build Coastguard Worker struct { 146*cda5da8dSAndroid Build Coastguard Worker __u32 balloon_chunks; 147*cda5da8dSAndroid Build Coastguard Worker __u8 handle_in_r3; 148*cda5da8dSAndroid Build Coastguard Worker __u8 padding[3]; 149*cda5da8dSAndroid Build Coastguard Worker } out; 150*cda5da8dSAndroid Build Coastguard Worker } u; 151*cda5da8dSAndroid Build Coastguard Worker }; 152*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_CHECK_BALLOON _IOWR('V', 17, struct vbg_ioctl_check_balloon) 153*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_write_coredump { 154*cda5da8dSAndroid Build Coastguard Worker struct vbg_ioctl_hdr hdr; 155*cda5da8dSAndroid Build Coastguard Worker union { 156*cda5da8dSAndroid Build Coastguard Worker struct { 157*cda5da8dSAndroid Build Coastguard Worker __u32 flags; 158*cda5da8dSAndroid Build Coastguard Worker } in; 159*cda5da8dSAndroid Build Coastguard Worker } u; 160*cda5da8dSAndroid Build Coastguard Worker }; 161*cda5da8dSAndroid Build Coastguard Worker #define VBG_IOCTL_WRITE_CORE_DUMP _IOWR('V', 19, struct vbg_ioctl_write_coredump) 162*cda5da8dSAndroid Build Coastguard Worker #endif 163