The unified diff between revisions [04aa5b48..] and [a81fe555..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'src/lsi/makeabi'
# # old_revision [04aa5b488cdcfccafef4ba9d99749b84e1b76083] # new_revision [a81fe5550c21fa983b4e344e07c29b9cecdf75ea] # # patch "src/lsi/makeabi" # from [007086efc8065fc0857d86ae0fac503e708cb961] # to [54d8bf7ee907e67849843b113a8c6f5039ec020b] # ============================================================ --- src/lsi/makeabi 007086efc8065fc0857d86ae0fac503e708cb961 +++ src/lsi/makeabi 54d8bf7ee907e67849843b113a8c6f5039ec020b @@ -8,9 +8,26 @@ fi exit 1 fi +if [ ! -f "${INFILE}" ] +then + echo "$0: ${INFILE}: not found" + exit 1 +fi + ABI=abi.c HEADER=abi.lh + +# This is pretty evil. We use sed to produce shell commands which set +# variables which contain 8-character chunks of the sha1 hash. +# eval takes care of defining them in the current shell, rather than in +# a subshell. +for VER in `sha1 -n ${INFILE} | sed 's/\(........\)\(........\)\(........\)\(........\)\(........\).*$/ABIVER1=\1 ABIVER2=\2 ABIVER3=\3 ABIVER4=\4 ABIVER5=\5/'` +do + eval ${VER} +done + + FNCOUNT=0 do_function() @@ -20,12 +37,25 @@ do_function() FNCOUNT=$((${FNCOUNT}+1)) } +do_function_v() +{ + echo " vm_intfn_${ARG1}," >>${ABI} + echo "fndefint_v ${ARG1} ${FNCOUNT};" >>${HEADER} + FNCOUNT=$((${FNCOUNT}+1)) +} + cat <<EOF >${ABI} /* abi.c */ /* autogenerated - do not edit */ #include "abi.h" +const long vm_abiversion1 = 0x${ABIVER1}; +const long vm_abiversion2 = 0x${ABIVER2}; +const long vm_abiversion3 = 0x${ABIVER3}; +const long vm_abiversion4 = 0x${ABIVER4}; +const long vm_abiversion5 = 0x${ABIVER5}; + vm_intfn vm_intfn_table[] = { EOF @@ -33,6 +63,12 @@ cat <<EOF >${HEADER} /* abi.lh */ /* autogenerated - do not edit */ +constant __abiversion1 0x${ABIVER1}; +constant __abiversion2 0x${ABIVER2}; +constant __abiversion3 0x${ABIVER3}; +constant __abiversion4 0x${ABIVER4}; +constant __abiversion5 0x${ABIVER5}; + EOF while read TYPE ARG1 ARG2 @@ -40,6 +76,8 @@ do case "$TYPE" in function) do_function ;; + function_v) do_function_v + ;; esac done <${INFILE}