stm32/ipcc: cleanup naming
This commit is contained in:
parent
661b1f3373
commit
5e86188c25
@ -5,7 +5,7 @@ use embassy_futures::block_on;
|
||||
use super::cmd::CmdSerial;
|
||||
use super::consts::TlPacketType;
|
||||
use super::evt::EvtBox;
|
||||
use super::unsafe_linked_list::{LST_init_head, LST_is_empty, LST_remove_head};
|
||||
use super::unsafe_linked_list::LinkedListNode;
|
||||
use super::{
|
||||
channels, BleTable, BLE_CMD_BUFFER, CS_BUFFER, EVT_QUEUE, HCI_ACL_DATA_BUFFER, TL_BLE_TABLE, TL_CHANNEL,
|
||||
TL_REF_TABLE,
|
||||
@ -18,7 +18,7 @@ pub struct Ble;
|
||||
impl Ble {
|
||||
pub(crate) fn new(ipcc: &mut Ipcc) -> Self {
|
||||
unsafe {
|
||||
LST_init_head(EVT_QUEUE.as_mut_ptr());
|
||||
LinkedListNode::init_head(EVT_QUEUE.as_mut_ptr());
|
||||
|
||||
TL_BLE_TABLE = MaybeUninit::new(BleTable {
|
||||
pcmd_buffer: BLE_CMD_BUFFER.as_mut_ptr().cast(),
|
||||
@ -38,8 +38,8 @@ impl Ble {
|
||||
let mut node_ptr = core::ptr::null_mut();
|
||||
let node_ptr_ptr: *mut _ = &mut node_ptr;
|
||||
|
||||
while !LST_is_empty(EVT_QUEUE.as_mut_ptr()) {
|
||||
LST_remove_head(EVT_QUEUE.as_mut_ptr(), node_ptr_ptr);
|
||||
while !LinkedListNode::is_empty(EVT_QUEUE.as_mut_ptr()) {
|
||||
LinkedListNode::remove_head(EVT_QUEUE.as_mut_ptr(), node_ptr_ptr);
|
||||
|
||||
let event = node_ptr.cast();
|
||||
let event = EvtBox::new(event);
|
||||
|
@ -1,7 +1,7 @@
|
||||
use core::mem::MaybeUninit;
|
||||
|
||||
use super::evt::EvtPacket;
|
||||
use super::unsafe_linked_list::{LST_init_head, LST_insert_tail, LST_is_empty, LST_remove_head};
|
||||
use super::unsafe_linked_list::LinkedListNode;
|
||||
use super::{
|
||||
channels, MemManagerTable, BLE_SPARE_EVT_BUF, EVT_POOL, FREE_BUFF_QUEUE, LOCAL_FREE_BUF_QUEUE, POOL_SIZE,
|
||||
SYS_SPARE_EVT_BUF, TL_MEM_MANAGER_TABLE, TL_REF_TABLE,
|
||||
@ -13,8 +13,8 @@ pub struct MemoryManager;
|
||||
impl MemoryManager {
|
||||
pub fn new() -> Self {
|
||||
unsafe {
|
||||
LST_init_head(FREE_BUFF_QUEUE.as_mut_ptr());
|
||||
LST_init_head(LOCAL_FREE_BUF_QUEUE.as_mut_ptr());
|
||||
LinkedListNode::init_head(FREE_BUFF_QUEUE.as_mut_ptr());
|
||||
LinkedListNode::init_head(LOCAL_FREE_BUF_QUEUE.as_mut_ptr());
|
||||
|
||||
TL_MEM_MANAGER_TABLE = MaybeUninit::new(MemManagerTable {
|
||||
spare_ble_buffer: BLE_SPARE_EVT_BUF.as_ptr().cast(),
|
||||
@ -40,7 +40,7 @@ impl MemoryManager {
|
||||
unsafe {
|
||||
let list_node = evt.cast();
|
||||
|
||||
LST_insert_tail(LOCAL_FREE_BUF_QUEUE.as_mut_ptr(), list_node);
|
||||
LinkedListNode::remove_tail(LOCAL_FREE_BUF_QUEUE.as_mut_ptr(), list_node);
|
||||
}
|
||||
|
||||
let channel_is_busy = ipcc.c1_is_active_flag(channels::cpu1::IPCC_MM_RELEASE_BUFFER_CHANNEL);
|
||||
@ -59,9 +59,9 @@ impl MemoryManager {
|
||||
let mut node_ptr = core::ptr::null_mut();
|
||||
let node_ptr_ptr: *mut _ = &mut node_ptr;
|
||||
|
||||
while !LST_is_empty(LOCAL_FREE_BUF_QUEUE.as_mut_ptr()) {
|
||||
LST_remove_head(LOCAL_FREE_BUF_QUEUE.as_mut_ptr(), node_ptr_ptr);
|
||||
LST_insert_tail(
|
||||
while !LinkedListNode::is_empty(LOCAL_FREE_BUF_QUEUE.as_mut_ptr()) {
|
||||
LinkedListNode::remove_head(LOCAL_FREE_BUF_QUEUE.as_mut_ptr(), node_ptr_ptr);
|
||||
LinkedListNode::insert_tail(
|
||||
(*(*TL_REF_TABLE.as_ptr()).mem_manager_table).pevt_free_buffer_queue,
|
||||
node_ptr,
|
||||
);
|
||||
|
@ -5,7 +5,7 @@ use embassy_futures::block_on;
|
||||
use super::cmd::{CmdPacket, CmdSerial};
|
||||
use super::consts::TlPacketType;
|
||||
use super::evt::{CcEvt, EvtBox, EvtSerial};
|
||||
use super::unsafe_linked_list::{LST_init_head, LST_is_empty, LST_remove_head};
|
||||
use super::unsafe_linked_list::LinkedListNode;
|
||||
use super::{channels, SysTable, SYSTEM_EVT_QUEUE, SYS_CMD_BUF, TL_CHANNEL, TL_REF_TABLE, TL_SYS_TABLE};
|
||||
use crate::ipcc::Ipcc;
|
||||
|
||||
@ -14,7 +14,7 @@ pub struct Sys;
|
||||
impl Sys {
|
||||
pub(crate) fn new(ipcc: &mut Ipcc) -> Self {
|
||||
unsafe {
|
||||
LST_init_head(SYSTEM_EVT_QUEUE.as_mut_ptr());
|
||||
LinkedListNode::init_head(SYSTEM_EVT_QUEUE.as_mut_ptr());
|
||||
|
||||
TL_SYS_TABLE = MaybeUninit::new(SysTable {
|
||||
pcmd_buffer: SYS_CMD_BUF.as_mut_ptr(),
|
||||
@ -32,8 +32,8 @@ impl Sys {
|
||||
let mut node_ptr = core::ptr::null_mut();
|
||||
let node_ptr_ptr: *mut _ = &mut node_ptr;
|
||||
|
||||
while !LST_is_empty(SYSTEM_EVT_QUEUE.as_mut_ptr()) {
|
||||
LST_remove_head(SYSTEM_EVT_QUEUE.as_mut_ptr(), node_ptr_ptr);
|
||||
while !LinkedListNode::is_empty(SYSTEM_EVT_QUEUE.as_mut_ptr()) {
|
||||
LinkedListNode::remove_head(SYSTEM_EVT_QUEUE.as_mut_ptr(), node_ptr_ptr);
|
||||
|
||||
let event = node_ptr.cast();
|
||||
let event = EvtBox::new(event);
|
||||
|
@ -29,95 +29,97 @@ impl Default for LinkedListNode {
|
||||
}
|
||||
}
|
||||
|
||||
pub unsafe fn LST_init_head(mut listHead: *mut LinkedListNode) {
|
||||
(*listHead).next = listHead;
|
||||
(*listHead).prev = listHead;
|
||||
}
|
||||
|
||||
pub unsafe fn LST_is_empty(mut listHead: *mut LinkedListNode) -> bool {
|
||||
interrupt::free(|_| ((*listHead).next) == listHead)
|
||||
}
|
||||
|
||||
pub unsafe fn LST_insert_head(mut listHead: *mut LinkedListNode, mut node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = (*listHead).next;
|
||||
(*node).prev = listHead;
|
||||
(*listHead).next = node;
|
||||
(*(*node).next).prev = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_insert_tail(mut listHead: *mut LinkedListNode, mut node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = listHead;
|
||||
(*node).prev = (*listHead).prev;
|
||||
(*listHead).prev = node;
|
||||
(*(*node).prev).next = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_remove_node(mut node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*(*node).prev).next = (*node).next;
|
||||
(*(*node).next).prev = (*node).prev;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_remove_head(mut listHead: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*listHead).next;
|
||||
LST_remove_node((*listHead).next);
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_remove_tail(mut listHead: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*listHead).prev;
|
||||
LST_remove_node((*listHead).prev);
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_insert_node_after(mut node: *mut LinkedListNode, mut ref_node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = (*ref_node).next;
|
||||
(*node).prev = ref_node;
|
||||
(*ref_node).next = node;
|
||||
(*(*node).next).prev = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_insert_node_before(mut node: *mut LinkedListNode, mut ref_node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = ref_node;
|
||||
(*node).prev = (*ref_node).prev;
|
||||
(*ref_node).prev = node;
|
||||
(*(*node).prev).next = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_get_size(mut listHead: *mut LinkedListNode) -> usize {
|
||||
interrupt::free(|_| {
|
||||
let mut size = 0;
|
||||
let mut temp: *mut LinkedListNode = core::ptr::null_mut::<LinkedListNode>();
|
||||
|
||||
temp = (*listHead).next;
|
||||
while temp != listHead {
|
||||
size += 1;
|
||||
temp = (*temp).next
|
||||
}
|
||||
|
||||
size
|
||||
})
|
||||
}
|
||||
|
||||
pub unsafe fn LST_get_next_node(mut ref_node: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*ref_node).next;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn LST_get_prev_node(mut ref_node: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*ref_node).prev;
|
||||
});
|
||||
impl LinkedListNode {
|
||||
pub unsafe fn init_head(mut listHead: *mut LinkedListNode) {
|
||||
(*listHead).next = listHead;
|
||||
(*listHead).prev = listHead;
|
||||
}
|
||||
|
||||
pub unsafe fn is_empty(mut listHead: *mut LinkedListNode) -> bool {
|
||||
interrupt::free(|_| ((*listHead).next) == listHead)
|
||||
}
|
||||
|
||||
pub unsafe fn insert_head(mut listHead: *mut LinkedListNode, mut node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = (*listHead).next;
|
||||
(*node).prev = listHead;
|
||||
(*listHead).next = node;
|
||||
(*(*node).next).prev = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn insert_tail(mut listHead: *mut LinkedListNode, mut node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = listHead;
|
||||
(*node).prev = (*listHead).prev;
|
||||
(*listHead).prev = node;
|
||||
(*(*node).prev).next = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn remove_node(mut node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*(*node).prev).next = (*node).next;
|
||||
(*(*node).next).prev = (*node).prev;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn remove_head(mut listHead: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*listHead).next;
|
||||
Self::remove_node((*listHead).next);
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn remove_tail(mut listHead: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*listHead).prev;
|
||||
Self::remove_node((*listHead).prev);
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn insert_node_after(mut node: *mut LinkedListNode, mut ref_node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = (*ref_node).next;
|
||||
(*node).prev = ref_node;
|
||||
(*ref_node).next = node;
|
||||
(*(*node).next).prev = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn insert_node_before(mut node: *mut LinkedListNode, mut ref_node: *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
(*node).next = ref_node;
|
||||
(*node).prev = (*ref_node).prev;
|
||||
(*ref_node).prev = node;
|
||||
(*(*node).prev).next = node;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn get_size(mut listHead: *mut LinkedListNode) -> usize {
|
||||
interrupt::free(|_| {
|
||||
let mut size = 0;
|
||||
let mut temp: *mut LinkedListNode = core::ptr::null_mut::<LinkedListNode>();
|
||||
|
||||
temp = (*listHead).next;
|
||||
while temp != listHead {
|
||||
size += 1;
|
||||
temp = (*temp).next
|
||||
}
|
||||
|
||||
size
|
||||
})
|
||||
}
|
||||
|
||||
pub unsafe fn get_next_node(mut ref_node: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*ref_node).next;
|
||||
});
|
||||
}
|
||||
|
||||
pub unsafe fn get_prev_node(mut ref_node: *mut LinkedListNode, mut node: *mut *mut LinkedListNode) {
|
||||
interrupt::free(|_| {
|
||||
*node = (*ref_node).prev;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user