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

Doubly-linked list types and APIs for scheduler internals. More...

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

Go to the source code of this file.

Classes

struct  list_item_t
 Doubly-linked list node used by scheduler/timer lists. More...
struct  list_t
 Doubly-linked list metadata with end sentinel. More...

Macros

#define list_item_set_owner(p_list_item, p_owner)
#define list_item_get_owner(p_list_item)
#define list_item_set_value(p_list_item, val)
#define list_item_get_value(p_list_item)
#define list_item_get_list_contain(p_list_item)
#define list_get_head_item_value(p_list)
#define list_get_head_item(p_list)
#define list_get_owner_of_head_item(p_list)
#define list_get_end_item(p_list)
#define list_get_num_item(p_list)
#define list_is_empty(p_list)

Functions

void * akos_list_get_owner_of_next_item (list_t *const p_list)
 Get owner of next item and advance list cursor.
void akos_list_init (list_t *const p_list)
 Initialize list metadata and sentinel.
void akos_list_item_init (list_item_t *const p_list_item)
 Initialize list item linkage and ownership metadata.
list_item_t * akos_list_item_get_next (list_item_t *p_list_item)
 Get next list item.
list_item_t * akos_list_item_get_prev (list_item_t *p_list_item)
 Get previous list item.
void akos_list_insert_end (list_t *const p_list, list_item_t *const p_list_item)
 Insert item at list tail.
void akos_list_insert (list_t *const p_list, list_item_t *const p_list_item)
 Insert item in ascending order by list_item::value.
uint16_t akos_list_remove (list_item_t *const p_list_item)
 Remove item from containing list.

Detailed Description

Doubly-linked list types and APIs for scheduler internals.

Author
Snoopy3921 - AK Foundation
Date
2026/05/08

Definition in file list.h.

Macro Definition Documentation

◆ list_get_end_item

#define list_get_end_item ( p_list)
Value:
((p_list)->end_item)

Definition at line 62 of file list.h.

◆ list_get_head_item

#define list_get_head_item ( p_list)
Value:
(((p_list)->end_item).next_ptr)

Definition at line 60 of file list.h.

◆ list_get_head_item_value

#define list_get_head_item_value ( p_list)
Value:
((((p_list)->end_item).next_ptr)->value)

Definition at line 59 of file list.h.

◆ list_get_num_item

#define list_get_num_item ( p_list)
Value:
(((p_list)->num_of_items))

Definition at line 63 of file list.h.

◆ list_get_owner_of_head_item

#define list_get_owner_of_head_item ( p_list)
Value:
(list_item_get_owner(((p_list)->end_item).next_ptr))

Definition at line 61 of file list.h.

◆ list_is_empty

#define list_is_empty ( p_list)
Value:
(((p_list)->num_of_items == (uint8_t)0) ? OS_TRUE : OS_FALSE)

Definition at line 64 of file list.h.

◆ list_item_get_list_contain

#define list_item_get_list_contain ( p_list_item)
Value:
((p_list_item)->list_ptr)

Definition at line 57 of file list.h.

◆ list_item_get_owner

#define list_item_get_owner ( p_list_item)
Value:
((p_list_item)->owner_ptr)

Definition at line 54 of file list.h.

◆ list_item_get_value

#define list_item_get_value ( p_list_item)
Value:
((p_list_item)->value)

Definition at line 56 of file list.h.

◆ list_item_set_owner

#define list_item_set_owner ( p_list_item,
p_owner )
Value:
((p_list_item)->owner_ptr = (void *)(p_owner))

Definition at line 53 of file list.h.

◆ list_item_set_value

#define list_item_set_value ( p_list_item,
val )
Value:
((p_list_item)->value = (uint32_t)(val))

Definition at line 55 of file list.h.

Function Documentation

◆ akos_list_get_owner_of_next_item()

void * akos_list_get_owner_of_next_item ( list_t *const p_list)

Get owner of next item and advance list cursor.

Parameters
p_listList pointer.
Returns
Owner pointer of next item.

Get owner of next item and advance list cursor.

Parameters
p_listList object.
Returns
Owner pointer of next item.

Definition at line 169 of file list.c.

◆ akos_list_init()

void akos_list_init ( list_t *const p_list)

Initialize list metadata and sentinel.

Parameters
p_listList pointer.

Initialize list metadata and sentinel.

Parameters
p_listList object.

Definition at line 20 of file list.c.

◆ akos_list_insert()

void akos_list_insert ( list_t *const p_list,
list_item_t *const p_list_item )

Insert item in ascending order by list_item::value.

Parameters
p_listList pointer.
p_list_itemItem pointer.

Insert item in ascending order by list_item::value.

Parameters
p_listDestination list.
p_list_itemItem to insert.

Definition at line 104 of file list.c.

◆ akos_list_insert_end()

void akos_list_insert_end ( list_t *const p_list,
list_item_t *const p_list_item )

Insert item at list tail.

Parameters
p_listList pointer.
p_list_itemItem pointer.

Insert item at list tail.

Parameters
p_listDestination list.
p_list_itemItem to insert.

Definition at line 45 of file list.c.

◆ akos_list_item_get_next()

list_item_t * akos_list_item_get_next ( list_item_t * p_list_item)

Get next list item.

Parameters
p_list_itemCurrent item pointer.
Returns
Next item pointer.

Get next list item.

Parameters
p_list_itemCurrent list item.
Returns
Next item in list.

Definition at line 79 of file list.c.

◆ akos_list_item_get_prev()

list_item_t * akos_list_item_get_prev ( list_item_t * p_list_item)

Get previous list item.

Parameters
p_list_itemCurrent item pointer.
Returns
Previous item pointer.

Get previous list item.

Parameters
p_list_itemCurrent list item.
Returns
Previous item in list.

Definition at line 91 of file list.c.

◆ akos_list_item_init()

void akos_list_item_init ( list_item_t *const p_list_item)

Initialize list item linkage and ownership metadata.

Parameters
p_list_itemList item pointer.

Initialize list item linkage and ownership metadata.

Parameters
p_list_itemList item.

Definition at line 35 of file list.c.

◆ akos_list_remove()

uint16_t akos_list_remove ( list_item_t *const p_list_item)

Remove item from containing list.

Parameters
p_list_itemItem pointer.
Returns
Remaining number of items in the list after removal.

Remove item from containing list.

Parameters
p_list_itemItem to remove.
Returns
Remaining number of items in the list.

Definition at line 141 of file list.c.