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