]> granicus.if.org Git - strace/commitdiff
Remove parser of query_module syscall
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 24 Nov 2015 02:30:45 +0000 (02:30 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 24 Nov 2015 02:30:45 +0000 (02:30 +0000)
Since query_module syscall is present only in kernels before Linux 2.6
and strace does not support those kernels, there is no use to keep this
parser any longer.

* bjm.c: Do not include <sys/*>, "xlat/qm_which.h",
and "xlat/modflags.h".
(MOD_*, QM_*, module_symbol, module_info, SYS_FUNC(query_module)):
Remove.
* linux/dummy.h (sys_query_module): Add stub alias.
* xlat/modflags.in: Remove.
* xlat/qm_which.in: Remove.

bjm.c
linux/dummy.h
xlat/modflags.in [deleted file]
xlat/qm_which.in [deleted file]

diff --git a/bjm.c b/bjm.c
index a607d169c9cd61502b6e39275311ca77cadce8cc..7ba14982b20d1421bfe8f748130a1c8c5cdc7a79 100644 (file)
--- a/bjm.c
+++ b/bjm.c
 
 #include "defs.h"
 #include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/resource.h>
-#include <sys/utsname.h>
 
-/* Bits of module.flags.  */
-
-#define MOD_UNINITIALIZED      0
-#define MOD_RUNNING            1
-#define MOD_DELETED            2
-#define MOD_AUTOCLEAN          4
-#define MOD_VISITED            8
-#define MOD_USED_ONCE          16
-#define MOD_JUST_FREED         32
-#define MOD_INITIALIZING       64
-
-/* Values for query_module's which.  */
-
-#define QM_MODULES     1
-#define QM_DEPS                2
-#define QM_REFS                3
-#define QM_SYMBOLS     4
-#define QM_INFO                5
-
-struct module_symbol
-{
-       unsigned long value;
-       const char *name;
-};
-
-struct module_info
-{
-       unsigned long addr;
-       unsigned long size;
-       unsigned long flags;
-       long usecount;
-};
-
-#include "xlat/qm_which.h"
-#include "xlat/modflags.h"
 #include "xlat/delete_module_flags.h"
 
-SYS_FUNC(query_module)
-{
-       if (entering(tcp)) {
-               printstr(tcp, tcp->u_arg[0], -1);
-               tprints(", ");
-               printxval(qm_which, tcp->u_arg[1], "QM_???");
-               tprints(", ");
-       } else {
-               size_t ret;
-
-               if (!verbose(tcp) || syserror(tcp) ||
-                   umove(tcp, tcp->u_arg[4], &ret) < 0) {
-                       tprintf("%#lx, %lu, %#lx", tcp->u_arg[2],
-                               tcp->u_arg[3], tcp->u_arg[4]);
-               } else if (tcp->u_arg[1]==QM_INFO) {
-                       struct module_info      mi;
-                       if (umove(tcp, tcp->u_arg[2], &mi) < 0) {
-                               tprintf("%#lx, ", tcp->u_arg[2]);
-                       } else {
-                               tprintf("{address=%#lx, size=%lu, flags=",
-                                       mi.addr, mi.size);
-                               printflags(modflags, mi.flags, "MOD_???");
-                               tprintf(", usecount=%lu}, ", mi.usecount);
-                       }
-                       tprintf("%lu", (unsigned long)ret);
-               } else if ((tcp->u_arg[1]==QM_MODULES) ||
-                          (tcp->u_arg[1]==QM_DEPS) ||
-                          (tcp->u_arg[1]==QM_REFS)) {
-                       tprints("{");
-                       if (!abbrev(tcp)) {
-                               char*   data    = malloc(tcp->u_arg[3]);
-                               char*   mod     = data;
-                               size_t  idx;
-
-                               if (!data) {
-                                       error_msg("Out of memory");
-                                       tprintf(" /* %lu entries */ ", (unsigned long)ret);
-                               } else {
-                                       if (umoven(tcp, tcp->u_arg[2],
-                                               tcp->u_arg[3], data) < 0) {
-                                               tprintf(" /* %lu entries */ ", (unsigned long)ret);
-                                       } else {
-                                               for (idx = 0; idx < ret; idx++) {
-                                                       tprintf("%s%s",
-                                                               (idx ? ", " : ""),
-                                                               mod);
-                                                       mod += strlen(mod)+1;
-                                               }
-                                       }
-                                       free(data);
-                               }
-                       } else
-                               tprintf(" /* %lu entries */ ", (unsigned long)ret);
-                       tprintf("}, %lu", (unsigned long)ret);
-               } else if (tcp->u_arg[1]==QM_SYMBOLS) {
-                       tprints("{");
-                       if (!abbrev(tcp)) {
-                               char*                   data    = malloc(tcp->u_arg[3]);
-                               struct module_symbol*   sym     = (struct module_symbol*)data;
-                               size_t                  idx;
-
-                               if (!data) {
-                                       error_msg("Out of memory");
-                                       tprintf(" /* %lu entries */ ", (unsigned long)ret);
-                               } else {
-                                       if (umoven(tcp, tcp->u_arg[2],
-                                               tcp->u_arg[3], data) < 0) {
-                                               tprintf(" /* %lu entries */ ", (unsigned long)ret);
-                                       } else {
-                                               for (idx = 0; idx < ret; idx++) {
-                                                       tprintf("%s{name=%s, value=%lu}",
-                                                               (idx ? " " : ""),
-                                                               data+(long)sym->name,
-                                                               sym->value);
-                                                       sym++;
-                                               }
-                                       }
-                                       free(data);
-                               }
-                       } else
-                               tprintf(" /* %lu entries */ ", (unsigned long)ret);
-                       tprintf("}, %ld", (unsigned long)ret);
-               } else {
-                       printstr(tcp, tcp->u_arg[2], tcp->u_arg[3]);
-                       tprintf(", %#lx", tcp->u_arg[4]);
-               }
-       }
-       return 0;
-}
-
 SYS_FUNC(create_module)
 {
        printpath(tcp, tcp->u_arg[0]);
index bb01ddf0b56fadcb41f5e7948e3d2cfc8c32afea..ea0c6c71a8994904afc04a1833e71f641cd84432 100644 (file)
 #define        sys_phys                printargs
 #define        sys_profil              printargs
 #define        sys_prof                printargs
+#define        sys_query_module        printargs
 #define        sys_security            printargs
 #define        sys_stty                printargs
 #define        sys_tuxcall             printargs
diff --git a/xlat/modflags.in b/xlat/modflags.in
deleted file mode 100644 (file)
index 2edf7e9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-MOD_UNINITIALIZED
-MOD_RUNNING
-MOD_DELETED
-MOD_AUTOCLEAN
-MOD_VISITED
-MOD_USED_ONCE
-MOD_JUST_FREED
diff --git a/xlat/qm_which.in b/xlat/qm_which.in
deleted file mode 100644 (file)
index b032554..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-0
-QM_MODULES
-QM_DEPS
-QM_REFS
-QM_SYMBOLS
-QM_INFO