Lines Matching +full:quad +full:- +full:se +full:- +full:mode
1 /*-
2 * SPDX-License-Identifier: BSD-4-Clause
379 .args = { { Name, 0 }, { Octal, 1 }, { Quad, 2 } } },
381 .args = { { Atfd, 0 }, { Name, 1 }, { Octal, 2 }, { Quad, 3 } } },
433 .args = { { Idtype, 0 }, { Quad, 1 }, { Procctl, 2 }, { Ptr, 3 } } },
596 .args = { { Idtype, 0 }, { Quad, 1 }, { ExitStatus | OUT, 2 },
692 for (; xlat->str != NULL; xlat++) in lookup()
693 if (xlat->val == val) in lookup()
694 return (xlat->str); in lookup()
731 for (; xlat->str != NULL; xlat++) { in xlookup_bits()
732 if ((xlat->val & rem) == xlat->val) { in xlookup_bits()
734 * Don't print the "all-bits-zero" string unless all in xlookup_bits()
737 if (xlat->val == 0 && val != 0) in xlookup_bits()
739 len += sprintf(str + len, "%s|", xlat->str); in xlookup_bits()
740 rem &= ~(xlat->val); in xlookup_bits()
750 if (len && str[len - 1] == '|') in xlookup_bits()
751 len--; in xlookup_bits()
800 * Add argument padding to subsequent system calls after Quad
813 prev = -1; in quad_fixup()
814 for (i = 0; i < sc->nargs; i++) { in quad_fixup()
816 if ((sc->args[i].type & ARG_MASK) == PipeFds) in quad_fixup()
819 assert(prev < sc->args[i].offset); in quad_fixup()
820 prev = sc->args[i].offset; in quad_fixup()
821 sc->args[i].offset += offset; in quad_fixup()
822 switch (sc->args[i].type & ARG_MASK) { in quad_fixup()
823 case Quad: in quad_fixup()
827 * 64-bit arguments on 32-bit powerpc and arm must be in quad_fixup()
828 * 64-bit aligned. If the current offset is in quad_fixup()
830 * a 32-bit pad argument that should be skipped. in quad_fixup()
832 if (sc->args[i].offset % 2 == 1) { in quad_fixup()
833 sc->args[i].offset++; in quad_fixup()
849 if (number < nitems(abi->syscalls)) in find_syscall()
850 return (abi->syscalls[number]); in find_syscall()
851 STAILQ_FOREACH(es, &abi->extra_syscalls, entries) { in find_syscall()
852 if (es->number == number) in find_syscall()
853 return (es->sc); in find_syscall()
864 * quad_fixup() is currently needed for all 32-bit ABIs. in add_syscall()
868 if (abi->pointer_size == 4) in add_syscall()
869 quad_fixup(&sc->decode); in add_syscall()
871 if (number < nitems(abi->syscalls)) { in add_syscall()
872 assert(abi->syscalls[number] == NULL); in add_syscall()
873 abi->syscalls[number] = sc; in add_syscall()
876 es->sc = sc; in add_syscall()
877 es->number = number; in add_syscall()
878 STAILQ_INSERT_TAIL(&abi->extra_syscalls, es, entries); in add_syscall()
898 procabi = t->proc->abi; in get_syscall()
904 sysdecode_name = sysdecode_syscallname(procabi->abi, number); in get_syscall()
911 sc->name = name; in get_syscall()
915 if (procabi->compat_prefix != NULL && strncmp(procabi->compat_prefix, in get_syscall()
916 name, strlen(procabi->compat_prefix)) == 0) in get_syscall()
917 lookup_name += strlen(procabi->compat_prefix); in get_syscall()
921 sc->decode = decoded_syscalls[i]; in get_syscall()
922 add_syscall(t->proc->abi, number, sc); in get_syscall()
929 fprintf(stderr, "unknown syscall %s -- setting args to %d\n", name, in get_syscall()
932 sc->unknown = sysdecode_name == NULL; in get_syscall()
933 sc->decode.ret_type = 1; /* Assume 1 return value. */ in get_syscall()
934 sc->decode.nargs = nargs; in get_syscall()
936 sc->decode.args[i].offset = i; in get_syscall()
938 sc->decode.args[i].type = LongHex; in get_syscall()
940 add_syscall(t->proc->abi, number, sc); in get_syscall()
957 return (-1); in get_struct()
980 size = PAGE_SIZE - (addr % PAGE_SIZE); in get_string()
1001 size = MAXSIZE - totalsize; in get_string()
1006 buf[totalsize - 1] = '\0'; in get_string()
1012 buf[totalsize - 1] = '\0'; in get_string()
1036 switch (ke->filter) { in print_kevent()
1044 fprintf(fp, "%ju", (uintmax_t)ke->ident); in print_kevent()
1047 fputs(strsig2(ke->ident), fp); in print_kevent()
1050 fprintf(fp, "%p", (void *)ke->ident); in print_kevent()
1053 print_integer_arg(sysdecode_kevent_filter, fp, ke->filter); in print_kevent()
1055 print_mask_arg(sysdecode_kevent_flags, fp, ke->flags); in print_kevent()
1057 sysdecode_kevent_fflags(fp, ke->filter, ke->fflags, 16); in print_kevent()
1058 fprintf(fp, ",%#jx,%p", (uintmax_t)ke->data, ke->udata); in print_kevent()
1074 while (len--) in print_utrace()
1096 pid_t pid = trussinfo->curthread->proc->pid; in print_sockaddr()
1109 if (get_struct(pid, arg, sa, len) == -1) { in print_sockaddr()
1115 switch (sa->sa_family) { in print_sockaddr()
1120 inet_ntop(AF_INET, &lsin->sin_addr, addr, sizeof(addr)); in print_sockaddr()
1122 htons(lsin->sin_port)); in print_sockaddr()
1128 inet_ntop(AF_INET6, &lsin6->sin6_addr, addr, in print_sockaddr()
1131 htons(lsin6->sin6_port)); in print_sockaddr()
1136 (int)(len - offsetof(struct sockaddr_un, sun_path)), in print_sockaddr()
1137 sun->sun_path); in print_sockaddr()
1143 (int)sa->sa_len, (int)sa->sa_family); in print_sockaddr()
1144 for (q = (u_char *)sa->sa_data; in print_sockaddr()
1147 q == (u_char *)sa->sa_data ? "" : ",", in print_sockaddr()
1160 size_t max_string = trussinfo->strsize; in print_iovec()
1163 pid_t pid = trussinfo->curthread->proc->pid; in print_iovec()
1177 if (get_struct(pid, arg, &iov, iovcnt * sizeof(struct iovec)) == -1) { in print_iovec()
1192 if (len && get_struct(pid, (uintptr_t)iov[i].iov_base, &tmp2, len) != -1) { in print_iovec()
1199 len--; in print_iovec()
1216 fprintf(fp, "{ %d, %p }", sv->sival_int, sv->sival_ptr); in print_sigval()
1220 print_sigevent(FILE *fp, struct sigevent *se) in print_sigevent() argument
1223 switch (se->sigev_notify) { in print_sigevent()
1229 strsig2(se->sigev_signo)); in print_sigevent()
1230 print_sigval(fp, &se->sigev_value); in print_sigevent()
1234 print_sigval(fp, &se->sigev_value); in print_sigevent()
1238 se->sigev_notify_kqueue); in print_sigevent()
1239 print_mask_arg(sysdecode_kevent_flags, fp, se->sigev_notify_kevent_flags); in print_sigevent()
1243 se->sigev_notify_thread_id, strsig2(se->sigev_signo)); in print_sigevent()
1244 print_sigval(fp, &se->sigev_value); in print_sigevent()
1247 fprintf(fp, "%d", se->sigev_notify); in print_sigevent()
1257 cb->aio_fildes, in print_aiocb()
1258 cb->aio_offset, in print_aiocb()
1259 cb->aio_buf, in print_aiocb()
1260 cb->aio_nbytes, in print_aiocb()
1261 xlookup(lio_opcodes, cb->aio_lio_opcode)); in print_aiocb()
1262 print_sigevent(fp, &cb->aio_sigevent); in print_aiocb()
1273 q < (u_char *)cmsghdr + cmsghdr->cmsg_len; q++) { in print_gen_cmsg()
1282 fprintf(fp, "{out=%u,", init->sinit_num_ostreams); in print_sctp_initmsg()
1283 fprintf(fp, "in=%u,", init->sinit_max_instreams); in print_sctp_initmsg()
1284 fprintf(fp, "max_rtx=%u,", init->sinit_max_attempts); in print_sctp_initmsg()
1285 fprintf(fp, "max_rto=%u}", init->sinit_max_init_timeo); in print_sctp_initmsg()
1291 fprintf(fp, "{sid=%u,", info->sinfo_stream); in print_sctp_sndrcvinfo()
1293 fprintf(fp, "ssn=%u,", info->sinfo_ssn); in print_sctp_sndrcvinfo()
1296 sysdecode_sctp_sinfo_flags(fp, info->sinfo_flags); in print_sctp_sndrcvinfo()
1297 fprintf(fp, ",ppid=%u,", ntohl(info->sinfo_ppid)); in print_sctp_sndrcvinfo()
1299 fprintf(fp, "ctx=%u,", info->sinfo_context); in print_sctp_sndrcvinfo()
1300 fprintf(fp, "ttl=%u,", info->sinfo_timetolive); in print_sctp_sndrcvinfo()
1303 fprintf(fp, "tsn=%u,", info->sinfo_tsn); in print_sctp_sndrcvinfo()
1304 fprintf(fp, "cumtsn=%u,", info->sinfo_cumtsn); in print_sctp_sndrcvinfo()
1306 fprintf(fp, "id=%u}", info->sinfo_assoc_id); in print_sctp_sndrcvinfo()
1312 fprintf(fp, "{sid=%u,", info->snd_sid); in print_sctp_sndinfo()
1314 print_mask_arg(sysdecode_sctp_snd_flags, fp, info->snd_flags); in print_sctp_sndinfo()
1315 fprintf(fp, ",ppid=%u,", ntohl(info->snd_ppid)); in print_sctp_sndinfo()
1316 fprintf(fp, "ctx=%u,", info->snd_context); in print_sctp_sndinfo()
1317 fprintf(fp, "id=%u}", info->snd_assoc_id); in print_sctp_sndinfo()
1323 fprintf(fp, "{sid=%u,", info->rcv_sid); in print_sctp_rcvinfo()
1324 fprintf(fp, "ssn=%u,", info->rcv_ssn); in print_sctp_rcvinfo()
1326 print_mask_arg(sysdecode_sctp_rcv_flags, fp, info->rcv_flags); in print_sctp_rcvinfo()
1327 fprintf(fp, ",ppid=%u,", ntohl(info->rcv_ppid)); in print_sctp_rcvinfo()
1328 fprintf(fp, "tsn=%u,", info->rcv_tsn); in print_sctp_rcvinfo()
1329 fprintf(fp, "cumtsn=%u,", info->rcv_cumtsn); in print_sctp_rcvinfo()
1330 fprintf(fp, "ctx=%u,", info->rcv_context); in print_sctp_rcvinfo()
1331 fprintf(fp, "id=%u}", info->rcv_assoc_id); in print_sctp_rcvinfo()
1337 fprintf(fp, "{sid=%u,", info->nxt_sid); in print_sctp_nxtinfo()
1339 print_mask_arg(sysdecode_sctp_nxt_flags, fp, info->nxt_flags); in print_sctp_nxtinfo()
1340 fprintf(fp, ",ppid=%u,", ntohl(info->nxt_ppid)); in print_sctp_nxtinfo()
1341 fprintf(fp, "len=%u,", info->nxt_length); in print_sctp_nxtinfo()
1342 fprintf(fp, "id=%u}", info->nxt_assoc_id); in print_sctp_nxtinfo()
1349 print_integer_arg(sysdecode_sctp_pr_policy, fp, info->pr_policy); in print_sctp_prinfo()
1350 fprintf(fp, ",val=%u}", info->pr_value); in print_sctp_prinfo()
1356 fprintf(fp, "{num=%u}", info->auth_keynumber); in print_sctp_authinfo()
1391 len = cmsghdr->cmsg_len; in print_sctp_cmsg()
1393 switch (cmsghdr->cmsg_type) { in print_sctp_cmsg()
1473 len = msghdr->msg_controllen; in print_cmsgs()
1479 if (get_struct(pid, (uintptr_t)msghdr->msg_control, cmsgbuf, len) == -1) { in print_cmsgs()
1480 print_pointer(fp, (uintptr_t)msghdr->msg_control); in print_cmsgs()
1484 msghdr->msg_control = cmsgbuf; in print_cmsgs()
1490 if (cmsghdr->cmsg_len < sizeof(*cmsghdr)) { in print_cmsgs()
1492 cmsghdr->cmsg_len); in print_cmsgs()
1493 if (cmsghdr->cmsg_len == 0) { in print_cmsgs()
1500 level = cmsghdr->cmsg_level; in print_cmsgs()
1501 type = cmsghdr->cmsg_type; in print_cmsgs()
1502 len = cmsghdr->cmsg_len; in print_cmsgs()
1554 if (sysctl(qoid, len + 2, name, &i, 0, 0) == -1) in print_sysctl()
1561 * Convert a 32-bit user-space pointer to psaddr_t by zero-extending.
1585 pid = trussinfo->curthread->proc->pid; in print_arg()
1586 switch (sc->type & ARG_MASK) { in print_arg()
1588 fprintf(fp, "0x%x", (int)args[sc->offset]); in print_arg()
1591 fprintf(fp, "0%o", (int)args[sc->offset]); in print_arg()
1594 fprintf(fp, "%d", (int)args[sc->offset]); in print_arg()
1597 fprintf(fp, "%u", (unsigned int)args[sc->offset]); in print_arg()
1602 if (get_struct(pid, args[sc->offset], &val, in print_arg()
1606 print_pointer(fp, args[sc->offset]); in print_arg()
1610 fprintf(fp, "0x%lx", (long)args[sc->offset]); in print_arg()
1613 fprintf(fp, "%ld", (long)args[sc->offset]); in print_arg()
1616 fprintf(fp, "%zu", (size_t)args[sc->offset]); in print_arg()
1620 if ((char *)(uintptr_t)args[sc->offset] == SHM_ANON) { in print_arg()
1626 /* NULL-terminated string. */ in print_arg()
1629 tmp2 = get_string(pid, args[sc->offset], 0); in print_arg()
1641 int max_string = trussinfo->strsize; in print_arg()
1646 if (sc->type & OUT) in print_arg()
1649 len = args[sc->offset + 1]; in print_arg()
1659 if (len && get_struct(pid, args[sc->offset], &tmp2, len) in print_arg()
1660 != -1) { in print_arg()
1666 len--; in print_arg()
1673 print_pointer(fp, args[sc->offset]); in print_arg()
1690 trussinfo->curthread->proc->abi->pointer_size; in print_arg()
1696 if (((sc->type & ARG_MASK) == ExecArgs && in print_arg()
1697 (trussinfo->flags & EXECVEARGS) == 0) || in print_arg()
1698 ((sc->type & ARG_MASK) == ExecEnv && in print_arg()
1699 (trussinfo->flags & EXECVEENVS) == 0)) { in print_arg()
1700 print_pointer(fp, args[sc->offset]); in print_arg()
1705 * Read a page of pointers at a time. Punt if the top-level in print_arg()
1709 addr = args[sc->offset]; in print_arg()
1711 print_pointer(fp, args[sc->offset]); in print_arg()
1715 len = PAGE_SIZE - (addr & PAGE_MASK); in print_arg()
1716 if (get_struct(pid, addr, u.buf, len) == -1) { in print_arg()
1717 print_pointer(fp, args[sc->offset]); in print_arg()
1748 if (get_struct(pid, addr, u.buf, len) == -1) { in print_arg()
1758 case Quad: in print_arg()
1762 trussinfo->curthread->proc->abi->pointer_size; in print_arg()
1766 value = (uint64_t)args[sc->offset + 1] << 32 | in print_arg()
1767 args[sc->offset]; in print_arg()
1769 value = (uint64_t)args[sc->offset] << 32 | in print_arg()
1770 args[sc->offset + 1]; in print_arg()
1773 value = (uint64_t)args[sc->offset]; in print_arg()
1775 if ((sc->type & ARG_MASK) == Quad) in print_arg()
1784 if (get_struct(pid, args[sc->offset], &val, in print_arg()
1788 print_pointer(fp, args[sc->offset]); in print_arg()
1792 print_pointer(fp, args[sc->offset]); in print_arg()
1797 if (retval[0] == -1) in print_arg()
1799 tmp2 = get_string(pid, args[sc->offset], retval[0]); in print_arg()
1808 cmd = args[sc->offset]; in print_arg()
1824 if (get_struct(pid, args[sc->offset], &ts, sizeof(ts)) != -1) in print_arg()
1828 print_pointer(fp, args[sc->offset]); in print_arg()
1836 if (get_struct(pid, args[sc->offset], &ts, sizeof(ts)) != -1) { in print_arg()
1858 print_pointer(fp, args[sc->offset]); in print_arg()
1864 if (get_struct(pid, args[sc->offset], &tv, sizeof(tv)) != -1) in print_arg()
1868 print_pointer(fp, args[sc->offset]); in print_arg()
1874 if (get_struct(pid, args[sc->offset], &tv, sizeof(tv)) != -1) in print_arg()
1879 print_pointer(fp, args[sc->offset]); in print_arg()
1885 if (get_struct(pid, args[sc->offset], &itv, sizeof(itv)) != -1) in print_arg()
1892 print_pointer(fp, args[sc->offset]); in print_arg()
1899 if (get_struct(pid, args[sc->offset], (void *)&largs, in print_arg()
1900 sizeof(largs)) != -1) in print_arg()
1905 print_pointer(fp, args[sc->offset]); in print_arg()
1915 int numfds = args[sc->offset + 1]; in print_arg()
1922 if (get_struct(pid, args[sc->offset], pfd, bytes) != -1) { in print_arg()
1930 print_pointer(fp, args[sc->offset]); in print_arg()
1949 if (get_struct(pid, args[sc->offset], fds, bytes) != -1) { in print_arg()
1957 print_pointer(fp, args[sc->offset]); in print_arg()
1962 fputs(strsig2(args[sc->offset]), fp); in print_arg()
1968 if (get_struct(pid, args[sc->offset], (void *)&ss, in print_arg()
1969 sizeof(ss)) == -1) { in print_arg()
1970 print_pointer(fp, args[sc->offset]); in print_arg()
1989 args[sc->offset]); in print_arg()
1993 if (sysdecode_fcntl_arg_p(args[sc->offset - 1])) in print_arg()
1994 sysdecode_fcntl_arg(fp, args[sc->offset - 1], in print_arg()
1995 args[sc->offset], 16); in print_arg()
1998 print_mask_arg(sysdecode_open_flags, fp, args[sc->offset]); in print_arg()
2001 print_integer_arg(sysdecode_fcntl_cmd, fp, args[sc->offset]); in print_arg()
2004 print_mask_arg(sysdecode_close_range_flags, fp, args[sc->offset]); in print_arg()
2007 print_mask_arg(sysdecode_mmap_prot, fp, args[sc->offset]); in print_arg()
2010 print_mask_arg(sysdecode_mmap_flags, fp, args[sc->offset]); in print_arg()
2013 print_integer_arg(sysdecode_whence, fp, args[sc->offset]); in print_arg()
2016 print_mask_arg(sysdecode_shmflags, fp, args[sc->offset]); in print_arg()
2019 print_integer_arg(sysdecode_socketdomain, fp, args[sc->offset]); in print_arg()
2022 print_mask_arg(sysdecode_socket_type, fp, args[sc->offset]); in print_arg()
2025 print_integer_arg(sysdecode_shutdown_how, fp, args[sc->offset]); in print_arg()
2028 print_integer_arg(sysdecode_rlimit, fp, args[sc->offset]); in print_arg()
2031 print_integer_arg(sysdecode_getrusage_who, fp, args[sc->offset]); in print_arg()
2034 print_integer_arg(sysdecode_pathconf_name, fp, args[sc->offset]); in print_arg()
2037 print_mask_arg(sysdecode_rfork_flags, fp, args[sc->offset]); in print_arg()
2042 if (args[sc->offset] == 0) { in print_arg()
2053 if (sc->type & OUT) { in print_arg()
2054 if (get_struct(pid, args[sc->offset + 1], &len, in print_arg()
2055 sizeof(len)) == -1) { in print_arg()
2056 print_pointer(fp, args[sc->offset]); in print_arg()
2060 len = args[sc->offset + 1]; in print_arg()
2062 print_sockaddr(fp, trussinfo, args[sc->offset], len); in print_arg()
2068 if (get_struct(pid, args[sc->offset], &sa, sizeof(sa)) != -1) { in print_arg()
2079 print_pointer(fp, args[sc->offset]); in print_arg()
2083 struct sigevent se; in print_arg() local
2085 if (get_struct(pid, args[sc->offset], &se, sizeof(se)) != -1) in print_arg()
2086 print_sigevent(fp, &se); in print_arg()
2088 print_pointer(fp, args[sc->offset]); in print_arg()
2100 int numevents = -1; in print_arg()
2104 if (sc->offset == 1) in print_arg()
2105 numevents = args[sc->offset+1]; in print_arg()
2106 else if (sc->offset == 3 && retval[0] != -1) in print_arg()
2117 if (numevents >= 0 && get_struct(pid, args[sc->offset], in print_arg()
2118 ke, bytes) != -1) { in print_arg()
2126 print_pointer(fp, args[sc->offset]); in print_arg()
2134 int numevents = -1; in print_arg()
2138 if (sc->offset == 1) in print_arg()
2139 numevents = args[sc->offset+1]; in print_arg()
2140 else if (sc->offset == 3 && retval[0] != -1) in print_arg()
2152 if (numevents >= 0 && get_struct(pid, args[sc->offset], in print_arg()
2153 ke11, bytes) != -1) { in print_arg()
2167 print_pointer(fp, args[sc->offset]); in print_arg()
2175 if (get_struct(pid, args[sc->offset], &st, sizeof(st)) in print_arg()
2176 != -1) { in print_arg()
2177 char mode[12]; in print_arg() local
2179 strmode(st.st_mode, mode); in print_arg()
2181 "{ mode=%s,inode=%ju,size=%jd,blksize=%ld }", mode, in print_arg()
2185 print_pointer(fp, args[sc->offset]); in print_arg()
2192 if (get_struct(pid, args[sc->offset], &st, sizeof(st)) in print_arg()
2193 != -1) { in print_arg()
2194 char mode[12]; in print_arg() local
2196 strmode(st.st_mode, mode); in print_arg()
2198 "{ mode=%s,inode=%ju,size=%jd,blksize=%ld }", mode, in print_arg()
2202 print_pointer(fp, args[sc->offset]); in print_arg()
2210 if (get_struct(pid, args[sc->offset], &buf, in print_arg()
2211 sizeof(buf)) != -1) { in print_arg()
2218 sizeof(fsid) - (i*2), "%02x", in print_arg()
2226 print_pointer(fp, args[sc->offset]); in print_arg()
2233 if (get_struct(pid, args[sc->offset], &ru, sizeof(ru)) in print_arg()
2234 != -1) { in print_arg()
2241 print_pointer(fp, args[sc->offset]); in print_arg()
2247 if (get_struct(pid, args[sc->offset], &rl, sizeof(rl)) in print_arg()
2248 != -1) { in print_arg()
2252 print_pointer(fp, args[sc->offset]); in print_arg()
2258 if (get_struct(pid, args[sc->offset], &status, in print_arg()
2259 sizeof(status)) != -1) { in print_arg()
2275 print_pointer(fp, args[sc->offset]); in print_arg()
2279 print_mask_arg(sysdecode_wait6_options, fp, args[sc->offset]); in print_arg()
2282 print_integer_arg(sysdecode_idtype, fp, args[sc->offset]); in print_arg()
2285 print_integer_arg(sysdecode_procctl_cmd, fp, args[sc->offset]); in print_arg()
2291 args[sc->offset], &rem)) in print_arg()
2297 print_integer_arg(sysdecode_atfd, fp, args[sc->offset]); in print_arg()
2300 print_mask_arg(sysdecode_atflags, fp, args[sc->offset]); in print_arg()
2303 print_mask_arg(sysdecode_access_mode, fp, args[sc->offset]); in print_arg()
2307 args[sc->offset]); in print_arg()
2315 len = args[sc->offset + 1]; in print_arg()
2316 if (get_struct(pid, args[sc->offset], oid, in print_arg()
2317 len * sizeof(oid[0])) != -1) { in print_arg()
2327 print_sysctl_oid(fp, oid + 2, len - 2); in print_arg()
2335 args[sc->offset + 4], in print_arg()
2336 args[sc->offset + 5])); in print_arg()
2340 print_sysctl(fp, oid + 2, len - 2); in print_arg()
2344 print_sysctl(fp, oid + 2, len - 2); in print_arg()
2348 print_sysctl(fp, oid + 2, len - 2); in print_arg()
2354 print_sysctl(fp, oid + 1, len - 1); in print_arg()
2382 len = args[sc->offset + 1]; in print_arg()
2384 if (get_struct(pid, args[sc->offset], in print_arg()
2385 (void *)utrace_addr, len) != -1) in print_arg()
2388 print_pointer(fp, args[sc->offset]); in print_arg()
2397 ndescriptors = args[sc->offset + 1]; in print_arg()
2403 if (get_struct(pid, args[sc->offset], in print_arg()
2404 descriptors, ndescriptors * sizeof(descriptors[0])) != -1) { in print_arg()
2411 print_pointer(fp, args[sc->offset]); in print_arg()
2415 print_mask_arg(sysdecode_pipe2_flags, fp, args[sc->offset]); in print_arg()
2420 if (sc->type & OUT) { in print_arg()
2421 if (get_struct(pid, args[sc->offset], &rights, in print_arg()
2422 sizeof(rights)) == -1) { in print_arg()
2423 print_pointer(fp, args[sc->offset]); in print_arg()
2427 rights = args[sc->offset]; in print_arg()
2432 print_integer_arg(sysdecode_fadvice, fp, args[sc->offset]); in print_arg()
2437 if (!sysdecode_fileflags(fp, args[sc->offset], &rem)) in print_arg()
2444 print_mask_arg(sysdecode_flock_operation, fp, args[sc->offset]); in print_arg()
2448 args[sc->offset]); in print_arg()
2451 print_integer_arg(sysdecode_itimer, fp, args[sc->offset]); in print_arg()
2454 print_integer_arg(sysdecode_kldsym_cmd, fp, args[sc->offset]); in print_arg()
2458 args[sc->offset]); in print_arg()
2461 fputs(xlookup(aio_fsync_ops, args[sc->offset]), fp); in print_arg()
2464 fputs(xlookup(lio_modes, args[sc->offset]), fp); in print_arg()
2467 print_integer_arg(sysdecode_madvice, fp, args[sc->offset]); in print_arg()
2470 fprintf(fp, "%u", (socklen_t)args[sc->offset]); in print_arg()
2476 domain = args[sc->offset - 2]; in print_arg()
2477 protocol = args[sc->offset]; in print_arg()
2492 args[sc->offset]); in print_arg()
2498 level = args[sc->offset - 1]; in print_arg()
2499 name = args[sc->offset]; in print_arg()
2509 print_mask_arg(sysdecode_msg_flags, fp, args[sc->offset]); in print_arg()
2514 if (get_struct(pid, args[sc->offset], &rights, in print_arg()
2515 sizeof(rights)) != -1) { in print_arg()
2520 print_pointer(fp, args[sc->offset]); in print_arg()
2524 print_integer_arg(sysdecode_acltype, fp, args[sc->offset]); in print_arg()
2528 args[sc->offset]); in print_arg()
2532 args[sc->offset]); in print_arg()
2535 print_mask_arg(sysdecode_mlockall_flags, fp, args[sc->offset]); in print_arg()
2538 print_mask_arg(sysdecode_mount_flags, fp, args[sc->offset]); in print_arg()
2541 print_mask_arg(sysdecode_msync_flags, fp, args[sc->offset]); in print_arg()
2544 print_integer_arg(sysdecode_prio_which, fp, args[sc->offset]); in print_arg()
2548 args[sc->offset]); in print_arg()
2551 print_mask_arg(sysdecode_sendfile_flags, fp, args[sc->offset]); in print_arg()
2556 if (get_struct(pid, args[sc->offset], &hdtr, sizeof(hdtr)) != in print_arg()
2557 -1) { in print_arg()
2565 print_pointer(fp, args[sc->offset]); in print_arg()
2569 if (!sysdecode_quotactl_cmd(fp, args[sc->offset])) in print_arg()
2570 fprintf(fp, "%#x", (int)args[sc->offset]); in print_arg()
2573 print_mask_arg(sysdecode_reboot_howto, fp, args[sc->offset]); in print_arg()
2577 args[sc->offset]); in print_arg()
2581 args[sc->offset]); in print_arg()
2586 if (get_struct(pid, args[sc->offset], &sp, sizeof(sp)) != -1) in print_arg()
2589 print_pointer(fp, args[sc->offset]); in print_arg()
2595 if (get_struct(pid, args[sc->offset], &sig, sizeof(sig)) == 0) in print_arg()
2598 print_pointer(fp, args[sc->offset]); in print_arg()
2604 if (get_struct(pid, args[sc->offset], &si, sizeof(si)) != -1) { in print_arg()
2609 print_pointer(fp, args[sc->offset]); in print_arg()
2618 print_iovec(fp, trussinfo, args[sc->offset], in print_arg()
2619 (int)args[sc->offset + 1]); in print_arg()
2624 if (get_struct(pid, args[sc->offset], &cb, sizeof(cb)) != -1) in print_arg()
2627 print_pointer(fp, args[sc->offset]); in print_arg()
2639 nent = args[sc->offset + 1]; in print_arg()
2646 if (get_struct(pid, args[sc->offset], cbs, sizeof(uintptr_t) * nent) != -1) { in print_arg()
2653 if (get_struct(pid, cbs[i], &cb, sizeof(cb)) != -1) in print_arg()
2662 print_pointer(fp, args[sc->offset]); in print_arg()
2673 if (get_struct(pid, args[sc->offset], &cbp, sizeof(cbp)) != -1) { in print_arg()
2674 if (get_struct(pid, cbp, &cb, sizeof(cb)) != -1) in print_arg()
2679 print_pointer(fp, args[sc->offset]); in print_arg()
2685 if (get_struct(pid, args[sc->offset], in print_arg()
2686 &info, sizeof(struct sctp_sndrcvinfo)) == -1) { in print_arg()
2687 print_pointer(fp, args[sc->offset]); in print_arg()
2690 print_sctp_sndrcvinfo(fp, sc->type & OUT, &info); in print_arg()
2696 if (get_struct(pid, args[sc->offset], in print_arg()
2697 &msghdr, sizeof(struct msghdr)) == -1) { in print_arg()
2698 print_pointer(fp, args[sc->offset]); in print_arg()
2706 print_cmsgs(fp, pid, sc->type & OUT, &msghdr); in print_arg()
2714 errx(1, "Invalid argument type %d\n", sc->type & ARG_MASK); in print_arg()
2731 t = trussinfo->curthread; in print_syscall()
2733 name = t->cs.sc->name; in print_syscall()
2734 nargs = t->cs.nargs; in print_syscall()
2735 s_args = t->cs.s_args; in print_syscall()
2738 len += fprintf(trussinfo->outfile, "%s(", name); in print_syscall()
2742 len += fprintf(trussinfo->outfile, "%s", s_args[i]); in print_syscall()
2744 len += fprintf(trussinfo->outfile, in print_syscall()
2746 len += fprintf(trussinfo->outfile, "%s", i < (nargs - 1) ? in print_syscall()
2749 len += fprintf(trussinfo->outfile, ")"); in print_syscall()
2750 for (i = 0; i < 6 - (len / 8); i++) in print_syscall()
2751 fprintf(trussinfo->outfile, "\t"); in print_syscall()
2761 t = trussinfo->curthread; in print_syscall_ret()
2762 sc = t->cs.sc; in print_syscall_ret()
2763 if (trussinfo->flags & COUNTONLY) { in print_syscall_ret()
2764 timespecsub(&t->after, &t->before, &timediff); in print_syscall_ret()
2765 timespecadd(&sc->time, &timediff, &sc->time); in print_syscall_ret()
2766 sc->ncalls++; in print_syscall_ret()
2768 sc->nerror++; in print_syscall_ret()
2773 fflush(trussinfo->outfile); in print_syscall_ret()
2780 fprintf(trussinfo->outfile, "\n"); in print_syscall_ret()
2785 fprintf(trussinfo->outfile, " ERESTART\n"); in print_syscall_ret()
2787 fprintf(trussinfo->outfile, " EJUSTRETURN\n"); in print_syscall_ret()
2789 fprintf(trussinfo->outfile, " ERR#%d '%s'\n", in print_syscall_ret()
2790 sysdecode_freebsd_to_abi_errno(t->proc->abi->abi, error), in print_syscall_ret()
2792 } else if (sc->decode.ret_type == 2 && in print_syscall_ret()
2793 t->proc->abi->pointer_size == 4) { in print_syscall_ret()
2800 fprintf(trussinfo->outfile, " = %jd (0x%jx)\n", (intmax_t)off, in print_syscall_ret()
2803 fprintf(trussinfo->outfile, " = %jd (0x%jx)\n", in print_syscall_ret()
2815 fprintf(trussinfo->outfile, "%-20s%15s%8s%8s\n", in print_summary()
2819 if (sc->ncalls) { in print_summary()
2820 fprintf(trussinfo->outfile, "%-20s%5jd.%09ld%8d%8d\n", in print_summary()
2821 sc->name, (intmax_t)sc->time.tv_sec, in print_summary()
2822 sc->time.tv_nsec, sc->ncalls, sc->nerror); in print_summary()
2823 timespecadd(&total, &sc->time, &total); in print_summary()
2824 ncall += sc->ncalls; in print_summary()
2825 nerror += sc->nerror; in print_summary()
2828 fprintf(trussinfo->outfile, "%20s%15s%8s%8s\n", in print_summary()
2829 "", "-------------", "-------", "-------"); in print_summary()
2830 fprintf(trussinfo->outfile, "%-20s%5jd.%09ld%8d%8d\n", in print_summary()