AKOS  v1.0.0
Documentation
Loading...
Searching...
No Matches
message.c File Reference

Message pool and queue implementation. More...

#include "message.h"
#include "memory.h"
#include "core.h"
#include <stdint.h>
#include <string.h>
Include dependency graph for message.c:

Go to the source code of this file.

Functions

void akos_message_init (void)
 Initialize message subsystem.
void akos_message_free (msg_t *p_msg)
 Free a message and return resources to pools.
void akos_message_queue_init (msg_queue_t *p_msg_q, uint8_t size)
 Initialize a message queue.
void akos_message_queue_put_dynamic (msg_queue_t *p_msg_q, int32_t sig, void *p_content, uint8_t size)
 Enqueue dynamic message and copy payload.
void akos_message_queue_put_pure (msg_queue_t *p_msg_q, int32_t sig)
 Enqueue pure message (signal only).
msg_t * akos_message_queue_get (msg_queue_t *p_msg_q)
 Dequeue next message from queue.
void * akos_message_get_dynamic_data (msg_t *p_msg, uint8_t *p_msg_size)
 Access payload pointer and payload size from dynamic message.
msg_t * akos_message_queue_get_pure (msg_queue_t *p_msg_q)
 Dequeue next pure message from queue.
int32_t akos_message_get_pure_data (msg_t *p_msg)
 Read signal value from pure message.

Detailed Description

Message pool and queue implementation.

Author
Snoopy3921 - AK Foundation
Date
2026/05/08

Definition in file message.c.

Function Documentation

◆ akos_message_free()

void akos_message_free ( msg_t * p_msg)

Free a message and return resources to pools.

Return message to message pool.

Parameters
p_msgMessage object to release.

Definition at line 62 of file message.c.

◆ akos_message_get_dynamic_data()

void * akos_message_get_dynamic_data ( msg_t * p_msg,
uint8_t * p_msg_size )

Access payload pointer and payload size from dynamic message.

Get payload data from dynamic message.

Parameters
p_msgMessage object.
p_msg_sizeOutput payload size in bytes.
Returns
Payload pointer.

Definition at line 253 of file message.c.

◆ akos_message_get_pure_data()

int32_t akos_message_get_pure_data ( msg_t * p_msg)

Read signal value from pure message.

Get signal field from pure message.

Parameters
p_msgMessage object.
Returns
Signal value.

Definition at line 299 of file message.c.

◆ akos_message_init()

void akos_message_init ( void )

Initialize message subsystem.

Initialize global message pool.

Definition at line 53 of file message.c.

◆ akos_message_queue_get()

msg_t * akos_message_queue_get ( msg_queue_t * p_msg_q)

Dequeue next message from queue.

Dequeue next message.

Parameters
p_msg_qSource queue.
Returns
Message pointer, or NULL when empty.

Definition at line 218 of file message.c.

◆ akos_message_queue_get_pure()

msg_t * akos_message_queue_get_pure ( msg_queue_t * p_msg_q)

Dequeue next pure message from queue.

Dequeue next pure message.

Parameters
p_msg_qSource queue.
Returns
Message pointer, or NULL when empty.

Definition at line 265 of file message.c.

◆ akos_message_queue_init()

void akos_message_queue_init ( msg_queue_t * p_msg_q,
uint8_t size )

Initialize a message queue.

Initialize message queue.

Parameters
p_msg_qQueue object.
sizeMaximum queue length.

Definition at line 82 of file message.c.

◆ akos_message_queue_put_dynamic()

void akos_message_queue_put_dynamic ( msg_queue_t * p_msg_q,
int32_t sig,
void * p_content,
uint8_t size )

Enqueue dynamic message and copy payload.

Enqueue dynamic message with payload copy.

Parameters
p_msg_qDestination queue.
sigSignal value.
p_contentPayload source pointer.
sizePayload size in bytes.

Definition at line 98 of file message.c.

◆ akos_message_queue_put_pure()

void akos_message_queue_put_pure ( msg_queue_t * p_msg_q,
int32_t sig )

Enqueue pure message (signal only).

Enqueue pure signal message.

Parameters
p_msg_qDestination queue.
sigSignal value.

Definition at line 165 of file message.c.