Files
quark-kernel/include/queue.h
2022-08-17 01:41:19 -05:00

61 lines
1.0 KiB
C

#pragma once
struct queue_node_t;
/**
* @brief A last-in-first-out queue.
*
*/
struct queue_t
{
/**
* @brief The number of objects stored in this queue.
*
*/
unsigned int count;
/**
* @brief A link to the first node stored in this queue.
*
*/
struct queue_node_t *first;
/**
* @brief A link to the last node stored in this queue.
*
*/
struct queue_node_t *last;
};
/**
* @brief Initializes a queue structure.
*
* @param queue
*/
void queue_construct(struct queue_t *queue);
/**
* @brief Inserts a new item at the end of the queue.
*
* @param queue
* @param ptr
*/
void queue_insert(struct queue_t *queue, void *ptr);
/**
* @brief Removes the next item from the queue and returns it.
*
* @param queue
* @return void*
*/
void *queue_get_next(struct queue_t *queue);
/**
* @brief Returns the next item on the queue without removing it.
*
* @param queue
* @return void*
*/
void *queue_peek(struct queue_t *queue);