mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 08:04:22 +08:00
db6b8cc891
When we moved to a syscalltbl generated from the kernel syscall tables (arch/..../syscall*.tbl) the idea was to either use it, when having the generator (e.g. tools/perf/arch/x86/entry/syscalls/syscalltbl.sh), or falling back to the previous audit-libs based way of mapping syscall ids to strings and the other way around. At first we just needed the audit_detect_machine() return to then use it to the str->id/id->str, or the other fields for the now used by default in the most well developed arches method of using the syscall table generator. The problem is that then the libaudit code fell into disrepair, and architectures where it is the method used are not working. Now, with NO_SYSCALL_TABLE=1 being possible to pass on the make command line we can automate the testing of that method even on x86-64, arm64, etc. And doing it I noted that we actually use fields in both entries in the union, oops, so ditch the union, as we need all those fields at the same time. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
24 lines
660 B
C
24 lines
660 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __PERF_SYSCALLTBL_H
|
|
#define __PERF_SYSCALLTBL_H
|
|
|
|
struct syscalltbl {
|
|
int audit_machine;
|
|
struct {
|
|
int max_id;
|
|
int nr_entries;
|
|
void *entries;
|
|
} syscalls;
|
|
};
|
|
|
|
struct syscalltbl *syscalltbl__new(void);
|
|
void syscalltbl__delete(struct syscalltbl *tbl);
|
|
|
|
const char *syscalltbl__name(const struct syscalltbl *tbl, int id);
|
|
int syscalltbl__id(struct syscalltbl *tbl, const char *name);
|
|
|
|
int syscalltbl__strglobmatch_first(struct syscalltbl *tbl, const char *syscall_glob, int *idx);
|
|
int syscalltbl__strglobmatch_next(struct syscalltbl *tbl, const char *syscall_glob, int *idx);
|
|
|
|
#endif /* __PERF_SYSCALLTBL_H */
|