use super::frame_ffi;
use super::frame_ffi::CFrameItem;
use std::mem;
impl CFrameItem {
unsafe fn new_unchecked() -> Self {
Self {
edge: std::ptr::null(),
len: 0,
}
}
pub unsafe fn new_read(n: usize, from: *const usize) -> Self {
let mut frame = CFrameItem::new_unchecked();
frame_ffi::c_initReadFrame(&mut frame, n, from);
frame
}
pub unsafe fn new_write(n: usize, from: *mut usize) -> Self {
let mut frame = CFrameItem::new_unchecked();
frame_ffi::c_initWriteFrame(&mut frame, n, from);
frame
}
}
pub fn round_u_word(n: usize) -> usize {
(n + 8 * mem::size_of::<crate::ffi::UWORD>() - 1) / (8 * mem::size_of::<crate::ffi::UWORD>())
}
pub fn ffi_bytes_size(n: usize) -> usize {
round_u_word(n) * mem::size_of::<crate::ffi::UWORD>()
}