mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-02-05 09:40:32 +00:00
Essentially adds the Everest .h and .c files to the various variables. This should be generalized at some point, but there is no infrastructure for this yet.
64 lines
1.5 KiB
Bash
Executable File
64 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Create a file named identifiers containing identifiers from internal header
|
|
# files or all header files, based on --internal flag.
|
|
# Outputs the line count of the file to stdout.
|
|
#
|
|
# Usage: list-identifiers.sh [ -i | --internal ]
|
|
|
|
set -eu
|
|
|
|
if [ -d include/mbedtls ]; then :; else
|
|
echo "$0: must be run from root" >&2
|
|
exit 1
|
|
fi
|
|
|
|
INTERNAL=""
|
|
|
|
until [ -z "${1-}" ]
|
|
do
|
|
case "$1" in
|
|
-i|--internal)
|
|
INTERNAL="1"
|
|
;;
|
|
*)
|
|
# print error
|
|
echo "Unknown argument: '$1'"
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ $INTERNAL ]
|
|
then
|
|
HEADERS=$( ls include/mbedtls/*_internal.h library/*.h | egrep -v 'compat-1\.3\.h|bn_mul' )
|
|
else
|
|
HEADERS=$( ls include/mbedtls/*.h include/psa/*.h library/*.h | egrep -v 'compat-1\.3\.h|bn_mul' )
|
|
HEADERS="$HEADERS 3rdparty/everest/include/everest/everest.h 3rdparty/everest/include/everest/x25519.h"
|
|
fi
|
|
|
|
rm -f identifiers
|
|
|
|
grep '^[^ /#{]' $HEADERS | \
|
|
sed -e 's/^[^:]*://' | \
|
|
egrep -v '^(extern "C"|(typedef )?(struct|union|enum)( {)?$|};?$)' \
|
|
> _decls
|
|
|
|
if true; then
|
|
sed -n -e 's/.* \**\([a-zA-Z_][a-zA-Z0-9_]*\)(.*/\1/p' \
|
|
-e 's/.*(\*\(.*\))(.*/\1/p' _decls
|
|
grep -v '(' _decls | sed -e 's/\([a-zA-Z0-9_]*\)[;[].*/\1/' -e 's/.* \**//'
|
|
fi > _identifiers
|
|
|
|
if [ $( wc -l < _identifiers ) -eq $( wc -l < _decls ) ]; then
|
|
rm _decls
|
|
egrep -v '^(u?int(16|32|64)_t)$' _identifiers | sort > identifiers
|
|
rm _identifiers
|
|
else
|
|
echo "$0: oops, lost some identifiers" 2>&1
|
|
exit 1
|
|
fi
|
|
|
|
wc -l identifiers
|