// 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(::std::marker::PhantomData); impl __IncompleteArrayField { #[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 ::std::fmt::Debug for __IncompleteArrayField { fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { fmt.write_str("__IncompleteArrayField") } } impl ::std::clone::Clone for __IncompleteArrayField { #[inline] fn clone(&self) -> Self { Self::new() } } impl ::std::marker::Copy for __IncompleteArrayField {} 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, } #[test] fn bindgen_test_layout_sof_abi_hdr() { assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(sof_abi_hdr)) ); assert_eq!( ::std::mem::align_of::(), 1usize, concat!("Alignment of ", stringify!(sof_abi_hdr)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).magic as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(sof_abi_hdr), "::", stringify!(magic) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).type_ as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(sof_abi_hdr), "::", stringify!(type_) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).size as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(sof_abi_hdr), "::", stringify!(size) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).abi as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(sof_abi_hdr), "::", stringify!(abi) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).reserved as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(sof_abi_hdr), "::", stringify!(reserved) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).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;