/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef __UAPI_VBOXGUEST_H__ #define __UAPI_VBOXGUEST_H__ #include #include #include #include #define VBG_IOCTL_HDR_VERSION 0x10001 #define VBG_IOCTL_HDR_TYPE_DEFAULT 0 struct vbg_ioctl_hdr { __u32 size_in; __u32 version; __u32 type; __s32 rc; __u32 size_out; __u32 reserved; }; #define VBG_IOC_VERSION 0x00010000u struct vbg_ioctl_driver_version_info { struct vbg_ioctl_hdr hdr; union { struct { __u32 req_version; __u32 min_version; __u32 reserved1; __u32 reserved2; } in; struct { __u32 session_version; __u32 driver_version; __u32 driver_revision; __u32 reserved1; __u32 reserved2; } out; } u; }; #define VBG_IOCTL_DRIVER_VERSION_INFO _IOWR('V', 0, struct vbg_ioctl_driver_version_info) #define VBG_IOCTL_VMMDEV_REQUEST(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 2, s) #define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) struct vbg_ioctl_hgcm_connect { struct vbg_ioctl_hdr hdr; union { struct { struct vmmdev_hgcm_service_location loc; } in; struct { __u32 client_id; } out; } u; }; #define VBG_IOCTL_HGCM_CONNECT _IOWR('V', 4, struct vbg_ioctl_hgcm_connect) struct vbg_ioctl_hgcm_disconnect { struct vbg_ioctl_hdr hdr; union { struct { __u32 client_id; } in; } u; }; #define VBG_IOCTL_HGCM_DISCONNECT _IOWR('V', 5, struct vbg_ioctl_hgcm_disconnect) struct vbg_ioctl_hgcm_call { struct vbg_ioctl_hdr hdr; __u32 client_id; __u32 function; __u32 timeout_ms; __u8 interruptible; __u8 reserved; __u16 parm_count; }; #define VBG_IOCTL_HGCM_CALL_32(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 6, s) #define VBG_IOCTL_HGCM_CALL_64(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 7, s) #if __BITS_PER_LONG == 64 #define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_64(s) #else #define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_32(s) #endif struct vbg_ioctl_log { struct vbg_ioctl_hdr hdr; union { struct { char msg[1]; } in; } u; }; #define VBG_IOCTL_LOG(s) _IO('V', 9) struct vbg_ioctl_wait_for_events { struct vbg_ioctl_hdr hdr; union { struct { __u32 timeout_ms; __u32 events; } in; struct { __u32 events; } out; } u; }; #define VBG_IOCTL_WAIT_FOR_EVENTS _IOWR('V', 10, struct vbg_ioctl_wait_for_events) #define VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS _IOWR('V', 11, struct vbg_ioctl_hdr) struct vbg_ioctl_change_filter { struct vbg_ioctl_hdr hdr; union { struct { __u32 or_mask; __u32 not_mask; } in; } u; }; #define VBG_IOCTL_CHANGE_FILTER_MASK _IOWR('V', 12, struct vbg_ioctl_change_filter) struct vbg_ioctl_acquire_guest_caps { struct vbg_ioctl_hdr hdr; union { struct { __u32 flags; __u32 or_mask; __u32 not_mask; } in; } u; }; #define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 #define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 #define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) struct vbg_ioctl_set_guest_caps { struct vbg_ioctl_hdr hdr; union { struct { __u32 or_mask; __u32 not_mask; } in; struct { __u32 session_caps; __u32 global_caps; } out; } u; }; #define VBG_IOCTL_CHANGE_GUEST_CAPABILITIES _IOWR('V', 14, struct vbg_ioctl_set_guest_caps) struct vbg_ioctl_check_balloon { struct vbg_ioctl_hdr hdr; union { struct { __u32 balloon_chunks; __u8 handle_in_r3; __u8 padding[3]; } out; } u; }; #define VBG_IOCTL_CHECK_BALLOON _IOWR('V', 17, struct vbg_ioctl_check_balloon) struct vbg_ioctl_write_coredump { struct vbg_ioctl_hdr hdr; union { struct { __u32 flags; } in; } u; }; #define VBG_IOCTL_WRITE_CORE_DUMP _IOWR('V', 19, struct vbg_ioctl_write_coredump) #endif