aboutsummaryrefslogtreecommitdiff
path: root/inc/lib/queue.h
blob: b0d22ef88eb1d86a01c717abfea7f715635b2028 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Copyright (c) 2023, Marvin Borner <dev@marvinborner.de>
// SPDX-License-Identifier: MIT

#ifndef SHARING_QUEUE_H
#define SHARING_QUEUE_H

struct queue_node {
	void *data;
	struct queue_node *next;
};

struct queue {
	struct queue_node *head;
	struct queue_node *tail;
};

struct queue *queue_new(void);
void queue_free(struct queue *queue);
void queue_push(struct queue *queue, void *data);
void *queue_pop(struct queue *queue);
int queue_empty(struct queue *queue);

#endif