blob: 2eb80ef6b977694722faef7aa754171717effda0 [file] [log] [blame]
Andrea Falcone1c4977f2020-07-23 10:58:25 -04001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __UAPI_VBOXGUEST_H__
20#define __UAPI_VBOXGUEST_H__
21#include <asm/bitsperlong.h>
22#include <linux/ioctl.h>
23#include <linux/vbox_err.h>
24#include <linux/vbox_vmmdev_types.h>
25#define VBG_IOCTL_HDR_VERSION 0x10001
26#define VBG_IOCTL_HDR_TYPE_DEFAULT 0
27struct vbg_ioctl_hdr {
28 __u32 size_in;
29 __u32 version;
30 __u32 type;
31 __s32 rc;
32 __u32 size_out;
33 __u32 reserved;
34};
35#define VBG_IOC_VERSION 0x00010000u
36struct vbg_ioctl_driver_version_info {
37 struct vbg_ioctl_hdr hdr;
38 union {
39 struct {
40 __u32 req_version;
41 __u32 min_version;
42 __u32 reserved1;
43 __u32 reserved2;
44 } in;
45 struct {
46 __u32 session_version;
47 __u32 driver_version;
48 __u32 driver_revision;
49 __u32 reserved1;
50 __u32 reserved2;
51 } out;
52 } u;
53};
54#define VBG_IOCTL_DRIVER_VERSION_INFO _IOWR('V', 0, struct vbg_ioctl_driver_version_info)
55#define VBG_IOCTL_VMMDEV_REQUEST(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 2, s)
56#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
57struct vbg_ioctl_hgcm_connect {
58 struct vbg_ioctl_hdr hdr;
59 union {
60 struct {
61 struct vmmdev_hgcm_service_location loc;
62 } in;
63 struct {
64 __u32 client_id;
65 } out;
66 } u;
67};
68#define VBG_IOCTL_HGCM_CONNECT _IOWR('V', 4, struct vbg_ioctl_hgcm_connect)
69struct vbg_ioctl_hgcm_disconnect {
70 struct vbg_ioctl_hdr hdr;
71 union {
72 struct {
73 __u32 client_id;
74 } in;
75 } u;
76};
77#define VBG_IOCTL_HGCM_DISCONNECT _IOWR('V', 5, struct vbg_ioctl_hgcm_disconnect)
78struct vbg_ioctl_hgcm_call {
79 struct vbg_ioctl_hdr hdr;
80 __u32 client_id;
81 __u32 function;
82 __u32 timeout_ms;
83 __u8 interruptible;
84 __u8 reserved;
85 __u16 parm_count;
86};
87#define VBG_IOCTL_HGCM_CALL_32(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 6, s)
88#define VBG_IOCTL_HGCM_CALL_64(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 7, s)
89#if __BITS_PER_LONG == 64
90#define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_64(s)
91#else
92#define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_32(s)
93#endif
94struct vbg_ioctl_log {
95 struct vbg_ioctl_hdr hdr;
96 union {
97 struct {
98 char msg[1];
99 } in;
100 } u;
101};
102#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
103struct vbg_ioctl_wait_for_events {
104 struct vbg_ioctl_hdr hdr;
105 union {
106 struct {
107 __u32 timeout_ms;
108 __u32 events;
109 } in;
110 struct {
111 __u32 events;
112 } out;
113 } u;
114};
115#define VBG_IOCTL_WAIT_FOR_EVENTS _IOWR('V', 10, struct vbg_ioctl_wait_for_events)
116#define VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS _IOWR('V', 11, struct vbg_ioctl_hdr)
117struct vbg_ioctl_change_filter {
118 struct vbg_ioctl_hdr hdr;
119 union {
120 struct {
121 __u32 or_mask;
122 __u32 not_mask;
123 } in;
124 } u;
125};
126#define VBG_IOCTL_CHANGE_FILTER_MASK _IOWR('V', 12, struct vbg_ioctl_change_filter)
127struct vbg_ioctl_set_guest_caps {
128 struct vbg_ioctl_hdr hdr;
129 union {
130 struct {
131 __u32 or_mask;
132 __u32 not_mask;
133 } in;
134 struct {
135 __u32 session_caps;
136 __u32 global_caps;
137 } out;
138 } u;
139};
140#define VBG_IOCTL_CHANGE_GUEST_CAPABILITIES _IOWR('V', 14, struct vbg_ioctl_set_guest_caps)
141struct vbg_ioctl_check_balloon {
142 struct vbg_ioctl_hdr hdr;
143 union {
144 struct {
145 __u32 balloon_chunks;
146 __u8 handle_in_r3;
147 __u8 padding[3];
148 } out;
149 } u;
150};
151#define VBG_IOCTL_CHECK_BALLOON _IOWR('V', 17, struct vbg_ioctl_check_balloon)
152struct vbg_ioctl_write_coredump {
153 struct vbg_ioctl_hdr hdr;
154 union {
155 struct {
156 __u32 flags;
157 } in;
158 } u;
159};
160#define VBG_IOCTL_WRITE_CORE_DUMP _IOWR('V', 19, struct vbg_ioctl_write_coredump)
161#endif