pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2Y: u32 = 0;
pub const __GLIBC_USE_ISOC23: u32 = 0;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __TIMESIZE: u32 = 64;
pub const __USE_TIME_BITS64: u32 = 1;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const __GLIBC_USE_C23_STRTOL: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_60559_BFP__: u32 = 201404;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 42;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23: u32 = 0;
pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C23: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const _BITS_STDINT_LEAST_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const __bool_true_false_are_defined: u32 = 1;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const VIRGL_MAJOR_VERSION: u32 = 1;
pub const VIRGL_MINOR_VERSION: u32 = 3;
pub const VIRGL_MICRO_VERSION: u32 = 0;
pub const VIRGL_RENDERER_CALLBACKS_VERSION: u32 = 4;
pub const VIRGL_RENDERER_USE_EGL: u32 = 1;
pub const VIRGL_RENDERER_THREAD_SYNC: u32 = 2;
pub const VIRGL_RENDERER_USE_GLX: u32 = 4;
pub const VIRGL_RENDERER_USE_SURFACELESS: u32 = 8;
pub const VIRGL_RENDERER_USE_GLES: u32 = 16;
pub const VIRGL_RENDERER_USE_EXTERNAL_BLOB: u32 = 32;
pub const VIRGL_RENDERER_VENUS: u32 = 64;
pub const VIRGL_RENDERER_NO_VIRGL: u32 = 128;
pub const VIRGL_RENDERER_ASYNC_FENCE_CB: u32 = 256;
pub const VIRGL_RENDERER_RENDER_SERVER: u32 = 512;
pub const VIRGL_RENDERER_DRM: u32 = 1024;
pub const VIRGL_RENDERER_USE_VIDEO: u32 = 2048;
pub const VIRGL_RENDERER_D3D11_SHARE_TEXTURE: u32 = 4096;
pub const VIRGL_RENDERER_COMPAT_PROFILE: u32 = 8192;
pub const VIRGL_RENDERER_USE_GUEST_VRAM: u32 = 16384;
pub const VIRGL_RES_BIND_DEPTH_STENCIL: u32 = 1;
pub const VIRGL_RES_BIND_RENDER_TARGET: u32 = 2;
pub const VIRGL_RES_BIND_SAMPLER_VIEW: u32 = 8;
pub const VIRGL_RES_BIND_VERTEX_BUFFER: u32 = 16;
pub const VIRGL_RES_BIND_INDEX_BUFFER: u32 = 32;
pub const VIRGL_RES_BIND_CONSTANT_BUFFER: u32 = 64;
pub const VIRGL_RES_BIND_STREAM_OUTPUT: u32 = 2048;
pub const VIRGL_RES_BIND_CURSOR: u32 = 65536;
pub const VIRGL_RES_BIND_CUSTOM: u32 = 131072;
pub const VIRGL_RES_BIND_SCANOUT: u32 = 262144;
pub const VIRGL_RES_BIND_SHARED: u32 = 1048576;
pub const VIRGL_RENDERER_RESOURCE_INFO_EXT_VERSION: u32 = 0;
pub const VIRGL_RENDERER_CONTEXT_FLAG_CAPSET_ID_MASK: u32 = 255;
pub const VIRGL_RENDERER_BLOB_MEM_GUEST: u32 = 1;
pub const VIRGL_RENDERER_BLOB_MEM_HOST3D: u32 = 2;
pub const VIRGL_RENDERER_BLOB_MEM_HOST3D_GUEST: u32 = 3;
pub const VIRGL_RENDERER_BLOB_MEM_GUEST_VRAM: u32 = 4;
pub const VIRGL_RENDERER_BLOB_FLAG_USE_MAPPABLE: u32 = 1;
pub const VIRGL_RENDERER_BLOB_FLAG_USE_SHAREABLE: u32 = 2;
pub const VIRGL_RENDERER_BLOB_FLAG_USE_CROSS_DEVICE: u32 = 4;
pub const VIRGL_RENDERER_MAP_CACHE_MASK: u32 = 15;
pub const VIRGL_RENDERER_MAP_CACHE_NONE: u32 = 0;
pub const VIRGL_RENDERER_MAP_CACHE_CACHED: u32 = 1;
pub const VIRGL_RENDERER_MAP_CACHE_UNCACHED: u32 = 2;
pub const VIRGL_RENDERER_MAP_CACHE_WC: u32 = 3;
pub const VIRGL_RENDERER_BLOB_FD_TYPE_DMABUF: u32 = 1;
pub const VIRGL_RENDERER_BLOB_FD_TYPE_OPAQUE: u32 = 2;
pub const VIRGL_RENDERER_BLOB_FD_TYPE_SHM: u32 = 3;
pub const VIRGL_RENDERER_FENCE_FLAG_MERGEABLE: u32 = 1;
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
pub __val: [::std::os::raw::c_int; 2usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of __fsid_t"][::std::mem::size_of::<__fsid_t>() - 8usize];
["Alignment of __fsid_t"][::std::mem::align_of::<__fsid_t>() - 4usize];
["Offset of field: __fsid_t::__val"][::std::mem::offset_of!(__fsid_t, __val) - 0usize];
};
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __suseconds64_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
pub type __gnuc_va_list = __builtin_va_list;
pub type va_list = __builtin_va_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_box {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct iovec {
_unused: [u8; 0],
}
pub type virgl_renderer_gl_context = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_gl_ctx_param {
pub version: ::std::os::raw::c_int,
pub shared: bool,
pub major_ver: ::std::os::raw::c_int,
pub minor_ver: ::std::os::raw::c_int,
pub compat_ctx: ::std::os::raw::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_gl_ctx_param"]
[::std::mem::size_of::<virgl_renderer_gl_ctx_param>() - 20usize];
["Alignment of virgl_renderer_gl_ctx_param"]
[::std::mem::align_of::<virgl_renderer_gl_ctx_param>() - 4usize];
["Offset of field: virgl_renderer_gl_ctx_param::version"]
[::std::mem::offset_of!(virgl_renderer_gl_ctx_param, version) - 0usize];
["Offset of field: virgl_renderer_gl_ctx_param::shared"]
[::std::mem::offset_of!(virgl_renderer_gl_ctx_param, shared) - 4usize];
["Offset of field: virgl_renderer_gl_ctx_param::major_ver"]
[::std::mem::offset_of!(virgl_renderer_gl_ctx_param, major_ver) - 8usize];
["Offset of field: virgl_renderer_gl_ctx_param::minor_ver"]
[::std::mem::offset_of!(virgl_renderer_gl_ctx_param, minor_ver) - 12usize];
["Offset of field: virgl_renderer_gl_ctx_param::compat_ctx"]
[::std::mem::offset_of!(virgl_renderer_gl_ctx_param, compat_ctx) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_callbacks {
pub version: ::std::os::raw::c_int,
pub write_fence: ::std::option::Option<
unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, fence: u32),
>,
pub create_gl_context: ::std::option::Option<
unsafe extern "C" fn(
cookie: *mut ::std::os::raw::c_void,
scanout_idx: ::std::os::raw::c_int,
param: *mut virgl_renderer_gl_ctx_param,
) -> virgl_renderer_gl_context,
>,
pub destroy_gl_context: ::std::option::Option<
unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, ctx: virgl_renderer_gl_context),
>,
pub make_current: ::std::option::Option<
unsafe extern "C" fn(
cookie: *mut ::std::os::raw::c_void,
scanout_idx: ::std::os::raw::c_int,
ctx: virgl_renderer_gl_context,
) -> ::std::os::raw::c_int,
>,
pub get_drm_fd: ::std::option::Option<
unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>,
pub write_context_fence: ::std::option::Option<
unsafe extern "C" fn(
cookie: *mut ::std::os::raw::c_void,
ctx_id: u32,
ring_idx: u32,
fence_id: u64,
),
>,
pub get_server_fd: ::std::option::Option<
unsafe extern "C" fn(
cookie: *mut ::std::os::raw::c_void,
version: u32,
) -> ::std::os::raw::c_int,
>,
pub get_egl_display: ::std::option::Option<
unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_callbacks"]
[::std::mem::size_of::<virgl_renderer_callbacks>() - 72usize];
["Alignment of virgl_renderer_callbacks"]
[::std::mem::align_of::<virgl_renderer_callbacks>() - 8usize];
["Offset of field: virgl_renderer_callbacks::version"]
[::std::mem::offset_of!(virgl_renderer_callbacks, version) - 0usize];
["Offset of field: virgl_renderer_callbacks::write_fence"]
[::std::mem::offset_of!(virgl_renderer_callbacks, write_fence) - 8usize];
["Offset of field: virgl_renderer_callbacks::create_gl_context"]
[::std::mem::offset_of!(virgl_renderer_callbacks, create_gl_context) - 16usize];
["Offset of field: virgl_renderer_callbacks::destroy_gl_context"]
[::std::mem::offset_of!(virgl_renderer_callbacks, destroy_gl_context) - 24usize];
["Offset of field: virgl_renderer_callbacks::make_current"]
[::std::mem::offset_of!(virgl_renderer_callbacks, make_current) - 32usize];
["Offset of field: virgl_renderer_callbacks::get_drm_fd"]
[::std::mem::offset_of!(virgl_renderer_callbacks, get_drm_fd) - 40usize];
["Offset of field: virgl_renderer_callbacks::write_context_fence"]
[::std::mem::offset_of!(virgl_renderer_callbacks, write_context_fence) - 48usize];
["Offset of field: virgl_renderer_callbacks::get_server_fd"]
[::std::mem::offset_of!(virgl_renderer_callbacks, get_server_fd) - 56usize];
["Offset of field: virgl_renderer_callbacks::get_egl_display"]
[::std::mem::offset_of!(virgl_renderer_callbacks, get_egl_display) - 64usize];
};
unsafe extern "C" {
pub fn 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_int;
}
unsafe extern "C" {
pub fn virgl_renderer_poll();
}
unsafe extern "C" {
pub fn virgl_renderer_get_cursor_data(
resource_id: u32,
width: *mut u32,
height: *mut u32,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn 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,
);
}
unsafe extern "C" {
pub fn virgl_renderer_get_fd_for_texture(
tex_id: u32,
fd: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn 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_int;
}
pub const virgl_renderer_structure_type_v0_VIRGL_RENDERER_STRUCTURE_TYPE_NONE:
virgl_renderer_structure_type_v0 = 0;
pub const virgl_renderer_structure_type_v0_VIRGL_RENDERER_STRUCTURE_TYPE_EXPORT_QUERY:
virgl_renderer_structure_type_v0 = 1;
pub const virgl_renderer_structure_type_v0_VIRGL_RENDERER_STRUCTURE_TYPE_SUPPORTED_STRUCTURES:
virgl_renderer_structure_type_v0 = 2;
pub type virgl_renderer_structure_type_v0 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_resource_create_args {
pub handle: u32,
pub target: u32,
pub format: u32,
pub bind: u32,
pub width: u32,
pub height: u32,
pub depth: u32,
pub array_size: u32,
pub last_level: u32,
pub nr_samples: u32,
pub flags: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_resource_create_args"]
[::std::mem::size_of::<virgl_renderer_resource_create_args>() - 44usize];
["Alignment of virgl_renderer_resource_create_args"]
[::std::mem::align_of::<virgl_renderer_resource_create_args>() - 4usize];
["Offset of field: virgl_renderer_resource_create_args::handle"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, handle) - 0usize];
["Offset of field: virgl_renderer_resource_create_args::target"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, target) - 4usize];
["Offset of field: virgl_renderer_resource_create_args::format"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, format) - 8usize];
["Offset of field: virgl_renderer_resource_create_args::bind"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, bind) - 12usize];
["Offset of field: virgl_renderer_resource_create_args::width"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, width) - 16usize];
["Offset of field: virgl_renderer_resource_create_args::height"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, height) - 20usize];
["Offset of field: virgl_renderer_resource_create_args::depth"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, depth) - 24usize];
["Offset of field: virgl_renderer_resource_create_args::array_size"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, array_size) - 28usize];
["Offset of field: virgl_renderer_resource_create_args::last_level"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, last_level) - 32usize];
["Offset of field: virgl_renderer_resource_create_args::nr_samples"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, nr_samples) - 36usize];
["Offset of field: virgl_renderer_resource_create_args::flags"]
[::std::mem::offset_of!(virgl_renderer_resource_create_args, flags) - 40usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_hdr {
pub stype: u32,
pub stype_version: u32,
pub size: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_hdr"][::std::mem::size_of::<virgl_renderer_hdr>() - 12usize];
["Alignment of virgl_renderer_hdr"][::std::mem::align_of::<virgl_renderer_hdr>() - 4usize];
["Offset of field: virgl_renderer_hdr::stype"]
[::std::mem::offset_of!(virgl_renderer_hdr, stype) - 0usize];
["Offset of field: virgl_renderer_hdr::stype_version"]
[::std::mem::offset_of!(virgl_renderer_hdr, stype_version) - 4usize];
["Offset of field: virgl_renderer_hdr::size"]
[::std::mem::offset_of!(virgl_renderer_hdr, size) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_export_query {
pub hdr: virgl_renderer_hdr,
pub in_resource_id: u32,
pub out_num_fds: u32,
pub in_export_fds: u32,
pub out_fourcc: u32,
pub pad: u32,
pub out_fds: [i32; 4usize],
pub out_strides: [u32; 4usize],
pub out_offsets: [u32; 4usize],
pub out_modifier: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_export_query"]
[::std::mem::size_of::<virgl_renderer_export_query>() - 88usize];
["Alignment of virgl_renderer_export_query"]
[::std::mem::align_of::<virgl_renderer_export_query>() - 8usize];
["Offset of field: virgl_renderer_export_query::hdr"]
[::std::mem::offset_of!(virgl_renderer_export_query, hdr) - 0usize];
["Offset of field: virgl_renderer_export_query::in_resource_id"]
[::std::mem::offset_of!(virgl_renderer_export_query, in_resource_id) - 12usize];
["Offset of field: virgl_renderer_export_query::out_num_fds"]
[::std::mem::offset_of!(virgl_renderer_export_query, out_num_fds) - 16usize];
["Offset of field: virgl_renderer_export_query::in_export_fds"]
[::std::mem::offset_of!(virgl_renderer_export_query, in_export_fds) - 20usize];
["Offset of field: virgl_renderer_export_query::out_fourcc"]
[::std::mem::offset_of!(virgl_renderer_export_query, out_fourcc) - 24usize];
["Offset of field: virgl_renderer_export_query::pad"]
[::std::mem::offset_of!(virgl_renderer_export_query, pad) - 28usize];
["Offset of field: virgl_renderer_export_query::out_fds"]
[::std::mem::offset_of!(virgl_renderer_export_query, out_fds) - 32usize];
["Offset of field: virgl_renderer_export_query::out_strides"]
[::std::mem::offset_of!(virgl_renderer_export_query, out_strides) - 48usize];
["Offset of field: virgl_renderer_export_query::out_offsets"]
[::std::mem::offset_of!(virgl_renderer_export_query, out_offsets) - 64usize];
["Offset of field: virgl_renderer_export_query::out_modifier"]
[::std::mem::offset_of!(virgl_renderer_export_query, out_modifier) - 80usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_supported_structures {
pub hdr: virgl_renderer_hdr,
pub in_stype_version: u32,
pub out_supported_structures_mask: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_supported_structures"]
[::std::mem::size_of::<virgl_renderer_supported_structures>() - 20usize];
["Alignment of virgl_renderer_supported_structures"]
[::std::mem::align_of::<virgl_renderer_supported_structures>() - 4usize];
["Offset of field: virgl_renderer_supported_structures::hdr"]
[::std::mem::offset_of!(virgl_renderer_supported_structures, hdr) - 0usize];
["Offset of field: virgl_renderer_supported_structures::in_stype_version"]
[::std::mem::offset_of!(virgl_renderer_supported_structures, in_stype_version) - 12usize];
["Offset of field: virgl_renderer_supported_structures::out_supported_structures_mask"][::std::mem::offset_of!(
virgl_renderer_supported_structures,
out_supported_structures_mask
)
- 16usize];
};
pub type virgl_debug_callback_type = ::std::option::Option<
unsafe extern "C" fn(fmt: *const ::std::os::raw::c_char, ap: *mut __va_list_tag),
>;
pub const virgl_log_level_flags_VIRGL_LOG_LEVEL_DEBUG: virgl_log_level_flags = 0;
pub const virgl_log_level_flags_VIRGL_LOG_LEVEL_INFO: virgl_log_level_flags = 1;
pub const virgl_log_level_flags_VIRGL_LOG_LEVEL_WARNING: virgl_log_level_flags = 2;
pub const virgl_log_level_flags_VIRGL_LOG_LEVEL_ERROR: virgl_log_level_flags = 3;
pub const virgl_log_level_flags_VIRGL_LOG_LEVEL_SILENT: virgl_log_level_flags = 4;
pub type virgl_log_level_flags = ::std::os::raw::c_uint;
pub type virgl_free_data_callback_type =
::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
pub type virgl_log_callback_type = ::std::option::Option<
unsafe extern "C" fn(
log_level: virgl_log_level_flags,
message: *const ::std::os::raw::c_char,
user_data: *mut ::std::os::raw::c_void,
),
>;
unsafe extern "C" {
pub fn virgl_renderer_resource_create(
args: *mut virgl_renderer_resource_create_args,
iov: *mut iovec,
num_iovs: u32,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_import_eglimage(
args: *mut virgl_renderer_resource_create_args,
image: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_unref(res_handle: u32);
}
unsafe extern "C" {
pub fn virgl_renderer_resource_set_priv(res_handle: u32, priv_: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn virgl_renderer_resource_get_priv(res_handle: u32) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn virgl_renderer_context_create(
handle: u32,
nlen: u32,
name: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_context_destroy(handle: u32);
}
unsafe extern "C" {
pub fn 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_int;
}
unsafe extern "C" {
pub fn 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_int;
}
unsafe extern "C" {
pub fn 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_int;
}
unsafe extern "C" {
pub fn virgl_renderer_get_cap_set(set: u32, max_ver: *mut u32, max_size: *mut u32);
}
unsafe extern "C" {
pub fn virgl_renderer_fill_caps(set: u32, version: u32, caps: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn 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_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_detach_iov(
res_handle: ::std::os::raw::c_int,
iov: *mut *mut iovec,
num_iovs: *mut ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn virgl_renderer_create_fence(
client_fence_id: ::std::os::raw::c_int,
ctx_id: u32,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_force_ctx_0();
}
unsafe extern "C" {
pub fn virgl_renderer_ctx_attach_resource(
ctx_id: ::std::os::raw::c_int,
res_handle: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn virgl_renderer_ctx_detach_resource(
ctx_id: ::std::os::raw::c_int,
res_handle: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn virgl_set_debug_callback(cb: virgl_debug_callback_type) -> virgl_debug_callback_type;
}
unsafe extern "C" {
pub fn 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,
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_resource_info {
pub handle: u32,
pub virgl_format: u32,
pub width: u32,
pub height: u32,
pub depth: u32,
pub flags: u32,
pub tex_id: u32,
pub stride: u32,
pub drm_fourcc: ::std::os::raw::c_int,
pub fd: ::std::os::raw::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_resource_info"]
[::std::mem::size_of::<virgl_renderer_resource_info>() - 40usize];
["Alignment of virgl_renderer_resource_info"]
[::std::mem::align_of::<virgl_renderer_resource_info>() - 4usize];
["Offset of field: virgl_renderer_resource_info::handle"]
[::std::mem::offset_of!(virgl_renderer_resource_info, handle) - 0usize];
["Offset of field: virgl_renderer_resource_info::virgl_format"]
[::std::mem::offset_of!(virgl_renderer_resource_info, virgl_format) - 4usize];
["Offset of field: virgl_renderer_resource_info::width"]
[::std::mem::offset_of!(virgl_renderer_resource_info, width) - 8usize];
["Offset of field: virgl_renderer_resource_info::height"]
[::std::mem::offset_of!(virgl_renderer_resource_info, height) - 12usize];
["Offset of field: virgl_renderer_resource_info::depth"]
[::std::mem::offset_of!(virgl_renderer_resource_info, depth) - 16usize];
["Offset of field: virgl_renderer_resource_info::flags"]
[::std::mem::offset_of!(virgl_renderer_resource_info, flags) - 20usize];
["Offset of field: virgl_renderer_resource_info::tex_id"]
[::std::mem::offset_of!(virgl_renderer_resource_info, tex_id) - 24usize];
["Offset of field: virgl_renderer_resource_info::stride"]
[::std::mem::offset_of!(virgl_renderer_resource_info, stride) - 28usize];
["Offset of field: virgl_renderer_resource_info::drm_fourcc"]
[::std::mem::offset_of!(virgl_renderer_resource_info, drm_fourcc) - 32usize];
["Offset of field: virgl_renderer_resource_info::fd"]
[::std::mem::offset_of!(virgl_renderer_resource_info, fd) - 36usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_resource_info_ext {
pub version: ::std::os::raw::c_int,
pub base: virgl_renderer_resource_info,
pub has_dmabuf_export: bool,
pub planes: ::std::os::raw::c_int,
pub modifiers: u64,
pub d3d_tex2d: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_resource_info_ext"]
[::std::mem::size_of::<virgl_renderer_resource_info_ext>() - 72usize];
["Alignment of virgl_renderer_resource_info_ext"]
[::std::mem::align_of::<virgl_renderer_resource_info_ext>() - 8usize];
["Offset of field: virgl_renderer_resource_info_ext::version"]
[::std::mem::offset_of!(virgl_renderer_resource_info_ext, version) - 0usize];
["Offset of field: virgl_renderer_resource_info_ext::base"]
[::std::mem::offset_of!(virgl_renderer_resource_info_ext, base) - 4usize];
["Offset of field: virgl_renderer_resource_info_ext::has_dmabuf_export"]
[::std::mem::offset_of!(virgl_renderer_resource_info_ext, has_dmabuf_export) - 44usize];
["Offset of field: virgl_renderer_resource_info_ext::planes"]
[::std::mem::offset_of!(virgl_renderer_resource_info_ext, planes) - 48usize];
["Offset of field: virgl_renderer_resource_info_ext::modifiers"]
[::std::mem::offset_of!(virgl_renderer_resource_info_ext, modifiers) - 56usize];
["Offset of field: virgl_renderer_resource_info_ext::d3d_tex2d"]
[::std::mem::offset_of!(virgl_renderer_resource_info_ext, d3d_tex2d) - 64usize];
};
unsafe extern "C" {
pub fn virgl_renderer_resource_get_info(
res_handle: ::std::os::raw::c_int,
info: *mut virgl_renderer_resource_info,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_get_info_ext(
res_handle: ::std::os::raw::c_int,
info: *mut virgl_renderer_resource_info_ext,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_cleanup(cookie: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn virgl_renderer_reset();
}
unsafe extern "C" {
pub fn virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_execute(
execute_args: *mut ::std::os::raw::c_void,
execute_size: u32,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn 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_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_resource_create_blob_args {
pub res_handle: u32,
pub ctx_id: u32,
pub blob_mem: u32,
pub blob_flags: u32,
pub blob_id: u64,
pub size: u64,
pub iovecs: *const iovec,
pub num_iovs: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_resource_create_blob_args"]
[::std::mem::size_of::<virgl_renderer_resource_create_blob_args>() - 48usize];
["Alignment of virgl_renderer_resource_create_blob_args"]
[::std::mem::align_of::<virgl_renderer_resource_create_blob_args>() - 8usize];
["Offset of field: virgl_renderer_resource_create_blob_args::res_handle"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, res_handle) - 0usize];
["Offset of field: virgl_renderer_resource_create_blob_args::ctx_id"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, ctx_id) - 4usize];
["Offset of field: virgl_renderer_resource_create_blob_args::blob_mem"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, blob_mem) - 8usize];
["Offset of field: virgl_renderer_resource_create_blob_args::blob_flags"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, blob_flags) - 12usize];
["Offset of field: virgl_renderer_resource_create_blob_args::blob_id"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, blob_id) - 16usize];
["Offset of field: virgl_renderer_resource_create_blob_args::size"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, size) - 24usize];
["Offset of field: virgl_renderer_resource_create_blob_args::iovecs"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, iovecs) - 32usize];
["Offset of field: virgl_renderer_resource_create_blob_args::num_iovs"]
[::std::mem::offset_of!(virgl_renderer_resource_create_blob_args, num_iovs) - 40usize];
};
unsafe extern "C" {
pub fn virgl_renderer_resource_create_blob(
args: *const virgl_renderer_resource_create_blob_args,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_map(
res_handle: u32,
map: *mut *mut ::std::os::raw::c_void,
out_size: *mut u64,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_unmap(res_handle: u32) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_get_map_info(
res_handle: u32,
map_info: *mut u32,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_export_blob(
res_id: u32,
fd_type: *mut u32,
fd: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virgl_renderer_resource_import_blob_args {
pub res_handle: u32,
pub blob_mem: u32,
pub fd_type: u32,
pub fd: ::std::os::raw::c_int,
pub size: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of virgl_renderer_resource_import_blob_args"]
[::std::mem::size_of::<virgl_renderer_resource_import_blob_args>() - 24usize];
["Alignment of virgl_renderer_resource_import_blob_args"]
[::std::mem::align_of::<virgl_renderer_resource_import_blob_args>() - 8usize];
["Offset of field: virgl_renderer_resource_import_blob_args::res_handle"]
[::std::mem::offset_of!(virgl_renderer_resource_import_blob_args, res_handle) - 0usize];
["Offset of field: virgl_renderer_resource_import_blob_args::blob_mem"]
[::std::mem::offset_of!(virgl_renderer_resource_import_blob_args, blob_mem) - 4usize];
["Offset of field: virgl_renderer_resource_import_blob_args::fd_type"]
[::std::mem::offset_of!(virgl_renderer_resource_import_blob_args, fd_type) - 8usize];
["Offset of field: virgl_renderer_resource_import_blob_args::fd"]
[::std::mem::offset_of!(virgl_renderer_resource_import_blob_args, fd) - 12usize];
["Offset of field: virgl_renderer_resource_import_blob_args::size"]
[::std::mem::offset_of!(virgl_renderer_resource_import_blob_args, size) - 16usize];
};
unsafe extern "C" {
pub fn virgl_renderer_resource_import_blob(
args: *const virgl_renderer_resource_import_blob_args,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_context_create_fence(
ctx_id: u32,
flags: u32,
ring_idx: u32,
fence_id: u64,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_context_poll(ctx_id: u32);
}
unsafe extern "C" {
pub fn virgl_renderer_context_get_poll_fd(ctx_id: u32) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_resource_map_fixed(
res_handle: u32,
addr: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_export_fence(
client_fence_id: u64,
fd: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_export_signalled_fence() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn 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_int;
}
unsafe extern "C" {
pub fn virgl_renderer_attach_fence(
ctx_id: ::std::os::raw::c_int,
fence_fd: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_get_fence_fd(fence_id: u64) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn virgl_renderer_get_dev_fd(ctx_id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
pub gp_offset: ::std::os::raw::c_uint,
pub fp_offset: ::std::os::raw::c_uint,
pub overflow_arg_area: *mut ::std::os::raw::c_void,
pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of __va_list_tag"][::std::mem::size_of::<__va_list_tag>() - 24usize];
["Alignment of __va_list_tag"][::std::mem::align_of::<__va_list_tag>() - 8usize];
["Offset of field: __va_list_tag::gp_offset"]
[::std::mem::offset_of!(__va_list_tag, gp_offset) - 0usize];
["Offset of field: __va_list_tag::fp_offset"]
[::std::mem::offset_of!(__va_list_tag, fp_offset) - 4usize];
["Offset of field: __va_list_tag::overflow_arg_area"]
[::std::mem::offset_of!(__va_list_tag, overflow_arg_area) - 8usize];
["Offset of field: __va_list_tag::reg_save_area"]
[::std::mem::offset_of!(__va_list_tag, reg_save_area) - 16usize];
};