/usr/include/libnl3/netlink/list.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * netlink/list.h Netlink List Utilities |
3 | | * |
4 | | * This library is free software; you can redistribute it and/or |
5 | | * modify it under the terms of the GNU Lesser General Public |
6 | | * License as published by the Free Software Foundation version 2.1 |
7 | | * of the License. |
8 | | * |
9 | | * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch> |
10 | | */ |
11 | | |
12 | | #ifndef NETLINK_LIST_H_ |
13 | | #define NETLINK_LIST_H_ |
14 | | |
15 | | #include <stddef.h> |
16 | | |
17 | | struct nl_list_head |
18 | | { |
19 | | struct nl_list_head * next; |
20 | | struct nl_list_head * prev; |
21 | | }; |
22 | | |
23 | | static inline void NL_INIT_LIST_HEAD(struct nl_list_head *list) |
24 | 0 | { |
25 | 0 | list->next = list; |
26 | 0 | list->prev = list; |
27 | 0 | } Unexecuted instantiation: dhcp.c:NL_INIT_LIST_HEAD Unexecuted instantiation: error.c:NL_INIT_LIST_HEAD Unexecuted instantiation: init.c:NL_INIT_LIST_HEAD Unexecuted instantiation: manage.c:NL_INIT_LIST_HEAD Unexecuted instantiation: misc.c:NL_INIT_LIST_HEAD Unexecuted instantiation: mroute.c:NL_INIT_LIST_HEAD Unexecuted instantiation: mss.c:NL_INIT_LIST_HEAD Unexecuted instantiation: mtu.c:NL_INIT_LIST_HEAD Unexecuted instantiation: networking_sitnl.c:NL_INIT_LIST_HEAD Unexecuted instantiation: options.c:NL_INIT_LIST_HEAD Unexecuted instantiation: options_util.c:NL_INIT_LIST_HEAD Unexecuted instantiation: platform.c:NL_INIT_LIST_HEAD Unexecuted instantiation: pool.c:NL_INIT_LIST_HEAD Unexecuted instantiation: proxy.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ps.c:NL_INIT_LIST_HEAD Unexecuted instantiation: push.c:NL_INIT_LIST_HEAD Unexecuted instantiation: route.c:NL_INIT_LIST_HEAD Unexecuted instantiation: sig.c:NL_INIT_LIST_HEAD Unexecuted instantiation: socket.c:NL_INIT_LIST_HEAD Unexecuted instantiation: socks.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ssl.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ssl_ncp.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ssl_openssl.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ssl_pkt.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ssl_verify.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ssl_verify_openssl.c:NL_INIT_LIST_HEAD Unexecuted instantiation: tls_crypt.c:NL_INIT_LIST_HEAD Unexecuted instantiation: tun.c:NL_INIT_LIST_HEAD Unexecuted instantiation: tun_afunix.c:NL_INIT_LIST_HEAD Unexecuted instantiation: argv.c:NL_INIT_LIST_HEAD Unexecuted instantiation: auth_token.c:NL_INIT_LIST_HEAD Unexecuted instantiation: clinat.c:NL_INIT_LIST_HEAD Unexecuted instantiation: dco.c:NL_INIT_LIST_HEAD Unexecuted instantiation: dco_linux.c:NL_INIT_LIST_HEAD Unexecuted instantiation: dns.c:NL_INIT_LIST_HEAD Unexecuted instantiation: forward.c:NL_INIT_LIST_HEAD Unexecuted instantiation: helper.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ntlm.c:NL_INIT_LIST_HEAD Unexecuted instantiation: occ.c:NL_INIT_LIST_HEAD Unexecuted instantiation: ping.c:NL_INIT_LIST_HEAD Unexecuted instantiation: fuzz_verify_cert.c:NL_INIT_LIST_HEAD Unexecuted instantiation: fuzz_route.c:NL_INIT_LIST_HEAD Unexecuted instantiation: fuzz_packet_id.c:NL_INIT_LIST_HEAD Unexecuted instantiation: fuzz_mroute.c:NL_INIT_LIST_HEAD |
28 | | |
29 | | static inline void __nl_list_add(struct nl_list_head *obj, |
30 | | struct nl_list_head *prev, |
31 | | struct nl_list_head *next) |
32 | 0 | { |
33 | 0 | prev->next = obj; |
34 | 0 | obj->prev = prev; |
35 | 0 | next->prev = obj; |
36 | 0 | obj->next = next; |
37 | 0 | } Unexecuted instantiation: dhcp.c:__nl_list_add Unexecuted instantiation: error.c:__nl_list_add Unexecuted instantiation: init.c:__nl_list_add Unexecuted instantiation: manage.c:__nl_list_add Unexecuted instantiation: misc.c:__nl_list_add Unexecuted instantiation: mroute.c:__nl_list_add Unexecuted instantiation: mss.c:__nl_list_add Unexecuted instantiation: mtu.c:__nl_list_add Unexecuted instantiation: networking_sitnl.c:__nl_list_add Unexecuted instantiation: options.c:__nl_list_add Unexecuted instantiation: options_util.c:__nl_list_add Unexecuted instantiation: platform.c:__nl_list_add Unexecuted instantiation: pool.c:__nl_list_add Unexecuted instantiation: proxy.c:__nl_list_add Unexecuted instantiation: ps.c:__nl_list_add Unexecuted instantiation: push.c:__nl_list_add Unexecuted instantiation: route.c:__nl_list_add Unexecuted instantiation: sig.c:__nl_list_add Unexecuted instantiation: socket.c:__nl_list_add Unexecuted instantiation: socks.c:__nl_list_add Unexecuted instantiation: ssl.c:__nl_list_add Unexecuted instantiation: ssl_ncp.c:__nl_list_add Unexecuted instantiation: ssl_openssl.c:__nl_list_add Unexecuted instantiation: ssl_pkt.c:__nl_list_add Unexecuted instantiation: ssl_verify.c:__nl_list_add Unexecuted instantiation: ssl_verify_openssl.c:__nl_list_add Unexecuted instantiation: tls_crypt.c:__nl_list_add Unexecuted instantiation: tun.c:__nl_list_add Unexecuted instantiation: tun_afunix.c:__nl_list_add Unexecuted instantiation: argv.c:__nl_list_add Unexecuted instantiation: auth_token.c:__nl_list_add Unexecuted instantiation: clinat.c:__nl_list_add Unexecuted instantiation: dco.c:__nl_list_add Unexecuted instantiation: dco_linux.c:__nl_list_add Unexecuted instantiation: dns.c:__nl_list_add Unexecuted instantiation: forward.c:__nl_list_add Unexecuted instantiation: helper.c:__nl_list_add Unexecuted instantiation: ntlm.c:__nl_list_add Unexecuted instantiation: occ.c:__nl_list_add Unexecuted instantiation: ping.c:__nl_list_add Unexecuted instantiation: fuzz_verify_cert.c:__nl_list_add Unexecuted instantiation: fuzz_route.c:__nl_list_add Unexecuted instantiation: fuzz_packet_id.c:__nl_list_add Unexecuted instantiation: fuzz_mroute.c:__nl_list_add |
38 | | |
39 | | static inline void nl_list_add_tail(struct nl_list_head *obj, |
40 | | struct nl_list_head *head) |
41 | 0 | { |
42 | 0 | __nl_list_add(obj, head->prev, head); |
43 | 0 | } Unexecuted instantiation: dhcp.c:nl_list_add_tail Unexecuted instantiation: error.c:nl_list_add_tail Unexecuted instantiation: init.c:nl_list_add_tail Unexecuted instantiation: manage.c:nl_list_add_tail Unexecuted instantiation: misc.c:nl_list_add_tail Unexecuted instantiation: mroute.c:nl_list_add_tail Unexecuted instantiation: mss.c:nl_list_add_tail Unexecuted instantiation: mtu.c:nl_list_add_tail Unexecuted instantiation: networking_sitnl.c:nl_list_add_tail Unexecuted instantiation: options.c:nl_list_add_tail Unexecuted instantiation: options_util.c:nl_list_add_tail Unexecuted instantiation: platform.c:nl_list_add_tail Unexecuted instantiation: pool.c:nl_list_add_tail Unexecuted instantiation: proxy.c:nl_list_add_tail Unexecuted instantiation: ps.c:nl_list_add_tail Unexecuted instantiation: push.c:nl_list_add_tail Unexecuted instantiation: route.c:nl_list_add_tail Unexecuted instantiation: sig.c:nl_list_add_tail Unexecuted instantiation: socket.c:nl_list_add_tail Unexecuted instantiation: socks.c:nl_list_add_tail Unexecuted instantiation: ssl.c:nl_list_add_tail Unexecuted instantiation: ssl_ncp.c:nl_list_add_tail Unexecuted instantiation: ssl_openssl.c:nl_list_add_tail Unexecuted instantiation: ssl_pkt.c:nl_list_add_tail Unexecuted instantiation: ssl_verify.c:nl_list_add_tail Unexecuted instantiation: ssl_verify_openssl.c:nl_list_add_tail Unexecuted instantiation: tls_crypt.c:nl_list_add_tail Unexecuted instantiation: tun.c:nl_list_add_tail Unexecuted instantiation: tun_afunix.c:nl_list_add_tail Unexecuted instantiation: argv.c:nl_list_add_tail Unexecuted instantiation: auth_token.c:nl_list_add_tail Unexecuted instantiation: clinat.c:nl_list_add_tail Unexecuted instantiation: dco.c:nl_list_add_tail Unexecuted instantiation: dco_linux.c:nl_list_add_tail Unexecuted instantiation: dns.c:nl_list_add_tail Unexecuted instantiation: forward.c:nl_list_add_tail Unexecuted instantiation: helper.c:nl_list_add_tail Unexecuted instantiation: ntlm.c:nl_list_add_tail Unexecuted instantiation: occ.c:nl_list_add_tail Unexecuted instantiation: ping.c:nl_list_add_tail Unexecuted instantiation: fuzz_verify_cert.c:nl_list_add_tail Unexecuted instantiation: fuzz_route.c:nl_list_add_tail Unexecuted instantiation: fuzz_packet_id.c:nl_list_add_tail Unexecuted instantiation: fuzz_mroute.c:nl_list_add_tail |
44 | | |
45 | | static inline void nl_list_add_head(struct nl_list_head *obj, |
46 | | struct nl_list_head *head) |
47 | 0 | { |
48 | 0 | __nl_list_add(obj, head, head->next); |
49 | 0 | } Unexecuted instantiation: dhcp.c:nl_list_add_head Unexecuted instantiation: error.c:nl_list_add_head Unexecuted instantiation: init.c:nl_list_add_head Unexecuted instantiation: manage.c:nl_list_add_head Unexecuted instantiation: misc.c:nl_list_add_head Unexecuted instantiation: mroute.c:nl_list_add_head Unexecuted instantiation: mss.c:nl_list_add_head Unexecuted instantiation: mtu.c:nl_list_add_head Unexecuted instantiation: networking_sitnl.c:nl_list_add_head Unexecuted instantiation: options.c:nl_list_add_head Unexecuted instantiation: options_util.c:nl_list_add_head Unexecuted instantiation: platform.c:nl_list_add_head Unexecuted instantiation: pool.c:nl_list_add_head Unexecuted instantiation: proxy.c:nl_list_add_head Unexecuted instantiation: ps.c:nl_list_add_head Unexecuted instantiation: push.c:nl_list_add_head Unexecuted instantiation: route.c:nl_list_add_head Unexecuted instantiation: sig.c:nl_list_add_head Unexecuted instantiation: socket.c:nl_list_add_head Unexecuted instantiation: socks.c:nl_list_add_head Unexecuted instantiation: ssl.c:nl_list_add_head Unexecuted instantiation: ssl_ncp.c:nl_list_add_head Unexecuted instantiation: ssl_openssl.c:nl_list_add_head Unexecuted instantiation: ssl_pkt.c:nl_list_add_head Unexecuted instantiation: ssl_verify.c:nl_list_add_head Unexecuted instantiation: ssl_verify_openssl.c:nl_list_add_head Unexecuted instantiation: tls_crypt.c:nl_list_add_head Unexecuted instantiation: tun.c:nl_list_add_head Unexecuted instantiation: tun_afunix.c:nl_list_add_head Unexecuted instantiation: argv.c:nl_list_add_head Unexecuted instantiation: auth_token.c:nl_list_add_head Unexecuted instantiation: clinat.c:nl_list_add_head Unexecuted instantiation: dco.c:nl_list_add_head Unexecuted instantiation: dco_linux.c:nl_list_add_head Unexecuted instantiation: dns.c:nl_list_add_head Unexecuted instantiation: forward.c:nl_list_add_head Unexecuted instantiation: helper.c:nl_list_add_head Unexecuted instantiation: ntlm.c:nl_list_add_head Unexecuted instantiation: occ.c:nl_list_add_head Unexecuted instantiation: ping.c:nl_list_add_head Unexecuted instantiation: fuzz_verify_cert.c:nl_list_add_head Unexecuted instantiation: fuzz_route.c:nl_list_add_head Unexecuted instantiation: fuzz_packet_id.c:nl_list_add_head Unexecuted instantiation: fuzz_mroute.c:nl_list_add_head |
50 | | |
51 | | static inline void nl_list_del(struct nl_list_head *obj) |
52 | 0 | { |
53 | 0 | obj->next->prev = obj->prev; |
54 | 0 | obj->prev->next = obj->next; |
55 | 0 | } Unexecuted instantiation: dhcp.c:nl_list_del Unexecuted instantiation: error.c:nl_list_del Unexecuted instantiation: init.c:nl_list_del Unexecuted instantiation: manage.c:nl_list_del Unexecuted instantiation: misc.c:nl_list_del Unexecuted instantiation: mroute.c:nl_list_del Unexecuted instantiation: mss.c:nl_list_del Unexecuted instantiation: mtu.c:nl_list_del Unexecuted instantiation: networking_sitnl.c:nl_list_del Unexecuted instantiation: options.c:nl_list_del Unexecuted instantiation: options_util.c:nl_list_del Unexecuted instantiation: platform.c:nl_list_del Unexecuted instantiation: pool.c:nl_list_del Unexecuted instantiation: proxy.c:nl_list_del Unexecuted instantiation: ps.c:nl_list_del Unexecuted instantiation: push.c:nl_list_del Unexecuted instantiation: route.c:nl_list_del Unexecuted instantiation: sig.c:nl_list_del Unexecuted instantiation: socket.c:nl_list_del Unexecuted instantiation: socks.c:nl_list_del Unexecuted instantiation: ssl.c:nl_list_del Unexecuted instantiation: ssl_ncp.c:nl_list_del Unexecuted instantiation: ssl_openssl.c:nl_list_del Unexecuted instantiation: ssl_pkt.c:nl_list_del Unexecuted instantiation: ssl_verify.c:nl_list_del Unexecuted instantiation: ssl_verify_openssl.c:nl_list_del Unexecuted instantiation: tls_crypt.c:nl_list_del Unexecuted instantiation: tun.c:nl_list_del Unexecuted instantiation: tun_afunix.c:nl_list_del Unexecuted instantiation: argv.c:nl_list_del Unexecuted instantiation: auth_token.c:nl_list_del Unexecuted instantiation: clinat.c:nl_list_del Unexecuted instantiation: dco.c:nl_list_del Unexecuted instantiation: dco_linux.c:nl_list_del Unexecuted instantiation: dns.c:nl_list_del Unexecuted instantiation: forward.c:nl_list_del Unexecuted instantiation: helper.c:nl_list_del Unexecuted instantiation: ntlm.c:nl_list_del Unexecuted instantiation: occ.c:nl_list_del Unexecuted instantiation: ping.c:nl_list_del Unexecuted instantiation: fuzz_verify_cert.c:nl_list_del Unexecuted instantiation: fuzz_route.c:nl_list_del Unexecuted instantiation: fuzz_packet_id.c:nl_list_del Unexecuted instantiation: fuzz_mroute.c:nl_list_del |
56 | | |
57 | | static inline int nl_list_empty(struct nl_list_head *head) |
58 | 0 | { |
59 | 0 | return head->next == head; |
60 | 0 | } Unexecuted instantiation: dhcp.c:nl_list_empty Unexecuted instantiation: error.c:nl_list_empty Unexecuted instantiation: init.c:nl_list_empty Unexecuted instantiation: manage.c:nl_list_empty Unexecuted instantiation: misc.c:nl_list_empty Unexecuted instantiation: mroute.c:nl_list_empty Unexecuted instantiation: mss.c:nl_list_empty Unexecuted instantiation: mtu.c:nl_list_empty Unexecuted instantiation: networking_sitnl.c:nl_list_empty Unexecuted instantiation: options.c:nl_list_empty Unexecuted instantiation: options_util.c:nl_list_empty Unexecuted instantiation: platform.c:nl_list_empty Unexecuted instantiation: pool.c:nl_list_empty Unexecuted instantiation: proxy.c:nl_list_empty Unexecuted instantiation: ps.c:nl_list_empty Unexecuted instantiation: push.c:nl_list_empty Unexecuted instantiation: route.c:nl_list_empty Unexecuted instantiation: sig.c:nl_list_empty Unexecuted instantiation: socket.c:nl_list_empty Unexecuted instantiation: socks.c:nl_list_empty Unexecuted instantiation: ssl.c:nl_list_empty Unexecuted instantiation: ssl_ncp.c:nl_list_empty Unexecuted instantiation: ssl_openssl.c:nl_list_empty Unexecuted instantiation: ssl_pkt.c:nl_list_empty Unexecuted instantiation: ssl_verify.c:nl_list_empty Unexecuted instantiation: ssl_verify_openssl.c:nl_list_empty Unexecuted instantiation: tls_crypt.c:nl_list_empty Unexecuted instantiation: tun.c:nl_list_empty Unexecuted instantiation: tun_afunix.c:nl_list_empty Unexecuted instantiation: argv.c:nl_list_empty Unexecuted instantiation: auth_token.c:nl_list_empty Unexecuted instantiation: clinat.c:nl_list_empty Unexecuted instantiation: dco.c:nl_list_empty Unexecuted instantiation: dco_linux.c:nl_list_empty Unexecuted instantiation: dns.c:nl_list_empty Unexecuted instantiation: forward.c:nl_list_empty Unexecuted instantiation: helper.c:nl_list_empty Unexecuted instantiation: ntlm.c:nl_list_empty Unexecuted instantiation: occ.c:nl_list_empty Unexecuted instantiation: ping.c:nl_list_empty Unexecuted instantiation: fuzz_verify_cert.c:nl_list_empty Unexecuted instantiation: fuzz_route.c:nl_list_empty Unexecuted instantiation: fuzz_packet_id.c:nl_list_empty Unexecuted instantiation: fuzz_mroute.c:nl_list_empty |
61 | | |
62 | | #define nl_container_of(ptr, type, member) ({ \ |
63 | | const typeof( ((type *)0)->member ) *__mptr = (ptr); \ |
64 | | (type *)( (char *)__mptr - (offsetof(type, member)));}) |
65 | | |
66 | | #define nl_list_entry(ptr, type, member) \ |
67 | | nl_container_of(ptr, type, member) |
68 | | |
69 | | #define nl_list_at_tail(pos, head, member) \ |
70 | | ((pos)->member.next == (head)) |
71 | | |
72 | | #define nl_list_at_head(pos, head, member) \ |
73 | | ((pos)->member.prev == (head)) |
74 | | |
75 | | #define NL_LIST_HEAD(name) \ |
76 | | struct nl_list_head name = { &(name), &(name) } |
77 | | |
78 | | #define nl_list_first_entry(head, type, member) \ |
79 | | nl_list_entry((head)->next, type, member) |
80 | | |
81 | | #define nl_list_for_each_entry(pos, head, member) \ |
82 | | for (pos = nl_list_entry((head)->next, typeof(*pos), member); \ |
83 | | &(pos)->member != (head); \ |
84 | | (pos) = nl_list_entry((pos)->member.next, typeof(*(pos)), member)) |
85 | | |
86 | | #define nl_list_for_each_entry_safe(pos, n, head, member) \ |
87 | | for (pos = nl_list_entry((head)->next, typeof(*pos), member), \ |
88 | | n = nl_list_entry(pos->member.next, typeof(*pos), member); \ |
89 | | &(pos)->member != (head); \ |
90 | | pos = n, n = nl_list_entry(n->member.next, typeof(*n), member)) |
91 | | |
92 | | #define nl_init_list_head(head) \ |
93 | | do { (head)->next = (head); (head)->prev = (head); } while (0) |
94 | | |
95 | | #endif |