Home | History | Annotate | Line # | Download | only in libcrypto
      1 #!/bin/sh
      2 
      3 awk '
      4 /- join\(/ {
      5 	printf(" * WARNING: do not edit!\n");
      6 	i = index(FILENAME, "/crypto/external");
      7 	s = substr(FILENAME, i);
      8 	printf(" * Generated by Makefile from /usr/src%s\n", s);
      9 	next;
     10 }
     11 /use OpenSSL/ {
     12 	next;
     13 }
     14 /^\{-/ {
     15 	next;
     16 }
     17 /^-}/ {
     18 	next;
     19 }
     20 /generate_stack_string_macros\(/ {
     21 V="SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_STRING, char, char)\n"
     22 V=V"#define sk_OPENSSL_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_STRING_sk_type(sk))\n"
     23 V=V"#define sk_OPENSSL_STRING_value(sk, idx) ((char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_STRING_sk_type(sk), (idx)))\n"
     24 V=V"#define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_STRING_compfunc_type(cmp)))\n"
     25 V=V"#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_null())\n"
     26 V=V"#define sk_OPENSSL_STRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_STRING_compfunc_type(cmp), (n)))\n"
     27 V=V"#define sk_OPENSSL_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_STRING_sk_type(sk), (n))\n"
     28 V=V"#define sk_OPENSSL_STRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_STRING_sk_type(sk))\n"
     29 V=V"#define sk_OPENSSL_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_STRING_sk_type(sk))\n"
     30 V=V"#define sk_OPENSSL_STRING_delete(sk, i) ((char *)OPENSSL_sk_delete(ossl_check_OPENSSL_STRING_sk_type(sk), (i)))\n"
     31 V=V"#define sk_OPENSSL_STRING_delete_ptr(sk, ptr) ((char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)))\n"
     32 V=V"#define sk_OPENSSL_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))\n"
     33 V=V"#define sk_OPENSSL_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))\n"
     34 V=V"#define sk_OPENSSL_STRING_pop(sk) ((char *)OPENSSL_sk_pop(ossl_check_OPENSSL_STRING_sk_type(sk)))\n"
     35 V=V"#define sk_OPENSSL_STRING_shift(sk) ((char *)OPENSSL_sk_shift(ossl_check_OPENSSL_STRING_sk_type(sk)))\n"
     36 V=V"#define sk_OPENSSL_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_STRING_sk_type(sk),ossl_check_OPENSSL_STRING_freefunc_type(freefunc))\n"
     37 V=V"#define sk_OPENSSL_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), (idx))\n"
     38 V=V"#define sk_OPENSSL_STRING_set(sk, idx, ptr) ((char *)OPENSSL_sk_set(ossl_check_OPENSSL_STRING_sk_type(sk), (idx), ossl_check_OPENSSL_STRING_type(ptr)))\n"
     39 V=V"#define sk_OPENSSL_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))\n"
     40 V=V"#define sk_OPENSSL_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))\n"
     41 V=V"#define sk_OPENSSL_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), pnum)\n"
     42 V=V"#define sk_OPENSSL_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_STRING_sk_type(sk))\n"
     43 V=V"#define sk_OPENSSL_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_STRING_sk_type(sk))\n"
     44 V=V"#define sk_OPENSSL_STRING_dup(sk) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_STRING_sk_type(sk)))\n"
     45 V=V"#define sk_OPENSSL_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_STRING_freefunc_type(freefunc)))\n"
     46 V=V"#define sk_OPENSSL_STRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_compfunc_type(cmp)))\n"
     47 
     48 	printf("%s", V);
     49 	next;
     50 }
     51 /generate_stack_string_macros/ {
     52 	next;
     53 }
     54 /generate_stack_const_string_macros\(/ {
     55 
     56 V="SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_CSTRING, const char, char)\n"
     57 V=V"#define sk_OPENSSL_CSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_CSTRING_sk_type(sk))\n"
     58 V=V"#define sk_OPENSSL_CSTRING_value(sk, idx) ((const char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), (idx)))\n"
     59 V=V"#define sk_OPENSSL_CSTRING_new(cmp) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp)))\n"
     60 V=V"#define sk_OPENSSL_CSTRING_new_null() ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_null())\n"
     61 V=V"#define sk_OPENSSL_CSTRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp), (n)))\n"
     62 V=V"#define sk_OPENSSL_CSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_CSTRING_sk_type(sk), (n))\n"
     63 V=V"#define sk_OPENSSL_CSTRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_CSTRING_sk_type(sk))\n"
     64 V=V"#define sk_OPENSSL_CSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_CSTRING_sk_type(sk))\n"
     65 V=V"#define sk_OPENSSL_CSTRING_delete(sk, i) ((const char *)OPENSSL_sk_delete(ossl_check_OPENSSL_CSTRING_sk_type(sk), (i)))\n"
     66 V=V"#define sk_OPENSSL_CSTRING_delete_ptr(sk, ptr) ((const char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)))\n"
     67 V=V"#define sk_OPENSSL_CSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))\n"
     68 V=V"#define sk_OPENSSL_CSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))\n"
     69 V=V"#define sk_OPENSSL_CSTRING_pop(sk) ((const char *)OPENSSL_sk_pop(ossl_check_OPENSSL_CSTRING_sk_type(sk)))\n"
     70 V=V"#define sk_OPENSSL_CSTRING_shift(sk) ((const char *)OPENSSL_sk_shift(ossl_check_OPENSSL_CSTRING_sk_type(sk)))\n"
     71 V=V"#define sk_OPENSSL_CSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_CSTRING_sk_type(sk),ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc))\n"
     72 V=V"#define sk_OPENSSL_CSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), (idx))\n"
     73 V=V"#define sk_OPENSSL_CSTRING_set(sk, idx, ptr) ((const char *)OPENSSL_sk_set(ossl_check_OPENSSL_CSTRING_sk_type(sk), (idx), ossl_check_OPENSSL_CSTRING_type(ptr)))\n"
     74 V=V"#define sk_OPENSSL_CSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))\n"
     75 V=V"#define sk_OPENSSL_CSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))\n"
     76 V=V"#define sk_OPENSSL_CSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), pnum)\n"
     77 V=V"#define sk_OPENSSL_CSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_CSTRING_sk_type(sk))\n"
     78 V=V"#define sk_OPENSSL_CSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_CSTRING_sk_type(sk))\n"
     79 V=V"#define sk_OPENSSL_CSTRING_dup(sk) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)))\n"
     80 V=V"#define sk_OPENSSL_CSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc)))\n"
     81 V=V"#define sk_OPENSSL_CSTRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_CSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_compfunc_type(cmp)))\n"
     82 	printf("%s", V);
     83 	next;
     84 }
     85 /generate_stack_const_string_macros/ {
     86 	next;
     87 }
     88 /generate_stack_block_macros\(/ {
     89 	i = index($0, "\"");
     90 	s = substr($0, i + 1);
     91 	i = index(s, "\"");
     92 	s = substr(s, 1, i - 1);
     93 
     94 V="SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_BLOCK, void, void)\n"
     95 V=V"#define sk_OPENSSL_BLOCK_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_BLOCK_sk_type(sk))\n"
     96 V=V"#define sk_OPENSSL_BLOCK_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), (idx)))\n"
     97 V=V"#define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp)))\n"
     98 V=V"#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_null())\n"
     99 V=V"#define sk_OPENSSL_BLOCK_new_reserve(cmp, n) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp), (n)))\n"
    100 V=V"#define sk_OPENSSL_BLOCK_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_BLOCK_sk_type(sk), (n))\n"
    101 V=V"#define sk_OPENSSL_BLOCK_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_BLOCK_sk_type(sk))\n"
    102 V=V"#define sk_OPENSSL_BLOCK_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_BLOCK_sk_type(sk))\n"
    103 V=V"#define sk_OPENSSL_BLOCK_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_OPENSSL_BLOCK_sk_type(sk), (i)))\n"
    104 V=V"#define sk_OPENSSL_BLOCK_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)))\n"
    105 V=V"#define sk_OPENSSL_BLOCK_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))\n"
    106 V=V"#define sk_OPENSSL_BLOCK_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))\n"
    107 V=V"#define sk_OPENSSL_BLOCK_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_OPENSSL_BLOCK_sk_type(sk)))\n"
    108 V=V"#define sk_OPENSSL_BLOCK_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_OPENSSL_BLOCK_sk_type(sk)))\n"
    109 V=V"#define sk_OPENSSL_BLOCK_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_BLOCK_sk_type(sk),ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc))\n"
    110 V=V"#define sk_OPENSSL_BLOCK_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), (idx))\n"
    111 V=V"#define sk_OPENSSL_BLOCK_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_OPENSSL_BLOCK_sk_type(sk), (idx), ossl_check_OPENSSL_BLOCK_type(ptr)))\n"
    112 V=V"#define sk_OPENSSL_BLOCK_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))\n"
    113 V=V"#define sk_OPENSSL_BLOCK_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))\n"
    114 V=V"#define sk_OPENSSL_BLOCK_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), pnum)\n"
    115 V=V"#define sk_OPENSSL_BLOCK_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_BLOCK_sk_type(sk))\n"
    116 V=V"#define sk_OPENSSL_BLOCK_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_BLOCK_sk_type(sk))\n"
    117 V=V"#define sk_OPENSSL_BLOCK_dup(sk) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)))\n"
    118 V=V"#define sk_OPENSSL_BLOCK_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_copyfunc_type(copyfunc), ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc)))\n"
    119 V=V"#define sk_OPENSSL_BLOCK_set_cmp_func(sk, cmp) ((sk_OPENSSL_BLOCK_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_compfunc_type(cmp)))\n"
    120 
    121 	gsub("@", s, V);
    122 	printf("%s\n", V);
    123 	next;
    124 }
    125 /generate_stack_block_macros/ {
    126 	next;
    127 }
    128 /generate_const_stack_macros\(/ {
    129 	i = index($0, "\"");
    130 	s = substr($0, i + 1);
    131 	i = index(s, "\"");
    132 	s = substr(s, 1, i - 1);
    133 
    134 V="SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER)\n"
    135 V=V"#define sk_SSL_CIPHER_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_CIPHER_sk_type(sk))\n"
    136 V=V"#define sk_SSL_CIPHER_value(sk, idx) ((const SSL_CIPHER *)OPENSSL_sk_value(ossl_check_const_SSL_CIPHER_sk_type(sk), (idx)))\n"
    137 V=V"#define sk_SSL_CIPHER_new(cmp) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new(ossl_check_SSL_CIPHER_compfunc_type(cmp)))\n"
    138 V=V"#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_null())\n"
    139 V=V"#define sk_SSL_CIPHER_new_reserve(cmp, n) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_reserve(ossl_check_SSL_CIPHER_compfunc_type(cmp), (n)))\n"
    140 V=V"#define sk_SSL_CIPHER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_CIPHER_sk_type(sk), (n))\n"
    141 V=V"#define sk_SSL_CIPHER_free(sk) OPENSSL_sk_free(ossl_check_SSL_CIPHER_sk_type(sk))\n"
    142 V=V"#define sk_SSL_CIPHER_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_CIPHER_sk_type(sk))\n"
    143 V=V"#define sk_SSL_CIPHER_delete(sk, i) ((const SSL_CIPHER *)OPENSSL_sk_delete(ossl_check_SSL_CIPHER_sk_type(sk), (i)))\n"
    144 V=V"#define sk_SSL_CIPHER_delete_ptr(sk, ptr) ((const SSL_CIPHER *)OPENSSL_sk_delete_ptr(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)))\n"
    145 V=V"#define sk_SSL_CIPHER_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))\n"
    146 V=V"#define sk_SSL_CIPHER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))\n"
    147 V=V"#define sk_SSL_CIPHER_pop(sk) ((const SSL_CIPHER *)OPENSSL_sk_pop(ossl_check_SSL_CIPHER_sk_type(sk)))\n"
    148 V=V"#define sk_SSL_CIPHER_shift(sk) ((const SSL_CIPHER *)OPENSSL_sk_shift(ossl_check_SSL_CIPHER_sk_type(sk)))\n"
    149 V=V"#define sk_SSL_CIPHER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_CIPHER_sk_type(sk),ossl_check_SSL_CIPHER_freefunc_type(freefunc))\n"
    150 V=V"#define sk_SSL_CIPHER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), (idx))\n"
    151 V=V"#define sk_SSL_CIPHER_set(sk, idx, ptr) ((const SSL_CIPHER *)OPENSSL_sk_set(ossl_check_SSL_CIPHER_sk_type(sk), (idx), ossl_check_SSL_CIPHER_type(ptr)))\n"
    152 V=V"#define sk_SSL_CIPHER_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))\n"
    153 V=V"#define sk_SSL_CIPHER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))\n"
    154 V=V"#define sk_SSL_CIPHER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), pnum)\n"
    155 V=V"#define sk_SSL_CIPHER_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_CIPHER_sk_type(sk))\n"
    156 V=V"#define sk_SSL_CIPHER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_CIPHER_sk_type(sk))\n"
    157 V=V"#define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk)))\n"
    158 V=V"#define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc)))\n"
    159 V=V"#define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp)))\n"
    160 
    161 	gsub("@", s, V);
    162 	printf("%s\n", V);
    163 	next;
    164 }
    165 /generate_lhash_macros\(/ {
    166 	i = index($0, "\"");
    167 	s = substr($0, i + 1);
    168 	i = index(s, "\"");
    169 	s = substr(s, 1, i - 1);
    170 
    171 V="DEFINE_LHASH_OF_INTERNAL(@);\n"
    172 V=V"#define lh_@_new(hfn, cmp) ((LHASH_OF(@) *)OPENSSL_LH_new(ossl_check_@_lh_hashfunc_type(hfn), ossl_check_@_lh_compfunc_type(cmp)))\n"
    173 V=V"#define lh_@_free(lh) OPENSSL_LH_free(ossl_check_@_lh_type(lh))\n"
    174 V=V"#define lh_@_flush(lh) OPENSSL_LH_flush(ossl_check_@_lh_type(lh))\n"
    175 V=V"#define lh_@_insert(lh, ptr) ((@ *)OPENSSL_LH_insert(ossl_check_@_lh_type(lh), ossl_check_@_lh_plain_type(ptr)))\n"
    176 V=V"#define lh_@_delete(lh, ptr) ((@ *)OPENSSL_LH_delete(ossl_check_@_lh_type(lh), ossl_check_const_@_lh_plain_type(ptr)))\n"
    177 V=V"#define lh_@_retrieve(lh, ptr) ((@ *)OPENSSL_LH_retrieve(ossl_check_@_lh_type(lh), ossl_check_const_@_lh_plain_type(ptr)))\n"
    178 V=V"#define lh_@_error(lh) OPENSSL_LH_error(ossl_check_@_lh_type(lh))\n"
    179 V=V"#define lh_@_num_items(lh) OPENSSL_LH_num_items(ossl_check_@_lh_type(lh))\n"
    180 V=V"#define lh_@_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_@_lh_type(lh), out)\n"
    181 V=V"#define lh_@_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_@_lh_type(lh), out)\n"
    182 V=V"#define lh_@_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_@_lh_type(lh), out)\n"
    183 V=V"#define lh_@_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_@_lh_type(lh))\n"
    184 V=V"#define lh_@_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_@_lh_type(lh), dl)\n"
    185 V=V"#define lh_@_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_@_lh_type(lh), ossl_check_@_lh_doallfunc_type(dfn))\n"
    186 	gsub("@", s, V);
    187 	printf("%s\n", V);
    188 	next;
    189 }
    190 
    191 /generate_stack_macros\(/ {
    192 	i = index($0, "\"");
    193 	s = substr($0, i + 1);
    194 	i = index(s, "\"");
    195 	s = substr(s, 1, i - 1);
    196 
    197 V="SKM_DEFINE_STACK_OF_INTERNAL(@, @, @)\n"
    198 V=V"#define sk_@_num(sk) OPENSSL_sk_num(ossl_check_const_@_sk_type(sk))\n"
    199 V=V"#define sk_@_value(sk, idx) ((@ *)OPENSSL_sk_value(ossl_check_const_@_sk_type(sk), (idx)))\n"
    200 V=V"#define sk_@_new(cmp) ((STACK_OF(@) *)OPENSSL_sk_new(ossl_check_@_compfunc_type(cmp)))\n"
    201 V=V"#define sk_@_new_null() ((STACK_OF(@) *)OPENSSL_sk_new_null())\n"
    202 V=V"#define sk_@_new_reserve(cmp, n) ((STACK_OF(@) *)OPENSSL_sk_new_reserve(ossl_check_@_compfunc_type(cmp), (n)))\n"
    203 V=V"#define sk_@_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_@_sk_type(sk), (n))\n"
    204 V=V"#define sk_@_free(sk) OPENSSL_sk_free(ossl_check_@_sk_type(sk))\n"
    205 V=V"#define sk_@_zero(sk) OPENSSL_sk_zero(ossl_check_@_sk_type(sk))\n"
    206 V=V"#define sk_@_delete(sk, i) ((@ *)OPENSSL_sk_delete(ossl_check_@_sk_type(sk), (i)))\n"
    207 V=V"#define sk_@_delete_ptr(sk, ptr) ((@ *)OPENSSL_sk_delete_ptr(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr)))\n"
    208 V=V"#define sk_@_push(sk, ptr) OPENSSL_sk_push(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr))\n"
    209 V=V"#define sk_@_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr))\n"
    210 V=V"#define sk_@_pop(sk) ((@ *)OPENSSL_sk_pop(ossl_check_@_sk_type(sk)))\n"
    211 V=V"#define sk_@_shift(sk) ((@ *)OPENSSL_sk_shift(ossl_check_@_sk_type(sk)))\n"
    212 V=V"#define sk_@_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_@_sk_type(sk),ossl_check_@_freefunc_type(freefunc))\n"
    213 V=V"#define sk_@_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr), (idx))\n"
    214 V=V"#define sk_@_set(sk, idx, ptr) ((@ *)OPENSSL_sk_set(ossl_check_@_sk_type(sk), (idx), ossl_check_@_type(ptr)))\n"
    215 V=V"#define sk_@_find(sk, ptr) OPENSSL_sk_find(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr))\n"
    216 V=V"#define sk_@_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr))\n"
    217 V=V"#define sk_@_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_@_sk_type(sk), ossl_check_@_type(ptr), pnum)\n"
    218 V=V"#define sk_@_sort(sk) OPENSSL_sk_sort(ossl_check_@_sk_type(sk))\n"
    219 V=V"#define sk_@_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_@_sk_type(sk))\n"
    220 V=V"#define sk_@_dup(sk) ((STACK_OF(@) *)OPENSSL_sk_dup(ossl_check_const_@_sk_type(sk)))\n"
    221 V=V"#define sk_@_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(@) *)OPENSSL_sk_deep_copy(ossl_check_const_@_sk_type(sk), ossl_check_@_copyfunc_type(copyfunc), ossl_check_@_freefunc_type(freefunc)))\n"
    222 V=V"#define sk_@_set_cmp_func(sk, cmp) ((sk_@_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_@_sk_type(sk), ossl_check_@_compfunc_type(cmp)))\n"
    223 
    224 	gsub("@", s, V);
    225 	printf("%s\n", V);
    226 	next;
    227 }
    228 {
    229 	print $0;
    230 }
    231 ' "$1"
    232