diff options
author | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2020-06-27 14:43:29 +0000 |
---|---|---|
committer | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2020-06-27 14:43:29 +0000 |
commit | a39cdcd7e7f94e0c508136f02188868a7dca934f (patch) | |
tree | 43b2a6f2cd8a86898767b8db937bb2ad3de8e9da /sys/arm64 | |
parent | 308e194cbf6dddd38c87e8fef265910965dff37d (diff) | |
download | src-a39cdcd7e7f94e0c508136f02188868a7dca934f.tar.gz src-a39cdcd7e7f94e0c508136f02188868a7dca934f.zip |
Regen.
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Notes
Notes:
svn path=/head/; revision=362693
Diffstat (limited to 'sys/arm64')
-rw-r--r-- | sys/arm64/linux/linux_proto.h | 136 | ||||
-rw-r--r-- | sys/arm64/linux/linux_sysent.c | 36 | ||||
-rw-r--r-- | sys/arm64/linux/linux_systrace_args.c | 556 |
3 files changed, 582 insertions, 146 deletions
diff --git a/sys/arm64/linux/linux_proto.h b/sys/arm64/linux/linux_proto.h index 670c14ea4f60..feb23d059b6c 100644 --- a/sys/arm64/linux/linux_proto.h +++ b/sys/arm64/linux/linux_proto.h @@ -36,40 +36,70 @@ struct thread; #define nosys linux_nosys struct linux_setxattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char value_l_[PADL_(const char *)]; const char * value; char value_r_[PADR_(const char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_lsetxattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char value_l_[PADL_(const char *)]; const char * value; char value_r_[PADR_(const char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_fsetxattr_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char value_l_[PADL_(const char *)]; const char * value; char value_r_[PADR_(const char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_getxattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char value_l_[PADL_(char *)]; char * value; char value_r_[PADR_(char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; }; struct linux_lgetxattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char value_l_[PADL_(char *)]; char * value; char value_r_[PADR_(char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; }; struct linux_fgetxattr_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char value_l_[PADL_(char *)]; char * value; char value_r_[PADR_(char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; }; struct linux_listxattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char list_l_[PADL_(const char *)]; const char * list; char list_r_[PADR_(const char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; }; struct linux_llistxattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char list_l_[PADL_(const char *)]; const char * list; char list_r_[PADR_(const char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; }; struct linux_flistxattr_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char list_l_[PADL_(const char *)]; const char * list; char list_r_[PADR_(const char *)]; + char size_l_[PADL_(l_size_t)]; l_size_t size; char size_r_[PADR_(l_size_t)]; }; struct linux_removexattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; }; struct linux_lremovexattr_args { - register_t dummy; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; }; struct linux_fremovexattr_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; }; struct linux_getcwd_args { char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)]; @@ -121,7 +151,7 @@ struct linux_inotify_rm_watch_args { struct linux_ioctl_args { char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)]; char cmd_l_[PADL_(l_uint)]; l_uint cmd; char cmd_r_[PADR_(l_uint)]; - char arg_l_[PADL_(uintptr_t)]; uintptr_t arg; char arg_r_[PADR_(uintptr_t)]; + char arg_l_[PADL_(l_ulong)]; l_ulong arg; char arg_r_[PADR_(l_ulong)]; }; struct linux_ioprio_set_args { register_t dummy; @@ -138,7 +168,7 @@ struct linux_mknodat_args { struct linux_mkdirat_args { char dfd_l_[PADL_(l_int)]; l_int dfd; char dfd_r_[PADR_(l_int)]; char pathname_l_[PADL_(const char *)]; const char * pathname; char pathname_r_[PADR_(const char *)]; - char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)]; + char mode_l_[PADL_(l_mode_t)]; l_mode_t mode; char mode_r_[PADR_(l_mode_t)]; }; struct linux_unlinkat_args { char dfd_l_[PADL_(l_int)]; l_int dfd; char dfd_r_[PADR_(l_int)]; @@ -219,7 +249,7 @@ struct linux_openat_args { char dfd_l_[PADL_(l_int)]; l_int dfd; char dfd_r_[PADR_(l_int)]; char filename_l_[PADL_(const char *)]; const char * filename; char filename_r_[PADR_(const char *)]; char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; - char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)]; + char mode_l_[PADL_(l_mode_t)]; l_mode_t mode; char mode_r_[PADR_(l_mode_t)]; }; struct linux_vhangup_args { register_t dummy; @@ -267,7 +297,7 @@ struct linux_pwritev_args { struct linux_sendfile_args { char out_l_[PADL_(l_int)]; l_int out; char out_r_[PADR_(l_int)]; char in_l_[PADL_(l_int)]; l_int in; char in_r_[PADR_(l_int)]; - char offset_l_[PADL_(l_long *)]; l_long * offset; char offset_r_[PADR_(l_long *)]; + char offset_l_[PADL_(l_off_t *)]; l_off_t * offset; char offset_r_[PADR_(l_off_t *)]; char count_l_[PADL_(l_size_t)]; l_size_t count; char count_r_[PADR_(l_size_t)]; }; struct linux_pselect6_args { @@ -280,7 +310,7 @@ struct linux_pselect6_args { }; struct linux_ppoll_args { char fds_l_[PADL_(struct pollfd *)]; struct pollfd * fds; char fds_r_[PADR_(struct pollfd *)]; - char nfds_l_[PADL_(uint32_t)]; uint32_t nfds; char nfds_r_[PADR_(uint32_t)]; + char nfds_l_[PADL_(l_uint)]; l_uint nfds; char nfds_r_[PADR_(l_uint)]; char tsp_l_[PADL_(struct l_timespec *)]; struct l_timespec * tsp; char tsp_r_[PADR_(struct l_timespec *)]; char sset_l_[PADL_(l_sigset_t *)]; l_sigset_t * sset; char sset_r_[PADR_(l_sigset_t *)]; char ssize_l_[PADL_(l_size_t)]; l_size_t ssize; char ssize_r_[PADR_(l_size_t)]; @@ -320,7 +350,7 @@ struct linux_sync_file_range_args { char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)]; char nbytes_l_[PADL_(l_loff_t)]; l_loff_t nbytes; char nbytes_r_[PADR_(l_loff_t)]; - char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; + char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; }; struct linux_timerfd_create_args { char clockid_l_[PADL_(l_int)]; l_int clockid; char clockid_r_[PADR_(l_int)]; @@ -354,10 +384,10 @@ struct linux_personality_args { char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_exit_args { - char rval_l_[PADL_(int)]; int rval; char rval_r_[PADR_(int)]; + char rval_l_[PADL_(u_int)]; u_int rval; char rval_r_[PADR_(u_int)]; }; struct linux_exit_group_args { - char error_code_l_[PADL_(int)]; int error_code; char error_code_r_[PADR_(int)]; + char error_code_l_[PADL_(l_int)]; l_int error_code; char error_code_r_[PADR_(l_int)]; }; struct linux_waitid_args { char idtype_l_[PADL_(l_int)]; l_int idtype; char idtype_r_[PADR_(l_int)]; @@ -367,7 +397,7 @@ struct linux_waitid_args { char rusage_l_[PADL_(struct rusage *)]; struct rusage * rusage; char rusage_r_[PADR_(struct rusage *)]; }; struct linux_set_tid_address_args { - char tidptr_l_[PADL_(int *)]; int * tidptr; char tidptr_r_[PADR_(int *)]; + char tidptr_l_[PADL_(l_int *)]; l_int * tidptr; char tidptr_r_[PADR_(l_int *)]; }; struct linux_unshare_args { register_t dummy; @@ -446,7 +476,7 @@ struct linux_clock_getres_args { }; struct linux_clock_nanosleep_args { char which_l_[PADL_(clockid_t)]; clockid_t which; char which_r_[PADR_(clockid_t)]; - char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; char rqtp_l_[PADL_(struct l_timespec *)]; struct l_timespec * rqtp; char rqtp_r_[PADR_(struct l_timespec *)]; char rmtp_l_[PADL_(struct l_timespec *)]; struct l_timespec * rmtp; char rmtp_r_[PADR_(struct l_timespec *)]; }; @@ -498,16 +528,16 @@ struct linux_sched_rr_get_interval_args { char interval_l_[PADL_(struct l_timespec *)]; struct l_timespec * interval; char interval_r_[PADR_(struct l_timespec *)]; }; struct linux_kill_args { - char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; + char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)]; char signum_l_[PADL_(l_int)]; l_int signum; char signum_r_[PADR_(l_int)]; }; struct linux_tkill_args { - char tid_l_[PADL_(l_int)]; l_int tid; char tid_r_[PADR_(l_int)]; + char tid_l_[PADL_(l_pid_t)]; l_pid_t tid; char tid_r_[PADR_(l_pid_t)]; char sig_l_[PADL_(l_int)]; l_int sig; char sig_r_[PADR_(l_int)]; }; struct linux_tgkill_args { - char tgid_l_[PADL_(l_int)]; l_int tgid; char tgid_r_[PADR_(l_int)]; - char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; + char tgid_l_[PADL_(l_pid_t)]; l_pid_t tgid; char tgid_r_[PADR_(l_pid_t)]; + char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)]; char sig_l_[PADL_(l_int)]; l_int sig; char sig_r_[PADR_(l_int)]; }; struct linux_sigaltstack_args { @@ -631,22 +661,36 @@ struct linux_sysinfo_args { char info_l_[PADL_(struct l_sysinfo *)]; struct l_sysinfo * info; char info_r_[PADR_(struct l_sysinfo *)]; }; struct linux_mq_open_args { - register_t dummy; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char oflag_l_[PADL_(l_int)]; l_int oflag; char oflag_r_[PADR_(l_int)]; + char mode_l_[PADL_(l_mode_t)]; l_mode_t mode; char mode_r_[PADR_(l_mode_t)]; + char attr_l_[PADL_(struct mq_attr *)]; struct mq_attr * attr; char attr_r_[PADR_(struct mq_attr *)]; }; struct linux_mq_unlink_args { - register_t dummy; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; }; struct linux_mq_timedsend_args { - register_t dummy; + char mqd_l_[PADL_(l_mqd_t)]; l_mqd_t mqd; char mqd_r_[PADR_(l_mqd_t)]; + char msg_ptr_l_[PADL_(const char *)]; const char * msg_ptr; char msg_ptr_r_[PADR_(const char *)]; + char msg_len_l_[PADL_(l_size_t)]; l_size_t msg_len; char msg_len_r_[PADR_(l_size_t)]; + char msg_prio_l_[PADL_(l_uint)]; l_uint msg_prio; char msg_prio_r_[PADR_(l_uint)]; + char abs_timeout_l_[PADL_(const struct l_timespec *)]; const struct l_timespec * abs_timeout; char abs_timeout_r_[PADR_(const struct l_timespec *)]; }; struct linux_mq_timedreceive_args { - register_t dummy; + char mqd_l_[PADL_(l_mqd_t)]; l_mqd_t mqd; char mqd_r_[PADR_(l_mqd_t)]; + char msg_ptr_l_[PADL_(char *)]; char * msg_ptr; char msg_ptr_r_[PADR_(char *)]; + char msg_len_l_[PADL_(l_size_t)]; l_size_t msg_len; char msg_len_r_[PADR_(l_size_t)]; + char msg_prio_l_[PADL_(l_uint *)]; l_uint * msg_prio; char msg_prio_r_[PADR_(l_uint *)]; + char abs_timeout_l_[PADL_(const struct l_timespec *)]; const struct l_timespec * abs_timeout; char abs_timeout_r_[PADR_(const struct l_timespec *)]; }; struct linux_mq_notify_args { - register_t dummy; + char mqd_l_[PADL_(l_mqd_t)]; l_mqd_t mqd; char mqd_r_[PADR_(l_mqd_t)]; + char abs_timeout_l_[PADL_(const struct l_timespec *)]; const struct l_timespec * abs_timeout; char abs_timeout_r_[PADR_(const struct l_timespec *)]; }; struct linux_mq_getsetattr_args { - register_t dummy; + char mqd_l_[PADL_(l_mqd_t)]; l_mqd_t mqd; char mqd_r_[PADR_(l_mqd_t)]; + char attr_l_[PADL_(const struct mq_attr *)]; const struct mq_attr * attr; char attr_r_[PADR_(const struct mq_attr *)]; + char oattr_l_[PADL_(struct mq_attr *)]; struct mq_attr * oattr; char oattr_r_[PADR_(struct mq_attr *)]; }; struct linux_msgget_args { char key_l_[PADL_(l_key_t)]; l_key_t key; char key_r_[PADR_(l_key_t)]; @@ -750,8 +794,8 @@ struct linux_getpeername_args { struct linux_sendto_args { char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; char msg_l_[PADL_(l_uintptr_t)]; l_uintptr_t msg; char msg_r_[PADR_(l_uintptr_t)]; - char len_l_[PADL_(l_int)]; l_int len; char len_r_[PADR_(l_int)]; - char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; + char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)]; + char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; char to_l_[PADL_(l_uintptr_t)]; l_uintptr_t to; char to_r_[PADR_(l_uintptr_t)]; char tolen_l_[PADL_(l_int)]; l_int tolen; char tolen_r_[PADR_(l_int)]; }; @@ -759,7 +803,7 @@ struct linux_recvfrom_args { char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; char buf_l_[PADL_(l_uintptr_t)]; l_uintptr_t buf; char buf_r_[PADR_(l_uintptr_t)]; char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)]; - char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; + char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; char from_l_[PADL_(l_uintptr_t)]; l_uintptr_t from; char from_r_[PADR_(l_uintptr_t)]; char fromlen_l_[PADL_(l_uintptr_t)]; l_uintptr_t fromlen; char fromlen_r_[PADR_(l_uintptr_t)]; }; @@ -784,12 +828,12 @@ struct linux_shutdown_args { struct linux_sendmsg_args { char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; char msg_l_[PADL_(l_uintptr_t)]; l_uintptr_t msg; char msg_r_[PADR_(l_uintptr_t)]; - char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; + char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; }; struct linux_recvmsg_args { char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; char msg_l_[PADL_(l_uintptr_t)]; l_uintptr_t msg; char msg_r_[PADR_(l_uintptr_t)]; - char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; + char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; }; struct linux_brk_args { char dsend_l_[PADL_(l_ulong)]; l_ulong dsend; char dsend_r_[PADR_(l_ulong)]; @@ -811,7 +855,7 @@ struct linux_keyctl_args { register_t dummy; }; struct linux_clone_args { - char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; + char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)]; char stack_l_[PADL_(void *)]; void * stack; char stack_r_[PADR_(void *)]; char parent_tidptr_l_[PADL_(void *)]; void * parent_tidptr; char parent_tidptr_r_[PADR_(void *)]; char tls_l_[PADL_(void *)]; void * tls; char tls_r_[PADR_(void *)]; @@ -840,9 +884,9 @@ struct linux_swapoff_args { register_t dummy; }; struct linux_mprotect_args { - char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; - char len_l_[PADL_(l_int)]; l_int len; char len_r_[PADR_(l_int)]; - char prot_l_[PADL_(l_int)]; l_int prot; char prot_r_[PADR_(l_int)]; + char addr_l_[PADL_(l_ulong)]; l_ulong addr; char addr_r_[PADR_(l_ulong)]; + char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)]; + char prot_l_[PADL_(l_ulong)]; l_ulong prot; char prot_r_[PADR_(l_ulong)]; }; struct linux_msync_args { char addr_l_[PADL_(l_ulong)]; l_ulong addr; char addr_r_[PADR_(l_ulong)]; @@ -855,9 +899,9 @@ struct linux_mincore_args { char vec_l_[PADL_(u_char *)]; u_char * vec; char vec_r_[PADR_(u_char *)]; }; struct linux_madvise_args { - char addr_l_[PADL_(void *)]; void * addr; char addr_r_[PADR_(void *)]; - char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; - char behav_l_[PADL_(int)]; int behav; char behav_r_[PADR_(int)]; + char addr_l_[PADL_(l_ulong)]; l_ulong addr; char addr_r_[PADR_(l_ulong)]; + char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)]; + char behav_l_[PADL_(l_int)]; l_int behav; char behav_r_[PADR_(l_int)]; }; struct linux_remap_file_pages_args { register_t dummy; @@ -890,7 +934,7 @@ struct linux_accept4_args { char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; char addr_l_[PADL_(l_uintptr_t)]; l_uintptr_t addr; char addr_r_[PADR_(l_uintptr_t)]; char namelen_l_[PADL_(l_uintptr_t)]; l_uintptr_t namelen; char namelen_r_[PADR_(l_uintptr_t)]; - char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_recvmmsg_args { char s_l_[PADL_(l_int)]; l_int s; char s_r_[PADR_(l_int)]; @@ -983,7 +1027,7 @@ struct linux_renameat2_args { char oldname_l_[PADL_(const char *)]; const char * oldname; char oldname_r_[PADR_(const char *)]; char newdfd_l_[PADL_(l_int)]; l_int newdfd; char newdfd_r_[PADR_(l_int)]; char newname_l_[PADL_(const char *)]; const char * newname; char newname_r_[PADR_(const char *)]; - char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; + char flags_l_[PADL_(l_uint)]; l_uint flags; char flags_r_[PADR_(l_uint)]; }; struct linux_seccomp_args { char op_l_[PADL_(l_uint)]; l_uint op; char op_r_[PADR_(l_uint)]; diff --git a/sys/arm64/linux/linux_sysent.c b/sys/arm64/linux/linux_sysent.c index c8d5122cffbd..b7ca80cfeda9 100644 --- a/sys/arm64/linux/linux_sysent.c +++ b/sys/arm64/linux/linux_sysent.c @@ -22,18 +22,18 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 2 = linux_io_submit */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 3 = linux_io_cancel */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 4 = linux_io_getevents */ - { 0, (sy_call_t *)linux_setxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 5 = linux_setxattr */ - { 0, (sy_call_t *)linux_lsetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = linux_lsetxattr */ - { 0, (sy_call_t *)linux_fsetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 7 = linux_fsetxattr */ - { 0, (sy_call_t *)linux_getxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 8 = linux_getxattr */ - { 0, (sy_call_t *)linux_lgetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = linux_lgetxattr */ - { 0, (sy_call_t *)linux_fgetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 10 = linux_fgetxattr */ - { 0, (sy_call_t *)linux_listxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 11 = linux_listxattr */ - { 0, (sy_call_t *)linux_llistxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = linux_llistxattr */ - { 0, (sy_call_t *)linux_flistxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 13 = linux_flistxattr */ - { 0, (sy_call_t *)linux_removexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = linux_removexattr */ - { 0, (sy_call_t *)linux_lremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = linux_lremovexattr */ - { 0, (sy_call_t *)linux_fremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = linux_fremovexattr */ + { AS(linux_setxattr_args), (sy_call_t *)linux_setxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 5 = linux_setxattr */ + { AS(linux_lsetxattr_args), (sy_call_t *)linux_lsetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 6 = linux_lsetxattr */ + { AS(linux_fsetxattr_args), (sy_call_t *)linux_fsetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 7 = linux_fsetxattr */ + { AS(linux_getxattr_args), (sy_call_t *)linux_getxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 8 = linux_getxattr */ + { AS(linux_lgetxattr_args), (sy_call_t *)linux_lgetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 9 = linux_lgetxattr */ + { AS(linux_fgetxattr_args), (sy_call_t *)linux_fgetxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 10 = linux_fgetxattr */ + { AS(linux_listxattr_args), (sy_call_t *)linux_listxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 11 = linux_listxattr */ + { AS(linux_llistxattr_args), (sy_call_t *)linux_llistxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = linux_llistxattr */ + { AS(linux_flistxattr_args), (sy_call_t *)linux_flistxattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 13 = linux_flistxattr */ + { AS(linux_removexattr_args), (sy_call_t *)linux_removexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = linux_removexattr */ + { AS(linux_lremovexattr_args), (sy_call_t *)linux_lremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = linux_lremovexattr */ + { AS(linux_fremovexattr_args), (sy_call_t *)linux_fremovexattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = linux_fremovexattr */ { AS(linux_getcwd_args), (sy_call_t *)linux_getcwd, AUE_GETCWD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 17 = linux_getcwd */ { 0, (sy_call_t *)linux_lookup_dcookie, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 18 = linux_lookup_dcookie */ { AS(linux_eventfd2_args), (sy_call_t *)linux_eventfd2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 19 = linux_eventfd2 */ @@ -197,12 +197,12 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)sys_getegid, AUE_GETEGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 177 = getegid */ { 0, (sy_call_t *)linux_gettid, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 178 = linux_gettid */ { AS(linux_sysinfo_args), (sy_call_t *)linux_sysinfo, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 179 = linux_sysinfo */ - { 0, (sy_call_t *)linux_mq_open, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 180 = linux_mq_open */ - { 0, (sy_call_t *)linux_mq_unlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 181 = linux_mq_unlink */ - { 0, (sy_call_t *)linux_mq_timedsend, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 182 = linux_mq_timedsend */ - { 0, (sy_call_t *)linux_mq_timedreceive, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 183 = linux_mq_timedreceive */ - { 0, (sy_call_t *)linux_mq_notify, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 184 = linux_mq_notify */ - { 0, (sy_call_t *)linux_mq_getsetattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 185 = linux_mq_getsetattr */ + { AS(linux_mq_open_args), (sy_call_t *)linux_mq_open, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 180 = linux_mq_open */ + { AS(linux_mq_unlink_args), (sy_call_t *)linux_mq_unlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 181 = linux_mq_unlink */ + { AS(linux_mq_timedsend_args), (sy_call_t *)linux_mq_timedsend, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 182 = linux_mq_timedsend */ + { AS(linux_mq_timedreceive_args), (sy_call_t *)linux_mq_timedreceive, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 183 = linux_mq_timedreceive */ + { AS(linux_mq_notify_args), (sy_call_t *)linux_mq_notify, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 184 = linux_mq_notify */ + { AS(linux_mq_getsetattr_args), (sy_call_t *)linux_mq_getsetattr, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 185 = linux_mq_getsetattr */ { AS(linux_msgget_args), (sy_call_t *)linux_msgget, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 186 = linux_msgget */ { AS(linux_msgctl_args), (sy_call_t *)linux_msgctl, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 187 = linux_msgctl */ { AS(linux_msgrcv_args), (sy_call_t *)linux_msgrcv, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 188 = linux_msgrcv */ diff --git a/sys/arm64/linux/linux_systrace_args.c b/sys/arm64/linux/linux_systrace_args.c index 193f84e88a4e..3bb994e71792 100644 --- a/sys/arm64/linux/linux_systrace_args.c +++ b/sys/arm64/linux/linux_systrace_args.c @@ -14,62 +14,116 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) #define nosys linux_nosys /* linux_setxattr */ case 5: { - *n_args = 0; + struct linux_setxattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->value; /* const char * */ + iarg[3] = p->size; /* l_size_t */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_lsetxattr */ case 6: { - *n_args = 0; + struct linux_lsetxattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->value; /* const char * */ + iarg[3] = p->size; /* l_size_t */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_fsetxattr */ case 7: { - *n_args = 0; + struct linux_fsetxattr_args *p = params; + iarg[0] = p->fd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->value; /* const char * */ + iarg[3] = p->size; /* l_size_t */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_getxattr */ case 8: { - *n_args = 0; + struct linux_getxattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->value; /* char * */ + iarg[3] = p->size; /* l_size_t */ + *n_args = 4; break; } /* linux_lgetxattr */ case 9: { - *n_args = 0; + struct linux_lgetxattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->value; /* char * */ + iarg[3] = p->size; /* l_size_t */ + *n_args = 4; break; } /* linux_fgetxattr */ case 10: { - *n_args = 0; + struct linux_fgetxattr_args *p = params; + iarg[0] = p->fd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->value; /* char * */ + iarg[3] = p->size; /* l_size_t */ + *n_args = 4; break; } /* linux_listxattr */ case 11: { - *n_args = 0; + struct linux_listxattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->list; /* const char * */ + iarg[2] = p->size; /* l_size_t */ + *n_args = 3; break; } /* linux_llistxattr */ case 12: { - *n_args = 0; + struct linux_llistxattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->list; /* const char * */ + iarg[2] = p->size; /* l_size_t */ + *n_args = 3; break; } /* linux_flistxattr */ case 13: { - *n_args = 0; + struct linux_flistxattr_args *p = params; + iarg[0] = p->fd; /* l_int */ + uarg[1] = (intptr_t) p->list; /* const char * */ + iarg[2] = p->size; /* l_size_t */ + *n_args = 3; break; } /* linux_removexattr */ case 14: { - *n_args = 0; + struct linux_removexattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->name; /* const char * */ + *n_args = 2; break; } /* linux_lremovexattr */ case 15: { - *n_args = 0; + struct linux_lremovexattr_args *p = params; + uarg[0] = (intptr_t) p->path; /* const char * */ + uarg[1] = (intptr_t) p->name; /* const char * */ + *n_args = 2; break; } /* linux_fremovexattr */ case 16: { - *n_args = 0; + struct linux_fremovexattr_args *p = params; + iarg[0] = p->fd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + *n_args = 2; break; } /* linux_getcwd */ @@ -169,7 +223,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct linux_ioctl_args *p = params; iarg[0] = p->fd; /* l_uint */ iarg[1] = p->cmd; /* l_uint */ - uarg[2] = p->arg; /* uintptr_t */ + iarg[2] = p->arg; /* l_ulong */ *n_args = 3; break; } @@ -206,7 +260,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct linux_mkdirat_args *p = params; iarg[0] = p->dfd; /* l_int */ uarg[1] = (intptr_t) p->pathname; /* const char * */ - iarg[2] = p->mode; /* l_int */ + iarg[2] = p->mode; /* l_mode_t */ *n_args = 3; break; } @@ -380,7 +434,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) iarg[0] = p->dfd; /* l_int */ uarg[1] = (intptr_t) p->filename; /* const char * */ iarg[2] = p->flags; /* l_int */ - iarg[3] = p->mode; /* l_int */ + iarg[3] = p->mode; /* l_mode_t */ *n_args = 4; break; } @@ -427,7 +481,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct read_args *p = params; iarg[0] = p->fd; /* int */ uarg[1] = (intptr_t) p->buf; /* char * */ - uarg[2] = p->nbyte; /* u_int */ + iarg[2] = p->nbyte; /* l_size_t */ *n_args = 3; break; } @@ -436,7 +490,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct write_args *p = params; iarg[0] = p->fd; /* int */ uarg[1] = (intptr_t) p->buf; /* char * */ - uarg[2] = p->nbyte; /* u_int */ + iarg[2] = p->nbyte; /* l_size_t */ *n_args = 3; break; } @@ -505,7 +559,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct linux_sendfile_args *p = params; iarg[0] = p->out; /* l_int */ iarg[1] = p->in; /* l_int */ - uarg[2] = (intptr_t) p->offset; /* l_long * */ + uarg[2] = (intptr_t) p->offset; /* l_off_t * */ iarg[3] = p->count; /* l_size_t */ *n_args = 4; break; @@ -526,7 +580,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) case 73: { struct linux_ppoll_args *p = params; uarg[0] = (intptr_t) p->fds; /* struct pollfd * */ - uarg[1] = p->nfds; /* uint32_t */ + iarg[1] = p->nfds; /* l_uint */ uarg[2] = (intptr_t) p->tsp; /* struct l_timespec * */ uarg[3] = (intptr_t) p->sset; /* l_sigset_t * */ iarg[4] = p->ssize; /* l_size_t */ @@ -601,7 +655,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) iarg[0] = p->fd; /* l_int */ iarg[1] = p->offset; /* l_loff_t */ iarg[2] = p->nbytes; /* l_loff_t */ - uarg[3] = p->flags; /* unsigned int */ + iarg[3] = p->flags; /* l_uint */ *n_args = 4; break; } @@ -674,14 +728,14 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_exit */ case 93: { struct linux_exit_args *p = params; - iarg[0] = p->rval; /* int */ + uarg[0] = p->rval; /* u_int */ *n_args = 1; break; } /* linux_exit_group */ case 94: { struct linux_exit_group_args *p = params; - iarg[0] = p->error_code; /* int */ + iarg[0] = p->error_code; /* l_int */ *n_args = 1; break; } @@ -699,7 +753,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_set_tid_address */ case 96: { struct linux_set_tid_address_args *p = params; - uarg[0] = (intptr_t) p->tidptr; /* int * */ + uarg[0] = (intptr_t) p->tidptr; /* l_int * */ *n_args = 1; break; } @@ -846,7 +900,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) case 115: { struct linux_clock_nanosleep_args *p = params; iarg[0] = p->which; /* clockid_t */ - iarg[1] = p->flags; /* int */ + iarg[1] = p->flags; /* l_int */ uarg[2] = (intptr_t) p->rqtp; /* struct l_timespec * */ uarg[3] = (intptr_t) p->rmtp; /* struct l_timespec * */ *n_args = 4; @@ -951,7 +1005,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_kill */ case 129: { struct linux_kill_args *p = params; - iarg[0] = p->pid; /* l_int */ + iarg[0] = p->pid; /* l_pid_t */ iarg[1] = p->signum; /* l_int */ *n_args = 2; break; @@ -959,7 +1013,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_tkill */ case 130: { struct linux_tkill_args *p = params; - iarg[0] = p->tid; /* l_int */ + iarg[0] = p->tid; /* l_pid_t */ iarg[1] = p->sig; /* l_int */ *n_args = 2; break; @@ -967,8 +1021,8 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_tgkill */ case 131: { struct linux_tgkill_args *p = params; - iarg[0] = p->tgid; /* l_int */ - iarg[1] = p->pid; /* l_int */ + iarg[0] = p->tgid; /* l_pid_t */ + iarg[1] = p->pid; /* l_pid_t */ iarg[2] = p->sig; /* l_int */ *n_args = 3; break; @@ -1339,32 +1393,58 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_mq_open */ case 180: { - *n_args = 0; + struct linux_mq_open_args *p = params; + uarg[0] = (intptr_t) p->name; /* const char * */ + iarg[1] = p->oflag; /* l_int */ + iarg[2] = p->mode; /* l_mode_t */ + uarg[3] = (intptr_t) p->attr; /* struct mq_attr * */ + *n_args = 4; break; } /* linux_mq_unlink */ case 181: { - *n_args = 0; + struct linux_mq_unlink_args *p = params; + uarg[0] = (intptr_t) p->name; /* const char * */ + *n_args = 1; break; } /* linux_mq_timedsend */ case 182: { - *n_args = 0; + struct linux_mq_timedsend_args *p = params; + iarg[0] = p->mqd; /* l_mqd_t */ + uarg[1] = (intptr_t) p->msg_ptr; /* const char * */ + iarg[2] = p->msg_len; /* l_size_t */ + iarg[3] = p->msg_prio; /* l_uint */ + uarg[4] = (intptr_t) p->abs_timeout; /* const struct l_timespec * */ + *n_args = 5; break; } /* linux_mq_timedreceive */ case 183: { - *n_args = 0; + struct linux_mq_timedreceive_args *p = params; + iarg[0] = p->mqd; /* l_mqd_t */ + uarg[1] = (intptr_t) p->msg_ptr; /* char * */ + iarg[2] = p->msg_len; /* l_size_t */ + uarg[3] = (intptr_t) p->msg_prio; /* l_uint * */ + uarg[4] = (intptr_t) p->abs_timeout; /* const struct l_timespec * */ + *n_args = 5; break; } /* linux_mq_notify */ case 184: { - *n_args = 0; + struct linux_mq_notify_args *p = params; + iarg[0] = p->mqd; /* l_mqd_t */ + uarg[1] = (intptr_t) p->abs_timeout; /* const struct l_timespec * */ + *n_args = 2; break; } /* linux_mq_getsetattr */ case 185: { - *n_args = 0; + struct linux_mq_getsetattr_args *p = params; + iarg[0] = p->mqd; /* l_mqd_t */ + uarg[1] = (intptr_t) p->attr; /* const struct mq_attr * */ + uarg[2] = (intptr_t) p->oattr; /* struct mq_attr * */ + *n_args = 3; break; } /* linux_msgget */ @@ -1549,8 +1629,8 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct linux_sendto_args *p = params; iarg[0] = p->s; /* l_int */ iarg[1] = p->msg; /* l_uintptr_t */ - iarg[2] = p->len; /* l_int */ - iarg[3] = p->flags; /* l_int */ + iarg[2] = p->len; /* l_size_t */ + iarg[3] = p->flags; /* l_uint */ iarg[4] = p->to; /* l_uintptr_t */ iarg[5] = p->tolen; /* l_int */ *n_args = 6; @@ -1562,7 +1642,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) iarg[0] = p->s; /* l_int */ iarg[1] = p->buf; /* l_uintptr_t */ iarg[2] = p->len; /* l_size_t */ - iarg[3] = p->flags; /* l_int */ + iarg[3] = p->flags; /* l_uint */ iarg[4] = p->from; /* l_uintptr_t */ iarg[5] = p->fromlen; /* l_uintptr_t */ *n_args = 6; @@ -1603,7 +1683,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct linux_sendmsg_args *p = params; iarg[0] = p->s; /* l_int */ iarg[1] = p->msg; /* l_uintptr_t */ - iarg[2] = p->flags; /* l_int */ + iarg[2] = p->flags; /* l_uint */ *n_args = 3; break; } @@ -1612,7 +1692,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) struct linux_recvmsg_args *p = params; iarg[0] = p->s; /* l_int */ iarg[1] = p->msg; /* l_uintptr_t */ - iarg[2] = p->flags; /* l_int */ + iarg[2] = p->flags; /* l_uint */ *n_args = 3; break; } @@ -1626,8 +1706,8 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* munmap */ case 215: { struct munmap_args *p = params; - uarg[0] = (intptr_t) p->addr; /* caddr_t */ - iarg[1] = p->len; /* int */ + uarg[0] = (intptr_t) p->addr; /* void * */ + iarg[1] = p->len; /* l_size_t */ *n_args = 2; break; } @@ -1660,7 +1740,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_clone */ case 220: { struct linux_clone_args *p = params; - iarg[0] = p->flags; /* l_int */ + iarg[0] = p->flags; /* l_ulong */ uarg[1] = (intptr_t) p->stack; /* void * */ uarg[2] = (intptr_t) p->parent_tidptr; /* void * */ uarg[3] = (intptr_t) p->tls; /* void * */ @@ -1714,9 +1794,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_mprotect */ case 226: { struct linux_mprotect_args *p = params; - uarg[0] = (intptr_t) p->addr; /* caddr_t */ - iarg[1] = p->len; /* l_int */ - iarg[2] = p->prot; /* l_int */ + iarg[0] = p->addr; /* l_ulong */ + iarg[1] = p->len; /* l_size_t */ + iarg[2] = p->prot; /* l_ulong */ *n_args = 3; break; } @@ -1769,9 +1849,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) /* linux_madvise */ case 233: { struct linux_madvise_args *p = params; - uarg[0] = (intptr_t) p->addr; /* void * */ - uarg[1] = p->len; /* size_t */ - iarg[2] = p->behav; /* int */ + iarg[0] = p->addr; /* l_ulong */ + iarg[1] = p->len; /* l_size_t */ + iarg[2] = p->behav; /* l_int */ *n_args = 3; break; } @@ -1826,7 +1906,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) iarg[0] = p->s; /* l_int */ iarg[1] = p->addr; /* l_uintptr_t */ iarg[2] = p->namelen; /* l_uintptr_t */ - iarg[3] = p->flags; /* int */ + iarg[3] = p->flags; /* l_int */ *n_args = 4; break; } @@ -1981,7 +2061,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) uarg[1] = (intptr_t) p->oldname; /* const char * */ iarg[2] = p->newdfd; /* l_int */ uarg[3] = (intptr_t) p->newname; /* const char * */ - uarg[4] = p->flags; /* unsigned int */ + iarg[4] = p->flags; /* l_uint */ *n_args = 5; break; } @@ -2129,39 +2209,213 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) #define nosys linux_nosys /* linux_setxattr */ case 5: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland const char *"; + break; + case 3: + p = "l_size_t"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_lsetxattr */ case 6: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland const char *"; + break; + case 3: + p = "l_size_t"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_fsetxattr */ case 7: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland const char *"; + break; + case 3: + p = "l_size_t"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_getxattr */ case 8: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland char *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_lgetxattr */ case 9: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland char *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_fgetxattr */ case 10: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland char *"; + break; + case 3: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_listxattr */ case 11: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_llistxattr */ case 12: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_flistxattr */ case 13: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "l_size_t"; + break; + default: + break; + }; break; /* linux_removexattr */ case 14: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + default: + break; + }; break; /* linux_lremovexattr */ case 15: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "userland const char *"; + break; + default: + break; + }; break; /* linux_fremovexattr */ case 16: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + default: + break; + }; break; /* linux_getcwd */ case 17: @@ -2314,7 +2568,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_uint"; break; case 2: - p = "uintptr_t"; + p = "l_ulong"; break; default: break; @@ -2368,7 +2622,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "userland const char *"; break; case 2: - p = "l_int"; + p = "l_mode_t"; break; default: break; @@ -2669,7 +2923,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_int"; break; case 3: - p = "l_int"; + p = "l_mode_t"; break; default: break; @@ -2743,7 +2997,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "userland char *"; break; case 2: - p = "u_int"; + p = "l_size_t"; break; default: break; @@ -2759,7 +3013,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "userland char *"; break; case 2: - p = "u_int"; + p = "l_size_t"; break; default: break; @@ -2889,7 +3143,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_int"; break; case 2: - p = "userland l_long *"; + p = "userland l_off_t *"; break; case 3: p = "l_size_t"; @@ -2930,7 +3184,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "userland struct pollfd *"; break; case 1: - p = "uint32_t"; + p = "l_uint"; break; case 2: p = "userland struct l_timespec *"; @@ -3041,7 +3295,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_loff_t"; break; case 3: - p = "unsigned int"; + p = "l_uint"; break; default: break; @@ -3161,7 +3415,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 93: switch(ndx) { case 0: - p = "int"; + p = "u_int"; break; default: break; @@ -3171,7 +3425,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 94: switch(ndx) { case 0: - p = "int"; + p = "l_int"; break; default: break; @@ -3203,7 +3457,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 96: switch(ndx) { case 0: - p = "userland int *"; + p = "userland l_int *"; break; default: break; @@ -3431,7 +3685,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "clockid_t"; break; case 1: - p = "int"; + p = "l_int"; break; case 2: p = "userland struct l_timespec *"; @@ -3602,7 +3856,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 129: switch(ndx) { case 0: - p = "l_int"; + p = "l_pid_t"; break; case 1: p = "l_int"; @@ -3615,7 +3869,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 130: switch(ndx) { case 0: - p = "l_int"; + p = "l_pid_t"; break; case 1: p = "l_int"; @@ -3628,10 +3882,10 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 131: switch(ndx) { case 0: - p = "l_int"; + p = "l_pid_t"; break; case 1: - p = "l_int"; + p = "l_pid_t"; break; case 2: p = "l_int"; @@ -4197,21 +4451,105 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_mq_open */ case 180: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + case 1: + p = "l_int"; + break; + case 2: + p = "l_mode_t"; + break; + case 3: + p = "userland struct mq_attr *"; + break; + default: + break; + }; break; /* linux_mq_unlink */ case 181: + switch(ndx) { + case 0: + p = "userland const char *"; + break; + default: + break; + }; break; /* linux_mq_timedsend */ case 182: + switch(ndx) { + case 0: + p = "l_mqd_t"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "l_size_t"; + break; + case 3: + p = "l_uint"; + break; + case 4: + p = "userland const struct l_timespec *"; + break; + default: + break; + }; break; /* linux_mq_timedreceive */ case 183: + switch(ndx) { + case 0: + p = "l_mqd_t"; + break; + case 1: + p = "userland char *"; + break; + case 2: + p = "l_size_t"; + break; + case 3: + p = "userland l_uint *"; + break; + case 4: + p = "userland const struct l_timespec *"; + break; + default: + break; + }; break; /* linux_mq_notify */ case 184: + switch(ndx) { + case 0: + p = "l_mqd_t"; + break; + case 1: + p = "userland const struct l_timespec *"; + break; + default: + break; + }; break; /* linux_mq_getsetattr */ case 185: + switch(ndx) { + case 0: + p = "l_mqd_t"; + break; + case 1: + p = "userland const struct mq_attr *"; + break; + case 2: + p = "userland struct mq_attr *"; + break; + default: + break; + }; break; /* linux_msgget */ case 186: @@ -4533,10 +4871,10 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_uintptr_t"; break; case 2: - p = "l_int"; + p = "l_size_t"; break; case 3: - p = "l_int"; + p = "l_uint"; break; case 4: p = "l_uintptr_t"; @@ -4561,7 +4899,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_size_t"; break; case 3: - p = "l_int"; + p = "l_uint"; break; case 4: p = "l_uintptr_t"; @@ -4640,7 +4978,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_uintptr_t"; break; case 2: - p = "l_int"; + p = "l_uint"; break; default: break; @@ -4656,7 +4994,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_uintptr_t"; break; case 2: - p = "l_int"; + p = "l_uint"; break; default: break; @@ -4676,10 +5014,10 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 215: switch(ndx) { case 0: - p = "caddr_t"; + p = "userland void *"; break; case 1: - p = "int"; + p = "l_size_t"; break; default: break; @@ -4720,7 +5058,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 220: switch(ndx) { case 0: - p = "l_int"; + p = "l_ulong"; break; case 1: p = "userland void *"; @@ -4815,13 +5153,13 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 226: switch(ndx) { case 0: - p = "caddr_t"; + p = "l_ulong"; break; case 1: - p = "l_int"; + p = "l_size_t"; break; case 2: - p = "l_int"; + p = "l_ulong"; break; default: break; @@ -4902,13 +5240,13 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 233: switch(ndx) { case 0: - p = "userland void *"; + p = "l_ulong"; break; case 1: - p = "size_t"; + p = "l_size_t"; break; case 2: - p = "int"; + p = "l_int"; break; default: break; @@ -4967,7 +5305,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "l_uintptr_t"; break; case 3: - p = "int"; + p = "l_int"; break; default: break; @@ -5229,7 +5567,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "userland const char *"; break; case 4: - p = "unsigned int"; + p = "l_uint"; break; default: break; @@ -5488,28 +5826,64 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) #define nosys linux_nosys /* linux_setxattr */ case 5: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_lsetxattr */ case 6: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_fsetxattr */ case 7: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_getxattr */ case 8: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_lgetxattr */ case 9: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_fgetxattr */ case 10: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_listxattr */ case 11: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_llistxattr */ case 12: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_flistxattr */ case 13: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_removexattr */ case 14: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_lremovexattr */ case 15: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_fremovexattr */ case 16: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_getcwd */ case 17: if (ndx == 0 || ndx == 1) @@ -6227,16 +6601,34 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_mq_open */ case 180: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_mq_unlink */ case 181: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_mq_timedsend */ case 182: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_mq_timedreceive */ case 183: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_mq_notify */ case 184: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_mq_getsetattr */ case 185: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_msgget */ case 186: if (ndx == 0 || ndx == 1) |