This source file includes following definitions.
- nf_conntrack_put
- nf_conntrack_get
1
2 #ifndef _NF_CONNTRACK_COMMON_H
3 #define _NF_CONNTRACK_COMMON_H
4
5 #include <linux/atomic.h>
6 #include <uapi/linux/netfilter/nf_conntrack_common.h>
7
8 struct ip_conntrack_stat {
9 unsigned int found;
10 unsigned int invalid;
11 unsigned int ignore;
12 unsigned int insert;
13 unsigned int insert_failed;
14 unsigned int drop;
15 unsigned int early_drop;
16 unsigned int error;
17 unsigned int expect_new;
18 unsigned int expect_create;
19 unsigned int expect_delete;
20 unsigned int search_restart;
21 };
22
23 #define NFCT_INFOMASK 7UL
24 #define NFCT_PTRMASK ~(NFCT_INFOMASK)
25
26 struct nf_conntrack {
27 atomic_t use;
28 };
29
30 void nf_conntrack_destroy(struct nf_conntrack *nfct);
31 static inline void nf_conntrack_put(struct nf_conntrack *nfct)
32 {
33 if (nfct && atomic_dec_and_test(&nfct->use))
34 nf_conntrack_destroy(nfct);
35 }
36 static inline void nf_conntrack_get(struct nf_conntrack *nfct)
37 {
38 if (nfct)
39 atomic_inc(&nfct->use);
40 }
41
42 #endif