version 1.154, 2023/01/07 05:26:40 |
version 1.155, 2023/01/16 05:32:05 |
|
|
ktrsyscall(struct ktr_syscall *ktr, size_t ktrlen) |
ktrsyscall(struct ktr_syscall *ktr, size_t ktrlen) |
{ |
{ |
register_t *ap; |
register_t *ap; |
int narg; |
int narg, code; |
char sep; |
char sep; |
|
|
if (ktr->ktr_argsize > ktrlen) |
if (ktr->ktr_argsize > ktrlen) |
|
|
narg = ktr->ktr_argsize / sizeof(register_t); |
narg = ktr->ktr_argsize / sizeof(register_t); |
sep = '\0'; |
sep = '\0'; |
|
|
if (ktr->ktr_code >= SYS_MAXSYSCALL || ktr->ktr_code < 0) |
if (ktr->ktr_code & KTRC_CODE_SYSCALL) |
(void)printf("[%d]", ktr->ktr_code); |
(void)printf("(via syscall) "); |
|
else if (ktr->ktr_code & KTRC_CODE__SYSCALL) |
|
(void)printf("(via __syscall) "); |
|
code = ktr->ktr_code & KTRC_CODE_MASK; |
|
if (code >= SYS_MAXSYSCALL || code < 0) |
|
(void)printf("[%d]", code); |
else |
else |
(void)printf("%s", syscallnames[ktr->ktr_code]); |
(void)printf("%s", syscallnames[code]); |
ap = (register_t *)((char *)ktr + sizeof(struct ktr_syscall)); |
ap = (register_t *)((char *)ktr + sizeof(struct ktr_syscall)); |
(void)putchar('('); |
(void)putchar('('); |
|
|
if (ktr->ktr_code == SYS_sysctl && fancy) { |
if (code == SYS_sysctl && fancy) { |
const char *s; |
const char *s; |
int n, i, *top; |
int n, i, *top; |
|
|
|
|
sep = ','; |
sep = ','; |
ap += 2; |
ap += 2; |
narg -= 2; |
narg -= 2; |
} else if (ktr->ktr_code < nitems(scargs)) { |
} else if (code < nitems(scargs)) { |
const formatter *fmts = scargs[ktr->ktr_code]; |
const formatter *fmts = scargs[code]; |
int fmt; |
int fmt; |
int arg = 0; |
int arg = 0; |
|
|