summaryrefslogtreecommitdiff
path: root/tacplus-daemon/queue.h
diff options
context:
space:
mode:
Diffstat (limited to 'tacplus-daemon/queue.h')
-rw-r--r--tacplus-daemon/queue.h38
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 */