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