MEDIUM: init: convert all trivial registration calls to initcalls
This switches explicit calls to various trivial registration methods for
keywords, muxes or protocols from constructors to INITCALL1 at stage
STG_REGISTER. All these calls have in common to consume a single pointer
and return void. Doing this removes 26 constructors. The following calls
were addressed :
- acl_register_keywords
- bind_register_keywords
- cfg_register_keywords
- cli_register_kw
- flt_register_keywords
- http_req_keywords_register
- http_res_keywords_register
- protocol_register
- register_mux_proto
- sample_register_convs
- sample_register_fetches
- srv_register_keywords
- tcp_req_conn_keywords_register
- tcp_req_cont_keywords_register
- tcp_req_sess_keywords_register
- tcp_res_cont_keywords_register
- flt_register_keywords
diff --git a/src/map.c b/src/map.c
index 7eb9e36..bfdb73d 100644
--- a/src/map.c
+++ b/src/map.c
@@ -13,6 +13,7 @@
#include <limits.h>
#include <stdio.h>
+#include <common/initcall.h>
#include <common/standard.h>
#include <types/applet.h>
@@ -1106,6 +1107,7 @@
{ { NULL }, NULL, NULL, NULL }
}};
+INITCALL1(STG_REGISTER, cli_register_kw, &cli_kws);
/* Note: must not be declared <const> as its list will be overwritten
*
@@ -1159,10 +1161,4 @@
{ /* END */ },
}};
-__attribute__((constructor))
-static void __map_init(void)
-{
- /* register format conversion keywords */
- sample_register_convs(&sample_conv_kws);
- cli_register_kw(&cli_kws);
-}
+INITCALL1(STG_REGISTER, sample_register_convs, &sample_conv_kws);