kdump: Decode Linux clock_nanosleep syscall

MFC after:		2 weeks
This commit is contained in:
Dmitry Chagin 2022-06-22 14:21:42 +03:00
parent f587a2a765
commit 39de84b619
4 changed files with 31 additions and 0 deletions

View file

@ -190,3 +190,10 @@ sysdecode_linux_sigprocmask_how(int how)
return (lookup_value(sigprocmaskhow, how));
}
bool
sysdecode_linux_clock_flags(FILE *fp, int flags, int *rem)
{
return (print_mask_int(fp, clockflags, flags, rem));
}

View file

@ -89,6 +89,7 @@ cat <<_EOF_
_EOF_
gen_table "clockids" "LINUX_CLOCK_[A-Z_]+[[:space:]]+[0-9]+" "compat/linux/linux_timer.h"
gen_table "clockflags" "LINUX_TIMER_[A-Z_]+[[:space:]]+0x[0-9]+" "compat/linux/linux_timer.h"
gen_table "clockcpuids" "LINUX_CPUCLOCK_[A-Z_]+[[:space:]]+[0-9]+" "compat/linux/linux_timer.h" "_MASK|_MAX"
gen_table "sigprocmaskhow" "LINUX_SIG_[A-Z]+[[:space:]]+[0-9]+" "compat/linux/linux.h"

View file

@ -140,6 +140,7 @@ bool sysdecode_shmflags(FILE *_fp, int _flags, int *_rem);
#define SYSDECODE_HAVE_LINUX
void sysdecode_linux_clockid(FILE *_fp, clockid_t _which);
bool sysdecode_linux_clock_flags(FILE *_fp, int _flags, int *_rem);
const char *sysdecode_linux_signal(int _sig);
const char *sysdecode_linux_sigprocmask_how(int _how);

View file

@ -87,6 +87,17 @@ ktrsyscall_linux(struct ktr_syscall *ktr, register_t **resip,
ip++;
narg--;
break;
case LINUX_SYS_linux_clock_nanosleep:
putchar('(');
sysdecode_linux_clockid(stdout, *ip);
putchar(',');
ip++;
narg--;
print_mask_arg0(sysdecode_linux_clock_flags, *ip);
c = ',';
ip++;
narg--;
break;
case LINUX_SYS_linux_kill:
case LINUX_SYS_linux_tkill:
case LINUX_SYS_linux_rt_sigqueueinfo:
@ -169,6 +180,17 @@ ktrsyscall_linux32(struct ktr_syscall *ktr, register_t **resip,
ip++;
narg--;
break;
case LINUX32_SYS_linux_clock_nanosleep:
putchar('(');
sysdecode_linux_clockid(stdout, *ip);
putchar(',');
ip++;
narg--;
print_mask_arg0(sysdecode_linux_clock_flags, *ip);
c = ',';
ip++;
narg--;
break;
case LINUX32_SYS_linux_kill:
case LINUX32_SYS_linux_tkill:
case LINUX32_SYS_linux_rt_sigqueueinfo: