From e6b5c341b94d357b0158ad74b12edd51399a4b87 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 11 Jan 2016 14:11:13 +0000 Subject: [PATCH] Inline LHASH_OF Make LHASH_OF use static inline functions. Add new lh_get_down_load and lh_set_down_load functions and their typesafe inline equivalents. Make lh_error a function instead of a macro. Reviewed-by: Rich Salz --- apps/openssl.c | 1 - apps/progs.h | 2 + apps/progs.pl | 2 + crypto/conf/conf_api.c | 5 +- crypto/engine/eng_int.h | 4 + crypto/engine/eng_table.c | 6 +- crypto/err/Makefile | 2 +- crypto/err/err.c | 4 +- crypto/err/err_lcl.h | 2 + crypto/include/internal/cryptlib.h | 4 + crypto/lhash/lhash.c | 15 +++ crypto/mem_dbg.c | 16 ++- crypto/objects/Makefile | 4 +- crypto/objects/o_names.c | 9 +- crypto/objects/o_names.h | 4 - crypto/objects/obj_dat.c | 8 +- crypto/objects/obj_lcl.h | 7 ++ include/openssl/err.h | 2 + include/openssl/lhash.h | 72 +++++++++---- include/openssl/safestack.h | 156 ----------------------------- util/mkstack.pl | 13 --- 21 files changed, 111 insertions(+), 227 deletions(-) create mode 100644 crypto/err/err_lcl.h delete mode 100644 crypto/objects/o_names.h create mode 100644 crypto/objects/obj_lcl.h diff --git a/apps/openssl.c b/apps/openssl.c index 411fe6980d..539de761f0 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -153,7 +153,6 @@ * required type of "FUNCTION*"). This removes the necessity for * macro-generated wrapper functions. */ -DECLARE_LHASH_OF(FUNCTION); static LHASH_OF(FUNCTION) *prog_init(void); static int do_cmd(LHASH_OF(FUNCTION) *prog, int argc, char *argv[]); static void list_pkey(void); diff --git a/apps/progs.h b/apps/progs.h index 4a59b64a50..400fefcbfd 100644 --- a/apps/progs.h +++ b/apps/progs.h @@ -16,6 +16,8 @@ typedef struct function_st { const OPTIONS *help; } FUNCTION; +DECLARE_LHASH_OF(FUNCTION); + extern int asn1parse_main(int argc, char *argv[]); extern int ca_main(int argc, char *argv[]); extern int ciphers_main(int argc, char *argv[]); diff --git a/apps/progs.pl b/apps/progs.pl index 065d954588..dd935cee0d 100644 --- a/apps/progs.pl +++ b/apps/progs.pl @@ -20,6 +20,8 @@ typedef struct function_st { const OPTIONS *help; } FUNCTION; +DECLARE_LHASH_OF(FUNCTION); + EOF grep(s/\.o//, @ARGV); diff --git a/crypto/conf/conf_api.c b/crypto/conf/conf_api.c index 3badf7fc44..3421ee3d00 100644 --- a/crypto/conf/conf_api.c +++ b/crypto/conf/conf_api.c @@ -202,9 +202,8 @@ void _CONF_free_data(CONF *conf) if (conf == NULL || conf->data == NULL) return; - lh_CONF_VALUE_down_load(conf->data) = 0; /* evil thing to make * sure the - * 'OPENSSL_free()' works as * - * expected */ + /* evil thing to make sure the 'OPENSSL_free()' works as expected */ + lh_CONF_VALUE_set_down_load(conf->data, 0); lh_CONF_VALUE_doall_arg(conf->data, LHASH_DOALL_ARG_FN(value_free_hash), LHASH_OF(CONF_VALUE), conf->data); diff --git a/crypto/engine/eng_int.h b/crypto/engine/eng_int.h index 8f775f5de7..e68ef44578 100644 --- a/crypto/engine/eng_int.h +++ b/crypto/engine/eng_int.h @@ -216,6 +216,10 @@ struct engine_st { struct engine_st *next; }; +typedef struct st_engine_pile ENGINE_PILE; + +DECLARE_LHASH_OF(ENGINE_PILE); + #ifdef __cplusplus } #endif diff --git a/crypto/engine/eng_table.c b/crypto/engine/eng_table.c index 5fd00ddc2c..73e72fe3d3 100644 --- a/crypto/engine/eng_table.c +++ b/crypto/engine/eng_table.c @@ -58,7 +58,7 @@ #include "eng_int.h" /* The type of the items in the table */ -typedef struct st_engine_pile { +struct st_engine_pile { /* The 'nid' of this algorithm/mode */ int nid; /* ENGINEs that implement this algorithm/mode. */ @@ -69,9 +69,7 @@ typedef struct st_engine_pile { * Zero if 'sk' is newer than the cached 'funct', non-zero otherwise */ int uptodate; -} ENGINE_PILE; - -DECLARE_LHASH_OF(ENGINE_PILE); +}; /* The type exposed in eng_int.h */ struct st_engine_table { diff --git a/crypto/err/Makefile b/crypto/err/Makefile index a49e37be8b..4db677d216 100644 --- a/crypto/err/Makefile +++ b/crypto/err/Makefile @@ -20,7 +20,7 @@ LIBOBJ=err.o err_all.o err_prn.o SRC= $(LIBSRC) -HEADER= +HEADER= err_lcl.h ALL= $(GENERAL) $(SRC) $(HEADER) diff --git a/crypto/err/err.c b/crypto/err/err.c index 77e8223de4..5ad5487b8f 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -119,9 +119,7 @@ #include #include #include - -DECLARE_LHASH_OF(ERR_STRING_DATA); -DECLARE_LHASH_OF(ERR_STATE); +#include "err_lcl.h" static void err_load_strings(int lib, ERR_STRING_DATA *str); diff --git a/crypto/err/err_lcl.h b/crypto/err/err_lcl.h new file mode 100644 index 0000000000..16404df4a4 --- /dev/null +++ b/crypto/err/err_lcl.h @@ -0,0 +1,2 @@ + +DECLARE_LHASH_OF(ERR_STATE); diff --git a/crypto/include/internal/cryptlib.h b/crypto/include/internal/cryptlib.h index 1265a042f2..041ab7ebe2 100644 --- a/crypto/include/internal/cryptlib.h +++ b/crypto/include/internal/cryptlib.h @@ -85,6 +85,10 @@ DEFINE_STACK_OF(EX_CALLBACK) DEFINE_STACK_OF(CRYPTO_dynlock) +typedef struct app_mem_info_st APP_INFO; +DECLARE_LHASH_OF(APP_INFO); +typedef struct mem_st MEM; +DECLARE_LHASH_OF(MEM); # ifndef OPENSSL_SYS_VMS # define X509_CERT_AREA OPENSSLDIR diff --git a/crypto/lhash/lhash.c b/crypto/lhash/lhash.c index 4018b60556..4642bda322 100644 --- a/crypto/lhash/lhash.c +++ b/crypto/lhash/lhash.c @@ -422,3 +422,18 @@ unsigned long lh_num_items(const _LHASH *lh) { return lh ? lh->num_items : 0; } + +unsigned long lh_get_down_load(const _LHASH *lh) +{ + return lh->down_load; +} + +void lh_set_down_load(_LHASH *lh, unsigned long down_load) +{ + lh->down_load = down_load; +} + +int lh_error(_LHASH *lh) +{ + return lh->error; +} diff --git a/crypto/mem_dbg.c b/crypto/mem_dbg.c index 6e93c8047e..36ce5f4eb4 100644 --- a/crypto/mem_dbg.c +++ b/crypto/mem_dbg.c @@ -139,10 +139,6 @@ static int mh_mode = CRYPTO_MEM_CHECK_OFF; #ifndef OPENSSL_NO_CRYPTO_MDEBUG static unsigned long order = 0; /* number of memory requests */ -DECLARE_LHASH_OF(MEM); -static LHASH_OF(MEM) *mh = NULL; /* hash-table of memory requests (address as - * key); access requires MALLOC2 lock */ - /*- * For application-defined information (static C-string `info') * to be displayed in memory leak list. @@ -150,25 +146,24 @@ static LHASH_OF(MEM) *mh = NULL; /* hash-table of memory requests (address as * OPENSSL_mem_debug_push("...") to push an entry, * OPENSSL_mem_debug_pop() to pop an entry, */ -typedef struct app_mem_info_st { +struct app_mem_info_st { CRYPTO_THREADID threadid; const char *file; int line; const char *info; struct app_mem_info_st *next; /* tail of thread's stack */ int references; -} APP_INFO; +}; /* * hash-table with those app_mem_info_st's that are at the * top of their thread's stack (with `thread' as key); access requires * MALLOC2 lock */ -DECLARE_LHASH_OF(APP_INFO); static LHASH_OF(APP_INFO) *amih = NULL; /* memory-block description */ -typedef struct mem_st { +struct mem_st { void *addr; int num; const char *file; @@ -181,7 +176,10 @@ typedef struct mem_st { void *array[30]; size_t array_siz; #endif -} MEM; +}; + +static LHASH_OF(MEM) *mh = NULL; /* hash-table of memory requests (address as + * key); access requires MALLOC2 lock */ /* num_disable > 0 iff mh_mode == CRYPTO_MEM_CHECK_ON (w/o ..._ENABLE) */ static unsigned int num_disable = 0; diff --git a/crypto/objects/Makefile b/crypto/objects/Makefile index f413b0f472..0cfaf5a85b 100644 --- a/crypto/objects/Makefile +++ b/crypto/objects/Makefile @@ -21,7 +21,7 @@ LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o obj_xref.o SRC= $(LIBSRC) -HEADER= obj_dat.h obj_xref.h o_names.h +HEADER= obj_dat.h obj_xref.h obj_lcl.h ALL= $(GENERAL) $(SRC) $(HEADER) @@ -80,7 +80,7 @@ o_names.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h o_names.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h o_names.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h o_names.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h -o_names.o: o_names.c o_names.h +o_names.o: o_names.c obj_lcl.h obj_dat.o: ../../e_os.h ../../include/openssl/asn1.h obj_dat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h obj_dat.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h diff --git a/crypto/objects/o_names.c b/crypto/objects/o_names.c index 476c3770f8..df6240bfd0 100644 --- a/crypto/objects/o_names.c +++ b/crypto/objects/o_names.c @@ -7,7 +7,7 @@ #include #include #include -#include "o_names.h" +#include "obj_lcl.h" /* * Later versions of DEC C has started to add lnkage information to certain @@ -25,7 +25,6 @@ * I use the ex_data stuff to manage the identifiers for the obj_name_types * that applications may define. I only really use the free function field. */ -DECLARE_LHASH_OF(OBJ_NAME); static LHASH_OF(OBJ_NAME) *names_lh = NULL; static int names_type_num = OBJ_NAME_TYPE_NUM; @@ -346,8 +345,8 @@ void OBJ_NAME_cleanup(int type) return; free_type = type; - down_load = lh_OBJ_NAME_down_load(names_lh); - lh_OBJ_NAME_down_load(names_lh) = 0; + down_load = lh_OBJ_NAME_get_down_load(names_lh); + lh_OBJ_NAME_set_down_load(names_lh, 0); lh_OBJ_NAME_doall(names_lh, LHASH_DOALL_FN(names_lh_free)); if (type < 0) { @@ -356,5 +355,5 @@ void OBJ_NAME_cleanup(int type) names_lh = NULL; name_funcs_stack = NULL; } else - lh_OBJ_NAME_down_load(names_lh) = down_load; + lh_OBJ_NAME_set_down_load(names_lh, down_load); } diff --git a/crypto/objects/o_names.h b/crypto/objects/o_names.h deleted file mode 100644 index 914ed33086..0000000000 --- a/crypto/objects/o_names.h +++ /dev/null @@ -1,4 +0,0 @@ - - -typedef struct name_funcs_st NAME_FUNCS; -DEFINE_STACK_OF(NAME_FUNCS) diff --git a/crypto/objects/obj_dat.c b/crypto/objects/obj_dat.c index bda955651e..51a44a285f 100644 --- a/crypto/objects/obj_dat.c +++ b/crypto/objects/obj_dat.c @@ -65,6 +65,7 @@ #include #include #include "internal/asn1_int.h" +#include "obj_lcl.h" /* obj_dat.h is generated from objects.h by obj_dat.pl */ #include "obj_dat.h" @@ -78,11 +79,10 @@ DECLARE_OBJ_BSEARCH_CMP_FN(const ASN1_OBJECT *, unsigned int, obj); #define ADDED_LNAME 2 #define ADDED_NID 3 -typedef struct added_obj_st { +struct added_obj_st { int type; ASN1_OBJECT *obj; -} ADDED_OBJ; -DECLARE_LHASH_OF(ADDED_OBJ); +}; static int new_nid = NUM_NID; static LHASH_OF(ADDED_OBJ) *added = NULL; @@ -227,7 +227,7 @@ void OBJ_cleanup(void) } if (added == NULL) return; - lh_ADDED_OBJ_down_load(added) = 0; + lh_ADDED_OBJ_set_down_load(added, 0); lh_ADDED_OBJ_doall(added, LHASH_DOALL_FN(cleanup1)); /* zero counters */ lh_ADDED_OBJ_doall(added, LHASH_DOALL_FN(cleanup2)); /* set counters */ lh_ADDED_OBJ_doall(added, LHASH_DOALL_FN(cleanup3)); /* free objects */ diff --git a/crypto/objects/obj_lcl.h b/crypto/objects/obj_lcl.h new file mode 100644 index 0000000000..6a8f75f09e --- /dev/null +++ b/crypto/objects/obj_lcl.h @@ -0,0 +1,7 @@ + + +typedef struct name_funcs_st NAME_FUNCS; +DEFINE_STACK_OF(NAME_FUNCS) +DECLARE_LHASH_OF(OBJ_NAME); +typedef struct added_obj_st ADDED_OBJ; +DECLARE_LHASH_OF(ADDED_OBJ); diff --git a/include/openssl/err.h b/include/openssl/err.h index e05552b182..e763731f30 100644 --- a/include/openssl/err.h +++ b/include/openssl/err.h @@ -315,6 +315,8 @@ typedef struct ERR_string_data_st { const char *string; } ERR_STRING_DATA; +DECLARE_LHASH_OF(ERR_STRING_DATA); + void ERR_put_error(int lib, int func, int reason, const char *file, int line); void ERR_set_error_data(char *data, int flags); diff --git a/include/openssl/lhash.h b/include/openssl/lhash.h index fb92317ee7..d5097cddd6 100644 --- a/include/openssl/lhash.h +++ b/include/openssl/lhash.h @@ -166,7 +166,7 @@ typedef struct lhash_st { * Indicates a malloc() error in the last call, this is only bad in * lh_insert(). */ -# define lh_error(lh) ((lh)->error) +int lh_error(_LHASH *lh); _LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); void lh_free(_LHASH *lh); @@ -177,6 +177,8 @@ void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); unsigned long lh_strhash(const char *c); unsigned long lh_num_items(const _LHASH *lh); +unsigned long lh_get_down_load(const _LHASH *lh); +void lh_set_down_load(_LHASH *lh, unsigned long down_load); # ifndef OPENSSL_NO_STDIO void lh_stats(const _LHASH *lh, FILE *fp); @@ -191,7 +193,53 @@ void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); # define LHASH_OF(type) struct lhash_st_##type -# define DECLARE_LHASH_OF(type) LHASH_OF(type) { int dummy; } +# define DECLARE_LHASH_OF(type) \ + LHASH_OF(type) { int dummy; }; \ + static inline void lh_##type##_free(LHASH_OF(type) *lh) \ + { \ + lh_free((_LHASH *)lh); \ + } \ + static inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + { \ + return lh_insert((_LHASH *)lh, d); \ + } \ + static inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + { \ + return lh_delete((_LHASH *)lh, d); \ + } \ + static inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + { \ + return lh_retrieve((_LHASH *)lh, d); \ + } \ + static inline int lh_##type##_error(LHASH_OF(type) *lh) \ + { \ + return lh_error((_LHASH *)lh); \ + } \ + static inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + { \ + return lh_num_items((_LHASH *)lh); \ + } \ + static inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + lh_node_stats_bio((_LHASH *)lh, out); \ + } \ + static inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + lh_node_usage_stats_bio((_LHASH *)lh, out); \ + } \ + static inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + lh_stats_bio((_LHASH *)lh, out); \ + } \ + static inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + { \ + return lh_get_down_load((_LHASH *)lh); \ + } \ + static inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + { \ + lh_set_down_load((_LHASH *)lh, dl); \ + } \ + LHASH_OF(type) # define CHECKED_LHASH_OF(type,lh) \ ((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh)) @@ -199,29 +247,9 @@ void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); /* Define wrapper functions. */ # define LHM_lh_new(type, name) \ ((LHASH_OF(type) *)lh_new(LHASH_HASH_FN(name), LHASH_COMP_FN(name))) -# define LHM_lh_error(type, lh) \ - lh_error(CHECKED_LHASH_OF(type,lh)) -# define LHM_lh_insert(type, lh, inst) \ - ((type *)lh_insert(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_retrieve(type, lh, inst) \ - ((type *)lh_retrieve(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_delete(type, lh, inst) \ - ((type *)lh_delete(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) # define LHM_lh_doall(type, lh,fn) lh_doall(CHECKED_LHASH_OF(type, lh), fn) # define LHM_lh_doall_arg(type, lh, fn, arg_type, arg) \ lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg)) -# define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh)) -# define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load) -# define LHM_lh_node_stats_bio(type, lh, out) \ - lh_node_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_node_usage_stats_bio(type, lh, out) \ - lh_node_usage_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_stats_bio(type, lh, out) \ - lh_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh)) DECLARE_LHASH_OF(OPENSSL_STRING); DECLARE_LHASH_OF(OPENSSL_CSTRING); diff --git a/include/openssl/safestack.h b/include/openssl/safestack.h index 71d639f1d0..5fc1a449a9 100644 --- a/include/openssl/safestack.h +++ b/include/openssl/safestack.h @@ -232,220 +232,64 @@ DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define lh_ADDED_OBJ_new() LHM_lh_new(ADDED_OBJ,added_obj) -# define lh_ADDED_OBJ_insert(lh,inst) LHM_lh_insert(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_retrieve(lh,inst) LHM_lh_retrieve(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_delete(lh,inst) LHM_lh_delete(ADDED_OBJ,lh,inst) # define lh_ADDED_OBJ_doall(lh,fn) LHM_lh_doall(ADDED_OBJ,lh,fn) # define lh_ADDED_OBJ_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg) -# define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_stats_bio(lh,out) \ - LHM_lh_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) # define lh_APP_INFO_new() LHM_lh_new(APP_INFO,app_info) -# define lh_APP_INFO_insert(lh,inst) LHM_lh_insert(APP_INFO,lh,inst) -# define lh_APP_INFO_retrieve(lh,inst) LHM_lh_retrieve(APP_INFO,lh,inst) -# define lh_APP_INFO_delete(lh,inst) LHM_lh_delete(APP_INFO,lh,inst) # define lh_APP_INFO_doall(lh,fn) LHM_lh_doall(APP_INFO,lh,fn) # define lh_APP_INFO_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(APP_INFO,lh,fn,arg_type,arg) -# define lh_APP_INFO_error(lh) LHM_lh_error(APP_INFO,lh) -# define lh_APP_INFO_num_items(lh) LHM_lh_num_items(APP_INFO,lh) -# define lh_APP_INFO_down_load(lh) LHM_lh_down_load(APP_INFO,lh) -# define lh_APP_INFO_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_stats_bio(lh,out) \ - LHM_lh_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_free(lh) LHM_lh_free(APP_INFO,lh) # define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) -# define lh_CONF_VALUE_insert(lh,inst) LHM_lh_insert(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_retrieve(lh,inst) LHM_lh_retrieve(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_delete(lh,inst) LHM_lh_delete(CONF_VALUE,lh,inst) # define lh_CONF_VALUE_doall(lh,fn) LHM_lh_doall(CONF_VALUE,lh,fn) # define lh_CONF_VALUE_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg) -# define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) -# define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) -# define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh) -# define lh_CONF_VALUE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_stats_bio(lh,out) \ - LHM_lh_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) # define lh_ENGINE_PILE_new() LHM_lh_new(ENGINE_PILE,engine_pile) -# define lh_ENGINE_PILE_insert(lh,inst) LHM_lh_insert(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_retrieve(lh,inst) LHM_lh_retrieve(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_delete(lh,inst) LHM_lh_delete(ENGINE_PILE,lh,inst) # define lh_ENGINE_PILE_doall(lh,fn) LHM_lh_doall(ENGINE_PILE,lh,fn) # define lh_ENGINE_PILE_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(ENGINE_PILE,lh,fn,arg_type,arg) -# define lh_ENGINE_PILE_error(lh) LHM_lh_error(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_num_items(lh) LHM_lh_num_items(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_down_load(lh) LHM_lh_down_load(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_stats_bio(lh,out) \ - LHM_lh_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_free(lh) LHM_lh_free(ENGINE_PILE,lh) # define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) -# define lh_ERR_STATE_insert(lh,inst) LHM_lh_insert(ERR_STATE,lh,inst) -# define lh_ERR_STATE_retrieve(lh,inst) LHM_lh_retrieve(ERR_STATE,lh,inst) -# define lh_ERR_STATE_delete(lh,inst) LHM_lh_delete(ERR_STATE,lh,inst) # define lh_ERR_STATE_doall(lh,fn) LHM_lh_doall(ERR_STATE,lh,fn) # define lh_ERR_STATE_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg) -# define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) -# define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) -# define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh) -# define lh_ERR_STATE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_stats_bio(lh,out) \ - LHM_lh_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) # define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) -# define lh_ERR_STRING_DATA_insert(lh,inst) LHM_lh_insert(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_retrieve(lh,inst) LHM_lh_retrieve(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_delete(lh,inst) LHM_lh_delete(ERR_STRING_DATA,lh,inst) # define lh_ERR_STRING_DATA_doall(lh,fn) LHM_lh_doall(ERR_STRING_DATA,lh,fn) # define lh_ERR_STRING_DATA_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg) -# define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_stats_bio(lh,out) \ - LHM_lh_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) # define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) -# define lh_FUNCTION_insert(lh,inst) LHM_lh_insert(FUNCTION,lh,inst) -# define lh_FUNCTION_retrieve(lh,inst) LHM_lh_retrieve(FUNCTION,lh,inst) -# define lh_FUNCTION_delete(lh,inst) LHM_lh_delete(FUNCTION,lh,inst) # define lh_FUNCTION_doall(lh,fn) LHM_lh_doall(FUNCTION,lh,fn) # define lh_FUNCTION_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg) -# define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) -# define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) -# define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh) -# define lh_FUNCTION_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_stats_bio(lh,out) \ - LHM_lh_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) # define lh_MEM_new() LHM_lh_new(MEM,mem) -# define lh_MEM_insert(lh,inst) LHM_lh_insert(MEM,lh,inst) -# define lh_MEM_retrieve(lh,inst) LHM_lh_retrieve(MEM,lh,inst) -# define lh_MEM_delete(lh,inst) LHM_lh_delete(MEM,lh,inst) # define lh_MEM_doall(lh,fn) LHM_lh_doall(MEM,lh,fn) # define lh_MEM_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(MEM,lh,fn,arg_type,arg) -# define lh_MEM_error(lh) LHM_lh_error(MEM,lh) -# define lh_MEM_num_items(lh) LHM_lh_num_items(MEM,lh) -# define lh_MEM_down_load(lh) LHM_lh_down_load(MEM,lh) -# define lh_MEM_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(MEM,lh,out) -# define lh_MEM_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(MEM,lh,out) -# define lh_MEM_stats_bio(lh,out) \ - LHM_lh_stats_bio(MEM,lh,out) -# define lh_MEM_free(lh) LHM_lh_free(MEM,lh) # define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) -# define lh_OBJ_NAME_insert(lh,inst) LHM_lh_insert(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_retrieve(lh,inst) LHM_lh_retrieve(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_delete(lh,inst) LHM_lh_delete(OBJ_NAME,lh,inst) # define lh_OBJ_NAME_doall(lh,fn) LHM_lh_doall(OBJ_NAME,lh,fn) # define lh_OBJ_NAME_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg) -# define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) -# define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) -# define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh) -# define lh_OBJ_NAME_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_stats_bio(lh,out) \ - LHM_lh_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) # define lh_OPENSSL_CSTRING_new() LHM_lh_new(OPENSSL_CSTRING,openssl_cstring) -# define lh_OPENSSL_CSTRING_insert(lh,inst) LHM_lh_insert(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_delete(lh,inst) LHM_lh_delete(OPENSSL_CSTRING,lh,inst) # define lh_OPENSSL_CSTRING_doall(lh,fn) LHM_lh_doall(OPENSSL_CSTRING,lh,fn) # define lh_OPENSSL_CSTRING_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(OPENSSL_CSTRING,lh,fn,arg_type,arg) -# define lh_OPENSSL_CSTRING_error(lh) LHM_lh_error(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_num_items(lh) LHM_lh_num_items(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_down_load(lh) LHM_lh_down_load(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_stats_bio(lh,out) \ - LHM_lh_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_free(lh) LHM_lh_free(OPENSSL_CSTRING,lh) # define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) -# define lh_OPENSSL_STRING_insert(lh,inst) LHM_lh_insert(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_delete(lh,inst) LHM_lh_delete(OPENSSL_STRING,lh,inst) # define lh_OPENSSL_STRING_doall(lh,fn) LHM_lh_doall(OPENSSL_STRING,lh,fn) # define lh_OPENSSL_STRING_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg) -# define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_stats_bio(lh,out) \ - LHM_lh_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) # define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) -# define lh_SSL_SESSION_insert(lh,inst) LHM_lh_insert(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_retrieve(lh,inst) LHM_lh_retrieve(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_delete(lh,inst) LHM_lh_delete(SSL_SESSION,lh,inst) # define lh_SSL_SESSION_doall(lh,fn) LHM_lh_doall(SSL_SESSION,lh,fn) # define lh_SSL_SESSION_doall_arg(lh,fn,arg_type,arg) \ LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg) -# define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) -# define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) -# define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh) -# define lh_SSL_SESSION_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_stats_bio(lh,out) \ - LHM_lh_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) # ifdef __cplusplus } diff --git a/util/mkstack.pl b/util/mkstack.pl index eae3d55280..5ddd3bdf83 100755 --- a/util/mkstack.pl +++ b/util/mkstack.pl @@ -276,22 +276,9 @@ foreach $type_thing (sort @lhashlst) { $new_stackfile .= <