]> granicus.if.org Git - strace/commitdiff
Make shuffle_scno globally available
authorEugene Syromyatnikov <evgsyr@gmail.com>
Thu, 1 Feb 2018 11:48:44 +0000 (12:48 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 10 Feb 2018 00:01:01 +0000 (00:01 +0000)
* syscall.c (shuffle_scno): Move the declaration...
* defs.h (shuffle_scno): ...here. Remove static qualifier.
* linux/aarch64/shuffle_scno.c (shuffle_scno): Remove static qualifier.
* linux/arm/shuffle_scno.c: Likewise.
* linux/shuffle_scno.c: Likewise.
* linux/x32/shuffle_scno.c: Likewise.
* linux/x86_64/shuffle_scno.c: Likewise.

defs.h
linux/aarch64/shuffle_scno.c
linux/arm/shuffle_scno.c
linux/shuffle_scno.c
linux/x32/shuffle_scno.c
linux/x86_64/shuffle_scno.c
syscall.c

diff --git a/defs.h b/defs.h
index bbe0ecc9dd8270847d46dd350a4234bf132b4c09..1a6c789bac417f8430d8ef33d0d5f914fa5d2482 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -407,6 +407,14 @@ extern kernel_ulong_t get_rt_sigframe_addr(struct tcb *);
  *             is valid; NULL otherwise.
  */
 extern const char *syscall_name(kernel_ulong_t scno);
+/**
+ * Shuffle syscall numbers so that we don't have huge gaps in syscall table.
+ * The shuffling should be an involution: shuffle_scno(shuffle_scno(n)) == n.
+ *
+ * @param scno Raw or shuffled syscall number.
+ * @return     Shuffled or raw syscall number, respectively.
+ */
+extern kernel_ulong_t shuffle_scno(kernel_ulong_t scno);
 extern const char *err_name(unsigned long err);
 
 extern bool is_erestart(struct tcb *);
index 81846330ba161db28afbba2faa37a892ed7c07d9..7d4de73c0b4a6e32291b38750bd23271cb17a537 100644 (file)
@@ -2,7 +2,7 @@
 #include "../arm/shuffle_scno.c"
 #undef shuffle_scno
 
-static kernel_ulong_t
+kernel_ulong_t
 shuffle_scno(kernel_ulong_t scno)
 {
        if (current_personality == 1)
index af77f8736dae39a14adccfe4194fafe5ff13d896..17a40d67accacaafe46ed7f450c0126600c27dad 100644 (file)
@@ -1,4 +1,4 @@
-static kernel_ulong_t
+kernel_ulong_t
 shuffle_scno(kernel_ulong_t scno)
 {
        if (scno < ARM_FIRST_SHUFFLED_SYSCALL)
index e99f55cdb735720270aca877fb9de56442c77fc9..0e6feaf2215f65170a2ba93e9e9d753cbc5af188 100644 (file)
@@ -1,4 +1,4 @@
-static kernel_ulong_t
+kernel_ulong_t
 shuffle_scno(kernel_ulong_t scno)
 {
        return scno;
index e576d8850f75e19d38513641f2f1e50a0a90f221..d0db368fbdb274b93b1763f7900014eaa61b55dd 100644 (file)
@@ -1,4 +1,4 @@
-static kernel_ulong_t
+kernel_ulong_t
 shuffle_scno(kernel_ulong_t scno)
 {
        if (current_personality == 0 && scno != (kernel_ulong_t) -1)
index 7a67897f7c9f3c09bcdbfa3456a746e3740975ea..77840c23032319903c1d64b3cb3a784c897c94f9 100644 (file)
@@ -1,4 +1,4 @@
-static kernel_ulong_t
+kernel_ulong_t
 shuffle_scno(kernel_ulong_t scno)
 {
        if (current_personality == 2)
index e556d2559ec6d5ff1e0a234d2cb496ca02ae41ab..41353c0a713b3cf7d1bf4962beaa60b9f1d40dfc 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -486,12 +486,6 @@ dumpio(struct tcb *tcp)
        }
 }
 
-/*
- * Shuffle syscall numbers so that we don't have huge gaps in syscall table.
- * The shuffling should be an involution: shuffle_scno(shuffle_scno(n)) == n.
- */
-static kernel_ulong_t shuffle_scno(kernel_ulong_t scno);
-
 const char *
 err_name(unsigned long err)
 {