pub use libc::{ioctl, c_void, c_char};
pub use std::io::Error as IoctlError;
pub use std::mem;
pub const SM_SIZE: usize = 32;
pub type Array<T> = Vec<T>;
pub type RawId = u32;
macro_rules! ioctl {
( $card:expr, $code:expr, $obj:expr ) => ( unsafe {
if ioctl($card.as_raw_fd(), $code as u64, $obj) != 0 {
return Err(IoctlError::last_os_error().into());
}
})
}
macro_rules! ffi_buf {
( $ptr:expr, $sz:expr ) => (
{
let mut buf = unsafe { vec![mem::zeroed(); $sz as usize] };
*(&mut $ptr) = unsafe { mem::transmute(buf.as_mut_ptr()) };
buf
}
)
}