消息队列控制块结构体
2026/4/26大约 1 分钟结构体同步机制数据结构
消息队列结构体
📚 本节导读
用途:消息队列控制块结构
来源:kernel/include/os_dummy.h:198
一、结构体定义
struct dummy_msgqueue
{
void *msg_pool_dummy; /* Point to message pool */
dummy_mq_msg_t *msg_queue_head_dummy; /* Point to first entry of message queue */
dummy_mq_msg_t *msg_queue_tail_dummy; /* Point to last entry of message queue */
dummy_mq_msg_t *msg_queue_free_dummy; /* Point to first entry of free message resource */
os_list_node_t send_task_list_head_dummy; /* Sender tasks blocked on this messages queue */
os_list_node_t recv_task_list_head_dummy; /* Receiver tasks blocked on this messages queue */
os_list_node_t resource_node_dummy; /* Node in resource list */
os_size_t max_msg_size_dummy; /* Max message size of each message */
uint16_t queue_depth_dummy; /* Maximum number of messages that can be put into message queue */
uint16_t used_msgs_dummy; /* Number of messages queued */
uint8_t object_inited_dummy; /* Indicates whether object is inited or deinited, value is
OS_KOBJ_INITED or OS_KOBJ_DEINITED */
uint8_t object_alloc_type_dummy; /* Indicates whether object is allocated dynamically or statically,
value is OS_ALLOC_TYPE_STATIC or OS_KOBJ_ALLOC_TYPE_DYNAMIC */
uint8_t wake_type_dummy; /* The type to wake up blocking tasks, value is OS_MQ_WAKE_TYPE_PRIO
or OS_MQ_WAKE_TYPE_FIFO */
char name_dummy[OS_NAME_MAX + 1]; /* Message queue name */
os_spinlock_t lock_dummy; /* Spin lock used under SMP */
};
typedef struct dummy_msgqueue dummy_msgqueue_t;二、消息节点结构体
struct dummy_mq_msg
{
struct dummy_mq_msg *next_dummy; /* Point to the next message */
os_size_t msg_len_dummy; /* message size */
};
typedef struct dummy_mq_msg dummy_mq_msg_t;
typedef struct dummy_mq_msg dummy_mq_msg_hdr_t;