@@ -611,77 +611,53 @@ static struct syscall_fmt {
611
611
const char * name ;
612
612
const char * alias ;
613
613
struct syscall_arg_fmt arg [6 ];
614
- bool errmsg ;
615
614
bool errpid ;
616
615
bool timeout ;
617
616
bool hexret ;
618
617
} syscall_fmts [] = {
619
- { .name = "access" , . errmsg = true,
618
+ { .name = "access" ,
620
619
.arg = { [1 ] = { .scnprintf = SCA_ACCMODE , /* mode */ }, }, },
621
- { .name = "arch_prctl" , .errmsg = true, . alias = "prctl" , },
622
- { .name = "bpf" , . errmsg = true,
620
+ { .name = "arch_prctl" , .alias = "prctl" , },
621
+ { .name = "bpf" ,
623
622
.arg = { [0 ] = STRARRAY (cmd , bpf_cmd ), }, },
624
623
{ .name = "brk" , .hexret = true,
625
624
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* brk */ }, }, },
626
- { .name = "chdir" , .errmsg = true, },
627
- { .name = "chmod" , .errmsg = true, },
628
- { .name = "chroot" , .errmsg = true, },
629
- { .name = "clock_gettime" , .errmsg = true,
625
+ { .name = "clock_gettime" ,
630
626
.arg = { [0 ] = STRARRAY (clk_id , clockid ), }, },
631
627
{ .name = "clone" , .errpid = true, },
632
- { .name = "close" , . errmsg = true,
628
+ { .name = "close" ,
633
629
.arg = { [0 ] = { .scnprintf = SCA_CLOSE_FD , /* fd */ }, }, },
634
- { .name = "connect" , .errmsg = true, },
635
- { .name = "creat" , .errmsg = true, },
636
- { .name = "dup" , .errmsg = true, },
637
- { .name = "dup2" , .errmsg = true, },
638
- { .name = "dup3" , .errmsg = true, },
639
- { .name = "epoll_ctl" , .errmsg = true,
630
+ { .name = "epoll_ctl" ,
640
631
.arg = { [1 ] = STRARRAY (op , epoll_ctl_ops ), }, },
641
- { .name = "eventfd2" , . errmsg = true,
632
+ { .name = "eventfd2" ,
642
633
.arg = { [1 ] = { .scnprintf = SCA_EFD_FLAGS , /* flags */ }, }, },
643
- { .name = "faccessat" , .errmsg = true, },
644
- { .name = "fadvise64" , .errmsg = true, },
645
- { .name = "fallocate" , .errmsg = true, },
646
- { .name = "fchdir" , .errmsg = true, },
647
- { .name = "fchmod" , .errmsg = true, },
648
- { .name = "fchmodat" , .errmsg = true,
634
+ { .name = "fchmodat" ,
649
635
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fd */ }, }, },
650
- { .name = "fchown" , .errmsg = true, },
651
- { .name = "fchownat" , .errmsg = true,
636
+ { .name = "fchownat" ,
652
637
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fd */ }, }, },
653
- { .name = "fcntl" , . errmsg = true,
638
+ { .name = "fcntl" ,
654
639
.arg = { [1 ] = { .scnprintf = SCA_FCNTL_CMD , /* cmd */
655
640
.parm = & strarrays__fcntl_cmds_arrays ,
656
641
.show_zero = true, },
657
642
[2 ] = { .scnprintf = SCA_FCNTL_ARG , /* arg */ }, }, },
658
- { .name = "fdatasync" , .errmsg = true, },
659
- { .name = "flock" , .errmsg = true,
643
+ { .name = "flock" ,
660
644
.arg = { [1 ] = { .scnprintf = SCA_FLOCK , /* cmd */ }, }, },
661
- { .name = "fsetxattr" , .errmsg = true, },
662
- { .name = "fstat" , .errmsg = true, .alias = "newfstat" , },
663
- { .name = "fstatat" , .errmsg = true, .alias = "newfstatat" , },
664
- { .name = "fstatfs" , .errmsg = true, },
665
- { .name = "fsync" , .errmsg = true, },
666
- { .name = "ftruncate" , .errmsg = true, },
667
- { .name = "futex" , .errmsg = true,
645
+ { .name = "fstat" , .alias = "newfstat" , },
646
+ { .name = "fstatat" , .alias = "newfstatat" , },
647
+ { .name = "futex" ,
668
648
.arg = { [1 ] = { .scnprintf = SCA_FUTEX_OP , /* op */ }, }, },
669
- { .name = "futimesat" , . errmsg = true,
649
+ { .name = "futimesat" ,
670
650
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fd */ }, }, },
671
- { .name = "getdents" , .errmsg = true, },
672
- { .name = "getdents64" , .errmsg = true, },
673
- { .name = "getitimer" , .errmsg = true,
651
+ { .name = "getitimer" ,
674
652
.arg = { [0 ] = STRARRAY (which , itimers ), }, },
675
653
{ .name = "getpid" , .errpid = true, },
676
654
{ .name = "getpgid" , .errpid = true, },
677
655
{ .name = "getppid" , .errpid = true, },
678
- { .name = "getrandom" , . errmsg = true,
656
+ { .name = "getrandom" ,
679
657
.arg = { [2 ] = { .scnprintf = SCA_GETRANDOM_FLAGS , /* flags */ }, }, },
680
- { .name = "getrlimit" , . errmsg = true,
658
+ { .name = "getrlimit" ,
681
659
.arg = { [0 ] = STRARRAY (resource , rlimit_resources ), }, },
682
- { .name = "getxattr" , .errmsg = true, },
683
- { .name = "inotify_add_watch" , .errmsg = true, },
684
- { .name = "ioctl" , .errmsg = true,
660
+ { .name = "ioctl" ,
685
661
.arg = {
686
662
#if defined(__i386__ ) || defined (__x86_64__ )
687
663
/*
@@ -693,34 +669,25 @@ static struct syscall_fmt {
693
669
#else
694
670
[2 ] = { .scnprintf = SCA_HEX , /* arg */ }, }, },
695
671
#endif
696
- { .name = "keyctl" , . errmsg = true,
672
+ { .name = "keyctl" ,
697
673
.arg = { [0 ] = STRARRAY (option , keyctl_options ), }, },
698
- { .name = "kill" , . errmsg = true,
674
+ { .name = "kill" ,
699
675
.arg = { [1 ] = { .scnprintf = SCA_SIGNUM , /* sig */ }, }, },
700
- { .name = "lchown" , .errmsg = true, },
701
- { .name = "lgetxattr" , .errmsg = true, },
702
- { .name = "linkat" , .errmsg = true,
676
+ { .name = "linkat" ,
703
677
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fd */ }, }, },
704
- { .name = "listxattr" , .errmsg = true, },
705
- { .name = "llistxattr" , .errmsg = true, },
706
- { .name = "lremovexattr" , .errmsg = true, },
707
- { .name = "lseek" , .errmsg = true,
678
+ { .name = "lseek" ,
708
679
.arg = { [2 ] = STRARRAY (whence , whences ), }, },
709
- { .name = "lsetxattr" , .errmsg = true, },
710
- { .name = "lstat" , .errmsg = true, .alias = "newlstat" , },
711
- { .name = "lsxattr" , .errmsg = true, },
712
- { .name = "madvise" , .errmsg = true,
680
+ { .name = "lstat" , .alias = "newlstat" , },
681
+ { .name = "madvise" ,
713
682
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* start */ },
714
683
[2 ] = { .scnprintf = SCA_MADV_BHV , /* behavior */ }, }, },
715
- { .name = "mkdir" , .errmsg = true, },
716
- { .name = "mkdirat" , .errmsg = true,
684
+ { .name = "mkdirat" ,
717
685
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fd */ }, }, },
718
- { .name = "mknod" , .errmsg = true, },
719
- { .name = "mknodat" , .errmsg = true,
686
+ { .name = "mknodat" ,
720
687
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fd */ }, }, },
721
- { .name = "mlock" , . errmsg = true,
688
+ { .name = "mlock" ,
722
689
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* addr */ }, }, },
723
- { .name = "mlockall" , . errmsg = true,
690
+ { .name = "mlockall" ,
724
691
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* addr */ }, }, },
725
692
{ .name = "mmap" , .hexret = true,
726
693
/* The standard mmap maps to old_mmap on s390x */
@@ -730,127 +697,109 @@ static struct syscall_fmt {
730
697
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* addr */ },
731
698
[2 ] = { .scnprintf = SCA_MMAP_PROT , /* prot */ },
732
699
[3 ] = { .scnprintf = SCA_MMAP_FLAGS , /* flags */ }, }, },
733
- { .name = "mprotect" , . errmsg = true,
700
+ { .name = "mprotect" ,
734
701
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* start */ },
735
702
[2 ] = { .scnprintf = SCA_MMAP_PROT , /* prot */ }, }, },
736
- { .name = "mq_unlink" , . errmsg = true,
703
+ { .name = "mq_unlink" ,
737
704
.arg = { [0 ] = { .scnprintf = SCA_FILENAME , /* u_name */ }, }, },
738
705
{ .name = "mremap" , .hexret = true,
739
706
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* addr */ },
740
707
[3 ] = { .scnprintf = SCA_MREMAP_FLAGS , /* flags */ },
741
708
[4 ] = { .scnprintf = SCA_HEX , /* new_addr */ }, }, },
742
- { .name = "munlock" , . errmsg = true,
709
+ { .name = "munlock" ,
743
710
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* addr */ }, }, },
744
- { .name = "munmap" , . errmsg = true,
711
+ { .name = "munmap" ,
745
712
.arg = { [0 ] = { .scnprintf = SCA_HEX , /* addr */ }, }, },
746
- { .name = "name_to_handle_at" , . errmsg = true,
713
+ { .name = "name_to_handle_at" ,
747
714
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ }, }, },
748
- { .name = "newfstatat" , . errmsg = true,
715
+ { .name = "newfstatat" ,
749
716
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ }, }, },
750
- { .name = "open" , . errmsg = true,
717
+ { .name = "open" ,
751
718
.arg = { [1 ] = { .scnprintf = SCA_OPEN_FLAGS , /* flags */ }, }, },
752
- { .name = "open_by_handle_at" , . errmsg = true,
719
+ { .name = "open_by_handle_at" ,
753
720
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ },
754
721
[2 ] = { .scnprintf = SCA_OPEN_FLAGS , /* flags */ }, }, },
755
- { .name = "openat" , . errmsg = true,
722
+ { .name = "openat" ,
756
723
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ },
757
724
[2 ] = { .scnprintf = SCA_OPEN_FLAGS , /* flags */ }, }, },
758
- { .name = "perf_event_open" , . errmsg = true,
725
+ { .name = "perf_event_open" ,
759
726
.arg = { [2 ] = { .scnprintf = SCA_INT , /* cpu */ },
760
727
[3 ] = { .scnprintf = SCA_FD , /* group_fd */ },
761
728
[4 ] = { .scnprintf = SCA_PERF_FLAGS , /* flags */ }, }, },
762
- { .name = "pipe2" , . errmsg = true,
729
+ { .name = "pipe2" ,
763
730
.arg = { [1 ] = { .scnprintf = SCA_PIPE_FLAGS , /* flags */ }, }, },
764
- { .name = "poll" , . errmsg = true, .timeout = true, },
765
- { .name = "ppoll" , . errmsg = true, .timeout = true, },
766
- { .name = "pread" , . errmsg = true, .alias = "pread64" , },
767
- { .name = "preadv" , . errmsg = true, .alias = "pread" , },
768
- { .name = "prlimit64" , . errmsg = true,
731
+ { .name = "poll" , .timeout = true, },
732
+ { .name = "ppoll" , .timeout = true, },
733
+ { .name = "pread" , .alias = "pread64" , },
734
+ { .name = "preadv" , .alias = "pread" , },
735
+ { .name = "prlimit64" ,
769
736
.arg = { [1 ] = STRARRAY (resource , rlimit_resources ), }, },
770
- { .name = "pwrite" , .errmsg = true, .alias = "pwrite64" , },
771
- { .name = "pwritev" , .errmsg = true, },
772
- { .name = "read" , .errmsg = true, },
773
- { .name = "readlink" , .errmsg = true, },
774
- { .name = "readlinkat" , .errmsg = true,
737
+ { .name = "pwrite" , .alias = "pwrite64" , },
738
+ { .name = "readlinkat" ,
775
739
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ }, }, },
776
- { .name = "readv" , .errmsg = true, },
777
- { .name = "recvfrom" , .errmsg = true,
740
+ { .name = "recvfrom" ,
778
741
.arg = { [3 ] = { .scnprintf = SCA_MSG_FLAGS , /* flags */ }, }, },
779
- { .name = "recvmmsg" , . errmsg = true,
742
+ { .name = "recvmmsg" ,
780
743
.arg = { [3 ] = { .scnprintf = SCA_MSG_FLAGS , /* flags */ }, }, },
781
- { .name = "recvmsg" , . errmsg = true,
744
+ { .name = "recvmsg" ,
782
745
.arg = { [2 ] = { .scnprintf = SCA_MSG_FLAGS , /* flags */ }, }, },
783
- { .name = "removexattr" , .errmsg = true, },
784
- { .name = "renameat" , .errmsg = true,
746
+ { .name = "renameat" ,
785
747
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ }, }, },
786
- { .name = "rmdir" , .errmsg = true, },
787
- { .name = "rt_sigaction" , .errmsg = true,
748
+ { .name = "rt_sigaction" ,
788
749
.arg = { [0 ] = { .scnprintf = SCA_SIGNUM , /* sig */ }, }, },
789
- { .name = "rt_sigprocmask" , . errmsg = true,
750
+ { .name = "rt_sigprocmask" ,
790
751
.arg = { [0 ] = STRARRAY (how , sighow ), }, },
791
- { .name = "rt_sigqueueinfo" , . errmsg = true,
752
+ { .name = "rt_sigqueueinfo" ,
792
753
.arg = { [1 ] = { .scnprintf = SCA_SIGNUM , /* sig */ }, }, },
793
- { .name = "rt_tgsigqueueinfo" , . errmsg = true,
754
+ { .name = "rt_tgsigqueueinfo" ,
794
755
.arg = { [2 ] = { .scnprintf = SCA_SIGNUM , /* sig */ }, }, },
795
- { .name = "sched_getattr" , .errmsg = true, },
796
- { .name = "sched_setattr" , .errmsg = true, },
797
- { .name = "sched_setscheduler" , .errmsg = true,
756
+ { .name = "sched_setscheduler" ,
798
757
.arg = { [1 ] = { .scnprintf = SCA_SCHED_POLICY , /* policy */ }, }, },
799
- { .name = "seccomp" , . errmsg = true,
758
+ { .name = "seccomp" ,
800
759
.arg = { [0 ] = { .scnprintf = SCA_SECCOMP_OP , /* op */ },
801
760
[1 ] = { .scnprintf = SCA_SECCOMP_FLAGS , /* flags */ }, }, },
802
- { .name = "select" , . errmsg = true, .timeout = true, },
803
- { .name = "sendmmsg" , . errmsg = true,
761
+ { .name = "select" , .timeout = true, },
762
+ { .name = "sendmmsg" ,
804
763
.arg = { [3 ] = { .scnprintf = SCA_MSG_FLAGS , /* flags */ }, }, },
805
- { .name = "sendmsg" , . errmsg = true,
764
+ { .name = "sendmsg" ,
806
765
.arg = { [2 ] = { .scnprintf = SCA_MSG_FLAGS , /* flags */ }, }, },
807
- { .name = "sendto" , . errmsg = true,
766
+ { .name = "sendto" ,
808
767
.arg = { [3 ] = { .scnprintf = SCA_MSG_FLAGS , /* flags */ }, }, },
809
768
{ .name = "set_tid_address" , .errpid = true, },
810
- { .name = "setitimer" , . errmsg = true,
769
+ { .name = "setitimer" ,
811
770
.arg = { [0 ] = STRARRAY (which , itimers ), }, },
812
- { .name = "setpgid" , .errmsg = true, },
813
- { .name = "setrlimit" , .errmsg = true,
771
+ { .name = "setrlimit" ,
814
772
.arg = { [0 ] = STRARRAY (resource , rlimit_resources ), }, },
815
- { .name = "setxattr" , .errmsg = true, },
816
- { .name = "shutdown" , .errmsg = true, },
817
- { .name = "socket" , .errmsg = true,
773
+ { .name = "socket" ,
818
774
.arg = { [0 ] = STRARRAY (family , socket_families ),
819
775
[1 ] = { .scnprintf = SCA_SK_TYPE , /* type */ }, }, },
820
- { .name = "socketpair" , . errmsg = true,
776
+ { .name = "socketpair" ,
821
777
.arg = { [0 ] = STRARRAY (family , socket_families ),
822
778
[1 ] = { .scnprintf = SCA_SK_TYPE , /* type */ }, }, },
823
- { .name = "stat" , .errmsg = true, .alias = "newstat" , },
824
- { .name = "statfs" , .errmsg = true, },
825
- { .name = "statx" , .errmsg = true,
779
+ { .name = "stat" , .alias = "newstat" , },
780
+ { .name = "statx" ,
826
781
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* fdat */ },
827
782
[2 ] = { .scnprintf = SCA_STATX_FLAGS , /* flags */ } ,
828
783
[3 ] = { .scnprintf = SCA_STATX_MASK , /* mask */ }, }, },
829
- { .name = "swapoff" , . errmsg = true,
784
+ { .name = "swapoff" ,
830
785
.arg = { [0 ] = { .scnprintf = SCA_FILENAME , /* specialfile */ }, }, },
831
- { .name = "swapon" , . errmsg = true,
786
+ { .name = "swapon" ,
832
787
.arg = { [0 ] = { .scnprintf = SCA_FILENAME , /* specialfile */ }, }, },
833
- { .name = "symlinkat" , . errmsg = true,
788
+ { .name = "symlinkat" ,
834
789
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ }, }, },
835
- { .name = "tgkill" , . errmsg = true,
790
+ { .name = "tgkill" ,
836
791
.arg = { [2 ] = { .scnprintf = SCA_SIGNUM , /* sig */ }, }, },
837
- { .name = "tkill" , . errmsg = true,
792
+ { .name = "tkill" ,
838
793
.arg = { [1 ] = { .scnprintf = SCA_SIGNUM , /* sig */ }, }, },
839
- { .name = "truncate" , .errmsg = true, },
840
- { .name = "uname" , .errmsg = true, .alias = "newuname" , },
841
- { .name = "unlinkat" , .errmsg = true,
794
+ { .name = "uname" , .alias = "newuname" , },
795
+ { .name = "unlinkat" ,
842
796
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dfd */ }, }, },
843
- { .name = "utime" , .errmsg = true, },
844
- { .name = "utimensat" , .errmsg = true,
797
+ { .name = "utimensat" ,
845
798
.arg = { [0 ] = { .scnprintf = SCA_FDAT , /* dirfd */ }, }, },
846
- { .name = "utimes" , .errmsg = true, },
847
- { .name = "vmsplice" , .errmsg = true, },
848
799
{ .name = "wait4" , .errpid = true,
849
800
.arg = { [2 ] = { .scnprintf = SCA_WAITID_OPTIONS , /* options */ }, }, },
850
801
{ .name = "waitid" , .errpid = true,
851
802
.arg = { [3 ] = { .scnprintf = SCA_WAITID_OPTIONS , /* options */ }, }, },
852
- { .name = "write" , .errmsg = true, },
853
- { .name = "writev" , .errmsg = true, },
854
803
};
855
804
856
805
static int syscall_fmt__cmp (const void * name , const void * fmtp )
@@ -1708,14 +1657,18 @@ static int trace__sys_exit(struct trace *trace, struct perf_evsel *evsel,
1708
1657
}
1709
1658
1710
1659
if (sc -> fmt == NULL ) {
1660
+ if (ret < 0 )
1661
+ goto errno_print ;
1711
1662
signed_print :
1712
- fprintf (trace -> output , ") = %ld" , ret );
1713
- } else if (ret < 0 && (sc -> fmt -> errmsg || sc -> fmt -> errpid )) {
1663
+ fprintf (trace -> output , ") %ld" , ret );
1664
+ } else if (ret < 0 ) {
1665
+ errno_print : {
1714
1666
char bf [STRERR_BUFSIZE ];
1715
1667
const char * emsg = str_error_r (- ret , bf , sizeof (bf )),
1716
1668
* e = audit_errno_to_name (- ret );
1717
1669
1718
1670
fprintf (trace -> output , ") = -1 %s %s" , e , emsg );
1671
+ }
1719
1672
} else if (ret == 0 && sc -> fmt -> timeout )
1720
1673
fprintf (trace -> output , ") = 0 Timeout" );
1721
1674
else if (ttrace -> ret_scnprintf ) {
0 commit comments