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

Message object and message queue APIs. More...

#include "config.h"
#include <stdint.h>
#include <stdbool.h>
Include dependency graph for message.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  msg_t
 Message object stored in queues. More...
struct  msg_queue_t
 FIFO queue metadata for thread messaging. More...

Typedefs

typedef struct msg_pool msg_pool_t
 Internal message-pool type.

Enumerations

enum  msg_type_t { MSG_TYPE_PURE = 0 , MSG_TYPE_DYNAMIC }
 Message payload model. More...

Functions

void akos_message_init (void)
 Initialize global message pool.
void akos_message_free (msg_t *p_msg)
 Return message to message pool.
void akos_message_queue_init (msg_queue_t *p_msg_q, uint8_t size)
 Initialize 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 with payload copy.
void akos_message_queue_put_pure (msg_queue_t *p_msg_q, int32_t sig)
 Enqueue pure signal message.
msg_t * akos_message_queue_get (msg_queue_t *p_msg_q)
 Dequeue next message.
void * akos_message_get_dynamic_data (msg_t *p_msg, uint8_t *p_msg_size)
 Get payload data from dynamic message.
msg_t * akos_message_queue_get_pure (msg_queue_t *p_msg_q)
 Dequeue next pure message.
int32_t akos_message_get_pure_data (msg_t *p_msg)
 Get signal field from pure message.

Detailed Description

Message object and message queue APIs.

Author
Snoopy3921 - AK Foundation
Date
2026/05/08

Definition in file message.h.

Typedef Documentation

◆ msg_pool_t

typedef struct msg_pool msg_pool_t

Internal message-pool type.

Definition at line 31 of file message.h.

Enumeration Type Documentation

◆ msg_type_t

enum msg_type_t

Message payload model.

Enumerator
MSG_TYPE_PURE 

Signal-only message, no payload buffer.

MSG_TYPE_DYNAMIC 

Message with copied payload buffer.

Definition at line 37 of file message.h.

Function Documentation

◆ akos_message_free()

void akos_message_free ( msg_t * p_msg)

Return message to message pool.

Parameters
p_msgMessage to free.

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 )

Get payload data from dynamic message.

Parameters
p_msgMessage pointer.
p_msg_sizeOutput payload size.
Returns
Payload pointer.

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)

Get signal field from pure message.

Parameters
p_msgMessage pointer.
Returns
Signal value.

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 global message pool.

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.

Parameters
p_msg_qSource queue.
Returns
Message pointer, or NULL if queue is empty.

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.

Parameters
p_msg_qSource queue.
Returns
Message pointer, or NULL if queue is empty.

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 message queue.

Parameters
p_msg_qQueue object.
sizeMaximum queue depth.

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 with payload copy.

Parameters
p_msg_qDestination queue.
sigMessage signal.
p_contentPayload pointer.
sizePayload size in bytes.

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 signal message.

Parameters
p_msg_qDestination queue.
sigMessage signal.

Enqueue pure signal message.

Parameters
p_msg_qDestination queue.
sigSignal value.

Definition at line 165 of file message.c.