mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-25 14:01:00 +08:00
[gdb/tdep] Use SYSCALL_MAP_RENAME for aarch64 and loongarch
There are currently two functions using macros SYSCALL_MAP and UNSUPPORTED_SYSCALL_MAP: aarch64_canonicalize_syscall, and loongarch_canonicalize_syscall. Here [1] I propose to do the same in i386_canonicalize_syscall, using one additional macro: SYSCALL_MAP_RENAME. Add the same macro in aarch64_canonicalize_syscall and loongarch_canonicalize_syscall, and use it to map aarch64_sys_mmap and loongarch_sys_mmap to gdb_sys_mmap2. While we're at it: - reformat the macro definitions to be more readable, - add missing macro undefs in aarch64_canonicalize_syscall, and - fix indentation in aarch64_canonicalize_syscall. No functional changes. Tested by rebuilding on x86_64-linux. Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com> [1] https://sourceware.org/pipermail/gdb-patches/2025-March/216230.html
This commit is contained in:
parent
7b2a5f7183
commit
57d2ceb311
@ -2038,11 +2038,17 @@ enum aarch64_syscall {
|
||||
static enum gdb_syscall
|
||||
aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
|
||||
{
|
||||
#define SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
|
||||
return gdb_sys_##SYSCALL
|
||||
#define SYSCALL_MAP(SYSCALL) \
|
||||
case aarch64_sys_ ## SYSCALL: \
|
||||
return gdb_sys_ ## SYSCALL
|
||||
|
||||
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
|
||||
return gdb_sys_no_syscall
|
||||
#define SYSCALL_MAP_RENAME(SYSCALL, GDB_SYSCALL) \
|
||||
case aarch64_sys_ ## SYSCALL: \
|
||||
return GDB_SYSCALL;
|
||||
|
||||
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) \
|
||||
case aarch64_sys_ ## SYSCALL: \
|
||||
return gdb_sys_no_syscall
|
||||
|
||||
switch (syscall_number)
|
||||
{
|
||||
@ -2269,8 +2275,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
|
||||
SYSCALL_MAP (clone);
|
||||
SYSCALL_MAP (execve);
|
||||
|
||||
case aarch64_sys_mmap:
|
||||
return gdb_sys_mmap2;
|
||||
SYSCALL_MAP_RENAME (mmap, gdb_sys_mmap2);
|
||||
|
||||
SYSCALL_MAP (fadvise64);
|
||||
SYSCALL_MAP (swapon);
|
||||
@ -2312,9 +2317,14 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
|
||||
UNSUPPORTED_SYSCALL_MAP (sched_setattr);
|
||||
UNSUPPORTED_SYSCALL_MAP (sched_getattr);
|
||||
SYSCALL_MAP (getrandom);
|
||||
default:
|
||||
return gdb_sys_no_syscall;
|
||||
}
|
||||
|
||||
default:
|
||||
return gdb_sys_no_syscall;
|
||||
}
|
||||
|
||||
#undef SYSCALL_MAP
|
||||
#undef SYSCALL_MAP_RENAME
|
||||
#undef UNSUPPORTED_SYSCALL_MAP
|
||||
}
|
||||
|
||||
/* Retrieve the syscall number at a ptrace syscall-stop, either on syscall entry
|
||||
|
@ -581,11 +581,17 @@ static linux_record_tdep loongarch_linux_record_tdep;
|
||||
static enum gdb_syscall
|
||||
loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
|
||||
{
|
||||
#define SYSCALL_MAP(SYSCALL) case loongarch_sys_##SYSCALL: \
|
||||
return gdb_sys_##SYSCALL
|
||||
#define SYSCALL_MAP(SYSCALL) \
|
||||
case loongarch_sys_ ## SYSCALL: \
|
||||
return gdb_sys_ ## SYSCALL
|
||||
|
||||
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case loongarch_sys_##SYSCALL: \
|
||||
return gdb_sys_no_syscall
|
||||
#define SYSCALL_MAP_RENAME(SYSCALL, GDB_SYSCALL) \
|
||||
case loongarch_sys_ ## SYSCALL: \
|
||||
return GDB_SYSCALL;
|
||||
|
||||
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) \
|
||||
case loongarch_sys_ ## SYSCALL: \
|
||||
return gdb_sys_no_syscall
|
||||
|
||||
switch(syscall_number)
|
||||
{
|
||||
@ -806,8 +812,7 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
|
||||
SYSCALL_MAP (clone);
|
||||
SYSCALL_MAP (execve);
|
||||
|
||||
case loongarch_sys_mmap:
|
||||
return gdb_sys_mmap2;
|
||||
SYSCALL_MAP_RENAME (mmap, gdb_sys_mmap2);
|
||||
|
||||
SYSCALL_MAP (fadvise64);
|
||||
SYSCALL_MAP (swapon);
|
||||
@ -907,7 +912,9 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
|
||||
default:
|
||||
return gdb_sys_no_syscall;
|
||||
}
|
||||
|
||||
#undef SYSCALL_MAP
|
||||
#undef SYSCALL_MAP_RENAME
|
||||
#undef UNSUPPORTED_SYSCALL_MAP
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user