diff options
Diffstat (limited to 'tacplus-daemon/queue.h')
-rw-r--r-- | tacplus-daemon/queue.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tacplus-daemon/queue.h b/tacplus-daemon/queue.h new file mode 100644 index 0000000..6220912 --- /dev/null +++ b/tacplus-daemon/queue.h @@ -0,0 +1,38 @@ +/* + TACACS+ D-Bus Daemon code + + Copyright (c) 2018 AT&T Intellectual Property. + Copyright (c) 2015-2016 Brocade Communications Systems, Inc. + + SPDX-License-Identifier: GPL-2.0-only +*/ + +#ifndef QUEUE_H +#define QUEUE_H + +#include <syslog.h> +#include <stdlib.h> +#include <stdint.h> +#include <stdbool.h> +#include <pthread.h> + +typedef struct queueNode { + void *element; + struct queueNode *next; +} Node; + +typedef struct queue { + Node *front, *rear; + pthread_mutex_t lock; + pthread_cond_t empty; + void (*free_element)(void *); +} Queue; + +extern Queue * create_queue(void (*)(void *)); +extern void enqueue(Queue *q, void *); +extern void re_enqueue(Queue *q, void *e); +extern int is_queue_empty(Queue *); +extern void * dequeue(Queue *); +extern void destroy_queue(Queue **); + +#endif /* QUEUE_H */ |