Coverage Report

Created: 2025-04-24 06:18

/src/hostap/src/utils/list.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Doubly-linked list
3
 * Copyright (c) 2009-2019, Jouni Malinen <j@w1.fi>
4
 *
5
 * This software may be distributed under the terms of the BSD license.
6
 * See README for more details.
7
 */
8
9
#ifndef LIST_H
10
#define LIST_H
11
12
/**
13
 * struct dl_list - Doubly-linked list
14
 */
15
struct dl_list {
16
  struct dl_list *next;
17
  struct dl_list *prev;
18
};
19
20
#define DL_LIST_HEAD_INIT(l) { &(l), &(l) }
21
22
static inline void dl_list_init(struct dl_list *list)
23
8.76k
{
24
8.76k
  list->next = list;
25
8.76k
  list->prev = list;
26
8.76k
}
Unexecuted instantiation: driver_common.c:dl_list_init
Unexecuted instantiation: ap-mgmt.c:dl_list_init
ap_config.c:dl_list_init
Line
Count
Source
23
4.38k
{
24
4.38k
  list->next = list;
25
4.38k
  list->prev = list;
26
4.38k
}
Unexecuted instantiation: ap_list.c:dl_list_init
Unexecuted instantiation: beacon.c:dl_list_init
Unexecuted instantiation: dfs.c:dl_list_init
Unexecuted instantiation: hostapd.c:dl_list_init
Unexecuted instantiation: hs20.c:dl_list_init
Unexecuted instantiation: hw_features.c:dl_list_init
Unexecuted instantiation: ieee802_11_auth.c:dl_list_init
Unexecuted instantiation: ieee802_11.c:dl_list_init
Unexecuted instantiation: ieee802_11_ht.c:dl_list_init
Unexecuted instantiation: ieee802_11_shared.c:dl_list_init
Unexecuted instantiation: ieee802_1x.c:dl_list_init
Unexecuted instantiation: neighbor_db.c:dl_list_init
Unexecuted instantiation: ndisc_snoop.c:dl_list_init
Unexecuted instantiation: pmksa_cache_auth.c:dl_list_init
Unexecuted instantiation: rrm.c:dl_list_init
sta_info.c:dl_list_init
Line
Count
Source
23
2.19k
{
24
2.19k
  list->next = list;
25
2.19k
  list->prev = list;
26
2.19k
}
Unexecuted instantiation: utils.c:dl_list_init
Unexecuted instantiation: vlan_init.c:dl_list_init
Unexecuted instantiation: wmm.c:dl_list_init
Unexecuted instantiation: wpa_auth.c:dl_list_init
Unexecuted instantiation: wpa_auth_ft.c:dl_list_init
Unexecuted instantiation: wpa_auth_glue.c:dl_list_init
Unexecuted instantiation: wpa_auth_ie.c:dl_list_init
Unexecuted instantiation: wps_hostapd.c:dl_list_init
Unexecuted instantiation: x_snoop.c:dl_list_init
Unexecuted instantiation: accounting.c:dl_list_init
Unexecuted instantiation: ap_drv_ops.c:dl_list_init
Unexecuted instantiation: ap_mlme.c:dl_list_init
Unexecuted instantiation: airtime_policy.c:dl_list_init
Unexecuted instantiation: authsrv.c:dl_list_init
Unexecuted instantiation: bss_load.c:dl_list_init
Unexecuted instantiation: dhcp_snoop.c:dl_list_init
Unexecuted instantiation: eap_user_db.c:dl_list_init
Unexecuted instantiation: eth_p_oui.c:dl_list_init
Unexecuted instantiation: gas_serv.c:dl_list_init
Unexecuted instantiation: tkip_countermeasures.c:dl_list_init
Unexecuted instantiation: eapol_auth_sm.c:dl_list_init
eloop.c:dl_list_init
Line
Count
Source
23
2.19k
{
24
2.19k
  list->next = list;
25
2.19k
  list->prev = list;
26
2.19k
}
Unexecuted instantiation: hw_features_common.c:dl_list_init
Unexecuted instantiation: ieee802_11_common.c:dl_list_init
Unexecuted instantiation: ptksa_cache.c:dl_list_init
Unexecuted instantiation: wps_registrar.c:dl_list_init
Unexecuted instantiation: eap_server.c:dl_list_init
Unexecuted instantiation: eap_server_methods.c:dl_list_init
27
28
static inline void dl_list_add(struct dl_list *list, struct dl_list *item)
29
6.57k
{
30
6.57k
  item->next = list->next;
31
6.57k
  item->prev = list;
32
6.57k
  list->next->prev = item;
33
6.57k
  list->next = item;
34
6.57k
}
Unexecuted instantiation: driver_common.c:dl_list_add
Unexecuted instantiation: ap-mgmt.c:dl_list_add
Unexecuted instantiation: ap_config.c:dl_list_add
Unexecuted instantiation: ap_list.c:dl_list_add
Unexecuted instantiation: beacon.c:dl_list_add
Unexecuted instantiation: dfs.c:dl_list_add
Unexecuted instantiation: hostapd.c:dl_list_add
Unexecuted instantiation: hs20.c:dl_list_add
Unexecuted instantiation: hw_features.c:dl_list_add
Unexecuted instantiation: ieee802_11_auth.c:dl_list_add
Unexecuted instantiation: ieee802_11.c:dl_list_add
Unexecuted instantiation: ieee802_11_ht.c:dl_list_add
Unexecuted instantiation: ieee802_11_shared.c:dl_list_add
Unexecuted instantiation: ieee802_1x.c:dl_list_add
Unexecuted instantiation: neighbor_db.c:dl_list_add
Unexecuted instantiation: ndisc_snoop.c:dl_list_add
Unexecuted instantiation: pmksa_cache_auth.c:dl_list_add
Unexecuted instantiation: rrm.c:dl_list_add
Unexecuted instantiation: sta_info.c:dl_list_add
Unexecuted instantiation: utils.c:dl_list_add
Unexecuted instantiation: vlan_init.c:dl_list_add
Unexecuted instantiation: wmm.c:dl_list_add
Unexecuted instantiation: wpa_auth.c:dl_list_add
Unexecuted instantiation: wpa_auth_ft.c:dl_list_add
Unexecuted instantiation: wpa_auth_glue.c:dl_list_add
Unexecuted instantiation: wpa_auth_ie.c:dl_list_add
Unexecuted instantiation: wps_hostapd.c:dl_list_add
Unexecuted instantiation: x_snoop.c:dl_list_add
Unexecuted instantiation: accounting.c:dl_list_add
Unexecuted instantiation: ap_drv_ops.c:dl_list_add
Unexecuted instantiation: ap_mlme.c:dl_list_add
Unexecuted instantiation: airtime_policy.c:dl_list_add
Unexecuted instantiation: authsrv.c:dl_list_add
Unexecuted instantiation: bss_load.c:dl_list_add
Unexecuted instantiation: dhcp_snoop.c:dl_list_add
Unexecuted instantiation: eap_user_db.c:dl_list_add
Unexecuted instantiation: eth_p_oui.c:dl_list_add
Unexecuted instantiation: gas_serv.c:dl_list_add
Unexecuted instantiation: tkip_countermeasures.c:dl_list_add
Unexecuted instantiation: eapol_auth_sm.c:dl_list_add
eloop.c:dl_list_add
Line
Count
Source
29
6.57k
{
30
6.57k
  item->next = list->next;
31
6.57k
  item->prev = list;
32
6.57k
  list->next->prev = item;
33
6.57k
  list->next = item;
34
6.57k
}
Unexecuted instantiation: hw_features_common.c:dl_list_add
Unexecuted instantiation: ieee802_11_common.c:dl_list_add
Unexecuted instantiation: ptksa_cache.c:dl_list_add
Unexecuted instantiation: wps_registrar.c:dl_list_add
Unexecuted instantiation: eap_server.c:dl_list_add
Unexecuted instantiation: eap_server_methods.c:dl_list_add
35
36
static inline void dl_list_add_tail(struct dl_list *list, struct dl_list *item)
37
2.19k
{
38
2.19k
  dl_list_add(list->prev, item);
39
2.19k
}
Unexecuted instantiation: driver_common.c:dl_list_add_tail
Unexecuted instantiation: ap-mgmt.c:dl_list_add_tail
Unexecuted instantiation: ap_config.c:dl_list_add_tail
Unexecuted instantiation: ap_list.c:dl_list_add_tail
Unexecuted instantiation: beacon.c:dl_list_add_tail
Unexecuted instantiation: dfs.c:dl_list_add_tail
Unexecuted instantiation: hostapd.c:dl_list_add_tail
Unexecuted instantiation: hs20.c:dl_list_add_tail
Unexecuted instantiation: hw_features.c:dl_list_add_tail
Unexecuted instantiation: ieee802_11_auth.c:dl_list_add_tail
Unexecuted instantiation: ieee802_11.c:dl_list_add_tail
Unexecuted instantiation: ieee802_11_ht.c:dl_list_add_tail
Unexecuted instantiation: ieee802_11_shared.c:dl_list_add_tail
Unexecuted instantiation: ieee802_1x.c:dl_list_add_tail
Unexecuted instantiation: neighbor_db.c:dl_list_add_tail
Unexecuted instantiation: ndisc_snoop.c:dl_list_add_tail
Unexecuted instantiation: pmksa_cache_auth.c:dl_list_add_tail
Unexecuted instantiation: rrm.c:dl_list_add_tail
Unexecuted instantiation: sta_info.c:dl_list_add_tail
Unexecuted instantiation: utils.c:dl_list_add_tail
Unexecuted instantiation: vlan_init.c:dl_list_add_tail
Unexecuted instantiation: wmm.c:dl_list_add_tail
Unexecuted instantiation: wpa_auth.c:dl_list_add_tail
Unexecuted instantiation: wpa_auth_ft.c:dl_list_add_tail
Unexecuted instantiation: wpa_auth_glue.c:dl_list_add_tail
Unexecuted instantiation: wpa_auth_ie.c:dl_list_add_tail
Unexecuted instantiation: wps_hostapd.c:dl_list_add_tail
Unexecuted instantiation: x_snoop.c:dl_list_add_tail
Unexecuted instantiation: accounting.c:dl_list_add_tail
Unexecuted instantiation: ap_drv_ops.c:dl_list_add_tail
Unexecuted instantiation: ap_mlme.c:dl_list_add_tail
Unexecuted instantiation: airtime_policy.c:dl_list_add_tail
Unexecuted instantiation: authsrv.c:dl_list_add_tail
Unexecuted instantiation: bss_load.c:dl_list_add_tail
Unexecuted instantiation: dhcp_snoop.c:dl_list_add_tail
Unexecuted instantiation: eap_user_db.c:dl_list_add_tail
Unexecuted instantiation: eth_p_oui.c:dl_list_add_tail
Unexecuted instantiation: gas_serv.c:dl_list_add_tail
Unexecuted instantiation: tkip_countermeasures.c:dl_list_add_tail
Unexecuted instantiation: eapol_auth_sm.c:dl_list_add_tail
eloop.c:dl_list_add_tail
Line
Count
Source
37
2.19k
{
38
2.19k
  dl_list_add(list->prev, item);
39
2.19k
}
Unexecuted instantiation: hw_features_common.c:dl_list_add_tail
Unexecuted instantiation: ieee802_11_common.c:dl_list_add_tail
Unexecuted instantiation: ptksa_cache.c:dl_list_add_tail
Unexecuted instantiation: wps_registrar.c:dl_list_add_tail
Unexecuted instantiation: eap_server.c:dl_list_add_tail
Unexecuted instantiation: eap_server_methods.c:dl_list_add_tail
40
41
static inline void dl_list_del(struct dl_list *item)
42
6.57k
{
43
6.57k
  item->next->prev = item->prev;
44
6.57k
  item->prev->next = item->next;
45
6.57k
  item->next = NULL;
46
6.57k
  item->prev = NULL;
47
6.57k
}
Unexecuted instantiation: driver_common.c:dl_list_del
Unexecuted instantiation: ap-mgmt.c:dl_list_del
Unexecuted instantiation: ap_config.c:dl_list_del
Unexecuted instantiation: ap_list.c:dl_list_del
Unexecuted instantiation: beacon.c:dl_list_del
Unexecuted instantiation: dfs.c:dl_list_del
Unexecuted instantiation: hostapd.c:dl_list_del
Unexecuted instantiation: hs20.c:dl_list_del
Unexecuted instantiation: hw_features.c:dl_list_del
Unexecuted instantiation: ieee802_11_auth.c:dl_list_del
Unexecuted instantiation: ieee802_11.c:dl_list_del
Unexecuted instantiation: ieee802_11_ht.c:dl_list_del
Unexecuted instantiation: ieee802_11_shared.c:dl_list_del
Unexecuted instantiation: ieee802_1x.c:dl_list_del
Unexecuted instantiation: neighbor_db.c:dl_list_del
Unexecuted instantiation: ndisc_snoop.c:dl_list_del
Unexecuted instantiation: pmksa_cache_auth.c:dl_list_del
Unexecuted instantiation: rrm.c:dl_list_del
Unexecuted instantiation: sta_info.c:dl_list_del
Unexecuted instantiation: utils.c:dl_list_del
Unexecuted instantiation: vlan_init.c:dl_list_del
Unexecuted instantiation: wmm.c:dl_list_del
Unexecuted instantiation: wpa_auth.c:dl_list_del
Unexecuted instantiation: wpa_auth_ft.c:dl_list_del
Unexecuted instantiation: wpa_auth_glue.c:dl_list_del
Unexecuted instantiation: wpa_auth_ie.c:dl_list_del
Unexecuted instantiation: wps_hostapd.c:dl_list_del
Unexecuted instantiation: x_snoop.c:dl_list_del
Unexecuted instantiation: accounting.c:dl_list_del
Unexecuted instantiation: ap_drv_ops.c:dl_list_del
Unexecuted instantiation: ap_mlme.c:dl_list_del
Unexecuted instantiation: airtime_policy.c:dl_list_del
Unexecuted instantiation: authsrv.c:dl_list_del
Unexecuted instantiation: bss_load.c:dl_list_del
Unexecuted instantiation: dhcp_snoop.c:dl_list_del
Unexecuted instantiation: eap_user_db.c:dl_list_del
Unexecuted instantiation: eth_p_oui.c:dl_list_del
Unexecuted instantiation: gas_serv.c:dl_list_del
Unexecuted instantiation: tkip_countermeasures.c:dl_list_del
Unexecuted instantiation: eapol_auth_sm.c:dl_list_del
eloop.c:dl_list_del
Line
Count
Source
42
6.57k
{
43
6.57k
  item->next->prev = item->prev;
44
6.57k
  item->prev->next = item->next;
45
6.57k
  item->next = NULL;
46
6.57k
  item->prev = NULL;
47
6.57k
}
Unexecuted instantiation: hw_features_common.c:dl_list_del
Unexecuted instantiation: ieee802_11_common.c:dl_list_del
Unexecuted instantiation: ptksa_cache.c:dl_list_del
Unexecuted instantiation: wps_registrar.c:dl_list_del
Unexecuted instantiation: eap_server.c:dl_list_del
Unexecuted instantiation: eap_server_methods.c:dl_list_del
48
49
static inline int dl_list_empty(const struct dl_list *list)
50
8.76k
{
51
8.76k
  return list->next == list;
52
8.76k
}
Unexecuted instantiation: driver_common.c:dl_list_empty
Unexecuted instantiation: ap-mgmt.c:dl_list_empty
ap_config.c:dl_list_empty
Line
Count
Source
50
2.19k
{
51
2.19k
  return list->next == list;
52
2.19k
}
Unexecuted instantiation: ap_list.c:dl_list_empty
Unexecuted instantiation: beacon.c:dl_list_empty
Unexecuted instantiation: dfs.c:dl_list_empty
Unexecuted instantiation: hostapd.c:dl_list_empty
Unexecuted instantiation: hs20.c:dl_list_empty
Unexecuted instantiation: hw_features.c:dl_list_empty
Unexecuted instantiation: ieee802_11_auth.c:dl_list_empty
Unexecuted instantiation: ieee802_11.c:dl_list_empty
Unexecuted instantiation: ieee802_11_ht.c:dl_list_empty
Unexecuted instantiation: ieee802_11_shared.c:dl_list_empty
Unexecuted instantiation: ieee802_1x.c:dl_list_empty
Unexecuted instantiation: neighbor_db.c:dl_list_empty
Unexecuted instantiation: ndisc_snoop.c:dl_list_empty
Unexecuted instantiation: pmksa_cache_auth.c:dl_list_empty
Unexecuted instantiation: rrm.c:dl_list_empty
Unexecuted instantiation: sta_info.c:dl_list_empty
Unexecuted instantiation: utils.c:dl_list_empty
Unexecuted instantiation: vlan_init.c:dl_list_empty
Unexecuted instantiation: wmm.c:dl_list_empty
Unexecuted instantiation: wpa_auth.c:dl_list_empty
Unexecuted instantiation: wpa_auth_ft.c:dl_list_empty
Unexecuted instantiation: wpa_auth_glue.c:dl_list_empty
Unexecuted instantiation: wpa_auth_ie.c:dl_list_empty
Unexecuted instantiation: wps_hostapd.c:dl_list_empty
Unexecuted instantiation: x_snoop.c:dl_list_empty
Unexecuted instantiation: accounting.c:dl_list_empty
Unexecuted instantiation: ap_drv_ops.c:dl_list_empty
Unexecuted instantiation: ap_mlme.c:dl_list_empty
Unexecuted instantiation: airtime_policy.c:dl_list_empty
Unexecuted instantiation: authsrv.c:dl_list_empty
Unexecuted instantiation: bss_load.c:dl_list_empty
Unexecuted instantiation: dhcp_snoop.c:dl_list_empty
Unexecuted instantiation: eap_user_db.c:dl_list_empty
Unexecuted instantiation: eth_p_oui.c:dl_list_empty
Unexecuted instantiation: gas_serv.c:dl_list_empty
Unexecuted instantiation: tkip_countermeasures.c:dl_list_empty
Unexecuted instantiation: eapol_auth_sm.c:dl_list_empty
eloop.c:dl_list_empty
Line
Count
Source
50
6.57k
{
51
6.57k
  return list->next == list;
52
6.57k
}
Unexecuted instantiation: hw_features_common.c:dl_list_empty
Unexecuted instantiation: ieee802_11_common.c:dl_list_empty
Unexecuted instantiation: ptksa_cache.c:dl_list_empty
Unexecuted instantiation: wps_registrar.c:dl_list_empty
Unexecuted instantiation: eap_server.c:dl_list_empty
Unexecuted instantiation: eap_server_methods.c:dl_list_empty
53
54
static inline unsigned int dl_list_len(const struct dl_list *list)
55
0
{
56
0
  struct dl_list *item;
57
0
  int count = 0;
58
0
  for (item = list->next; item != list; item = item->next)
59
0
    count++;
60
0
  return count;
61
0
}
Unexecuted instantiation: driver_common.c:dl_list_len
Unexecuted instantiation: ap-mgmt.c:dl_list_len
Unexecuted instantiation: ap_config.c:dl_list_len
Unexecuted instantiation: ap_list.c:dl_list_len
Unexecuted instantiation: beacon.c:dl_list_len
Unexecuted instantiation: dfs.c:dl_list_len
Unexecuted instantiation: hostapd.c:dl_list_len
Unexecuted instantiation: hs20.c:dl_list_len
Unexecuted instantiation: hw_features.c:dl_list_len
Unexecuted instantiation: ieee802_11_auth.c:dl_list_len
Unexecuted instantiation: ieee802_11.c:dl_list_len
Unexecuted instantiation: ieee802_11_ht.c:dl_list_len
Unexecuted instantiation: ieee802_11_shared.c:dl_list_len
Unexecuted instantiation: ieee802_1x.c:dl_list_len
Unexecuted instantiation: neighbor_db.c:dl_list_len
Unexecuted instantiation: ndisc_snoop.c:dl_list_len
Unexecuted instantiation: pmksa_cache_auth.c:dl_list_len
Unexecuted instantiation: rrm.c:dl_list_len
Unexecuted instantiation: sta_info.c:dl_list_len
Unexecuted instantiation: utils.c:dl_list_len
Unexecuted instantiation: vlan_init.c:dl_list_len
Unexecuted instantiation: wmm.c:dl_list_len
Unexecuted instantiation: wpa_auth.c:dl_list_len
Unexecuted instantiation: wpa_auth_ft.c:dl_list_len
Unexecuted instantiation: wpa_auth_glue.c:dl_list_len
Unexecuted instantiation: wpa_auth_ie.c:dl_list_len
Unexecuted instantiation: wps_hostapd.c:dl_list_len
Unexecuted instantiation: x_snoop.c:dl_list_len
Unexecuted instantiation: accounting.c:dl_list_len
Unexecuted instantiation: ap_drv_ops.c:dl_list_len
Unexecuted instantiation: ap_mlme.c:dl_list_len
Unexecuted instantiation: airtime_policy.c:dl_list_len
Unexecuted instantiation: authsrv.c:dl_list_len
Unexecuted instantiation: bss_load.c:dl_list_len
Unexecuted instantiation: dhcp_snoop.c:dl_list_len
Unexecuted instantiation: eap_user_db.c:dl_list_len
Unexecuted instantiation: eth_p_oui.c:dl_list_len
Unexecuted instantiation: gas_serv.c:dl_list_len
Unexecuted instantiation: tkip_countermeasures.c:dl_list_len
Unexecuted instantiation: eapol_auth_sm.c:dl_list_len
Unexecuted instantiation: eloop.c:dl_list_len
Unexecuted instantiation: hw_features_common.c:dl_list_len
Unexecuted instantiation: ieee802_11_common.c:dl_list_len
Unexecuted instantiation: ptksa_cache.c:dl_list_len
Unexecuted instantiation: wps_registrar.c:dl_list_len
Unexecuted instantiation: eap_server.c:dl_list_len
Unexecuted instantiation: eap_server_methods.c:dl_list_len
62
63
#ifndef offsetof
64
#define offsetof(type, member) ((long) &((type *) 0)->member)
65
#endif
66
67
#define dl_list_entry(item, type, member) \
68
72.2k
  ((type *) ((char *) item - offsetof(type, member)))
69
70
#define dl_list_first(list, type, member) \
71
6.57k
  (dl_list_empty((list)) ? NULL : \
72
6.57k
   dl_list_entry((list)->next, type, member))
73
74
#define dl_list_last(list, type, member) \
75
  (dl_list_empty((list)) ? NULL : \
76
   dl_list_entry((list)->prev, type, member))
77
78
#define dl_list_for_each(item, list, type, member) \
79
6.57k
  for (item = dl_list_entry((list)->next, type, member); \
80
6.57k
       &item->member != (list); \
81
6.57k
       item = dl_list_entry(item->member.next, type, member))
82
83
#define dl_list_for_each_safe(item, n, list, type, member) \
84
21.9k
  for (item = dl_list_entry((list)->next, type, member), \
85
21.9k
         n = dl_list_entry(item->member.next, type, member); \
86
39.4k
       &item->member != (list); \
87
21.9k
       item = n, n = dl_list_entry(n->member.next, type, member))
88
89
#define dl_list_for_each_reverse(item, list, type, member) \
90
  for (item = dl_list_entry((list)->prev, type, member); \
91
       &item->member != (list); \
92
       item = dl_list_entry(item->member.prev, type, member))
93
94
#define DEFINE_DL_LIST(name) \
95
  struct dl_list name = { &(name), &(name) }
96
97
#endif /* LIST_H */