blob: 7bed0dcf0a6eeaeb24c4df5a95ce9986457d2a21 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/*
* generated from files in sound-open-firmware-private/src/include:
* kernel/header.h
* ipc/control.h
*/
/* automatically generated by rust-bindgen */
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>);
impl<T> __IncompleteArrayField<T> {
#[inline]
pub fn new() -> Self {
__IncompleteArrayField(::std::marker::PhantomData)
}
#[inline]
pub unsafe fn as_ptr(&self) -> *const T {
::std::mem::transmute(self)
}
#[inline]
pub unsafe fn as_mut_ptr(&mut self) -> *mut T {
::std::mem::transmute(self)
}
#[inline]
pub unsafe fn as_slice(&self, len: usize) -> &[T] {
::std::slice::from_raw_parts(self.as_ptr(), len)
}
#[inline]
pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
}
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.write_str("__IncompleteArrayField")
}
}
impl<T> ::std::clone::Clone for __IncompleteArrayField<T> {
#[inline]
fn clone(&self) -> Self {
Self::new()
}
}
impl<T> ::std::marker::Copy for __IncompleteArrayField<T> {}
pub type __uint32_t = ::std::os::raw::c_uint;
/// \brief Header for all non IPC ABI data.
///
/// Identifies data type, size and ABI.
/// Data header used for all component data structures and binary blobs sent to
/// firmware as runtime data. This data is typically sent by userspace
/// applications and tunnelled through any OS kernel (via binary kcontrol on
/// Linux) to the firmware.
#[repr(C, packed)]
pub struct sof_abi_hdr {
///< 'S', 'O', 'F', '\0'
pub magic: u32,
///< component specific type
pub type_: u32,
///< size in bytes of data excl. this struct
pub size: u32,
///< SOF ABI version
pub abi: u32,
///< reserved for future use
pub reserved: [u32; 4usize],
///< Component data - opaque to core
pub data: __IncompleteArrayField<u32>,
}
#[test]
fn bindgen_test_layout_sof_abi_hdr() {
assert_eq!(
::std::mem::size_of::<sof_abi_hdr>(),
32usize,
concat!("Size of: ", stringify!(sof_abi_hdr))
);
assert_eq!(
::std::mem::align_of::<sof_abi_hdr>(),
1usize,
concat!("Alignment of ", stringify!(sof_abi_hdr))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<sof_abi_hdr>())).magic as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(sof_abi_hdr),
"::",
stringify!(magic)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<sof_abi_hdr>())).type_ as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(sof_abi_hdr),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<sof_abi_hdr>())).size as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(sof_abi_hdr),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<sof_abi_hdr>())).abi as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(sof_abi_hdr),
"::",
stringify!(abi)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<sof_abi_hdr>())).reserved as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(sof_abi_hdr),
"::",
stringify!(reserved)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<sof_abi_hdr>())).data as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(sof_abi_hdr),
"::",
stringify!(data)
)
);
}
///< maps to ALSA volume style controls
pub const sof_ipc_ctrl_cmd_SOF_CTRL_CMD_VOLUME: sof_ipc_ctrl_cmd = 0;
///< maps to ALSA enum style controls
pub const sof_ipc_ctrl_cmd_SOF_CTRL_CMD_ENUM: sof_ipc_ctrl_cmd = 1;
///< maps to ALSA switch style controls
pub const sof_ipc_ctrl_cmd_SOF_CTRL_CMD_SWITCH: sof_ipc_ctrl_cmd = 2;
///< maps to ALSA binary style controls
pub const sof_ipc_ctrl_cmd_SOF_CTRL_CMD_BINARY: sof_ipc_ctrl_cmd = 3;
/// Control command type.
pub type sof_ipc_ctrl_cmd = u32;