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