truss: Decode sendfile(2) arguments
MFC after: 2 weeks
This commit is contained in:
parent
59fffbcf46
commit
90da2c797b
@ -117,6 +117,8 @@ enum Argtype {
|
||||
Procctl,
|
||||
Priowhich,
|
||||
Ptraceop,
|
||||
Sendfileflags,
|
||||
Sendfilehdtr,
|
||||
Quotactlcmd,
|
||||
Reboothowto,
|
||||
Resource,
|
||||
|
@ -478,6 +478,10 @@ static struct syscall decoded_syscalls[] = {
|
||||
.args = { { Int, 0 }, { Iovec | IN, 1 }, { Int, 2 },
|
||||
{ Sockaddr | IN, 3 }, { Socklent, 4 },
|
||||
{ Sctpsndrcvinfo | IN, 5 }, { Msgflags, 6 } } },
|
||||
{ .name = "sendfile", .ret_type = 1, .nargs = 7,
|
||||
.args = { { Int, 0 }, { Int, 1 }, { QuadHex, 2 }, { Sizet, 3 },
|
||||
{ Sendfilehdtr, 4 }, { QuadHex | OUT, 5 },
|
||||
{ Sendfileflags, 6 } } },
|
||||
{ .name = "select", .ret_type = 1, .nargs = 5,
|
||||
.args = { { Int, 0 }, { Fd_set, 1 }, { Fd_set, 2 }, { Fd_set, 3 },
|
||||
{ Timeval, 4 } } },
|
||||
@ -2670,6 +2674,24 @@ print_arg(struct syscall_args *sc, unsigned long *args, register_t *retval,
|
||||
print_integer_arg(sysdecode_ptrace_request, fp,
|
||||
args[sc->offset]);
|
||||
break;
|
||||
case Sendfileflags:
|
||||
print_mask_arg(sysdecode_sendfile_flags, fp, args[sc->offset]);
|
||||
break;
|
||||
case Sendfilehdtr: {
|
||||
struct sf_hdtr hdtr;
|
||||
|
||||
if (get_struct(pid, args[sc->offset], &hdtr, sizeof(hdtr)) !=
|
||||
-1) {
|
||||
fprintf(fp, "{");
|
||||
print_iovec(fp, trussinfo, (uintptr_t)hdtr.headers,
|
||||
hdtr.hdr_cnt);
|
||||
print_iovec(fp, trussinfo, (uintptr_t)hdtr.trailers,
|
||||
hdtr.trl_cnt);
|
||||
fprintf(fp, "}");
|
||||
} else
|
||||
print_pointer(fp, args[sc->offset]);
|
||||
break;
|
||||
}
|
||||
case Quotactlcmd:
|
||||
if (!sysdecode_quotactl_cmd(fp, args[sc->offset]))
|
||||
fprintf(fp, "%#x", (int)args[sc->offset]);
|
||||
|
Loading…
Reference in New Issue
Block a user