/src/openssl/include/internal/list.h
Line  | Count  | Source  | 
1  |  | /*  | 
2  |  |  * Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.  | 
3  |  |  *  | 
4  |  |  * Licensed under the Apache License 2.0 (the "License").  You may not use  | 
5  |  |  * this file except in compliance with the License.  You can obtain a copy  | 
6  |  |  * in the file LICENSE in the source distribution or at  | 
7  |  |  * https://www.openssl.org/source/license.html  | 
8  |  |  */  | 
9  |  |  | 
10  |  | #ifndef OSSL_INTERNAL_LIST_H  | 
11  |  | # define OSSL_INTERNAL_LIST_H  | 
12  |  | # pragma once  | 
13  |  |  | 
14  |  | # include <string.h>  | 
15  |  | # include <assert.h>  | 
16  |  |  | 
17  |  | # ifdef NDEBUG  | 
18  |  | #  define OSSL_LIST_DBG(x)  | 
19  |  | # else  | 
20  |  | #  define OSSL_LIST_DBG(x) x;  | 
21  |  | # endif  | 
22  |  |  | 
23  |  | # define OSSL_LIST_FOREACH_FROM(p, name, init)                              \  | 
24  | 0  |     for ((p) = (init);                                                      \  | 
25  | 0  |          (p) != NULL;                                                       \  | 
26  | 0  |          (p) = ossl_list_##name##_next(p))  | 
27  |  | # define OSSL_LIST_FOREACH(p, name, l)                                      \  | 
28  | 0  |     OSSL_LIST_FOREACH_FROM(p, name, ossl_list_##name##_head(l))  | 
29  |  |  | 
30  |  | # define OSSL_LIST_FOREACH_REV_FROM(p, name, init)                          \  | 
31  |  |     for ((p) = (init);                                                      \  | 
32  |  |          (p) != NULL;                                                       \  | 
33  |  |          (p) = ossl_list_##name##_prev(p))  | 
34  |  | # define OSSL_LIST_FOREACH_REV(p, name, l)                                  \  | 
35  |  |     OSSL_LIST_FOREACH_FROM(p, name, ossl_list_##name##_tail(l))  | 
36  |  |  | 
37  |  | # define OSSL_LIST_FOREACH_DELSAFE_FROM(p, pn, name, init)                  \  | 
38  | 0  |     for ((p) = (init);                                                      \  | 
39  | 0  |          (p) != NULL && (((pn) = ossl_list_##name##_next(p)), 1);           \  | 
40  | 0  |          (p) = (pn))  | 
41  |  | #define OSSL_LIST_FOREACH_DELSAFE(p, pn, name, l)                           \  | 
42  | 0  |     OSSL_LIST_FOREACH_DELSAFE_FROM(p, pn, name, ossl_list_##name##_head(l))  | 
43  |  |  | 
44  |  | # define OSSL_LIST_FOREACH_REV_DELSAFE_FROM(p, pn, name, init)              \  | 
45  |  |     for ((p) = (init);                                                      \  | 
46  |  |          (p) != NULL && (((pn) = ossl_list_##name##_prev(p)), 1);           \  | 
47  |  |          (p) = (pn))  | 
48  |  | # define OSSL_LIST_FOREACH_REV_DELSAFE(p, pn, name, l)                      \  | 
49  |  |     OSSL_LIST_FOREACH_REV_DELSAFE_FROM(p, pn, name, ossl_list_##name##_tail(l))  | 
50  |  |  | 
51  |  | /* Define a list structure */  | 
52  |  | # define OSSL_LIST(name) OSSL_LIST_ ## name  | 
53  |  |  | 
54  |  | /* Define fields to include an element of a list */  | 
55  |  | # define OSSL_LIST_MEMBER(name, type)                                       \  | 
56  |  |     struct {                                                                \ | 
57  |  |         type *next, *prev;                                                  \  | 
58  |  |         OSSL_LIST_DBG(struct ossl_list_st_ ## name *list)                   \  | 
59  |  |     } ossl_list_ ## name  | 
60  |  |  | 
61  |  | # define DECLARE_LIST_OF(name, type)                                        \  | 
62  |  |     typedef struct ossl_list_st_ ## name OSSL_LIST(name);                   \  | 
63  |  |     struct ossl_list_st_ ## name {                                          \ | 
64  |  |         type *alpha, *omega;                                                \  | 
65  |  |         size_t num_elems;                                                   \  | 
66  |  |     }                                                                       \  | 
67  |  |  | 
68  |  | # define DEFINE_LIST_OF_IMPL(name, type)                                    \  | 
69  |  |     static ossl_unused ossl_inline void                                     \  | 
70  |  |     ossl_list_##name##_init(OSSL_LIST(name) *list)                          \  | 
71  | 0  |     {                                                                       \ | 
72  | 0  |         memset(list, 0, sizeof(*list));                                     \  | 
73  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_init Unexecuted instantiation: t1_lib.c:ossl_list_urxe_init Unexecuted instantiation: quic_impl.c:ossl_list_urxe_init Unexecuted instantiation: quic_method.c:ossl_list_urxe_init Unexecuted instantiation: quic_obj.c:ossl_list_urxe_init Unexecuted instantiation: quic_port.c:ossl_list_urxe_init Unexecuted instantiation: quic_port.c:ossl_list_ch_init Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_init Unexecuted instantiation: quic_port.c:ossl_list_port_init Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_init Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_init Unexecuted instantiation: quic_record_rx.c:ossl_list_rxe_init Unexecuted instantiation: quic_record_tx.c:ossl_list_txe_init Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_init Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_init Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_init Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_init Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_init Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_init Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_init Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_init Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_init Unexecuted instantiation: quic_txp.c:ossl_list_urxe_init Unexecuted instantiation: quic_wire.c:ossl_list_urxe_init Unexecuted instantiation: uint_set.c:ossl_list_uint_set_init Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_init Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_init Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_init Unexecuted instantiation: quic_channel.c:ossl_list_urxe_init Unexecuted instantiation: quic_channel.c:ossl_list_ch_init Unexecuted instantiation: quic_demux.c:ossl_list_urxe_init Unexecuted instantiation: quic_engine.c:ossl_list_urxe_init Unexecuted instantiation: quic_engine.c:ossl_list_port_init Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_init Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_init Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_init  | 
74  |  |     static ossl_unused ossl_inline void                                     \  | 
75  |  |     ossl_list_##name##_init_elem(type *elem)                                \  | 
76  | 0  |     {                                                                       \ | 
77  | 0  |         memset(&elem->ossl_list_ ## name, 0,                                \  | 
78  | 0  |                sizeof(elem->ossl_list_ ## name));                           \  | 
79  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_init_elem Unexecuted instantiation: t1_lib.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_impl.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_method.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_obj.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_port.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_port.c:ossl_list_ch_init_elem Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_init_elem Unexecuted instantiation: quic_port.c:ossl_list_port_init_elem Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_init_elem Unexecuted instantiation: quic_record_rx.c:ossl_list_rxe_init_elem Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_record_tx.c:ossl_list_txe_init_elem Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_init_elem Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_init_elem Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_init_elem Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_txp.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_wire.c:ossl_list_urxe_init_elem Unexecuted instantiation: uint_set.c:ossl_list_uint_set_init_elem Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_init_elem Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_init_elem Unexecuted instantiation: quic_channel.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_channel.c:ossl_list_ch_init_elem Unexecuted instantiation: quic_demux.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_engine.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_engine.c:ossl_list_port_init_elem Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_init_elem Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_init_elem Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_init_elem  | 
80  |  |     static ossl_unused ossl_inline int                                      \  | 
81  |  |     ossl_list_##name##_is_empty(const OSSL_LIST(name) *list)                \  | 
82  | 0  |     {                                                                       \ | 
83  | 0  |         return list->num_elems == 0;                                        \  | 
84  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_is_empty Unexecuted instantiation: t1_lib.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_impl.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_method.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_obj.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_port.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_port.c:ossl_list_ch_is_empty Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_is_empty Unexecuted instantiation: quic_port.c:ossl_list_port_is_empty Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_is_empty Unexecuted instantiation: quic_record_rx.c:ossl_list_rxe_is_empty Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_record_tx.c:ossl_list_txe_is_empty Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_is_empty Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_is_empty Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_is_empty Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_txp.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_wire.c:ossl_list_urxe_is_empty Unexecuted instantiation: uint_set.c:ossl_list_uint_set_is_empty Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_is_empty Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_is_empty Unexecuted instantiation: quic_channel.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_channel.c:ossl_list_ch_is_empty Unexecuted instantiation: quic_demux.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_engine.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_engine.c:ossl_list_port_is_empty Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_is_empty Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_is_empty Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_is_empty  | 
85  |  |     static ossl_unused ossl_inline size_t                                   \  | 
86  |  |     ossl_list_##name##_num(const OSSL_LIST(name) *list)                     \  | 
87  | 0  |     {                                                                       \ | 
88  | 0  |         return list->num_elems;                                             \  | 
89  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_num Unexecuted instantiation: t1_lib.c:ossl_list_urxe_num Unexecuted instantiation: quic_impl.c:ossl_list_urxe_num Unexecuted instantiation: quic_method.c:ossl_list_urxe_num Unexecuted instantiation: quic_obj.c:ossl_list_urxe_num Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_num Unexecuted instantiation: quic_port.c:ossl_list_urxe_num Unexecuted instantiation: quic_port.c:ossl_list_ch_num Unexecuted instantiation: quic_port.c:ossl_list_port_num Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_num Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_num Unexecuted instantiation: quic_record_rx.c:ossl_list_rxe_num Unexecuted instantiation: quic_record_tx.c:ossl_list_txe_num Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_num Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_num Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_num Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_num Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_num Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_num Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_num Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_num Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_num Unexecuted instantiation: quic_txp.c:ossl_list_urxe_num Unexecuted instantiation: quic_wire.c:ossl_list_urxe_num Unexecuted instantiation: uint_set.c:ossl_list_uint_set_num Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_num Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_num Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_num Unexecuted instantiation: quic_channel.c:ossl_list_urxe_num Unexecuted instantiation: quic_channel.c:ossl_list_ch_num Unexecuted instantiation: quic_demux.c:ossl_list_urxe_num Unexecuted instantiation: quic_engine.c:ossl_list_port_num Unexecuted instantiation: quic_engine.c:ossl_list_urxe_num Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_num Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_num Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_num  | 
90  |  |     static ossl_unused ossl_inline type *                                   \  | 
91  |  |     ossl_list_##name##_head(const OSSL_LIST(name) *list)                    \  | 
92  | 0  |     {                                                                       \ | 
93  | 0  |         assert(list->alpha == NULL                                          \  | 
94  | 0  |                || list->alpha->ossl_list_ ## name.list == list);            \  | 
95  | 0  |         return list->alpha;                                                 \  | 
96  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_head Unexecuted instantiation: t1_lib.c:ossl_list_urxe_head Unexecuted instantiation: quic_impl.c:ossl_list_urxe_head Unexecuted instantiation: quic_method.c:ossl_list_urxe_head Unexecuted instantiation: quic_obj.c:ossl_list_urxe_head Unexecuted instantiation: quic_port.c:ossl_list_urxe_head Unexecuted instantiation: quic_port.c:ossl_list_port_head Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_head Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_head Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_head Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_head Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_head Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_head Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_head Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_head Unexecuted instantiation: quic_txp.c:ossl_list_urxe_head Unexecuted instantiation: quic_wire.c:ossl_list_urxe_head Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_head Unexecuted instantiation: quic_channel.c:ossl_list_urxe_head Unexecuted instantiation: quic_channel.c:ossl_list_ch_head Unexecuted instantiation: quic_engine.c:ossl_list_urxe_head Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_head Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_head Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_head  | 
97  |  |     static ossl_unused ossl_inline type *                                   \  | 
98  |  |     ossl_list_##name##_tail(const OSSL_LIST(name) *list)                    \  | 
99  | 0  |     {                                                                       \ | 
100  | 0  |         assert(list->omega == NULL                                          \  | 
101  | 0  |                || list->omega->ossl_list_ ## name.list == list);            \  | 
102  | 0  |         return list->omega;                                                 \  | 
103  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_tail Unexecuted instantiation: t1_lib.c:ossl_list_urxe_tail Unexecuted instantiation: quic_impl.c:ossl_list_urxe_tail Unexecuted instantiation: quic_method.c:ossl_list_urxe_tail Unexecuted instantiation: quic_obj.c:ossl_list_urxe_tail Unexecuted instantiation: quic_port.c:ossl_list_urxe_tail Unexecuted instantiation: quic_port.c:ossl_list_ch_tail Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_tail Unexecuted instantiation: quic_port.c:ossl_list_port_tail Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_tail Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_tail Unexecuted instantiation: quic_record_rx.c:ossl_list_rxe_tail Unexecuted instantiation: quic_record_tx.c:ossl_list_txe_tail Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_tail Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_tail Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_tail Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_tail Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_tail Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_tail Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_tail Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_tail Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_tail Unexecuted instantiation: quic_txp.c:ossl_list_urxe_tail Unexecuted instantiation: quic_wire.c:ossl_list_urxe_tail Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_tail Unexecuted instantiation: quic_channel.c:ossl_list_urxe_tail Unexecuted instantiation: quic_channel.c:ossl_list_ch_tail Unexecuted instantiation: quic_demux.c:ossl_list_urxe_tail Unexecuted instantiation: quic_engine.c:ossl_list_urxe_tail Unexecuted instantiation: quic_engine.c:ossl_list_port_tail Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_tail Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_tail Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_tail  | 
104  |  |     static ossl_unused ossl_inline type *                                   \  | 
105  |  |     ossl_list_##name##_next(const type *elem)                               \  | 
106  | 0  |     {                                                                       \ | 
107  | 0  |         assert(elem->ossl_list_ ## name.next == NULL                        \  | 
108  | 0  |                || elem->ossl_list_ ## name.next                             \  | 
109  | 0  |                       ->ossl_list_ ## name.prev == elem);                   \  | 
110  | 0  |         return elem->ossl_list_ ## name.next;                               \  | 
111  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_next Unexecuted instantiation: t1_lib.c:ossl_list_urxe_next Unexecuted instantiation: quic_impl.c:ossl_list_urxe_next Unexecuted instantiation: quic_method.c:ossl_list_urxe_next Unexecuted instantiation: quic_obj.c:ossl_list_urxe_next Unexecuted instantiation: quic_port.c:ossl_list_urxe_next Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_next Unexecuted instantiation: quic_port.c:ossl_list_port_next Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_next Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_next Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_next Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_next Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_next Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_next Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_next Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_next Unexecuted instantiation: quic_txp.c:ossl_list_urxe_next Unexecuted instantiation: quic_wire.c:ossl_list_urxe_next Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_next Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_next Unexecuted instantiation: quic_channel.c:ossl_list_urxe_next Unexecuted instantiation: quic_channel.c:ossl_list_ch_next Unexecuted instantiation: quic_engine.c:ossl_list_urxe_next Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_next Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_next Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_next  | 
112  |  |     static ossl_unused ossl_inline type *                                   \  | 
113  |  |     ossl_list_##name##_prev(const type *elem)                               \  | 
114  | 0  |     {                                                                       \ | 
115  | 0  |         assert(elem->ossl_list_ ## name.prev == NULL                        \  | 
116  | 0  |                || elem->ossl_list_ ## name.prev                             \  | 
117  | 0  |                       ->ossl_list_ ## name.next == elem);                   \  | 
118  | 0  |         return elem->ossl_list_ ## name.prev;                               \  | 
119  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_prev Unexecuted instantiation: t1_lib.c:ossl_list_urxe_prev Unexecuted instantiation: quic_impl.c:ossl_list_urxe_prev Unexecuted instantiation: quic_method.c:ossl_list_urxe_prev Unexecuted instantiation: quic_obj.c:ossl_list_urxe_prev Unexecuted instantiation: quic_port.c:ossl_list_urxe_prev Unexecuted instantiation: quic_port.c:ossl_list_ch_prev Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_prev Unexecuted instantiation: quic_port.c:ossl_list_port_prev Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_prev Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_prev Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_prev Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_prev Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_prev Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_prev Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_prev Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_prev Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_prev Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_prev Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_prev Unexecuted instantiation: quic_txp.c:ossl_list_urxe_prev Unexecuted instantiation: quic_wire.c:ossl_list_urxe_prev Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_prev Unexecuted instantiation: quic_channel.c:ossl_list_urxe_prev Unexecuted instantiation: quic_channel.c:ossl_list_ch_prev Unexecuted instantiation: quic_engine.c:ossl_list_urxe_prev Unexecuted instantiation: quic_engine.c:ossl_list_port_prev Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_prev Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_prev Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_prev  | 
120  |  |     static ossl_unused ossl_inline void                                     \  | 
121  |  |     ossl_list_##name##_remove(OSSL_LIST(name) *list, type *elem)            \  | 
122  | 0  |     {                                                                       \ | 
123  | 0  |         assert(elem->ossl_list_ ## name.list == list);                      \  | 
124  | 0  |         OSSL_LIST_DBG(elem->ossl_list_ ## name.list = NULL)                 \  | 
125  | 0  |         if (list->alpha == elem)                                            \  | 
126  | 0  |             list->alpha = elem->ossl_list_ ## name.next;                    \  | 
127  | 0  |         if (list->omega == elem)                                            \  | 
128  | 0  |             list->omega = elem->ossl_list_ ## name.prev;                    \  | 
129  | 0  |         if (elem->ossl_list_ ## name.prev != NULL)                          \  | 
130  | 0  |             elem->ossl_list_ ## name.prev->ossl_list_ ## name.next =        \  | 
131  | 0  |                     elem->ossl_list_ ## name.next;                          \  | 
132  | 0  |         if (elem->ossl_list_ ## name.next != NULL)                          \  | 
133  | 0  |             elem->ossl_list_ ## name.next->ossl_list_ ## name.prev =        \  | 
134  | 0  |                     elem->ossl_list_ ## name.prev;                          \  | 
135  | 0  |         list->num_elems--;                                                  \  | 
136  | 0  |         memset(&elem->ossl_list_ ## name, 0,                                \  | 
137  | 0  |                sizeof(elem->ossl_list_ ## name));                           \  | 
138  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_remove Unexecuted instantiation: t1_lib.c:ossl_list_urxe_remove Unexecuted instantiation: quic_impl.c:ossl_list_urxe_remove Unexecuted instantiation: quic_method.c:ossl_list_urxe_remove Unexecuted instantiation: quic_obj.c:ossl_list_urxe_remove Unexecuted instantiation: quic_port.c:ossl_list_urxe_remove Unexecuted instantiation: quic_port.c:ossl_list_ch_remove Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_remove Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_remove Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_remove Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_remove Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_remove Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_remove Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_remove Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_remove Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_remove Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_remove Unexecuted instantiation: quic_txp.c:ossl_list_urxe_remove Unexecuted instantiation: quic_wire.c:ossl_list_urxe_remove Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_remove Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_remove Unexecuted instantiation: quic_channel.c:ossl_list_urxe_remove Unexecuted instantiation: quic_engine.c:ossl_list_urxe_remove Unexecuted instantiation: quic_engine.c:ossl_list_port_remove Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_remove Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_remove Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_remove  | 
139  |  |     static ossl_unused ossl_inline void                                     \  | 
140  |  |     ossl_list_##name##_insert_head(OSSL_LIST(name) *list, type *elem)       \  | 
141  | 0  |     {                                                                       \ | 
142  | 0  |         assert(elem->ossl_list_ ## name.list == NULL);                      \  | 
143  | 0  |         OSSL_LIST_DBG(elem->ossl_list_ ## name.list = list)                 \  | 
144  | 0  |         if (list->alpha != NULL)                                            \  | 
145  | 0  |             list->alpha->ossl_list_ ## name.prev = elem;                    \  | 
146  | 0  |         elem->ossl_list_ ## name.next = list->alpha;                        \  | 
147  | 0  |         elem->ossl_list_ ## name.prev = NULL;                               \  | 
148  | 0  |         list->alpha = elem;                                                 \  | 
149  | 0  |         if (list->omega == NULL)                                            \  | 
150  | 0  |             list->omega = elem;                                             \  | 
151  | 0  |         list->num_elems++;                                                  \  | 
152  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_insert_head Unexecuted instantiation: t1_lib.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_impl.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_method.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_obj.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_port.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_port.c:ossl_list_ch_insert_head Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_insert_head Unexecuted instantiation: quic_port.c:ossl_list_port_insert_head Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_insert_head Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_insert_head Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_insert_head Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_insert_head Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_txp.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_wire.c:ossl_list_urxe_insert_head Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_insert_head Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_insert_head Unexecuted instantiation: quic_channel.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_channel.c:ossl_list_ch_insert_head Unexecuted instantiation: quic_engine.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_engine.c:ossl_list_port_insert_head Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_insert_head Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_insert_head Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_insert_head  | 
153  |  |     static ossl_unused ossl_inline void                                     \  | 
154  |  |     ossl_list_##name##_insert_tail(OSSL_LIST(name) *list, type *elem)       \  | 
155  | 0  |     {                                                                       \ | 
156  | 0  |         assert(elem->ossl_list_ ## name.list == NULL);                      \  | 
157  | 0  |         OSSL_LIST_DBG(elem->ossl_list_ ## name.list = list)                 \  | 
158  | 0  |         if (list->omega != NULL)                                            \  | 
159  | 0  |             list->omega->ossl_list_ ## name.next = elem;                    \  | 
160  | 0  |         elem->ossl_list_ ## name.prev = list->omega;                        \  | 
161  | 0  |         elem->ossl_list_ ## name.next = NULL;                               \  | 
162  | 0  |         list->omega = elem;                                                 \  | 
163  | 0  |         if (list->alpha == NULL)                                            \  | 
164  | 0  |             list->alpha = elem;                                             \  | 
165  | 0  |         list->num_elems++;                                                  \  | 
166  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_insert_tail Unexecuted instantiation: t1_lib.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_impl.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_method.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_obj.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_port.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_port.c:ossl_list_ch_insert_tail Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_insert_tail Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_insert_tail Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_insert_tail Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_txp.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_wire.c:ossl_list_urxe_insert_tail Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_insert_tail Unexecuted instantiation: quic_channel.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_engine.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_engine.c:ossl_list_port_insert_tail Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_insert_tail Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_insert_tail Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_insert_tail  | 
167  |  |     static ossl_unused ossl_inline void                                     \  | 
168  |  |     ossl_list_##name##_insert_before(OSSL_LIST(name) *list, type *e,        \  | 
169  |  |                                      type *elem)                            \  | 
170  | 0  |     {                                                                       \ | 
171  | 0  |         assert(elem->ossl_list_ ## name.list == NULL);                      \  | 
172  | 0  |         OSSL_LIST_DBG(elem->ossl_list_ ## name.list = list)                 \  | 
173  | 0  |         elem->ossl_list_ ## name.next = e;                                  \  | 
174  | 0  |         elem->ossl_list_ ## name.prev = e->ossl_list_ ## name.prev;         \  | 
175  | 0  |         if (e->ossl_list_ ## name.prev != NULL)                             \  | 
176  | 0  |             e->ossl_list_ ## name.prev->ossl_list_ ## name.next = elem;     \  | 
177  | 0  |         e->ossl_list_ ## name.prev = elem;                                  \  | 
178  | 0  |         if (list->alpha == e)                                               \  | 
179  | 0  |             list->alpha = elem;                                             \  | 
180  | 0  |         list->num_elems++;                                                  \  | 
181  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_insert_before Unexecuted instantiation: t1_lib.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_impl.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_method.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_obj.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_port.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_port.c:ossl_list_ch_insert_before Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_insert_before Unexecuted instantiation: quic_port.c:ossl_list_port_insert_before Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_insert_before Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_record_rx.c:ossl_list_rxe_insert_before Unexecuted instantiation: quic_record_tx.c:ossl_list_txe_insert_before Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_insert_before Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_insert_before Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_insert_before Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_txp.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_wire.c:ossl_list_urxe_insert_before Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_insert_before Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_insert_before Unexecuted instantiation: quic_channel.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_channel.c:ossl_list_ch_insert_before Unexecuted instantiation: quic_demux.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_engine.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_engine.c:ossl_list_port_insert_before Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_insert_before Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_insert_before Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_insert_before  | 
182  |  |     static ossl_unused ossl_inline void                                     \  | 
183  |  |     ossl_list_##name##_insert_after(OSSL_LIST(name) *list, type *e,         \  | 
184  |  |                                     type *elem)                             \  | 
185  | 0  |     {                                                                       \ | 
186  | 0  |         assert(elem->ossl_list_ ## name.list == NULL);                      \  | 
187  | 0  |         OSSL_LIST_DBG(elem->ossl_list_ ## name.list = list)                 \  | 
188  | 0  |         elem->ossl_list_ ## name.prev = e;                                  \  | 
189  | 0  |         elem->ossl_list_ ## name.next = e->ossl_list_ ## name.next;         \  | 
190  | 0  |         if (e->ossl_list_ ## name.next != NULL)                             \  | 
191  | 0  |             e->ossl_list_ ## name.next->ossl_list_ ## name.prev = elem;     \  | 
192  | 0  |         e->ossl_list_ ## name.next = elem;                                  \  | 
193  | 0  |         if (list->omega == e)                                               \  | 
194  | 0  |             list->omega = elem;                                             \  | 
195  | 0  |         list->num_elems++;                                                  \  | 
196  | 0  |     }                                                                       \ Unexecuted instantiation: ssl_lib.c:ossl_list_urxe_insert_after Unexecuted instantiation: t1_lib.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_impl.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_method.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_obj.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_port.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_port.c:ossl_list_ch_insert_after Unexecuted instantiation: quic_port.c:ossl_list_incoming_ch_insert_after Unexecuted instantiation: quic_port.c:ossl_list_port_insert_after Unexecuted instantiation: quic_reactor_wait_ctx.c:ossl_list_quic_reactor_wait_slot_insert_after Unexecuted instantiation: quic_record_rx.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_record_util.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_rstream.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_rstream.c:ossl_list_uint_set_insert_after Unexecuted instantiation: quic_sf_list.c:ossl_list_uint_set_insert_after Unexecuted instantiation: quic_sf_list.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_sstream.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_sstream.c:ossl_list_uint_set_insert_after Unexecuted instantiation: quic_stream_map.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_thread_assist.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_txp.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_wire.c:ossl_list_urxe_insert_after Unexecuted instantiation: rec_layer_s3.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_ackm.c:ossl_list_uint_set_insert_after Unexecuted instantiation: quic_ackm.c:ossl_list_tx_history_insert_after Unexecuted instantiation: quic_channel.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_channel.c:ossl_list_ch_insert_after Unexecuted instantiation: quic_engine.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_engine.c:ossl_list_port_insert_after Unexecuted instantiation: quic_fifd.c:ossl_list_urxe_insert_after Unexecuted instantiation: quic_fifd.c:ossl_list_tx_history_insert_after Unexecuted instantiation: quic_rx_depack.c:ossl_list_urxe_insert_after  | 
197  |  |     struct ossl_list_st_ ## name  | 
198  |  |  | 
199  |  | # define DEFINE_LIST_OF(name, type)                                         \  | 
200  |  |     DECLARE_LIST_OF(name, type);                                            \  | 
201  |  |     DEFINE_LIST_OF_IMPL(name, type)  | 
202  |  |  | 
203  |  | #endif  |