From 5ffc40008a60cfc0a8ac7ca8221d3d2776d5a1f0 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Mon, 13 Nov 2023 16:23:13 -0800 Subject: [PATCH] Generate bindings once for all platforms and architectures Uses CI based on https://github.com/Smithay/drm-rs/pull/176. Includes https://github.com/Smithay/gbm.rs/pull/29. --- .github/workflows/ci.yml | 111 ++-- gbm-sys/Cargo.toml | 9 +- gbm-sys/build.rs | 63 +-- gbm-sys/src/bindings.rs | 283 ++++++++++ gbm-sys/src/lib.rs | 8 +- gbm-sys/src/platforms/freebsd/x86_64/gen.rs | 565 -------------------- gbm-sys/src/platforms/linux/aarch64/gen.rs | 564 ------------------- gbm-sys/src/platforms/linux/arm/gen.rs | 564 ------------------- gbm-sys/src/platforms/linux/x86/gen.rs | 564 ------------------- gbm-sys/src/platforms/linux/x86_64/gen.rs | 564 ------------------- 10 files changed, 370 insertions(+), 2925 deletions(-) create mode 100644 gbm-sys/src/bindings.rs delete mode 100644 gbm-sys/src/platforms/freebsd/x86_64/gen.rs delete mode 100644 gbm-sys/src/platforms/linux/aarch64/gen.rs delete mode 100644 gbm-sys/src/platforms/linux/arm/gen.rs delete mode 100644 gbm-sys/src/platforms/linux/x86/gen.rs delete mode 100644 gbm-sys/src/platforms/linux/x86_64/gen.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00d3655..2ea8142 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,6 @@ on: push: branches: - master - - develop # TODO: remove before merging to master tags: - 'v[0-9]+.[0-9]+.[0-9]+' pull_request: @@ -12,7 +11,7 @@ jobs: format: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup Rust uses: actions-rs/toolchain@v1 with: @@ -22,7 +21,7 @@ jobs: default: true override: true - name: Cargo cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.cargo/registry @@ -37,7 +36,7 @@ jobs: doc: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt-get install -y libwayland-dev - name: Setup Rust uses: actions-rs/toolchain@v1 @@ -149,6 +148,10 @@ jobs: os: ubuntu-22.04 rust: stable target: aarch64-unknown-linux-gnu + - task: bindings + os: ubuntu-22.04 + rust: stable + target: riscv64gc-unknown-linux-gnu # Test channels - task: channels os: ubuntu-22.04 @@ -164,45 +167,28 @@ jobs: target: x86_64-unknown-linux-gnu runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 - - name: Setup linux toolchain + - uses: actions/checkout@v3 + - name: Install dependencies if: contains(matrix.target, '-linux-') && startsWith(matrix.target, 'x86_64-') run: | sudo apt-get update -y - sudo apt-get install -y libdrm-dev libgbm-dev libwayland-dev - - name: Setup cross linux toolchain - if: contains(matrix.target, '-linux-') && !startsWith(matrix.target, 'x86_64-') + sudo apt-get install -y libwayland-dev pkg-config + - name: Install i686 dependencies + if: contains(matrix.target, '-linux-') && startsWith(matrix.target, 'i686-') run: | - case "${{ matrix.target }}" in - i686-*) SYSTEM_ARCH=i386 ;; - arm*) SYSTEM_ARCH=armhf ;; - aarch64*) SYSTEM_ARCH=arm64 ;; - esac - GCC_TARGET=$(printf "${{ matrix.target }}" | sed 's/-unknown-/-/' | sed 's/arm[^-]*/arm/g') - ENV_TARGET=$(printf "${{ matrix.target }}" | tr '-' '_') - ENV_TARGET_UC=$(printf "${ENV_TARGET}" | tr '[[:lower:]]' '[[:upper:]]') - sudo rm -f /etc/apt/sources.list.d/*.list - case "${{ matrix.target }}" in - arm* | aarch64*) - sudo tee /etc/apt/sources.list << EOF - deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu/ jammy main universe - deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main universe - deb [arch=i386,amd64] http://security.ubuntu.com/ubuntu/ jammy-security main universe - deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy main universe - deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main universe - deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-security main universe - EOF - ;; - esac - sudo dpkg --add-architecture ${SYSTEM_ARCH} - dpkg --print-foreign-architectures + sudo dpkg --add-architecture i386 sudo apt-get update -y - sudo apt-get upgrade -y --fix-broken - sudo apt-get install -y libdrm-dev:${SYSTEM_ARCH} libgbm-dev:${SYSTEM_ARCH} libwayland-dev:${SYSTEM_ARCH} gcc-${GCC_TARGET} pkg-config - echo "CARGO_TARGET_${ENV_TARGET_UC}_LINKER=${GCC_TARGET}-gcc" >> $GITHUB_ENV + sudo apt-get install -y libgbm-dev:i386 libwayland-dev:i386 echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV - echo "PKG_CONFIG_${ENV_TARGET}=${GCC_TARGET}-pkg-config" >> $GITHUB_ENV - echo "PKG_CONFIG=${GCC_TARGET}-pkg-config" >> $GITHUB_ENV + echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig" >> $GITHUB_ENV + - name: Setup linux cross toolchain + if: contains(matrix.target, '-linux-') && !startsWith(matrix.target, 'x86_64-') + run: | + GCC_TARGET=$(printf "${{ matrix.target }}" | sed 's/-unknown-/-/;s/arm[^-]*/arm/;s/riscv[^-]*/riscv64/') + ENV_TARGET=$(printf "${{ matrix.target }}" | tr '-' '_' | tr '[[:lower:]]' '[[:upper:]]') + sudo apt-get update -y + sudo apt-get install -y gcc-${GCC_TARGET} + echo "CARGO_TARGET_${ENV_TARGET}_LINKER=${GCC_TARGET}-gcc" >> $GITHUB_ENV echo "BINDGEN_EXTRA_CLANG_ARGS=--sysroot=/usr/${GCC_TARGET}" >> $GITHUB_ENV - name: Setup Rust uses: actions-rs/toolchain@v1 @@ -238,20 +224,20 @@ jobs: with: command: build args: --manifest-path gbm-sys/Cargo.toml --target ${{ matrix.target }} --features update_bindings + - name: Copy bindings + run: cp gbm-sys/src/bindings.rs bindings-${{ matrix.target }}.rs - name: Upload bindings if: matrix.task == 'bindings' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: bindings - path: | - gbm-sys/${{ env.GBM_SYS_BINDINGS_FILE }} - LICENSE - README.md + path: bindings-*.rs - name: Build uses: actions-rs/cargo@v1 with: command: build - args: --target ${{ matrix.target }} + # Build without wayland feature so libwayland isn't needed for cross test + args: --target ${{ matrix.target }} --no-default-features - name: Test if: contains(matrix.target, '-linux-') && (startsWith(matrix.target, 'x86_64-') || startsWith(matrix.target, 'i686-')) uses: actions-rs/cargo@v1 @@ -262,17 +248,46 @@ jobs: command: test args: --all --target ${{ matrix.target }} + compare-bindings: + needs: + - test + runs-on: ubuntu-22.04 + steps: + - name: download bindings + uses: actions/download-artifact@v3 + with: + name: bindings + - name: compare + run: | + code=0 + for i in bindings-*.rs + do + if cmp -s bindings-x86_64-unknown-linux-gnu.rs ${i} + then + echo ${i} matches x86_64 bindings + else + echo ${i} does not match x86_64 bindings + diff bindings-x86_64-unknown-linux-gnu.rs ${i} + code=1 + fi + done + exit ${code} + update-bindings: if: ${{ github.event_name != 'pull_request' && !startsWith(github.ref, 'refs/tags/') }} needs: - - test + - compare-bindings runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 - - name: Download bindings - uses: actions/download-artifact@v2 + - uses: actions/checkout@v3 + - name: download bindings + uses: actions/download-artifact@v3 with: name: bindings + - name: Copy x86_64 bindings + run: | + cp bindings-x86_64-unknown-linux-gnu.rs gbm-sys/src/bindings.rs + rm bindings-*.rs - name: Create pull request uses: peter-evans/create-pull-request@v3 with: @@ -294,7 +309,7 @@ jobs: - test runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup Rust uses: actions-rs/toolchain@v1 with: diff --git a/gbm-sys/Cargo.toml b/gbm-sys/Cargo.toml index e422285..0af0479 100644 --- a/gbm-sys/Cargo.toml +++ b/gbm-sys/Cargo.toml @@ -14,12 +14,17 @@ license = "MIT" path = "src/lib.rs" [build-dependencies.bindgen] -version = "0.58" +version = "0.69" optional = true +# Specify version of bindgen deps to fix `check-minimal` test +[build-dependencies] +proc-macro2 = { version = "1.0.69", optional = true } +regex = { version = "1.10", optional = true } + [dependencies] libc = "0.2" [features] -gen = ["bindgen"] +gen = ["bindgen", "dep:proc-macro2", "dep:regex"] update_bindings = ["gen"] diff --git a/gbm-sys/build.rs b/gbm-sys/build.rs index 225e223..b23dd16 100644 --- a/gbm-sys/build.rs +++ b/gbm-sys/build.rs @@ -1,34 +1,13 @@ #[cfg(feature = "gen")] extern crate bindgen; -use std::{env, path::Path}; - #[cfg(not(feature = "gen"))] -fn main() { - let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap(); - let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap(); - - let bindings_file = Path::new("src") - .join("platforms") - .join(&target_os) - .join(&target_arch) - .join("gen.rs"); - - if bindings_file.is_file() { - println!( - "cargo:rustc-env=GBM_SYS_BINDINGS_PATH={}/{}", - target_os, target_arch - ); - } else { - panic!( - "No prebuilt bindings for target OS `{}` and/or architecture `{}`. Try `gen` feature.", - target_os, target_arch - ); - } -} +fn main() {} #[cfg(feature = "gen")] fn main() { + use std::{env, path::Path}; + const TMP_BIND_PREFIX: &str = "__BINDGEN_TMP_"; const TMP_BIND_PREFIX_REG: &str = "_BINDGEN_TMP_.*"; @@ -101,10 +80,12 @@ fn main() { .header_contents("bindings.h", &create_header()) .blocklist_type(TMP_BIND_PREFIX_REG) .ctypes_prefix("libc") - .allowlist_type(r"^gbm_.*$") - .allowlist_function(r"^gbm_.*$") + .allowlist_type("^gbm_.*$") + .allowlist_function("^gbm_.*$") .allowlist_var("GBM_.*|gbm_.*") - .constified_enum_module(r"^gbm_.*$") + .constified_enum_module("^gbm_.*$") + // Layout tests are incorrect across architectures + .layout_tests(false) .generate() .unwrap(); @@ -112,31 +93,17 @@ fn main() { // Generate the bindings let out_dir = env::var("OUT_DIR").unwrap(); - let dest_path = Path::new(&out_dir).join("gen.rs"); + let dest_path = Path::new(&out_dir).join("bindings.rs"); generated.write_to_file(dest_path).unwrap(); #[cfg(feature = "update_bindings")] { - use std::{fs, io::Write}; - - let bind_file = Path::new(&out_dir).join("gen.rs"); - let dest_dir = Path::new("src") - .join("platforms") - .join(env::var("CARGO_CFG_TARGET_OS").unwrap()) - .join(env::var("CARGO_CFG_TARGET_ARCH").unwrap()); - let dest_file = dest_dir.join("gen.rs"); - - fs::create_dir_all(&dest_dir).unwrap(); - fs::copy(&bind_file, &dest_file).unwrap(); - - if let Ok(github_env) = env::var("GITHUB_ENV") { - let mut env_file = fs::OpenOptions::new() - .create(true) - .append(true) - .open(github_env) - .unwrap(); - writeln!(env_file, "GBM_SYS_BINDINGS_FILE={}", dest_file.display()).unwrap(); - } + use std::fs; + + let bind_file = Path::new(&out_dir).join("bindings.rs"); + let dest_file = "src/bindings.rs"; + + fs::copy(bind_file, dest_file).unwrap(); } } diff --git a/gbm-sys/src/bindings.rs b/gbm-sys/src/bindings.rs new file mode 100644 index 0000000..09449ee --- /dev/null +++ b/gbm-sys/src/bindings.rs @@ -0,0 +1,283 @@ +/* automatically generated by rust-bindgen 0.69.1 */ + +pub const GBM_FORMAT_BIG_ENDIAN: u32 = 2147483648; +pub const GBM_BO_IMPORT_WL_BUFFER: u32 = 21761; +pub const GBM_BO_IMPORT_EGL_IMAGE: u32 = 21762; +pub const GBM_BO_IMPORT_FD: u32 = 21763; +pub const GBM_BO_IMPORT_FD_MODIFIER: u32 = 21764; +pub const GBM_MAX_PLANES: u32 = 4; +#[doc = " \\file gbm.h\n \\brief Generic Buffer Manager"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gbm_device { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gbm_bo { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gbm_surface { + _unused: [u8; 0], +} +#[doc = " Abstraction representing the handle to a buffer allocated by the\n manager"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union gbm_bo_handle { + pub ptr: *mut libc::c_void, + pub s32: i32, + pub u32_: u32, + pub s64: i64, + pub u64_: u64, +} +pub mod gbm_bo_format { + #[doc = " Format of the allocated buffer"] + pub type Type = libc::c_uint; + #[doc = " RGB with 8 bits per channel in a 32 bit value"] + pub const GBM_BO_FORMAT_XRGB8888: Type = 0; + #[doc = " ARGB with 8 bits per channel in a 32 bit value"] + pub const GBM_BO_FORMAT_ARGB8888: Type = 1; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gbm_format_name_desc { + pub name: [libc::c_char; 5usize], +} +pub mod gbm_bo_flags { + #[doc = " Flags to indicate the intended use for the buffer - these are passed into\n gbm_bo_create(). The caller must set the union of all the flags that are\n appropriate\n\n \\sa Use gbm_device_is_format_supported() to check if the combination of format\n and use flags are supported"] + pub type Type = libc::c_uint; + #[doc = " Buffer is going to be presented to the screen using an API such as KMS"] + pub const GBM_BO_USE_SCANOUT: Type = 1; + #[doc = " Buffer is going to be used as cursor"] + pub const GBM_BO_USE_CURSOR: Type = 2; + #[doc = " Deprecated"] + pub const GBM_BO_USE_CURSOR_64X64: Type = 2; + #[doc = " Buffer is to be used for rendering - for example it is going to be used\n as the storage for a color buffer"] + pub const GBM_BO_USE_RENDERING: Type = 4; + #[doc = " Buffer can be used for gbm_bo_write. This is guaranteed to work\n with GBM_BO_USE_CURSOR, but may not work for other combinations."] + pub const GBM_BO_USE_WRITE: Type = 8; + #[doc = " Buffer is linear, i.e. not tiled."] + pub const GBM_BO_USE_LINEAR: Type = 16; + #[doc = " Buffer is protected, i.e. encrypted and not readable by CPU or any\n other non-secure / non-trusted components nor by non-trusted OpenGL,\n OpenCL, and Vulkan applications."] + pub const GBM_BO_USE_PROTECTED: Type = 32; +} +extern "C" { + pub fn gbm_device_get_fd(gbm: *mut gbm_device) -> libc::c_int; +} +extern "C" { + pub fn gbm_device_get_backend_name(gbm: *mut gbm_device) -> *const libc::c_char; +} +extern "C" { + pub fn gbm_device_is_format_supported( + gbm: *mut gbm_device, + format: u32, + flags: u32, + ) -> libc::c_int; +} +extern "C" { + pub fn gbm_device_get_format_modifier_plane_count( + gbm: *mut gbm_device, + format: u32, + modifier: u64, + ) -> libc::c_int; +} +extern "C" { + pub fn gbm_device_destroy(gbm: *mut gbm_device); +} +extern "C" { + pub fn gbm_create_device(fd: libc::c_int) -> *mut gbm_device; +} +extern "C" { + pub fn gbm_bo_create( + gbm: *mut gbm_device, + width: u32, + height: u32, + format: u32, + flags: u32, + ) -> *mut gbm_bo; +} +extern "C" { + pub fn gbm_bo_create_with_modifiers( + gbm: *mut gbm_device, + width: u32, + height: u32, + format: u32, + modifiers: *const u64, + count: libc::c_uint, + ) -> *mut gbm_bo; +} +extern "C" { + pub fn gbm_bo_create_with_modifiers2( + gbm: *mut gbm_device, + width: u32, + height: u32, + format: u32, + modifiers: *const u64, + count: libc::c_uint, + flags: u32, + ) -> *mut gbm_bo; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gbm_import_fd_data { + pub fd: libc::c_int, + pub width: u32, + pub height: u32, + pub stride: u32, + pub format: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gbm_import_fd_modifier_data { + pub width: u32, + pub height: u32, + pub format: u32, + pub num_fds: u32, + pub fds: [libc::c_int; 4usize], + pub strides: [libc::c_int; 4usize], + pub offsets: [libc::c_int; 4usize], + pub modifier: u64, +} +extern "C" { + pub fn gbm_bo_import( + gbm: *mut gbm_device, + type_: u32, + buffer: *mut libc::c_void, + flags: u32, + ) -> *mut gbm_bo; +} +pub mod gbm_bo_transfer_flags { + #[doc = " Flags to indicate the type of mapping for the buffer - these are\n passed into gbm_bo_map(). The caller must set the union of all the\n flags that are appropriate.\n\n These flags are independent of the GBM_BO_USE_* creation flags. However,\n mapping the buffer may require copying to/from a staging buffer.\n\n See also: pipe_map_flags"] + pub type Type = libc::c_uint; + #[doc = " Buffer contents read back (or accessed directly) at transfer\n create time."] + pub const GBM_BO_TRANSFER_READ: Type = 1; + #[doc = " Buffer contents will be written back at unmap time\n (or modified as a result of being accessed directly)."] + pub const GBM_BO_TRANSFER_WRITE: Type = 2; + #[doc = " Read/modify/write"] + pub const GBM_BO_TRANSFER_READ_WRITE: Type = 3; +} +extern "C" { + pub fn gbm_bo_map( + bo: *mut gbm_bo, + x: u32, + y: u32, + width: u32, + height: u32, + flags: u32, + stride: *mut u32, + map_data: *mut *mut libc::c_void, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn gbm_bo_unmap(bo: *mut gbm_bo, map_data: *mut libc::c_void); +} +extern "C" { + pub fn gbm_bo_get_width(bo: *mut gbm_bo) -> u32; +} +extern "C" { + pub fn gbm_bo_get_height(bo: *mut gbm_bo) -> u32; +} +extern "C" { + pub fn gbm_bo_get_stride(bo: *mut gbm_bo) -> u32; +} +extern "C" { + pub fn gbm_bo_get_stride_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> u32; +} +extern "C" { + pub fn gbm_bo_get_format(bo: *mut gbm_bo) -> u32; +} +extern "C" { + pub fn gbm_bo_get_bpp(bo: *mut gbm_bo) -> u32; +} +extern "C" { + pub fn gbm_bo_get_offset(bo: *mut gbm_bo, plane: libc::c_int) -> u32; +} +extern "C" { + pub fn gbm_bo_get_device(bo: *mut gbm_bo) -> *mut gbm_device; +} +extern "C" { + pub fn gbm_bo_get_handle(bo: *mut gbm_bo) -> gbm_bo_handle; +} +extern "C" { + pub fn gbm_bo_get_fd(bo: *mut gbm_bo) -> libc::c_int; +} +extern "C" { + pub fn gbm_bo_get_modifier(bo: *mut gbm_bo) -> u64; +} +extern "C" { + pub fn gbm_bo_get_plane_count(bo: *mut gbm_bo) -> libc::c_int; +} +extern "C" { + pub fn gbm_bo_get_handle_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> gbm_bo_handle; +} +extern "C" { + pub fn gbm_bo_get_fd_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn gbm_bo_write(bo: *mut gbm_bo, buf: *const libc::c_void, count: usize) -> libc::c_int; +} +extern "C" { + pub fn gbm_bo_set_user_data( + bo: *mut gbm_bo, + data: *mut libc::c_void, + destroy_user_data: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut gbm_bo, arg2: *mut libc::c_void), + >, + ); +} +extern "C" { + pub fn gbm_bo_get_user_data(bo: *mut gbm_bo) -> *mut libc::c_void; +} +extern "C" { + pub fn gbm_bo_destroy(bo: *mut gbm_bo); +} +extern "C" { + pub fn gbm_surface_create( + gbm: *mut gbm_device, + width: u32, + height: u32, + format: u32, + flags: u32, + ) -> *mut gbm_surface; +} +extern "C" { + pub fn gbm_surface_create_with_modifiers( + gbm: *mut gbm_device, + width: u32, + height: u32, + format: u32, + modifiers: *const u64, + count: libc::c_uint, + ) -> *mut gbm_surface; +} +extern "C" { + pub fn gbm_surface_create_with_modifiers2( + gbm: *mut gbm_device, + width: u32, + height: u32, + format: u32, + modifiers: *const u64, + count: libc::c_uint, + flags: u32, + ) -> *mut gbm_surface; +} +extern "C" { + pub fn gbm_surface_lock_front_buffer(surface: *mut gbm_surface) -> *mut gbm_bo; +} +extern "C" { + pub fn gbm_surface_release_buffer(surface: *mut gbm_surface, bo: *mut gbm_bo); +} +extern "C" { + pub fn gbm_surface_has_free_buffers(surface: *mut gbm_surface) -> libc::c_int; +} +extern "C" { + pub fn gbm_surface_destroy(surface: *mut gbm_surface); +} +extern "C" { + pub fn gbm_format_get_name( + gbm_format: u32, + desc: *mut gbm_format_name_desc, + ) -> *mut libc::c_char; +} diff --git a/gbm-sys/src/lib.rs b/gbm-sys/src/lib.rs index b35256e..70f8d74 100644 --- a/gbm-sys/src/lib.rs +++ b/gbm-sys/src/lib.rs @@ -7,14 +7,10 @@ extern crate libc; #[cfg(feature = "gen")] -include!(concat!(env!("OUT_DIR"), "/gen.rs")); +include!(concat!(env!("OUT_DIR"), "/bindings.rs")); #[cfg(not(feature = "gen"))] -include!(concat!( - "platforms/", - env!("GBM_SYS_BINDINGS_PATH"), - "/gen.rs" -)); +include!("bindings.rs"); #[link(name = "gbm")] extern "C" {} diff --git a/gbm-sys/src/platforms/freebsd/x86_64/gen.rs b/gbm-sys/src/platforms/freebsd/x86_64/gen.rs deleted file mode 100644 index 912bba3..0000000 --- a/gbm-sys/src/platforms/freebsd/x86_64/gen.rs +++ /dev/null @@ -1,565 +0,0 @@ -/* automatically generated by rust-bindgen 0.58.1 */ - -pub const GBM_FORMAT_BIG_ENDIAN: u32 = 2147483648; -pub const GBM_BO_IMPORT_WL_BUFFER: u32 = 21761; -pub const GBM_BO_IMPORT_EGL_IMAGE: u32 = 21762; -pub const GBM_BO_IMPORT_FD: u32 = 21763; -pub const GBM_BO_IMPORT_FD_MODIFIER: u32 = 21764; -pub const GBM_MAX_PLANES: u32 = 4; -pub type __int32_t = libc::c_int; -pub type __uint32_t = libc::c_uint; -pub type __int64_t = libc::c_long; -pub type __uint64_t = libc::c_ulong; -pub type __size_t = __uint64_t; -pub type size_t = __size_t; -#[doc = " \\file gbm.h"] -#[doc = " \\brief Generic Buffer Manager"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_device { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_bo { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_surface { - _unused: [u8; 0], -} -#[doc = " Abstraction representing the handle to a buffer allocated by the"] -#[doc = " manager"] -#[repr(C)] -#[derive(Copy, Clone)] -pub union gbm_bo_handle { - pub ptr: *mut libc::c_void, - pub s32: i32, - pub u32_: u32, - pub s64: i64, - pub u64_: u64, -} -#[test] -fn bindgen_test_layout_gbm_bo_handle() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ptr as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(ptr) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s32 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s32) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u32_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u32_) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s64 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s64) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u64_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u64_) - ) - ); -} -pub mod gbm_bo_format { - #[doc = " Format of the allocated buffer"] - pub type Type = libc::c_uint; - #[doc = " RGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_XRGB8888: Type = 0; - #[doc = " ARGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_ARGB8888: Type = 1; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_format_name_desc { - pub name: [libc::c_char; 5usize], -} -#[test] -fn bindgen_test_layout_gbm_format_name_desc() { - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).name as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_format_name_desc), - "::", - stringify!(name) - ) - ); -} -pub mod gbm_bo_flags { - #[doc = " Flags to indicate the intended use for the buffer - these are passed into"] - #[doc = " gbm_bo_create(). The caller must set the union of all the flags that are"] - #[doc = " appropriate"] - #[doc = ""] - #[doc = " \\sa Use gbm_device_is_format_supported() to check if the combination of format"] - #[doc = " and use flags are supported"] - pub type Type = libc::c_uint; - #[doc = " Buffer is going to be presented to the screen using an API such as KMS"] - pub const GBM_BO_USE_SCANOUT: Type = 1; - #[doc = " Buffer is going to be used as cursor"] - pub const GBM_BO_USE_CURSOR: Type = 2; - #[doc = " Deprecated"] - pub const GBM_BO_USE_CURSOR_64X64: Type = 2; - #[doc = " Buffer is to be used for rendering - for example it is going to be used"] - #[doc = " as the storage for a color buffer"] - pub const GBM_BO_USE_RENDERING: Type = 4; - #[doc = " Buffer can be used for gbm_bo_write. This is guaranteed to work"] - #[doc = " with GBM_BO_USE_CURSOR, but may not work for other combinations."] - pub const GBM_BO_USE_WRITE: Type = 8; - #[doc = " Buffer is linear, i.e. not tiled."] - pub const GBM_BO_USE_LINEAR: Type = 16; - #[doc = " Buffer is protected, i.e. encrypted and not readable by CPU or any"] - #[doc = " other non-secure / non-trusted components nor by non-trusted OpenGL,"] - #[doc = " OpenCL, and Vulkan applications."] - pub const GBM_BO_USE_PROTECTED: Type = 32; -} -extern "C" { - pub fn gbm_device_get_fd(gbm: *mut gbm_device) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_backend_name(gbm: *mut gbm_device) -> *const libc::c_char; -} -extern "C" { - pub fn gbm_device_is_format_supported( - gbm: *mut gbm_device, - format: u32, - flags: u32, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_format_modifier_plane_count( - gbm: *mut gbm_device, - format: u32, - modifier: u64, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_destroy(gbm: *mut gbm_device); -} -extern "C" { - pub fn gbm_create_device(fd: libc::c_int) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_bo; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_data { - pub fd: libc::c_int, - pub width: u32, - pub height: u32, - pub stride: u32, - pub format: u32, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_data() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fd as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).width as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).height as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).stride as *const _ as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(stride) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).format as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(format) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_modifier_data { - pub width: u32, - pub height: u32, - pub format: u32, - pub num_fds: u32, - pub fds: [libc::c_int; 4usize], - pub strides: [libc::c_int; 4usize], - pub offsets: [libc::c_int; 4usize], - pub modifier: u64, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_modifier_data() { - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).width as *const _ as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).height as *const _ as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).format as *const _ as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).num_fds as *const _ as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(num_fds) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fds as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(fds) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).strides as *const _ as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).offsets as *const _ as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(offsets) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).modifier as *const _ as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(modifier) - ) - ); -} -extern "C" { - pub fn gbm_bo_import( - gbm: *mut gbm_device, - type_: u32, - buffer: *mut libc::c_void, - flags: u32, - ) -> *mut gbm_bo; -} -pub mod gbm_bo_transfer_flags { - #[doc = " Flags to indicate the type of mapping for the buffer - these are"] - #[doc = " passed into gbm_bo_map(). The caller must set the union of all the"] - #[doc = " flags that are appropriate."] - #[doc = ""] - #[doc = " These flags are independent of the GBM_BO_USE_* creation flags. However,"] - #[doc = " mapping the buffer may require copying to/from a staging buffer."] - #[doc = ""] - #[doc = " See also: pipe_map_flags"] - pub type Type = libc::c_uint; - #[doc = " Buffer contents read back (or accessed directly) at transfer"] - #[doc = " create time."] - pub const GBM_BO_TRANSFER_READ: Type = 1; - #[doc = " Buffer contents will be written back at unmap time"] - #[doc = " (or modified as a result of being accessed directly)."] - pub const GBM_BO_TRANSFER_WRITE: Type = 2; - #[doc = " Read/modify/write"] - pub const GBM_BO_TRANSFER_READ_WRITE: Type = 3; -} -extern "C" { - pub fn gbm_bo_map( - bo: *mut gbm_bo, - x: u32, - y: u32, - width: u32, - height: u32, - flags: u32, - stride: *mut u32, - map_data: *mut *mut libc::c_void, - ) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_unmap(bo: *mut gbm_bo, map_data: *mut libc::c_void); -} -extern "C" { - pub fn gbm_bo_get_width(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_height(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_format(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_bpp(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_offset(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_device(bo: *mut gbm_bo) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_get_handle(bo: *mut gbm_bo) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_modifier(bo: *mut gbm_bo) -> u64; -} -extern "C" { - pub fn gbm_bo_get_plane_count(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_handle_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_write(bo: *mut gbm_bo, buf: *const libc::c_void, count: size_t) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_set_user_data( - bo: *mut gbm_bo, - data: *mut libc::c_void, - destroy_user_data: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut gbm_bo, arg2: *mut libc::c_void), - >, - ); -} -extern "C" { - pub fn gbm_bo_get_user_data(bo: *mut gbm_bo) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_destroy(bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_lock_front_buffer(surface: *mut gbm_surface) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_surface_release_buffer(surface: *mut gbm_surface, bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_has_free_buffers(surface: *mut gbm_surface) -> libc::c_int; -} -extern "C" { - pub fn gbm_surface_destroy(surface: *mut gbm_surface); -} -extern "C" { - pub fn gbm_format_get_name( - gbm_format: u32, - desc: *mut gbm_format_name_desc, - ) -> *mut libc::c_char; -} diff --git a/gbm-sys/src/platforms/linux/aarch64/gen.rs b/gbm-sys/src/platforms/linux/aarch64/gen.rs deleted file mode 100644 index 22103c0..0000000 --- a/gbm-sys/src/platforms/linux/aarch64/gen.rs +++ /dev/null @@ -1,564 +0,0 @@ -/* automatically generated by rust-bindgen 0.58.1 */ - -pub const GBM_FORMAT_BIG_ENDIAN: u32 = 2147483648; -pub const GBM_BO_IMPORT_WL_BUFFER: u32 = 21761; -pub const GBM_BO_IMPORT_EGL_IMAGE: u32 = 21762; -pub const GBM_BO_IMPORT_FD: u32 = 21763; -pub const GBM_BO_IMPORT_FD_MODIFIER: u32 = 21764; -pub const GBM_MAX_PLANES: u32 = 4; -pub type size_t = libc::c_ulong; -pub type __int32_t = libc::c_int; -pub type __uint32_t = libc::c_uint; -pub type __int64_t = libc::c_long; -pub type __uint64_t = libc::c_ulong; -#[doc = " \\file gbm.h"] -#[doc = " \\brief Generic Buffer Manager"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_device { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_bo { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_surface { - _unused: [u8; 0], -} -#[doc = " Abstraction representing the handle to a buffer allocated by the"] -#[doc = " manager"] -#[repr(C)] -#[derive(Copy, Clone)] -pub union gbm_bo_handle { - pub ptr: *mut libc::c_void, - pub s32: i32, - pub u32_: u32, - pub s64: i64, - pub u64_: u64, -} -#[test] -fn bindgen_test_layout_gbm_bo_handle() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ptr as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(ptr) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s32 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s32) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u32_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u32_) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s64 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s64) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u64_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u64_) - ) - ); -} -pub mod gbm_bo_format { - #[doc = " Format of the allocated buffer"] - pub type Type = libc::c_uint; - #[doc = " RGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_XRGB8888: Type = 0; - #[doc = " ARGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_ARGB8888: Type = 1; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_format_name_desc { - pub name: [libc::c_char; 5usize], -} -#[test] -fn bindgen_test_layout_gbm_format_name_desc() { - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).name as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_format_name_desc), - "::", - stringify!(name) - ) - ); -} -pub mod gbm_bo_flags { - #[doc = " Flags to indicate the intended use for the buffer - these are passed into"] - #[doc = " gbm_bo_create(). The caller must set the union of all the flags that are"] - #[doc = " appropriate"] - #[doc = ""] - #[doc = " \\sa Use gbm_device_is_format_supported() to check if the combination of format"] - #[doc = " and use flags are supported"] - pub type Type = libc::c_uint; - #[doc = " Buffer is going to be presented to the screen using an API such as KMS"] - pub const GBM_BO_USE_SCANOUT: Type = 1; - #[doc = " Buffer is going to be used as cursor"] - pub const GBM_BO_USE_CURSOR: Type = 2; - #[doc = " Deprecated"] - pub const GBM_BO_USE_CURSOR_64X64: Type = 2; - #[doc = " Buffer is to be used for rendering - for example it is going to be used"] - #[doc = " as the storage for a color buffer"] - pub const GBM_BO_USE_RENDERING: Type = 4; - #[doc = " Buffer can be used for gbm_bo_write. This is guaranteed to work"] - #[doc = " with GBM_BO_USE_CURSOR, but may not work for other combinations."] - pub const GBM_BO_USE_WRITE: Type = 8; - #[doc = " Buffer is linear, i.e. not tiled."] - pub const GBM_BO_USE_LINEAR: Type = 16; - #[doc = " Buffer is protected, i.e. encrypted and not readable by CPU or any"] - #[doc = " other non-secure / non-trusted components nor by non-trusted OpenGL,"] - #[doc = " OpenCL, and Vulkan applications."] - pub const GBM_BO_USE_PROTECTED: Type = 32; -} -extern "C" { - pub fn gbm_device_get_fd(gbm: *mut gbm_device) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_backend_name(gbm: *mut gbm_device) -> *const libc::c_char; -} -extern "C" { - pub fn gbm_device_is_format_supported( - gbm: *mut gbm_device, - format: u32, - flags: u32, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_format_modifier_plane_count( - gbm: *mut gbm_device, - format: u32, - modifier: u64, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_destroy(gbm: *mut gbm_device); -} -extern "C" { - pub fn gbm_create_device(fd: libc::c_int) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_bo; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_data { - pub fd: libc::c_int, - pub width: u32, - pub height: u32, - pub stride: u32, - pub format: u32, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_data() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fd as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).width as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).height as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).stride as *const _ as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(stride) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).format as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(format) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_modifier_data { - pub width: u32, - pub height: u32, - pub format: u32, - pub num_fds: u32, - pub fds: [libc::c_int; 4usize], - pub strides: [libc::c_int; 4usize], - pub offsets: [libc::c_int; 4usize], - pub modifier: u64, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_modifier_data() { - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).width as *const _ as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).height as *const _ as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).format as *const _ as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).num_fds as *const _ as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(num_fds) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fds as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(fds) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).strides as *const _ as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).offsets as *const _ as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(offsets) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).modifier as *const _ as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(modifier) - ) - ); -} -extern "C" { - pub fn gbm_bo_import( - gbm: *mut gbm_device, - type_: u32, - buffer: *mut libc::c_void, - flags: u32, - ) -> *mut gbm_bo; -} -pub mod gbm_bo_transfer_flags { - #[doc = " Flags to indicate the type of mapping for the buffer - these are"] - #[doc = " passed into gbm_bo_map(). The caller must set the union of all the"] - #[doc = " flags that are appropriate."] - #[doc = ""] - #[doc = " These flags are independent of the GBM_BO_USE_* creation flags. However,"] - #[doc = " mapping the buffer may require copying to/from a staging buffer."] - #[doc = ""] - #[doc = " See also: pipe_map_flags"] - pub type Type = libc::c_uint; - #[doc = " Buffer contents read back (or accessed directly) at transfer"] - #[doc = " create time."] - pub const GBM_BO_TRANSFER_READ: Type = 1; - #[doc = " Buffer contents will be written back at unmap time"] - #[doc = " (or modified as a result of being accessed directly)."] - pub const GBM_BO_TRANSFER_WRITE: Type = 2; - #[doc = " Read/modify/write"] - pub const GBM_BO_TRANSFER_READ_WRITE: Type = 3; -} -extern "C" { - pub fn gbm_bo_map( - bo: *mut gbm_bo, - x: u32, - y: u32, - width: u32, - height: u32, - flags: u32, - stride: *mut u32, - map_data: *mut *mut libc::c_void, - ) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_unmap(bo: *mut gbm_bo, map_data: *mut libc::c_void); -} -extern "C" { - pub fn gbm_bo_get_width(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_height(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_format(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_bpp(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_offset(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_device(bo: *mut gbm_bo) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_get_handle(bo: *mut gbm_bo) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_modifier(bo: *mut gbm_bo) -> u64; -} -extern "C" { - pub fn gbm_bo_get_plane_count(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_handle_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_write(bo: *mut gbm_bo, buf: *const libc::c_void, count: size_t) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_set_user_data( - bo: *mut gbm_bo, - data: *mut libc::c_void, - destroy_user_data: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut gbm_bo, arg2: *mut libc::c_void), - >, - ); -} -extern "C" { - pub fn gbm_bo_get_user_data(bo: *mut gbm_bo) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_destroy(bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_lock_front_buffer(surface: *mut gbm_surface) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_surface_release_buffer(surface: *mut gbm_surface, bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_has_free_buffers(surface: *mut gbm_surface) -> libc::c_int; -} -extern "C" { - pub fn gbm_surface_destroy(surface: *mut gbm_surface); -} -extern "C" { - pub fn gbm_format_get_name( - gbm_format: u32, - desc: *mut gbm_format_name_desc, - ) -> *mut libc::c_char; -} diff --git a/gbm-sys/src/platforms/linux/arm/gen.rs b/gbm-sys/src/platforms/linux/arm/gen.rs deleted file mode 100644 index 07ea0b0..0000000 --- a/gbm-sys/src/platforms/linux/arm/gen.rs +++ /dev/null @@ -1,564 +0,0 @@ -/* automatically generated by rust-bindgen 0.58.1 */ - -pub const GBM_FORMAT_BIG_ENDIAN: u32 = 2147483648; -pub const GBM_BO_IMPORT_WL_BUFFER: u32 = 21761; -pub const GBM_BO_IMPORT_EGL_IMAGE: u32 = 21762; -pub const GBM_BO_IMPORT_FD: u32 = 21763; -pub const GBM_BO_IMPORT_FD_MODIFIER: u32 = 21764; -pub const GBM_MAX_PLANES: u32 = 4; -pub type size_t = libc::c_uint; -pub type __int32_t = libc::c_int; -pub type __uint32_t = libc::c_uint; -pub type __int64_t = libc::c_longlong; -pub type __uint64_t = libc::c_ulonglong; -#[doc = " \\file gbm.h"] -#[doc = " \\brief Generic Buffer Manager"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_device { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_bo { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_surface { - _unused: [u8; 0], -} -#[doc = " Abstraction representing the handle to a buffer allocated by the"] -#[doc = " manager"] -#[repr(C)] -#[derive(Copy, Clone)] -pub union gbm_bo_handle { - pub ptr: *mut libc::c_void, - pub s32: i32, - pub u32_: u32, - pub s64: i64, - pub u64_: u64, -} -#[test] -fn bindgen_test_layout_gbm_bo_handle() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ptr as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(ptr) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s32 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s32) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u32_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u32_) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s64 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s64) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u64_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u64_) - ) - ); -} -pub mod gbm_bo_format { - #[doc = " Format of the allocated buffer"] - pub type Type = libc::c_uint; - #[doc = " RGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_XRGB8888: Type = 0; - #[doc = " ARGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_ARGB8888: Type = 1; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_format_name_desc { - pub name: [libc::c_char; 5usize], -} -#[test] -fn bindgen_test_layout_gbm_format_name_desc() { - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).name as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_format_name_desc), - "::", - stringify!(name) - ) - ); -} -pub mod gbm_bo_flags { - #[doc = " Flags to indicate the intended use for the buffer - these are passed into"] - #[doc = " gbm_bo_create(). The caller must set the union of all the flags that are"] - #[doc = " appropriate"] - #[doc = ""] - #[doc = " \\sa Use gbm_device_is_format_supported() to check if the combination of format"] - #[doc = " and use flags are supported"] - pub type Type = libc::c_uint; - #[doc = " Buffer is going to be presented to the screen using an API such as KMS"] - pub const GBM_BO_USE_SCANOUT: Type = 1; - #[doc = " Buffer is going to be used as cursor"] - pub const GBM_BO_USE_CURSOR: Type = 2; - #[doc = " Deprecated"] - pub const GBM_BO_USE_CURSOR_64X64: Type = 2; - #[doc = " Buffer is to be used for rendering - for example it is going to be used"] - #[doc = " as the storage for a color buffer"] - pub const GBM_BO_USE_RENDERING: Type = 4; - #[doc = " Buffer can be used for gbm_bo_write. This is guaranteed to work"] - #[doc = " with GBM_BO_USE_CURSOR, but may not work for other combinations."] - pub const GBM_BO_USE_WRITE: Type = 8; - #[doc = " Buffer is linear, i.e. not tiled."] - pub const GBM_BO_USE_LINEAR: Type = 16; - #[doc = " Buffer is protected, i.e. encrypted and not readable by CPU or any"] - #[doc = " other non-secure / non-trusted components nor by non-trusted OpenGL,"] - #[doc = " OpenCL, and Vulkan applications."] - pub const GBM_BO_USE_PROTECTED: Type = 32; -} -extern "C" { - pub fn gbm_device_get_fd(gbm: *mut gbm_device) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_backend_name(gbm: *mut gbm_device) -> *const libc::c_char; -} -extern "C" { - pub fn gbm_device_is_format_supported( - gbm: *mut gbm_device, - format: u32, - flags: u32, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_format_modifier_plane_count( - gbm: *mut gbm_device, - format: u32, - modifier: u64, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_destroy(gbm: *mut gbm_device); -} -extern "C" { - pub fn gbm_create_device(fd: libc::c_int) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_bo; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_data { - pub fd: libc::c_int, - pub width: u32, - pub height: u32, - pub stride: u32, - pub format: u32, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_data() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fd as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).width as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).height as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).stride as *const _ as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(stride) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).format as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(format) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_modifier_data { - pub width: u32, - pub height: u32, - pub format: u32, - pub num_fds: u32, - pub fds: [libc::c_int; 4usize], - pub strides: [libc::c_int; 4usize], - pub offsets: [libc::c_int; 4usize], - pub modifier: u64, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_modifier_data() { - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).width as *const _ as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).height as *const _ as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).format as *const _ as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).num_fds as *const _ as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(num_fds) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fds as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(fds) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).strides as *const _ as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).offsets as *const _ as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(offsets) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).modifier as *const _ as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(modifier) - ) - ); -} -extern "C" { - pub fn gbm_bo_import( - gbm: *mut gbm_device, - type_: u32, - buffer: *mut libc::c_void, - flags: u32, - ) -> *mut gbm_bo; -} -pub mod gbm_bo_transfer_flags { - #[doc = " Flags to indicate the type of mapping for the buffer - these are"] - #[doc = " passed into gbm_bo_map(). The caller must set the union of all the"] - #[doc = " flags that are appropriate."] - #[doc = ""] - #[doc = " These flags are independent of the GBM_BO_USE_* creation flags. However,"] - #[doc = " mapping the buffer may require copying to/from a staging buffer."] - #[doc = ""] - #[doc = " See also: pipe_map_flags"] - pub type Type = libc::c_uint; - #[doc = " Buffer contents read back (or accessed directly) at transfer"] - #[doc = " create time."] - pub const GBM_BO_TRANSFER_READ: Type = 1; - #[doc = " Buffer contents will be written back at unmap time"] - #[doc = " (or modified as a result of being accessed directly)."] - pub const GBM_BO_TRANSFER_WRITE: Type = 2; - #[doc = " Read/modify/write"] - pub const GBM_BO_TRANSFER_READ_WRITE: Type = 3; -} -extern "C" { - pub fn gbm_bo_map( - bo: *mut gbm_bo, - x: u32, - y: u32, - width: u32, - height: u32, - flags: u32, - stride: *mut u32, - map_data: *mut *mut libc::c_void, - ) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_unmap(bo: *mut gbm_bo, map_data: *mut libc::c_void); -} -extern "C" { - pub fn gbm_bo_get_width(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_height(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_format(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_bpp(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_offset(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_device(bo: *mut gbm_bo) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_get_handle(bo: *mut gbm_bo) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_modifier(bo: *mut gbm_bo) -> u64; -} -extern "C" { - pub fn gbm_bo_get_plane_count(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_handle_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_write(bo: *mut gbm_bo, buf: *const libc::c_void, count: size_t) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_set_user_data( - bo: *mut gbm_bo, - data: *mut libc::c_void, - destroy_user_data: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut gbm_bo, arg2: *mut libc::c_void), - >, - ); -} -extern "C" { - pub fn gbm_bo_get_user_data(bo: *mut gbm_bo) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_destroy(bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_lock_front_buffer(surface: *mut gbm_surface) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_surface_release_buffer(surface: *mut gbm_surface, bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_has_free_buffers(surface: *mut gbm_surface) -> libc::c_int; -} -extern "C" { - pub fn gbm_surface_destroy(surface: *mut gbm_surface); -} -extern "C" { - pub fn gbm_format_get_name( - gbm_format: u32, - desc: *mut gbm_format_name_desc, - ) -> *mut libc::c_char; -} diff --git a/gbm-sys/src/platforms/linux/x86/gen.rs b/gbm-sys/src/platforms/linux/x86/gen.rs deleted file mode 100644 index 610427a..0000000 --- a/gbm-sys/src/platforms/linux/x86/gen.rs +++ /dev/null @@ -1,564 +0,0 @@ -/* automatically generated by rust-bindgen 0.58.1 */ - -pub const GBM_FORMAT_BIG_ENDIAN: u32 = 2147483648; -pub const GBM_BO_IMPORT_WL_BUFFER: u32 = 21761; -pub const GBM_BO_IMPORT_EGL_IMAGE: u32 = 21762; -pub const GBM_BO_IMPORT_FD: u32 = 21763; -pub const GBM_BO_IMPORT_FD_MODIFIER: u32 = 21764; -pub const GBM_MAX_PLANES: u32 = 4; -pub type size_t = libc::c_uint; -pub type __int32_t = libc::c_int; -pub type __uint32_t = libc::c_uint; -pub type __int64_t = libc::c_longlong; -pub type __uint64_t = libc::c_ulonglong; -#[doc = " \\file gbm.h"] -#[doc = " \\brief Generic Buffer Manager"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_device { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_bo { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_surface { - _unused: [u8; 0], -} -#[doc = " Abstraction representing the handle to a buffer allocated by the"] -#[doc = " manager"] -#[repr(C)] -#[derive(Copy, Clone)] -pub union gbm_bo_handle { - pub ptr: *mut libc::c_void, - pub s32: i32, - pub u32_: u32, - pub s64: i64, - pub u64_: u64, -} -#[test] -fn bindgen_test_layout_gbm_bo_handle() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ptr as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(ptr) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s32 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s32) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u32_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u32_) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s64 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s64) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u64_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u64_) - ) - ); -} -pub mod gbm_bo_format { - #[doc = " Format of the allocated buffer"] - pub type Type = libc::c_uint; - #[doc = " RGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_XRGB8888: Type = 0; - #[doc = " ARGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_ARGB8888: Type = 1; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_format_name_desc { - pub name: [libc::c_char; 5usize], -} -#[test] -fn bindgen_test_layout_gbm_format_name_desc() { - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).name as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_format_name_desc), - "::", - stringify!(name) - ) - ); -} -pub mod gbm_bo_flags { - #[doc = " Flags to indicate the intended use for the buffer - these are passed into"] - #[doc = " gbm_bo_create(). The caller must set the union of all the flags that are"] - #[doc = " appropriate"] - #[doc = ""] - #[doc = " \\sa Use gbm_device_is_format_supported() to check if the combination of format"] - #[doc = " and use flags are supported"] - pub type Type = libc::c_uint; - #[doc = " Buffer is going to be presented to the screen using an API such as KMS"] - pub const GBM_BO_USE_SCANOUT: Type = 1; - #[doc = " Buffer is going to be used as cursor"] - pub const GBM_BO_USE_CURSOR: Type = 2; - #[doc = " Deprecated"] - pub const GBM_BO_USE_CURSOR_64X64: Type = 2; - #[doc = " Buffer is to be used for rendering - for example it is going to be used"] - #[doc = " as the storage for a color buffer"] - pub const GBM_BO_USE_RENDERING: Type = 4; - #[doc = " Buffer can be used for gbm_bo_write. This is guaranteed to work"] - #[doc = " with GBM_BO_USE_CURSOR, but may not work for other combinations."] - pub const GBM_BO_USE_WRITE: Type = 8; - #[doc = " Buffer is linear, i.e. not tiled."] - pub const GBM_BO_USE_LINEAR: Type = 16; - #[doc = " Buffer is protected, i.e. encrypted and not readable by CPU or any"] - #[doc = " other non-secure / non-trusted components nor by non-trusted OpenGL,"] - #[doc = " OpenCL, and Vulkan applications."] - pub const GBM_BO_USE_PROTECTED: Type = 32; -} -extern "C" { - pub fn gbm_device_get_fd(gbm: *mut gbm_device) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_backend_name(gbm: *mut gbm_device) -> *const libc::c_char; -} -extern "C" { - pub fn gbm_device_is_format_supported( - gbm: *mut gbm_device, - format: u32, - flags: u32, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_format_modifier_plane_count( - gbm: *mut gbm_device, - format: u32, - modifier: u64, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_destroy(gbm: *mut gbm_device); -} -extern "C" { - pub fn gbm_create_device(fd: libc::c_int) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_bo; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_data { - pub fd: libc::c_int, - pub width: u32, - pub height: u32, - pub stride: u32, - pub format: u32, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_data() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fd as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).width as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).height as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).stride as *const _ as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(stride) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).format as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(format) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_modifier_data { - pub width: u32, - pub height: u32, - pub format: u32, - pub num_fds: u32, - pub fds: [libc::c_int; 4usize], - pub strides: [libc::c_int; 4usize], - pub offsets: [libc::c_int; 4usize], - pub modifier: u64, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_modifier_data() { - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).width as *const _ as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).height as *const _ as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).format as *const _ as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).num_fds as *const _ as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(num_fds) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fds as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(fds) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).strides as *const _ as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).offsets as *const _ as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(offsets) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).modifier as *const _ as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(modifier) - ) - ); -} -extern "C" { - pub fn gbm_bo_import( - gbm: *mut gbm_device, - type_: u32, - buffer: *mut libc::c_void, - flags: u32, - ) -> *mut gbm_bo; -} -pub mod gbm_bo_transfer_flags { - #[doc = " Flags to indicate the type of mapping for the buffer - these are"] - #[doc = " passed into gbm_bo_map(). The caller must set the union of all the"] - #[doc = " flags that are appropriate."] - #[doc = ""] - #[doc = " These flags are independent of the GBM_BO_USE_* creation flags. However,"] - #[doc = " mapping the buffer may require copying to/from a staging buffer."] - #[doc = ""] - #[doc = " See also: pipe_map_flags"] - pub type Type = libc::c_uint; - #[doc = " Buffer contents read back (or accessed directly) at transfer"] - #[doc = " create time."] - pub const GBM_BO_TRANSFER_READ: Type = 1; - #[doc = " Buffer contents will be written back at unmap time"] - #[doc = " (or modified as a result of being accessed directly)."] - pub const GBM_BO_TRANSFER_WRITE: Type = 2; - #[doc = " Read/modify/write"] - pub const GBM_BO_TRANSFER_READ_WRITE: Type = 3; -} -extern "C" { - pub fn gbm_bo_map( - bo: *mut gbm_bo, - x: u32, - y: u32, - width: u32, - height: u32, - flags: u32, - stride: *mut u32, - map_data: *mut *mut libc::c_void, - ) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_unmap(bo: *mut gbm_bo, map_data: *mut libc::c_void); -} -extern "C" { - pub fn gbm_bo_get_width(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_height(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_format(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_bpp(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_offset(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_device(bo: *mut gbm_bo) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_get_handle(bo: *mut gbm_bo) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_modifier(bo: *mut gbm_bo) -> u64; -} -extern "C" { - pub fn gbm_bo_get_plane_count(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_handle_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_write(bo: *mut gbm_bo, buf: *const libc::c_void, count: size_t) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_set_user_data( - bo: *mut gbm_bo, - data: *mut libc::c_void, - destroy_user_data: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut gbm_bo, arg2: *mut libc::c_void), - >, - ); -} -extern "C" { - pub fn gbm_bo_get_user_data(bo: *mut gbm_bo) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_destroy(bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_lock_front_buffer(surface: *mut gbm_surface) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_surface_release_buffer(surface: *mut gbm_surface, bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_has_free_buffers(surface: *mut gbm_surface) -> libc::c_int; -} -extern "C" { - pub fn gbm_surface_destroy(surface: *mut gbm_surface); -} -extern "C" { - pub fn gbm_format_get_name( - gbm_format: u32, - desc: *mut gbm_format_name_desc, - ) -> *mut libc::c_char; -} diff --git a/gbm-sys/src/platforms/linux/x86_64/gen.rs b/gbm-sys/src/platforms/linux/x86_64/gen.rs deleted file mode 100644 index 22103c0..0000000 --- a/gbm-sys/src/platforms/linux/x86_64/gen.rs +++ /dev/null @@ -1,564 +0,0 @@ -/* automatically generated by rust-bindgen 0.58.1 */ - -pub const GBM_FORMAT_BIG_ENDIAN: u32 = 2147483648; -pub const GBM_BO_IMPORT_WL_BUFFER: u32 = 21761; -pub const GBM_BO_IMPORT_EGL_IMAGE: u32 = 21762; -pub const GBM_BO_IMPORT_FD: u32 = 21763; -pub const GBM_BO_IMPORT_FD_MODIFIER: u32 = 21764; -pub const GBM_MAX_PLANES: u32 = 4; -pub type size_t = libc::c_ulong; -pub type __int32_t = libc::c_int; -pub type __uint32_t = libc::c_uint; -pub type __int64_t = libc::c_long; -pub type __uint64_t = libc::c_ulong; -#[doc = " \\file gbm.h"] -#[doc = " \\brief Generic Buffer Manager"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_device { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_bo { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_surface { - _unused: [u8; 0], -} -#[doc = " Abstraction representing the handle to a buffer allocated by the"] -#[doc = " manager"] -#[repr(C)] -#[derive(Copy, Clone)] -pub union gbm_bo_handle { - pub ptr: *mut libc::c_void, - pub s32: i32, - pub u32_: u32, - pub s64: i64, - pub u64_: u64, -} -#[test] -fn bindgen_test_layout_gbm_bo_handle() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_bo_handle)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ptr as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(ptr) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s32 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s32) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u32_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u32_) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).s64 as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(s64) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).u64_ as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_bo_handle), - "::", - stringify!(u64_) - ) - ); -} -pub mod gbm_bo_format { - #[doc = " Format of the allocated buffer"] - pub type Type = libc::c_uint; - #[doc = " RGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_XRGB8888: Type = 0; - #[doc = " ARGB with 8 bits per channel in a 32 bit value"] - pub const GBM_BO_FORMAT_ARGB8888: Type = 1; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_format_name_desc { - pub name: [libc::c_char; 5usize], -} -#[test] -fn bindgen_test_layout_gbm_format_name_desc() { - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(gbm_format_name_desc)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).name as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_format_name_desc), - "::", - stringify!(name) - ) - ); -} -pub mod gbm_bo_flags { - #[doc = " Flags to indicate the intended use for the buffer - these are passed into"] - #[doc = " gbm_bo_create(). The caller must set the union of all the flags that are"] - #[doc = " appropriate"] - #[doc = ""] - #[doc = " \\sa Use gbm_device_is_format_supported() to check if the combination of format"] - #[doc = " and use flags are supported"] - pub type Type = libc::c_uint; - #[doc = " Buffer is going to be presented to the screen using an API such as KMS"] - pub const GBM_BO_USE_SCANOUT: Type = 1; - #[doc = " Buffer is going to be used as cursor"] - pub const GBM_BO_USE_CURSOR: Type = 2; - #[doc = " Deprecated"] - pub const GBM_BO_USE_CURSOR_64X64: Type = 2; - #[doc = " Buffer is to be used for rendering - for example it is going to be used"] - #[doc = " as the storage for a color buffer"] - pub const GBM_BO_USE_RENDERING: Type = 4; - #[doc = " Buffer can be used for gbm_bo_write. This is guaranteed to work"] - #[doc = " with GBM_BO_USE_CURSOR, but may not work for other combinations."] - pub const GBM_BO_USE_WRITE: Type = 8; - #[doc = " Buffer is linear, i.e. not tiled."] - pub const GBM_BO_USE_LINEAR: Type = 16; - #[doc = " Buffer is protected, i.e. encrypted and not readable by CPU or any"] - #[doc = " other non-secure / non-trusted components nor by non-trusted OpenGL,"] - #[doc = " OpenCL, and Vulkan applications."] - pub const GBM_BO_USE_PROTECTED: Type = 32; -} -extern "C" { - pub fn gbm_device_get_fd(gbm: *mut gbm_device) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_backend_name(gbm: *mut gbm_device) -> *const libc::c_char; -} -extern "C" { - pub fn gbm_device_is_format_supported( - gbm: *mut gbm_device, - format: u32, - flags: u32, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_get_format_modifier_plane_count( - gbm: *mut gbm_device, - format: u32, - modifier: u64, - ) -> libc::c_int; -} -extern "C" { - pub fn gbm_device_destroy(gbm: *mut gbm_device); -} -extern "C" { - pub fn gbm_create_device(fd: libc::c_int) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_bo_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_bo; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_data { - pub fd: libc::c_int, - pub width: u32, - pub height: u32, - pub stride: u32, - pub format: u32, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_data() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gbm_import_fd_data)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fd as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).width as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).height as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).stride as *const _ as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(stride) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).format as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_data), - "::", - stringify!(format) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gbm_import_fd_modifier_data { - pub width: u32, - pub height: u32, - pub format: u32, - pub num_fds: u32, - pub fds: [libc::c_int; 4usize], - pub strides: [libc::c_int; 4usize], - pub offsets: [libc::c_int; 4usize], - pub modifier: u64, -} -#[test] -fn bindgen_test_layout_gbm_import_fd_modifier_data() { - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbm_import_fd_modifier_data)) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).width as *const _ as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).height as *const _ as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).format as *const _ as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).num_fds as *const _ as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(num_fds) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).fds as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(fds) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).strides as *const _ as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).offsets as *const _ as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(offsets) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).modifier as *const _ as usize - }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gbm_import_fd_modifier_data), - "::", - stringify!(modifier) - ) - ); -} -extern "C" { - pub fn gbm_bo_import( - gbm: *mut gbm_device, - type_: u32, - buffer: *mut libc::c_void, - flags: u32, - ) -> *mut gbm_bo; -} -pub mod gbm_bo_transfer_flags { - #[doc = " Flags to indicate the type of mapping for the buffer - these are"] - #[doc = " passed into gbm_bo_map(). The caller must set the union of all the"] - #[doc = " flags that are appropriate."] - #[doc = ""] - #[doc = " These flags are independent of the GBM_BO_USE_* creation flags. However,"] - #[doc = " mapping the buffer may require copying to/from a staging buffer."] - #[doc = ""] - #[doc = " See also: pipe_map_flags"] - pub type Type = libc::c_uint; - #[doc = " Buffer contents read back (or accessed directly) at transfer"] - #[doc = " create time."] - pub const GBM_BO_TRANSFER_READ: Type = 1; - #[doc = " Buffer contents will be written back at unmap time"] - #[doc = " (or modified as a result of being accessed directly)."] - pub const GBM_BO_TRANSFER_WRITE: Type = 2; - #[doc = " Read/modify/write"] - pub const GBM_BO_TRANSFER_READ_WRITE: Type = 3; -} -extern "C" { - pub fn gbm_bo_map( - bo: *mut gbm_bo, - x: u32, - y: u32, - width: u32, - height: u32, - flags: u32, - stride: *mut u32, - map_data: *mut *mut libc::c_void, - ) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_unmap(bo: *mut gbm_bo, map_data: *mut libc::c_void); -} -extern "C" { - pub fn gbm_bo_get_width(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_height(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_stride_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_format(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_bpp(bo: *mut gbm_bo) -> u32; -} -extern "C" { - pub fn gbm_bo_get_offset(bo: *mut gbm_bo, plane: libc::c_int) -> u32; -} -extern "C" { - pub fn gbm_bo_get_device(bo: *mut gbm_bo) -> *mut gbm_device; -} -extern "C" { - pub fn gbm_bo_get_handle(bo: *mut gbm_bo) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_modifier(bo: *mut gbm_bo) -> u64; -} -extern "C" { - pub fn gbm_bo_get_plane_count(bo: *mut gbm_bo) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_get_handle_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> gbm_bo_handle; -} -extern "C" { - pub fn gbm_bo_get_fd_for_plane(bo: *mut gbm_bo, plane: libc::c_int) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_write(bo: *mut gbm_bo, buf: *const libc::c_void, count: size_t) -> libc::c_int; -} -extern "C" { - pub fn gbm_bo_set_user_data( - bo: *mut gbm_bo, - data: *mut libc::c_void, - destroy_user_data: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut gbm_bo, arg2: *mut libc::c_void), - >, - ); -} -extern "C" { - pub fn gbm_bo_get_user_data(bo: *mut gbm_bo) -> *mut libc::c_void; -} -extern "C" { - pub fn gbm_bo_destroy(bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_create( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_create_with_modifiers2( - gbm: *mut gbm_device, - width: u32, - height: u32, - format: u32, - modifiers: *const u64, - count: libc::c_uint, - flags: u32, - ) -> *mut gbm_surface; -} -extern "C" { - pub fn gbm_surface_lock_front_buffer(surface: *mut gbm_surface) -> *mut gbm_bo; -} -extern "C" { - pub fn gbm_surface_release_buffer(surface: *mut gbm_surface, bo: *mut gbm_bo); -} -extern "C" { - pub fn gbm_surface_has_free_buffers(surface: *mut gbm_surface) -> libc::c_int; -} -extern "C" { - pub fn gbm_surface_destroy(surface: *mut gbm_surface); -} -extern "C" { - pub fn gbm_format_get_name( - gbm_format: u32, - desc: *mut gbm_format_name_desc, - ) -> *mut libc::c_char; -}