• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by rust-bindgen 0.59.2 */
2 
3 #[cfg(feature = "virgl_renderer")]
4 #[link(name = "virglrenderer")]
5 extern "C" {}
6 
7 pub const VIRGL_RENDERER_CALLBACKS_VERSION: u32 = 3;
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_RES_BIND_DEPTH_STENCIL: u32 = 1;
19 pub const VIRGL_RES_BIND_RENDER_TARGET: u32 = 2;
20 pub const VIRGL_RES_BIND_SAMPLER_VIEW: u32 = 8;
21 pub const VIRGL_RES_BIND_VERTEX_BUFFER: u32 = 16;
22 pub const VIRGL_RES_BIND_INDEX_BUFFER: u32 = 32;
23 pub const VIRGL_RES_BIND_CONSTANT_BUFFER: u32 = 64;
24 pub const VIRGL_RES_BIND_STREAM_OUTPUT: u32 = 2048;
25 pub const VIRGL_RES_BIND_CURSOR: u32 = 65536;
26 pub const VIRGL_RES_BIND_CUSTOM: u32 = 131072;
27 pub const VIRGL_RES_BIND_SCANOUT: u32 = 262144;
28 pub const VIRGL_RES_BIND_SHARED: u32 = 1048576;
29 pub const VIRGL_RENDERER_CONTEXT_FLAG_CAPSET_ID_MASK: u32 = 255;
30 pub const VIRGL_RENDERER_BLOB_MEM_GUEST: u32 = 1;
31 pub const VIRGL_RENDERER_BLOB_MEM_HOST3D: u32 = 2;
32 pub const VIRGL_RENDERER_BLOB_MEM_HOST3D_GUEST: u32 = 3;
33 pub const VIRGL_RENDERER_BLOB_FLAG_USE_MAPPABLE: u32 = 1;
34 pub const VIRGL_RENDERER_BLOB_FLAG_USE_SHAREABLE: u32 = 2;
35 pub const VIRGL_RENDERER_BLOB_FLAG_USE_CROSS_DEVICE: u32 = 4;
36 pub const VIRGL_RENDERER_MAP_CACHE_MASK: u32 = 15;
37 pub const VIRGL_RENDERER_MAP_CACHE_NONE: u32 = 0;
38 pub const VIRGL_RENDERER_MAP_CACHE_CACHED: u32 = 1;
39 pub const VIRGL_RENDERER_MAP_CACHE_UNCACHED: u32 = 2;
40 pub const VIRGL_RENDERER_MAP_CACHE_WC: u32 = 3;
41 pub const VIRGL_RENDERER_BLOB_FD_TYPE_DMABUF: u32 = 1;
42 pub const VIRGL_RENDERER_BLOB_FD_TYPE_OPAQUE: u32 = 2;
43 pub const VIRGL_RENDERER_BLOB_FD_TYPE_SHM: u32 = 3;
44 pub const VIRGL_RENDERER_FENCE_FLAG_MERGEABLE: u32 = 1;
45 pub type __int32_t = ::std::os::raw::c_int;
46 pub type __uint32_t = ::std::os::raw::c_uint;
47 pub type __uint64_t = ::std::os::raw::c_ulong;
48 #[repr(C)]
49 #[derive(Debug, Copy, Clone)]
50 pub struct virgl_box {
51     _unused: [u8; 0],
52 }
53 #[repr(C)]
54 #[derive(Debug, Copy, Clone)]
55 pub struct iovec {
56     _unused: [u8; 0],
57 }
58 pub type virgl_renderer_gl_context = *mut ::std::os::raw::c_void;
59 #[repr(C)]
60 #[derive(Debug, Default, Copy, Clone)]
61 pub struct virgl_renderer_gl_ctx_param {
62     pub version: ::std::os::raw::c_int,
63     pub shared: bool,
64     pub major_ver: ::std::os::raw::c_int,
65     pub minor_ver: ::std::os::raw::c_int,
66 }
67 #[repr(C)]
68 #[derive(Debug, Default, Copy, Clone)]
69 pub struct virgl_renderer_callbacks {
70     pub version: ::std::os::raw::c_int,
71     pub write_fence: ::std::option::Option<
72         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, fence: u32),
73     >,
74     pub create_gl_context: ::std::option::Option<
75         unsafe extern "C" fn(
76             cookie: *mut ::std::os::raw::c_void,
77             scanout_idx: ::std::os::raw::c_int,
78             param: *mut virgl_renderer_gl_ctx_param,
79         ) -> virgl_renderer_gl_context,
80     >,
81     pub destroy_gl_context: ::std::option::Option<
82         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, ctx: virgl_renderer_gl_context),
83     >,
84     pub make_current: ::std::option::Option<
85         unsafe extern "C" fn(
86             cookie: *mut ::std::os::raw::c_void,
87             scanout_idx: ::std::os::raw::c_int,
88             ctx: virgl_renderer_gl_context,
89         ) -> ::std::os::raw::c_int,
90     >,
91     pub get_drm_fd: ::std::option::Option<
92         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
93     >,
94     pub write_context_fence: ::std::option::Option<
95         unsafe extern "C" fn(
96             cookie: *mut ::std::os::raw::c_void,
97             ctx_id: u32,
98             queue_id: u64,
99             fence_cookie: *mut ::std::os::raw::c_void,
100         ),
101     >,
102     pub get_server_fd: ::std::option::Option<
103         unsafe extern "C" fn(
104             cookie: *mut ::std::os::raw::c_void,
105             version: u32,
106         ) -> ::std::os::raw::c_int,
107     >,
108 }
109 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_int110     pub fn virgl_renderer_init(
111         cookie: *mut ::std::os::raw::c_void,
112         flags: ::std::os::raw::c_int,
113         cb: *mut virgl_renderer_callbacks,
114     ) -> ::std::os::raw::c_int;
115 }
116 extern "C" {
virgl_renderer_poll()117     pub fn virgl_renderer_poll();
118 }
119 extern "C" {
virgl_renderer_get_cursor_data( resource_id: u32, width: *mut u32, height: *mut u32, ) -> *mut ::std::os::raw::c_void120     pub fn virgl_renderer_get_cursor_data(
121         resource_id: u32,
122         width: *mut u32,
123         height: *mut u32,
124     ) -> *mut ::std::os::raw::c_void;
125 }
126 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, )127     pub fn virgl_renderer_get_rect(
128         resource_id: ::std::os::raw::c_int,
129         iov: *mut iovec,
130         num_iovs: ::std::os::raw::c_uint,
131         offset: u32,
132         x: ::std::os::raw::c_int,
133         y: ::std::os::raw::c_int,
134         width: ::std::os::raw::c_int,
135         height: ::std::os::raw::c_int,
136     );
137 }
138 extern "C" {
virgl_renderer_get_fd_for_texture( tex_id: u32, fd: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int139     pub fn virgl_renderer_get_fd_for_texture(
140         tex_id: u32,
141         fd: *mut ::std::os::raw::c_int,
142     ) -> ::std::os::raw::c_int;
143 }
144 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_int145     pub fn virgl_renderer_get_fd_for_texture2(
146         tex_id: u32,
147         fd: *mut ::std::os::raw::c_int,
148         stride: *mut ::std::os::raw::c_int,
149         offset: *mut ::std::os::raw::c_int,
150     ) -> ::std::os::raw::c_int;
151 }
152 pub const VIRGL_RENDERER_STRUCTURE_TYPE_NONE: virgl_renderer_structure_type_v0 = 0;
153 pub const VIRGL_RENDERER_STRUCTURE_TYPE_EXPORT_QUERY: virgl_renderer_structure_type_v0 = 1;
154 pub const VIRGL_RENDERER_STRUCTURE_TYPE_SUPPORTED_STRUCTURES: virgl_renderer_structure_type_v0 = 2;
155 pub type virgl_renderer_structure_type_v0 = ::std::os::raw::c_uint;
156 #[repr(C)]
157 #[derive(Debug, Default, Copy, Clone)]
158 pub struct virgl_renderer_resource_create_args {
159     pub handle: u32,
160     pub target: u32,
161     pub format: u32,
162     pub bind: u32,
163     pub width: u32,
164     pub height: u32,
165     pub depth: u32,
166     pub array_size: u32,
167     pub last_level: u32,
168     pub nr_samples: u32,
169     pub flags: u32,
170 }
171 #[repr(C)]
172 #[derive(Debug, Default, Copy, Clone)]
173 pub struct virgl_renderer_hdr {
174     pub stype: u32,
175     pub stype_version: u32,
176     pub size: u32,
177 }
178 #[repr(C)]
179 #[derive(Debug, Default, Copy, Clone)]
180 pub struct virgl_renderer_export_query {
181     pub hdr: virgl_renderer_hdr,
182     pub in_resource_id: u32,
183     pub out_num_fds: u32,
184     pub in_export_fds: u32,
185     pub out_fourcc: u32,
186     pub pad: u32,
187     pub out_fds: [i32; 4usize],
188     pub out_strides: [u32; 4usize],
189     pub out_offsets: [u32; 4usize],
190     pub out_modifier: u64,
191 }
192 #[repr(C)]
193 #[derive(Debug, Default, Copy, Clone)]
194 pub struct virgl_renderer_supported_structures {
195     pub hdr: virgl_renderer_hdr,
196     pub in_stype_version: u32,
197     pub out_supported_structures_mask: u32,
198 }
199 extern "C" {
virgl_renderer_resource_create( args: *mut virgl_renderer_resource_create_args, iov: *mut iovec, num_iovs: u32, ) -> ::std::os::raw::c_int200     pub fn virgl_renderer_resource_create(
201         args: *mut virgl_renderer_resource_create_args,
202         iov: *mut iovec,
203         num_iovs: u32,
204     ) -> ::std::os::raw::c_int;
205 }
206 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_int207     pub fn virgl_renderer_resource_import_eglimage(
208         args: *mut virgl_renderer_resource_create_args,
209         image: *mut ::std::os::raw::c_void,
210     ) -> ::std::os::raw::c_int;
211 }
212 extern "C" {
virgl_renderer_resource_unref(res_handle: u32)213     pub fn virgl_renderer_resource_unref(res_handle: u32);
214 }
215 extern "C" {
virgl_renderer_resource_set_priv(res_handle: u32, priv_: *mut ::std::os::raw::c_void)216     pub fn virgl_renderer_resource_set_priv(res_handle: u32, priv_: *mut ::std::os::raw::c_void);
217 }
218 extern "C" {
virgl_renderer_resource_get_priv(res_handle: u32) -> *mut ::std::os::raw::c_void219     pub fn virgl_renderer_resource_get_priv(res_handle: u32) -> *mut ::std::os::raw::c_void;
220 }
221 extern "C" {
virgl_renderer_context_create( handle: u32, nlen: u32, name: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_int222     pub fn virgl_renderer_context_create(
223         handle: u32,
224         nlen: u32,
225         name: *const ::std::os::raw::c_char,
226     ) -> ::std::os::raw::c_int;
227 }
228 extern "C" {
virgl_renderer_context_destroy(handle: u32)229     pub fn virgl_renderer_context_destroy(handle: u32);
230 }
231 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_int232     pub fn virgl_renderer_submit_cmd(
233         buffer: *mut ::std::os::raw::c_void,
234         ctx_id: ::std::os::raw::c_int,
235         ndw: ::std::os::raw::c_int,
236     ) -> ::std::os::raw::c_int;
237 }
238 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_int239     pub fn virgl_renderer_transfer_read_iov(
240         handle: u32,
241         ctx_id: u32,
242         level: u32,
243         stride: u32,
244         layer_stride: u32,
245         box_: *mut virgl_box,
246         offset: u64,
247         iov: *mut iovec,
248         iovec_cnt: ::std::os::raw::c_int,
249     ) -> ::std::os::raw::c_int;
250 }
251 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_int252     pub fn virgl_renderer_transfer_write_iov(
253         handle: u32,
254         ctx_id: u32,
255         level: ::std::os::raw::c_int,
256         stride: u32,
257         layer_stride: u32,
258         box_: *mut virgl_box,
259         offset: u64,
260         iovec: *mut iovec,
261         iovec_cnt: ::std::os::raw::c_uint,
262     ) -> ::std::os::raw::c_int;
263 }
264 extern "C" {
virgl_renderer_get_cap_set(set: u32, max_ver: *mut u32, max_size: *mut u32)265     pub fn virgl_renderer_get_cap_set(set: u32, max_ver: *mut u32, max_size: *mut u32);
266 }
267 extern "C" {
virgl_renderer_fill_caps(set: u32, version: u32, caps: *mut ::std::os::raw::c_void)268     pub fn virgl_renderer_fill_caps(set: u32, version: u32, caps: *mut ::std::os::raw::c_void);
269 }
270 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_int271     pub fn virgl_renderer_resource_attach_iov(
272         res_handle: ::std::os::raw::c_int,
273         iov: *mut iovec,
274         num_iovs: ::std::os::raw::c_int,
275     ) -> ::std::os::raw::c_int;
276 }
277 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, )278     pub fn virgl_renderer_resource_detach_iov(
279         res_handle: ::std::os::raw::c_int,
280         iov: *mut *mut iovec,
281         num_iovs: *mut ::std::os::raw::c_int,
282     );
283 }
284 extern "C" {
virgl_renderer_create_fence( client_fence_id: ::std::os::raw::c_int, ctx_id: u32, ) -> ::std::os::raw::c_int285     pub fn virgl_renderer_create_fence(
286         client_fence_id: ::std::os::raw::c_int,
287         ctx_id: u32,
288     ) -> ::std::os::raw::c_int;
289 }
290 extern "C" {
virgl_renderer_force_ctx_0()291     pub fn virgl_renderer_force_ctx_0();
292 }
293 extern "C" {
virgl_renderer_ctx_attach_resource( ctx_id: ::std::os::raw::c_int, res_handle: ::std::os::raw::c_int, )294     pub fn virgl_renderer_ctx_attach_resource(
295         ctx_id: ::std::os::raw::c_int,
296         res_handle: ::std::os::raw::c_int,
297     );
298 }
299 extern "C" {
virgl_renderer_ctx_detach_resource( ctx_id: ::std::os::raw::c_int, res_handle: ::std::os::raw::c_int, )300     pub fn virgl_renderer_ctx_detach_resource(
301         ctx_id: ::std::os::raw::c_int,
302         res_handle: ::std::os::raw::c_int,
303     );
304 }
305 #[repr(C)]
306 #[derive(Debug, Default, Copy, Clone)]
307 pub struct virgl_renderer_resource_info {
308     pub handle: u32,
309     pub virgl_format: u32,
310     pub width: u32,
311     pub height: u32,
312     pub depth: u32,
313     pub flags: u32,
314     pub tex_id: u32,
315     pub stride: u32,
316     pub drm_fourcc: ::std::os::raw::c_int,
317 }
318 extern "C" {
virgl_renderer_resource_get_info( res_handle: ::std::os::raw::c_int, info: *mut virgl_renderer_resource_info, ) -> ::std::os::raw::c_int319     pub fn virgl_renderer_resource_get_info(
320         res_handle: ::std::os::raw::c_int,
321         info: *mut virgl_renderer_resource_info,
322     ) -> ::std::os::raw::c_int;
323 }
324 extern "C" {
virgl_renderer_cleanup(cookie: *mut ::std::os::raw::c_void)325     pub fn virgl_renderer_cleanup(cookie: *mut ::std::os::raw::c_void);
326 }
327 extern "C" {
virgl_renderer_reset()328     pub fn virgl_renderer_reset();
329 }
330 extern "C" {
virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int331     pub fn virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int;
332 }
333 extern "C" {
virgl_renderer_execute( execute_args: *mut ::std::os::raw::c_void, execute_size: u32, ) -> ::std::os::raw::c_int334     pub fn virgl_renderer_execute(
335         execute_args: *mut ::std::os::raw::c_void,
336         execute_size: u32,
337     ) -> ::std::os::raw::c_int;
338 }
339 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_int340     pub fn virgl_renderer_context_create_with_flags(
341         ctx_id: u32,
342         ctx_flags: u32,
343         nlen: u32,
344         name: *const ::std::os::raw::c_char,
345     ) -> ::std::os::raw::c_int;
346 }
347 #[repr(C)]
348 #[derive(Debug, Copy, Clone)]
349 pub struct virgl_renderer_resource_create_blob_args {
350     pub res_handle: u32,
351     pub ctx_id: u32,
352     pub blob_mem: u32,
353     pub blob_flags: u32,
354     pub blob_id: u64,
355     pub size: u64,
356     pub iovecs: *const iovec,
357     pub num_iovs: u32,
358 }
359 impl Default for virgl_renderer_resource_create_blob_args {
default() -> Self360     fn default() -> Self {
361         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
362         unsafe {
363             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
364             s.assume_init()
365         }
366     }
367 }
368 extern "C" {
virgl_renderer_resource_create_blob( args: *const virgl_renderer_resource_create_blob_args, ) -> ::std::os::raw::c_int369     pub fn virgl_renderer_resource_create_blob(
370         args: *const virgl_renderer_resource_create_blob_args,
371     ) -> ::std::os::raw::c_int;
372 }
373 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_int374     pub fn virgl_renderer_resource_map(
375         res_handle: u32,
376         map: *mut *mut ::std::os::raw::c_void,
377         out_size: *mut u64,
378     ) -> ::std::os::raw::c_int;
379 }
380 extern "C" {
virgl_renderer_resource_unmap(res_handle: u32) -> ::std::os::raw::c_int381     pub fn virgl_renderer_resource_unmap(res_handle: u32) -> ::std::os::raw::c_int;
382 }
383 extern "C" {
virgl_renderer_resource_get_map_info( res_handle: u32, map_info: *mut u32, ) -> ::std::os::raw::c_int384     pub fn virgl_renderer_resource_get_map_info(
385         res_handle: u32,
386         map_info: *mut u32,
387     ) -> ::std::os::raw::c_int;
388 }
389 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_int390     pub fn virgl_renderer_resource_export_blob(
391         res_id: u32,
392         fd_type: *mut u32,
393         fd: *mut ::std::os::raw::c_int,
394     ) -> ::std::os::raw::c_int;
395 }
396 #[repr(C)]
397 #[derive(Debug, Default, Copy, Clone)]
398 pub struct virgl_renderer_resource_import_blob_args {
399     pub res_handle: u32,
400     pub blob_mem: u32,
401     pub fd_type: u32,
402     pub fd: ::std::os::raw::c_int,
403     pub size: u64,
404 }
405 extern "C" {
virgl_renderer_resource_import_blob( args: *const virgl_renderer_resource_import_blob_args, ) -> ::std::os::raw::c_int406     pub fn virgl_renderer_resource_import_blob(
407         args: *const virgl_renderer_resource_import_blob_args,
408     ) -> ::std::os::raw::c_int;
409 }
410 extern "C" {
virgl_renderer_export_fence( client_fence_id: u32, fd: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int411     pub fn virgl_renderer_export_fence(
412         client_fence_id: u32,
413         fd: *mut ::std::os::raw::c_int,
414     ) -> ::std::os::raw::c_int;
415 }
416 extern "C" {
virgl_renderer_context_create_fence( ctx_id: u32, flags: u32, queue_id: u64, fence_cookie: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int417     pub fn virgl_renderer_context_create_fence(
418         ctx_id: u32,
419         flags: u32,
420         queue_id: u64,
421         fence_cookie: *mut ::std::os::raw::c_void,
422     ) -> ::std::os::raw::c_int;
423 }
424 extern "C" {
virgl_renderer_context_poll(ctx_id: u32)425     pub fn virgl_renderer_context_poll(ctx_id: u32);
426 }
427 extern "C" {
virgl_renderer_context_get_poll_fd(ctx_id: u32) -> ::std::os::raw::c_int428     pub fn virgl_renderer_context_get_poll_fd(ctx_id: u32) -> ::std::os::raw::c_int;
429 }
430