summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2022-09-02 17:08:34 +0200
committerEugene Syromyatnikov <evgsyr@gmail.com>2022-09-02 17:55:13 +0200
commitd0878c0b75e223a465cc11e879328fd31db5efc6 (patch)
treec194a64b5c46bf3787812d2701ef240e660e1f35
parent8feccb38cd322755eba517376cd7f5408971e52b (diff)
downloadstrace-d0878c0b75e223a465cc11e879328fd31db5efc6.tar.gz
xlat/gen.sh: define *_flags_strsz and *_flags_mask macros
-rwxr-xr-xsrc/xlat/gen.sh50
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