Coverage Report

Created: 2025-07-11 06:12

/src/openvswitch/lib/ovs-atomic.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2013, 2014, 2017 Nicira, Inc.
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at:
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
#ifndef OVS_ATOMIC_H
18
#define OVS_ATOMIC_H 1
19
20
/* Atomic operations.
21
 *
22
 * This library implements atomic operations with an API based on the one
23
 * defined in C11.  It includes multiple implementations for compilers and
24
 * libraries with varying degrees of built-in support for C11, including a
25
 * fallback implementation for systems that have pthreads but no other support
26
 * for atomics.
27
 *
28
 * This comment describes the common features of all the implementations.
29
 *
30
 *
31
 * Types
32
 * =====
33
 *
34
 * The following atomic types are supported as typedefs for atomic versions of
35
 * the listed ordinary types:
36
 *
37
 *     ordinary type            atomic version
38
 *     -------------------      ----------------------
39
 *     bool                     atomic_bool
40
 *
41
 *     char                     atomic_char
42
 *     signed char              atomic_schar
43
 *     unsigned char            atomic_uchar
44
 *
45
 *     short                    atomic_short
46
 *     unsigned short           atomic_ushort
47
 *
48
 *     int                      atomic_int
49
 *     unsigned int             atomic_uint
50
 *
51
 *     long                     atomic_long
52
 *     unsigned long            atomic_ulong
53
 *
54
 *     long long                atomic_llong
55
 *     unsigned long long       atomic_ullong
56
 *
57
 *     size_t                   atomic_size_t
58
 *     ptrdiff_t                atomic_ptrdiff_t
59
 *
60
 *     intmax_t                 atomic_intmax_t
61
 *     uintmax_t                atomic_uintmax_t
62
 *
63
 *     intptr_t                 atomic_intptr_t
64
 *     uintptr_t                atomic_uintptr_t
65
 *
66
 *     uint8_t                  atomic_uint8_t     (*)
67
 *     uint16_t                 atomic_uint16_t    (*)
68
 *     uint32_t                 atomic_uint32_t    (*)
69
 *     int8_t                   atomic_int8_t      (*)
70
 *     int16_t                  atomic_int16_t     (*)
71
 *     int32_t                  atomic_int32_t     (*)
72
 *     uint64_t                 atomic_uint64_t    (*)
73
 *     int64_t                  atomic_int64_t     (*)
74
 *
75
 *     (*) Not specified by C11.
76
 *
77
 * Atomic types may also be obtained via ATOMIC(TYPE), e.g. ATOMIC(void *).
78
 * Only basic integer types and pointer types can be made atomic this way,
79
 * e.g. atomic structs are not supported.
80
 *
81
 * The atomic version of a type doesn't necessarily have the same size or
82
 * representation as the ordinary version; for example, atomic_int might be a
83
 * typedef for a struct.  The range of an atomic type does match the range of
84
 * the corresponding ordinary type.
85
 *
86
 * C11 says that one may use the _Atomic keyword in place of the typedef name,
87
 * e.g. "_Atomic int" instead of "atomic_int".  This library doesn't support
88
 * that.
89
 *
90
 *
91
 * Life Cycle
92
 * ==========
93
 *
94
 * To initialize an atomic variable at its point of definition, use:
95
 *
96
 *     static atomic_int ai = 123;
97
 *
98
 * To initialize an atomic variable in code, use atomic_init():
99
 *
100
 *     static atomic_int ai;
101
 * ...
102
 *     atomic_init(&ai, 123);
103
 *
104
 *
105
 * Barriers
106
 * ========
107
 *
108
 * enum memory_order specifies the strictness of a memory barrier.  It has the
109
 * following values:
110
 *
111
 *    memory_order_relaxed:
112
 *
113
 *        Only atomicity is provided, does not imply any memory ordering with
114
 *        respect to any other variable (atomic or not).  Relaxed accesses to
115
 *        the same atomic variable will be performed in the program order.
116
 *        The compiler and CPU are free to move memory accesses to other
117
 *        variables past the atomic operation.
118
 *
119
 *    memory_order_consume:
120
 *
121
 *        Memory accesses with data dependency on the result of the consume
122
 *        operation (atomic_read_explicit, or a load operation preceding a
123
 *        atomic_thread_fence) will not be moved prior to the consume
124
 *        barrier.  Non-data-dependent loads and stores can be reordered to
125
 *        happen before the consume barrier.
126
 *
127
 *        RCU is the prime example of the use of the consume barrier: The
128
 *        consume barrier guarantees that reads from a RCU protected object
129
 *        are performed after the RCU protected pointer is read.  A
130
 *        corresponding release barrier is used to store the modified RCU
131
 *        protected pointer after the RCU protected object has been fully
132
 *        constructed.  The synchronization between these barriers prevents
133
 *        the RCU "consumer" from seeing uninitialized data.
134
 *
135
 *        May not be used with atomic_store_explicit(), as consume semantics
136
 *        applies only to atomic loads.
137
 *
138
 *    memory_order_acquire:
139
 *
140
 *        Memory accesses after an acquire barrier cannot be moved before the
141
 *        barrier.  Memory accesses before an acquire barrier *can* be moved
142
 *        after it.
143
 *
144
 *        An atomic_thread_fence with memory_order_acquire does not have a
145
 *        load operation by itself; it prevents all following memory accesses
146
 *        from moving prior to preceding loads.
147
 *
148
 *        May not be used with atomic_store_explicit(), as acquire semantics
149
 *        applies only to atomic loads.
150
 *
151
 *    memory_order_release:
152
 *
153
 *        Memory accesses before a release barrier cannot be moved after the
154
 *        barrier.  Memory accesses after a release barrier *can* be moved
155
 *        before it.
156
 *
157
 *        An atomic_thread_fence with memory_order_release does not have a
158
 *        store operation by itself; it prevents all preceding memory accesses
159
 *        from moving past subsequent stores.
160
 *
161
 *        May not be used with atomic_read_explicit(), as release semantics
162
 *        applies only to atomic stores.
163
 *
164
 *    memory_order_acq_rel:
165
 *
166
 *        Memory accesses cannot be moved across an acquire-release barrier in
167
 *        either direction.
168
 *
169
 *        May only be used with atomic read-modify-write operations, as both
170
 *        load and store operation is required for acquire-release semantics.
171
 *
172
 *        An atomic_thread_fence with memory_order_acq_rel does not have
173
 *        either load or store operation by itself; it prevents all following
174
 *        memory accesses from moving prior to preceding loads and all
175
 *        preceding memory accesses from moving past subsequent stores.
176
 *
177
 *    memory_order_seq_cst:
178
 *
179
 *        Prevents movement of memory accesses like an acquire-release barrier,
180
 *        but whereas acquire-release synchronizes cooperating threads (using
181
 *        the same atomic variable), sequential-consistency synchronizes the
182
 *        whole system, providing a total order for stores on all atomic
183
 *        variables.
184
 *
185
 * OVS atomics require the memory_order to be passed as a compile-time constant
186
 * value, as some compiler implementations may perform poorly if the memory
187
 * order parameter is passed in as a run-time value.
188
 *
189
 * The following functions insert explicit barriers.  Most of the other atomic
190
 * functions also include barriers.
191
 *
192
 *     void atomic_thread_fence(memory_order order);
193
 *
194
 *         Inserts a barrier of the specified type.
195
 *
196
 *         For memory_order_relaxed, this is a no-op.
197
 *
198
 *     void atomic_signal_fence(memory_order order);
199
 *
200
 *         Inserts a barrier of the specified type, but only with respect to
201
 *         signal handlers in the same thread as the barrier.  This is
202
 *         basically a compiler optimization barrier, except for
203
 *         memory_order_relaxed, which is a no-op.
204
 *
205
 *
206
 * Atomic Operations
207
 * =================
208
 *
209
 * In this section, A is an atomic type and C is the corresponding non-atomic
210
 * type.
211
 *
212
 * The "store", "exchange", and "compare_exchange" primitives match C11:
213
 *
214
 *     void atomic_store(A *object, C value);
215
 *     void atomic_store_explicit(A *object, C value, memory_order);
216
 *
217
 *         Atomically stores 'value' into '*object', respecting the given
218
 *         memory order (or memory_order_seq_cst for atomic_store()).
219
 *
220
 *     bool atomic_compare_exchange_strong(A *object, C *expected, C desired);
221
 *     bool atomic_compare_exchange_weak(A *object, C *expected, C desired);
222
 *     bool atomic_compare_exchange_strong_explicit(A *object, C *expected,
223
 *                                                  C desired,
224
 *                                                  memory_order success,
225
 *                                                  memory_order failure);
226
 *     bool atomic_compare_exchange_weak_explicit(A *object, C *expected,
227
 *                                                  C desired,
228
 *                                                  memory_order success,
229
 *                                                  memory_order failure);
230
 *
231
 *         Atomically loads '*object' and compares it with '*expected' and if
232
 *         equal, stores 'desired' into '*object' (an atomic read-modify-write
233
 *         operation) and returns true, and if non-equal, stores the actual
234
 *         value of '*object' into '*expected' (an atomic load operation) and
235
 *         returns false.  The memory order for the successful case (atomic
236
 *         read-modify-write operation) is 'success', and for the unsuccessful
237
 *         case (atomic load operation) 'failure'.  'failure' may not be
238
 *         stronger than 'success'.
239
 *
240
 *         The weak forms may fail (returning false) also when '*object' equals
241
 *         '*expected'.  The strong form can be implemented by the weak form in
242
 *         a loop.  Some platforms can implement the weak form more
243
 *         efficiently, so it should be used if the application will need to
244
 *         loop anyway.
245
 *
246
 *     C atomic_exchange(A *object, C desired);
247
 *     C atomic_exchange_explicit(A *object, C desired, memory_order);
248
 *
249
 *         Atomically stores 'desired' into '*object', returning the value
250
 *         previously held.
251
 *
252
 * The following primitives differ from the C11 ones (and have different names)
253
 * because there does not appear to be a way to implement the standard
254
 * primitives in standard C:
255
 *
256
 *     void atomic_read(A *src, C *dst);
257
 *     void atomic_read_explicit(A *src, C *dst, memory_order);
258
 *
259
 *         Atomically loads a value from 'src', writing the value read into
260
 *         '*dst', respecting the given memory order (or memory_order_seq_cst
261
 *         for atomic_read()).
262
 *
263
 *     void atomic_add(A *rmw, C arg, C *orig);
264
 *     void atomic_sub(A *rmw, C arg, C *orig);
265
 *     void atomic_or(A *rmw, C arg, C *orig);
266
 *     void atomic_xor(A *rmw, C arg, C *orig);
267
 *     void atomic_and(A *rmw, C arg, C *orig);
268
 *     void atomic_add_explicit(A *rmw, C arg, C *orig, memory_order);
269
 *     void atomic_sub_explicit(A *rmw, C arg, C *orig, memory_order);
270
 *     void atomic_or_explicit(A *rmw, C arg, C *orig, memory_order);
271
 *     void atomic_xor_explicit(A *rmw, C arg, C *orig, memory_order);
272
 *     void atomic_and_explicit(A *rmw, C arg, C *orig, memory_order);
273
 *
274
 *         Atomically applies the given operation, with 'arg' as the second
275
 *         operand, to '*rmw', and stores the original value of '*rmw' into
276
 *         '*orig', respecting the given memory order (or memory_order_seq_cst
277
 *         if none is specified).
278
 *
279
 *         The results are similar to those that would be obtained with +=, -=,
280
 *         |=, ^=, or |= on non-atomic types.
281
 *
282
 *
283
 * atomic_flag
284
 * ===========
285
 *
286
 * atomic_flag is a typedef for a type with two states, set and clear, that
287
 * provides atomic test-and-set functionality.
288
 *
289
 *
290
 * Life Cycle
291
 * ----------
292
 *
293
 * ATOMIC_FLAG_INIT is an initializer for atomic_flag.  The initial state is
294
 * "clear".
295
 *
296
 * An atomic_flag may also be initialized at runtime with atomic_flag_clear().
297
 *
298
 *
299
 * Operations
300
 * ----------
301
 *
302
 * The following functions are available.
303
 *
304
 *     bool atomic_flag_test_and_set(atomic_flag *object)
305
 *     bool atomic_flag_test_and_set_explicit(atomic_flag *object,
306
 *                                            memory_order);
307
 *
308
 *         Atomically sets '*object', respecting the given memory order (or
309
 *         memory_order_seq_cst for atomic_flag_test_and_set()).  Returns the
310
 *         previous value of the flag (false for clear, true for set).
311
 *
312
 *     void atomic_flag_clear(atomic_flag *object);
313
 *     void atomic_flag_clear_explicit(atomic_flag *object, memory_order);
314
 *
315
 *         Atomically clears '*object', respecting the given memory order (or
316
 *         memory_order_seq_cst for atomic_flag_clear()).
317
 */
318
319
#include <limits.h>
320
#include <pthread.h>
321
#include <stdbool.h>
322
#include <stddef.h>
323
#include <stdint.h>
324
#include "compiler.h"
325
#include "util.h"
326
327
#define IN_OVS_ATOMIC_H
328
    #if __CHECKER__
329
        /* sparse doesn't understand some GCC extensions we use. */
330
        #include "ovs-atomic-pthreads.h"
331
    #elif __clang__ &&  __has_extension(c_atomic)
332
        #include "ovs-atomic-clang.h"
333
    #elif HAVE_ATOMIC && __cplusplus >= 201103L
334
        #include "ovs-atomic-c++.h"
335
    #elif HAVE_STDATOMIC_H && !defined(__cplusplus)
336
        #include "ovs-atomic-c11.h"
337
    #elif __GNUC__ >= 5 && !defined(__cplusplus)
338
        #error "GCC 5+ should have <stdatomic.h>"
339
    #elif __GNUC__ >= 5 || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 7)
340
        #include "ovs-atomic-gcc4.7+.h"
341
    #elif __GNUC__ && defined(__x86_64__)
342
        #include "ovs-atomic-x86_64.h"
343
    #elif __GNUC__ && defined(__i386__)
344
        #include "ovs-atomic-i586.h"
345
    #elif HAVE_GCC4_ATOMICS
346
        #include "ovs-atomic-gcc4+.h"
347
    #elif _MSC_VER
348
        #include "ovs-atomic-msvc.h"
349
    #else
350
        /* ovs-atomic-pthreads implementation is provided for portability.
351
         * It might be too slow for real use because Open vSwitch is
352
         * optimized for platforms where real atomic ops are available. */
353
        #include "ovs-atomic-pthreads.h"
354
    #endif
355
#undef IN_OVS_ATOMIC_H
356
357
#ifndef OMIT_STANDARD_ATOMIC_TYPES
358
typedef ATOMIC(bool)               atomic_bool;
359
360
typedef ATOMIC(char)               atomic_char;
361
typedef ATOMIC(signed char)        atomic_schar;
362
typedef ATOMIC(unsigned char)      atomic_uchar;
363
364
typedef ATOMIC(short)              atomic_short;
365
typedef ATOMIC(unsigned short)     atomic_ushort;
366
367
typedef ATOMIC(int)                atomic_int;
368
typedef ATOMIC(unsigned int)       atomic_uint;
369
370
typedef ATOMIC(long)               atomic_long;
371
typedef ATOMIC(unsigned long)      atomic_ulong;
372
373
typedef ATOMIC(long long)          atomic_llong;
374
typedef ATOMIC(unsigned long long) atomic_ullong;
375
376
typedef ATOMIC(size_t)             atomic_size_t;
377
typedef ATOMIC(ptrdiff_t)          atomic_ptrdiff_t;
378
379
typedef ATOMIC(intmax_t)           atomic_intmax_t;
380
typedef ATOMIC(uintmax_t)          atomic_uintmax_t;
381
382
typedef ATOMIC(intptr_t)           atomic_intptr_t;
383
typedef ATOMIC(uintptr_t)          atomic_uintptr_t;
384
#endif  /* !OMIT_STANDARD_ATOMIC_TYPES */
385
386
/* Nonstandard atomic types. */
387
typedef ATOMIC(uint8_t)   atomic_uint8_t;
388
typedef ATOMIC(uint16_t)  atomic_uint16_t;
389
typedef ATOMIC(uint32_t)  atomic_uint32_t;
390
typedef ATOMIC(uint64_t)  atomic_uint64_t;
391
392
typedef ATOMIC(int8_t)    atomic_int8_t;
393
typedef ATOMIC(int16_t)   atomic_int16_t;
394
typedef ATOMIC(int32_t)   atomic_int32_t;
395
typedef ATOMIC(int64_t)   atomic_int64_t;
396
397
/* Relaxed atomic operations.
398
 *
399
 * When an operation on an atomic variable is not expected to synchronize
400
 * with operations on other (atomic or non-atomic) variables, no memory
401
 * barriers are needed and the relaxed memory ordering can be used.  These
402
 * macros make such uses less daunting, but not invisible. */
403
#define atomic_store_relaxed(VAR, VALUE)                        \
404
0
    atomic_store_explicit(VAR, VALUE, memory_order_relaxed)
405
#define atomic_read_relaxed(VAR, DST)                                   \
406
0
    atomic_read_explicit(VAR, DST, memory_order_relaxed)
407
#define atomic_compare_exchange_strong_relaxed(DST, EXP, SRC)     \
408
    atomic_compare_exchange_strong_explicit(DST, EXP, SRC,        \
409
                                            memory_order_relaxed, \
410
                                            memory_order_relaxed)
411
#define atomic_compare_exchange_weak_relaxed(DST, EXP, SRC)       \
412
0
    atomic_compare_exchange_weak_explicit(DST, EXP, SRC,          \
413
                                          memory_order_relaxed,   \
414
                                          memory_order_relaxed)
415
#define atomic_add_relaxed(RMW, ARG, ORIG)                              \
416
9.85k
    atomic_add_explicit(RMW, ARG, ORIG, memory_order_relaxed)
417
#define atomic_sub_relaxed(RMW, ARG, ORIG)                              \
418
0
    atomic_sub_explicit(RMW, ARG, ORIG, memory_order_relaxed)
419
#define atomic_or_relaxed(RMW, ARG, ORIG)                               \
420
    atomic_or_explicit(RMW, ARG, ORIG, memory_order_relaxed)
421
#define atomic_xor_relaxed(RMW, ARG, ORIG)                              \
422
    atomic_xor_explicit(RMW, ARG, ORIG, memory_order_relaxed)
423
#define atomic_and_relaxed(RMW, ARG, ORIG)                              \
424
    atomic_and_explicit(RMW, ARG, ORIG, memory_order_relaxed)
425
#define atomic_flag_test_and_set_relaxed(FLAG)                          \
426
    atomic_flag_test_and_set_explicit(FLAG, memory_order_relaxed)
427
#define atomic_flag_clear_relaxed(FLAG)                         \
428
    atomic_flag_clear_explicit(FLAG, memory_order_relaxed)
429
430
/* A simplified atomic count.  Does not provide any synchronization with any
431
 * other variables.
432
 *
433
 * Typically a counter is not used to synchronize the state of any other
434
 * variables (with the notable exception of reference count, below).
435
 * This abstraction releaves the user from the memory order considerations,
436
 * and may make the code easier to read.
437
 *
438
 * We only support the unsigned int counters, as those are the most common. */
439
typedef struct atomic_count {
440
    atomic_uint count;
441
} atomic_count;
442
443
9.85k
#define ATOMIC_COUNT_INIT(VALUE) { VALUE }
444
445
static inline void
446
atomic_count_init(atomic_count *count, unsigned int value)
447
0
{
448
0
    atomic_init(&count->count, value);
449
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_init
Unexecuted instantiation: dp-packet.c:atomic_count_init
Unexecuted instantiation: flow.c:atomic_count_init
Unexecuted instantiation: netdev.c:atomic_count_init
Unexecuted instantiation: ofp-msgs.c:atomic_count_init
Unexecuted instantiation: ofp-util.c:atomic_count_init
Unexecuted instantiation: ovs-rcu.c:atomic_count_init
Unexecuted instantiation: ovs-router.c:atomic_count_init
Unexecuted instantiation: ovs-thread.c:atomic_count_init
Unexecuted instantiation: packets.c:atomic_count_init
Unexecuted instantiation: poll-loop.c:atomic_count_init
Unexecuted instantiation: pvector.c:atomic_count_init
Unexecuted instantiation: random.c:atomic_count_init
Unexecuted instantiation: seq.c:atomic_count_init
Unexecuted instantiation: socket-util.c:atomic_count_init
Unexecuted instantiation: timeval.c:atomic_count_init
Unexecuted instantiation: tnl-ports.c:atomic_count_init
Unexecuted instantiation: tun-metadata.c:atomic_count_init
Unexecuted instantiation: unixctl.c:atomic_count_init
Unexecuted instantiation: userspace-tso.c:atomic_count_init
Unexecuted instantiation: util.c:atomic_count_init
Unexecuted instantiation: uuid.c:atomic_count_init
Unexecuted instantiation: vlog.c:atomic_count_init
Unexecuted instantiation: netdev-linux.c:atomic_count_init
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_init
Unexecuted instantiation: netlink-socket.c:atomic_count_init
Unexecuted instantiation: route-table.c:atomic_count_init
Unexecuted instantiation: tc.c:atomic_count_init
Unexecuted instantiation: async-append-aio.c:atomic_count_init
Unexecuted instantiation: dirs.c:atomic_count_init
Unexecuted instantiation: classifier.c:atomic_count_init
Unexecuted instantiation: ccmap.c:atomic_count_init
Unexecuted instantiation: cmap.c:atomic_count_init
Unexecuted instantiation: command-line.c:atomic_count_init
Unexecuted instantiation: connectivity.c:atomic_count_init
Unexecuted instantiation: coverage.c:atomic_count_init
Unexecuted instantiation: dp-packet-gso.c:atomic_count_init
Unexecuted instantiation: dpif.c:atomic_count_init
Unexecuted instantiation: fatal-signal.c:atomic_count_init
Unexecuted instantiation: guarded-list.c:atomic_count_init
Unexecuted instantiation: hmap.c:atomic_count_init
Unexecuted instantiation: jsonrpc.c:atomic_count_init
Unexecuted instantiation: meta-flow.c:atomic_count_init
Unexecuted instantiation: netdev-offload.c:atomic_count_init
Unexecuted instantiation: netdev-vport.c:atomic_count_init
Unexecuted instantiation: netlink.c:atomic_count_init
Unexecuted instantiation: nx-match.c:atomic_count_init
Unexecuted instantiation: odp-execute.c:atomic_count_init
Unexecuted instantiation: odp-execute-private.c:atomic_count_init
Unexecuted instantiation: odp-util.c:atomic_count_init
Unexecuted instantiation: ofp-actions.c:atomic_count_init
Unexecuted instantiation: ofp-monitor.c:atomic_count_init
Unexecuted instantiation: ovs-replay.c:atomic_count_init
Unexecuted instantiation: stream.c:atomic_count_init
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_init
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_init
Unexecuted instantiation: daemon-unix.c:atomic_count_init
Unexecuted instantiation: stream-unix.c:atomic_count_init
Unexecuted instantiation: dpif-netlink.c:atomic_count_init
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_init
Unexecuted instantiation: netlink-conntrack.c:atomic_count_init
Unexecuted instantiation: netlink-notifier.c:atomic_count_init
Unexecuted instantiation: stream-ssl.c:atomic_count_init
Unexecuted instantiation: conntrack.c:atomic_count_init
Unexecuted instantiation: daemon.c:atomic_count_init
Unexecuted instantiation: dpif-netdev.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_init
Unexecuted instantiation: fat-rwlock.c:atomic_count_init
Unexecuted instantiation: hindex.c:atomic_count_init
Unexecuted instantiation: id-fpool.c:atomic_count_init
Unexecuted instantiation: ipf.c:atomic_count_init
Unexecuted instantiation: learn.c:atomic_count_init
Unexecuted instantiation: lockfile.c:atomic_count_init
Unexecuted instantiation: mpsc-queue.c:atomic_count_init
Unexecuted instantiation: ovs-numa.c:atomic_count_init
Unexecuted instantiation: process.c:atomic_count_init
Unexecuted instantiation: stream-replay.c:atomic_count_init
Unexecuted instantiation: dpdk-stub.c:atomic_count_init
Unexecuted instantiation: vswitch-idl.c:atomic_count_init
Unexecuted instantiation: conntrack-icmp.c:atomic_count_init
Unexecuted instantiation: conntrack-tcp.c:atomic_count_init
Unexecuted instantiation: conntrack-tp.c:atomic_count_init
Unexecuted instantiation: conntrack-other.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_init
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_init
Unexecuted instantiation: ovsdb-data.c:atomic_count_init
Unexecuted instantiation: ovsdb-idl.c:atomic_count_init
Unexecuted instantiation: ovsdb-types.c:atomic_count_init
Unexecuted instantiation: miniflow_target.c:atomic_count_init
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_init
450
451
static inline unsigned int
452
atomic_count_inc(atomic_count *count)
453
9.85k
{
454
9.85k
    unsigned int old;
455
456
9.85k
    atomic_add_relaxed(&count->count, 1u, &old);
457
458
9.85k
    return old;
459
9.85k
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_inc
Unexecuted instantiation: dp-packet.c:atomic_count_inc
Unexecuted instantiation: flow.c:atomic_count_inc
Unexecuted instantiation: netdev.c:atomic_count_inc
ofp-msgs.c:atomic_count_inc
Line
Count
Source
453
9.85k
{
454
9.85k
    unsigned int old;
455
456
9.85k
    atomic_add_relaxed(&count->count, 1u, &old);
457
458
9.85k
    return old;
459
9.85k
}
Unexecuted instantiation: ofp-util.c:atomic_count_inc
Unexecuted instantiation: ovs-rcu.c:atomic_count_inc
Unexecuted instantiation: ovs-router.c:atomic_count_inc
Unexecuted instantiation: ovs-thread.c:atomic_count_inc
Unexecuted instantiation: packets.c:atomic_count_inc
Unexecuted instantiation: poll-loop.c:atomic_count_inc
Unexecuted instantiation: pvector.c:atomic_count_inc
Unexecuted instantiation: random.c:atomic_count_inc
Unexecuted instantiation: seq.c:atomic_count_inc
Unexecuted instantiation: socket-util.c:atomic_count_inc
Unexecuted instantiation: timeval.c:atomic_count_inc
Unexecuted instantiation: tnl-ports.c:atomic_count_inc
Unexecuted instantiation: tun-metadata.c:atomic_count_inc
Unexecuted instantiation: unixctl.c:atomic_count_inc
Unexecuted instantiation: userspace-tso.c:atomic_count_inc
Unexecuted instantiation: util.c:atomic_count_inc
Unexecuted instantiation: uuid.c:atomic_count_inc
Unexecuted instantiation: vlog.c:atomic_count_inc
Unexecuted instantiation: netdev-linux.c:atomic_count_inc
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_inc
Unexecuted instantiation: netlink-socket.c:atomic_count_inc
Unexecuted instantiation: route-table.c:atomic_count_inc
Unexecuted instantiation: tc.c:atomic_count_inc
Unexecuted instantiation: async-append-aio.c:atomic_count_inc
Unexecuted instantiation: dirs.c:atomic_count_inc
Unexecuted instantiation: classifier.c:atomic_count_inc
Unexecuted instantiation: ccmap.c:atomic_count_inc
Unexecuted instantiation: cmap.c:atomic_count_inc
Unexecuted instantiation: command-line.c:atomic_count_inc
Unexecuted instantiation: connectivity.c:atomic_count_inc
Unexecuted instantiation: coverage.c:atomic_count_inc
Unexecuted instantiation: dp-packet-gso.c:atomic_count_inc
Unexecuted instantiation: dpif.c:atomic_count_inc
Unexecuted instantiation: fatal-signal.c:atomic_count_inc
Unexecuted instantiation: guarded-list.c:atomic_count_inc
Unexecuted instantiation: hmap.c:atomic_count_inc
Unexecuted instantiation: jsonrpc.c:atomic_count_inc
Unexecuted instantiation: meta-flow.c:atomic_count_inc
Unexecuted instantiation: netdev-offload.c:atomic_count_inc
Unexecuted instantiation: netdev-vport.c:atomic_count_inc
Unexecuted instantiation: netlink.c:atomic_count_inc
Unexecuted instantiation: nx-match.c:atomic_count_inc
Unexecuted instantiation: odp-execute.c:atomic_count_inc
Unexecuted instantiation: odp-execute-private.c:atomic_count_inc
Unexecuted instantiation: odp-util.c:atomic_count_inc
Unexecuted instantiation: ofp-actions.c:atomic_count_inc
Unexecuted instantiation: ofp-monitor.c:atomic_count_inc
Unexecuted instantiation: ovs-replay.c:atomic_count_inc
Unexecuted instantiation: stream.c:atomic_count_inc
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_inc
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_inc
Unexecuted instantiation: daemon-unix.c:atomic_count_inc
Unexecuted instantiation: stream-unix.c:atomic_count_inc
Unexecuted instantiation: dpif-netlink.c:atomic_count_inc
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_inc
Unexecuted instantiation: netlink-conntrack.c:atomic_count_inc
Unexecuted instantiation: netlink-notifier.c:atomic_count_inc
Unexecuted instantiation: stream-ssl.c:atomic_count_inc
Unexecuted instantiation: conntrack.c:atomic_count_inc
Unexecuted instantiation: daemon.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_inc
Unexecuted instantiation: fat-rwlock.c:atomic_count_inc
Unexecuted instantiation: hindex.c:atomic_count_inc
Unexecuted instantiation: id-fpool.c:atomic_count_inc
Unexecuted instantiation: ipf.c:atomic_count_inc
Unexecuted instantiation: learn.c:atomic_count_inc
Unexecuted instantiation: lockfile.c:atomic_count_inc
Unexecuted instantiation: mpsc-queue.c:atomic_count_inc
Unexecuted instantiation: ovs-numa.c:atomic_count_inc
Unexecuted instantiation: process.c:atomic_count_inc
Unexecuted instantiation: stream-replay.c:atomic_count_inc
Unexecuted instantiation: dpdk-stub.c:atomic_count_inc
Unexecuted instantiation: vswitch-idl.c:atomic_count_inc
Unexecuted instantiation: conntrack-icmp.c:atomic_count_inc
Unexecuted instantiation: conntrack-tcp.c:atomic_count_inc
Unexecuted instantiation: conntrack-tp.c:atomic_count_inc
Unexecuted instantiation: conntrack-other.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_inc
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_inc
Unexecuted instantiation: ovsdb-data.c:atomic_count_inc
Unexecuted instantiation: ovsdb-idl.c:atomic_count_inc
Unexecuted instantiation: ovsdb-types.c:atomic_count_inc
Unexecuted instantiation: miniflow_target.c:atomic_count_inc
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_inc
460
461
static inline unsigned int
462
atomic_count_dec(atomic_count *count)
463
0
{
464
0
    unsigned int old;
465
466
0
    atomic_sub_relaxed(&count->count, 1u, &old);
467
468
0
    return old;
469
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_dec
Unexecuted instantiation: dp-packet.c:atomic_count_dec
Unexecuted instantiation: flow.c:atomic_count_dec
Unexecuted instantiation: netdev.c:atomic_count_dec
Unexecuted instantiation: ofp-msgs.c:atomic_count_dec
Unexecuted instantiation: ofp-util.c:atomic_count_dec
Unexecuted instantiation: ovs-rcu.c:atomic_count_dec
Unexecuted instantiation: ovs-router.c:atomic_count_dec
Unexecuted instantiation: ovs-thread.c:atomic_count_dec
Unexecuted instantiation: packets.c:atomic_count_dec
Unexecuted instantiation: poll-loop.c:atomic_count_dec
Unexecuted instantiation: pvector.c:atomic_count_dec
Unexecuted instantiation: random.c:atomic_count_dec
Unexecuted instantiation: seq.c:atomic_count_dec
Unexecuted instantiation: socket-util.c:atomic_count_dec
Unexecuted instantiation: timeval.c:atomic_count_dec
Unexecuted instantiation: tnl-ports.c:atomic_count_dec
Unexecuted instantiation: tun-metadata.c:atomic_count_dec
Unexecuted instantiation: unixctl.c:atomic_count_dec
Unexecuted instantiation: userspace-tso.c:atomic_count_dec
Unexecuted instantiation: util.c:atomic_count_dec
Unexecuted instantiation: uuid.c:atomic_count_dec
Unexecuted instantiation: vlog.c:atomic_count_dec
Unexecuted instantiation: netdev-linux.c:atomic_count_dec
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_dec
Unexecuted instantiation: netlink-socket.c:atomic_count_dec
Unexecuted instantiation: route-table.c:atomic_count_dec
Unexecuted instantiation: tc.c:atomic_count_dec
Unexecuted instantiation: async-append-aio.c:atomic_count_dec
Unexecuted instantiation: dirs.c:atomic_count_dec
Unexecuted instantiation: classifier.c:atomic_count_dec
Unexecuted instantiation: ccmap.c:atomic_count_dec
Unexecuted instantiation: cmap.c:atomic_count_dec
Unexecuted instantiation: command-line.c:atomic_count_dec
Unexecuted instantiation: connectivity.c:atomic_count_dec
Unexecuted instantiation: coverage.c:atomic_count_dec
Unexecuted instantiation: dp-packet-gso.c:atomic_count_dec
Unexecuted instantiation: dpif.c:atomic_count_dec
Unexecuted instantiation: fatal-signal.c:atomic_count_dec
Unexecuted instantiation: guarded-list.c:atomic_count_dec
Unexecuted instantiation: hmap.c:atomic_count_dec
Unexecuted instantiation: jsonrpc.c:atomic_count_dec
Unexecuted instantiation: meta-flow.c:atomic_count_dec
Unexecuted instantiation: netdev-offload.c:atomic_count_dec
Unexecuted instantiation: netdev-vport.c:atomic_count_dec
Unexecuted instantiation: netlink.c:atomic_count_dec
Unexecuted instantiation: nx-match.c:atomic_count_dec
Unexecuted instantiation: odp-execute.c:atomic_count_dec
Unexecuted instantiation: odp-execute-private.c:atomic_count_dec
Unexecuted instantiation: odp-util.c:atomic_count_dec
Unexecuted instantiation: ofp-actions.c:atomic_count_dec
Unexecuted instantiation: ofp-monitor.c:atomic_count_dec
Unexecuted instantiation: ovs-replay.c:atomic_count_dec
Unexecuted instantiation: stream.c:atomic_count_dec
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_dec
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_dec
Unexecuted instantiation: daemon-unix.c:atomic_count_dec
Unexecuted instantiation: stream-unix.c:atomic_count_dec
Unexecuted instantiation: dpif-netlink.c:atomic_count_dec
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_dec
Unexecuted instantiation: netlink-conntrack.c:atomic_count_dec
Unexecuted instantiation: netlink-notifier.c:atomic_count_dec
Unexecuted instantiation: stream-ssl.c:atomic_count_dec
Unexecuted instantiation: conntrack.c:atomic_count_dec
Unexecuted instantiation: daemon.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_dec
Unexecuted instantiation: fat-rwlock.c:atomic_count_dec
Unexecuted instantiation: hindex.c:atomic_count_dec
Unexecuted instantiation: id-fpool.c:atomic_count_dec
Unexecuted instantiation: ipf.c:atomic_count_dec
Unexecuted instantiation: learn.c:atomic_count_dec
Unexecuted instantiation: lockfile.c:atomic_count_dec
Unexecuted instantiation: mpsc-queue.c:atomic_count_dec
Unexecuted instantiation: ovs-numa.c:atomic_count_dec
Unexecuted instantiation: process.c:atomic_count_dec
Unexecuted instantiation: stream-replay.c:atomic_count_dec
Unexecuted instantiation: dpdk-stub.c:atomic_count_dec
Unexecuted instantiation: vswitch-idl.c:atomic_count_dec
Unexecuted instantiation: conntrack-icmp.c:atomic_count_dec
Unexecuted instantiation: conntrack-tcp.c:atomic_count_dec
Unexecuted instantiation: conntrack-tp.c:atomic_count_dec
Unexecuted instantiation: conntrack-other.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_dec
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_dec
Unexecuted instantiation: ovsdb-data.c:atomic_count_dec
Unexecuted instantiation: ovsdb-idl.c:atomic_count_dec
Unexecuted instantiation: ovsdb-types.c:atomic_count_dec
Unexecuted instantiation: miniflow_target.c:atomic_count_dec
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_dec
470
471
static inline unsigned int
472
atomic_count_get(atomic_count *count)
473
0
{
474
0
    unsigned int value;
475
476
0
    atomic_read_relaxed(&count->count, &value);
477
478
0
    return value;
479
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_get
Unexecuted instantiation: dp-packet.c:atomic_count_get
Unexecuted instantiation: flow.c:atomic_count_get
Unexecuted instantiation: netdev.c:atomic_count_get
Unexecuted instantiation: ofp-msgs.c:atomic_count_get
Unexecuted instantiation: ofp-util.c:atomic_count_get
Unexecuted instantiation: ovs-rcu.c:atomic_count_get
Unexecuted instantiation: ovs-router.c:atomic_count_get
Unexecuted instantiation: ovs-thread.c:atomic_count_get
Unexecuted instantiation: packets.c:atomic_count_get
Unexecuted instantiation: poll-loop.c:atomic_count_get
Unexecuted instantiation: pvector.c:atomic_count_get
Unexecuted instantiation: random.c:atomic_count_get
Unexecuted instantiation: seq.c:atomic_count_get
Unexecuted instantiation: socket-util.c:atomic_count_get
Unexecuted instantiation: timeval.c:atomic_count_get
Unexecuted instantiation: tnl-ports.c:atomic_count_get
Unexecuted instantiation: tun-metadata.c:atomic_count_get
Unexecuted instantiation: unixctl.c:atomic_count_get
Unexecuted instantiation: userspace-tso.c:atomic_count_get
Unexecuted instantiation: util.c:atomic_count_get
Unexecuted instantiation: uuid.c:atomic_count_get
Unexecuted instantiation: vlog.c:atomic_count_get
Unexecuted instantiation: netdev-linux.c:atomic_count_get
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_get
Unexecuted instantiation: netlink-socket.c:atomic_count_get
Unexecuted instantiation: route-table.c:atomic_count_get
Unexecuted instantiation: tc.c:atomic_count_get
Unexecuted instantiation: async-append-aio.c:atomic_count_get
Unexecuted instantiation: dirs.c:atomic_count_get
Unexecuted instantiation: classifier.c:atomic_count_get
Unexecuted instantiation: ccmap.c:atomic_count_get
Unexecuted instantiation: cmap.c:atomic_count_get
Unexecuted instantiation: command-line.c:atomic_count_get
Unexecuted instantiation: connectivity.c:atomic_count_get
Unexecuted instantiation: coverage.c:atomic_count_get
Unexecuted instantiation: dp-packet-gso.c:atomic_count_get
Unexecuted instantiation: dpif.c:atomic_count_get
Unexecuted instantiation: fatal-signal.c:atomic_count_get
Unexecuted instantiation: guarded-list.c:atomic_count_get
Unexecuted instantiation: hmap.c:atomic_count_get
Unexecuted instantiation: jsonrpc.c:atomic_count_get
Unexecuted instantiation: meta-flow.c:atomic_count_get
Unexecuted instantiation: netdev-offload.c:atomic_count_get
Unexecuted instantiation: netdev-vport.c:atomic_count_get
Unexecuted instantiation: netlink.c:atomic_count_get
Unexecuted instantiation: nx-match.c:atomic_count_get
Unexecuted instantiation: odp-execute.c:atomic_count_get
Unexecuted instantiation: odp-execute-private.c:atomic_count_get
Unexecuted instantiation: odp-util.c:atomic_count_get
Unexecuted instantiation: ofp-actions.c:atomic_count_get
Unexecuted instantiation: ofp-monitor.c:atomic_count_get
Unexecuted instantiation: ovs-replay.c:atomic_count_get
Unexecuted instantiation: stream.c:atomic_count_get
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_get
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_get
Unexecuted instantiation: daemon-unix.c:atomic_count_get
Unexecuted instantiation: stream-unix.c:atomic_count_get
Unexecuted instantiation: dpif-netlink.c:atomic_count_get
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_get
Unexecuted instantiation: netlink-conntrack.c:atomic_count_get
Unexecuted instantiation: netlink-notifier.c:atomic_count_get
Unexecuted instantiation: stream-ssl.c:atomic_count_get
Unexecuted instantiation: conntrack.c:atomic_count_get
Unexecuted instantiation: daemon.c:atomic_count_get
Unexecuted instantiation: dpif-netdev.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_get
Unexecuted instantiation: fat-rwlock.c:atomic_count_get
Unexecuted instantiation: hindex.c:atomic_count_get
Unexecuted instantiation: id-fpool.c:atomic_count_get
Unexecuted instantiation: ipf.c:atomic_count_get
Unexecuted instantiation: learn.c:atomic_count_get
Unexecuted instantiation: lockfile.c:atomic_count_get
Unexecuted instantiation: mpsc-queue.c:atomic_count_get
Unexecuted instantiation: ovs-numa.c:atomic_count_get
Unexecuted instantiation: process.c:atomic_count_get
Unexecuted instantiation: stream-replay.c:atomic_count_get
Unexecuted instantiation: dpdk-stub.c:atomic_count_get
Unexecuted instantiation: vswitch-idl.c:atomic_count_get
Unexecuted instantiation: conntrack-icmp.c:atomic_count_get
Unexecuted instantiation: conntrack-tcp.c:atomic_count_get
Unexecuted instantiation: conntrack-tp.c:atomic_count_get
Unexecuted instantiation: conntrack-other.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_get
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_get
Unexecuted instantiation: ovsdb-data.c:atomic_count_get
Unexecuted instantiation: ovsdb-idl.c:atomic_count_get
Unexecuted instantiation: ovsdb-types.c:atomic_count_get
Unexecuted instantiation: miniflow_target.c:atomic_count_get
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_get
480
481
static inline void
482
atomic_count_set(atomic_count *count, unsigned int value)
483
0
{
484
0
    atomic_store_relaxed(&count->count, value);
485
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_set
Unexecuted instantiation: dp-packet.c:atomic_count_set
Unexecuted instantiation: flow.c:atomic_count_set
Unexecuted instantiation: netdev.c:atomic_count_set
Unexecuted instantiation: ofp-msgs.c:atomic_count_set
Unexecuted instantiation: ofp-util.c:atomic_count_set
Unexecuted instantiation: ovs-rcu.c:atomic_count_set
Unexecuted instantiation: ovs-router.c:atomic_count_set
Unexecuted instantiation: ovs-thread.c:atomic_count_set
Unexecuted instantiation: packets.c:atomic_count_set
Unexecuted instantiation: poll-loop.c:atomic_count_set
Unexecuted instantiation: pvector.c:atomic_count_set
Unexecuted instantiation: random.c:atomic_count_set
Unexecuted instantiation: seq.c:atomic_count_set
Unexecuted instantiation: socket-util.c:atomic_count_set
Unexecuted instantiation: timeval.c:atomic_count_set
Unexecuted instantiation: tnl-ports.c:atomic_count_set
Unexecuted instantiation: tun-metadata.c:atomic_count_set
Unexecuted instantiation: unixctl.c:atomic_count_set
Unexecuted instantiation: userspace-tso.c:atomic_count_set
Unexecuted instantiation: util.c:atomic_count_set
Unexecuted instantiation: uuid.c:atomic_count_set
Unexecuted instantiation: vlog.c:atomic_count_set
Unexecuted instantiation: netdev-linux.c:atomic_count_set
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_set
Unexecuted instantiation: netlink-socket.c:atomic_count_set
Unexecuted instantiation: route-table.c:atomic_count_set
Unexecuted instantiation: tc.c:atomic_count_set
Unexecuted instantiation: async-append-aio.c:atomic_count_set
Unexecuted instantiation: dirs.c:atomic_count_set
Unexecuted instantiation: classifier.c:atomic_count_set
Unexecuted instantiation: ccmap.c:atomic_count_set
Unexecuted instantiation: cmap.c:atomic_count_set
Unexecuted instantiation: command-line.c:atomic_count_set
Unexecuted instantiation: connectivity.c:atomic_count_set
Unexecuted instantiation: coverage.c:atomic_count_set
Unexecuted instantiation: dp-packet-gso.c:atomic_count_set
Unexecuted instantiation: dpif.c:atomic_count_set
Unexecuted instantiation: fatal-signal.c:atomic_count_set
Unexecuted instantiation: guarded-list.c:atomic_count_set
Unexecuted instantiation: hmap.c:atomic_count_set
Unexecuted instantiation: jsonrpc.c:atomic_count_set
Unexecuted instantiation: meta-flow.c:atomic_count_set
Unexecuted instantiation: netdev-offload.c:atomic_count_set
Unexecuted instantiation: netdev-vport.c:atomic_count_set
Unexecuted instantiation: netlink.c:atomic_count_set
Unexecuted instantiation: nx-match.c:atomic_count_set
Unexecuted instantiation: odp-execute.c:atomic_count_set
Unexecuted instantiation: odp-execute-private.c:atomic_count_set
Unexecuted instantiation: odp-util.c:atomic_count_set
Unexecuted instantiation: ofp-actions.c:atomic_count_set
Unexecuted instantiation: ofp-monitor.c:atomic_count_set
Unexecuted instantiation: ovs-replay.c:atomic_count_set
Unexecuted instantiation: stream.c:atomic_count_set
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_set
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_set
Unexecuted instantiation: daemon-unix.c:atomic_count_set
Unexecuted instantiation: stream-unix.c:atomic_count_set
Unexecuted instantiation: dpif-netlink.c:atomic_count_set
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_set
Unexecuted instantiation: netlink-conntrack.c:atomic_count_set
Unexecuted instantiation: netlink-notifier.c:atomic_count_set
Unexecuted instantiation: stream-ssl.c:atomic_count_set
Unexecuted instantiation: conntrack.c:atomic_count_set
Unexecuted instantiation: daemon.c:atomic_count_set
Unexecuted instantiation: dpif-netdev.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_set
Unexecuted instantiation: fat-rwlock.c:atomic_count_set
Unexecuted instantiation: hindex.c:atomic_count_set
Unexecuted instantiation: id-fpool.c:atomic_count_set
Unexecuted instantiation: ipf.c:atomic_count_set
Unexecuted instantiation: learn.c:atomic_count_set
Unexecuted instantiation: lockfile.c:atomic_count_set
Unexecuted instantiation: mpsc-queue.c:atomic_count_set
Unexecuted instantiation: ovs-numa.c:atomic_count_set
Unexecuted instantiation: process.c:atomic_count_set
Unexecuted instantiation: stream-replay.c:atomic_count_set
Unexecuted instantiation: dpdk-stub.c:atomic_count_set
Unexecuted instantiation: vswitch-idl.c:atomic_count_set
Unexecuted instantiation: conntrack-icmp.c:atomic_count_set
Unexecuted instantiation: conntrack-tcp.c:atomic_count_set
Unexecuted instantiation: conntrack-tp.c:atomic_count_set
Unexecuted instantiation: conntrack-other.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_set
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_set
Unexecuted instantiation: ovsdb-data.c:atomic_count_set
Unexecuted instantiation: ovsdb-idl.c:atomic_count_set
Unexecuted instantiation: ovsdb-types.c:atomic_count_set
Unexecuted instantiation: miniflow_target.c:atomic_count_set
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_set
486
487
static inline uint64_t
488
atomic_count_inc64(atomic_uint64_t *counter)
489
0
{
490
0
    uint64_t old;
491
492
0
    atomic_add_relaxed(counter, 1ull, &old);
493
494
0
    return old;
495
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_inc64
Unexecuted instantiation: dp-packet.c:atomic_count_inc64
Unexecuted instantiation: flow.c:atomic_count_inc64
Unexecuted instantiation: netdev.c:atomic_count_inc64
Unexecuted instantiation: ofp-msgs.c:atomic_count_inc64
Unexecuted instantiation: ofp-util.c:atomic_count_inc64
Unexecuted instantiation: ovs-rcu.c:atomic_count_inc64
Unexecuted instantiation: ovs-router.c:atomic_count_inc64
Unexecuted instantiation: ovs-thread.c:atomic_count_inc64
Unexecuted instantiation: packets.c:atomic_count_inc64
Unexecuted instantiation: poll-loop.c:atomic_count_inc64
Unexecuted instantiation: pvector.c:atomic_count_inc64
Unexecuted instantiation: random.c:atomic_count_inc64
Unexecuted instantiation: seq.c:atomic_count_inc64
Unexecuted instantiation: socket-util.c:atomic_count_inc64
Unexecuted instantiation: timeval.c:atomic_count_inc64
Unexecuted instantiation: tnl-ports.c:atomic_count_inc64
Unexecuted instantiation: tun-metadata.c:atomic_count_inc64
Unexecuted instantiation: unixctl.c:atomic_count_inc64
Unexecuted instantiation: userspace-tso.c:atomic_count_inc64
Unexecuted instantiation: util.c:atomic_count_inc64
Unexecuted instantiation: uuid.c:atomic_count_inc64
Unexecuted instantiation: vlog.c:atomic_count_inc64
Unexecuted instantiation: netdev-linux.c:atomic_count_inc64
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_inc64
Unexecuted instantiation: netlink-socket.c:atomic_count_inc64
Unexecuted instantiation: route-table.c:atomic_count_inc64
Unexecuted instantiation: tc.c:atomic_count_inc64
Unexecuted instantiation: async-append-aio.c:atomic_count_inc64
Unexecuted instantiation: dirs.c:atomic_count_inc64
Unexecuted instantiation: classifier.c:atomic_count_inc64
Unexecuted instantiation: ccmap.c:atomic_count_inc64
Unexecuted instantiation: cmap.c:atomic_count_inc64
Unexecuted instantiation: command-line.c:atomic_count_inc64
Unexecuted instantiation: connectivity.c:atomic_count_inc64
Unexecuted instantiation: coverage.c:atomic_count_inc64
Unexecuted instantiation: dp-packet-gso.c:atomic_count_inc64
Unexecuted instantiation: dpif.c:atomic_count_inc64
Unexecuted instantiation: fatal-signal.c:atomic_count_inc64
Unexecuted instantiation: guarded-list.c:atomic_count_inc64
Unexecuted instantiation: hmap.c:atomic_count_inc64
Unexecuted instantiation: jsonrpc.c:atomic_count_inc64
Unexecuted instantiation: meta-flow.c:atomic_count_inc64
Unexecuted instantiation: netdev-offload.c:atomic_count_inc64
Unexecuted instantiation: netdev-vport.c:atomic_count_inc64
Unexecuted instantiation: netlink.c:atomic_count_inc64
Unexecuted instantiation: nx-match.c:atomic_count_inc64
Unexecuted instantiation: odp-execute.c:atomic_count_inc64
Unexecuted instantiation: odp-execute-private.c:atomic_count_inc64
Unexecuted instantiation: odp-util.c:atomic_count_inc64
Unexecuted instantiation: ofp-actions.c:atomic_count_inc64
Unexecuted instantiation: ofp-monitor.c:atomic_count_inc64
Unexecuted instantiation: ovs-replay.c:atomic_count_inc64
Unexecuted instantiation: stream.c:atomic_count_inc64
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_inc64
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_inc64
Unexecuted instantiation: daemon-unix.c:atomic_count_inc64
Unexecuted instantiation: stream-unix.c:atomic_count_inc64
Unexecuted instantiation: dpif-netlink.c:atomic_count_inc64
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_inc64
Unexecuted instantiation: netlink-conntrack.c:atomic_count_inc64
Unexecuted instantiation: netlink-notifier.c:atomic_count_inc64
Unexecuted instantiation: stream-ssl.c:atomic_count_inc64
Unexecuted instantiation: conntrack.c:atomic_count_inc64
Unexecuted instantiation: daemon.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_inc64
Unexecuted instantiation: fat-rwlock.c:atomic_count_inc64
Unexecuted instantiation: hindex.c:atomic_count_inc64
Unexecuted instantiation: id-fpool.c:atomic_count_inc64
Unexecuted instantiation: ipf.c:atomic_count_inc64
Unexecuted instantiation: learn.c:atomic_count_inc64
Unexecuted instantiation: lockfile.c:atomic_count_inc64
Unexecuted instantiation: mpsc-queue.c:atomic_count_inc64
Unexecuted instantiation: ovs-numa.c:atomic_count_inc64
Unexecuted instantiation: process.c:atomic_count_inc64
Unexecuted instantiation: stream-replay.c:atomic_count_inc64
Unexecuted instantiation: dpdk-stub.c:atomic_count_inc64
Unexecuted instantiation: vswitch-idl.c:atomic_count_inc64
Unexecuted instantiation: conntrack-icmp.c:atomic_count_inc64
Unexecuted instantiation: conntrack-tcp.c:atomic_count_inc64
Unexecuted instantiation: conntrack-tp.c:atomic_count_inc64
Unexecuted instantiation: conntrack-other.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_inc64
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_inc64
Unexecuted instantiation: ovsdb-data.c:atomic_count_inc64
Unexecuted instantiation: ovsdb-idl.c:atomic_count_inc64
Unexecuted instantiation: ovsdb-types.c:atomic_count_inc64
Unexecuted instantiation: miniflow_target.c:atomic_count_inc64
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_inc64
496
497
static inline uint64_t
498
atomic_count_dec64(atomic_uint64_t *counter)
499
0
{
500
0
    uint64_t old;
501
502
0
    atomic_sub_relaxed(counter, 1ull, &old);
503
504
0
    return old;
505
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_dec64
Unexecuted instantiation: dp-packet.c:atomic_count_dec64
Unexecuted instantiation: flow.c:atomic_count_dec64
Unexecuted instantiation: netdev.c:atomic_count_dec64
Unexecuted instantiation: ofp-msgs.c:atomic_count_dec64
Unexecuted instantiation: ofp-util.c:atomic_count_dec64
Unexecuted instantiation: ovs-rcu.c:atomic_count_dec64
Unexecuted instantiation: ovs-router.c:atomic_count_dec64
Unexecuted instantiation: ovs-thread.c:atomic_count_dec64
Unexecuted instantiation: packets.c:atomic_count_dec64
Unexecuted instantiation: poll-loop.c:atomic_count_dec64
Unexecuted instantiation: pvector.c:atomic_count_dec64
Unexecuted instantiation: random.c:atomic_count_dec64
Unexecuted instantiation: seq.c:atomic_count_dec64
Unexecuted instantiation: socket-util.c:atomic_count_dec64
Unexecuted instantiation: timeval.c:atomic_count_dec64
Unexecuted instantiation: tnl-ports.c:atomic_count_dec64
Unexecuted instantiation: tun-metadata.c:atomic_count_dec64
Unexecuted instantiation: unixctl.c:atomic_count_dec64
Unexecuted instantiation: userspace-tso.c:atomic_count_dec64
Unexecuted instantiation: util.c:atomic_count_dec64
Unexecuted instantiation: uuid.c:atomic_count_dec64
Unexecuted instantiation: vlog.c:atomic_count_dec64
Unexecuted instantiation: netdev-linux.c:atomic_count_dec64
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_dec64
Unexecuted instantiation: netlink-socket.c:atomic_count_dec64
Unexecuted instantiation: route-table.c:atomic_count_dec64
Unexecuted instantiation: tc.c:atomic_count_dec64
Unexecuted instantiation: async-append-aio.c:atomic_count_dec64
Unexecuted instantiation: dirs.c:atomic_count_dec64
Unexecuted instantiation: classifier.c:atomic_count_dec64
Unexecuted instantiation: ccmap.c:atomic_count_dec64
Unexecuted instantiation: cmap.c:atomic_count_dec64
Unexecuted instantiation: command-line.c:atomic_count_dec64
Unexecuted instantiation: connectivity.c:atomic_count_dec64
Unexecuted instantiation: coverage.c:atomic_count_dec64
Unexecuted instantiation: dp-packet-gso.c:atomic_count_dec64
Unexecuted instantiation: dpif.c:atomic_count_dec64
Unexecuted instantiation: fatal-signal.c:atomic_count_dec64
Unexecuted instantiation: guarded-list.c:atomic_count_dec64
Unexecuted instantiation: hmap.c:atomic_count_dec64
Unexecuted instantiation: jsonrpc.c:atomic_count_dec64
Unexecuted instantiation: meta-flow.c:atomic_count_dec64
Unexecuted instantiation: netdev-offload.c:atomic_count_dec64
Unexecuted instantiation: netdev-vport.c:atomic_count_dec64
Unexecuted instantiation: netlink.c:atomic_count_dec64
Unexecuted instantiation: nx-match.c:atomic_count_dec64
Unexecuted instantiation: odp-execute.c:atomic_count_dec64
Unexecuted instantiation: odp-execute-private.c:atomic_count_dec64
Unexecuted instantiation: odp-util.c:atomic_count_dec64
Unexecuted instantiation: ofp-actions.c:atomic_count_dec64
Unexecuted instantiation: ofp-monitor.c:atomic_count_dec64
Unexecuted instantiation: ovs-replay.c:atomic_count_dec64
Unexecuted instantiation: stream.c:atomic_count_dec64
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_dec64
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_dec64
Unexecuted instantiation: daemon-unix.c:atomic_count_dec64
Unexecuted instantiation: stream-unix.c:atomic_count_dec64
Unexecuted instantiation: dpif-netlink.c:atomic_count_dec64
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_dec64
Unexecuted instantiation: netlink-conntrack.c:atomic_count_dec64
Unexecuted instantiation: netlink-notifier.c:atomic_count_dec64
Unexecuted instantiation: stream-ssl.c:atomic_count_dec64
Unexecuted instantiation: conntrack.c:atomic_count_dec64
Unexecuted instantiation: daemon.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_dec64
Unexecuted instantiation: fat-rwlock.c:atomic_count_dec64
Unexecuted instantiation: hindex.c:atomic_count_dec64
Unexecuted instantiation: id-fpool.c:atomic_count_dec64
Unexecuted instantiation: ipf.c:atomic_count_dec64
Unexecuted instantiation: learn.c:atomic_count_dec64
Unexecuted instantiation: lockfile.c:atomic_count_dec64
Unexecuted instantiation: mpsc-queue.c:atomic_count_dec64
Unexecuted instantiation: ovs-numa.c:atomic_count_dec64
Unexecuted instantiation: process.c:atomic_count_dec64
Unexecuted instantiation: stream-replay.c:atomic_count_dec64
Unexecuted instantiation: dpdk-stub.c:atomic_count_dec64
Unexecuted instantiation: vswitch-idl.c:atomic_count_dec64
Unexecuted instantiation: conntrack-icmp.c:atomic_count_dec64
Unexecuted instantiation: conntrack-tcp.c:atomic_count_dec64
Unexecuted instantiation: conntrack-tp.c:atomic_count_dec64
Unexecuted instantiation: conntrack-other.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_dec64
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_dec64
Unexecuted instantiation: ovsdb-data.c:atomic_count_dec64
Unexecuted instantiation: ovsdb-idl.c:atomic_count_dec64
Unexecuted instantiation: ovsdb-types.c:atomic_count_dec64
Unexecuted instantiation: miniflow_target.c:atomic_count_dec64
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_dec64
506
507
static inline uint64_t
508
atomic_count_get64(atomic_uint64_t *counter)
509
0
{
510
0
    uint64_t value;
511
0
512
0
    atomic_read_relaxed(counter, &value);
513
0
514
0
    return value;
515
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_get64
Unexecuted instantiation: dp-packet.c:atomic_count_get64
Unexecuted instantiation: flow.c:atomic_count_get64
Unexecuted instantiation: netdev.c:atomic_count_get64
Unexecuted instantiation: ofp-msgs.c:atomic_count_get64
Unexecuted instantiation: ofp-util.c:atomic_count_get64
Unexecuted instantiation: ovs-rcu.c:atomic_count_get64
Unexecuted instantiation: ovs-router.c:atomic_count_get64
Unexecuted instantiation: ovs-thread.c:atomic_count_get64
Unexecuted instantiation: packets.c:atomic_count_get64
Unexecuted instantiation: poll-loop.c:atomic_count_get64
Unexecuted instantiation: pvector.c:atomic_count_get64
Unexecuted instantiation: random.c:atomic_count_get64
Unexecuted instantiation: seq.c:atomic_count_get64
Unexecuted instantiation: socket-util.c:atomic_count_get64
Unexecuted instantiation: timeval.c:atomic_count_get64
Unexecuted instantiation: tnl-ports.c:atomic_count_get64
Unexecuted instantiation: tun-metadata.c:atomic_count_get64
Unexecuted instantiation: unixctl.c:atomic_count_get64
Unexecuted instantiation: userspace-tso.c:atomic_count_get64
Unexecuted instantiation: util.c:atomic_count_get64
Unexecuted instantiation: uuid.c:atomic_count_get64
Unexecuted instantiation: vlog.c:atomic_count_get64
Unexecuted instantiation: netdev-linux.c:atomic_count_get64
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_get64
Unexecuted instantiation: netlink-socket.c:atomic_count_get64
Unexecuted instantiation: route-table.c:atomic_count_get64
Unexecuted instantiation: tc.c:atomic_count_get64
Unexecuted instantiation: async-append-aio.c:atomic_count_get64
Unexecuted instantiation: dirs.c:atomic_count_get64
Unexecuted instantiation: classifier.c:atomic_count_get64
Unexecuted instantiation: ccmap.c:atomic_count_get64
Unexecuted instantiation: cmap.c:atomic_count_get64
Unexecuted instantiation: command-line.c:atomic_count_get64
Unexecuted instantiation: connectivity.c:atomic_count_get64
Unexecuted instantiation: coverage.c:atomic_count_get64
Unexecuted instantiation: dp-packet-gso.c:atomic_count_get64
Unexecuted instantiation: dpif.c:atomic_count_get64
Unexecuted instantiation: fatal-signal.c:atomic_count_get64
Unexecuted instantiation: guarded-list.c:atomic_count_get64
Unexecuted instantiation: hmap.c:atomic_count_get64
Unexecuted instantiation: jsonrpc.c:atomic_count_get64
Unexecuted instantiation: meta-flow.c:atomic_count_get64
Unexecuted instantiation: netdev-offload.c:atomic_count_get64
Unexecuted instantiation: netdev-vport.c:atomic_count_get64
Unexecuted instantiation: netlink.c:atomic_count_get64
Unexecuted instantiation: nx-match.c:atomic_count_get64
Unexecuted instantiation: odp-execute.c:atomic_count_get64
Unexecuted instantiation: odp-execute-private.c:atomic_count_get64
Unexecuted instantiation: odp-util.c:atomic_count_get64
Unexecuted instantiation: ofp-actions.c:atomic_count_get64
Unexecuted instantiation: ofp-monitor.c:atomic_count_get64
Unexecuted instantiation: ovs-replay.c:atomic_count_get64
Unexecuted instantiation: stream.c:atomic_count_get64
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_get64
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_get64
Unexecuted instantiation: daemon-unix.c:atomic_count_get64
Unexecuted instantiation: stream-unix.c:atomic_count_get64
Unexecuted instantiation: dpif-netlink.c:atomic_count_get64
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_get64
Unexecuted instantiation: netlink-conntrack.c:atomic_count_get64
Unexecuted instantiation: netlink-notifier.c:atomic_count_get64
Unexecuted instantiation: stream-ssl.c:atomic_count_get64
Unexecuted instantiation: conntrack.c:atomic_count_get64
Unexecuted instantiation: daemon.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_get64
Unexecuted instantiation: fat-rwlock.c:atomic_count_get64
Unexecuted instantiation: hindex.c:atomic_count_get64
Unexecuted instantiation: id-fpool.c:atomic_count_get64
Unexecuted instantiation: ipf.c:atomic_count_get64
Unexecuted instantiation: learn.c:atomic_count_get64
Unexecuted instantiation: lockfile.c:atomic_count_get64
Unexecuted instantiation: mpsc-queue.c:atomic_count_get64
Unexecuted instantiation: ovs-numa.c:atomic_count_get64
Unexecuted instantiation: process.c:atomic_count_get64
Unexecuted instantiation: stream-replay.c:atomic_count_get64
Unexecuted instantiation: dpdk-stub.c:atomic_count_get64
Unexecuted instantiation: vswitch-idl.c:atomic_count_get64
Unexecuted instantiation: conntrack-icmp.c:atomic_count_get64
Unexecuted instantiation: conntrack-tcp.c:atomic_count_get64
Unexecuted instantiation: conntrack-tp.c:atomic_count_get64
Unexecuted instantiation: conntrack-other.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_get64
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_get64
Unexecuted instantiation: ovsdb-data.c:atomic_count_get64
Unexecuted instantiation: ovsdb-idl.c:atomic_count_get64
Unexecuted instantiation: ovsdb-types.c:atomic_count_get64
Unexecuted instantiation: miniflow_target.c:atomic_count_get64
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_get64
516
517
static inline void
518
atomic_count_set64(atomic_uint64_t *counter, uint64_t value)
519
0
{
520
0
    atomic_store_relaxed(counter, value);
521
0
}
Unexecuted instantiation: flow_extract_target.c:atomic_count_set64
Unexecuted instantiation: dp-packet.c:atomic_count_set64
Unexecuted instantiation: flow.c:atomic_count_set64
Unexecuted instantiation: netdev.c:atomic_count_set64
Unexecuted instantiation: ofp-msgs.c:atomic_count_set64
Unexecuted instantiation: ofp-util.c:atomic_count_set64
Unexecuted instantiation: ovs-rcu.c:atomic_count_set64
Unexecuted instantiation: ovs-router.c:atomic_count_set64
Unexecuted instantiation: ovs-thread.c:atomic_count_set64
Unexecuted instantiation: packets.c:atomic_count_set64
Unexecuted instantiation: poll-loop.c:atomic_count_set64
Unexecuted instantiation: pvector.c:atomic_count_set64
Unexecuted instantiation: random.c:atomic_count_set64
Unexecuted instantiation: seq.c:atomic_count_set64
Unexecuted instantiation: socket-util.c:atomic_count_set64
Unexecuted instantiation: timeval.c:atomic_count_set64
Unexecuted instantiation: tnl-ports.c:atomic_count_set64
Unexecuted instantiation: tun-metadata.c:atomic_count_set64
Unexecuted instantiation: unixctl.c:atomic_count_set64
Unexecuted instantiation: userspace-tso.c:atomic_count_set64
Unexecuted instantiation: util.c:atomic_count_set64
Unexecuted instantiation: uuid.c:atomic_count_set64
Unexecuted instantiation: vlog.c:atomic_count_set64
Unexecuted instantiation: netdev-linux.c:atomic_count_set64
Unexecuted instantiation: netdev-offload-tc.c:atomic_count_set64
Unexecuted instantiation: netlink-socket.c:atomic_count_set64
Unexecuted instantiation: route-table.c:atomic_count_set64
Unexecuted instantiation: tc.c:atomic_count_set64
Unexecuted instantiation: async-append-aio.c:atomic_count_set64
Unexecuted instantiation: dirs.c:atomic_count_set64
Unexecuted instantiation: classifier.c:atomic_count_set64
Unexecuted instantiation: ccmap.c:atomic_count_set64
Unexecuted instantiation: cmap.c:atomic_count_set64
Unexecuted instantiation: command-line.c:atomic_count_set64
Unexecuted instantiation: connectivity.c:atomic_count_set64
Unexecuted instantiation: coverage.c:atomic_count_set64
Unexecuted instantiation: dp-packet-gso.c:atomic_count_set64
Unexecuted instantiation: dpif.c:atomic_count_set64
Unexecuted instantiation: fatal-signal.c:atomic_count_set64
Unexecuted instantiation: guarded-list.c:atomic_count_set64
Unexecuted instantiation: hmap.c:atomic_count_set64
Unexecuted instantiation: jsonrpc.c:atomic_count_set64
Unexecuted instantiation: meta-flow.c:atomic_count_set64
Unexecuted instantiation: netdev-offload.c:atomic_count_set64
Unexecuted instantiation: netdev-vport.c:atomic_count_set64
Unexecuted instantiation: netlink.c:atomic_count_set64
Unexecuted instantiation: nx-match.c:atomic_count_set64
Unexecuted instantiation: odp-execute.c:atomic_count_set64
Unexecuted instantiation: odp-execute-private.c:atomic_count_set64
Unexecuted instantiation: odp-util.c:atomic_count_set64
Unexecuted instantiation: ofp-actions.c:atomic_count_set64
Unexecuted instantiation: ofp-monitor.c:atomic_count_set64
Unexecuted instantiation: ovs-replay.c:atomic_count_set64
Unexecuted instantiation: stream.c:atomic_count_set64
Unexecuted instantiation: tnl-neigh-cache.c:atomic_count_set64
Unexecuted instantiation: netdev-native-tnl.c:atomic_count_set64
Unexecuted instantiation: daemon-unix.c:atomic_count_set64
Unexecuted instantiation: stream-unix.c:atomic_count_set64
Unexecuted instantiation: dpif-netlink.c:atomic_count_set64
Unexecuted instantiation: dpif-netlink-rtnl.c:atomic_count_set64
Unexecuted instantiation: netlink-conntrack.c:atomic_count_set64
Unexecuted instantiation: netlink-notifier.c:atomic_count_set64
Unexecuted instantiation: stream-ssl.c:atomic_count_set64
Unexecuted instantiation: conntrack.c:atomic_count_set64
Unexecuted instantiation: daemon.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-private-dfc.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-private-dpif.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-private-extract.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-perf.c:atomic_count_set64
Unexecuted instantiation: fat-rwlock.c:atomic_count_set64
Unexecuted instantiation: hindex.c:atomic_count_set64
Unexecuted instantiation: id-fpool.c:atomic_count_set64
Unexecuted instantiation: ipf.c:atomic_count_set64
Unexecuted instantiation: learn.c:atomic_count_set64
Unexecuted instantiation: lockfile.c:atomic_count_set64
Unexecuted instantiation: mpsc-queue.c:atomic_count_set64
Unexecuted instantiation: ovs-numa.c:atomic_count_set64
Unexecuted instantiation: process.c:atomic_count_set64
Unexecuted instantiation: stream-replay.c:atomic_count_set64
Unexecuted instantiation: dpdk-stub.c:atomic_count_set64
Unexecuted instantiation: vswitch-idl.c:atomic_count_set64
Unexecuted instantiation: conntrack-icmp.c:atomic_count_set64
Unexecuted instantiation: conntrack-tcp.c:atomic_count_set64
Unexecuted instantiation: conntrack-tp.c:atomic_count_set64
Unexecuted instantiation: conntrack-other.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-extract-study.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-lookup.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:atomic_count_set64
Unexecuted instantiation: dpif-netdev-lookup-generic.c:atomic_count_set64
Unexecuted instantiation: ovsdb-data.c:atomic_count_set64
Unexecuted instantiation: ovsdb-idl.c:atomic_count_set64
Unexecuted instantiation: ovsdb-types.c:atomic_count_set64
Unexecuted instantiation: miniflow_target.c:atomic_count_set64
Unexecuted instantiation: ofctl_parse_target.c:atomic_count_set64
522
523
/* Reference count. */
524
struct ovs_refcount {
525
    atomic_uint count;
526
};
527
528
/* Initializes 'refcount'.  The reference count is initially 1. */
529
static inline void
530
ovs_refcount_init(struct ovs_refcount *refcount)
531
0
{
532
0
    atomic_init(&refcount->count, 1u);
533
0
}
Unexecuted instantiation: flow_extract_target.c:ovs_refcount_init
Unexecuted instantiation: dp-packet.c:ovs_refcount_init
Unexecuted instantiation: flow.c:ovs_refcount_init
Unexecuted instantiation: netdev.c:ovs_refcount_init
Unexecuted instantiation: ofp-msgs.c:ovs_refcount_init
Unexecuted instantiation: ofp-util.c:ovs_refcount_init
Unexecuted instantiation: ovs-rcu.c:ovs_refcount_init
Unexecuted instantiation: ovs-router.c:ovs_refcount_init
Unexecuted instantiation: ovs-thread.c:ovs_refcount_init
Unexecuted instantiation: packets.c:ovs_refcount_init
Unexecuted instantiation: poll-loop.c:ovs_refcount_init
Unexecuted instantiation: pvector.c:ovs_refcount_init
Unexecuted instantiation: random.c:ovs_refcount_init
Unexecuted instantiation: seq.c:ovs_refcount_init
Unexecuted instantiation: socket-util.c:ovs_refcount_init
Unexecuted instantiation: timeval.c:ovs_refcount_init
Unexecuted instantiation: tnl-ports.c:ovs_refcount_init
Unexecuted instantiation: tun-metadata.c:ovs_refcount_init
Unexecuted instantiation: unixctl.c:ovs_refcount_init
Unexecuted instantiation: userspace-tso.c:ovs_refcount_init
Unexecuted instantiation: util.c:ovs_refcount_init
Unexecuted instantiation: uuid.c:ovs_refcount_init
Unexecuted instantiation: vlog.c:ovs_refcount_init
Unexecuted instantiation: netdev-linux.c:ovs_refcount_init
Unexecuted instantiation: netdev-offload-tc.c:ovs_refcount_init
Unexecuted instantiation: netlink-socket.c:ovs_refcount_init
Unexecuted instantiation: route-table.c:ovs_refcount_init
Unexecuted instantiation: tc.c:ovs_refcount_init
Unexecuted instantiation: async-append-aio.c:ovs_refcount_init
Unexecuted instantiation: dirs.c:ovs_refcount_init
Unexecuted instantiation: classifier.c:ovs_refcount_init
Unexecuted instantiation: ccmap.c:ovs_refcount_init
Unexecuted instantiation: cmap.c:ovs_refcount_init
Unexecuted instantiation: command-line.c:ovs_refcount_init
Unexecuted instantiation: connectivity.c:ovs_refcount_init
Unexecuted instantiation: coverage.c:ovs_refcount_init
Unexecuted instantiation: dp-packet-gso.c:ovs_refcount_init
Unexecuted instantiation: dpif.c:ovs_refcount_init
Unexecuted instantiation: fatal-signal.c:ovs_refcount_init
Unexecuted instantiation: guarded-list.c:ovs_refcount_init
Unexecuted instantiation: hmap.c:ovs_refcount_init
Unexecuted instantiation: jsonrpc.c:ovs_refcount_init
Unexecuted instantiation: meta-flow.c:ovs_refcount_init
Unexecuted instantiation: netdev-offload.c:ovs_refcount_init
Unexecuted instantiation: netdev-vport.c:ovs_refcount_init
Unexecuted instantiation: netlink.c:ovs_refcount_init
Unexecuted instantiation: nx-match.c:ovs_refcount_init
Unexecuted instantiation: odp-execute.c:ovs_refcount_init
Unexecuted instantiation: odp-execute-private.c:ovs_refcount_init
Unexecuted instantiation: odp-util.c:ovs_refcount_init
Unexecuted instantiation: ofp-actions.c:ovs_refcount_init
Unexecuted instantiation: ofp-monitor.c:ovs_refcount_init
Unexecuted instantiation: ovs-replay.c:ovs_refcount_init
Unexecuted instantiation: stream.c:ovs_refcount_init
Unexecuted instantiation: tnl-neigh-cache.c:ovs_refcount_init
Unexecuted instantiation: netdev-native-tnl.c:ovs_refcount_init
Unexecuted instantiation: daemon-unix.c:ovs_refcount_init
Unexecuted instantiation: stream-unix.c:ovs_refcount_init
Unexecuted instantiation: dpif-netlink.c:ovs_refcount_init
Unexecuted instantiation: dpif-netlink-rtnl.c:ovs_refcount_init
Unexecuted instantiation: netlink-conntrack.c:ovs_refcount_init
Unexecuted instantiation: netlink-notifier.c:ovs_refcount_init
Unexecuted instantiation: stream-ssl.c:ovs_refcount_init
Unexecuted instantiation: conntrack.c:ovs_refcount_init
Unexecuted instantiation: daemon.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-private-dfc.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-private-dpif.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-private-extract.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-perf.c:ovs_refcount_init
Unexecuted instantiation: fat-rwlock.c:ovs_refcount_init
Unexecuted instantiation: hindex.c:ovs_refcount_init
Unexecuted instantiation: id-fpool.c:ovs_refcount_init
Unexecuted instantiation: ipf.c:ovs_refcount_init
Unexecuted instantiation: learn.c:ovs_refcount_init
Unexecuted instantiation: lockfile.c:ovs_refcount_init
Unexecuted instantiation: mpsc-queue.c:ovs_refcount_init
Unexecuted instantiation: ovs-numa.c:ovs_refcount_init
Unexecuted instantiation: process.c:ovs_refcount_init
Unexecuted instantiation: stream-replay.c:ovs_refcount_init
Unexecuted instantiation: dpdk-stub.c:ovs_refcount_init
Unexecuted instantiation: vswitch-idl.c:ovs_refcount_init
Unexecuted instantiation: conntrack-icmp.c:ovs_refcount_init
Unexecuted instantiation: conntrack-tcp.c:ovs_refcount_init
Unexecuted instantiation: conntrack-tp.c:ovs_refcount_init
Unexecuted instantiation: conntrack-other.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-extract-study.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-lookup.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:ovs_refcount_init
Unexecuted instantiation: dpif-netdev-lookup-generic.c:ovs_refcount_init
Unexecuted instantiation: ovsdb-data.c:ovs_refcount_init
Unexecuted instantiation: ovsdb-idl.c:ovs_refcount_init
Unexecuted instantiation: ovsdb-types.c:ovs_refcount_init
Unexecuted instantiation: miniflow_target.c:ovs_refcount_init
Unexecuted instantiation: ofctl_parse_target.c:ovs_refcount_init
534
535
/* Increments 'refcount'.
536
 *
537
 * Does not provide a memory barrier, as the calling thread must have
538
 * protected access to the object already. */
539
static inline void
540
ovs_refcount_ref(struct ovs_refcount *refcount)
541
0
{
542
0
    unsigned int old_refcount;
543
544
0
    atomic_add_explicit(&refcount->count, 1u, &old_refcount,
545
0
                        memory_order_relaxed);
546
0
    ovs_assert(old_refcount > 0);
547
0
}
Unexecuted instantiation: flow_extract_target.c:ovs_refcount_ref
Unexecuted instantiation: dp-packet.c:ovs_refcount_ref
Unexecuted instantiation: flow.c:ovs_refcount_ref
Unexecuted instantiation: netdev.c:ovs_refcount_ref
Unexecuted instantiation: ofp-msgs.c:ovs_refcount_ref
Unexecuted instantiation: ofp-util.c:ovs_refcount_ref
Unexecuted instantiation: ovs-rcu.c:ovs_refcount_ref
Unexecuted instantiation: ovs-router.c:ovs_refcount_ref
Unexecuted instantiation: ovs-thread.c:ovs_refcount_ref
Unexecuted instantiation: packets.c:ovs_refcount_ref
Unexecuted instantiation: poll-loop.c:ovs_refcount_ref
Unexecuted instantiation: pvector.c:ovs_refcount_ref
Unexecuted instantiation: random.c:ovs_refcount_ref
Unexecuted instantiation: seq.c:ovs_refcount_ref
Unexecuted instantiation: socket-util.c:ovs_refcount_ref
Unexecuted instantiation: timeval.c:ovs_refcount_ref
Unexecuted instantiation: tnl-ports.c:ovs_refcount_ref
Unexecuted instantiation: tun-metadata.c:ovs_refcount_ref
Unexecuted instantiation: unixctl.c:ovs_refcount_ref
Unexecuted instantiation: userspace-tso.c:ovs_refcount_ref
Unexecuted instantiation: util.c:ovs_refcount_ref
Unexecuted instantiation: uuid.c:ovs_refcount_ref
Unexecuted instantiation: vlog.c:ovs_refcount_ref
Unexecuted instantiation: netdev-linux.c:ovs_refcount_ref
Unexecuted instantiation: netdev-offload-tc.c:ovs_refcount_ref
Unexecuted instantiation: netlink-socket.c:ovs_refcount_ref
Unexecuted instantiation: route-table.c:ovs_refcount_ref
Unexecuted instantiation: tc.c:ovs_refcount_ref
Unexecuted instantiation: async-append-aio.c:ovs_refcount_ref
Unexecuted instantiation: dirs.c:ovs_refcount_ref
Unexecuted instantiation: classifier.c:ovs_refcount_ref
Unexecuted instantiation: ccmap.c:ovs_refcount_ref
Unexecuted instantiation: cmap.c:ovs_refcount_ref
Unexecuted instantiation: command-line.c:ovs_refcount_ref
Unexecuted instantiation: connectivity.c:ovs_refcount_ref
Unexecuted instantiation: coverage.c:ovs_refcount_ref
Unexecuted instantiation: dp-packet-gso.c:ovs_refcount_ref
Unexecuted instantiation: dpif.c:ovs_refcount_ref
Unexecuted instantiation: fatal-signal.c:ovs_refcount_ref
Unexecuted instantiation: guarded-list.c:ovs_refcount_ref
Unexecuted instantiation: hmap.c:ovs_refcount_ref
Unexecuted instantiation: jsonrpc.c:ovs_refcount_ref
Unexecuted instantiation: meta-flow.c:ovs_refcount_ref
Unexecuted instantiation: netdev-offload.c:ovs_refcount_ref
Unexecuted instantiation: netdev-vport.c:ovs_refcount_ref
Unexecuted instantiation: netlink.c:ovs_refcount_ref
Unexecuted instantiation: nx-match.c:ovs_refcount_ref
Unexecuted instantiation: odp-execute.c:ovs_refcount_ref
Unexecuted instantiation: odp-execute-private.c:ovs_refcount_ref
Unexecuted instantiation: odp-util.c:ovs_refcount_ref
Unexecuted instantiation: ofp-actions.c:ovs_refcount_ref
Unexecuted instantiation: ofp-monitor.c:ovs_refcount_ref
Unexecuted instantiation: ovs-replay.c:ovs_refcount_ref
Unexecuted instantiation: stream.c:ovs_refcount_ref
Unexecuted instantiation: tnl-neigh-cache.c:ovs_refcount_ref
Unexecuted instantiation: netdev-native-tnl.c:ovs_refcount_ref
Unexecuted instantiation: daemon-unix.c:ovs_refcount_ref
Unexecuted instantiation: stream-unix.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netlink.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netlink-rtnl.c:ovs_refcount_ref
Unexecuted instantiation: netlink-conntrack.c:ovs_refcount_ref
Unexecuted instantiation: netlink-notifier.c:ovs_refcount_ref
Unexecuted instantiation: stream-ssl.c:ovs_refcount_ref
Unexecuted instantiation: conntrack.c:ovs_refcount_ref
Unexecuted instantiation: daemon.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-private-dfc.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-private-dpif.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-private-extract.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-perf.c:ovs_refcount_ref
Unexecuted instantiation: fat-rwlock.c:ovs_refcount_ref
Unexecuted instantiation: hindex.c:ovs_refcount_ref
Unexecuted instantiation: id-fpool.c:ovs_refcount_ref
Unexecuted instantiation: ipf.c:ovs_refcount_ref
Unexecuted instantiation: learn.c:ovs_refcount_ref
Unexecuted instantiation: lockfile.c:ovs_refcount_ref
Unexecuted instantiation: mpsc-queue.c:ovs_refcount_ref
Unexecuted instantiation: ovs-numa.c:ovs_refcount_ref
Unexecuted instantiation: process.c:ovs_refcount_ref
Unexecuted instantiation: stream-replay.c:ovs_refcount_ref
Unexecuted instantiation: dpdk-stub.c:ovs_refcount_ref
Unexecuted instantiation: vswitch-idl.c:ovs_refcount_ref
Unexecuted instantiation: conntrack-icmp.c:ovs_refcount_ref
Unexecuted instantiation: conntrack-tcp.c:ovs_refcount_ref
Unexecuted instantiation: conntrack-tp.c:ovs_refcount_ref
Unexecuted instantiation: conntrack-other.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-extract-study.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-lookup.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:ovs_refcount_ref
Unexecuted instantiation: dpif-netdev-lookup-generic.c:ovs_refcount_ref
Unexecuted instantiation: ovsdb-data.c:ovs_refcount_ref
Unexecuted instantiation: ovsdb-idl.c:ovs_refcount_ref
Unexecuted instantiation: ovsdb-types.c:ovs_refcount_ref
Unexecuted instantiation: miniflow_target.c:ovs_refcount_ref
Unexecuted instantiation: ofctl_parse_target.c:ovs_refcount_ref
548
549
/* Decrements 'refcount' and returns the previous reference count.  Often used
550
 * in this form:
551
 *
552
 * if (ovs_refcount_unref(&object->ref_cnt) == 1) {
553
 *     ...uninitialize object...
554
 *     free(object);
555
 * }
556
 *
557
 * Provides a release barrier making the preceding loads and stores to not be
558
 * reordered after the unref, and in case of the last reference provides also
559
 * an acquire barrier to keep all the following uninitialization from being
560
 * reordered before the atomic decrement operation.  Together these synchronize
561
 * any concurrent unref operations between each other. */
562
static inline unsigned int
563
ovs_refcount_unref(struct ovs_refcount *refcount)
564
0
{
565
0
    unsigned int old_refcount;
566
567
0
    atomic_sub_explicit(&refcount->count, 1u, &old_refcount,
568
0
                        memory_order_release);
569
0
    ovs_assert(old_refcount > 0);
570
0
    if (old_refcount == 1) {
571
        /* 'memory_order_release' above means that there are no (reordered)
572
         * accesses to the protected object from any thread at this point.
573
         * An acquire barrier is needed to keep all subsequent access to the
574
         * object's memory from being reordered before the atomic operation
575
         * above. */
576
0
        atomic_thread_fence(memory_order_acquire);
577
0
    }
578
0
    return old_refcount;
579
0
}
Unexecuted instantiation: flow_extract_target.c:ovs_refcount_unref
Unexecuted instantiation: dp-packet.c:ovs_refcount_unref
Unexecuted instantiation: flow.c:ovs_refcount_unref
Unexecuted instantiation: netdev.c:ovs_refcount_unref
Unexecuted instantiation: ofp-msgs.c:ovs_refcount_unref
Unexecuted instantiation: ofp-util.c:ovs_refcount_unref
Unexecuted instantiation: ovs-rcu.c:ovs_refcount_unref
Unexecuted instantiation: ovs-router.c:ovs_refcount_unref
Unexecuted instantiation: ovs-thread.c:ovs_refcount_unref
Unexecuted instantiation: packets.c:ovs_refcount_unref
Unexecuted instantiation: poll-loop.c:ovs_refcount_unref
Unexecuted instantiation: pvector.c:ovs_refcount_unref
Unexecuted instantiation: random.c:ovs_refcount_unref
Unexecuted instantiation: seq.c:ovs_refcount_unref
Unexecuted instantiation: socket-util.c:ovs_refcount_unref
Unexecuted instantiation: timeval.c:ovs_refcount_unref
Unexecuted instantiation: tnl-ports.c:ovs_refcount_unref
Unexecuted instantiation: tun-metadata.c:ovs_refcount_unref
Unexecuted instantiation: unixctl.c:ovs_refcount_unref
Unexecuted instantiation: userspace-tso.c:ovs_refcount_unref
Unexecuted instantiation: util.c:ovs_refcount_unref
Unexecuted instantiation: uuid.c:ovs_refcount_unref
Unexecuted instantiation: vlog.c:ovs_refcount_unref
Unexecuted instantiation: netdev-linux.c:ovs_refcount_unref
Unexecuted instantiation: netdev-offload-tc.c:ovs_refcount_unref
Unexecuted instantiation: netlink-socket.c:ovs_refcount_unref
Unexecuted instantiation: route-table.c:ovs_refcount_unref
Unexecuted instantiation: tc.c:ovs_refcount_unref
Unexecuted instantiation: async-append-aio.c:ovs_refcount_unref
Unexecuted instantiation: dirs.c:ovs_refcount_unref
Unexecuted instantiation: classifier.c:ovs_refcount_unref
Unexecuted instantiation: ccmap.c:ovs_refcount_unref
Unexecuted instantiation: cmap.c:ovs_refcount_unref
Unexecuted instantiation: command-line.c:ovs_refcount_unref
Unexecuted instantiation: connectivity.c:ovs_refcount_unref
Unexecuted instantiation: coverage.c:ovs_refcount_unref
Unexecuted instantiation: dp-packet-gso.c:ovs_refcount_unref
Unexecuted instantiation: dpif.c:ovs_refcount_unref
Unexecuted instantiation: fatal-signal.c:ovs_refcount_unref
Unexecuted instantiation: guarded-list.c:ovs_refcount_unref
Unexecuted instantiation: hmap.c:ovs_refcount_unref
Unexecuted instantiation: jsonrpc.c:ovs_refcount_unref
Unexecuted instantiation: meta-flow.c:ovs_refcount_unref
Unexecuted instantiation: netdev-offload.c:ovs_refcount_unref
Unexecuted instantiation: netdev-vport.c:ovs_refcount_unref
Unexecuted instantiation: netlink.c:ovs_refcount_unref
Unexecuted instantiation: nx-match.c:ovs_refcount_unref
Unexecuted instantiation: odp-execute.c:ovs_refcount_unref
Unexecuted instantiation: odp-execute-private.c:ovs_refcount_unref
Unexecuted instantiation: odp-util.c:ovs_refcount_unref
Unexecuted instantiation: ofp-actions.c:ovs_refcount_unref
Unexecuted instantiation: ofp-monitor.c:ovs_refcount_unref
Unexecuted instantiation: ovs-replay.c:ovs_refcount_unref
Unexecuted instantiation: stream.c:ovs_refcount_unref
Unexecuted instantiation: tnl-neigh-cache.c:ovs_refcount_unref
Unexecuted instantiation: netdev-native-tnl.c:ovs_refcount_unref
Unexecuted instantiation: daemon-unix.c:ovs_refcount_unref
Unexecuted instantiation: stream-unix.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netlink.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netlink-rtnl.c:ovs_refcount_unref
Unexecuted instantiation: netlink-conntrack.c:ovs_refcount_unref
Unexecuted instantiation: netlink-notifier.c:ovs_refcount_unref
Unexecuted instantiation: stream-ssl.c:ovs_refcount_unref
Unexecuted instantiation: conntrack.c:ovs_refcount_unref
Unexecuted instantiation: daemon.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-private-dfc.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-private-dpif.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-private-extract.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-perf.c:ovs_refcount_unref
Unexecuted instantiation: fat-rwlock.c:ovs_refcount_unref
Unexecuted instantiation: hindex.c:ovs_refcount_unref
Unexecuted instantiation: id-fpool.c:ovs_refcount_unref
Unexecuted instantiation: ipf.c:ovs_refcount_unref
Unexecuted instantiation: learn.c:ovs_refcount_unref
Unexecuted instantiation: lockfile.c:ovs_refcount_unref
Unexecuted instantiation: mpsc-queue.c:ovs_refcount_unref
Unexecuted instantiation: ovs-numa.c:ovs_refcount_unref
Unexecuted instantiation: process.c:ovs_refcount_unref
Unexecuted instantiation: stream-replay.c:ovs_refcount_unref
Unexecuted instantiation: dpdk-stub.c:ovs_refcount_unref
Unexecuted instantiation: vswitch-idl.c:ovs_refcount_unref
Unexecuted instantiation: conntrack-icmp.c:ovs_refcount_unref
Unexecuted instantiation: conntrack-tcp.c:ovs_refcount_unref
Unexecuted instantiation: conntrack-tp.c:ovs_refcount_unref
Unexecuted instantiation: conntrack-other.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-extract-study.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-lookup.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:ovs_refcount_unref
Unexecuted instantiation: dpif-netdev-lookup-generic.c:ovs_refcount_unref
Unexecuted instantiation: ovsdb-data.c:ovs_refcount_unref
Unexecuted instantiation: ovsdb-idl.c:ovs_refcount_unref
Unexecuted instantiation: ovsdb-types.c:ovs_refcount_unref
Unexecuted instantiation: miniflow_target.c:ovs_refcount_unref
Unexecuted instantiation: ofctl_parse_target.c:ovs_refcount_unref
580
581
/* Reads and returns 'refcount_''s current reference count.
582
 *
583
 * Does not provide a memory barrier.
584
 *
585
 * Rarely useful. */
586
static inline unsigned int
587
ovs_refcount_read(const struct ovs_refcount *refcount_)
588
0
{
589
0
    struct ovs_refcount *refcount
590
0
        = CONST_CAST(struct ovs_refcount *, refcount_);
591
0
    unsigned int count;
592
593
0
    atomic_read_explicit(&refcount->count, &count, memory_order_relaxed);
594
0
    return count;
595
0
}
Unexecuted instantiation: flow_extract_target.c:ovs_refcount_read
Unexecuted instantiation: dp-packet.c:ovs_refcount_read
Unexecuted instantiation: flow.c:ovs_refcount_read
Unexecuted instantiation: netdev.c:ovs_refcount_read
Unexecuted instantiation: ofp-msgs.c:ovs_refcount_read
Unexecuted instantiation: ofp-util.c:ovs_refcount_read
Unexecuted instantiation: ovs-rcu.c:ovs_refcount_read
Unexecuted instantiation: ovs-router.c:ovs_refcount_read
Unexecuted instantiation: ovs-thread.c:ovs_refcount_read
Unexecuted instantiation: packets.c:ovs_refcount_read
Unexecuted instantiation: poll-loop.c:ovs_refcount_read
Unexecuted instantiation: pvector.c:ovs_refcount_read
Unexecuted instantiation: random.c:ovs_refcount_read
Unexecuted instantiation: seq.c:ovs_refcount_read
Unexecuted instantiation: socket-util.c:ovs_refcount_read
Unexecuted instantiation: timeval.c:ovs_refcount_read
Unexecuted instantiation: tnl-ports.c:ovs_refcount_read
Unexecuted instantiation: tun-metadata.c:ovs_refcount_read
Unexecuted instantiation: unixctl.c:ovs_refcount_read
Unexecuted instantiation: userspace-tso.c:ovs_refcount_read
Unexecuted instantiation: util.c:ovs_refcount_read
Unexecuted instantiation: uuid.c:ovs_refcount_read
Unexecuted instantiation: vlog.c:ovs_refcount_read
Unexecuted instantiation: netdev-linux.c:ovs_refcount_read
Unexecuted instantiation: netdev-offload-tc.c:ovs_refcount_read
Unexecuted instantiation: netlink-socket.c:ovs_refcount_read
Unexecuted instantiation: route-table.c:ovs_refcount_read
Unexecuted instantiation: tc.c:ovs_refcount_read
Unexecuted instantiation: async-append-aio.c:ovs_refcount_read
Unexecuted instantiation: dirs.c:ovs_refcount_read
Unexecuted instantiation: classifier.c:ovs_refcount_read
Unexecuted instantiation: ccmap.c:ovs_refcount_read
Unexecuted instantiation: cmap.c:ovs_refcount_read
Unexecuted instantiation: command-line.c:ovs_refcount_read
Unexecuted instantiation: connectivity.c:ovs_refcount_read
Unexecuted instantiation: coverage.c:ovs_refcount_read
Unexecuted instantiation: dp-packet-gso.c:ovs_refcount_read
Unexecuted instantiation: dpif.c:ovs_refcount_read
Unexecuted instantiation: fatal-signal.c:ovs_refcount_read
Unexecuted instantiation: guarded-list.c:ovs_refcount_read
Unexecuted instantiation: hmap.c:ovs_refcount_read
Unexecuted instantiation: jsonrpc.c:ovs_refcount_read
Unexecuted instantiation: meta-flow.c:ovs_refcount_read
Unexecuted instantiation: netdev-offload.c:ovs_refcount_read
Unexecuted instantiation: netdev-vport.c:ovs_refcount_read
Unexecuted instantiation: netlink.c:ovs_refcount_read
Unexecuted instantiation: nx-match.c:ovs_refcount_read
Unexecuted instantiation: odp-execute.c:ovs_refcount_read
Unexecuted instantiation: odp-execute-private.c:ovs_refcount_read
Unexecuted instantiation: odp-util.c:ovs_refcount_read
Unexecuted instantiation: ofp-actions.c:ovs_refcount_read
Unexecuted instantiation: ofp-monitor.c:ovs_refcount_read
Unexecuted instantiation: ovs-replay.c:ovs_refcount_read
Unexecuted instantiation: stream.c:ovs_refcount_read
Unexecuted instantiation: tnl-neigh-cache.c:ovs_refcount_read
Unexecuted instantiation: netdev-native-tnl.c:ovs_refcount_read
Unexecuted instantiation: daemon-unix.c:ovs_refcount_read
Unexecuted instantiation: stream-unix.c:ovs_refcount_read
Unexecuted instantiation: dpif-netlink.c:ovs_refcount_read
Unexecuted instantiation: dpif-netlink-rtnl.c:ovs_refcount_read
Unexecuted instantiation: netlink-conntrack.c:ovs_refcount_read
Unexecuted instantiation: netlink-notifier.c:ovs_refcount_read
Unexecuted instantiation: stream-ssl.c:ovs_refcount_read
Unexecuted instantiation: conntrack.c:ovs_refcount_read
Unexecuted instantiation: daemon.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-private-dfc.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-private-dpif.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-private-extract.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-perf.c:ovs_refcount_read
Unexecuted instantiation: fat-rwlock.c:ovs_refcount_read
Unexecuted instantiation: hindex.c:ovs_refcount_read
Unexecuted instantiation: id-fpool.c:ovs_refcount_read
Unexecuted instantiation: ipf.c:ovs_refcount_read
Unexecuted instantiation: learn.c:ovs_refcount_read
Unexecuted instantiation: lockfile.c:ovs_refcount_read
Unexecuted instantiation: mpsc-queue.c:ovs_refcount_read
Unexecuted instantiation: ovs-numa.c:ovs_refcount_read
Unexecuted instantiation: process.c:ovs_refcount_read
Unexecuted instantiation: stream-replay.c:ovs_refcount_read
Unexecuted instantiation: dpdk-stub.c:ovs_refcount_read
Unexecuted instantiation: vswitch-idl.c:ovs_refcount_read
Unexecuted instantiation: conntrack-icmp.c:ovs_refcount_read
Unexecuted instantiation: conntrack-tcp.c:ovs_refcount_read
Unexecuted instantiation: conntrack-tp.c:ovs_refcount_read
Unexecuted instantiation: conntrack-other.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-extract-study.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-lookup.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:ovs_refcount_read
Unexecuted instantiation: dpif-netdev-lookup-generic.c:ovs_refcount_read
Unexecuted instantiation: ovsdb-data.c:ovs_refcount_read
Unexecuted instantiation: ovsdb-idl.c:ovs_refcount_read
Unexecuted instantiation: ovsdb-types.c:ovs_refcount_read
Unexecuted instantiation: miniflow_target.c:ovs_refcount_read
Unexecuted instantiation: ofctl_parse_target.c:ovs_refcount_read
596
597
/* Increments 'refcount', but only if it is non-zero.
598
 *
599
 * This may only be called for an object which is RCU protected during
600
 * this call.  This implies that its possible destruction is postponed
601
 * until all current RCU threads quiesce.
602
 *
603
 * Returns false if the refcount was zero.  In this case the object may
604
 * be safely accessed until the current thread quiesces, but no additional
605
 * references to the object may be taken.
606
 *
607
 * Does not provide a memory barrier, as the calling thread must have
608
 * RCU protected access to the object already.
609
 *
610
 * It is critical that we never increment a zero refcount to a
611
 * non-zero value, as whenever a refcount reaches the zero value, the
612
 * protected object may be irrevocably scheduled for deletion. */
613
static inline bool
614
ovs_refcount_try_ref_rcu(struct ovs_refcount *refcount)
615
0
{
616
0
    unsigned int count;
617
618
0
    atomic_read_explicit(&refcount->count, &count, memory_order_relaxed);
619
0
    do {
620
0
        if (count == 0) {
621
0
            return false;
622
0
        }
623
0
    } while (!atomic_compare_exchange_weak_explicit(&refcount->count, &count,
624
0
                                                    count + 1,
625
0
                                                    memory_order_relaxed,
626
0
                                                    memory_order_relaxed));
627
0
    return true;
628
0
}
Unexecuted instantiation: flow_extract_target.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dp-packet.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: flow.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netdev.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ofp-msgs.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ofp-util.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovs-rcu.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovs-router.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovs-thread.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: packets.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: poll-loop.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: pvector.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: random.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: seq.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: socket-util.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: timeval.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: tnl-ports.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: tun-metadata.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: unixctl.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: userspace-tso.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: util.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: uuid.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: vlog.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netdev-linux.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netdev-offload-tc.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netlink-socket.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: route-table.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: tc.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: async-append-aio.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dirs.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: classifier.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ccmap.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: cmap.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: command-line.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: connectivity.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: coverage.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dp-packet-gso.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: fatal-signal.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: guarded-list.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: hmap.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: jsonrpc.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: meta-flow.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netdev-offload.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netdev-vport.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netlink.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: nx-match.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: odp-execute.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: odp-execute-private.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: odp-util.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ofp-actions.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ofp-monitor.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovs-replay.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: stream.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: tnl-neigh-cache.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netdev-native-tnl.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: daemon-unix.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: stream-unix.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netlink.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netlink-rtnl.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netlink-conntrack.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: netlink-notifier.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: stream-ssl.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: conntrack.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: daemon.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-private-dfc.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-private-dpif.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-private-extract.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-perf.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: fat-rwlock.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: hindex.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: id-fpool.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ipf.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: learn.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: lockfile.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: mpsc-queue.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovs-numa.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: process.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: stream-replay.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpdk-stub.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: vswitch-idl.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: conntrack-icmp.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: conntrack-tcp.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: conntrack-tp.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: conntrack-other.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-extract-study.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-lookup.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: dpif-netdev-lookup-generic.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovsdb-data.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovsdb-idl.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ovsdb-types.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: miniflow_target.c:ovs_refcount_try_ref_rcu
Unexecuted instantiation: ofctl_parse_target.c:ovs_refcount_try_ref_rcu
629
630
/* Decrements 'refcount' and returns the previous reference count.  To
631
 * be used only when a memory barrier is already provided for the
632
 * protected object independently.
633
 *
634
 * For example:
635
 *
636
 * if (ovs_refcount_unref_relaxed(&object->ref_cnt) == 1) {
637
 *     ovsrcu_postpone(destructor_function, object);
638
 * }
639
 *
640
 * Here RCU quiescing already provides a full memory barrier.  No additional
641
 * barriers are needed here.
642
 *
643
 * Or:
644
 *
645
 * if (stp && ovs_refcount_unref_relaxed(&stp->ref_cnt) == 1) {
646
 *     ovs_mutex_lock(&mutex);
647
 *     ovs_list_remove(&stp->node);
648
 *     ovs_mutex_unlock(&mutex);
649
 *     free(stp->name);
650
 *     free(stp);
651
 * }
652
 *
653
 * Here a mutex is used to guard access to all of 'stp' apart from
654
 * 'ref_cnt'.  Hence all changes to 'stp' by other threads must be
655
 * visible when we get the mutex, and no access after the unlock can
656
 * be reordered to happen prior the lock operation.  No additional
657
 * barriers are needed here.
658
 */
659
static inline unsigned int
660
ovs_refcount_unref_relaxed(struct ovs_refcount *refcount)
661
0
{
662
0
    unsigned int old_refcount;
663
664
0
    atomic_sub_explicit(&refcount->count, 1u, &old_refcount,
665
0
                        memory_order_relaxed);
666
0
    ovs_assert(old_refcount > 0);
667
0
    return old_refcount;
668
0
}
Unexecuted instantiation: flow_extract_target.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dp-packet.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: flow.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netdev.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ofp-msgs.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ofp-util.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovs-rcu.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovs-router.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovs-thread.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: packets.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: poll-loop.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: pvector.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: random.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: seq.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: socket-util.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: timeval.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: tnl-ports.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: tun-metadata.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: unixctl.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: userspace-tso.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: util.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: uuid.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: vlog.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netdev-linux.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netdev-offload-tc.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netlink-socket.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: route-table.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: tc.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: async-append-aio.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dirs.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: classifier.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ccmap.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: cmap.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: command-line.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: connectivity.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: coverage.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dp-packet-gso.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: fatal-signal.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: guarded-list.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: hmap.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: jsonrpc.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: meta-flow.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netdev-offload.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netdev-vport.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netlink.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: nx-match.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: odp-execute.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: odp-execute-private.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: odp-util.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ofp-actions.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ofp-monitor.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovs-replay.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: stream.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: tnl-neigh-cache.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netdev-native-tnl.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: daemon-unix.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: stream-unix.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netlink.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netlink-rtnl.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netlink-conntrack.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: netlink-notifier.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: stream-ssl.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: conntrack.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: daemon.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-private-dfc.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-private-dpif.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-private-extract.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-perf.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: fat-rwlock.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: hindex.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: id-fpool.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ipf.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: learn.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: lockfile.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: mpsc-queue.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovs-numa.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: process.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: stream-replay.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpdk-stub.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: vswitch-idl.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: conntrack-icmp.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: conntrack-tcp.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: conntrack-tp.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: conntrack-other.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-extract-study.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-lookup.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-lookup-autovalidator.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: dpif-netdev-lookup-generic.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovsdb-data.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovsdb-idl.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ovsdb-types.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: miniflow_target.c:ovs_refcount_unref_relaxed
Unexecuted instantiation: ofctl_parse_target.c:ovs_refcount_unref_relaxed
669
670
#endif /* ovs-atomic.h */