# KE_QUEUE
[KERNEL]

Queue management module. More...

Collaboration diagram for KE_QUEUE:

## Functions
struct co_list_hdr * | ke_queue_extract (struct co_list *const queue, bool(*func)(struct co_list_hdr const *elmt, uint32_t arg), uint32_t arg)
| Extracts an element matching a given algorithm.
__INLINE void | ke_queue_push (struct co_list *const queue, struct co_list_hdr *const element)
| Push an element into a kernel queue.
__INLINE struct co_list_hdr * | ke_queue_pop (struct co_list *const queue)
| Pop an element from a kernel queue.

## Detailed Description

Queue management module.

This module implements the functions used for managing message queues. These functions must not be called under IRQ!

## Function Documentation

struct co_list_hdr * ke_queue_extract | ( | struct co_list *const | queue,
|  | bool(*)(struct co_list_hdr const *elmt, uint32_t arg) | func,
|  | uint32_t | arg |
| ) |  |  | `[read]`

Extracts an element matching a given algorithm.

Parameters:

  `[in]` | queue | Pointer to the queue.
  `[in]` | func | Matching function.
  `[in]` | arg | Match argument.

Returns:
  Pointer to the element found and removed (NULL otherwise).

Referenced by ke_task_saved_update().

__INLINE struct co_list_hdr* ke_queue_pop | ( | struct co_list *const | queue | ) | `[read]`

Pop an element from a kernel queue.

Parameters:

  `[in]` | queue | Pointer to the queue where the element is popped from

Returns:
  The pointer to the element

Definition at line 68 of file ke_queue.h.

References co_list_pop_front().

__INLINE void ke_queue_push | ( | struct co_list *const | queue,
|  | struct co_list_hdr *const | element |
| ) |  |  |

Push an element into a kernel queue.

Parameters:

  `[in]` | queue | Pointer to the queue where the element is pushed
  `[in]` | element | Pointer to the element to be pushed

Definition at line 53 of file ke_queue.h.

References co_list_push_back().

Referenced by ke_task_saved_update().