Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
vendor
nginx-1.4.2
src
core
ngx_queue.h
Go to the documentation of this file.
1
2
/*
3
* Copyright (C) Igor Sysoev
4
* Copyright (C) Nginx, Inc.
5
*/
6
7
8
#include <
ngx_config.h
>
9
#include <
ngx_core.h
>
10
11
12
#ifndef _NGX_QUEUE_H_INCLUDED_
13
#define _NGX_QUEUE_H_INCLUDED_
14
15
16
typedef
struct
ngx_queue_s
ngx_queue_t
;
17
18
struct
ngx_queue_s
{
19
ngx_queue_t
*
prev
;
20
ngx_queue_t
*
next
;
21
};
22
23
24
#define ngx_queue_init(q) \
25
(q)->prev = q; \
26
(q)->next = q
27
28
29
#define ngx_queue_empty(h) \
30
(h == (h)->prev)
31
32
33
#define ngx_queue_insert_head(h, x) \
34
(x)->next = (h)->next; \
35
(x)->next->prev = x; \
36
(x)->prev = h; \
37
(h)->next = x
38
39
40
#define ngx_queue_insert_after ngx_queue_insert_head
41
42
43
#define ngx_queue_insert_tail(h, x) \
44
(x)->prev = (h)->prev; \
45
(x)->prev->next = x; \
46
(x)->next = h; \
47
(h)->prev = x
48
49
50
#define ngx_queue_head(h) \
51
(h)->next
52
53
54
#define ngx_queue_last(h) \
55
(h)->prev
56
57
58
#define ngx_queue_sentinel(h) \
59
(h)
60
61
62
#define ngx_queue_next(q) \
63
(q)->next
64
65
66
#define ngx_queue_prev(q) \
67
(q)->prev
68
69
70
#if (NGX_DEBUG)
71
72
#define ngx_queue_remove(x) \
73
(x)->next->prev = (x)->prev; \
74
(x)->prev->next = (x)->next; \
75
(x)->prev = NULL; \
76
(x)->next = NULL
77
78
#else
79
80
#define ngx_queue_remove(x) \
81
(x)->next->prev = (x)->prev; \
82
(x)->prev->next = (x)->next
83
84
#endif
85
86
87
#define ngx_queue_split(h, q, n) \
88
(n)->prev = (h)->prev; \
89
(n)->prev->next = n; \
90
(n)->next = q; \
91
(h)->prev = (q)->prev; \
92
(h)->prev->next = h; \
93
(q)->prev = n;
94
95
96
#define ngx_queue_add(h, n) \
97
(h)->prev->next = (n)->next; \
98
(n)->next->prev = (h)->prev; \
99
(h)->prev = (n)->prev; \
100
(h)->prev->next = h;
101
102
103
#define ngx_queue_data(q, type, link) \
104
(type *) ((u_char *) q - offsetof(type, link))
105
106
107
ngx_queue_t
*
ngx_queue_middle
(
ngx_queue_t
*queue);
108
void
ngx_queue_sort
(
ngx_queue_t
*queue,
109
ngx_int_t
(*cmp)(
const
ngx_queue_t
*,
const
ngx_queue_t
*));
110
111
112
#endif
/* _NGX_QUEUE_H_INCLUDED_ */
Generated on Sun Nov 10 2013 09:49:06 for Groonga 3.0.9 Source Code Document by
1.8.1.2