diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2015-11-24 02:30:45 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2015-11-24 02:30:45 +0000 |
commit | aae525f94edb1f797159e86685798e4681d51756 (patch) | |
tree | 160e743a39de46ca9f5ad5d14d35cf9f4fc2e543 | |
parent | 25cb5cb04f29f07f9b6af1c26cf5ed3d898e5538 (diff) | |
download | strace-aae525f94edb1f797159e86685798e4681d51756.tar.gz |
Remove parser of query_module syscall
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.
-rw-r--r-- | bjm.c | 129 | ||||
-rw-r--r-- | linux/dummy.h | 1 | ||||
-rw-r--r-- | xlat/modflags.in | 7 | ||||
-rw-r--r-- | xlat/qm_which.in | 6 |
4 files changed, 1 insertions, 142 deletions
@@ -30,138 +30,9 @@ #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]); diff --git a/linux/dummy.h b/linux/dummy.h index bb01ddf0b..ea0c6c71a 100644 --- a/linux/dummy.h +++ b/linux/dummy.h @@ -136,6 +136,7 @@ #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 index 2edf7e948..000000000 --- a/xlat/modflags.in +++ /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 index b0325546b..000000000 --- a/xlat/qm_which.in +++ /dev/null @@ -1,6 +0,0 @@ -0 -QM_MODULES -QM_DEPS -QM_REFS -QM_SYMBOLS -QM_INFO |