X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=util%2Fmkstack.pl;h=f708610a7888d1a7fe4d9eeaf2426f462f785b87;hp=ec76351bcae10068f74263471edba8a0b50773a1;hb=668bcfd5ca237fdf6fbef1ab463697a4a48caf39;hpb=3f39e5ae6c650ad3f9bac186c5ac16f037c0d1b0 diff --git a/util/mkstack.pl b/util/mkstack.pl index ec76351bca..f708610a78 100755 --- a/util/mkstack.pl +++ b/util/mkstack.pl @@ -21,7 +21,7 @@ while (@ARGV) { } -@source = (, , , ); +@source = (, , , ); foreach $file (@source) { next if -l $file; @@ -32,11 +32,24 @@ foreach $file (@source) { if (/^DECLARE_STACK_OF\(([^)]+)\)/) { push @stacklst, $1; } + if (/^DECLARE_SPECIAL_STACK_OF\(([^,\s]+)\s*,\s*([^>\s]+)\)/) { + push @sstacklst, [$1, $2]; + } + if (/^DECLARE_ASN1_SET_OF\(([^)]+)\)/) { + push @asn1setlst, $1; + } + if (/^DECLARE_PKCS12_STACK_OF\(([^)]+)\)/) { + push @p12stklst, $1; + } + if (/^DECLARE_LHASH_OF\(([^)]+)\)/) { + push @lhashlst, $1; + } } close(IN); } + my $old_stackfile = ""; my $new_stackfile = ""; my $inside_block = 0; @@ -57,10 +70,10 @@ while() { next if($inside_block != 1); $new_stackfile .= "/* This block of defines is updated by util/mkstack.pl, please do not touch! */"; - foreach $type_thing (@stacklst) { + foreach $type_thing (sort @stacklst) { $new_stackfile .= <) { #define sk_${type_thing}_push(st, val) SKM_sk_push($type_thing, (st), (val)) #define sk_${type_thing}_unshift(st, val) SKM_sk_unshift($type_thing, (st), (val)) #define sk_${type_thing}_find(st, val) SKM_sk_find($type_thing, (st), (val)) +#define sk_${type_thing}_find_ex(st, val) SKM_sk_find_ex($type_thing, (st), (val)) #define sk_${type_thing}_delete(st, i) SKM_sk_delete($type_thing, (st), (i)) #define sk_${type_thing}_delete_ptr(st, ptr) SKM_sk_delete_ptr($type_thing, (st), (ptr)) #define sk_${type_thing}_insert(st, val, i) SKM_sk_insert($type_thing, (st), (val), (i)) @@ -79,8 +93,87 @@ while() { #define sk_${type_thing}_shift(st) SKM_sk_shift($type_thing, (st)) #define sk_${type_thing}_pop(st) SKM_sk_pop($type_thing, (st)) #define sk_${type_thing}_sort(st) SKM_sk_sort($type_thing, (st)) +#define sk_${type_thing}_is_sorted(st) SKM_sk_is_sorted($type_thing, (st)) EOF } + + foreach $type_thing (sort @sstacklst) { + my $t1 = $type_thing->[0]; + my $t2 = $type_thing->[1]; + $new_stackfile .= <