diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2022-09-02 17:08:34 +0200 |
---|---|---|
committer | Eugene Syromyatnikov <evgsyr@gmail.com> | 2022-09-02 17:55:13 +0200 |
commit | d0878c0b75e223a465cc11e879328fd31db5efc6 (patch) | |
tree | c194a64b5c46bf3787812d2701ef240e660e1f35 | |
parent | 8feccb38cd322755eba517376cd7f5408971e52b (diff) | |
download | strace-d0878c0b75e223a465cc11e879328fd31db5efc6.tar.gz |
xlat/gen.sh: define *_flags_strsz and *_flags_mask macros
-rwxr-xr-x | src/xlat/gen.sh | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/src/xlat/gen.sh b/src/xlat/gen.sh index f7f32c604..84941e6c8 100755 --- a/src/xlat/gen.sh +++ b/src/xlat/gen.sh @@ -354,6 +354,33 @@ gen_header() echo "st_CHECK_ENUMS_${name}" >&3 ) >> "${output_m4}" + for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do + cat <<-EOF + # ifndef XLAT_VAL_${i} + # define XLAT_VAL_${i} 0 + # endif + # ifdef XLAT_STR_${i} + # define XLAT_STRSZ_${i} sizeof(XLAT_STR_${i}) + # else + # define XLAT_STRSZ_${i} 0 + # endif + EOF + done + + echo "# define ${name}_flags_mask 0 \\" + for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do + echo " | XLAT_VAL_${i} \\" + done + echo "/* end of ${name}_flags_mask definition */" + + echo "# define ${name}_flags_strsz_ 0 \\" + for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do + echo " + XLAT_STRSZ_${i} \\" + done + echo "/* end of ${name}_flags_strsz_ definition */" + echo "enum { ${name}_flags_strsz = ${name}_flags_strsz_ };" + echo "# undef ${name}_flags_strsz_" + if [ -n "$in_defs" ]; then : elif [ -n "$in_mpers" ]; then @@ -373,28 +400,10 @@ gen_header() .data = ${name}_xdata, .size = ARRAY_SIZE(${name}_xdata), .type = ${xlat_type}, + .flags_mask = ${name}_flags_mask, + .flags_strsz = ${name}_flags_strsz, EOF - echo " .flags_mask = 0" - for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do - cat <<-EOF - # ifdef XLAT_VAL_${i} - | XLAT_VAL_${i} - # endif - EOF - done - echo " ," - - echo " .flags_strsz = 0" - for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do - cat <<-EOF - # ifdef XLAT_STR_${i} - + sizeof(XLAT_STR_${i}) - # endif - EOF - done - echo " ," - cat <<-EOF } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -404,6 +413,7 @@ gen_header() for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do cat <<-EOF # undef XLAT_STR_${i} + # undef XLAT_STRSZ_${i} # undef XLAT_VAL_${i} EOF done |