From 5de112c239ab97ebaba5a935d29504bff0586be7 Mon Sep 17 00:00:00 2001 From: Varsha Rao Date: Fri, 30 Jun 2017 14:56:19 +0530 Subject: include: Remove datatype_register(). Remove datatype_register() function and its calling __init functions. Add arguments of datatype_register() function to datatype array. Signed-off-by: Varsha Rao Signed-off-by: Pablo Neira Ayuso --- src/ct.c | 13 +++---------- src/datatype.c | 25 ++++++++++++++++++++----- src/exthdr.c | 7 +------ src/fib.c | 7 +------ src/meta.c | 44 +++++--------------------------------------- src/proto.c | 24 ++++++------------------ src/rt.c | 7 +------ 7 files changed, 37 insertions(+), 90 deletions(-) (limited to 'src') diff --git a/src/ct.c b/src/ct.c index c705750d..9b7140b3 100644 --- a/src/ct.c +++ b/src/ct.c @@ -44,7 +44,7 @@ static const struct symbol_table ct_state_tbl = { } }; -static const struct datatype ct_state_type = { +const struct datatype ct_state_type = { .type = TYPE_CT_STATE, .name = "ct_state", .desc = "conntrack state", @@ -63,7 +63,7 @@ static const struct symbol_table ct_dir_tbl = { } }; -static const struct datatype ct_dir_type = { +const struct datatype ct_dir_type = { .type = TYPE_CT_DIR, .name = "ct_dir", .desc = "conntrack direction", @@ -90,7 +90,7 @@ static const struct symbol_table ct_status_tbl = { }, }; -static const struct datatype ct_status_type = { +const struct datatype ct_status_type = { .type = TYPE_CT_STATUS, .name = "ct_status", .desc = "conntrack status", @@ -485,10 +485,3 @@ struct stmt *notrack_stmt_alloc(const struct location *loc) { return stmt_alloc(loc, ¬rack_stmt_ops); } - -static void __init ct_init(void) -{ - datatype_register(&ct_state_type); - datatype_register(&ct_dir_type); - datatype_register(&ct_status_type); -} diff --git a/src/datatype.c b/src/datatype.c index 899e9c0a..287ca009 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -40,25 +40,40 @@ static const struct datatype *datatypes[TYPE_MAX + 1] = { [TYPE_IP6ADDR] = &ip6addr_type, [TYPE_ETHERADDR] = ðeraddr_type, [TYPE_ETHERTYPE] = ðertype_type, + [TYPE_ARPOP] = &arpop_type, [TYPE_INET_PROTOCOL] = &inet_protocol_type, [TYPE_INET_SERVICE] = &inet_service_type, + [TYPE_ICMP_TYPE] = &icmp_type_type, + [TYPE_TCP_FLAG] = &tcp_flag_type, + [TYPE_DCCP_PKTTYPE] = &dccp_pkttype_type, + [TYPE_MH_TYPE] = &mh_type_type, [TYPE_TIME] = &time_type, [TYPE_MARK] = &mark_type, + [TYPE_IFINDEX] = &ifindex_type, [TYPE_ARPHRD] = &arphrd_type, + [TYPE_REALM] = &realm_type, + [TYPE_CLASSID] = &tchandle_type, + [TYPE_UID] = &uid_type, + [TYPE_GID] = &gid_type, + [TYPE_CT_STATE] = &ct_state_type, + [TYPE_CT_DIR] = &ct_dir_type, + [TYPE_CT_STATUS] = &ct_status_type, + [TYPE_ICMP6_TYPE] = &icmp6_type_type, + [TYPE_PKTTYPE] = &pkttype_type, [TYPE_ICMP_CODE] = &icmp_code_type, [TYPE_ICMPV6_CODE] = &icmpv6_code_type, [TYPE_ICMPX_CODE] = &icmpx_code_type, + [TYPE_DEVGROUP] = &devgroup_type, + [TYPE_DSCP] = &dscp_type, + [TYPE_ECN] = &ecn_type, + [TYPE_FIB_ADDR] = &fib_addr_type, [TYPE_BOOLEAN] = &boolean_type, }; -void datatype_register(const struct datatype *dtype) +const struct datatype *datatype_lookup(enum datatypes type) { BUILD_BUG_ON(TYPE_MAX & ~TYPE_MASK); - datatypes[dtype->type] = dtype; -} -const struct datatype *datatype_lookup(enum datatypes type) -{ if (type > TYPE_MAX) return NULL; return datatypes[type]; diff --git a/src/exthdr.c b/src/exthdr.c index f31deea5..a678115b 100644 --- a/src/exthdr.c +++ b/src/exthdr.c @@ -322,7 +322,7 @@ static const struct symbol_table mh_type_tbl = { }, }; -static const struct datatype mh_type_type = { +const struct datatype mh_type_type = { .type = TYPE_MH_TYPE, .name = "mh_type", .desc = "Mobility Header Type", @@ -343,8 +343,3 @@ const struct exthdr_desc exthdr_mh = { [MHHDR_CHECKSUM] = MH_FIELD("checksum", ip6mh_cksum, &integer_type), }, }; - -static void __init exthdr_init(void) -{ - datatype_register(&mh_type_type); -} diff --git a/src/fib.c b/src/fib.c index 28d2b1d9..b3488aff 100644 --- a/src/fib.c +++ b/src/fib.c @@ -42,7 +42,7 @@ static const struct symbol_table addrtype_tbl = { } }; -static const struct datatype fib_addr_type = { +const struct datatype fib_addr_type = { .type = TYPE_FIB_ADDR, .name = "fib_addrtype", .desc = "fib address type", @@ -141,8 +141,3 @@ struct expr *fib_expr_alloc(const struct location *loc, return expr; } - -static void __init fib_init(void) -{ - datatype_register(&fib_addr_type); -} diff --git a/src/meta.c b/src/meta.c index a3033185..e9334b86 100644 --- a/src/meta.c +++ b/src/meta.c @@ -47,29 +47,6 @@ static void __exit realm_table_exit(void) rt_symbol_table_free(realm_tbl); } -static void realm_type_print(const struct expr *expr, struct output_ctx *octx) -{ - return symbolic_constant_print(realm_tbl, expr, true, octx); -} - -static struct error_record *realm_type_parse(const struct expr *sym, - struct expr **res) -{ - return symbolic_constant_parse(sym, realm_tbl, res); -} - -static const struct datatype realm_type = { - .type = TYPE_REALM, - .name = "realm", - .desc = "routing realm", - .byteorder = BYTEORDER_HOST_ENDIAN, - .size = 4 * BITS_PER_BYTE, - .basetype = &integer_type, - .print = realm_type_print, - .parse = realm_type_parse, - .flags = DTYPE_F_PREFIX, -}; - static void tchandle_type_print(const struct expr *expr, struct output_ctx *octx) { @@ -139,7 +116,7 @@ err: return error(&sym->location, "Could not parse %s", sym->dtype->desc); } -static const struct datatype tchandle_type = { +const struct datatype tchandle_type = { .type = TYPE_CLASSID, .name = "classid", .desc = "TC classid", @@ -264,7 +241,7 @@ static struct error_record *uid_type_parse(const struct expr *sym, return NULL; } -static const struct datatype uid_type = { +const struct datatype uid_type = { .type = TYPE_UID, .name = "uid", .desc = "user ID", @@ -316,7 +293,7 @@ static struct error_record *gid_type_parse(const struct expr *sym, return NULL; } -static const struct datatype gid_type = { +const struct datatype gid_type = { .type = TYPE_GID, .name = "gid", .desc = "group ID", @@ -344,7 +321,7 @@ static void pkttype_type_print(const struct expr *expr, struct output_ctx *octx) return symbolic_constant_print(&pkttype_type_tbl, expr, false, octx); } -static const struct datatype pkttype_type = { +const struct datatype pkttype_type = { .type = TYPE_PKTTYPE, .name = "pkt_type", .desc = "packet type", @@ -378,7 +355,7 @@ static struct error_record *devgroup_type_parse(const struct expr *sym, return symbolic_constant_parse(sym, devgroup_tbl, res); } -static const struct datatype devgroup_type = { +const struct datatype devgroup_type = { .type = TYPE_DEVGROUP, .name = "devgroup", .desc = "devgroup name", @@ -621,17 +598,6 @@ struct stmt *meta_stmt_alloc(const struct location *loc, enum nft_meta_keys key, return stmt; } -static void __init meta_init(void) -{ - datatype_register(&ifindex_type); - datatype_register(&realm_type); - datatype_register(&tchandle_type); - datatype_register(&uid_type); - datatype_register(&gid_type); - datatype_register(&devgroup_type); - datatype_register(&pkttype_type); -} - /* * @expr: payload expression * @res: dependency expression diff --git a/src/proto.c b/src/proto.c index 64d06325..7ac0ee03 100644 --- a/src/proto.c +++ b/src/proto.c @@ -406,7 +406,7 @@ static const struct symbol_table tcp_flag_tbl = { }, }; -static const struct datatype tcp_flag_type = { +const struct datatype tcp_flag_type = { .type = TYPE_TCP_FLAG, .name = "tcp_flag", .desc = "TCP flag", @@ -467,7 +467,7 @@ static const struct symbol_table dccp_pkttype_tbl = { }, }; -static const struct datatype dccp_pkttype_type = { +const struct datatype dccp_pkttype_type = { .type = TYPE_DCCP_PKTTYPE, .name = "dccp_pkttype", .desc = "DCCP packet type", @@ -545,7 +545,7 @@ static const struct symbol_table dscp_type_tbl = { }, }; -static const struct datatype dscp_type = { +const struct datatype dscp_type = { .type = TYPE_DSCP, .name = "dscp", .desc = "Differentiated Services Code Point", @@ -567,7 +567,7 @@ static const struct symbol_table ecn_type_tbl = { }, }; -static const struct datatype ecn_type = { +const struct datatype ecn_type = { .type = TYPE_ECN, .name = "ecn", .desc = "Explicit Congestion Notification", @@ -662,7 +662,7 @@ static const struct symbol_table icmp6_type_tbl = { }, }; -static const struct datatype icmp6_type_type = { +const struct datatype icmp6_type_type = { .type = TYPE_ICMP6_TYPE, .name = "icmpv6_type", .desc = "ICMPv6 type", @@ -807,7 +807,7 @@ static const struct symbol_table arpop_tbl = { }, }; -static const struct datatype arpop_type = { +const struct datatype arpop_type = { .type = TYPE_ARPOP, .name = "arp_op", .desc = "ARP operation", @@ -960,15 +960,3 @@ const struct proto_desc proto_netdev = { [0] = PROTO_META_TEMPLATE("protocol", ðertype_type, NFT_META_PROTOCOL, 16), }, }; - -static void __init proto_init(void) -{ - datatype_register(&icmp_type_type); - datatype_register(&tcp_flag_type); - datatype_register(&dccp_pkttype_type); - datatype_register(&arpop_type); - datatype_register(ðertype_type); - datatype_register(&icmp6_type_type); - datatype_register(&dscp_type); - datatype_register(&ecn_type); -} diff --git a/src/rt.c b/src/rt.c index eb5f9c33..530ebe6e 100644 --- a/src/rt.c +++ b/src/rt.c @@ -45,7 +45,7 @@ static struct error_record *realm_type_parse(const struct expr *sym, return symbolic_constant_parse(sym, realm_tbl, res); } -static const struct datatype realm_type = { +const struct datatype realm_type = { .type = TYPE_REALM, .name = "realm", .desc = "routing realm", @@ -134,8 +134,3 @@ void rt_expr_update_type(struct proto_ctx *ctx, struct expr *expr) break; } } - -static void __init rt_init(void) -{ - datatype_register(&realm_type); -} -- cgit v1.2.3