Coverage Report

Created: 2025-07-23 06:54

/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