D-Bus
1.12.16
Main Page
Related Pages
Modules
Data Structures
Files
File List
dbus
dbus-list.h
1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2
/* dbus-list.h Generic linked list utility (internal to D-Bus implementation)
3
*
4
* Copyright (C) 2002, 2003 Red Hat, Inc.
5
*
6
* Licensed under the Academic Free License version 2.1
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with this program; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
*/
23
24
#ifndef DBUS_LIST_H
25
#define DBUS_LIST_H
26
27
#include <dbus/dbus-internals.h>
28
#include <dbus/dbus-memory.h>
29
#include <dbus/dbus-types.h>
30
#include <dbus/dbus-sysdeps.h>
31
32
DBUS_BEGIN_DECLS
33
34
struct
DBusList
35
{
36
DBusList
*
prev
;
37
DBusList
*
next
;
38
void
*
data
;
39
};
40
DBUS_PRIVATE_EXPORT
41
dbus_bool_t
_dbus_list_append
(
DBusList
**list,
42
void
*data);
43
DBUS_PRIVATE_EXPORT
44
dbus_bool_t
_dbus_list_prepend
(
DBusList
**list,
45
void
*data);
46
dbus_bool_t
_dbus_list_insert_before (
DBusList
**list,
47
DBusList
*before_this_link,
48
void
*data);
49
DBUS_PRIVATE_EXPORT
50
dbus_bool_t
_dbus_list_insert_after
(
DBusList
**list,
51
DBusList
*after_this_link,
52
void
*data);
53
DBUS_PRIVATE_EXPORT
54
void
_dbus_list_insert_before_link
(
DBusList
**list,
55
DBusList
*before_this_link,
56
DBusList
*link);
57
DBUS_PRIVATE_EXPORT
58
void
_dbus_list_insert_after_link
(
DBusList
**list,
59
DBusList
*after_this_link,
60
DBusList
*link);
61
DBUS_PRIVATE_EXPORT
62
dbus_bool_t
_dbus_list_remove
(
DBusList
**list,
63
void
*data);
64
DBUS_PRIVATE_EXPORT
65
dbus_bool_t
_dbus_list_remove_last
(
DBusList
**list,
66
void
*data);
67
DBUS_PRIVATE_EXPORT
68
void
_dbus_list_remove_link
(
DBusList
**list,
69
DBusList
*link);
70
DBUS_PRIVATE_EXPORT
71
DBusList
*
_dbus_list_find_last
(
DBusList
**list,
72
void
*data);
73
DBUS_PRIVATE_EXPORT
74
void
_dbus_list_clear
(
DBusList
**list);
75
DBUS_PRIVATE_EXPORT
76
DBusList
*
_dbus_list_get_first_link
(
DBusList
**list);
77
DBUS_PRIVATE_EXPORT
78
DBusList
*
_dbus_list_get_last_link
(
DBusList
**list);
79
DBUS_PRIVATE_EXPORT
80
void
*
_dbus_list_get_last
(
DBusList
**list);
81
DBUS_PRIVATE_EXPORT
82
void
*
_dbus_list_get_first
(
DBusList
**list);
83
DBUS_PRIVATE_EXPORT
84
void
*
_dbus_list_pop_first
(
DBusList
**list);
85
DBUS_PRIVATE_EXPORT
86
void
*
_dbus_list_pop_last
(
DBusList
**list);
87
DBUS_PRIVATE_EXPORT
88
DBusList
*
_dbus_list_pop_first_link
(
DBusList
**list);
89
DBUS_PRIVATE_EXPORT
90
dbus_bool_t
_dbus_list_copy
(
DBusList
**list,
91
DBusList
**dest);
92
DBUS_PRIVATE_EXPORT
93
int
_dbus_list_get_length
(
DBusList
**list);
94
DBUS_PRIVATE_EXPORT
95
DBusList
*
_dbus_list_alloc_link
(
void
*data);
96
DBUS_PRIVATE_EXPORT
97
void
_dbus_list_free_link
(
DBusList
*link);
98
DBUS_PRIVATE_EXPORT
99
void
_dbus_list_unlink
(
DBusList
**list,
100
DBusList
*link);
101
DBUS_PRIVATE_EXPORT
102
void
_dbus_list_append_link
(
DBusList
**list,
103
DBusList
*link);
104
DBUS_PRIVATE_EXPORT
105
void
_dbus_list_prepend_link
(
DBusList
**list,
106
DBusList
*link);
107
DBUS_PRIVATE_EXPORT
108
dbus_bool_t
_dbus_list_length_is_one
(
DBusList
**list);
109
110
111
DBUS_PRIVATE_EXPORT
112
void
_dbus_list_foreach
(
DBusList
**list,
113
DBusForeachFunction
function
,
114
void
*data);
115
116
#define _dbus_list_get_next_link(list, link) ((link)->next == *(list) ? NULL : (link)->next)
117
#define _dbus_list_get_prev_link(list, link) ((link) == *(list) ? NULL : (link)->prev)
118
119
/* if DBUS_ENABLE_STATS */
120
DBUS_PRIVATE_EXPORT
121
void
_dbus_list_get_stats (
dbus_uint32_t
*in_use_p,
122
dbus_uint32_t
*in_free_list_p,
123
dbus_uint32_t
*allocated_p);
124
125
DBUS_END_DECLS
126
127
#endif
/* DBUS_LIST_H */
Generated by
1.8.3.1