xref: /aosp_15_r20/external/crosvm/rutabaga_gfx/src/generated/virgl_renderer_bindings.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1 /* automatically generated by rust-bindgen 0.68.1 */
2 
3 #[cfg(feature = "virgl_renderer")]
4 #[link(name = "virglrenderer")]
5 extern "C" {}
6 
7 pub const VIRGL_RENDERER_CALLBACKS_VERSION: u32 = 4;
8 pub const VIRGL_RENDERER_USE_EGL: u32 = 1;
9 pub const VIRGL_RENDERER_THREAD_SYNC: u32 = 2;
10 pub const VIRGL_RENDERER_USE_GLX: u32 = 4;
11 pub const VIRGL_RENDERER_USE_SURFACELESS: u32 = 8;
12 pub const VIRGL_RENDERER_USE_GLES: u32 = 16;
13 pub const VIRGL_RENDERER_USE_EXTERNAL_BLOB: u32 = 32;
14 pub const VIRGL_RENDERER_VENUS: u32 = 64;
15 pub const VIRGL_RENDERER_NO_VIRGL: u32 = 128;
16 pub const VIRGL_RENDERER_ASYNC_FENCE_CB: u32 = 256;
17 pub const VIRGL_RENDERER_RENDER_SERVER: u32 = 512;
18 pub const VIRGL_RENDERER_DRM: u32 = 1024;
19 pub const VIRGL_RENDERER_USE_VIDEO: u32 = 2048;
20 pub const VIRGL_RENDERER_D3D11_SHARE_TEXTURE: u32 = 4096;
21 pub const VIRGL_RENDERER_COMPAT_PROFILE: u32 = 8192;
22 pub const VIRGL_RES_BIND_DEPTH_STENCIL: u32 = 1;
23 pub const VIRGL_RES_BIND_RENDER_TARGET: u32 = 2;
24 pub const VIRGL_RES_BIND_SAMPLER_VIEW: u32 = 8;
25 pub const VIRGL_RES_BIND_VERTEX_BUFFER: u32 = 16;
26 pub const VIRGL_RES_BIND_INDEX_BUFFER: u32 = 32;
27 pub const VIRGL_RES_BIND_CONSTANT_BUFFER: u32 = 64;
28 pub const VIRGL_RES_BIND_STREAM_OUTPUT: u32 = 2048;
29 pub const VIRGL_RES_BIND_CURSOR: u32 = 65536;
30 pub const VIRGL_RES_BIND_CUSTOM: u32 = 131072;
31 pub const VIRGL_RES_BIND_SCANOUT: u32 = 262144;
32 pub const VIRGL_RES_BIND_SHARED: u32 = 1048576;
33 pub const VIRGL_RENDERER_RESOURCE_INFO_EXT_VERSION: u32 = 0;
34 pub const VIRGL_RENDERER_CONTEXT_FLAG_CAPSET_ID_MASK: u32 = 255;
35 pub const VIRGL_RENDERER_BLOB_MEM_GUEST: u32 = 1;
36 pub const VIRGL_RENDERER_BLOB_MEM_HOST3D: u32 = 2;
37 pub const VIRGL_RENDERER_BLOB_MEM_HOST3D_GUEST: u32 = 3;
38 pub const VIRGL_RENDERER_BLOB_MEM_GUEST_VRAM: u32 = 4;
39 pub const VIRGL_RENDERER_BLOB_FLAG_USE_MAPPABLE: u32 = 1;
40 pub const VIRGL_RENDERER_BLOB_FLAG_USE_SHAREABLE: u32 = 2;
41 pub const VIRGL_RENDERER_BLOB_FLAG_USE_CROSS_DEVICE: u32 = 4;
42 pub const VIRGL_RENDERER_BLOB_FLAG_USE_DUMB_BUFFER: u32 = 8;
43 pub const VIRGL_RENDERER_MAP_CACHE_MASK: u32 = 15;
44 pub const VIRGL_RENDERER_MAP_CACHE_NONE: u32 = 0;
45 pub const VIRGL_RENDERER_MAP_CACHE_CACHED: u32 = 1;
46 pub const VIRGL_RENDERER_MAP_CACHE_UNCACHED: u32 = 2;
47 pub const VIRGL_RENDERER_MAP_CACHE_WC: u32 = 3;
48 pub const VIRGL_RENDERER_BLOB_FD_TYPE_DMABUF: u32 = 1;
49 pub const VIRGL_RENDERER_BLOB_FD_TYPE_OPAQUE: u32 = 2;
50 pub const VIRGL_RENDERER_BLOB_FD_TYPE_SHM: u32 = 3;
51 pub const VIRGL_RENDERER_FENCE_FLAG_MERGEABLE: u32 = 1;
52 #[repr(C)]
53 #[derive(Debug, Copy, Clone)]
54 pub struct virgl_box {
55     _unused: [u8; 0],
56 }
57 #[repr(C)]
58 #[derive(Debug, Copy, Clone)]
59 pub struct iovec {
60     _unused: [u8; 0],
61 }
62 pub type virgl_renderer_gl_context = *mut ::std::os::raw::c_void;
63 #[repr(C)]
64 #[derive(Debug, Default, Copy, Clone)]
65 pub struct virgl_renderer_gl_ctx_param {
66     pub version: ::std::os::raw::c_int,
67     pub shared: bool,
68     pub major_ver: ::std::os::raw::c_int,
69     pub minor_ver: ::std::os::raw::c_int,
70     pub compat_ctx: ::std::os::raw::c_int,
71 }
72 #[repr(C)]
73 #[derive(Debug, Default, Copy, Clone)]
74 pub struct virgl_renderer_callbacks {
75     pub version: ::std::os::raw::c_int,
76     pub write_fence: ::std::option::Option<
77         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, fence: u32),
78     >,
79     pub create_gl_context: ::std::option::Option<
80         unsafe extern "C" fn(
81             cookie: *mut ::std::os::raw::c_void,
82             scanout_idx: ::std::os::raw::c_int,
83             param: *mut virgl_renderer_gl_ctx_param,
84         ) -> virgl_renderer_gl_context,
85     >,
86     pub destroy_gl_context: ::std::option::Option<
87         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, ctx: virgl_renderer_gl_context),
88     >,
89     pub make_current: ::std::option::Option<
90         unsafe extern "C" fn(
91             cookie: *mut ::std::os::raw::c_void,
92             scanout_idx: ::std::os::raw::c_int,
93             ctx: virgl_renderer_gl_context,
94         ) -> ::std::os::raw::c_int,
95     >,
96     pub get_drm_fd: ::std::option::Option<
97         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
98     >,
99     pub write_context_fence: ::std::option::Option<
100         unsafe extern "C" fn(
101             cookie: *mut ::std::os::raw::c_void,
102             ctx_id: u32,
103             ring_idx: u32,
104             fence_id: u64,
105         ),
106     >,
107     pub get_server_fd: ::std::option::Option<
108         unsafe extern "C" fn(
109             cookie: *mut ::std::os::raw::c_void,
110             version: u32,
111         ) -> ::std::os::raw::c_int,
112     >,
113     pub get_egl_display: ::std::option::Option<
114         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
115     >,
116 }
117 extern "C" {
virgl_renderer_init( cookie: *mut ::std::os::raw::c_void, flags: ::std::os::raw::c_int, cb: *mut virgl_renderer_callbacks, ) -> ::std::os::raw::c_int118     pub fn virgl_renderer_init(
119         cookie: *mut ::std::os::raw::c_void,
120         flags: ::std::os::raw::c_int,
121         cb: *mut virgl_renderer_callbacks,
122     ) -> ::std::os::raw::c_int;
123 }
124 extern "C" {
virgl_renderer_poll()125     pub fn virgl_renderer_poll();
126 }
127 extern "C" {
virgl_renderer_get_cursor_data( resource_id: u32, width: *mut u32, height: *mut u32, ) -> *mut ::std::os::raw::c_void128     pub fn virgl_renderer_get_cursor_data(
129         resource_id: u32,
130         width: *mut u32,
131         height: *mut u32,
132     ) -> *mut ::std::os::raw::c_void;
133 }
134 extern "C" {
virgl_renderer_get_rect( resource_id: ::std::os::raw::c_int, iov: *mut iovec, num_iovs: ::std::os::raw::c_uint, offset: u32, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int, width: ::std::os::raw::c_int, height: ::std::os::raw::c_int, )135     pub fn virgl_renderer_get_rect(
136         resource_id: ::std::os::raw::c_int,
137         iov: *mut iovec,
138         num_iovs: ::std::os::raw::c_uint,
139         offset: u32,
140         x: ::std::os::raw::c_int,
141         y: ::std::os::raw::c_int,
142         width: ::std::os::raw::c_int,
143         height: ::std::os::raw::c_int,
144     );
145 }
146 extern "C" {
virgl_renderer_get_fd_for_texture( tex_id: u32, fd: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int147     pub fn virgl_renderer_get_fd_for_texture(
148         tex_id: u32,
149         fd: *mut ::std::os::raw::c_int,
150     ) -> ::std::os::raw::c_int;
151 }
152 extern "C" {
virgl_renderer_get_fd_for_texture2( tex_id: u32, fd: *mut ::std::os::raw::c_int, stride: *mut ::std::os::raw::c_int, offset: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int153     pub fn virgl_renderer_get_fd_for_texture2(
154         tex_id: u32,
155         fd: *mut ::std::os::raw::c_int,
156         stride: *mut ::std::os::raw::c_int,
157         offset: *mut ::std::os::raw::c_int,
158     ) -> ::std::os::raw::c_int;
159 }
160 pub const VIRGL_RENDERER_STRUCTURE_TYPE_NONE: virgl_renderer_structure_type_v0 = 0;
161 pub const VIRGL_RENDERER_STRUCTURE_TYPE_EXPORT_QUERY: virgl_renderer_structure_type_v0 = 1;
162 pub const VIRGL_RENDERER_STRUCTURE_TYPE_SUPPORTED_STRUCTURES: virgl_renderer_structure_type_v0 = 2;
163 pub type virgl_renderer_structure_type_v0 = ::std::os::raw::c_uint;
164 #[repr(C)]
165 #[derive(Debug, Default, Copy, Clone)]
166 pub struct virgl_renderer_resource_create_args {
167     pub handle: u32,
168     pub target: u32,
169     pub format: u32,
170     pub bind: u32,
171     pub width: u32,
172     pub height: u32,
173     pub depth: u32,
174     pub array_size: u32,
175     pub last_level: u32,
176     pub nr_samples: u32,
177     pub flags: u32,
178 }
179 #[repr(C)]
180 #[derive(Debug, Default, Copy, Clone)]
181 pub struct virgl_renderer_hdr {
182     pub stype: u32,
183     pub stype_version: u32,
184     pub size: u32,
185 }
186 #[repr(C)]
187 #[derive(Debug, Default, Copy, Clone)]
188 pub struct virgl_renderer_export_query {
189     pub hdr: virgl_renderer_hdr,
190     pub in_resource_id: u32,
191     pub out_num_fds: u32,
192     pub in_export_fds: u32,
193     pub out_fourcc: u32,
194     pub pad: u32,
195     pub out_fds: [i32; 4usize],
196     pub out_strides: [u32; 4usize],
197     pub out_offsets: [u32; 4usize],
198     pub out_modifier: u64,
199 }
200 #[repr(C)]
201 #[derive(Debug, Default, Copy, Clone)]
202 pub struct virgl_renderer_supported_structures {
203     pub hdr: virgl_renderer_hdr,
204     pub in_stype_version: u32,
205     pub out_supported_structures_mask: u32,
206 }
207 pub const VIRGL_LOG_LEVEL_DEBUG: virgl_log_level_flags = 0;
208 pub const VIRGL_LOG_LEVEL_INFO: virgl_log_level_flags = 1;
209 pub const VIRGL_LOG_LEVEL_WARNING: virgl_log_level_flags = 2;
210 pub const VIRGL_LOG_LEVEL_ERROR: virgl_log_level_flags = 3;
211 pub const VIRGL_LOG_LEVEL_SILENT: virgl_log_level_flags = 4;
212 pub type virgl_log_level_flags = ::std::os::raw::c_uint;
213 pub type virgl_free_data_callback_type =
214     ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
215 pub type virgl_log_callback_type = ::std::option::Option<
216     unsafe extern "C" fn(
217         log_level: virgl_log_level_flags,
218         message: *const ::std::os::raw::c_char,
219         user_data: *mut ::std::os::raw::c_void,
220     ),
221 >;
222 extern "C" {
virgl_renderer_resource_create( args: *mut virgl_renderer_resource_create_args, iov: *mut iovec, num_iovs: u32, ) -> ::std::os::raw::c_int223     pub fn virgl_renderer_resource_create(
224         args: *mut virgl_renderer_resource_create_args,
225         iov: *mut iovec,
226         num_iovs: u32,
227     ) -> ::std::os::raw::c_int;
228 }
229 extern "C" {
virgl_renderer_resource_import_eglimage( args: *mut virgl_renderer_resource_create_args, image: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int230     pub fn virgl_renderer_resource_import_eglimage(
231         args: *mut virgl_renderer_resource_create_args,
232         image: *mut ::std::os::raw::c_void,
233     ) -> ::std::os::raw::c_int;
234 }
235 extern "C" {
virgl_renderer_resource_unref(res_handle: u32)236     pub fn virgl_renderer_resource_unref(res_handle: u32);
237 }
238 extern "C" {
virgl_renderer_resource_set_priv(res_handle: u32, priv_: *mut ::std::os::raw::c_void)239     pub fn virgl_renderer_resource_set_priv(res_handle: u32, priv_: *mut ::std::os::raw::c_void);
240 }
241 extern "C" {
virgl_renderer_resource_get_priv(res_handle: u32) -> *mut ::std::os::raw::c_void242     pub fn virgl_renderer_resource_get_priv(res_handle: u32) -> *mut ::std::os::raw::c_void;
243 }
244 extern "C" {
virgl_renderer_context_create( handle: u32, nlen: u32, name: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int245     pub fn virgl_renderer_context_create(
246         handle: u32,
247         nlen: u32,
248         name: *const ::std::os::raw::c_char,
249     ) -> ::std::os::raw::c_int;
250 }
251 extern "C" {
virgl_renderer_context_destroy(handle: u32)252     pub fn virgl_renderer_context_destroy(handle: u32);
253 }
254 extern "C" {
virgl_renderer_submit_cmd( buffer: *mut ::std::os::raw::c_void, ctx_id: ::std::os::raw::c_int, ndw: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int255     pub fn virgl_renderer_submit_cmd(
256         buffer: *mut ::std::os::raw::c_void,
257         ctx_id: ::std::os::raw::c_int,
258         ndw: ::std::os::raw::c_int,
259     ) -> ::std::os::raw::c_int;
260 }
261 extern "C" {
virgl_renderer_transfer_read_iov( handle: u32, ctx_id: u32, level: u32, stride: u32, layer_stride: u32, box_: *mut virgl_box, offset: u64, iov: *mut iovec, iovec_cnt: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int262     pub fn virgl_renderer_transfer_read_iov(
263         handle: u32,
264         ctx_id: u32,
265         level: u32,
266         stride: u32,
267         layer_stride: u32,
268         box_: *mut virgl_box,
269         offset: u64,
270         iov: *mut iovec,
271         iovec_cnt: ::std::os::raw::c_int,
272     ) -> ::std::os::raw::c_int;
273 }
274 extern "C" {
virgl_renderer_transfer_write_iov( handle: u32, ctx_id: u32, level: ::std::os::raw::c_int, stride: u32, layer_stride: u32, box_: *mut virgl_box, offset: u64, iovec: *mut iovec, iovec_cnt: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int275     pub fn virgl_renderer_transfer_write_iov(
276         handle: u32,
277         ctx_id: u32,
278         level: ::std::os::raw::c_int,
279         stride: u32,
280         layer_stride: u32,
281         box_: *mut virgl_box,
282         offset: u64,
283         iovec: *mut iovec,
284         iovec_cnt: ::std::os::raw::c_uint,
285     ) -> ::std::os::raw::c_int;
286 }
287 extern "C" {
virgl_renderer_get_cap_set(set: u32, max_ver: *mut u32, max_size: *mut u32)288     pub fn virgl_renderer_get_cap_set(set: u32, max_ver: *mut u32, max_size: *mut u32);
289 }
290 extern "C" {
virgl_renderer_fill_caps(set: u32, version: u32, caps: *mut ::std::os::raw::c_void)291     pub fn virgl_renderer_fill_caps(set: u32, version: u32, caps: *mut ::std::os::raw::c_void);
292 }
293 extern "C" {
virgl_renderer_resource_attach_iov( res_handle: ::std::os::raw::c_int, iov: *mut iovec, num_iovs: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int294     pub fn virgl_renderer_resource_attach_iov(
295         res_handle: ::std::os::raw::c_int,
296         iov: *mut iovec,
297         num_iovs: ::std::os::raw::c_int,
298     ) -> ::std::os::raw::c_int;
299 }
300 extern "C" {
virgl_renderer_resource_detach_iov( res_handle: ::std::os::raw::c_int, iov: *mut *mut iovec, num_iovs: *mut ::std::os::raw::c_int, )301     pub fn virgl_renderer_resource_detach_iov(
302         res_handle: ::std::os::raw::c_int,
303         iov: *mut *mut iovec,
304         num_iovs: *mut ::std::os::raw::c_int,
305     );
306 }
307 extern "C" {
virgl_renderer_create_fence( client_fence_id: ::std::os::raw::c_int, ctx_id: u32, ) -> ::std::os::raw::c_int308     pub fn virgl_renderer_create_fence(
309         client_fence_id: ::std::os::raw::c_int,
310         ctx_id: u32,
311     ) -> ::std::os::raw::c_int;
312 }
313 extern "C" {
virgl_renderer_force_ctx_0()314     pub fn virgl_renderer_force_ctx_0();
315 }
316 extern "C" {
virgl_renderer_ctx_attach_resource( ctx_id: ::std::os::raw::c_int, res_handle: ::std::os::raw::c_int, )317     pub fn virgl_renderer_ctx_attach_resource(
318         ctx_id: ::std::os::raw::c_int,
319         res_handle: ::std::os::raw::c_int,
320     );
321 }
322 extern "C" {
virgl_renderer_ctx_detach_resource( ctx_id: ::std::os::raw::c_int, res_handle: ::std::os::raw::c_int, )323     pub fn virgl_renderer_ctx_detach_resource(
324         ctx_id: ::std::os::raw::c_int,
325         res_handle: ::std::os::raw::c_int,
326     );
327 }
328 extern "C" {
virgl_set_log_callback( cb: virgl_log_callback_type, user_data: *mut ::std::os::raw::c_void, free_user_data_cb: virgl_free_data_callback_type, )329     pub fn virgl_set_log_callback(
330         cb: virgl_log_callback_type,
331         user_data: *mut ::std::os::raw::c_void,
332         free_user_data_cb: virgl_free_data_callback_type,
333     );
334 }
335 #[repr(C)]
336 #[derive(Debug, Default, Copy, Clone)]
337 pub struct virgl_renderer_resource_info {
338     pub handle: u32,
339     pub virgl_format: u32,
340     pub width: u32,
341     pub height: u32,
342     pub depth: u32,
343     pub flags: u32,
344     pub tex_id: u32,
345     pub stride: u32,
346     pub drm_fourcc: ::std::os::raw::c_int,
347     pub fd: ::std::os::raw::c_int,
348 }
349 #[repr(C)]
350 #[derive(Debug, Copy, Clone)]
351 pub struct virgl_renderer_resource_info_ext {
352     pub version: ::std::os::raw::c_int,
353     pub base: virgl_renderer_resource_info,
354     pub has_dmabuf_export: bool,
355     pub planes: ::std::os::raw::c_int,
356     pub modifiers: u64,
357     pub d3d_tex2d: *mut ::std::os::raw::c_void,
358 }
359 impl Default for virgl_renderer_resource_info_ext {
default() -> Self360     fn default() -> Self {
361         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
362         // TODO(b/315870313): Add safety comment
363         #[allow(clippy::undocumented_unsafe_blocks)]
364         unsafe {
365             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
366             s.assume_init()
367         }
368     }
369 }
370 extern "C" {
virgl_renderer_resource_get_info( res_handle: ::std::os::raw::c_int, info: *mut virgl_renderer_resource_info, ) -> ::std::os::raw::c_int371     pub fn virgl_renderer_resource_get_info(
372         res_handle: ::std::os::raw::c_int,
373         info: *mut virgl_renderer_resource_info,
374     ) -> ::std::os::raw::c_int;
375 }
376 extern "C" {
virgl_renderer_resource_get_info_ext( res_handle: ::std::os::raw::c_int, info: *mut virgl_renderer_resource_info_ext, ) -> ::std::os::raw::c_int377     pub fn virgl_renderer_resource_get_info_ext(
378         res_handle: ::std::os::raw::c_int,
379         info: *mut virgl_renderer_resource_info_ext,
380     ) -> ::std::os::raw::c_int;
381 }
382 extern "C" {
virgl_renderer_cleanup(cookie: *mut ::std::os::raw::c_void)383     pub fn virgl_renderer_cleanup(cookie: *mut ::std::os::raw::c_void);
384 }
385 extern "C" {
virgl_renderer_reset()386     pub fn virgl_renderer_reset();
387 }
388 extern "C" {
virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int389     pub fn virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int;
390 }
391 extern "C" {
virgl_renderer_execute( execute_args: *mut ::std::os::raw::c_void, execute_size: u32, ) -> ::std::os::raw::c_int392     pub fn virgl_renderer_execute(
393         execute_args: *mut ::std::os::raw::c_void,
394         execute_size: u32,
395     ) -> ::std::os::raw::c_int;
396 }
397 extern "C" {
virgl_renderer_context_create_with_flags( ctx_id: u32, ctx_flags: u32, nlen: u32, name: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int398     pub fn virgl_renderer_context_create_with_flags(
399         ctx_id: u32,
400         ctx_flags: u32,
401         nlen: u32,
402         name: *const ::std::os::raw::c_char,
403     ) -> ::std::os::raw::c_int;
404 }
405 #[repr(C)]
406 #[derive(Debug, Copy, Clone)]
407 pub struct virgl_renderer_resource_create_blob_args {
408     pub res_handle: u32,
409     pub ctx_id: u32,
410     pub blob_mem: u32,
411     pub blob_flags: u32,
412     pub blob_id: u64,
413     pub size: u64,
414     pub iovecs: *const iovec,
415     pub num_iovs: u32,
416 }
417 impl Default for virgl_renderer_resource_create_blob_args {
default() -> Self418     fn default() -> Self {
419         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
420         // TODO(b/315870313): Add safety comment
421         #[allow(clippy::undocumented_unsafe_blocks)]
422         unsafe {
423             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
424             s.assume_init()
425         }
426     }
427 }
428 extern "C" {
virgl_renderer_resource_create_blob( args: *const virgl_renderer_resource_create_blob_args, ) -> ::std::os::raw::c_int429     pub fn virgl_renderer_resource_create_blob(
430         args: *const virgl_renderer_resource_create_blob_args,
431     ) -> ::std::os::raw::c_int;
432 }
433 extern "C" {
virgl_renderer_resource_map( res_handle: u32, map: *mut *mut ::std::os::raw::c_void, out_size: *mut u64, ) -> ::std::os::raw::c_int434     pub fn virgl_renderer_resource_map(
435         res_handle: u32,
436         map: *mut *mut ::std::os::raw::c_void,
437         out_size: *mut u64,
438     ) -> ::std::os::raw::c_int;
439 }
440 extern "C" {
virgl_renderer_resource_unmap(res_handle: u32) -> ::std::os::raw::c_int441     pub fn virgl_renderer_resource_unmap(res_handle: u32) -> ::std::os::raw::c_int;
442 }
443 extern "C" {
virgl_renderer_resource_get_map_info( res_handle: u32, map_info: *mut u32, ) -> ::std::os::raw::c_int444     pub fn virgl_renderer_resource_get_map_info(
445         res_handle: u32,
446         map_info: *mut u32,
447     ) -> ::std::os::raw::c_int;
448 }
449 extern "C" {
virgl_renderer_resource_export_blob( res_id: u32, fd_type: *mut u32, fd: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int450     pub fn virgl_renderer_resource_export_blob(
451         res_id: u32,
452         fd_type: *mut u32,
453         fd: *mut ::std::os::raw::c_int,
454     ) -> ::std::os::raw::c_int;
455 }
456 #[repr(C)]
457 #[derive(Debug, Default, Copy, Clone)]
458 pub struct virgl_renderer_resource_import_blob_args {
459     pub res_handle: u32,
460     pub blob_mem: u32,
461     pub fd_type: u32,
462     pub fd: ::std::os::raw::c_int,
463     pub size: u64,
464 }
465 extern "C" {
virgl_renderer_resource_import_blob( args: *const virgl_renderer_resource_import_blob_args, ) -> ::std::os::raw::c_int466     pub fn virgl_renderer_resource_import_blob(
467         args: *const virgl_renderer_resource_import_blob_args,
468     ) -> ::std::os::raw::c_int;
469 }
470 extern "C" {
virgl_renderer_context_create_fence( ctx_id: u32, flags: u32, ring_idx: u32, fence_id: u64, ) -> ::std::os::raw::c_int471     pub fn virgl_renderer_context_create_fence(
472         ctx_id: u32,
473         flags: u32,
474         ring_idx: u32,
475         fence_id: u64,
476     ) -> ::std::os::raw::c_int;
477 }
478 extern "C" {
virgl_renderer_export_fence( client_fence_id: u64, fd: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int479     pub fn virgl_renderer_export_fence(
480         client_fence_id: u64,
481         fd: *mut ::std::os::raw::c_int,
482     ) -> ::std::os::raw::c_int;
483 }
484 extern "C" {
virgl_renderer_export_signalled_fence() -> ::std::os::raw::c_int485     pub fn virgl_renderer_export_signalled_fence() -> ::std::os::raw::c_int;
486 }
487 extern "C" {
virgl_renderer_context_poll(ctx_id: u32)488     pub fn virgl_renderer_context_poll(ctx_id: u32);
489 }
490 extern "C" {
virgl_renderer_context_get_poll_fd(ctx_id: u32) -> ::std::os::raw::c_int491     pub fn virgl_renderer_context_get_poll_fd(ctx_id: u32) -> ::std::os::raw::c_int;
492 }
493 extern "C" {
virgl_renderer_submit_cmd2( buffer: *mut ::std::os::raw::c_void, ctx_id: ::std::os::raw::c_int, ndw: ::std::os::raw::c_int, in_fence_ids: *mut u64, num_in_fences: u32, ) -> ::std::os::raw::c_int494     pub fn virgl_renderer_submit_cmd2(
495         buffer: *mut ::std::os::raw::c_void,
496         ctx_id: ::std::os::raw::c_int,
497         ndw: ::std::os::raw::c_int,
498         in_fence_ids: *mut u64,
499         num_in_fences: u32,
500     ) -> ::std::os::raw::c_int;
501 }
502