diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2021-09-06 16:28:12 +0200 |
---|---|---|
committer | Eugene Syromyatnikov <evgsyr@gmail.com> | 2021-09-14 11:20:52 +0200 |
commit | 5e0ef82427984cd5f164b9f9f1eb08db2f5d295a (patch) | |
tree | 19a71b5c032d060c201c804b209eadc1eff74123 /src/defs.h | |
parent | d37ddff8935a6b8615ad654d2a44532ef2cb2581 (diff) | |
download | strace-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.h | 14 |
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. * |