summaryrefslogtreecommitdiff
path: root/src/defs.h
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2021-09-06 16:28:12 +0200
committerEugene Syromyatnikov <evgsyr@gmail.com>2021-09-14 11:20:52 +0200
commit5e0ef82427984cd5f164b9f9f1eb08db2f5d295a (patch)
tree19a71b5c032d060c201c804b209eadc1eff74123 /src/defs.h
parentd37ddff8935a6b8615ad654d2a44532ef2cb2581 (diff)
downloadstrace-5e0ef82427984cd5f164b9f9f1eb08db2f5d295a.tar.gz
Provide an ability to specify the personality for which to shuffle scno
Rename shuffle_scno to shuffle_scno_pers and add a second argument, provide a wrapper with an old name and semantics for existing users. * src/defs.h(shuffle_scno_pers): Rename from shuffle_scno, add pers argument. (shuffle_scno): New function, a wrapper for shuffle_scno_pers with current_personality passed as the second argument. * src/linux/aarch64/shuffle_scno.c (shuffle_scno_is_static): Rename to... (shuffle_scno_pers_is_static): ...this. (shuffle_scno): Rename to... (shuffle_scno_pers): ...this. (shuffle_scno): Rename to... (shuffle_scno_pers): ...this, add per argument, use it instead of current_personality, call arm_shuffle_scno_pers instead of arm_shuffle_scno. * src/linux/arm/shuffle_scno.c (shuffle_scno_is_static): Rename to... (shuffle_scno_pers_is_static): ...this. (shuffle_scno): Rename to... (shuffle_scno_pers): ...this. * src/linux/generic/shuffle_scno.c (shuffle_scno): Rename to... (shuffle_scno_pers): ...this, add pers argument. * src/linux/ia64/shuffle_scno.c: Likewise. * src/linux/x32/shuffle_scno.c (shuffle_scno): Rename to... (shuffle_scno_pers): ...this, add pers argument, use it instead of current_personality. * src/linux/x86_64/shuffle_scno.c: Likewise.
Diffstat (limited to 'src/defs.h')
-rw-r--r--src/defs.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/defs.h b/src/defs.h
index 96f742460..cfccbfc5d 100644
--- a/src/defs.h
+++ b/src/defs.h
@@ -588,9 +588,21 @@ extern kernel_long_t scno_by_name(const char *s, unsigned p,
* The shuffling should be an involution: shuffle_scno(shuffle_scno(n)) == n.
*
* @param scno Raw or shuffled syscall number.
+ * @param pers Personality to shuffle scno for.
* @return Shuffled or raw syscall number, respectively.
*/
-extern kernel_ulong_t shuffle_scno(kernel_ulong_t scno);
+extern kernel_ulong_t shuffle_scno_pers(kernel_ulong_t scno, int pers);
+/**
+ * Shorthand for shuffle_scno_pers() for the current personality.
+ *
+ * @param scno Raw or shuffled syscall number.
+ * @return Shuffled or raw syscall number, respectively.
+ */
+static inline kernel_ulong_t
+shuffle_scno(kernel_ulong_t scno)
+{
+ return shuffle_scno_pers(scno, current_personality);
+}
/**
* Print error name in accordance with current xlat style setting.
*