int linux32_sys_futex(struct lwp *l, const struct linux32_sys_futex_args *uap, register_t *retval) { /* { syscallarg(linux32_intp_t) uaddr; syscallarg(int) op; syscallarg(int) val; syscallarg(linux32_timespecp_t) timeout; syscallarg(linux32_intp_t) uaddr2; syscallarg(int) val3; } */ struct linux_sys_futex_args ua; struct linux32_timespec lts; struct timespec ts = { 0, 0 }; int error; NETBSD32TOP_UAP(uaddr, int); NETBSD32TO64_UAP(op); NETBSD32TO64_UAP(val); NETBSD32TOP_UAP(timeout, struct linux_timespec); NETBSD32TOP_UAP(uaddr2, int); NETBSD32TO64_UAP(val3); if ((SCARG(uap, op) & ~LINUX_FUTEX_PRIVATE_FLAG) == LINUX_FUTEX_WAIT && SCARG_P32(uap, timeout) != NULL) { if ((error = copyin((void *)SCARG_P32(uap, timeout), <s, sizeof(lts))) != 0) { return error; } linux32_to_native_timespec(&ts, <s); } return linux_do_futex(l, &ua, retval, &ts); }
int linux32_sys_tkill(struct lwp *l, const struct linux32_sys_tkill_args *uap, register_t *retval) { /* { syscallarg(int) tid; syscallarg(int) sig; } */ struct linux_sys_tkill_args ua; NETBSD32TO64_UAP(tid); NETBSD32TO64_UAP(sig); return linux_sys_tkill(l, &ua, retval); }
int compat_43_netbsd32_oftruncate(struct lwp *l, const struct compat_43_netbsd32_oftruncate_args *uap, register_t *retval) { /* { syscallarg(int) fd; syscallarg(netbsd32_long) length; } */ struct sys_ftruncate_args ua; NETBSD32TO64_UAP(fd); NETBSD32TO64_UAP(length); return (sys_ftruncate(l, &ua, retval)); }
int compat_43_netbsd32_killpg(struct lwp *l, const struct compat_43_netbsd32_killpg_args *uap, register_t *retval) { /* { syscallarg(int) pgid; syscallarg(int) signum; } */ struct compat_43_sys_killpg_args ua; NETBSD32TO64_UAP(pgid); NETBSD32TO64_UAP(signum); return (compat_43_sys_killpg(l, &ua, retval)); }
int netbsd32__lwp_kill(struct lwp *l, const struct netbsd32__lwp_kill_args *uap, register_t *retval) { /* { syscallarg(lwpid_t) target; syscallarg(int) signo; } */ struct sys__lwp_kill_args ua; NETBSD32TO64_UAP(target); NETBSD32TO64_UAP(signo); return sys__lwp_kill(l, &ua, retval); }
int netbsd32_shmat(struct lwp *l, const struct netbsd32_shmat_args *uap, register_t *retval) { /* { syscallarg(int) shmid; syscallarg(const netbsd32_voidp) shmaddr; syscallarg(int) shmflg; } */ struct sys_shmat_args ua; NETBSD32TO64_UAP(shmid); NETBSD32TOP_UAP(shmaddr, void); NETBSD32TO64_UAP(shmflg); return sys_shmat(l, &ua, retval); }
int linux32_sys_sched_setscheduler(struct lwp *l, const struct linux32_sys_sched_setscheduler_args *uap, register_t *retval) { /* { syscallarg(int) pid; syscallarg(int) policy; syscallarg(const linux32_sched_paramp_t) sp; } */ struct linux_sys_sched_setscheduler_args ua; NETBSD32TO64_UAP(pid); NETBSD32TO64_UAP(policy); NETBSD32TOP_UAP(sp, const struct linux_sched_param); return linux_sys_sched_setscheduler(l, &ua, retval); }
int compat_30_netbsd32_socket(struct lwp *l, const struct compat_30_netbsd32_socket_args *uap, register_t *retval) { /* { syscallarg(int) domain; syscallarg(int) type; syscallarg(int) protocol; } */ struct compat_30_sys_socket_args ua; NETBSD32TO64_UAP(domain); NETBSD32TO64_UAP(type); NETBSD32TO64_UAP(protocol); return (compat_30_sys_socket(l, &ua, retval)); }
int linux32_sys_sched_setaffinity(struct lwp *l, const struct linux32_sys_sched_setaffinity_args *uap, register_t *retval) { /* { syscallarg(linux_pid_t) pid; syscallarg(unsigned int) len; syscallarg(linux32_longp_t) mask; } */ struct linux_sys_sched_setaffinity_args ua; NETBSD32TO64_UAP(pid); NETBSD32TO64_UAP(len); NETBSD32TOP_UAP(mask, long); return linux_sys_sched_setaffinity(l, &ua, retval); }
int netbsd32_semget(struct lwp *l, const struct netbsd32_semget_args *uap, register_t *retval) { /* { syscallarg(netbsd32_key_t) key; syscallarg(int) nsems; syscallarg(int) semflg; } */ struct sys_semget_args ua; NETBSD32TOX_UAP(key, key_t); NETBSD32TO64_UAP(nsems); NETBSD32TO64_UAP(semflg); return (sys_semget(l, &ua, retval)); }
int linux32_sys_bind(struct lwp *l, const struct linux32_sys_bind_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(netbsd32_osockaddrp_t) name; syscallarg(int) namelen; } */ struct linux_sys_bind_args ua; NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(name, struct osockaddr) NETBSD32TO64_UAP(namelen); return linux_sys_bind(l, &ua, retval); }
int linux32_sys_open(struct lwp *l, const struct linux32_sys_open_args *uap, register_t *retval) { /* { syscallarg(const netbsd32_charp) path; syscallarg(int) flags; syscallarg(int) mode; } */ struct linux_sys_open_args ua; NETBSD32TOP_UAP(path, const char); NETBSD32TO64_UAP(flags); NETBSD32TO64_UAP(mode); return linux_sys_open(l, &ua, retval); }
int linux32_sys_recvmsg(struct lwp *l, const struct linux32_sys_recvmsg_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(netbsd32_msghdrp_t) msg; syscallarg(int) flags; } */ struct linux_sys_recvmsg_args ua; NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(msg, struct msghdr); NETBSD32TO64_UAP(flags); return linux_sys_recvmsg(l, &ua, retval); }
int compat_43_netbsd32_orecv(struct lwp *l, const struct compat_43_netbsd32_orecv_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(netbsd32_caddr_t) buf; syscallarg(int) len; syscallarg(int) flags; } */ struct compat_43_sys_recv_args ua; NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(buf, void *); NETBSD32TO64_UAP(len); NETBSD32TO64_UAP(flags); return (compat_43_sys_recv(l, &ua, retval)); }
int compat_43_netbsd32_ogetdirentries(struct lwp *l, const struct compat_43_netbsd32_ogetdirentries_args *uap, register_t *retval) { /* { syscallarg(int) fd; syscallarg(netbsd32_charp) buf; syscallarg(u_int) count; syscallarg(netbsd32_longp) basep; } */ struct compat_43_sys_getdirentries_args ua; NETBSD32TO64_UAP(fd); NETBSD32TOP_UAP(buf, char); NETBSD32TO64_UAP(count); NETBSD32TOP_UAP(basep, long); return (compat_43_sys_getdirentries(l, &ua, retval)); }
/* kernel syscalls */ int compat_43_netbsd32_ogetkerninfo(struct lwp *l, const struct compat_43_netbsd32_ogetkerninfo_args *uap, register_t *retval) { /* { syscallarg(int) op; syscallarg(netbsd32_charp) where; syscallarg(netbsd32_intp) size; syscallarg(int) arg; } */ struct compat_43_sys_getkerninfo_args ua; NETBSD32TO64_UAP(op); NETBSD32TOP_UAP(where, char); NETBSD32TOP_UAP(size, int); NETBSD32TO64_UAP(arg); return (compat_43_sys_getkerninfo(l, &ua, retval)); }
int linux32_sys_socketpair(struct lwp *l, const struct linux32_sys_socketpair_args *uap, register_t *retval) { /* { syscallarg(int) domain; syscallarg(int) type; syscallarg(int) protocol; syscallarg(netbsd32_intp) rsv; } */ struct linux_sys_socketpair_args ua; NETBSD32TO64_UAP(domain); NETBSD32TO64_UAP(type); NETBSD32TO64_UAP(protocol); NETBSD32TOP_UAP(rsv, int) return linux_sys_socketpair(l, &ua, retval); }
int linux32_sys_recv(struct lwp *l, const struct linux32_sys_recv_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(netbsd32_voidp) buf; syscallarg(int) len; syscallarg(int) flags; } */ struct sys_recvfrom_args ua; NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(buf, void); NETBSD32TO64_UAP(len); NETBSD32TO64_UAP(flags); SCARG(&ua, from) = NULL; SCARG(&ua, fromlenaddr) = NULL; return sys_recvfrom(l, &ua, retval); }
int linux32_sys_send(struct lwp *l, const struct linux32_sys_send_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(netbsd32_voidp) buf; syscallarg(int) len; syscallarg(int) flags; } */ struct sys_sendto_args ua; NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(buf, void); NETBSD32TO64_UAP(len); NETBSD32TO64_UAP(flags); SCARG(&ua, to) = NULL; SCARG(&ua, tolen) = 0; return sys_sendto(l, &ua, retval); }
int compat_43_netbsd32_sethostid(struct lwp *l, const struct compat_43_netbsd32_sethostid_args *uap, register_t *retval) { /* { syscallarg(int32_t) hostid; } */ struct compat_43_sys_sethostid_args ua; NETBSD32TO64_UAP(hostid); return (compat_43_sys_sethostid(l, &ua, retval)); }
int netbsd32__lwp_detach(struct lwp *l, const struct netbsd32__lwp_detach_args *uap, register_t *retval) { /* { syscallarg(lwpid_t) target; } */ struct sys__lwp_detach_args ua; NETBSD32TO64_UAP(target); return sys__lwp_detach(l, &ua, retval); }
int linux32_sys_exit_group(struct lwp *l, const struct linux32_sys_exit_group_args *uap, register_t *retval) { /* { syscallarg(int) error_code; } */ struct linux_sys_exit_group_args ua; NETBSD32TO64_UAP(error_code); return linux_sys_exit_group(l, &ua, retval); }
int linux32_sys_getsockopt(struct lwp *l, const struct linux32_sys_getsockopt_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(int) level; syscallarg(int) optname; syscallarg(netbsd32_voidp) optval; syscallarg(netbsd32_intp) optlen; } */ struct linux_sys_getsockopt_args ua; NETBSD32TO64_UAP(s); NETBSD32TO64_UAP(level); NETBSD32TO64_UAP(optname); NETBSD32TOP_UAP(optval, void); NETBSD32TOP_UAP(optlen, int); return linux_sys_getsockopt(l, &ua, retval); }
int linux32_sys_llseek(struct lwp *l, const struct linux32_sys_llseek_args *uap, register_t *retval) { /* { syscallcarg(int) fd; syscallarg(u_int32_t) ohigh; syscallarg(u_int32_t) olow; syscallarg(netbsd32_caddr_t) res; syscallcarg(int) whence; } */ struct linux_sys_llseek_args ua; NETBSD32TO64_UAP(fd); NETBSD32TO64_UAP(ohigh); NETBSD32TO64_UAP(olow); NETBSD32TOP_UAP(res, char); NETBSD32TO64_UAP(whence); return linux_sys_llseek(l, &ua, retval); }
int netbsd32_timer_getoverrun(struct lwp *l, const struct netbsd32_timer_getoverrun_args *uap, register_t *retval) { /* { syscallarg(netbsd32_timer_t) timerid; } */ struct sys_timer_getoverrun_args ua; NETBSD32TO64_UAP(timerid); return sys_timer_getoverrun(l, (void *)&ua, retval); }
int linux32_sys_sched_getscheduler(struct lwp *l, const struct linux32_sys_sched_getscheduler_args *uap, register_t *retval) { /* { syscallarg(pid_t) pid; } */ struct linux_sys_sched_getscheduler_args ua; NETBSD32TO64_UAP(pid); return linux_sys_sched_getscheduler(l, &ua, retval); }
int netbsd32_semconfig(struct lwp *l, const struct netbsd32_semconfig_args *uap, register_t *retval) { /* { syscallarg(int) flag; } */ struct sys_semconfig_args ua; NETBSD32TO64_UAP(flag); return (sys_semconfig(l, &ua, retval)); }
int linux32_sys_exit(struct lwp *l, const struct linux32_sys_exit_args *uap, register_t *retval) { /* { syscallarg(int) rval; } */ struct linux_sys_exit_args ua; NETBSD32TO64_UAP(rval); return linux_sys_exit(l, &ua, retval); }
int linux32_sys_sched_get_priority_min(struct lwp *l, const struct linux32_sys_sched_get_priority_min_args *uap, register_t *retval) { /* { syscallarg(int) policy; } */ struct linux_sys_sched_get_priority_min_args ua; NETBSD32TO64_UAP(policy); return linux_sys_sched_get_priority_min(l, &ua, retval); }
int linux32_sys_connect(struct lwp *l, const struct linux32_sys_connect_args *uap, register_t *retval) { /* { syscallarg(int) s; syscallarg(netbsd32_osockaddrp_t) name; syscallarg(int) namelen; } */ struct linux_sys_connect_args ua; NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(name, struct osockaddr) NETBSD32TO64_UAP(namelen); #ifdef DEBUG_LINUX printf("linux32_sys_connect: s = %d, name = %p, namelen = %d\n", SCARG(&ua, s), SCARG(&ua, name), SCARG(&ua, namelen)); #endif return linux_sys_connect(l, &ua, retval); }