/src/systemd/src/basic/prioq.h
Line | Count | Source |
1 | | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
2 | | #pragma once |
3 | | |
4 | | #include "forward.h" |
5 | | |
6 | | typedef struct Prioq Prioq; |
7 | | |
8 | 26.1M | #define PRIOQ_IDX_NULL (UINT_MAX) |
9 | | |
10 | | Prioq* prioq_new(compare_func_t compare); |
11 | | Prioq* prioq_free(Prioq *q); |
12 | | DEFINE_TRIVIAL_CLEANUP_FUNC(Prioq*, prioq_free); |
13 | | int prioq_ensure_allocated(Prioq **q, compare_func_t compare_func); |
14 | | |
15 | | int prioq_put(Prioq *q, void *data, unsigned *idx); |
16 | | int _prioq_ensure_put(Prioq **q, compare_func_t compare_func, void *data, unsigned *idx); |
17 | | #define prioq_ensure_put(q, compare_func, data, idx) \ |
18 | 1.70k | ({ \ |
19 | 1.70k | int (*_func_)(const typeof((data)[0])*, const typeof((data)[0])*) = compare_func; \ |
20 | 1.70k | _prioq_ensure_put(q, (compare_func_t) _func_, data, idx); \ |
21 | 1.70k | }) |
22 | | |
23 | | int prioq_remove(Prioq *q, void *data, unsigned *idx); |
24 | | void prioq_reshuffle(Prioq *q, void *data, unsigned *idx); |
25 | | |
26 | | void* prioq_peek_by_index(Prioq *q, unsigned idx) _pure_; |
27 | 35.1M | static inline void *prioq_peek(Prioq *q) { |
28 | 35.1M | return prioq_peek_by_index(q, 0); |
29 | 35.1M | } Unexecuted instantiation: udev-manager.c:prioq_peek Unexecuted instantiation: journald-context.c:prioq_peek journald-manager.c:prioq_peek Line | Count | Source | 27 | 15.0k | static inline void *prioq_peek(Prioq *q) { | 28 | 15.0k | return prioq_peek_by_index(q, 0); | 29 | 15.0k | } |
journald-sync.c:prioq_peek Line | Count | Source | 27 | 4.61k | static inline void *prioq_peek(Prioq *q) { | 28 | 4.61k | return prioq_peek_by_index(q, 0); | 29 | 4.61k | } |
Unexecuted instantiation: resolved-dns-cache.c:prioq_peek dhcp-relay-upstream.c:prioq_peek Line | Count | Source | 27 | 277 | static inline void *prioq_peek(Prioq *q) { | 28 | 277 | return prioq_peek_by_index(q, 0); | 29 | 277 | } |
Unexecuted instantiation: sd-dhcp-relay.c:prioq_peek Line | Count | Source | 27 | 802 | static inline void *prioq_peek(Prioq *q) { | 28 | 802 | return prioq_peek_by_index(q, 0); | 29 | 802 | } |
Unexecuted instantiation: lldp-neighbor.c:prioq_peek Unexecuted instantiation: prioq.c:prioq_peek Unexecuted instantiation: journal-file.c:prioq_peek Line | Count | Source | 27 | 9.07k | static inline void *prioq_peek(Prioq *q) { | 28 | 9.07k | return prioq_peek_by_index(q, 0); | 29 | 9.07k | } |
Line | Count | Source | 27 | 35.1M | static inline void *prioq_peek(Prioq *q) { | 28 | 35.1M | return prioq_peek_by_index(q, 0); | 29 | 35.1M | } |
Unexecuted instantiation: bus-slot.c:prioq_peek Unexecuted instantiation: sd-bus.c:prioq_peek Unexecuted instantiation: netlink-slot.c:prioq_peek Unexecuted instantiation: sd-netlink.c:prioq_peek Unexecuted instantiation: job.c:prioq_peek Unexecuted instantiation: manager.c:prioq_peek |
30 | | void* prioq_pop(Prioq *q); |
31 | | |
32 | | #define PRIOQ_FOREACH_ITEM(q, p) \ |
33 | | for (unsigned _i = 0; (p = prioq_peek_by_index(q, _i)); _i++) |
34 | | |
35 | | unsigned prioq_size(Prioq *q) _pure_; |
36 | | bool prioq_isempty(Prioq *q) _pure_; |