///|
extern "c" fn frame_pool_create_ffi(capacity : Int, frame_size : Int) -> Int = "lockwire_native_frame_pool_create"
///|
extern "c" fn frame_pool_destroy_ffi(pool_id : Int) -> Int = "lockwire_native_frame_pool_destroy"
///|
extern "c" fn frame_pool_acquire_ffi(pool_id : Int) -> Int = "lockwire_native_frame_pool_acquire"
///|
extern "c" fn frame_pool_acquire_rx_ffi(pool_id : Int) -> Int = "lockwire_native_frame_pool_acquire_rx"
///|
extern "c" fn frame_pool_release_ffi(pool_id : Int, slot : Int) -> Int = "lockwire_native_frame_pool_release"
///|
extern "c" fn frame_pool_mark_filled_ffi(
pool_id : Int,
slot : Int,
length : Int,
) -> Int = "lockwire_native_frame_pool_mark_filled"
///|
extern "c" fn frame_pool_mark_sending_ffi(pool_id : Int, slot : Int) -> Int = "lockwire_native_frame_pool_mark_sending"
///|
extern "c" fn frame_pool_mark_sent_ffi(pool_id : Int, slot : Int) -> Int = "lockwire_native_frame_pool_mark_sent"
///|
extern "c" fn frame_pool_mark_received_ffi(
pool_id : Int,
slot : Int,
length : Int,
) -> Int = "lockwire_native_frame_pool_mark_received"
///|
extern "c" fn frame_pool_free_count_ffi(pool_id : Int) -> Int = "lockwire_native_frame_pool_free_count"
///|
extern "c" fn frame_pool_slot_state_ffi(pool_id : Int, slot : Int) -> Int = "lockwire_native_frame_pool_slot_state"
///|
extern "c" fn frame_pool_slot_length_ffi(pool_id : Int, slot : Int) -> Int = "lockwire_native_frame_pool_slot_length"
///|
#borrow(src)
extern "c" fn frame_pool_write_ffi(
pool_id : Int,
slot : Int,
offset : Int,
src : FixedArray[Byte],
count : Int,
) -> Int = "lockwire_native_frame_pool_write"
///|
#borrow(dst)
extern "c" fn frame_pool_read_into_ffi(
pool_id : Int,
slot : Int,
offset : Int,
dst : FixedArray[Byte],
count : Int,
) -> Int = "lockwire_native_frame_pool_read_into"
///|
extern "c" fn frame_pool_copy_ffi(
pool_id : Int,
src_slot : Int,
dst_slot : Int,
count : Int,
) -> Int = "lockwire_native_frame_pool_copy"
///|
fn ffi_frame_pool_create(capacity : Int, frame_size : Int) -> Int {
frame_pool_create_ffi(capacity, frame_size)
}
///|
fn ffi_frame_pool_destroy(pool_id : Int) -> Int {
frame_pool_destroy_ffi(pool_id)
}
///|
fn ffi_frame_pool_acquire(pool_id : Int) -> Int {
frame_pool_acquire_ffi(pool_id)
}
///|
fn ffi_frame_pool_acquire_rx(pool_id : Int) -> Int {
frame_pool_acquire_rx_ffi(pool_id)
}
///|
fn ffi_frame_pool_release(pool_id : Int, slot : Int) -> Int {
frame_pool_release_ffi(pool_id, slot)
}
///|
fn ffi_frame_pool_mark_filled(pool_id : Int, slot : Int, length : Int) -> Int {
frame_pool_mark_filled_ffi(pool_id, slot, length)
}
///|
fn ffi_frame_pool_mark_sending(pool_id : Int, slot : Int) -> Int {
frame_pool_mark_sending_ffi(pool_id, slot)
}
///|
fn ffi_frame_pool_mark_sent(pool_id : Int, slot : Int) -> Int {
frame_pool_mark_sent_ffi(pool_id, slot)
}
///|
fn ffi_frame_pool_mark_received(pool_id : Int, slot : Int, length : Int) -> Int {
frame_pool_mark_received_ffi(pool_id, slot, length)
}
///|
fn ffi_frame_pool_free_count(pool_id : Int) -> Int {
frame_pool_free_count_ffi(pool_id)
}
///|
fn ffi_frame_pool_slot_state(pool_id : Int, slot : Int) -> Int {
frame_pool_slot_state_ffi(pool_id, slot)
}
///|
fn ffi_frame_pool_slot_length(pool_id : Int, slot : Int) -> Int {
frame_pool_slot_length_ffi(pool_id, slot)
}
///|
fn ffi_frame_pool_write(
pool_id : Int,
slot : Int,
offset : Int,
src : FixedArray[Byte],
count : Int,
) -> Int {
frame_pool_write_ffi(pool_id, slot, offset, src, count)
}
///|
fn ffi_frame_pool_read_into(
pool_id : Int,
slot : Int,
offset : Int,
dst : FixedArray[Byte],
count : Int,
) -> Int {
frame_pool_read_into_ffi(pool_id, slot, offset, dst, count)
}
///|
fn ffi_frame_pool_copy(
pool_id : Int,
src_slot : Int,
dst_slot : Int,
count : Int,
) -> Int {
frame_pool_copy_ffi(pool_id, src_slot, dst_slot, count)
}