]> arthur.barton.de Git - netatalk.git/blob - include/atalk/queue.h
Writing metadata xattr on directories with sticky bit set, FR#94
[netatalk.git] / include / atalk / queue.h
1 /*
2    Copyright (c) 2010 Frank Lahm
3  
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; either version 2 of the License, or
7    (at your option) any later version.
8  
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13  
14    You should have received a copy of the GNU General Public License
15    along with this program; if not, write to the Free Software
16    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 */
18
19 #ifndef ATALK_QUEUE_H
20 #define ATALK_QUEUE_H
21
22 #ifdef HAVE_CONFIG_H
23 #include "config.h"
24 #endif /* HAVE_CONFIG_H */
25
26 typedef struct qnode {
27     struct qnode *prev;
28     struct qnode *next;
29     void *data;
30 } qnode_t;
31
32 typedef qnode_t q_t;
33
34 extern q_t *queue_init(void);
35 extern void queue_destroy(q_t *q, void (*callback)(void *));
36 #define queue_free(q) queue_destroy((q), free)
37 extern qnode_t *enqueue(q_t *q, void *data);
38 extern qnode_t *prequeue(q_t *q, void *data);
39 extern void *dequeue(q_t *q);
40
41 #endif  /* ATALK_QUEUE_H */