git: 7b676698856e - main - pf: simplify structs with anonymous unions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 03 May 2023 09:59:25 UTC
The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=7b676698856ec4604b2b93f4fa917767bfbfa66e commit 7b676698856ec4604b2b93f4fa917767bfbfa66e Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2023-05-03 06:02:43 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-05-03 08:24:20 +0000 pf: simplify structs with anonymous unions Rather than playing preprocessor hacks use actual anonymous unions. No functional change. Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/net/pfvar.h | 24 +++++++++--------------- sys/netpfil/pf/pf.h | 20 +++++--------------- sys/netpfil/pf/pf_table.c | 26 ++++++++++---------------- 3 files changed, 24 insertions(+), 46 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index c1550f2c30e6..412453f8dd25 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -1704,32 +1704,26 @@ struct pfioc_state_kill { struct pfioc_states { int ps_len; union { - caddr_t psu_buf; - struct pfsync_state *psu_states; - } ps_u; -#define ps_buf ps_u.psu_buf -#define ps_states ps_u.psu_states + caddr_t ps_buf; + struct pfsync_state *ps_states; + }; }; struct pfioc_states_v2 { int ps_len; uint64_t ps_req_version; union { - caddr_t psu_buf; - struct pf_state_export *psu_states; - } ps_u; -#define ps_buf ps_u.psu_buf -#define ps_states ps_u.psu_states + caddr_t ps_buf; + struct pf_state_export *ps_states; + }; }; struct pfioc_src_nodes { int psn_len; union { - caddr_t psu_buf; - struct pf_src_node *psu_src_nodes; - } psn_u; -#define psn_buf psn_u.psu_buf -#define psn_src_nodes psn_u.psu_src_nodes + caddr_t psn_buf; + struct pf_src_node *psn_src_nodes; + }; }; struct pfioc_if { diff --git a/sys/netpfil/pf/pf.h b/sys/netpfil/pf/pf.h index f226232419f8..fc3ea6c9e1d3 100644 --- a/sys/netpfil/pf/pf.h +++ b/sys/netpfil/pf/pf.h @@ -233,11 +233,9 @@ struct pfi_kif_cmp { struct pfi_kif { char pfik_name[IFNAMSIZ]; union { - RB_ENTRY(pfi_kif) _pfik_tree; - LIST_ENTRY(pfi_kif) _pfik_list; - } _pfik_glue; -#define pfik_tree _pfik_glue._pfik_tree -#define pfik_list _pfik_glue._pfik_list + RB_ENTRY(pfi_kif) pfik_tree; + LIST_ENTRY(pfi_kif) pfik_list; + }; u_int64_t pfik_packets[2][2][2]; u_int64_t pfik_bytes[2][2][2]; u_int32_t pfik_tzero; @@ -275,12 +273,7 @@ struct pf_addr { u_int8_t addr8[16]; u_int16_t addr16[8]; u_int32_t addr32[4]; - } pfa; /* 128-bit address */ -#define v4 pfa.v4 -#define v6 pfa.v6 -#define addr8 pfa.addr8 -#define addr16 pfa.addr16 -#define addr32 pfa.addr32 + }; /* 128-bit address */ }; #define PFI_AFLAG_NETWORK 0x01 @@ -344,10 +337,7 @@ struct pf_poolhashkey { u_int8_t key8[16]; u_int16_t key16[8]; u_int32_t key32[4]; - } pfk; /* 128-bit hash key */ -#define key8 pfk.key8 -#define key16 pfk.key16 -#define key32 pfk.key32 + }; /* 128-bit hash key */ }; struct pf_mape_portset { diff --git a/sys/netpfil/pf/pf_table.c b/sys/netpfil/pf/pf_table.c index ea37b077c651..28d63b54c2d8 100644 --- a/sys/netpfil/pf/pf_table.c +++ b/sys/netpfil/pf/pf_table.c @@ -107,21 +107,15 @@ struct pfr_walktree { PFRW_COUNTERS } pfrw_op; union { - struct pfr_addr *pfrw1_addr; - struct pfr_astats *pfrw1_astats; - struct pfr_kentryworkq *pfrw1_workq; - struct pfr_kentry *pfrw1_kentry; - struct pfi_dynaddr *pfrw1_dyn; - } pfrw_1; + struct pfr_addr *pfrw_addr; + struct pfr_astats *pfrw_astats; + struct pfr_kentryworkq *pfrw_workq; + struct pfr_kentry *pfrw_kentry; + struct pfi_dynaddr *pfrw_dyn; + }; int pfrw_free; int pfrw_flags; }; -#define pfrw_addr pfrw_1.pfrw1_addr -#define pfrw_astats pfrw_1.pfrw1_astats -#define pfrw_workq pfrw_1.pfrw1_workq -#define pfrw_kentry pfrw_1.pfrw1_kentry -#define pfrw_dyn pfrw_1.pfrw1_dyn -#define pfrw_cnt pfrw_free #define senderr(e) do { rv = (e); goto _bad; } while (0) @@ -740,7 +734,7 @@ pfr_enqueue_addrs(struct pfr_ktable *kt, struct pfr_kentryworkq *workq, pfr_walktree, &w)) printf("pfr_enqueue_addrs: IPv6 walktree failed.\n"); if (naddr != NULL) - *naddr = w.pfrw_cnt; + *naddr = w.pfrw_free; } static void @@ -1068,7 +1062,7 @@ pfr_walktree(struct radix_node *rn, void *arg) /* FALLTHROUGH */ case PFRW_ENQUEUE: SLIST_INSERT_HEAD(w->pfrw_workq, ke, pfrke_workq); - w->pfrw_cnt++; + w->pfrw_free++; break; case PFRW_GET_ADDRS: if (w->pfrw_free-- > 0) { @@ -1089,7 +1083,7 @@ pfr_walktree(struct radix_node *rn, void *arg) case PFRW_POOL_GET: if (ke->pfrke_not) break; /* negative entries are ignored */ - if (!w->pfrw_cnt--) { + if (!w->pfrw_free--) { w->pfrw_kentry = ke; return (1); /* finish search */ } @@ -2347,7 +2341,7 @@ pfr_kentry_byidx(struct pfr_ktable *kt, int idx, int af) bzero(&w, sizeof(w)); w.pfrw_op = PFRW_POOL_GET; - w.pfrw_cnt = idx; + w.pfrw_free = idx; switch (af) { #ifdef INET