diff options
-rw-r--r-- | aio.c | 17 | ||||
-rw-r--r-- | bpf.c | 21 | ||||
-rw-r--r-- | clone.c | 3 | ||||
-rw-r--r-- | evdev_mpers.c | 3 | ||||
-rw-r--r-- | fs_x_ioctl.c | 6 | ||||
-rw-r--r-- | gpio_ioctl.c | 20 | ||||
-rw-r--r-- | io_uring.c | 27 | ||||
-rw-r--r-- | kvm.c | 24 | ||||
-rw-r--r-- | linux/x86_64/arch_kvm.c | 63 | ||||
-rw-r--r-- | loop.c | 9 | ||||
-rw-r--r-- | mtd.c | 93 | ||||
-rw-r--r-- | netlink_crypto.c | 9 | ||||
-rw-r--r-- | netlink_inet_diag.c | 6 | ||||
-rw-r--r-- | netlink_packet_diag.c | 2 | ||||
-rw-r--r-- | netlink_smc_diag.c | 12 | ||||
-rw-r--r-- | perf.c | 24 | ||||
-rw-r--r-- | print_fields.h | 9 | ||||
-rw-r--r-- | print_mq_attr.c | 3 | ||||
-rw-r--r-- | printsiginfo.c | 3 | ||||
-rw-r--r-- | quota.c | 3 | ||||
-rw-r--r-- | rtnl_link.c | 12 | ||||
-rw-r--r-- | rtnl_route.c | 3 | ||||
-rw-r--r-- | s390.c | 22 | ||||
-rw-r--r-- | scsi.c | 6 | ||||
-rw-r--r-- | sg_io_v3.c | 15 | ||||
-rw-r--r-- | sg_io_v4.c | 24 | ||||
-rw-r--r-- | sock.c | 18 | ||||
-rw-r--r-- | tee.c | 29 | ||||
-rw-r--r-- | tests/netlink_crypto.c | 12 | ||||
-rw-r--r-- | tests/netlink_route.c | 2 | ||||
-rw-r--r-- | tests/nlattr_ifinfomsg.c | 6 | ||||
-rw-r--r-- | tests/nlattr_inet_diag_msg.c | 4 | ||||
-rw-r--r-- | tests/nlattr_rtmsg.c | 2 | ||||
-rw-r--r-- | tests/nlattr_smc_diag_msg.c | 8 | ||||
-rw-r--r-- | tests/quotactl-xfs.c | 2 | ||||
-rw-r--r-- | ubi.c | 3 | ||||
-rw-r--r-- | userfaultfd.c | 24 | ||||
-rw-r--r-- | v4l2.c | 21 |
38 files changed, 372 insertions, 198 deletions
@@ -74,7 +74,8 @@ print_common_flags(struct tcb *tcp, const struct iocb *cb) tprint_struct_next(); PRINT_FIELD_FD(*cb, aio_resfd, tcp); } else if (cb->aio_resfd) { - PRINT_FIELD_X(", ", *cb, aio_resfd); + tprint_struct_next(); + PRINT_FIELD_X(*cb, aio_resfd); } #endif } @@ -92,7 +93,7 @@ print_iocb_header(struct tcb *tcp, const struct iocb *cb) { enum iocb_sub sub; - PRINT_FIELD_X("", *cb, aio_data); + PRINT_FIELD_X(*cb, aio_data); if (cb->aio_key) { PRINT_FIELD_U(", ", *cb, aio_key); @@ -136,7 +137,8 @@ print_iocb(struct tcb *tcp, const struct iocb *cb) PRINT_FIELD_OBJ_TCB_VAL(*cb, aio_buf, tcp, printstrn, cb->aio_nbytes); } else { - PRINT_FIELD_X(", ", *cb, aio_buf); + tprint_struct_next(); + PRINT_FIELD_X(*cb, aio_buf); } PRINT_FIELD_U(", ", *cb, aio_nbytes); PRINT_FIELD_D(", ", *cb, aio_offset); @@ -150,7 +152,8 @@ print_iocb(struct tcb *tcp, const struct iocb *cb) ? IOV_DECODE_STR : IOV_DECODE_ADDR); } else { - PRINT_FIELD_X(", ", *cb, aio_buf); + tprint_struct_next(); + PRINT_FIELD_X(*cb, aio_buf); PRINT_FIELD_U(", ", *cb, aio_nbytes); } PRINT_FIELD_D(", ", *cb, aio_offset); @@ -210,8 +213,10 @@ print_io_event(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { struct io_event *event = elem_buf; - PRINT_FIELD_X("{", *event, data); - PRINT_FIELD_X(", ", *event, obj); + tprint_struct_begin(); + PRINT_FIELD_X(*event, data); + tprint_struct_next(); + PRINT_FIELD_X(*event, obj); PRINT_FIELD_D(", ", *event, res); PRINT_FIELD_D(", ", *event, res2); tprints("}"); @@ -137,7 +137,8 @@ print_ebpf_insn(struct tcb * const tcp, void * const elem_buf, printxval(ebpf_regs, insn->src_reg, "BPF_REG_???"); PRINT_FIELD_D(", ", *insn, off); - PRINT_FIELD_X(", ", *insn, imm); + tprint_struct_next(); + PRINT_FIELD_X(*insn, imm); tprints("}"); return true; @@ -1015,8 +1016,10 @@ BEGIN_BPF_CMD_DECODER(BPF_TASK_FD_QUERY) PRINT_FIELD_U(", ", attr, prog_id); tprint_struct_next(); PRINT_FIELD_XVAL(attr, fd_type, bpf_task_fd_type, "BPF_FD_TYPE_???"); - PRINT_FIELD_X(", ", attr, probe_offset); - PRINT_FIELD_X(", ", attr, probe_addr); + tprint_struct_next(); + PRINT_FIELD_X(attr, probe_offset); + tprint_struct_next(); + PRINT_FIELD_X(attr, probe_addr); tprints("}"); } @@ -1043,7 +1046,8 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_BATCH) tprint_struct_next(); PRINT_FIELD_FLAGS(attr, elem_flags, bpf_map_lookup_elem_flags, "BPF_???"); - PRINT_FIELD_X(", ", attr, flags); + tprint_struct_next(); + PRINT_FIELD_X(attr, flags); tprints("}"); } else { @@ -1078,7 +1082,8 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_BATCH) tprint_struct_next(); PRINT_FIELD_FLAGS(attr, elem_flags, bpf_map_lookup_elem_flags, "BPF_???"); - PRINT_FIELD_X(", ", attr, flags); + tprint_struct_next(); + PRINT_FIELD_X(attr, flags); tprints("}"); } else { @@ -1109,7 +1114,8 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_BATCH) tprint_struct_next(); PRINT_FIELD_FLAGS(attr, elem_flags, bpf_map_lookup_elem_flags, "BPF_???"); - PRINT_FIELD_X(", ", attr, flags); + tprint_struct_next(); + PRINT_FIELD_X(attr, flags); tprints("}"); } else { @@ -1135,7 +1141,8 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) PRINT_FIELD_FD(attr, target_fd, tcp); tprint_struct_next(); PRINT_FIELD_XVAL(attr, attach_type, bpf_attach_type, "BPF_???"); - PRINT_FIELD_X(", ", attr, flags); + tprint_struct_next(); + PRINT_FIELD_X(attr, flags); tprints("}"); } END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD) @@ -200,7 +200,8 @@ SYS_FUNC(clone3) tprint_struct_next(); PRINT_FIELD_ADDR64(arg, stack); - PRINT_FIELD_X(", ", arg, stack_size); + tprint_struct_next(); + PRINT_FIELD_X(arg, stack_size); if (arg.flags & CLONE_SETTLS) { tprint_struct_next(); diff --git a/evdev_mpers.c b/evdev_mpers.c index 7c98304bf..1d8dd5ea3 100644 --- a/evdev_mpers.c +++ b/evdev_mpers.c @@ -33,7 +33,8 @@ print_ff_envelope(const MPERS_PTR_ARG(struct ff_envelope *) const arg) PRINT_FIELD_U("{", *p, attack_length); PRINT_FIELD_U(", ", *p, attack_level); PRINT_FIELD_U(", ", *p, fade_length); - PRINT_FIELD_X(", ", *p, fade_level); + tprint_struct_next(); + PRINT_FIELD_X(*p, fade_level); tprints("}"); } diff --git a/fs_x_ioctl.c b/fs_x_ioctl.c index 883e1e7cb..642d3193e 100644 --- a/fs_x_ioctl.c +++ b/fs_x_ioctl.c @@ -20,7 +20,8 @@ decode_fstrim_range(struct tcb *const tcp, const kernel_ulong_t arg) struct_fstrim_range range; if (!umove_or_printaddr(tcp, arg, &range)) { - PRINT_FIELD_X("{", range, start); + tprint_struct_begin(); + PRINT_FIELD_X(range, start); PRINT_FIELD_U(", ", range, len); PRINT_FIELD_U(", ", range, minlen); tprints("}"); @@ -42,7 +43,8 @@ decode_fsxattr(struct tcb *const tcp, const kernel_ulong_t arg, if (is_get) { PRINT_FIELD_U(", ", fsxattr, fsx_nextents); } - PRINT_FIELD_X(", ", fsxattr, fsx_projid); + tprint_struct_next(); + PRINT_FIELD_X(fsxattr, fsx_projid); PRINT_FIELD_U(", ", fsxattr, fsx_cowextsize); tprints("}"); } diff --git a/gpio_ioctl.c b/gpio_ioctl.c index abb5127dd..f8cae06cf 100644 --- a/gpio_ioctl.c +++ b/gpio_ioctl.c @@ -228,7 +228,8 @@ print_gpio_v2_line_attribute_raw(const struct_gpio_v2_line_attribute *attr, tprints("attr={"); PRINT_FIELD_U("", *attr, id); if (attr->padding) { - PRINT_FIELD_X(", ", *attr, padding); + tprint_struct_next(); + PRINT_FIELD_X(*attr, padding); } tprintf(", data=%#" PRIx64, attr->values); if (as_field) @@ -250,7 +251,7 @@ print_gpio_v2_line_attribute(const struct_gpio_v2_line_attribute *attr, "GPIO_V2_LINE_FLAG_???"); break; case GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES: - PRINT_FIELD_X("", *attr, values); + PRINT_FIELD_X(*attr, values); break; case GPIO_V2_LINE_ATTR_ID_DEBOUNCE: PRINT_FIELD_U("", *attr, debounce_period_us); @@ -267,7 +268,8 @@ print_gpio_v2_line_config_attribute(const struct_gpio_v2_line_config_attribute * { tprints("{"); print_gpio_v2_line_attribute(&attr->attr, true); - PRINT_FIELD_X(", ", *attr, mask); + tprint_struct_next(); + PRINT_FIELD_X(*attr, mask); tprints("}"); } @@ -413,13 +415,15 @@ print_gpio_v2_line_get_values(struct tcb *const tcp, const kernel_ulong_t arg) return RVAL_IOCTL_DECODED; if (entering(tcp)) { - PRINT_FIELD_X("{", vals, mask); + tprint_struct_begin(); + PRINT_FIELD_X(vals, mask); tprints("}"); return 0; } /* exiting */ - PRINT_FIELD_X("{", vals, bits); + tprint_struct_begin(); + PRINT_FIELD_X(vals, bits); tprints("}"); return RVAL_IOCTL_DECODED; @@ -432,8 +436,10 @@ print_gpio_v2_line_set_values(struct tcb *const tcp, const kernel_ulong_t arg) tprints(", "); if (!umove_or_printaddr(tcp, arg, &vals)) { - PRINT_FIELD_X("{", vals, bits); - PRINT_FIELD_X(", ", vals, mask); + tprint_struct_begin(); + PRINT_FIELD_X(vals, bits); + tprint_struct_next(); + PRINT_FIELD_X(vals, mask); tprints("}"); } diff --git a/io_uring.c b/io_uring.c index 1935792f8..c0fa53e86 100644 --- a/io_uring.c +++ b/io_uring.c @@ -46,10 +46,12 @@ print_io_sqring_offsets(const struct_io_sqring_offsets *const p) PRINT_FIELD_U(", ", *p, dropped); PRINT_FIELD_U(", ", *p, array); if (p->resv1) { - PRINT_FIELD_X(", ", *p, resv1); + tprint_struct_next(); + PRINT_FIELD_X(*p, resv1); } if (p->resv2) { - PRINT_FIELD_X(", ", *p, resv2); + tprint_struct_next(); + PRINT_FIELD_X(*p, resv2); } tprints("}"); } @@ -66,10 +68,12 @@ print_io_cqring_offsets(const struct_io_cqring_offsets *const p) tprint_struct_next(); PRINT_FIELD_FLAGS(*p, flags, uring_cqring_flags, "IORING_CQ_???"); if (p->resv1) { - PRINT_FIELD_X(", ", *p, resv1); + tprint_struct_next(); + PRINT_FIELD_X(*p, resv1); } if (p->resv2) { - PRINT_FIELD_X(", ", *p, resv2); + tprint_struct_next(); + PRINT_FIELD_X(*p, resv2); } tprints("}"); } @@ -89,7 +93,8 @@ SYS_FUNC(io_uring_setup) tprint_struct_begin(); PRINT_FIELD_FLAGS(params, flags, uring_setup_flags, "IORING_SETUP_???"); - PRINT_FIELD_X(", ", params, sq_thread_cpu); + tprint_struct_next(); + PRINT_FIELD_X(params, sq_thread_cpu); PRINT_FIELD_U(", ", params, sq_thread_idle); if (params.flags & IORING_SETUP_ATTACH_WQ) { tprint_struct_next(); @@ -166,7 +171,8 @@ print_io_uring_files_update(struct tcb *tcp, const kernel_ulong_t addr, PRINT_FIELD_U("{", arg, offset); if (arg.resv) { - PRINT_FIELD_X(", ", arg, resv); + tprint_struct_next(); + PRINT_FIELD_X(arg, resv); } tprints(", fds="); print_big_u64_addr(arg.fds); @@ -184,12 +190,14 @@ print_io_uring_probe_op(struct tcb *tcp, void *elem_buf, size_t elem_size, tprint_struct_begin(); PRINT_FIELD_XVAL_U(*op, op, uring_ops, "IORING_OP_???"); if (op->resv) { - PRINT_FIELD_X(", ", *op, resv); + tprint_struct_next(); + PRINT_FIELD_X(*op, resv); } tprint_struct_next(); PRINT_FIELD_FLAGS(*op, flags, uring_op_flags, "IO_URING_OP_???"); if (op->resv2) { - PRINT_FIELD_X(", ", *op, resv2); + tprint_struct_next(); + PRINT_FIELD_X(*op, resv2); } tprints("}"); @@ -233,7 +241,8 @@ print_io_uring_probe(struct tcb *tcp, const kernel_ulong_t addr, PRINT_FIELD_XVAL_U(*probe, last_op, uring_ops, "IORING_OP_???"); PRINT_FIELD_U(", ", *probe, ops_len); if (probe->resv) { - PRINT_FIELD_X(", ", *probe, resv); + tprint_struct_next(); + PRINT_FIELD_X(*probe, resv); } if (!IS_ARRAY_ZERO(probe->resv2)) { tprint_struct_next(); @@ -200,9 +200,11 @@ kvm_ioctl_set_user_memory_region(struct tcb *const tcp, const kernel_ulong_t arg PRINT_FIELD_U("{", u_memory_region, slot); tprint_struct_next(); PRINT_FIELD_FLAGS(u_memory_region, flags, kvm_mem_flags, "KVM_MEM_???"); - PRINT_FIELD_X(", ", u_memory_region, guest_phys_addr); + tprint_struct_next(); + PRINT_FIELD_X(u_memory_region, guest_phys_addr); PRINT_FIELD_U(", ", u_memory_region, memory_size); - PRINT_FIELD_X(", ", u_memory_region, userspace_addr); + tprint_struct_next(); + PRINT_FIELD_X(u_memory_region, userspace_addr); tprints("}"); return RVAL_IOCTL_DECODED; @@ -234,14 +236,20 @@ print_kvm_cpuid_entry(struct tcb *const tcp, void* elem_buf, size_t elem_size, void* data) { const struct kvm_cpuid_entry2 *entry = elem_buf; - PRINT_FIELD_X("{", *entry, function); - PRINT_FIELD_X(", ", *entry, index); + tprint_struct_begin(); + PRINT_FIELD_X(*entry, function); + tprint_struct_next(); + PRINT_FIELD_X(*entry, index); tprint_struct_next(); PRINT_FIELD_FLAGS(*entry, flags, kvm_cpuid_flags, "KVM_CPUID_FLAG_???"); - PRINT_FIELD_X(", ", *entry, eax); - PRINT_FIELD_X(", ", *entry, ebx); - PRINT_FIELD_X(", ", *entry, ecx); - PRINT_FIELD_X(", ", *entry, edx); + tprint_struct_next(); + PRINT_FIELD_X(*entry, eax); + tprint_struct_next(); + PRINT_FIELD_X(*entry, ebx); + tprint_struct_next(); + PRINT_FIELD_X(*entry, ecx); + tprint_struct_next(); + PRINT_FIELD_X(*entry, edx); tprints("}"); return true; diff --git a/linux/x86_64/arch_kvm.c b/linux/x86_64/arch_kvm.c index 6f6ced109..8e4558d1a 100644 --- a/linux/x86_64/arch_kvm.c +++ b/linux/x86_64/arch_kvm.c @@ -11,34 +11,52 @@ arch_print_kvm_regs(struct tcb *const tcp, const kernel_ulong_t addr, const struct kvm_regs *const regs) { - PRINT_FIELD_X("{", *regs, rax); + tprint_struct_begin(); + PRINT_FIELD_X(*regs, rax); if (abbrev(tcp)) tprints(", ..."); else { - PRINT_FIELD_X(", ", *regs, rbx); - PRINT_FIELD_X(", ", *regs, rcx); - PRINT_FIELD_X(", ", *regs, rdx); - PRINT_FIELD_X(", ", *regs, rsi); - PRINT_FIELD_X(", ", *regs, rdi); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rbx); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rcx); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rdx); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rsi); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rdi); } - PRINT_FIELD_X(", ", *regs, rsp); - PRINT_FIELD_X(", ", *regs, rbp); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rsp); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rbp); if (abbrev(tcp)) tprints(", ..."); else { - PRINT_FIELD_X(", ", *regs, r8); - PRINT_FIELD_X(", ", *regs, r9); - PRINT_FIELD_X(", ", *regs, r10); - PRINT_FIELD_X(", ", *regs, r11); - PRINT_FIELD_X(", ", *regs, r12); - PRINT_FIELD_X(", ", *regs, r13); - PRINT_FIELD_X(", ", *regs, r14); - PRINT_FIELD_X(", ", *regs, r15); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r8); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r9); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r10); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r11); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r12); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r13); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r14); + tprint_struct_next(); + PRINT_FIELD_X(*regs, r15); } - PRINT_FIELD_X(", ", *regs, rip); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rip); /* TODO: we can decode this more */ - PRINT_FIELD_X(", ", *regs, rflags); + tprint_struct_next(); + PRINT_FIELD_X(*regs, rflags); tprints("}"); } @@ -48,7 +66,8 @@ arch_print_kvm_regs(struct tcb *const tcp, static void kvm_ioctl_decode_regs_segment(const struct kvm_segment *const segment) { - PRINT_FIELD_X("{", *segment, base); + tprint_struct_begin(); + PRINT_FIELD_X(*segment, base); PRINT_FIELD_U(", ", *segment, limit); PRINT_FIELD_U(", ", *segment, selector); PRINT_FIELD_U(", ", *segment, type); @@ -65,7 +84,8 @@ kvm_ioctl_decode_regs_segment(const struct kvm_segment *const segment) static void kvm_ioctl_decode_regs_dtable(const struct kvm_dtable *const dtable) { - PRINT_FIELD_X("{", *dtable, base); + tprint_struct_begin(); + PRINT_FIELD_X(*dtable, base); PRINT_FIELD_U(", ", *dtable, limit); tprints("}"); } @@ -110,7 +130,8 @@ arch_print_kvm_sregs(struct tcb *const tcp, PRINT_FIELD_U(", ", *sregs, cr4); PRINT_FIELD_U(", ", *sregs, cr8); PRINT_FIELD_U(", ", *sregs, efer); - PRINT_FIELD_X(", ", *sregs, apic_base); + tprint_struct_next(); + PRINT_FIELD_X(*sregs, apic_base); tprint_struct_next(); PRINT_FIELD_X_ARRAY(*sregs, interrupt_bitmap); tprints("}"); @@ -43,7 +43,8 @@ decode_loop_info(struct tcb *const tcp, const kernel_ulong_t addr) PRINT_FIELD_DEV(info, lo_rdevice); } - PRINT_FIELD_X(", ", info, lo_offset); + tprint_struct_next(); + PRINT_FIELD_X(info, lo_offset); if (!abbrev(tcp) || info.lo_encrypt_type != LO_CRYPT_NONE) { tprint_struct_next(); @@ -91,11 +92,13 @@ print_loop_info64(struct tcb *const tcp, const struct loop_info64 *const info64) PRINT_FIELD_U(", ", *info64, lo_inode); tprint_struct_next(); PRINT_FIELD_DEV(*info64, lo_rdevice); - PRINT_FIELD_X(", ", *info64, lo_offset); + tprint_struct_next(); + PRINT_FIELD_X(*info64, lo_offset); PRINT_FIELD_U(", ", *info64, lo_sizelimit); PRINT_FIELD_U(", ", *info64, lo_number); } else { - PRINT_FIELD_X("{", *info64, lo_offset); + tprint_struct_begin(); + PRINT_FIELD_X(*info64, lo_offset); PRINT_FIELD_U(", ", *info64, lo_number); } @@ -40,8 +40,10 @@ decode_erase_info_user(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &einfo)) return; - PRINT_FIELD_X("{", einfo, start); - PRINT_FIELD_X(", ", einfo, length); + tprint_struct_begin(); + PRINT_FIELD_X(einfo, start); + tprint_struct_next(); + PRINT_FIELD_X(einfo, length); tprints("}"); } @@ -54,8 +56,10 @@ decode_erase_info_user64(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &einfo64)) return; - PRINT_FIELD_X("{", einfo64, start); - PRINT_FIELD_X(", ", einfo64, length); + tprint_struct_begin(); + PRINT_FIELD_X(einfo64, start); + tprint_struct_next(); + PRINT_FIELD_X(einfo64, length); tprints("}"); } @@ -67,8 +71,10 @@ decode_mtd_oob_buf(struct tcb *const tcp, const kernel_ulong_t addr) tprints(", "); if (umove_or_printaddr(tcp, addr, &mbuf)) return; - PRINT_FIELD_X("{", mbuf, start); - PRINT_FIELD_X(", ", mbuf, length); + tprint_struct_begin(); + PRINT_FIELD_X(mbuf, start); + tprint_struct_next(); + PRINT_FIELD_X(mbuf, length); tprint_struct_next(); PRINT_FIELD_PTR(mbuf, ptr); tprints("}"); @@ -83,8 +89,10 @@ decode_mtd_oob_buf64(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &mbuf64)) return; - PRINT_FIELD_X("{", mbuf64, start); - PRINT_FIELD_X(", ", mbuf64, length); + tprint_struct_begin(); + PRINT_FIELD_X(mbuf64, start); + tprint_struct_next(); + PRINT_FIELD_X(mbuf64, length); tprint_struct_next(); PRINT_FIELD_ADDR64(mbuf64, usr_ptr); tprints("}"); @@ -99,8 +107,10 @@ decode_otp_info(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &oinfo)) return; - PRINT_FIELD_X("{", oinfo, start); - PRINT_FIELD_X(", ", oinfo, length); + tprint_struct_begin(); + PRINT_FIELD_X(oinfo, start); + tprint_struct_next(); + PRINT_FIELD_X(oinfo, length); PRINT_FIELD_U(", ", oinfo, locked); tprints("}"); } @@ -128,9 +138,12 @@ decode_mtd_write_req(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &mreq)) return; - PRINT_FIELD_X("{", mreq, start); - PRINT_FIELD_X(", ", mreq, len); - PRINT_FIELD_X(", ", mreq, ooblen); + tprint_struct_begin(); + PRINT_FIELD_X(mreq, start); + tprint_struct_next(); + PRINT_FIELD_X(mreq, len); + tprint_struct_next(); + PRINT_FIELD_X(mreq, ooblen); tprint_struct_next(); PRINT_FIELD_ADDR64(mreq, usr_data); tprint_struct_next(); @@ -153,11 +166,16 @@ decode_mtd_info_user(struct tcb *const tcp, const kernel_ulong_t addr) PRINT_FIELD_XVAL(minfo, type, mtd_type_options, "MTD_???"); tprint_struct_next(); PRINT_FIELD_FLAGS(minfo, flags, mtd_flags_options, "MTD_???"); - PRINT_FIELD_X(", ", minfo, size); - PRINT_FIELD_X(", ", minfo, erasesize); - PRINT_FIELD_X(", ", minfo, writesize); - PRINT_FIELD_X(", ", minfo, oobsize); - PRINT_FIELD_X(", ", minfo, padding); + tprint_struct_next(); + PRINT_FIELD_X(minfo, size); + tprint_struct_next(); + PRINT_FIELD_X(minfo, erasesize); + tprint_struct_next(); + PRINT_FIELD_X(minfo, writesize); + tprint_struct_next(); + PRINT_FIELD_X(minfo, oobsize); + tprint_struct_next(); + PRINT_FIELD_X(minfo, padding); tprints("}"); } @@ -181,7 +199,8 @@ decode_nand_oobinfo(struct tcb *const tcp, const kernel_ulong_t addr) tprint_struct_begin(); PRINT_FIELD_XVAL(ninfo, useecc, mtd_nandecc_options, "MTD_NANDECC_???"); - PRINT_FIELD_X(", ", ninfo, eccbytes); + tprint_struct_next(); + PRINT_FIELD_X(ninfo, eccbytes); tprint_struct_next(); PRINT_FIELD_ARRAY(ninfo, oobfree, tcp, print_xint32x2_array_member); tprint_struct_next(); @@ -194,8 +213,10 @@ print_nand_oobfree_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { const struct nand_oobfree *p = elem_buf; - PRINT_FIELD_X("{", *p, offset); - PRINT_FIELD_X(", ", *p, length); + tprint_struct_begin(); + PRINT_FIELD_X(*p, offset); + tprint_struct_next(); + PRINT_FIELD_X(*p, length); tprints("}"); return true; } @@ -209,10 +230,12 @@ decode_nand_ecclayout_user(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &nlay)) return; - PRINT_FIELD_X("{", nlay, eccbytes); + tprint_struct_begin(); + PRINT_FIELD_X(nlay, eccbytes); tprint_struct_next(); PRINT_FIELD_ARRAY(nlay, eccpos, tcp, print_xint32_array_member); - PRINT_FIELD_X(", ", nlay, oobavail); + tprint_struct_next(); + PRINT_FIELD_X(nlay, oobavail); tprint_struct_next(); PRINT_FIELD_ARRAY(nlay, oobfree, tcp, print_nand_oobfree_array_member); tprints("}"); @@ -227,10 +250,14 @@ decode_mtd_ecc_stats(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &es)) return; - PRINT_FIELD_X("{", es, corrected); - PRINT_FIELD_X(", ", es, failed); - PRINT_FIELD_X(", ", es, badblocks); - PRINT_FIELD_X(", ", es, bbtblocks); + tprint_struct_begin(); + PRINT_FIELD_X(es, corrected); + tprint_struct_next(); + PRINT_FIELD_X(es, failed); + tprint_struct_next(); + PRINT_FIELD_X(es, badblocks); + tprint_struct_next(); + PRINT_FIELD_X(es, bbtblocks); tprints("}"); } @@ -331,15 +358,19 @@ MPERS_PRINTER_DECL(int, mtd_ioctl, struct tcb *const tcp, tprints(", "); if (umove_or_printaddr(tcp, arg, &rinfo)) break; - PRINT_FIELD_X("{", rinfo, regionindex); + tprint_struct_begin(); + PRINT_FIELD_X(rinfo, regionindex); return 0; } else { struct region_info_user rinfo; if (!syserror(tcp) && !umove(tcp, arg, &rinfo)) { - PRINT_FIELD_X(", ", rinfo, offset); - PRINT_FIELD_X(", ", rinfo, erasesize); - PRINT_FIELD_X(", ", rinfo, numblocks); + tprint_struct_next(); + PRINT_FIELD_X(rinfo, offset); + tprint_struct_next(); + PRINT_FIELD_X(rinfo, erasesize); + tprint_struct_next(); + PRINT_FIELD_X(rinfo, numblocks); } tprints("}"); break; diff --git a/netlink_crypto.c b/netlink_crypto.c index 36668edee..c41d33995 100644 --- a/netlink_crypto.c +++ b/netlink_crypto.c @@ -176,10 +176,13 @@ decode_crypto_user_alg(struct tcb *const tcp, PRINT_FIELD_CSTRING(alg, cru_driver_name); tprint_struct_next(); PRINT_FIELD_CSTRING(alg, cru_module_name); - PRINT_FIELD_X(", ", alg, cru_type); - PRINT_FIELD_X(", ", alg, cru_mask); + tprint_struct_next(); + PRINT_FIELD_X(alg, cru_type); + tprint_struct_next(); + PRINT_FIELD_X(alg, cru_mask); PRINT_FIELD_U(", ", alg, cru_refcnt); - PRINT_FIELD_X(", ", alg, cru_flags); + tprint_struct_next(); + PRINT_FIELD_X(alg, cru_flags); tprints("}"); const size_t offset = NLMSG_ALIGN(sizeof(alg)); diff --git a/netlink_inet_diag.c b/netlink_inet_diag.c index f636facf5..a7660b097 100644 --- a/netlink_inet_diag.c +++ b/netlink_inet_diag.c @@ -355,8 +355,10 @@ decode_tcp_bbr_info(struct tcb *const tcp, if (umove_or_printaddr(tcp, addr, &bbr)) return true; - PRINT_FIELD_X("{", bbr, bbr_bw_lo); - PRINT_FIELD_X(", ", bbr, bbr_bw_hi); + tprint_struct_begin(); + PRINT_FIELD_X(bbr, bbr_bw_lo); + tprint_struct_next(); + PRINT_FIELD_X(bbr, bbr_bw_hi); PRINT_FIELD_U(", ", bbr, bbr_min_rtt); PRINT_FIELD_U(", ", bbr, bbr_pacing_gain); PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain); diff --git a/netlink_packet_diag.c b/netlink_packet_diag.c index a1371795f..b5a67264f 100644 --- a/netlink_packet_diag.c +++ b/netlink_packet_diag.c @@ -38,7 +38,7 @@ DECL_NETLINK_DIAG_DECODER(decode_packet_diag_req) * AF_PACKET currently doesn't support protocol values * other than 0. */ - PRINT_FIELD_X("", req, sdiag_protocol); + PRINT_FIELD_X(req, sdiag_protocol); PRINT_FIELD_U(", ", req, pdiag_ino); tprint_struct_next(); PRINT_FIELD_FLAGS(req, pdiag_show, diff --git a/netlink_smc_diag.c b/netlink_smc_diag.c index fa1115550..369921526 100644 --- a/netlink_smc_diag.c +++ b/netlink_smc_diag.c @@ -179,10 +179,14 @@ decode_smc_diag_dmbinfo(struct tcb *const tcp, return true; PRINT_FIELD_U("{", dinfo, linkid); - PRINT_FIELD_X(", ", dinfo, peer_gid); - PRINT_FIELD_X(", ", dinfo, my_gid); - PRINT_FIELD_X(", ", dinfo, token); - PRINT_FIELD_X(", ", dinfo, peer_token); + tprint_struct_next(); + PRINT_FIELD_X(dinfo, peer_gid); + tprint_struct_next(); + PRINT_FIELD_X(dinfo, my_gid); + tprint_struct_next(); + PRINT_FIELD_X(dinfo, token); + tprint_struct_next(); + PRINT_FIELD_X(dinfo, peer_token); tprints("}"); return true; @@ -222,7 +222,8 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) * to zero. Its parameters are set in other places." */ default: - PRINT_FIELD_X(", ", *attr, config); + tprint_struct_next(); + PRINT_FIELD_X(*attr, config); break; } @@ -327,9 +328,11 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) } if (attr->type == PERF_TYPE_BREAKPOINT) { - PRINT_FIELD_X(", ", *attr, bp_addr); + tprint_struct_next(); + PRINT_FIELD_X(*attr, bp_addr); } else { - PRINT_FIELD_X(", ", *attr, config1); + tprint_struct_next(); + PRINT_FIELD_X(*attr, config1); } /* @@ -341,7 +344,8 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) if (attr->type == PERF_TYPE_BREAKPOINT) { PRINT_FIELD_U(", ", *attr, bp_len); } else { - PRINT_FIELD_X(", ", *attr, config2); + tprint_struct_next(); + PRINT_FIELD_X(*attr, config2); } _PERF_CHECK_FIELD(branch_sample_type); @@ -359,7 +363,8 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) * described in the kernel header * arch/ARCH/include/uapi/asm/perf_regs.h." */ - PRINT_FIELD_X(", ", *attr, sample_regs_user); + tprint_struct_next(); + PRINT_FIELD_X(*attr, sample_regs_user); _PERF_CHECK_FIELD(sample_stack_user); /* @@ -367,7 +372,8 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) * specified." */ if (attr->sample_type & PERF_SAMPLE_STACK_USER) { - PRINT_FIELD_X(", ", *attr, sample_stack_user); + tprint_struct_next(); + PRINT_FIELD_X(*attr, sample_stack_user); } if (attr->use_clockid) { @@ -377,7 +383,8 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) } _PERF_CHECK_FIELD(sample_regs_intr); - PRINT_FIELD_X(", ", *attr, sample_regs_intr); + tprint_struct_next(); + PRINT_FIELD_X(*attr, sample_regs_intr); _PERF_CHECK_FIELD(aux_watermark); PRINT_FIELD_U(", ", *attr, aux_watermark); @@ -395,7 +402,8 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) #if 0 _PERF_CHECK_FIELD(__reserved_3); if (attr->__reserved_3) { - PRINT_FIELD_X(", ", *attr, __reserved_3); + tprint_struct_next(); + PRINT_FIELD_X(*attr, __reserved_3); } #endif diff --git a/print_fields.h b/print_fields.h index fc90104f9..351e27762 100644 --- a/print_fields.h +++ b/print_fields.h @@ -148,9 +148,12 @@ tprints_field_name(const char *name) zero_extend_signed_to_ull((type_)(where_).field_)); \ } while (0) -# define PRINT_FIELD_X(prefix_, where_, field_) \ - STRACE_PRINTF("%s%s=%#llx", (prefix_), #field_, \ - zero_extend_signed_to_ull((where_).field_)) +# define PRINT_FIELD_X(where_, field_) \ + do { \ + tprints_field_name(#field_); \ + STRACE_PRINTF("%#llx", \ + zero_extend_signed_to_ull((where_).field_)); \ + } while (0) # define PRINT_FIELD_X_CAST(where_, field_, type_) \ do { \ diff --git a/print_mq_attr.c b/print_mq_attr.c index aa8080b8f..0abd706fa 100644 --- a/print_mq_attr.c +++ b/print_mq_attr.c @@ -36,7 +36,8 @@ MPERS_PRINTER_DECL(void, printmqattr, struct tcb *const tcp, tprint_struct_begin(); PRINT_FIELD_FLAGS(attr, mq_flags, mq_attr_flags, "O_???"); } else { - PRINT_FIELD_X("{", attr, mq_flags); + tprint_struct_begin(); + PRINT_FIELD_X(attr, mq_flags); } PRINT_FIELD_D(", ", attr, mq_maxmsg); PRINT_FIELD_D(", ", attr, mq_msgsize); diff --git a/printsiginfo.c b/printsiginfo.c index 9f1440c2b..5334c21d9 100644 --- a/printsiginfo.c +++ b/printsiginfo.c @@ -159,7 +159,8 @@ print_si_info(struct tcb *tcp, const siginfo_t *sip) break; #if defined HAVE_SIGINFO_T_SI_TIMERID && defined HAVE_SIGINFO_T_SI_OVERRUN case SI_TIMER: - PRINT_FIELD_X(", ", *sip, si_timerid); + tprint_struct_next(); + PRINT_FIELD_X(*sip, si_timerid); PRINT_FIELD_D(", ", *sip, si_overrun); printsigval(sip); break; @@ -244,7 +244,8 @@ decode_cmd_data(struct tcb *tcp, uint32_t id, uint32_t cmd, kernel_ulong_t data) tprint_struct_next(); PRINT_FIELD_FLAGS(dq, d_flags, xfs_dqblk_flags, "XFS_???_QUOTA"); - PRINT_FIELD_X(", ", dq, d_fieldmask); + tprint_struct_next(); + PRINT_FIELD_X(dq, d_fieldmask); PRINT_FIELD_U(", ", dq, d_id); PRINT_FIELD_U(", ", dq, d_blk_hardlimit); PRINT_FIELD_U(", ", dq, d_blk_softlimit); diff --git a/rtnl_link.c b/rtnl_link.c index 631a31d25..720f7bc8c 100644 --- a/rtnl_link.c +++ b/rtnl_link.c @@ -194,9 +194,12 @@ decode_rtnl_link_ifmap(struct tcb *const tcp, if (len < sizeof_ifmap) return false; else if (!umoven_or_printaddr(tcp, addr, sizeof_ifmap, &map)) { - PRINT_FIELD_X("{", map, mem_start); - PRINT_FIELD_X(", ", map, mem_end); - PRINT_FIELD_X(", ", map, base_addr); + tprint_struct_begin(); + PRINT_FIELD_X(map, mem_start); + tprint_struct_next(); + PRINT_FIELD_X(map, mem_end); + tprint_struct_next(); + PRINT_FIELD_X(map, base_addr); PRINT_FIELD_U(", ", map, irq); PRINT_FIELD_U(", ", map, dma); PRINT_FIELD_U(", ", map, port); @@ -940,7 +943,8 @@ DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg) tprint_struct_next(); PRINT_FIELD_FLAGS(ifinfo, ifi_flags, iffflags, "IFF_???"); - PRINT_FIELD_X(", ", ifinfo, ifi_change); + tprint_struct_next(); + PRINT_FIELD_X(ifinfo, ifi_change); decode_nla = true; } } else diff --git a/rtnl_route.c b/rtnl_route.c index 8d097b25a..b7537bc1b 100644 --- a/rtnl_route.c +++ b/rtnl_route.c @@ -122,7 +122,8 @@ decode_rta_cacheinfo(struct tcb *const tcp, PRINT_FIELD_U(", ", ci, rta_expires); PRINT_FIELD_U(", ", ci, rta_error); PRINT_FIELD_U(", ", ci, rta_used); - PRINT_FIELD_X(", ", ci, rta_id); + tprint_struct_next(); + PRINT_FIELD_X(ci, rta_id); PRINT_FIELD_U(", ", ci, rta_ts); PRINT_FIELD_U(", ", ci, rta_tsage); tprints("}"); @@ -463,7 +463,7 @@ decode_ebcdic(const char *ebcdic, char *ascii, size_t size) # define PRINT_FIELD_WEIGHT(where_, field_) \ do { \ - PRINT_FIELD_X("", where_, field_); \ + PRINT_FIELD_X(where_, field_); \ if ((where_).field_) \ tprintf_comment("%u %u/65536 cores", \ (where_).field_ >> 16, \ @@ -723,10 +723,12 @@ print_sthyi_partition(struct tcb *tcp, struct sthyi_partition *hdr, PRINT_FIELD_HEX_ARRAY(*hdr, infplgnm); } if (hdr->infplgcp) { - PRINT_FIELD_X(", ", *hdr, infplgcp); + tprint_struct_next(); + PRINT_FIELD_X(*hdr, infplgcp); } if (hdr->infplgif) { - PRINT_FIELD_X(", ", *hdr, infplgif); + tprint_struct_next(); + PRINT_FIELD_X(*hdr, infplgif); } } } @@ -1346,13 +1348,17 @@ guard_storage_print_gsepl(struct tcb *tcp, uint64_t addr) tprints(", "); } - PRINT_FIELD_X("", gsepl, gs_eha); + PRINT_FIELD_X(gsepl, gs_eha); if (!abbrev(tcp)) { - PRINT_FIELD_X(", ", gsepl, gs_eia); - PRINT_FIELD_X(", ", gsepl, gs_eoa); - PRINT_FIELD_X(", ", gsepl, gs_eir); - PRINT_FIELD_X(", ", gsepl, gs_era); + tprint_struct_next(); + PRINT_FIELD_X(gsepl, gs_eia); + tprint_struct_next(); + PRINT_FIELD_X(gsepl, gs_eoa); + tprint_struct_next(); + PRINT_FIELD_X(gsepl, gs_eir); + tprint_struct_next(); + PRINT_FIELD_X(gsepl, gs_era); } else { tprints(", ..."); } @@ -49,9 +49,11 @@ decode_sg_scsi_id(struct tcb *const tcp, const kernel_ulong_t arg) if (!umove_or_printaddr(tcp, arg, &id)) { PRINT_FIELD_D("{", id, host_no); PRINT_FIELD_D(", ", id, channel); - PRINT_FIELD_X(", ", id, scsi_id); + tprint_struct_next(); + PRINT_FIELD_X(id, scsi_id); PRINT_FIELD_D(", ", id, lun); - PRINT_FIELD_X(", ", id, scsi_type); + tprint_struct_next(); + PRINT_FIELD_X(id, scsi_type); PRINT_FIELD_D(", ", id, h_cmd_per_lun); PRINT_FIELD_D(", ", id, d_queue_depth); tprints("}"); diff --git a/sg_io_v3.c b/sg_io_v3.c index 83161ce3a..a6b30c9ab 100644 --- a/sg_io_v3.c +++ b/sg_io_v3.c @@ -130,14 +130,19 @@ decode_response(struct tcb *const tcp, const kernel_ulong_t arg) sg_io.iovec_count, tcp); } } - PRINT_FIELD_X(", ", sg_io, status); - PRINT_FIELD_X(", ", sg_io, masked_status); - PRINT_FIELD_X(", ", sg_io, msg_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, masked_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, msg_status); PRINT_FIELD_U(", ", sg_io, sb_len_wr); tprint_struct_next(); PRINT_FIELD_SG_IO_BUFFER(sg_io, sbp, sg_io.sb_len_wr, 0, tcp); - PRINT_FIELD_X(", ", sg_io, host_status); - PRINT_FIELD_X(", ", sg_io, driver_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, host_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, driver_status); PRINT_FIELD_D(", ", sg_io, resid); PRINT_FIELD_U(", ", sg_io, duration); tprint_struct_next(); diff --git a/sg_io_v4.c b/sg_io_v4.c index 178f606e3..206f6b954 100644 --- a/sg_io_v4.c +++ b/sg_io_v4.c @@ -54,7 +54,8 @@ decode_request(struct tcb *const tcp, const kernel_ulong_t arg) PRINT_FIELD_U(", ", sg_io, request_len); tprint_struct_next(); PRINT_FIELD_SG_IO_BUFFER(sg_io, request, sg_io.request_len, 0, tcp); - PRINT_FIELD_X(", ", sg_io, request_tag); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, request_tag); PRINT_FIELD_U(", ", sg_io, request_attr); PRINT_FIELD_U(", ", sg_io, request_priority); PRINT_FIELD_U(", ", sg_io, request_extra); @@ -70,7 +71,8 @@ decode_request(struct tcb *const tcp, const kernel_ulong_t arg) PRINT_FIELD_U(", ", sg_io, timeout); tprint_struct_next(); PRINT_FIELD_FLAGS(sg_io, flags, bsg_flags, "BSG_FLAG_???"); - PRINT_FIELD_X(", ", sg_io, usr_ptr); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, usr_ptr); struct sg_io_v4 *entering_sg_io = malloc(sizeof(*entering_sg_io)); if (entering_sg_io) { @@ -91,8 +93,10 @@ decode_response(struct tcb *const tcp, const kernel_ulong_t arg) if (umove(tcp, arg, &sg_io) < 0) { /* print i/o fields fetched on entering syscall */ - PRINT_FIELD_X(", ", *entering_sg_io, response); - PRINT_FIELD_X(", ", *entering_sg_io, din_xferp); + tprint_struct_next(); + PRINT_FIELD_X(*entering_sg_io, response); + tprint_struct_next(); + PRINT_FIELD_X(*entering_sg_io, din_xferp); return RVAL_IOCTL_DECODED; } @@ -110,9 +114,12 @@ decode_response(struct tcb *const tcp, const kernel_ulong_t arg) tprint_struct_next(); PRINT_FIELD_SG_IO_BUFFER(sg_io, din_xferp, din_len, sg_io.din_iovec_count, tcp); - PRINT_FIELD_X(", ", sg_io, driver_status); - PRINT_FIELD_X(", ", sg_io, transport_status); - PRINT_FIELD_X(", ", sg_io, device_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, driver_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, transport_status); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, device_status); PRINT_FIELD_U(", ", sg_io, retry_delay); tprint_struct_next(); PRINT_FIELD_FLAGS(sg_io, info, sg_io_info, "SG_INFO_???"); @@ -120,7 +127,8 @@ decode_response(struct tcb *const tcp, const kernel_ulong_t arg) PRINT_FIELD_U(", ", sg_io, response_len); PRINT_FIELD_D(", ", sg_io, din_resid); PRINT_FIELD_D(", ", sg_io, dout_resid); - PRINT_FIELD_X(", ", sg_io, generated_tag); + tprint_struct_next(); + PRINT_FIELD_X(sg_io, generated_tag); return RVAL_IOCTL_DECODED; } @@ -44,12 +44,18 @@ print_ifr_hwaddr(const typeof_field(struct_ifreq, ifr_hwaddr) *const p) static void print_ifr_map(const typeof_field(struct_ifreq, ifr_map) *const p) { - PRINT_FIELD_X("{", *p, mem_start); - PRINT_FIELD_X(", ", *p, mem_end); - PRINT_FIELD_X(", ", *p, base_addr); - PRINT_FIELD_X(", ", *p, irq); - PRINT_FIELD_X(", ", *p, dma); - PRINT_FIELD_X(", ", *p, port); + tprint_struct_begin(); + PRINT_FIELD_X(*p, mem_start); + tprint_struct_next(); + PRINT_FIELD_X(*p, mem_end); + tprint_struct_next(); + PRINT_FIELD_X(*p, base_addr); + tprint_struct_next(); + PRINT_FIELD_X(*p, irq); + tprint_struct_next(); + PRINT_FIELD_X(*p, dma); + tprint_struct_next(); + PRINT_FIELD_X(*p, port); tprints("}"); } @@ -32,7 +32,7 @@ /* session id is printed as 0x%x in libteec */ #define PRINT_FIELD_SESSION(where_, field_) \ - PRINT_FIELD_X("", where_, field_) + PRINT_FIELD_X(where_, field_) static void tee_print_buf(struct_tee_ioctl_buf_data *buf) @@ -114,9 +114,12 @@ tee_print_param_fn(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data case TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT: case TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT: default: - PRINT_FIELD_X(", ", *param, a); - PRINT_FIELD_X(", ", *param, b); - PRINT_FIELD_X(", ", *param, c); + tprint_struct_next(); + PRINT_FIELD_X(*param, a); + tprint_struct_next(); + PRINT_FIELD_X(*param, b); + tprint_struct_next(); + PRINT_FIELD_X(*param, c); break; } tprints("}"); @@ -157,7 +160,8 @@ tee_version(struct tcb *const tcp, const kernel_ulong_t arg) PRINT_FIELD_FLAGS(version, impl_caps, tee_ioctl_optee_caps, "TEE_OPTEE_CAP_???"); } else { - PRINT_FIELD_X(", ", version, impl_caps); + tprint_struct_next(); + PRINT_FIELD_X(version, impl_caps); } tprints("}"); @@ -407,7 +411,8 @@ tee_shm_alloc(struct tcb *const tcp, const kernel_ulong_t arg) if (umove_or_printaddr(tcp, arg, &shm_alloc)) return RVAL_IOCTL_DECODED; - PRINT_FIELD_X("{", shm_alloc, size); + tprint_struct_begin(); + PRINT_FIELD_X(shm_alloc, size); tprint_struct_next(); PRINT_FIELD_FLAGS(shm_alloc, flags, tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); @@ -422,7 +427,8 @@ tee_shm_alloc(struct tcb *const tcp, const kernel_ulong_t arg) if (umove_or_printaddr(tcp, arg, &shm_alloc)) return RVAL_IOCTL_DECODED; - PRINT_FIELD_X("{", shm_alloc, size); + tprint_struct_begin(); + PRINT_FIELD_X(shm_alloc, size); tprint_struct_next(); PRINT_FIELD_FLAGS(shm_alloc, flags, tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); @@ -459,7 +465,8 @@ tee_shm_register_fd(struct tcb *const tcp, const kernel_ulong_t arg) if (umove_or_printaddr(tcp, arg, &shm_register_fd)) return RVAL_IOCTL_DECODED; - PRINT_FIELD_X("{", shm_register_fd, size); + tprint_struct_begin(); + PRINT_FIELD_X(shm_register_fd, size); PRINT_FIELD_D(", ", shm_register_fd, id); tprints("}"); @@ -479,7 +486,8 @@ tee_shm_register(struct tcb *const tcp, const kernel_ulong_t arg) tprint_struct_begin(); PRINT_FIELD_ADDR64(shm_register, addr); - PRINT_FIELD_X(", ", shm_register, length); + tprint_struct_next(); + PRINT_FIELD_X(shm_register, length); tprint_struct_next(); PRINT_FIELD_FLAGS(shm_register, flags, tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); @@ -494,7 +502,8 @@ tee_shm_register(struct tcb *const tcp, const kernel_ulong_t arg) if (umove_or_printaddr(tcp, arg, &shm_register)) return RVAL_IOCTL_DECODED; - PRINT_FIELD_X("{", shm_register, length); + tprint_struct_begin(); + PRINT_FIELD_X(shm_register, length); tprint_struct_next(); PRINT_FIELD_FLAGS(shm_register, flags, tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); diff --git a/tests/netlink_crypto.c b/tests/netlink_crypto.c index cfa38f993..cfea62bc4 100644 --- a/tests/netlink_crypto.c +++ b/tests/netlink_crypto.c @@ -96,13 +96,13 @@ test_crypto_msg_newalg(const int fd) ", cru_driver_name=\"efgh\"" ", cru_module_name=\"dcba\""); printf(", "); - PRINT_FIELD_X("", alg, cru_type); + PRINT_FIELD_X(alg, cru_type); printf(", "); - PRINT_FIELD_X("", alg, cru_mask); + PRINT_FIELD_X(alg, cru_mask); printf(", "); PRINT_FIELD_U("", alg, cru_refcnt); printf(", "); - PRINT_FIELD_X("", alg, cru_flags); + PRINT_FIELD_X(alg, cru_flags); printf("}")); fill_memory_ex(alg.cru_name, sizeof(alg.cru_name), '0', 10); @@ -124,13 +124,13 @@ test_crypto_msg_newalg(const int fd) print_quoted_memory(alg.cru_module_name, sizeof(alg.cru_module_name) - 1); printf("..., "); - PRINT_FIELD_X("", alg, cru_type); + PRINT_FIELD_X(alg, cru_type); printf(", "); - PRINT_FIELD_X("", alg, cru_mask); + PRINT_FIELD_X(alg, cru_mask); printf(", "); PRINT_FIELD_U("", alg, cru_refcnt); printf(", "); - PRINT_FIELD_X("", alg, cru_flags); + PRINT_FIELD_X(alg, cru_flags); printf("}")); } diff --git a/tests/netlink_route.c b/tests/netlink_route.c index 81a1e750a..f75ad19cc 100644 --- a/tests/netlink_route.c +++ b/tests/netlink_route.c @@ -200,7 +200,7 @@ test_rtnl_link(const int fd) ", ifi_index=" IFINDEX_LO_STR ", ifi_flags=IFF_UP"); printf(", "); - PRINT_FIELD_X("", ifinfo, ifi_change); + PRINT_FIELD_X(ifinfo, ifi_change); printf("}")); } diff --git a/tests/nlattr_ifinfomsg.c b/tests/nlattr_ifinfomsg.c index 64558ae53..a35498c5a 100644 --- a/tests/nlattr_ifinfomsg.c +++ b/tests/nlattr_ifinfomsg.c @@ -280,11 +280,11 @@ main(void) init_ifinfomsg, print_ifinfomsg, IFLA_MAP, sizeof_ifmap, &map, sizeof_ifmap, printf("{"); - PRINT_FIELD_X("", map, mem_start); + PRINT_FIELD_X(map, mem_start); printf(", "); - PRINT_FIELD_X("", map, mem_end); + PRINT_FIELD_X(map, mem_end); printf(", "); - PRINT_FIELD_X("", map, base_addr); + PRINT_FIELD_X(map, base_addr); printf(", "); PRINT_FIELD_U("", map, irq); printf(", "); diff --git a/tests/nlattr_inet_diag_msg.c b/tests/nlattr_inet_diag_msg.c index a797c8eaf..5899f3046 100644 --- a/tests/nlattr_inet_diag_msg.c +++ b/tests/nlattr_inet_diag_msg.c @@ -171,9 +171,9 @@ main(void) init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_BBRINFO, pattern, bbr, printf("{"); - PRINT_FIELD_X("", bbr, bbr_bw_lo); + PRINT_FIELD_X(bbr, bbr_bw_lo); printf(", "); - PRINT_FIELD_X("", bbr, bbr_bw_hi); + PRINT_FIELD_X(bbr, bbr_bw_hi); printf(", "); PRINT_FIELD_U("", bbr, bbr_min_rtt); printf(", "); diff --git a/tests/nlattr_rtmsg.c b/tests/nlattr_rtmsg.c index b0ebcc2fa..e014fd4a5 100644 --- a/tests/nlattr_rtmsg.c +++ b/tests/nlattr_rtmsg.c @@ -153,7 +153,7 @@ main(void) printf(", "); PRINT_FIELD_U("", ci, rta_used); printf(", "); - PRINT_FIELD_X("", ci, rta_id); + PRINT_FIELD_X(ci, rta_id); printf(", "); PRINT_FIELD_U("", ci, rta_ts); printf(", "); diff --git a/tests/nlattr_smc_diag_msg.c b/tests/nlattr_smc_diag_msg.c index 8c2957849..82ccd9d7d 100644 --- a/tests/nlattr_smc_diag_msg.c +++ b/tests/nlattr_smc_diag_msg.c @@ -223,13 +223,13 @@ int main(void) printf("{"); PRINT_FIELD_U("", dinfo, linkid); printf(", "); - PRINT_FIELD_X("", dinfo, peer_gid); + PRINT_FIELD_X(dinfo, peer_gid); printf(", "); - PRINT_FIELD_X("", dinfo, my_gid); + PRINT_FIELD_X(dinfo, my_gid); printf(", "); - PRINT_FIELD_X("", dinfo, token); + PRINT_FIELD_X(dinfo, token); printf(", "); - PRINT_FIELD_X("", dinfo, peer_token); + PRINT_FIELD_X(dinfo, peer_token); printf("}")); TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, diff --git a/tests/quotactl-xfs.c b/tests/quotactl-xfs.c index a92196356..f59becaa2 100644 --- a/tests/quotactl-xfs.c +++ b/tests/quotactl-xfs.c @@ -83,7 +83,7 @@ print_xdisk_quota(int rc, void *ptr, void *arg) printflags(xfs_dqblk_flags, (uint8_t) dq->d_flags, "XFS_???_QUOTA"); printf(", "); - PRINT_FIELD_X("", *dq, d_fieldmask); + PRINT_FIELD_X(*dq, d_fieldmask); printf(", "); PRINT_FIELD_U("", *dq, d_id); printf(", "); @@ -180,7 +180,8 @@ decode_UBI_IOCSETVOLPROP(struct tcb *const tcp, const kernel_ulong_t arg) tprint_struct_begin(); PRINT_FIELD_XVAL(prop, property, ubi_volume_props, "UBI_VOL_PROP_???"); - PRINT_FIELD_X(", ", prop, value); + tprint_struct_next(); + PRINT_FIELD_X(prop, value); tprints("}"); } diff --git a/userfaultfd.c b/userfaultfd.c index 90ea1b110..97216a90c 100644 --- a/userfaultfd.c +++ b/userfaultfd.c @@ -33,8 +33,10 @@ SYS_FUNC(userfaultfd) static void tprintf_uffdio_range(const struct uffdio_range *range) { - PRINT_FIELD_X("{", *range, start); - PRINT_FIELD_X(", ", *range, len); + tprint_struct_begin(); + PRINT_FIELD_X(*range, start); + tprint_struct_next(); + PRINT_FIELD_X(*range, len); tprints("}"); } @@ -51,7 +53,8 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, tprints(", "); if (umove_or_printaddr(tcp, arg, &ua)) break; - PRINT_FIELD_X("{", ua, api); + tprint_struct_begin(); + PRINT_FIELD_X(ua, api); tprint_struct_next(); PRINT_FIELD_FLAGS(ua, features, uffd_api_features, "UFFD_FEATURE_???"); @@ -92,9 +95,12 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, tprints(", "); if (umove_or_printaddr(tcp, arg, &uc)) return RVAL_IOCTL_DECODED; - PRINT_FIELD_X("{", uc, dst); - PRINT_FIELD_X(", ", uc, src); - PRINT_FIELD_X(", ", uc, len); + tprint_struct_begin(); + PRINT_FIELD_X(uc, dst); + tprint_struct_next(); + PRINT_FIELD_X(uc, src); + tprint_struct_next(); + PRINT_FIELD_X(uc, len); tprint_struct_next(); PRINT_FIELD_FLAGS(uc, mode, uffd_copy_flags, "UFFDIO_COPY_???"); @@ -103,7 +109,8 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, } if (!syserror(tcp) && !umove(tcp, arg, &uc)) { - PRINT_FIELD_X(", ", uc, copy); + tprint_struct_next(); + PRINT_FIELD_X(uc, copy); } tprints("}"); @@ -171,7 +178,8 @@ uffdio_ioctl(struct tcb *const tcp, const unsigned int code, } if (!syserror(tcp) && !umove(tcp, arg, &uz)) { - PRINT_FIELD_X(", ", uz, zeropage); + tprint_struct_next(); + PRINT_FIELD_X(uz, zeropage); } tprints("}"); @@ -325,7 +325,8 @@ DECL_print_v4l2_format_fmt(win) PRINT_FIELD_OBJ_PTR(*p, w, print_v4l2_rect); tprint_struct_next(); PRINT_FIELD_XVAL(*p, field, v4l2_fields, "V4L2_FIELD_???"); - PRINT_FIELD_X(", ", *p, chromakey); + tprint_struct_next(); + PRINT_FIELD_X(*p, chromakey); tprints(", clips="); struct_v4l2_clip clip; @@ -337,7 +338,8 @@ DECL_print_v4l2_format_fmt(win) tprint_struct_next(); PRINT_FIELD_PTR(*p, bitmap); if (p->global_alpha) { - PRINT_FIELD_X(", ", *p, global_alpha); + tprint_struct_next(); + PRINT_FIELD_X(*p, global_alpha); } tprints("}"); return rc; @@ -612,7 +614,8 @@ print_v4l2_buffer(struct tcb *const tcp, const unsigned int code, "V4L2_MEMORY_???"); if (b.memory == V4L2_MEMORY_MMAP) { - PRINT_FIELD_X(", ", b, m.offset); + tprint_struct_next(); + PRINT_FIELD_X(b, m.offset); } else if (b.memory == V4L2_MEMORY_USERPTR) { tprint_struct_next(); PRINT_FIELD_PTR(b, m.userptr); @@ -641,8 +644,10 @@ print_v4l2_framebuffer(struct tcb *const tcp, const kernel_ulong_t arg) tprints(", "); if (!umove_or_printaddr(tcp, arg, &b)) { - PRINT_FIELD_X("{", b, capability); - PRINT_FIELD_X(", ", b, flags); + tprint_struct_begin(); + PRINT_FIELD_X(b, capability); + tprint_struct_next(); + PRINT_FIELD_X(b, flags); tprint_struct_next(); PRINT_FIELD_PTR(b, base); tprints("}"); @@ -679,7 +684,8 @@ print_v4l2_streamparm_capture(const struct v4l2_captureparm *const p) "V4L2_MODE_???"); tprint_struct_next(); PRINT_FIELD_FRACT(*p, timeperframe); - PRINT_FIELD_X(", ", *p, extendedmode); + tprint_struct_next(); + PRINT_FIELD_X(*p, extendedmode); PRINT_FIELD_U(", ", *p, readbuffers); tprints("}"); } @@ -695,7 +701,8 @@ print_v4l2_streamparm_output(const struct v4l2_outputparm *const p) "V4L2_MODE_???"); tprint_struct_next(); PRINT_FIELD_FRACT(*p, timeperframe); - PRINT_FIELD_X(", ", *p, extendedmode); + tprint_struct_next(); + PRINT_FIELD_X(*p, extendedmode); PRINT_FIELD_U(", ", *p, writebuffers); tprints("}"); } |