git: bc9c45df1c29 - main - ipfw: use sparse initializer for dynamic opcodes

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Mon, 05 Jan 2026 18:03:27 UTC
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=bc9c45df1c29370e7bffd813987c08b2f6444b5d

commit bc9c45df1c29370e7bffd813987c08b2f6444b5d
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2026-01-05 18:03:10 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2026-01-05 18:03:10 +0000

    ipfw: use sparse initializer for dynamic opcodes
    
    No functional change.
---
 sys/netpfil/ipfw/ip_fw_dynamic.c | 48 ++++++++++++++++++++++++++--------------
 1 file changed, 32 insertions(+), 16 deletions(-)

diff --git a/sys/netpfil/ipfw/ip_fw_dynamic.c b/sys/netpfil/ipfw/ip_fw_dynamic.c
index 34e4e638e65a..d454024ac5cb 100644
--- a/sys/netpfil/ipfw/ip_fw_dynamic.c
+++ b/sys/netpfil/ipfw/ip_fw_dynamic.c
@@ -734,28 +734,44 @@ dyn_destroy(struct ip_fw_chain *ch, struct named_object *no)
 
 static struct opcode_obj_rewrite dyn_opcodes[] = {
 	{
-		O_KEEP_STATE, IPFW_TLV_STATE_NAME,
-		dyn_classify, dyn_update,
-		dyn_findbyname, dyn_findbykidx,
-		dyn_create, dyn_destroy
+		.opcode = O_KEEP_STATE,
+		.etlv = IPFW_TLV_STATE_NAME,
+		.classifier = dyn_classify,
+		.update = dyn_update,
+		.find_byname = dyn_findbyname,
+		.find_bykidx = dyn_findbykidx,
+		.create_object = dyn_create,
+		.destroy_object = dyn_destroy,
 	},
 	{
-		O_CHECK_STATE, IPFW_TLV_STATE_NAME,
-		dyn_classify, dyn_update,
-		dyn_findbyname, dyn_findbykidx,
-		dyn_create, dyn_destroy
+		.opcode = O_CHECK_STATE,
+		.etlv = IPFW_TLV_STATE_NAME,
+		.classifier = dyn_classify,
+		.update = dyn_update,
+		.find_byname = dyn_findbyname,
+		.find_bykidx = dyn_findbykidx,
+		.create_object = dyn_create,
+		.destroy_object = dyn_destroy,
 	},
 	{
-		O_PROBE_STATE, IPFW_TLV_STATE_NAME,
-		dyn_classify, dyn_update,
-		dyn_findbyname, dyn_findbykidx,
-		dyn_create, dyn_destroy
+		.opcode = O_PROBE_STATE,
+		.etlv = IPFW_TLV_STATE_NAME,
+		.classifier = dyn_classify,
+		.update = dyn_update,
+		.find_byname = dyn_findbyname,
+		.find_bykidx = dyn_findbykidx,
+		.create_object = dyn_create,
+		.destroy_object = dyn_destroy,
 	},
 	{
-		O_LIMIT, IPFW_TLV_STATE_NAME,
-		dyn_classify, dyn_update,
-		dyn_findbyname, dyn_findbykidx,
-		dyn_create, dyn_destroy
+		.opcode = O_LIMIT,
+		.etlv = IPFW_TLV_STATE_NAME,
+		.classifier = dyn_classify,
+		.update = dyn_update,
+		.find_byname = dyn_findbyname,
+		.find_bykidx = dyn_findbykidx,
+		.create_object = dyn_create,
+		.destroy_object = dyn_destroy,
 	},
 };