1 1.237 christos /* $NetBSD: netbsd32_netbsd.c,v 1.237 2024/05/20 01:30:33 christos Exp $ */ 2 1.1 mrg 3 1.1 mrg /* 4 1.220 mrg * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green 5 1.1 mrg * All rights reserved. 6 1.1 mrg * 7 1.1 mrg * Redistribution and use in source and binary forms, with or without 8 1.1 mrg * modification, are permitted provided that the following conditions 9 1.1 mrg * are met: 10 1.1 mrg * 1. Redistributions of source code must retain the above copyright 11 1.1 mrg * notice, this list of conditions and the following disclaimer. 12 1.1 mrg * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 mrg * notice, this list of conditions and the following disclaimer in the 14 1.1 mrg * documentation and/or other materials provided with the distribution. 15 1.1 mrg * 16 1.1 mrg * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 1.1 mrg * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 1.1 mrg * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 1.1 mrg * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 1.1 mrg * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21 1.1 mrg * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 1.1 mrg * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23 1.1 mrg * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 1.1 mrg * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 1.1 mrg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 1.1 mrg * SUCH DAMAGE. 27 1.1 mrg */ 28 1.62 lukem 29 1.62 lukem #include <sys/cdefs.h> 30 1.237 christos __KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.237 2024/05/20 01:30:33 christos Exp $"); 31 1.223 pgoyette 32 1.223 pgoyette /* 33 1.223 pgoyette * below are all the standard NetBSD system calls, in the 32bit 34 1.223 pgoyette * environment, with the necessary conversions to 64bit before calling 35 1.223 pgoyette * the real syscall. anything that needs special attention is handled 36 1.223 pgoyette * elsewhere - this file should only contain structure assignment and 37 1.223 pgoyette * calls to the original function. 38 1.223 pgoyette */ 39 1.220 mrg 40 1.220 mrg /* 41 1.220 mrg * below are all the standard NetBSD system calls, in the 32bit 42 1.220 mrg * environment, with the necessary conversions to 64bit before calling 43 1.220 mrg * the real syscall. anything that needs special attention is handled 44 1.220 mrg * elsewhere - this file should only contain structure assignment and 45 1.220 mrg * calls to the original function. 46 1.220 mrg */ 47 1.1 mrg 48 1.58 mrg #if defined(_KERNEL_OPT) 49 1.226 christos #include "opt_compat_43.h" 50 1.226 christos #include "opt_compat_netbsd.h" 51 1.28 eeh #include "opt_ddb.h" 52 1.226 christos #include "opt_ktrace.h" 53 1.6 eeh #include "opt_ntp.h" 54 1.225 christos #include "opt_quota.h" 55 1.71 martin #include "opt_syscall_debug.h" 56 1.226 christos #include "opt_sysv.h" 57 1.42 jdolecek #endif 58 1.42 jdolecek 59 1.1 mrg #include <sys/param.h> 60 1.234 rin #include <sys/acct.h> 61 1.234 rin #include <sys/dirent.h> 62 1.234 rin #include <sys/exec.h> 63 1.234 rin #include <sys/file.h> 64 1.234 rin #include <sys/filedesc.h> 65 1.6 eeh #include <sys/kernel.h> 66 1.234 rin #include <sys/ktrace.h> 67 1.234 rin #include <sys/mbuf.h> 68 1.234 rin #include <sys/mman.h> 69 1.1 mrg #include <sys/mount.h> 70 1.234 rin #include <sys/namei.h> 71 1.234 rin #include <sys/pool.h> 72 1.234 rin #include <sys/proc.h> 73 1.234 rin #include <sys/ptrace.h> 74 1.234 rin #include <sys/quotactl.h> 75 1.234 rin #include <sys/resourcevar.h> 76 1.234 rin #include <sys/signalvar.h> 77 1.1 mrg #include <sys/socket.h> 78 1.234 rin #include <sys/socketvar.h> 79 1.1 mrg #include <sys/sockio.h> 80 1.1 mrg #include <sys/stat.h> 81 1.184 manu #include <sys/swap.h> 82 1.234 rin #include <sys/syscallargs.h> 83 1.234 rin #include <sys/systm.h> 84 1.1 mrg #include <sys/time.h> 85 1.6 eeh #include <sys/trace.h> 86 1.153 tron #include <sys/vfs_syscalls.h> 87 1.29 mrg 88 1.29 mrg #include <uvm/uvm_extern.h> 89 1.184 manu #include <uvm/uvm_swap.h> 90 1.29 mrg 91 1.1 mrg #include <net/if.h> 92 1.1 mrg 93 1.10 mrg #include <compat/netbsd32/netbsd32.h> 94 1.234 rin #include <compat/netbsd32/netbsd32_conv.h> 95 1.75 christos #include <compat/netbsd32/netbsd32_exec.h> 96 1.42 jdolecek #include <compat/netbsd32/netbsd32_syscall.h> 97 1.10 mrg #include <compat/netbsd32/netbsd32_syscallargs.h> 98 1.1 mrg 99 1.206 christos #include <compat/sys/mman.h> 100 1.206 christos 101 1.28 eeh #if defined(DDB) 102 1.28 eeh #include <ddb/ddbvar.h> 103 1.28 eeh #endif 104 1.4 eeh 105 1.46 mycroft #ifdef __HAVE_SYSCALL_INTERN 106 1.131 dsl void netbsd32_syscall_intern(struct proc *); 107 1.46 mycroft #else 108 1.131 dsl void syscall(void); 109 1.46 mycroft #endif 110 1.42 jdolecek 111 1.198 pgoyette #ifdef MODULAR 112 1.198 pgoyette #include <compat/netbsd32/netbsd32_syscalls_autoload.c> 113 1.198 pgoyette #endif 114 1.198 pgoyette 115 1.147 ad struct emul emul_netbsd32 = { 116 1.159 rmind .e_name = "netbsd32", 117 1.159 rmind .e_path = "/emul/netbsd32", 118 1.46 mycroft #ifndef __HAVE_MINIMAL_EMUL 119 1.159 rmind .e_flags = 0, 120 1.159 rmind .e_errno = NULL, 121 1.159 rmind .e_nosys = NETBSD32_SYS_netbsd32_syscall, 122 1.159 rmind .e_nsysent = NETBSD32_SYS_NSYSENT, 123 1.46 mycroft #endif 124 1.159 rmind .e_sysent = netbsd32_sysent, 125 1.218 pgoyette .e_nomodbits = netbsd32_sysent_nomodbits, 126 1.42 jdolecek #ifdef SYSCALL_DEBUG 127 1.159 rmind .e_syscallnames = netbsd32_syscallnames, 128 1.42 jdolecek #else 129 1.159 rmind .e_syscallnames = NULL, 130 1.42 jdolecek #endif 131 1.198 pgoyette #ifdef MODULAR 132 1.198 pgoyette .e_sc_autoload = netbsd32_syscalls_autoload, 133 1.198 pgoyette #endif 134 1.159 rmind .e_sendsig = netbsd32_sendsig, 135 1.159 rmind .e_trapsignal = trapsignal, 136 1.159 rmind .e_sigcode = NULL, 137 1.159 rmind .e_esigcode = NULL, 138 1.159 rmind .e_sigobject = NULL, 139 1.159 rmind .e_setregs = netbsd32_setregs, 140 1.159 rmind .e_proc_exec = NULL, 141 1.159 rmind .e_proc_fork = NULL, 142 1.159 rmind .e_proc_exit = NULL, 143 1.159 rmind .e_lwp_fork = NULL, 144 1.159 rmind .e_lwp_exit = NULL, 145 1.46 mycroft #ifdef __HAVE_SYSCALL_INTERN 146 1.159 rmind .e_syscall_intern = netbsd32_syscall_intern, 147 1.46 mycroft #else 148 1.159 rmind .e_syscall = syscall, 149 1.46 mycroft #endif 150 1.159 rmind .e_sysctlovly = &netbsd32_sysctl_root, 151 1.159 rmind .e_vm_default_addr = netbsd32_vm_default_addr, 152 1.159 rmind .e_usertrap = NULL, 153 1.159 rmind .e_ucsize = sizeof(ucontext32_t), 154 1.203 martin .e_startlwp = startlwp32, 155 1.208 christos #ifdef notyet 156 1.208 christos .e_ktrpsig = netbsd32_ktrpsig, 157 1.208 christos #else 158 1.208 christos .e_ktrpsig = NULL, 159 1.208 christos #endif 160 1.42 jdolecek }; 161 1.42 jdolecek 162 1.6 eeh int 163 1.134 dsl netbsd32_exit(struct lwp *l, const struct netbsd32_exit_args *uap, register_t *retval) 164 1.6 eeh { 165 1.134 dsl /* { 166 1.6 eeh syscallarg(int) rval; 167 1.134 dsl } */ 168 1.6 eeh struct sys_exit_args ua; 169 1.6 eeh 170 1.11 mrg NETBSD32TO64_UAP(rval); 171 1.70 thorpej return sys_exit(l, &ua, retval); 172 1.6 eeh } 173 1.6 eeh 174 1.1 mrg int 175 1.134 dsl netbsd32_read(struct lwp *l, const struct netbsd32_read_args *uap, register_t *retval) 176 1.1 mrg { 177 1.134 dsl /* { 178 1.1 mrg syscallarg(int) fd; 179 1.10 mrg syscallarg(netbsd32_voidp) buf; 180 1.10 mrg syscallarg(netbsd32_size_t) nbyte; 181 1.134 dsl } */ 182 1.1 mrg struct sys_read_args ua; 183 1.1 mrg 184 1.232 simonb if (SCARG(uap, nbyte) > NETBSD32_SSIZE_MAX) 185 1.232 simonb return EINVAL; 186 1.232 simonb 187 1.11 mrg NETBSD32TO64_UAP(fd); 188 1.11 mrg NETBSD32TOP_UAP(buf, void *); 189 1.11 mrg NETBSD32TOX_UAP(nbyte, size_t); 190 1.70 thorpej return sys_read(l, &ua, retval); 191 1.1 mrg } 192 1.1 mrg 193 1.1 mrg int 194 1.134 dsl netbsd32_write(struct lwp *l, const struct netbsd32_write_args *uap, register_t *retval) 195 1.1 mrg { 196 1.134 dsl /* { 197 1.1 mrg syscallarg(int) fd; 198 1.10 mrg syscallarg(const netbsd32_voidp) buf; 199 1.10 mrg syscallarg(netbsd32_size_t) nbyte; 200 1.134 dsl } */ 201 1.1 mrg struct sys_write_args ua; 202 1.1 mrg 203 1.232 simonb if (SCARG(uap, nbyte) > NETBSD32_SSIZE_MAX) 204 1.232 simonb return EINVAL; 205 1.232 simonb 206 1.11 mrg NETBSD32TO64_UAP(fd); 207 1.11 mrg NETBSD32TOP_UAP(buf, void *); 208 1.11 mrg NETBSD32TOX_UAP(nbyte, size_t); 209 1.70 thorpej return sys_write(l, &ua, retval); 210 1.6 eeh } 211 1.6 eeh 212 1.6 eeh int 213 1.134 dsl netbsd32_close(struct lwp *l, const struct netbsd32_close_args *uap, register_t *retval) 214 1.6 eeh { 215 1.134 dsl /* { 216 1.6 eeh syscallarg(int) fd; 217 1.134 dsl } */ 218 1.6 eeh struct sys_close_args ua; 219 1.1 mrg 220 1.11 mrg NETBSD32TO64_UAP(fd); 221 1.70 thorpej return sys_close(l, &ua, retval); 222 1.1 mrg } 223 1.1 mrg 224 1.1 mrg int 225 1.134 dsl netbsd32_open(struct lwp *l, const struct netbsd32_open_args *uap, register_t *retval) 226 1.1 mrg { 227 1.134 dsl /* { 228 1.10 mrg syscallarg(const netbsd32_charp) path; 229 1.1 mrg syscallarg(int) flags; 230 1.1 mrg syscallarg(mode_t) mode; 231 1.134 dsl } */ 232 1.1 mrg struct sys_open_args ua; 233 1.1 mrg 234 1.11 mrg NETBSD32TOP_UAP(path, const char); 235 1.11 mrg NETBSD32TO64_UAP(flags); 236 1.11 mrg NETBSD32TO64_UAP(mode); 237 1.193 maxv 238 1.193 maxv return sys_open(l, &ua, retval); 239 1.1 mrg } 240 1.1 mrg 241 1.1 mrg int 242 1.134 dsl netbsd32_link(struct lwp *l, const struct netbsd32_link_args *uap, register_t *retval) 243 1.1 mrg { 244 1.134 dsl /* { 245 1.10 mrg syscallarg(const netbsd32_charp) path; 246 1.10 mrg syscallarg(const netbsd32_charp) link; 247 1.134 dsl } */ 248 1.1 mrg struct sys_link_args ua; 249 1.1 mrg 250 1.11 mrg NETBSD32TOP_UAP(path, const char); 251 1.11 mrg NETBSD32TOP_UAP(link, const char); 252 1.220 mrg return sys_link(l, &ua, retval); 253 1.1 mrg } 254 1.1 mrg 255 1.1 mrg int 256 1.134 dsl netbsd32_unlink(struct lwp *l, const struct netbsd32_unlink_args *uap, register_t *retval) 257 1.1 mrg { 258 1.134 dsl /* { 259 1.10 mrg syscallarg(const netbsd32_charp) path; 260 1.134 dsl } */ 261 1.1 mrg struct sys_unlink_args ua; 262 1.1 mrg 263 1.11 mrg NETBSD32TOP_UAP(path, const char); 264 1.1 mrg 265 1.220 mrg return sys_unlink(l, &ua, retval); 266 1.1 mrg } 267 1.1 mrg 268 1.1 mrg int 269 1.134 dsl netbsd32_chdir(struct lwp *l, const struct netbsd32_chdir_args *uap, register_t *retval) 270 1.1 mrg { 271 1.134 dsl /* { 272 1.10 mrg syscallarg(const netbsd32_charp) path; 273 1.134 dsl } */ 274 1.1 mrg struct sys_chdir_args ua; 275 1.1 mrg 276 1.11 mrg NETBSD32TOP_UAP(path, const char); 277 1.1 mrg 278 1.220 mrg return sys_chdir(l, &ua, retval); 279 1.1 mrg } 280 1.1 mrg 281 1.1 mrg int 282 1.134 dsl netbsd32_fchdir(struct lwp *l, const struct netbsd32_fchdir_args *uap, register_t *retval) 283 1.6 eeh { 284 1.134 dsl /* { 285 1.6 eeh syscallarg(int) fd; 286 1.134 dsl } */ 287 1.6 eeh struct sys_fchdir_args ua; 288 1.6 eeh 289 1.11 mrg NETBSD32TO64_UAP(fd); 290 1.6 eeh 291 1.220 mrg return sys_fchdir(l, &ua, retval); 292 1.6 eeh } 293 1.6 eeh 294 1.6 eeh int 295 1.153 tron netbsd32___mknod50(struct lwp *l, const struct netbsd32___mknod50_args *uap, register_t *retval) 296 1.1 mrg { 297 1.134 dsl /* { 298 1.10 mrg syscallarg(const netbsd32_charp) path; 299 1.1 mrg syscallarg(mode_t) mode; 300 1.156 njoly syscallarg(netbsd32_dev_t) dev; 301 1.134 dsl } */ 302 1.1 mrg 303 1.228 kamil return do_posix_mknodat(l, AT_FDCWD, SCARG_P32(uap, path), 304 1.228 kamil SCARG(uap, mode), SCARG(uap, dev)); 305 1.1 mrg } 306 1.1 mrg 307 1.1 mrg int 308 1.134 dsl netbsd32_chmod(struct lwp *l, const struct netbsd32_chmod_args *uap, register_t *retval) 309 1.1 mrg { 310 1.134 dsl /* { 311 1.10 mrg syscallarg(const netbsd32_charp) path; 312 1.1 mrg syscallarg(mode_t) mode; 313 1.134 dsl } */ 314 1.1 mrg struct sys_chmod_args ua; 315 1.1 mrg 316 1.11 mrg NETBSD32TOP_UAP(path, const char); 317 1.11 mrg NETBSD32TO64_UAP(mode); 318 1.1 mrg 319 1.220 mrg return sys_chmod(l, &ua, retval); 320 1.1 mrg } 321 1.1 mrg 322 1.1 mrg int 323 1.134 dsl netbsd32_chown(struct lwp *l, const struct netbsd32_chown_args *uap, register_t *retval) 324 1.1 mrg { 325 1.134 dsl /* { 326 1.10 mrg syscallarg(const netbsd32_charp) path; 327 1.1 mrg syscallarg(uid_t) uid; 328 1.1 mrg syscallarg(gid_t) gid; 329 1.134 dsl } */ 330 1.1 mrg struct sys_chown_args ua; 331 1.1 mrg 332 1.11 mrg NETBSD32TOP_UAP(path, const char); 333 1.11 mrg NETBSD32TO64_UAP(uid); 334 1.11 mrg NETBSD32TO64_UAP(gid); 335 1.1 mrg 336 1.220 mrg return sys_chown(l, &ua, retval); 337 1.1 mrg } 338 1.1 mrg 339 1.1 mrg int 340 1.134 dsl netbsd32_break(struct lwp *l, const struct netbsd32_break_args *uap, register_t *retval) 341 1.1 mrg { 342 1.134 dsl /* { 343 1.10 mrg syscallarg(netbsd32_charp) nsize; 344 1.134 dsl } */ 345 1.1 mrg struct sys_obreak_args ua; 346 1.1 mrg 347 1.11 mrg NETBSD32TOP_UAP(nsize, char); 348 1.220 mrg 349 1.220 mrg return sys_obreak(l, &ua, retval); 350 1.1 mrg } 351 1.1 mrg 352 1.1 mrg int 353 1.134 dsl netbsd32_unmount(struct lwp *l, const struct netbsd32_unmount_args *uap, register_t *retval) 354 1.1 mrg { 355 1.134 dsl /* { 356 1.10 mrg syscallarg(const netbsd32_charp) path; 357 1.1 mrg syscallarg(int) flags; 358 1.134 dsl } */ 359 1.1 mrg struct sys_unmount_args ua; 360 1.1 mrg 361 1.11 mrg NETBSD32TOP_UAP(path, const char); 362 1.11 mrg NETBSD32TO64_UAP(flags); 363 1.220 mrg 364 1.220 mrg return sys_unmount(l, &ua, retval); 365 1.1 mrg } 366 1.1 mrg 367 1.1 mrg int 368 1.134 dsl netbsd32_setuid(struct lwp *l, const struct netbsd32_setuid_args *uap, register_t *retval) 369 1.6 eeh { 370 1.134 dsl /* { 371 1.6 eeh syscallarg(uid_t) uid; 372 1.134 dsl } */ 373 1.6 eeh struct sys_setuid_args ua; 374 1.6 eeh 375 1.11 mrg NETBSD32TO64_UAP(uid); 376 1.220 mrg 377 1.220 mrg return sys_setuid(l, &ua, retval); 378 1.6 eeh } 379 1.6 eeh 380 1.6 eeh int 381 1.134 dsl netbsd32_accept(struct lwp *l, const struct netbsd32_accept_args *uap, register_t *retval) 382 1.1 mrg { 383 1.134 dsl /* { 384 1.1 mrg syscallarg(int) s; 385 1.10 mrg syscallarg(netbsd32_sockaddrp_t) name; 386 1.10 mrg syscallarg(netbsd32_intp) anamelen; 387 1.134 dsl } */ 388 1.1 mrg struct sys_accept_args ua; 389 1.1 mrg 390 1.11 mrg NETBSD32TO64_UAP(s); 391 1.11 mrg NETBSD32TOP_UAP(name, struct sockaddr); 392 1.103 mrg NETBSD32TOP_UAP(anamelen, socklen_t); 393 1.220 mrg 394 1.220 mrg return sys_accept(l, &ua, retval); 395 1.1 mrg } 396 1.1 mrg 397 1.1 mrg int 398 1.134 dsl netbsd32_getpeername(struct lwp *l, const struct netbsd32_getpeername_args *uap, register_t *retval) 399 1.1 mrg { 400 1.134 dsl /* { 401 1.1 mrg syscallarg(int) fdes; 402 1.10 mrg syscallarg(netbsd32_sockaddrp_t) asa; 403 1.10 mrg syscallarg(netbsd32_intp) alen; 404 1.134 dsl } */ 405 1.1 mrg struct sys_getpeername_args ua; 406 1.1 mrg 407 1.11 mrg NETBSD32TO64_UAP(fdes); 408 1.11 mrg NETBSD32TOP_UAP(asa, struct sockaddr); 409 1.103 mrg NETBSD32TOP_UAP(alen, socklen_t); 410 1.6 eeh /* NB: do the protocol specific sockaddrs need to be converted? */ 411 1.220 mrg 412 1.220 mrg return sys_getpeername(l, &ua, retval); 413 1.1 mrg } 414 1.1 mrg 415 1.1 mrg int 416 1.134 dsl netbsd32_getsockname(struct lwp *l, const struct netbsd32_getsockname_args *uap, register_t *retval) 417 1.1 mrg { 418 1.134 dsl /* { 419 1.1 mrg syscallarg(int) fdes; 420 1.10 mrg syscallarg(netbsd32_sockaddrp_t) asa; 421 1.10 mrg syscallarg(netbsd32_intp) alen; 422 1.134 dsl } */ 423 1.1 mrg struct sys_getsockname_args ua; 424 1.1 mrg 425 1.11 mrg NETBSD32TO64_UAP(fdes); 426 1.11 mrg NETBSD32TOP_UAP(asa, struct sockaddr); 427 1.103 mrg NETBSD32TOP_UAP(alen, socklen_t); 428 1.220 mrg 429 1.220 mrg return sys_getsockname(l, &ua, retval); 430 1.1 mrg } 431 1.1 mrg 432 1.1 mrg int 433 1.134 dsl netbsd32_access(struct lwp *l, const struct netbsd32_access_args *uap, register_t *retval) 434 1.1 mrg { 435 1.134 dsl /* { 436 1.10 mrg syscallarg(const netbsd32_charp) path; 437 1.1 mrg syscallarg(int) flags; 438 1.134 dsl } */ 439 1.1 mrg struct sys_access_args ua; 440 1.1 mrg 441 1.11 mrg NETBSD32TOP_UAP(path, const char); 442 1.11 mrg NETBSD32TO64_UAP(flags); 443 1.1 mrg 444 1.123 dsl return sys_access(l, &ua, retval); 445 1.1 mrg } 446 1.1 mrg 447 1.1 mrg int 448 1.134 dsl netbsd32_chflags(struct lwp *l, const struct netbsd32_chflags_args *uap, register_t *retval) 449 1.1 mrg { 450 1.134 dsl /* { 451 1.10 mrg syscallarg(const netbsd32_charp) path; 452 1.10 mrg syscallarg(netbsd32_u_long) flags; 453 1.134 dsl } */ 454 1.1 mrg struct sys_chflags_args ua; 455 1.1 mrg 456 1.11 mrg NETBSD32TOP_UAP(path, const char); 457 1.11 mrg NETBSD32TO64_UAP(flags); 458 1.1 mrg 459 1.220 mrg return sys_chflags(l, &ua, retval); 460 1.1 mrg } 461 1.1 mrg 462 1.1 mrg int 463 1.134 dsl netbsd32_fchflags(struct lwp *l, const struct netbsd32_fchflags_args *uap, register_t *retval) 464 1.1 mrg { 465 1.134 dsl /* { 466 1.1 mrg syscallarg(int) fd; 467 1.10 mrg syscallarg(netbsd32_u_long) flags; 468 1.134 dsl } */ 469 1.1 mrg struct sys_fchflags_args ua; 470 1.1 mrg 471 1.11 mrg NETBSD32TO64_UAP(fd); 472 1.11 mrg NETBSD32TO64_UAP(flags); 473 1.1 mrg 474 1.220 mrg return sys_fchflags(l, &ua, retval); 475 1.1 mrg } 476 1.1 mrg 477 1.1 mrg int 478 1.134 dsl netbsd32_lchflags(struct lwp *l, const struct netbsd32_lchflags_args *uap, register_t *retval) 479 1.50 mrg { 480 1.134 dsl /* { 481 1.81 mrg syscallarg(const char *) path; 482 1.50 mrg syscallarg(netbsd32_u_long) flags; 483 1.134 dsl } */ 484 1.50 mrg struct sys_lchflags_args ua; 485 1.50 mrg 486 1.50 mrg NETBSD32TOP_UAP(path, const char); 487 1.50 mrg NETBSD32TO64_UAP(flags); 488 1.50 mrg 489 1.220 mrg return sys_lchflags(l, &ua, retval); 490 1.50 mrg } 491 1.50 mrg 492 1.50 mrg int 493 1.134 dsl netbsd32_kill(struct lwp *l, const struct netbsd32_kill_args *uap, register_t *retval) 494 1.6 eeh { 495 1.134 dsl /* { 496 1.6 eeh syscallarg(int) pid; 497 1.6 eeh syscallarg(int) signum; 498 1.134 dsl } */ 499 1.6 eeh struct sys_kill_args ua; 500 1.6 eeh 501 1.11 mrg NETBSD32TO64_UAP(pid); 502 1.11 mrg NETBSD32TO64_UAP(signum); 503 1.6 eeh 504 1.220 mrg return sys_kill(l, &ua, retval); 505 1.6 eeh } 506 1.6 eeh 507 1.6 eeh int 508 1.134 dsl netbsd32_dup(struct lwp *l, const struct netbsd32_dup_args *uap, register_t *retval) 509 1.6 eeh { 510 1.134 dsl /* { 511 1.6 eeh syscallarg(int) fd; 512 1.134 dsl } */ 513 1.6 eeh struct sys_dup_args ua; 514 1.6 eeh 515 1.11 mrg NETBSD32TO64_UAP(fd); 516 1.6 eeh 517 1.220 mrg return sys_dup(l, &ua, retval); 518 1.6 eeh } 519 1.6 eeh 520 1.6 eeh int 521 1.134 dsl netbsd32_profil(struct lwp *l, const struct netbsd32_profil_args *uap, register_t *retval) 522 1.1 mrg { 523 1.134 dsl /* { 524 1.154 njoly syscallarg(netbsd32_voidp) samples; 525 1.10 mrg syscallarg(netbsd32_size_t) size; 526 1.10 mrg syscallarg(netbsd32_u_long) offset; 527 1.1 mrg syscallarg(u_int) scale; 528 1.134 dsl } */ 529 1.1 mrg struct sys_profil_args ua; 530 1.1 mrg 531 1.120 dsl NETBSD32TOP_UAP(samples, void *); 532 1.11 mrg NETBSD32TOX_UAP(size, size_t); 533 1.11 mrg NETBSD32TOX_UAP(offset, u_long); 534 1.11 mrg NETBSD32TO64_UAP(scale); 535 1.220 mrg 536 1.220 mrg return sys_profil(l, &ua, retval); 537 1.1 mrg } 538 1.1 mrg 539 1.1 mrg int 540 1.134 dsl netbsd32_ktrace(struct lwp *l, const struct netbsd32_ktrace_args *uap, register_t *retval) 541 1.1 mrg { 542 1.134 dsl /* { 543 1.10 mrg syscallarg(const netbsd32_charp) fname; 544 1.1 mrg syscallarg(int) ops; 545 1.1 mrg syscallarg(int) facs; 546 1.1 mrg syscallarg(int) pid; 547 1.134 dsl } */ 548 1.1 mrg struct sys_ktrace_args ua; 549 1.1 mrg 550 1.11 mrg NETBSD32TOP_UAP(fname, const char); 551 1.11 mrg NETBSD32TO64_UAP(ops); 552 1.11 mrg NETBSD32TO64_UAP(facs); 553 1.11 mrg NETBSD32TO64_UAP(pid); 554 1.220 mrg 555 1.220 mrg return sys_ktrace(l, &ua, retval); 556 1.1 mrg } 557 1.50 mrg 558 1.50 mrg int 559 1.134 dsl netbsd32_utrace(struct lwp *l, const struct netbsd32_utrace_args *uap, register_t *retval) 560 1.50 mrg { 561 1.134 dsl /* { 562 1.50 mrg syscallarg(const netbsd32_charp) label; 563 1.50 mrg syscallarg(netbsd32_voidp) addr; 564 1.50 mrg syscallarg(netbsd32_size_t) len; 565 1.134 dsl } */ 566 1.50 mrg struct sys_utrace_args ua; 567 1.50 mrg 568 1.50 mrg NETBSD32TOP_UAP(label, const char); 569 1.50 mrg NETBSD32TOP_UAP(addr, void); 570 1.50 mrg NETBSD32TO64_UAP(len); 571 1.220 mrg 572 1.220 mrg return sys_utrace(l, &ua, retval); 573 1.50 mrg } 574 1.1 mrg 575 1.1 mrg int 576 1.134 dsl netbsd32___getlogin(struct lwp *l, const struct netbsd32___getlogin_args *uap, register_t *retval) 577 1.1 mrg { 578 1.134 dsl /* { 579 1.10 mrg syscallarg(netbsd32_charp) namebuf; 580 1.1 mrg syscallarg(u_int) namelen; 581 1.134 dsl } */ 582 1.1 mrg struct sys___getlogin_args ua; 583 1.1 mrg 584 1.11 mrg NETBSD32TOP_UAP(namebuf, char); 585 1.11 mrg NETBSD32TO64_UAP(namelen); 586 1.220 mrg 587 1.220 mrg return sys___getlogin(l, &ua, retval); 588 1.1 mrg } 589 1.1 mrg 590 1.1 mrg int 591 1.134 dsl netbsd32_setlogin(struct lwp *l, const struct netbsd32_setlogin_args *uap, register_t *retval) 592 1.1 mrg { 593 1.134 dsl /* { 594 1.10 mrg syscallarg(const netbsd32_charp) namebuf; 595 1.134 dsl } */ 596 1.70 thorpej struct sys___setlogin_args ua; 597 1.1 mrg 598 1.11 mrg NETBSD32TOP_UAP(namebuf, char); 599 1.220 mrg 600 1.220 mrg return sys___setlogin(l, &ua, retval); 601 1.1 mrg } 602 1.1 mrg 603 1.1 mrg int 604 1.134 dsl netbsd32_acct(struct lwp *l, const struct netbsd32_acct_args *uap, register_t *retval) 605 1.1 mrg { 606 1.134 dsl /* { 607 1.10 mrg syscallarg(const netbsd32_charp) path; 608 1.134 dsl } */ 609 1.1 mrg struct sys_acct_args ua; 610 1.1 mrg 611 1.11 mrg NETBSD32TOP_UAP(path, const char); 612 1.220 mrg 613 1.220 mrg return sys_acct(l, &ua, retval); 614 1.1 mrg } 615 1.1 mrg 616 1.1 mrg int 617 1.134 dsl netbsd32_revoke(struct lwp *l, const struct netbsd32_revoke_args *uap, register_t *retval) 618 1.1 mrg { 619 1.134 dsl /* { 620 1.10 mrg syscallarg(const netbsd32_charp) path; 621 1.134 dsl } */ 622 1.1 mrg struct sys_revoke_args ua; 623 1.1 mrg 624 1.11 mrg NETBSD32TOP_UAP(path, const char); 625 1.1 mrg 626 1.220 mrg return sys_revoke(l, &ua, retval); 627 1.1 mrg } 628 1.1 mrg 629 1.1 mrg int 630 1.134 dsl netbsd32_symlink(struct lwp *l, const struct netbsd32_symlink_args *uap, register_t *retval) 631 1.1 mrg { 632 1.134 dsl /* { 633 1.10 mrg syscallarg(const netbsd32_charp) path; 634 1.10 mrg syscallarg(const netbsd32_charp) link; 635 1.134 dsl } */ 636 1.1 mrg struct sys_symlink_args ua; 637 1.1 mrg 638 1.11 mrg NETBSD32TOP_UAP(path, const char); 639 1.11 mrg NETBSD32TOP_UAP(link, const char); 640 1.1 mrg 641 1.220 mrg return sys_symlink(l, &ua, retval); 642 1.1 mrg } 643 1.1 mrg 644 1.1 mrg int 645 1.134 dsl netbsd32_readlink(struct lwp *l, const struct netbsd32_readlink_args *uap, register_t *retval) 646 1.1 mrg { 647 1.134 dsl /* { 648 1.10 mrg syscallarg(const netbsd32_charp) path; 649 1.10 mrg syscallarg(netbsd32_charp) buf; 650 1.10 mrg syscallarg(netbsd32_size_t) count; 651 1.134 dsl } */ 652 1.1 mrg struct sys_readlink_args ua; 653 1.1 mrg 654 1.11 mrg NETBSD32TOP_UAP(path, const char); 655 1.11 mrg NETBSD32TOP_UAP(buf, char); 656 1.11 mrg NETBSD32TOX_UAP(count, size_t); 657 1.1 mrg 658 1.220 mrg return sys_readlink(l, &ua, retval); 659 1.1 mrg } 660 1.1 mrg 661 1.1 mrg int 662 1.134 dsl netbsd32_umask(struct lwp *l, const struct netbsd32_umask_args *uap, register_t *retval) 663 1.6 eeh { 664 1.134 dsl /* { 665 1.6 eeh syscallarg(mode_t) newmask; 666 1.134 dsl } */ 667 1.6 eeh struct sys_umask_args ua; 668 1.6 eeh 669 1.11 mrg NETBSD32TO64_UAP(newmask); 670 1.220 mrg 671 1.220 mrg return sys_umask(l, &ua, retval); 672 1.6 eeh } 673 1.6 eeh 674 1.6 eeh int 675 1.134 dsl netbsd32_chroot(struct lwp *l, const struct netbsd32_chroot_args *uap, register_t *retval) 676 1.1 mrg { 677 1.134 dsl /* { 678 1.10 mrg syscallarg(const netbsd32_charp) path; 679 1.134 dsl } */ 680 1.1 mrg struct sys_chroot_args ua; 681 1.1 mrg 682 1.11 mrg NETBSD32TOP_UAP(path, const char); 683 1.220 mrg 684 1.220 mrg return sys_chroot(l, &ua, retval); 685 1.1 mrg } 686 1.1 mrg 687 1.1 mrg int 688 1.134 dsl netbsd32_munmap(struct lwp *l, const struct netbsd32_munmap_args *uap, register_t *retval) 689 1.1 mrg { 690 1.134 dsl /* { 691 1.10 mrg syscallarg(netbsd32_voidp) addr; 692 1.10 mrg syscallarg(netbsd32_size_t) len; 693 1.134 dsl } */ 694 1.1 mrg struct sys_munmap_args ua; 695 1.1 mrg 696 1.11 mrg NETBSD32TOP_UAP(addr, void); 697 1.11 mrg NETBSD32TOX_UAP(len, size_t); 698 1.220 mrg 699 1.220 mrg return sys_munmap(l, &ua, retval); 700 1.1 mrg } 701 1.1 mrg 702 1.1 mrg int 703 1.134 dsl netbsd32_mprotect(struct lwp *l, const struct netbsd32_mprotect_args *uap, register_t *retval) 704 1.1 mrg { 705 1.134 dsl /* { 706 1.10 mrg syscallarg(netbsd32_voidp) addr; 707 1.10 mrg syscallarg(netbsd32_size_t) len; 708 1.1 mrg syscallarg(int) prot; 709 1.134 dsl } */ 710 1.1 mrg struct sys_mprotect_args ua; 711 1.1 mrg 712 1.11 mrg NETBSD32TOP_UAP(addr, void); 713 1.11 mrg NETBSD32TOX_UAP(len, size_t); 714 1.11 mrg NETBSD32TO64_UAP(prot); 715 1.220 mrg 716 1.220 mrg return sys_mprotect(l, &ua, retval); 717 1.1 mrg } 718 1.1 mrg 719 1.1 mrg int 720 1.134 dsl netbsd32_madvise(struct lwp *l, const struct netbsd32_madvise_args *uap, register_t *retval) 721 1.1 mrg { 722 1.134 dsl /* { 723 1.10 mrg syscallarg(netbsd32_voidp) addr; 724 1.10 mrg syscallarg(netbsd32_size_t) len; 725 1.1 mrg syscallarg(int) behav; 726 1.134 dsl } */ 727 1.1 mrg struct sys_madvise_args ua; 728 1.1 mrg 729 1.11 mrg NETBSD32TOP_UAP(addr, void); 730 1.11 mrg NETBSD32TOX_UAP(len, size_t); 731 1.11 mrg NETBSD32TO64_UAP(behav); 732 1.220 mrg 733 1.220 mrg return sys_madvise(l, &ua, retval); 734 1.1 mrg } 735 1.1 mrg 736 1.1 mrg int 737 1.134 dsl netbsd32_mincore(struct lwp *l, const struct netbsd32_mincore_args *uap, register_t *retval) 738 1.1 mrg { 739 1.134 dsl /* { 740 1.154 njoly syscallarg(netbsd32_voidp) addr; 741 1.10 mrg syscallarg(netbsd32_size_t) len; 742 1.10 mrg syscallarg(netbsd32_charp) vec; 743 1.134 dsl } */ 744 1.1 mrg struct sys_mincore_args ua; 745 1.1 mrg 746 1.120 dsl NETBSD32TOP_UAP(addr, void *); 747 1.11 mrg NETBSD32TOX_UAP(len, size_t); 748 1.11 mrg NETBSD32TOP_UAP(vec, char); 749 1.220 mrg 750 1.220 mrg return sys_mincore(l, &ua, retval); 751 1.1 mrg } 752 1.1 mrg 753 1.1 mrg int 754 1.134 dsl netbsd32_getgroups(struct lwp *l, const struct netbsd32_getgroups_args *uap, register_t *retval) 755 1.1 mrg { 756 1.134 dsl /* { 757 1.1 mrg syscallarg(int) gidsetsize; 758 1.10 mrg syscallarg(netbsd32_gid_tp) gidset; 759 1.134 dsl } */ 760 1.124 dsl struct sys_getgroups_args ua; 761 1.124 dsl 762 1.124 dsl /* Since sizeof (gid_t) == sizeof (netbsd32_gid_t) ... */ 763 1.1 mrg 764 1.124 dsl NETBSD32TO64_UAP(gidsetsize); 765 1.124 dsl NETBSD32TOP_UAP(gidset, gid_t); 766 1.220 mrg 767 1.220 mrg return sys_getgroups(l, &ua, retval); 768 1.1 mrg } 769 1.1 mrg 770 1.1 mrg int 771 1.134 dsl netbsd32_setgroups(struct lwp *l, const struct netbsd32_setgroups_args *uap, register_t *retval) 772 1.1 mrg { 773 1.134 dsl /* { 774 1.1 mrg syscallarg(int) gidsetsize; 775 1.10 mrg syscallarg(const netbsd32_gid_tp) gidset; 776 1.134 dsl } */ 777 1.1 mrg struct sys_setgroups_args ua; 778 1.1 mrg 779 1.11 mrg NETBSD32TO64_UAP(gidsetsize); 780 1.11 mrg NETBSD32TOP_UAP(gidset, gid_t); 781 1.220 mrg 782 1.220 mrg return sys_setgroups(l, &ua, retval); 783 1.1 mrg } 784 1.1 mrg 785 1.1 mrg int 786 1.134 dsl netbsd32_setpgid(struct lwp *l, const struct netbsd32_setpgid_args *uap, register_t *retval) 787 1.6 eeh { 788 1.134 dsl /* { 789 1.6 eeh syscallarg(int) pid; 790 1.6 eeh syscallarg(int) pgid; 791 1.134 dsl } */ 792 1.6 eeh struct sys_setpgid_args ua; 793 1.6 eeh 794 1.11 mrg NETBSD32TO64_UAP(pid); 795 1.11 mrg NETBSD32TO64_UAP(pgid); 796 1.220 mrg 797 1.220 mrg return sys_setpgid(l, &ua, retval); 798 1.6 eeh } 799 1.6 eeh 800 1.1 mrg int 801 1.134 dsl netbsd32_fcntl(struct lwp *l, const struct netbsd32_fcntl_args *uap, register_t *retval) 802 1.1 mrg { 803 1.134 dsl /* { 804 1.1 mrg syscallarg(int) fd; 805 1.1 mrg syscallarg(int) cmd; 806 1.10 mrg syscallarg(netbsd32_voidp) arg; 807 1.134 dsl } */ 808 1.1 mrg struct sys_fcntl_args ua; 809 1.1 mrg 810 1.11 mrg NETBSD32TO64_UAP(fd); 811 1.11 mrg NETBSD32TO64_UAP(cmd); 812 1.220 mrg /* we can do this because `struct flock' doesn't change */ 813 1.11 mrg NETBSD32TOP_UAP(arg, void); 814 1.220 mrg 815 1.220 mrg return sys_fcntl(l, &ua, retval); 816 1.1 mrg } 817 1.1 mrg 818 1.1 mrg int 819 1.134 dsl netbsd32_dup2(struct lwp *l, const struct netbsd32_dup2_args *uap, register_t *retval) 820 1.6 eeh { 821 1.134 dsl /* { 822 1.6 eeh syscallarg(int) from; 823 1.6 eeh syscallarg(int) to; 824 1.134 dsl } */ 825 1.6 eeh struct sys_dup2_args ua; 826 1.6 eeh 827 1.11 mrg NETBSD32TO64_UAP(from); 828 1.11 mrg NETBSD32TO64_UAP(to); 829 1.220 mrg 830 1.220 mrg return sys_dup2(l, &ua, retval); 831 1.6 eeh } 832 1.6 eeh 833 1.6 eeh int 834 1.134 dsl netbsd32_fsync(struct lwp *l, const struct netbsd32_fsync_args *uap, register_t *retval) 835 1.6 eeh { 836 1.134 dsl /* { 837 1.6 eeh syscallarg(int) fd; 838 1.134 dsl } */ 839 1.6 eeh struct sys_fsync_args ua; 840 1.1 mrg 841 1.11 mrg NETBSD32TO64_UAP(fd); 842 1.220 mrg 843 1.220 mrg return sys_fsync(l, &ua, retval); 844 1.6 eeh } 845 1.6 eeh 846 1.6 eeh int 847 1.134 dsl netbsd32_setpriority(struct lwp *l, const struct netbsd32_setpriority_args *uap, register_t *retval) 848 1.6 eeh { 849 1.134 dsl /* { 850 1.6 eeh syscallarg(int) which; 851 1.6 eeh syscallarg(int) who; 852 1.6 eeh syscallarg(int) prio; 853 1.134 dsl } */ 854 1.6 eeh struct sys_setpriority_args ua; 855 1.6 eeh 856 1.11 mrg NETBSD32TO64_UAP(which); 857 1.11 mrg NETBSD32TO64_UAP(who); 858 1.11 mrg NETBSD32TO64_UAP(prio); 859 1.220 mrg 860 1.220 mrg return sys_setpriority(l, &ua, retval); 861 1.6 eeh } 862 1.6 eeh 863 1.6 eeh int 864 1.153 tron netbsd32___socket30(struct lwp *l, const struct netbsd32___socket30_args *uap, register_t *retval) 865 1.105 mrg { 866 1.134 dsl /* { 867 1.105 mrg syscallarg(int) domain; 868 1.105 mrg syscallarg(int) type; 869 1.105 mrg syscallarg(int) protocol; 870 1.134 dsl } */ 871 1.105 mrg struct sys___socket30_args ua; 872 1.105 mrg 873 1.105 mrg NETBSD32TO64_UAP(domain); 874 1.105 mrg NETBSD32TO64_UAP(type); 875 1.105 mrg NETBSD32TO64_UAP(protocol); 876 1.220 mrg 877 1.220 mrg return sys___socket30(l, &ua, retval); 878 1.1 mrg } 879 1.1 mrg 880 1.1 mrg int 881 1.134 dsl netbsd32_connect(struct lwp *l, const struct netbsd32_connect_args *uap, register_t *retval) 882 1.1 mrg { 883 1.134 dsl /* { 884 1.1 mrg syscallarg(int) s; 885 1.10 mrg syscallarg(const netbsd32_sockaddrp_t) name; 886 1.1 mrg syscallarg(int) namelen; 887 1.134 dsl } */ 888 1.1 mrg struct sys_connect_args ua; 889 1.1 mrg 890 1.11 mrg NETBSD32TO64_UAP(s); 891 1.11 mrg NETBSD32TOP_UAP(name, struct sockaddr); 892 1.11 mrg NETBSD32TO64_UAP(namelen); 893 1.220 mrg 894 1.220 mrg return sys_connect(l, &ua, retval); 895 1.1 mrg } 896 1.1 mrg 897 1.6 eeh int 898 1.134 dsl netbsd32_getpriority(struct lwp *l, const struct netbsd32_getpriority_args *uap, register_t *retval) 899 1.6 eeh { 900 1.134 dsl /* { 901 1.6 eeh syscallarg(int) which; 902 1.6 eeh syscallarg(int) who; 903 1.134 dsl } */ 904 1.6 eeh struct sys_getpriority_args ua; 905 1.6 eeh 906 1.11 mrg NETBSD32TO64_UAP(which); 907 1.11 mrg NETBSD32TO64_UAP(who); 908 1.220 mrg 909 1.220 mrg return sys_getpriority(l, &ua, retval); 910 1.6 eeh } 911 1.6 eeh 912 1.1 mrg int 913 1.134 dsl netbsd32_bind(struct lwp *l, const struct netbsd32_bind_args *uap, register_t *retval) 914 1.1 mrg { 915 1.134 dsl /* { 916 1.1 mrg syscallarg(int) s; 917 1.10 mrg syscallarg(const netbsd32_sockaddrp_t) name; 918 1.1 mrg syscallarg(int) namelen; 919 1.134 dsl } */ 920 1.6 eeh struct sys_bind_args ua; 921 1.1 mrg 922 1.11 mrg NETBSD32TO64_UAP(s); 923 1.11 mrg NETBSD32TOP_UAP(name, struct sockaddr); 924 1.11 mrg NETBSD32TO64_UAP(namelen); 925 1.220 mrg 926 1.220 mrg return sys_bind(l, &ua, retval); 927 1.1 mrg } 928 1.1 mrg 929 1.1 mrg int 930 1.134 dsl netbsd32_setsockopt(struct lwp *l, const struct netbsd32_setsockopt_args *uap, register_t *retval) 931 1.1 mrg { 932 1.134 dsl /* { 933 1.1 mrg syscallarg(int) s; 934 1.1 mrg syscallarg(int) level; 935 1.1 mrg syscallarg(int) name; 936 1.10 mrg syscallarg(const netbsd32_voidp) val; 937 1.1 mrg syscallarg(int) valsize; 938 1.134 dsl } */ 939 1.1 mrg struct sys_setsockopt_args ua; 940 1.1 mrg 941 1.11 mrg NETBSD32TO64_UAP(s); 942 1.11 mrg NETBSD32TO64_UAP(level); 943 1.11 mrg NETBSD32TO64_UAP(name); 944 1.11 mrg NETBSD32TOP_UAP(val, void); 945 1.11 mrg NETBSD32TO64_UAP(valsize); 946 1.6 eeh /* may be more efficient to do this inline. */ 947 1.220 mrg 948 1.220 mrg return sys_setsockopt(l, &ua, retval); 949 1.1 mrg } 950 1.1 mrg 951 1.1 mrg int 952 1.134 dsl netbsd32_listen(struct lwp *l, const struct netbsd32_listen_args *uap, register_t *retval) 953 1.6 eeh { 954 1.134 dsl /* { 955 1.6 eeh syscallarg(int) s; 956 1.6 eeh syscallarg(int) backlog; 957 1.134 dsl } */ 958 1.6 eeh struct sys_listen_args ua; 959 1.6 eeh 960 1.11 mrg NETBSD32TO64_UAP(s); 961 1.11 mrg NETBSD32TO64_UAP(backlog); 962 1.220 mrg 963 1.220 mrg return sys_listen(l, &ua, retval); 964 1.6 eeh } 965 1.6 eeh 966 1.6 eeh int 967 1.134 dsl netbsd32_fchown(struct lwp *l, const struct netbsd32_fchown_args *uap, register_t *retval) 968 1.1 mrg { 969 1.134 dsl /* { 970 1.57 mrg syscallarg(int) fd; 971 1.57 mrg syscallarg(uid_t) uid; 972 1.57 mrg syscallarg(gid_t) gid; 973 1.134 dsl } */ 974 1.57 mrg struct sys_fchown_args ua; 975 1.6 eeh 976 1.11 mrg NETBSD32TO64_UAP(fd); 977 1.11 mrg NETBSD32TO64_UAP(uid); 978 1.11 mrg NETBSD32TO64_UAP(gid); 979 1.220 mrg 980 1.220 mrg return sys_fchown(l, &ua, retval); 981 1.6 eeh } 982 1.6 eeh 983 1.6 eeh int 984 1.134 dsl netbsd32_fchmod(struct lwp *l, const struct netbsd32_fchmod_args *uap, register_t *retval) 985 1.6 eeh { 986 1.134 dsl /* { 987 1.6 eeh syscallarg(int) fd; 988 1.6 eeh syscallarg(mode_t) mode; 989 1.134 dsl } */ 990 1.6 eeh struct sys_fchmod_args ua; 991 1.6 eeh 992 1.11 mrg NETBSD32TO64_UAP(fd); 993 1.11 mrg NETBSD32TO64_UAP(mode); 994 1.220 mrg 995 1.220 mrg return sys_fchmod(l, &ua, retval); 996 1.6 eeh } 997 1.6 eeh 998 1.6 eeh int 999 1.134 dsl netbsd32_setreuid(struct lwp *l, const struct netbsd32_setreuid_args *uap, register_t *retval) 1000 1.6 eeh { 1001 1.134 dsl /* { 1002 1.6 eeh syscallarg(uid_t) ruid; 1003 1.6 eeh syscallarg(uid_t) euid; 1004 1.134 dsl } */ 1005 1.6 eeh struct sys_setreuid_args ua; 1006 1.6 eeh 1007 1.11 mrg NETBSD32TO64_UAP(ruid); 1008 1.11 mrg NETBSD32TO64_UAP(euid); 1009 1.220 mrg return sys_setreuid(l, &ua, retval); 1010 1.6 eeh } 1011 1.1 mrg 1012 1.6 eeh int 1013 1.134 dsl netbsd32_setregid(struct lwp *l, const struct netbsd32_setregid_args *uap, register_t *retval) 1014 1.6 eeh { 1015 1.134 dsl /* { 1016 1.6 eeh syscallarg(gid_t) rgid; 1017 1.6 eeh syscallarg(gid_t) egid; 1018 1.134 dsl } */ 1019 1.6 eeh struct sys_setregid_args ua; 1020 1.6 eeh 1021 1.11 mrg NETBSD32TO64_UAP(rgid); 1022 1.11 mrg NETBSD32TO64_UAP(egid); 1023 1.220 mrg 1024 1.220 mrg return sys_setregid(l, &ua, retval); 1025 1.1 mrg } 1026 1.1 mrg 1027 1.1 mrg int 1028 1.134 dsl netbsd32_getsockopt(struct lwp *l, const struct netbsd32_getsockopt_args *uap, register_t *retval) 1029 1.1 mrg { 1030 1.134 dsl /* { 1031 1.1 mrg syscallarg(int) s; 1032 1.1 mrg syscallarg(int) level; 1033 1.1 mrg syscallarg(int) name; 1034 1.10 mrg syscallarg(netbsd32_voidp) val; 1035 1.10 mrg syscallarg(netbsd32_intp) avalsize; 1036 1.134 dsl } */ 1037 1.1 mrg struct sys_getsockopt_args ua; 1038 1.1 mrg 1039 1.11 mrg NETBSD32TO64_UAP(s); 1040 1.11 mrg NETBSD32TO64_UAP(level); 1041 1.11 mrg NETBSD32TO64_UAP(name); 1042 1.11 mrg NETBSD32TOP_UAP(val, void); 1043 1.103 mrg NETBSD32TOP_UAP(avalsize, socklen_t); 1044 1.220 mrg 1045 1.220 mrg return sys_getsockopt(l, &ua, retval); 1046 1.1 mrg } 1047 1.1 mrg 1048 1.1 mrg int 1049 1.217 rjs netbsd32_getsockopt2(struct lwp *l, const struct netbsd32_getsockopt2_args *uap, register_t *retval) 1050 1.217 rjs { 1051 1.217 rjs /* { 1052 1.217 rjs syscallarg(int) s; 1053 1.217 rjs syscallarg(int) level; 1054 1.217 rjs syscallarg(int) name; 1055 1.217 rjs syscallarg(netbsd32_voidp) val; 1056 1.217 rjs syscallarg(netbsd32_intp) avalsize; 1057 1.217 rjs } */ 1058 1.217 rjs struct sys_getsockopt2_args ua; 1059 1.217 rjs 1060 1.217 rjs NETBSD32TO64_UAP(s); 1061 1.217 rjs NETBSD32TO64_UAP(level); 1062 1.217 rjs NETBSD32TO64_UAP(name); 1063 1.217 rjs NETBSD32TOP_UAP(val, void); 1064 1.217 rjs NETBSD32TOP_UAP(avalsize, socklen_t); 1065 1.220 mrg 1066 1.220 mrg return sys_getsockopt2(l, &ua, retval); 1067 1.217 rjs } 1068 1.217 rjs 1069 1.217 rjs int 1070 1.134 dsl netbsd32_rename(struct lwp *l, const struct netbsd32_rename_args *uap, register_t *retval) 1071 1.1 mrg { 1072 1.134 dsl /* { 1073 1.10 mrg syscallarg(const netbsd32_charp) from; 1074 1.10 mrg syscallarg(const netbsd32_charp) to; 1075 1.134 dsl } */ 1076 1.1 mrg struct sys_rename_args ua; 1077 1.1 mrg 1078 1.20 eeh NETBSD32TOP_UAP(from, const char); 1079 1.162 njoly NETBSD32TOP_UAP(to, const char); 1080 1.6 eeh 1081 1.220 mrg return sys_rename(l, &ua, retval); 1082 1.1 mrg } 1083 1.1 mrg 1084 1.1 mrg int 1085 1.134 dsl netbsd32_flock(struct lwp *l, const struct netbsd32_flock_args *uap, register_t *retval) 1086 1.6 eeh { 1087 1.134 dsl /* { 1088 1.6 eeh syscallarg(int) fd; 1089 1.6 eeh syscallarg(int) how; 1090 1.134 dsl } */ 1091 1.6 eeh struct sys_flock_args ua; 1092 1.6 eeh 1093 1.11 mrg NETBSD32TO64_UAP(fd); 1094 1.162 njoly NETBSD32TO64_UAP(how); 1095 1.6 eeh 1096 1.220 mrg return sys_flock(l, &ua, retval); 1097 1.6 eeh } 1098 1.6 eeh 1099 1.6 eeh int 1100 1.134 dsl netbsd32_mkfifo(struct lwp *l, const struct netbsd32_mkfifo_args *uap, register_t *retval) 1101 1.1 mrg { 1102 1.134 dsl /* { 1103 1.10 mrg syscallarg(const netbsd32_charp) path; 1104 1.1 mrg syscallarg(mode_t) mode; 1105 1.134 dsl } */ 1106 1.1 mrg struct sys_mkfifo_args ua; 1107 1.1 mrg 1108 1.162 njoly NETBSD32TOP_UAP(path, const char); 1109 1.11 mrg NETBSD32TO64_UAP(mode); 1110 1.220 mrg 1111 1.220 mrg return sys_mkfifo(l, &ua, retval); 1112 1.1 mrg } 1113 1.1 mrg 1114 1.1 mrg int 1115 1.134 dsl netbsd32_shutdown(struct lwp *l, const struct netbsd32_shutdown_args *uap, register_t *retval) 1116 1.6 eeh { 1117 1.134 dsl /* { 1118 1.6 eeh syscallarg(int) s; 1119 1.6 eeh syscallarg(int) how; 1120 1.134 dsl } */ 1121 1.6 eeh struct sys_shutdown_args ua; 1122 1.6 eeh 1123 1.162 njoly NETBSD32TO64_UAP(s); 1124 1.11 mrg NETBSD32TO64_UAP(how); 1125 1.220 mrg 1126 1.220 mrg return sys_shutdown(l, &ua, retval); 1127 1.6 eeh } 1128 1.6 eeh 1129 1.6 eeh int 1130 1.134 dsl netbsd32_socketpair(struct lwp *l, const struct netbsd32_socketpair_args *uap, register_t *retval) 1131 1.6 eeh { 1132 1.134 dsl /* { 1133 1.6 eeh syscallarg(int) domain; 1134 1.6 eeh syscallarg(int) type; 1135 1.6 eeh syscallarg(int) protocol; 1136 1.10 mrg syscallarg(netbsd32_intp) rsv; 1137 1.134 dsl } */ 1138 1.6 eeh struct sys_socketpair_args ua; 1139 1.6 eeh 1140 1.11 mrg NETBSD32TO64_UAP(domain); 1141 1.11 mrg NETBSD32TO64_UAP(type); 1142 1.11 mrg NETBSD32TO64_UAP(protocol); 1143 1.11 mrg NETBSD32TOP_UAP(rsv, int); 1144 1.220 mrg 1145 1.6 eeh /* Since we're just copying out two `int's we can do this */ 1146 1.220 mrg return sys_socketpair(l, &ua, retval); 1147 1.6 eeh } 1148 1.6 eeh 1149 1.6 eeh int 1150 1.134 dsl netbsd32_mkdir(struct lwp *l, const struct netbsd32_mkdir_args *uap, register_t *retval) 1151 1.1 mrg { 1152 1.134 dsl /* { 1153 1.10 mrg syscallarg(const netbsd32_charp) path; 1154 1.1 mrg syscallarg(mode_t) mode; 1155 1.134 dsl } */ 1156 1.1 mrg struct sys_mkdir_args ua; 1157 1.1 mrg 1158 1.162 njoly NETBSD32TOP_UAP(path, const char); 1159 1.11 mrg NETBSD32TO64_UAP(mode); 1160 1.220 mrg 1161 1.220 mrg return sys_mkdir(l, &ua, retval); 1162 1.1 mrg } 1163 1.1 mrg 1164 1.1 mrg int 1165 1.134 dsl netbsd32_rmdir(struct lwp *l, const struct netbsd32_rmdir_args *uap, register_t *retval) 1166 1.1 mrg { 1167 1.134 dsl /* { 1168 1.10 mrg syscallarg(const netbsd32_charp) path; 1169 1.134 dsl } */ 1170 1.1 mrg struct sys_rmdir_args ua; 1171 1.1 mrg 1172 1.11 mrg NETBSD32TOP_UAP(path, const char); 1173 1.220 mrg 1174 1.220 mrg return sys_rmdir(l, &ua, retval); 1175 1.1 mrg } 1176 1.1 mrg 1177 1.1 mrg int 1178 1.134 dsl netbsd32_pread(struct lwp *l, const struct netbsd32_pread_args *uap, register_t *retval) 1179 1.1 mrg { 1180 1.134 dsl /* { 1181 1.1 mrg syscallarg(int) fd; 1182 1.10 mrg syscallarg(netbsd32_voidp) buf; 1183 1.10 mrg syscallarg(netbsd32_size_t) nbyte; 1184 1.157 pooka syscallarg(int) PAD; 1185 1.186 njoly syscallarg(netbsd32_off_t) offset; 1186 1.134 dsl } */ 1187 1.1 mrg struct sys_pread_args ua; 1188 1.1 mrg 1189 1.232 simonb if (SCARG(uap, nbyte) > NETBSD32_SSIZE_MAX) 1190 1.232 simonb return EINVAL; 1191 1.232 simonb 1192 1.11 mrg NETBSD32TO64_UAP(fd); 1193 1.11 mrg NETBSD32TOP_UAP(buf, void); 1194 1.11 mrg NETBSD32TOX_UAP(nbyte, size_t); 1195 1.157 pooka NETBSD32TO64_UAP(PAD); 1196 1.11 mrg NETBSD32TO64_UAP(offset); 1197 1.220 mrg 1198 1.137 dsl return sys_pread(l, &ua, retval); 1199 1.1 mrg } 1200 1.1 mrg 1201 1.1 mrg int 1202 1.134 dsl netbsd32_pwrite(struct lwp *l, const struct netbsd32_pwrite_args *uap, register_t *retval) 1203 1.1 mrg { 1204 1.134 dsl /* { 1205 1.1 mrg syscallarg(int) fd; 1206 1.10 mrg syscallarg(const netbsd32_voidp) buf; 1207 1.10 mrg syscallarg(netbsd32_size_t) nbyte; 1208 1.157 pooka syscallarg(int) PAD; 1209 1.186 njoly syscallarg(netbsd32_off_t) offset; 1210 1.134 dsl } */ 1211 1.1 mrg struct sys_pwrite_args ua; 1212 1.1 mrg 1213 1.232 simonb if (SCARG(uap, nbyte) > NETBSD32_SSIZE_MAX) 1214 1.232 simonb return EINVAL; 1215 1.232 simonb 1216 1.11 mrg NETBSD32TO64_UAP(fd); 1217 1.11 mrg NETBSD32TOP_UAP(buf, void); 1218 1.11 mrg NETBSD32TOX_UAP(nbyte, size_t); 1219 1.157 pooka NETBSD32TO64_UAP(PAD); 1220 1.11 mrg NETBSD32TO64_UAP(offset); 1221 1.220 mrg 1222 1.137 dsl return sys_pwrite(l, &ua, retval); 1223 1.1 mrg } 1224 1.1 mrg 1225 1.6 eeh int 1226 1.134 dsl netbsd32_setgid(struct lwp *l, const struct netbsd32_setgid_args *uap, register_t *retval) 1227 1.6 eeh { 1228 1.134 dsl /* { 1229 1.6 eeh syscallarg(gid_t) gid; 1230 1.134 dsl } */ 1231 1.6 eeh struct sys_setgid_args ua; 1232 1.6 eeh 1233 1.11 mrg NETBSD32TO64_UAP(gid); 1234 1.220 mrg 1235 1.220 mrg return sys_setgid(l, &ua, retval); 1236 1.6 eeh } 1237 1.6 eeh 1238 1.6 eeh int 1239 1.134 dsl netbsd32_setegid(struct lwp *l, const struct netbsd32_setegid_args *uap, register_t *retval) 1240 1.6 eeh { 1241 1.134 dsl /* { 1242 1.6 eeh syscallarg(gid_t) egid; 1243 1.134 dsl } */ 1244 1.6 eeh struct sys_setegid_args ua; 1245 1.6 eeh 1246 1.11 mrg NETBSD32TO64_UAP(egid); 1247 1.220 mrg 1248 1.220 mrg return sys_setegid(l, &ua, retval); 1249 1.6 eeh } 1250 1.6 eeh 1251 1.6 eeh int 1252 1.134 dsl netbsd32_seteuid(struct lwp *l, const struct netbsd32_seteuid_args *uap, register_t *retval) 1253 1.6 eeh { 1254 1.134 dsl /* { 1255 1.6 eeh syscallarg(gid_t) euid; 1256 1.134 dsl } */ 1257 1.6 eeh struct sys_seteuid_args ua; 1258 1.6 eeh 1259 1.11 mrg NETBSD32TO64_UAP(euid); 1260 1.220 mrg 1261 1.220 mrg return sys_seteuid(l, &ua, retval); 1262 1.1 mrg } 1263 1.1 mrg 1264 1.1 mrg int 1265 1.229 christos netbsd32_lpathconf(struct lwp *l, const struct netbsd32_lpathconf_args *uap, register_t *retval) 1266 1.229 christos { 1267 1.229 christos /* { 1268 1.229 christos syscallarg(netbsd32_charp) path; 1269 1.229 christos syscallarg(int) name; 1270 1.229 christos } */ 1271 1.229 christos struct sys_lpathconf_args ua; 1272 1.229 christos 1273 1.229 christos NETBSD32TOP_UAP(path, const char); 1274 1.229 christos NETBSD32TO64_UAP(name); 1275 1.229 christos 1276 1.229 christos return sys_lpathconf(l, &ua, retval); 1277 1.229 christos } 1278 1.229 christos 1279 1.229 christos int 1280 1.134 dsl netbsd32_pathconf(struct lwp *l, const struct netbsd32_pathconf_args *uap, register_t *retval) 1281 1.1 mrg { 1282 1.134 dsl /* { 1283 1.194 matt syscallarg(netbsd32_charp) path; 1284 1.1 mrg syscallarg(int) name; 1285 1.134 dsl } */ 1286 1.1 mrg struct sys_pathconf_args ua; 1287 1.1 mrg 1288 1.11 mrg NETBSD32TOP_UAP(path, const char); 1289 1.11 mrg NETBSD32TO64_UAP(name); 1290 1.220 mrg 1291 1.137 dsl return sys_pathconf(l, &ua, retval); 1292 1.1 mrg } 1293 1.1 mrg 1294 1.1 mrg int 1295 1.134 dsl netbsd32_fpathconf(struct lwp *l, const struct netbsd32_fpathconf_args *uap, register_t *retval) 1296 1.1 mrg { 1297 1.134 dsl /* { 1298 1.1 mrg syscallarg(int) fd; 1299 1.1 mrg syscallarg(int) name; 1300 1.134 dsl } */ 1301 1.1 mrg struct sys_fpathconf_args ua; 1302 1.1 mrg 1303 1.11 mrg NETBSD32TO64_UAP(fd); 1304 1.11 mrg NETBSD32TO64_UAP(name); 1305 1.221 mrg 1306 1.137 dsl return sys_fpathconf(l, &ua, retval); 1307 1.1 mrg } 1308 1.1 mrg 1309 1.1 mrg int 1310 1.135 dsl netbsd32_mremap(struct lwp *l, const struct netbsd32_mremap_args *uap, register_t *retval) 1311 1.135 dsl { 1312 1.135 dsl /* { 1313 1.135 dsl syscallarg(void *) old_address; 1314 1.135 dsl syscallarg(size_t) old_size; 1315 1.135 dsl syscallarg(void *) new_address; 1316 1.135 dsl syscallarg(size_t) new_size; 1317 1.135 dsl syscallarg(int) flags; 1318 1.135 dsl } */ 1319 1.135 dsl struct sys_mremap_args ua; 1320 1.135 dsl 1321 1.135 dsl NETBSD32TOP_UAP(old_address, void); 1322 1.135 dsl NETBSD32TOX_UAP(old_size, size_t); 1323 1.135 dsl NETBSD32TOP_UAP(new_address, void); 1324 1.135 dsl NETBSD32TOX_UAP(new_size, size_t); 1325 1.135 dsl NETBSD32TO64_UAP(flags); 1326 1.135 dsl 1327 1.135 dsl return sys_mremap(l, &ua, retval); 1328 1.135 dsl } 1329 1.135 dsl 1330 1.135 dsl int 1331 1.134 dsl netbsd32_lseek(struct lwp *l, const struct netbsd32_lseek_args *uap, register_t *retval) 1332 1.6 eeh { 1333 1.134 dsl /* { 1334 1.6 eeh syscallarg(int) fd; 1335 1.157 pooka syscallarg(int) PAD; 1336 1.186 njoly syscallarg(netbsd32_off_t) offset; 1337 1.6 eeh syscallarg(int) whence; 1338 1.134 dsl } */ 1339 1.6 eeh struct sys_lseek_args ua; 1340 1.138 dsl union { 1341 1.138 dsl register_t retval64[2]; 1342 1.138 dsl register32_t retval32[4]; 1343 1.138 dsl } newpos; 1344 1.97 martin int rv; 1345 1.6 eeh 1346 1.11 mrg NETBSD32TO64_UAP(fd); 1347 1.157 pooka NETBSD32TO64_UAP(PAD); 1348 1.11 mrg NETBSD32TO64_UAP(offset); 1349 1.11 mrg NETBSD32TO64_UAP(whence); 1350 1.138 dsl rv = sys_lseek(l, &ua, newpos.retval64); 1351 1.138 dsl 1352 1.138 dsl /* 1353 1.138 dsl * We have to split the 64 bit value into 2 halves which will 1354 1.138 dsl * end up in separate 32 bit registers. 1355 1.138 dsl * This should DTRT on big and little-endian systems provided that 1356 1.138 dsl * gcc's 'strict aliasing' tests don't decide that the retval32[] 1357 1.138 dsl * entries can't have been assigned to, so need not be read! 1358 1.138 dsl */ 1359 1.138 dsl retval[0] = newpos.retval32[0]; 1360 1.138 dsl retval[1] = newpos.retval32[1]; 1361 1.138 dsl 1362 1.97 martin return rv; 1363 1.6 eeh } 1364 1.6 eeh 1365 1.6 eeh int 1366 1.134 dsl netbsd32_truncate(struct lwp *l, const struct netbsd32_truncate_args *uap, register_t *retval) 1367 1.1 mrg { 1368 1.134 dsl /* { 1369 1.10 mrg syscallarg(const netbsd32_charp) path; 1370 1.157 pooka syscallarg(int) PAD; 1371 1.186 njoly syscallarg(netbsd32_off_t) length; 1372 1.134 dsl } */ 1373 1.1 mrg struct sys_truncate_args ua; 1374 1.1 mrg 1375 1.11 mrg NETBSD32TOP_UAP(path, const char); 1376 1.157 pooka NETBSD32TO64_UAP(PAD); 1377 1.11 mrg NETBSD32TO64_UAP(length); 1378 1.220 mrg 1379 1.220 mrg return sys_truncate(l, &ua, retval); 1380 1.1 mrg } 1381 1.1 mrg 1382 1.1 mrg int 1383 1.134 dsl netbsd32_ftruncate(struct lwp *l, const struct netbsd32_ftruncate_args *uap, register_t *retval) 1384 1.6 eeh { 1385 1.134 dsl /* { 1386 1.6 eeh syscallarg(int) fd; 1387 1.157 pooka syscallarg(int) PAD; 1388 1.186 njoly syscallarg(netbsd32_off_t) length; 1389 1.134 dsl } */ 1390 1.6 eeh struct sys_ftruncate_args ua; 1391 1.6 eeh 1392 1.11 mrg NETBSD32TO64_UAP(fd); 1393 1.157 pooka NETBSD32TO64_UAP(PAD); 1394 1.11 mrg NETBSD32TO64_UAP(length); 1395 1.220 mrg 1396 1.220 mrg return sys_ftruncate(l, &ua, retval); 1397 1.6 eeh } 1398 1.6 eeh 1399 1.53 mrg int 1400 1.134 dsl netbsd32_mlock(struct lwp *l, const struct netbsd32_mlock_args *uap, register_t *retval) 1401 1.53 mrg { 1402 1.134 dsl /* { 1403 1.57 mrg syscallarg(const netbsd32_voidp) addr; 1404 1.57 mrg syscallarg(netbsd32_size_t) len; 1405 1.134 dsl } */ 1406 1.57 mrg struct sys_mlock_args ua; 1407 1.53 mrg 1408 1.57 mrg NETBSD32TOP_UAP(addr, const void); 1409 1.57 mrg NETBSD32TO64_UAP(len); 1410 1.220 mrg 1411 1.220 mrg return sys_mlock(l, &ua, retval); 1412 1.53 mrg } 1413 1.53 mrg 1414 1.6 eeh int 1415 1.134 dsl netbsd32_munlock(struct lwp *l, const struct netbsd32_munlock_args *uap, register_t *retval) 1416 1.1 mrg { 1417 1.134 dsl /* { 1418 1.57 mrg syscallarg(const netbsd32_voidp) addr; 1419 1.57 mrg syscallarg(netbsd32_size_t) len; 1420 1.134 dsl } */ 1421 1.1 mrg struct sys_munlock_args ua; 1422 1.1 mrg 1423 1.11 mrg NETBSD32TOP_UAP(addr, const void); 1424 1.11 mrg NETBSD32TO64_UAP(len); 1425 1.220 mrg 1426 1.220 mrg return sys_munlock(l, &ua, retval); 1427 1.1 mrg } 1428 1.1 mrg 1429 1.1 mrg int 1430 1.134 dsl netbsd32_undelete(struct lwp *l, const struct netbsd32_undelete_args *uap, register_t *retval) 1431 1.1 mrg { 1432 1.134 dsl /* { 1433 1.10 mrg syscallarg(const netbsd32_charp) path; 1434 1.134 dsl } */ 1435 1.1 mrg struct sys_undelete_args ua; 1436 1.1 mrg 1437 1.11 mrg NETBSD32TOP_UAP(path, const char); 1438 1.220 mrg 1439 1.220 mrg return sys_undelete(l, &ua, retval); 1440 1.1 mrg } 1441 1.1 mrg 1442 1.6 eeh int 1443 1.134 dsl netbsd32_getpgid(struct lwp *l, const struct netbsd32_getpgid_args *uap, register_t *retval) 1444 1.6 eeh { 1445 1.134 dsl /* { 1446 1.6 eeh syscallarg(pid_t) pid; 1447 1.134 dsl } */ 1448 1.6 eeh struct sys_getpgid_args ua; 1449 1.1 mrg 1450 1.11 mrg NETBSD32TO64_UAP(pid); 1451 1.220 mrg 1452 1.220 mrg return sys_getpgid(l, &ua, retval); 1453 1.1 mrg } 1454 1.1 mrg 1455 1.1 mrg int 1456 1.134 dsl netbsd32_reboot(struct lwp *l, const struct netbsd32_reboot_args *uap, register_t *retval) 1457 1.1 mrg { 1458 1.134 dsl /* { 1459 1.1 mrg syscallarg(int) opt; 1460 1.10 mrg syscallarg(netbsd32_charp) bootstr; 1461 1.134 dsl } */ 1462 1.1 mrg struct sys_reboot_args ua; 1463 1.1 mrg 1464 1.11 mrg NETBSD32TO64_UAP(opt); 1465 1.11 mrg NETBSD32TOP_UAP(bootstr, char); 1466 1.220 mrg 1467 1.220 mrg return sys_reboot(l, &ua, retval); 1468 1.1 mrg } 1469 1.1 mrg 1470 1.100 manu #include <sys/poll.h> 1471 1.1 mrg int 1472 1.134 dsl netbsd32_poll(struct lwp *l, const struct netbsd32_poll_args *uap, register_t *retval) 1473 1.1 mrg { 1474 1.134 dsl /* { 1475 1.10 mrg syscallarg(netbsd32_pollfdp_t) fds; 1476 1.1 mrg syscallarg(u_int) nfds; 1477 1.1 mrg syscallarg(int) timeout; 1478 1.134 dsl } */ 1479 1.1 mrg struct sys_poll_args ua; 1480 1.1 mrg 1481 1.11 mrg NETBSD32TOP_UAP(fds, struct pollfd); 1482 1.11 mrg NETBSD32TO64_UAP(nfds); 1483 1.11 mrg NETBSD32TO64_UAP(timeout); 1484 1.100 manu 1485 1.220 mrg return sys_poll(l, &ua, retval); 1486 1.1 mrg } 1487 1.1 mrg 1488 1.6 eeh int 1489 1.134 dsl netbsd32_fdatasync(struct lwp *l, const struct netbsd32_fdatasync_args *uap, register_t *retval) 1490 1.6 eeh { 1491 1.134 dsl /* { 1492 1.6 eeh syscallarg(int) fd; 1493 1.134 dsl } */ 1494 1.6 eeh struct sys_fdatasync_args ua; 1495 1.6 eeh 1496 1.11 mrg NETBSD32TO64_UAP(fd); 1497 1.220 mrg 1498 1.220 mrg return sys_fdatasync(l, &ua, retval); 1499 1.1 mrg } 1500 1.1 mrg 1501 1.1 mrg int 1502 1.134 dsl netbsd32___posix_rename(struct lwp *l, const struct netbsd32___posix_rename_args *uap, register_t *retval) 1503 1.1 mrg { 1504 1.134 dsl /* { 1505 1.10 mrg syscallarg(const netbsd32_charp) from; 1506 1.10 mrg syscallarg(const netbsd32_charp) to; 1507 1.134 dsl } */ 1508 1.1 mrg struct sys___posix_rename_args ua; 1509 1.1 mrg 1510 1.20 eeh NETBSD32TOP_UAP(from, const char); 1511 1.20 eeh NETBSD32TOP_UAP(to, const char); 1512 1.220 mrg 1513 1.220 mrg return sys___posix_rename(l, &ua, retval); 1514 1.1 mrg } 1515 1.1 mrg 1516 1.215 christos static void 1517 1.215 christos swapent32_cvt(void *p, const struct swapent *se) 1518 1.184 manu { 1519 1.215 christos struct netbsd32_swapent *se32 = p; 1520 1.184 manu 1521 1.215 christos se32->se_dev = se->se_dev; 1522 1.215 christos se32->se_flags = se->se_flags; 1523 1.215 christos se32->se_nblks = se->se_nblks; 1524 1.215 christos se32->se_inuse = se->se_inuse; 1525 1.215 christos se32->se_priority = se->se_priority; 1526 1.215 christos KASSERT(sizeof(se->se_path) <= sizeof(se32->se_path)); 1527 1.215 christos strcpy(se32->se_path, se->se_path); 1528 1.184 manu } 1529 1.184 manu 1530 1.1 mrg int 1531 1.215 christos netbsd32_swapctl(struct lwp *l, const struct netbsd32_swapctl_args *uap, 1532 1.215 christos register_t *retval) 1533 1.1 mrg { 1534 1.134 dsl /* { 1535 1.1 mrg syscallarg(int) cmd; 1536 1.10 mrg syscallarg(const netbsd32_voidp) arg; 1537 1.1 mrg syscallarg(int) misc; 1538 1.134 dsl } */ 1539 1.1 mrg struct sys_swapctl_args ua; 1540 1.1 mrg 1541 1.11 mrg NETBSD32TO64_UAP(cmd); 1542 1.89 chs NETBSD32TOP_UAP(arg, void); 1543 1.11 mrg NETBSD32TO64_UAP(misc); 1544 1.184 manu 1545 1.184 manu /* SWAP_STATS50 and SWAP_STATS13 structures need no translation */ 1546 1.215 christos if (SCARG(&ua, cmd) == SWAP_STATS) { 1547 1.215 christos swapsys_lock(RW_READER); 1548 1.215 christos int error = uvm_swap_stats(SCARG(&ua, arg), SCARG(&ua, misc), 1549 1.215 christos swapent32_cvt, sizeof(struct netbsd32_swapent), retval); 1550 1.215 christos swapsys_unlock(); 1551 1.215 christos return error; 1552 1.215 christos } 1553 1.202 skrll 1554 1.220 mrg return sys_swapctl(l, &ua, retval); 1555 1.1 mrg } 1556 1.1 mrg 1557 1.1 mrg int 1558 1.134 dsl netbsd32_minherit(struct lwp *l, const struct netbsd32_minherit_args *uap, register_t *retval) 1559 1.1 mrg { 1560 1.134 dsl /* { 1561 1.10 mrg syscallarg(netbsd32_voidp) addr; 1562 1.10 mrg syscallarg(netbsd32_size_t) len; 1563 1.1 mrg syscallarg(int) inherit; 1564 1.134 dsl } */ 1565 1.1 mrg struct sys_minherit_args ua; 1566 1.1 mrg 1567 1.11 mrg NETBSD32TOP_UAP(addr, void); 1568 1.11 mrg NETBSD32TOX_UAP(len, size_t); 1569 1.11 mrg NETBSD32TO64_UAP(inherit); 1570 1.220 mrg 1571 1.220 mrg return sys_minherit(l, &ua, retval); 1572 1.1 mrg } 1573 1.1 mrg 1574 1.1 mrg int 1575 1.134 dsl netbsd32_lchmod(struct lwp *l, const struct netbsd32_lchmod_args *uap, register_t *retval) 1576 1.1 mrg { 1577 1.134 dsl /* { 1578 1.10 mrg syscallarg(const netbsd32_charp) path; 1579 1.1 mrg syscallarg(mode_t) mode; 1580 1.134 dsl } */ 1581 1.1 mrg struct sys_lchmod_args ua; 1582 1.1 mrg 1583 1.11 mrg NETBSD32TOP_UAP(path, const char); 1584 1.11 mrg NETBSD32TO64_UAP(mode); 1585 1.220 mrg 1586 1.220 mrg return sys_lchmod(l, &ua, retval); 1587 1.1 mrg } 1588 1.1 mrg 1589 1.1 mrg int 1590 1.134 dsl netbsd32_lchown(struct lwp *l, const struct netbsd32_lchown_args *uap, register_t *retval) 1591 1.1 mrg { 1592 1.134 dsl /* { 1593 1.10 mrg syscallarg(const netbsd32_charp) path; 1594 1.1 mrg syscallarg(uid_t) uid; 1595 1.1 mrg syscallarg(gid_t) gid; 1596 1.134 dsl } */ 1597 1.1 mrg struct sys_lchown_args ua; 1598 1.1 mrg 1599 1.11 mrg NETBSD32TOP_UAP(path, const char); 1600 1.11 mrg NETBSD32TO64_UAP(uid); 1601 1.11 mrg NETBSD32TO64_UAP(gid); 1602 1.220 mrg 1603 1.220 mrg return sys_lchown(l, &ua, retval); 1604 1.1 mrg } 1605 1.1 mrg 1606 1.1 mrg int 1607 1.134 dsl netbsd32___msync13(struct lwp *l, const struct netbsd32___msync13_args *uap, register_t *retval) 1608 1.1 mrg { 1609 1.134 dsl /* { 1610 1.10 mrg syscallarg(netbsd32_voidp) addr; 1611 1.10 mrg syscallarg(netbsd32_size_t) len; 1612 1.1 mrg syscallarg(int) flags; 1613 1.134 dsl } */ 1614 1.1 mrg struct sys___msync13_args ua; 1615 1.1 mrg 1616 1.11 mrg NETBSD32TOP_UAP(addr, void); 1617 1.11 mrg NETBSD32TOX_UAP(len, size_t); 1618 1.11 mrg NETBSD32TO64_UAP(flags); 1619 1.220 mrg 1620 1.220 mrg return sys___msync13(l, &ua, retval); 1621 1.1 mrg } 1622 1.1 mrg 1623 1.1 mrg int 1624 1.134 dsl netbsd32___posix_chown(struct lwp *l, const struct netbsd32___posix_chown_args *uap, register_t *retval) 1625 1.1 mrg { 1626 1.134 dsl /* { 1627 1.10 mrg syscallarg(const netbsd32_charp) path; 1628 1.1 mrg syscallarg(uid_t) uid; 1629 1.1 mrg syscallarg(gid_t) gid; 1630 1.134 dsl } */ 1631 1.1 mrg struct sys___posix_chown_args ua; 1632 1.1 mrg 1633 1.11 mrg NETBSD32TOP_UAP(path, const char); 1634 1.11 mrg NETBSD32TO64_UAP(uid); 1635 1.11 mrg NETBSD32TO64_UAP(gid); 1636 1.220 mrg 1637 1.220 mrg return sys___posix_chown(l, &ua, retval); 1638 1.1 mrg } 1639 1.1 mrg 1640 1.1 mrg int 1641 1.134 dsl netbsd32___posix_fchown(struct lwp *l, const struct netbsd32___posix_fchown_args *uap, register_t *retval) 1642 1.6 eeh { 1643 1.134 dsl /* { 1644 1.6 eeh syscallarg(int) fd; 1645 1.6 eeh syscallarg(uid_t) uid; 1646 1.6 eeh syscallarg(gid_t) gid; 1647 1.134 dsl } */ 1648 1.6 eeh struct sys___posix_fchown_args ua; 1649 1.6 eeh 1650 1.11 mrg NETBSD32TO64_UAP(fd); 1651 1.11 mrg NETBSD32TO64_UAP(uid); 1652 1.11 mrg NETBSD32TO64_UAP(gid); 1653 1.220 mrg 1654 1.220 mrg return sys___posix_fchown(l, &ua, retval); 1655 1.6 eeh } 1656 1.6 eeh 1657 1.6 eeh int 1658 1.134 dsl netbsd32___posix_lchown(struct lwp *l, const struct netbsd32___posix_lchown_args *uap, register_t *retval) 1659 1.1 mrg { 1660 1.134 dsl /* { 1661 1.10 mrg syscallarg(const netbsd32_charp) path; 1662 1.1 mrg syscallarg(uid_t) uid; 1663 1.1 mrg syscallarg(gid_t) gid; 1664 1.134 dsl } */ 1665 1.1 mrg struct sys___posix_lchown_args ua; 1666 1.1 mrg 1667 1.11 mrg NETBSD32TOP_UAP(path, const char); 1668 1.11 mrg NETBSD32TO64_UAP(uid); 1669 1.11 mrg NETBSD32TO64_UAP(gid); 1670 1.220 mrg 1671 1.220 mrg return sys___posix_lchown(l, &ua, retval); 1672 1.1 mrg } 1673 1.1 mrg 1674 1.1 mrg int 1675 1.134 dsl netbsd32_getsid(struct lwp *l, const struct netbsd32_getsid_args *uap, register_t *retval) 1676 1.6 eeh { 1677 1.134 dsl /* { 1678 1.6 eeh syscallarg(pid_t) pid; 1679 1.134 dsl } */ 1680 1.6 eeh struct sys_getsid_args ua; 1681 1.6 eeh 1682 1.11 mrg NETBSD32TO64_UAP(pid); 1683 1.220 mrg 1684 1.220 mrg return sys_getsid(l, &ua, retval); 1685 1.6 eeh } 1686 1.6 eeh 1687 1.6 eeh int 1688 1.134 dsl netbsd32_fktrace(struct lwp *l, const struct netbsd32_fktrace_args *uap, register_t *retval) 1689 1.6 eeh { 1690 1.134 dsl /* { 1691 1.134 dsl syscallarg(int) fd; 1692 1.6 eeh syscallarg(int) ops; 1693 1.6 eeh syscallarg(int) facs; 1694 1.6 eeh syscallarg(int) pid; 1695 1.134 dsl } */ 1696 1.6 eeh struct sys_fktrace_args ua; 1697 1.6 eeh 1698 1.32 mrg NETBSD32TOX_UAP(fd, int); 1699 1.11 mrg NETBSD32TO64_UAP(ops); 1700 1.11 mrg NETBSD32TO64_UAP(facs); 1701 1.11 mrg NETBSD32TO64_UAP(pid); 1702 1.220 mrg 1703 1.220 mrg return sys_fktrace(l, &ua, retval); 1704 1.6 eeh } 1705 1.6 eeh 1706 1.134 dsl int 1707 1.134 dsl netbsd32___sigpending14(struct lwp *l, const struct netbsd32___sigpending14_args *uap, register_t *retval) 1708 1.20 eeh { 1709 1.134 dsl /* { 1710 1.20 eeh syscallarg(sigset_t *) set; 1711 1.134 dsl } */ 1712 1.20 eeh struct sys___sigpending14_args ua; 1713 1.20 eeh 1714 1.20 eeh NETBSD32TOP_UAP(set, sigset_t); 1715 1.220 mrg 1716 1.220 mrg return sys___sigpending14(l, &ua, retval); 1717 1.20 eeh } 1718 1.20 eeh 1719 1.134 dsl int 1720 1.134 dsl netbsd32___sigprocmask14(struct lwp *l, const struct netbsd32___sigprocmask14_args *uap, register_t *retval) 1721 1.20 eeh { 1722 1.134 dsl /* { 1723 1.20 eeh syscallarg(int) how; 1724 1.20 eeh syscallarg(const sigset_t *) set; 1725 1.20 eeh syscallarg(sigset_t *) oset; 1726 1.134 dsl } */ 1727 1.20 eeh struct sys___sigprocmask14_args ua; 1728 1.20 eeh 1729 1.20 eeh NETBSD32TO64_UAP(how); 1730 1.20 eeh NETBSD32TOP_UAP(set, sigset_t); 1731 1.20 eeh NETBSD32TOP_UAP(oset, sigset_t); 1732 1.220 mrg 1733 1.220 mrg return sys___sigprocmask14(l, &ua, retval); 1734 1.20 eeh } 1735 1.20 eeh 1736 1.134 dsl int 1737 1.134 dsl netbsd32___sigsuspend14(struct lwp *l, const struct netbsd32___sigsuspend14_args *uap, register_t *retval) 1738 1.20 eeh { 1739 1.134 dsl /* { 1740 1.20 eeh syscallarg(const sigset_t *) set; 1741 1.134 dsl } */ 1742 1.20 eeh struct sys___sigsuspend14_args ua; 1743 1.20 eeh 1744 1.20 eeh NETBSD32TOP_UAP(set, sigset_t); 1745 1.220 mrg 1746 1.220 mrg return sys___sigsuspend14(l, &ua, retval); 1747 1.171 dsl } 1748 1.20 eeh 1749 1.134 dsl int 1750 1.134 dsl netbsd32_fchroot(struct lwp *l, const struct netbsd32_fchroot_args *uap, register_t *retval) 1751 1.20 eeh { 1752 1.134 dsl /* { 1753 1.20 eeh syscallarg(int) fd; 1754 1.134 dsl } */ 1755 1.20 eeh struct sys_fchroot_args ua; 1756 1.87 perry 1757 1.20 eeh NETBSD32TO64_UAP(fd); 1758 1.220 mrg 1759 1.220 mrg return sys_fchroot(l, &ua, retval); 1760 1.20 eeh } 1761 1.20 eeh 1762 1.20 eeh /* 1763 1.20 eeh * Open a file given a file handle. 1764 1.20 eeh * 1765 1.20 eeh * Check permissions, allocate an open file structure, 1766 1.20 eeh * and call the device open routine if any. 1767 1.20 eeh */ 1768 1.6 eeh int 1769 1.134 dsl netbsd32___fhopen40(struct lwp *l, const struct netbsd32___fhopen40_args *uap, register_t *retval) 1770 1.20 eeh { 1771 1.134 dsl /* { 1772 1.109 martin syscallarg(const netbsd32_pointer_t *) fhp; 1773 1.109 martin syscallarg(netbsd32_size_t) fh_size; 1774 1.20 eeh syscallarg(int) flags; 1775 1.134 dsl } */ 1776 1.109 martin struct sys___fhopen40_args ua; 1777 1.20 eeh 1778 1.20 eeh NETBSD32TOP_UAP(fhp, fhandle_t); 1779 1.109 martin NETBSD32TO64_UAP(fh_size); 1780 1.20 eeh NETBSD32TO64_UAP(flags); 1781 1.220 mrg 1782 1.220 mrg return sys___fhopen40(l, &ua, retval); 1783 1.20 eeh } 1784 1.20 eeh 1785 1.37 martin /* virtual memory syscalls */ 1786 1.213 kamil int 1787 1.213 kamil netbsd32_ovadvise(struct lwp *l, const struct netbsd32_ovadvise_args *uap, register_t *retval) 1788 1.213 kamil { 1789 1.213 kamil /* { 1790 1.213 kamil syscallarg(int) anom; 1791 1.213 kamil } */ 1792 1.213 kamil struct sys_ovadvise_args ua; 1793 1.213 kamil 1794 1.213 kamil NETBSD32TO64_UAP(anom); 1795 1.220 mrg 1796 1.220 mrg return sys_ovadvise(l, &ua, retval); 1797 1.213 kamil } 1798 1.37 martin 1799 1.90 cube int 1800 1.134 dsl netbsd32_uuidgen(struct lwp *l, const struct netbsd32_uuidgen_args *uap, register_t *retval) 1801 1.90 cube { 1802 1.134 dsl /* { 1803 1.90 cube syscallarg(netbsd32_uuidp_t) store; 1804 1.90 cube syscallarg(int) count; 1805 1.134 dsl } */ 1806 1.90 cube struct sys_uuidgen_args ua; 1807 1.90 cube 1808 1.90 cube NETBSD32TOP_UAP(store, struct uuid); 1809 1.90 cube NETBSD32TO64_UAP(count); 1810 1.220 mrg 1811 1.220 mrg return sys_uuidgen(l, &ua, retval); 1812 1.90 cube } 1813 1.91 cube 1814 1.91 cube int 1815 1.134 dsl netbsd32_extattrctl(struct lwp *l, const struct netbsd32_extattrctl_args *uap, register_t *retval) 1816 1.91 cube { 1817 1.134 dsl /* { 1818 1.91 cube syscallarg(const netbsd32_charp) path; 1819 1.91 cube syscallarg(int) cmd; 1820 1.91 cube syscallarg(const netbsd32_charp) filename; 1821 1.91 cube syscallarg(int) attrnamespace; 1822 1.91 cube syscallarg(const netbsd32_charp) attrname; 1823 1.134 dsl } */ 1824 1.91 cube struct sys_extattrctl_args ua; 1825 1.91 cube 1826 1.91 cube NETBSD32TOP_UAP(path, const char); 1827 1.91 cube NETBSD32TO64_UAP(cmd); 1828 1.91 cube NETBSD32TOP_UAP(filename, const char); 1829 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1830 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1831 1.220 mrg 1832 1.91 cube return sys_extattrctl(l, &ua, retval); 1833 1.91 cube } 1834 1.91 cube 1835 1.91 cube int 1836 1.134 dsl netbsd32_extattr_set_fd(struct lwp *l, const struct netbsd32_extattr_set_fd_args *uap, register_t *retval) 1837 1.91 cube { 1838 1.134 dsl /* { 1839 1.91 cube syscallarg(int) fd; 1840 1.91 cube syscallarg(int) attrnamespace; 1841 1.91 cube syscallarg(const netbsd32_charp) attrname; 1842 1.91 cube syscallarg(const netbsd32_voidp) data; 1843 1.91 cube syscallarg(netbsd32_size_t) nbytes; 1844 1.134 dsl } */ 1845 1.91 cube struct sys_extattr_set_fd_args ua; 1846 1.91 cube 1847 1.91 cube NETBSD32TO64_UAP(fd); 1848 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1849 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1850 1.91 cube NETBSD32TOP_UAP(data, const void); 1851 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 1852 1.220 mrg 1853 1.91 cube return sys_extattr_set_fd(l, &ua, retval); 1854 1.91 cube } 1855 1.91 cube 1856 1.91 cube int 1857 1.134 dsl netbsd32_extattr_set_file(struct lwp *l, const struct netbsd32_extattr_set_file_args *uap, register_t *retval) 1858 1.91 cube { 1859 1.134 dsl /* { 1860 1.91 cube syscallarg(const netbsd32_charp) path; 1861 1.91 cube syscallarg(int) attrnamespace; 1862 1.91 cube syscallarg(const netbsd32_charp) attrname; 1863 1.91 cube syscallarg(const netbsd32_voidp) data; 1864 1.91 cube syscallarg(netbsd32_size_t) nbytes; 1865 1.134 dsl } */ 1866 1.91 cube struct sys_extattr_set_file_args ua; 1867 1.91 cube 1868 1.91 cube NETBSD32TOP_UAP(path, const char); 1869 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1870 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1871 1.91 cube NETBSD32TOP_UAP(data, const void); 1872 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 1873 1.220 mrg 1874 1.91 cube return sys_extattr_set_file(l, &ua, retval); 1875 1.91 cube } 1876 1.91 cube 1877 1.91 cube int 1878 1.134 dsl netbsd32_extattr_set_link(struct lwp *l, const struct netbsd32_extattr_set_link_args *uap, register_t *retval) 1879 1.91 cube { 1880 1.134 dsl /* { 1881 1.91 cube syscallarg(const netbsd32_charp) path; 1882 1.91 cube syscallarg(int) attrnamespace; 1883 1.91 cube syscallarg(const netbsd32_charp) attrname; 1884 1.91 cube syscallarg(const netbsd32_voidp) data; 1885 1.91 cube syscallarg(netbsd32_size_t) nbytes; 1886 1.134 dsl } */ 1887 1.91 cube struct sys_extattr_set_link_args ua; 1888 1.91 cube 1889 1.91 cube NETBSD32TOP_UAP(path, const char); 1890 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1891 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1892 1.91 cube NETBSD32TOP_UAP(data, const void); 1893 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 1894 1.220 mrg 1895 1.91 cube return sys_extattr_set_link(l, &ua, retval); 1896 1.91 cube } 1897 1.91 cube 1898 1.91 cube int 1899 1.134 dsl netbsd32_extattr_get_fd(struct lwp *l, const struct netbsd32_extattr_get_fd_args *uap, register_t *retval) 1900 1.91 cube { 1901 1.134 dsl /* { 1902 1.91 cube syscallarg(int) fd; 1903 1.91 cube syscallarg(int) attrnamespace; 1904 1.91 cube syscallarg(const netbsd32_charp) attrname; 1905 1.91 cube syscallarg(netbsd32_voidp) data; 1906 1.91 cube syscallarg(netbsd32_size_t) nbytes; 1907 1.134 dsl } */ 1908 1.91 cube struct sys_extattr_get_fd_args ua; 1909 1.91 cube 1910 1.91 cube NETBSD32TO64_UAP(fd); 1911 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1912 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1913 1.91 cube NETBSD32TOP_UAP(data, void); 1914 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 1915 1.220 mrg 1916 1.91 cube return sys_extattr_get_fd(l, &ua, retval); 1917 1.91 cube } 1918 1.91 cube 1919 1.91 cube int 1920 1.134 dsl netbsd32_extattr_get_file(struct lwp *l, const struct netbsd32_extattr_get_file_args *uap, register_t *retval) 1921 1.91 cube { 1922 1.134 dsl /* { 1923 1.91 cube syscallarg(const netbsd32_charp) path; 1924 1.91 cube syscallarg(int) attrnamespace; 1925 1.91 cube syscallarg(const netbsd32_charp) attrname; 1926 1.91 cube syscallarg(netbsd32_voidp) data; 1927 1.91 cube syscallarg(netbsd32_size_t) nbytes; 1928 1.134 dsl } */ 1929 1.91 cube struct sys_extattr_get_file_args ua; 1930 1.91 cube 1931 1.91 cube NETBSD32TOP_UAP(path, const char); 1932 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1933 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1934 1.91 cube NETBSD32TOP_UAP(data, void); 1935 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 1936 1.220 mrg 1937 1.91 cube return sys_extattr_get_file(l, &ua, retval); 1938 1.91 cube } 1939 1.91 cube 1940 1.91 cube int 1941 1.134 dsl netbsd32_extattr_get_link(struct lwp *l, const struct netbsd32_extattr_get_link_args *uap, register_t *retval) 1942 1.91 cube { 1943 1.134 dsl /* { 1944 1.91 cube syscallarg(const netbsd32_charp) path; 1945 1.91 cube syscallarg(int) attrnamespace; 1946 1.91 cube syscallarg(const netbsd32_charp) attrname; 1947 1.91 cube syscallarg(netbsd32_voidp) data; 1948 1.91 cube syscallarg(netbsd32_size_t) nbytes; 1949 1.134 dsl } */ 1950 1.91 cube struct sys_extattr_get_link_args ua; 1951 1.91 cube 1952 1.91 cube NETBSD32TOP_UAP(path, const char); 1953 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1954 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1955 1.91 cube NETBSD32TOP_UAP(data, void); 1956 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 1957 1.220 mrg 1958 1.91 cube return sys_extattr_get_link(l, &ua, retval); 1959 1.91 cube } 1960 1.91 cube 1961 1.91 cube int 1962 1.134 dsl netbsd32_extattr_delete_fd(struct lwp *l, const struct netbsd32_extattr_delete_fd_args *uap, register_t *retval) 1963 1.91 cube { 1964 1.134 dsl /* { 1965 1.91 cube syscallarg(int) fd; 1966 1.91 cube syscallarg(int) attrnamespace; 1967 1.91 cube syscallarg(const netbsd32_charp) attrname; 1968 1.134 dsl } */ 1969 1.91 cube struct sys_extattr_delete_fd_args ua; 1970 1.91 cube 1971 1.91 cube NETBSD32TO64_UAP(fd); 1972 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1973 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1974 1.220 mrg 1975 1.91 cube return sys_extattr_delete_fd(l, &ua, retval); 1976 1.91 cube } 1977 1.91 cube 1978 1.91 cube int 1979 1.134 dsl netbsd32_extattr_delete_file(struct lwp *l, const struct netbsd32_extattr_delete_file_args *uap, register_t *retval) 1980 1.91 cube { 1981 1.134 dsl /* { 1982 1.91 cube syscallarg(const netbsd32_charp) path; 1983 1.91 cube syscallarg(int) attrnamespace; 1984 1.91 cube syscallarg(const netbsd32_charp) attrname; 1985 1.134 dsl } */ 1986 1.91 cube struct sys_extattr_delete_file_args ua; 1987 1.91 cube 1988 1.91 cube NETBSD32TOP_UAP(path, const char); 1989 1.91 cube NETBSD32TO64_UAP(attrnamespace); 1990 1.91 cube NETBSD32TOP_UAP(attrname, const char); 1991 1.220 mrg 1992 1.91 cube return sys_extattr_delete_file(l, &ua, retval); 1993 1.91 cube } 1994 1.91 cube 1995 1.91 cube int 1996 1.134 dsl netbsd32_extattr_delete_link(struct lwp *l, const struct netbsd32_extattr_delete_link_args *uap, register_t *retval) 1997 1.91 cube { 1998 1.134 dsl /* { 1999 1.91 cube syscallarg(const netbsd32_charp) path; 2000 1.91 cube syscallarg(int) attrnamespace; 2001 1.91 cube syscallarg(const netbsd32_charp) attrname; 2002 1.134 dsl } */ 2003 1.91 cube struct sys_extattr_delete_link_args ua; 2004 1.91 cube 2005 1.91 cube NETBSD32TOP_UAP(path, const char); 2006 1.91 cube NETBSD32TO64_UAP(attrnamespace); 2007 1.91 cube NETBSD32TOP_UAP(attrname, const char); 2008 1.220 mrg 2009 1.91 cube return sys_extattr_delete_link(l, &ua, retval); 2010 1.91 cube } 2011 1.91 cube 2012 1.91 cube int 2013 1.134 dsl netbsd32_extattr_list_fd(struct lwp *l, const struct netbsd32_extattr_list_fd_args *uap, register_t *retval) 2014 1.91 cube { 2015 1.134 dsl /* { 2016 1.91 cube syscallarg(int) fd; 2017 1.91 cube syscallarg(int) attrnamespace; 2018 1.91 cube syscallarg(netbsd32_voidp) data; 2019 1.91 cube syscallarg(netbsd32_size_t) nbytes; 2020 1.134 dsl } */ 2021 1.91 cube struct sys_extattr_list_fd_args ua; 2022 1.91 cube 2023 1.91 cube NETBSD32TO64_UAP(fd); 2024 1.91 cube NETBSD32TO64_UAP(attrnamespace); 2025 1.91 cube NETBSD32TOP_UAP(data, void); 2026 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 2027 1.220 mrg 2028 1.91 cube return sys_extattr_list_fd(l, &ua, retval); 2029 1.91 cube } 2030 1.91 cube 2031 1.91 cube int 2032 1.134 dsl netbsd32_extattr_list_file(struct lwp *l, const struct netbsd32_extattr_list_file_args *uap, register_t *retval) 2033 1.91 cube { 2034 1.134 dsl /* { 2035 1.91 cube syscallarg(const netbsd32_charp) path; 2036 1.91 cube syscallarg(int) attrnamespace; 2037 1.91 cube syscallarg(netbsd32_voidp) data; 2038 1.91 cube syscallarg(netbsd32_size_t) nbytes; 2039 1.134 dsl } */ 2040 1.91 cube struct sys_extattr_list_file_args ua; 2041 1.91 cube 2042 1.91 cube NETBSD32TOP_UAP(path, const char); 2043 1.91 cube NETBSD32TO64_UAP(attrnamespace); 2044 1.91 cube NETBSD32TOP_UAP(data, void); 2045 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 2046 1.220 mrg 2047 1.91 cube return sys_extattr_list_file(l, &ua, retval); 2048 1.91 cube } 2049 1.91 cube 2050 1.91 cube int 2051 1.134 dsl netbsd32_extattr_list_link(struct lwp *l, const struct netbsd32_extattr_list_link_args *uap, register_t *retval) 2052 1.91 cube { 2053 1.134 dsl /* { 2054 1.91 cube syscallarg(const netbsd32_charp) path; 2055 1.91 cube syscallarg(int) attrnamespace; 2056 1.91 cube syscallarg(netbsd32_voidp) data; 2057 1.91 cube syscallarg(netbsd32_size_t) nbytes; 2058 1.134 dsl } */ 2059 1.91 cube struct sys_extattr_list_link_args ua; 2060 1.91 cube 2061 1.91 cube NETBSD32TOP_UAP(path, const char); 2062 1.91 cube NETBSD32TO64_UAP(attrnamespace); 2063 1.91 cube NETBSD32TOP_UAP(data, void); 2064 1.91 cube NETBSD32TOX_UAP(nbytes, size_t); 2065 1.220 mrg 2066 1.91 cube return sys_extattr_list_link(l, &ua, retval); 2067 1.91 cube } 2068 1.92 cube 2069 1.92 cube int 2070 1.134 dsl netbsd32_mlockall(struct lwp *l, const struct netbsd32_mlockall_args *uap, register_t *retval) 2071 1.92 cube { 2072 1.134 dsl /* { 2073 1.92 cube syscallarg(int) flags; 2074 1.134 dsl } */ 2075 1.92 cube struct sys_mlockall_args ua; 2076 1.92 cube 2077 1.92 cube NETBSD32TO64_UAP(flags); 2078 1.220 mrg 2079 1.220 mrg return sys_mlockall(l, &ua, retval); 2080 1.92 cube } 2081 1.93 cube 2082 1.93 cube int 2083 1.134 dsl netbsd32___clone(struct lwp *l, const struct netbsd32___clone_args *uap, register_t *retval) 2084 1.93 cube { 2085 1.134 dsl /* { 2086 1.93 cube syscallarg(int) flags; 2087 1.93 cube syscallarg(netbsd32_voidp) stack; 2088 1.134 dsl } */ 2089 1.93 cube struct sys___clone_args ua; 2090 1.93 cube 2091 1.93 cube NETBSD32TO64_UAP(flags); 2092 1.93 cube NETBSD32TOP_UAP(stack, void); 2093 1.220 mrg 2094 1.93 cube return sys___clone(l, &ua, retval); 2095 1.93 cube } 2096 1.94 cube 2097 1.94 cube int 2098 1.134 dsl netbsd32_fsync_range(struct lwp *l, const struct netbsd32_fsync_range_args *uap, register_t *retval) 2099 1.94 cube { 2100 1.134 dsl /* { 2101 1.94 cube syscallarg(int) fd; 2102 1.94 cube syscallarg(int) flags; 2103 1.94 cube syscallarg(off_t) start; 2104 1.94 cube syscallarg(off_t) length; 2105 1.134 dsl } */ 2106 1.94 cube struct sys_fsync_range_args ua; 2107 1.94 cube 2108 1.94 cube NETBSD32TO64_UAP(fd); 2109 1.94 cube NETBSD32TO64_UAP(flags); 2110 1.94 cube NETBSD32TO64_UAP(start); 2111 1.94 cube NETBSD32TO64_UAP(length); 2112 1.220 mrg 2113 1.220 mrg return sys_fsync_range(l, &ua, retval); 2114 1.94 cube } 2115 1.95 cube 2116 1.95 cube int 2117 1.134 dsl netbsd32_rasctl(struct lwp *l, const struct netbsd32_rasctl_args *uap, register_t *retval) 2118 1.95 cube { 2119 1.134 dsl /* { 2120 1.154 njoly syscallarg(netbsd32_voidp) addr; 2121 1.95 cube syscallarg(netbsd32_size_t) len; 2122 1.95 cube syscallarg(int) op; 2123 1.134 dsl } */ 2124 1.95 cube struct sys_rasctl_args ua; 2125 1.95 cube 2126 1.120 dsl NETBSD32TOP_UAP(addr, void *); 2127 1.95 cube NETBSD32TOX_UAP(len, size_t); 2128 1.95 cube NETBSD32TO64_UAP(op); 2129 1.220 mrg 2130 1.95 cube return sys_rasctl(l, &ua, retval); 2131 1.95 cube } 2132 1.96 cube 2133 1.96 cube int 2134 1.134 dsl netbsd32_setxattr(struct lwp *l, const struct netbsd32_setxattr_args *uap, register_t *retval) 2135 1.96 cube { 2136 1.134 dsl /* { 2137 1.96 cube syscallarg(const netbsd32_charp) path; 2138 1.96 cube syscallarg(const netbsd32_charp) name; 2139 1.96 cube syscallarg(netbsd32_voidp) value; 2140 1.96 cube syscallarg(netbsd32_size_t) size; 2141 1.96 cube syscallarg(int) flags; 2142 1.134 dsl } */ 2143 1.96 cube struct sys_setxattr_args ua; 2144 1.220 mrg 2145 1.96 cube NETBSD32TOP_UAP(path, const char); 2146 1.96 cube NETBSD32TOP_UAP(name, const char); 2147 1.96 cube NETBSD32TOP_UAP(value, void); 2148 1.96 cube NETBSD32TOX_UAP(size, size_t); 2149 1.96 cube NETBSD32TO64_UAP(flags); 2150 1.220 mrg 2151 1.96 cube return sys_setxattr(l, &ua, retval); 2152 1.96 cube } 2153 1.96 cube 2154 1.96 cube int 2155 1.134 dsl netbsd32_lsetxattr(struct lwp *l, const struct netbsd32_lsetxattr_args *uap, register_t *retval) 2156 1.96 cube { 2157 1.134 dsl /* { 2158 1.96 cube syscallarg(const netbsd32_charp) path; 2159 1.96 cube syscallarg(const netbsd32_charp) name; 2160 1.96 cube syscallarg(netbsd32_voidp) value; 2161 1.96 cube syscallarg(netbsd32_size_t) size; 2162 1.96 cube syscallarg(int) flags; 2163 1.134 dsl } */ 2164 1.96 cube struct sys_lsetxattr_args ua; 2165 1.220 mrg 2166 1.96 cube NETBSD32TOP_UAP(path, const char); 2167 1.96 cube NETBSD32TOP_UAP(name, const char); 2168 1.96 cube NETBSD32TOP_UAP(value, void); 2169 1.96 cube NETBSD32TOX_UAP(size, size_t); 2170 1.96 cube NETBSD32TO64_UAP(flags); 2171 1.220 mrg 2172 1.96 cube return sys_lsetxattr(l, &ua, retval); 2173 1.96 cube } 2174 1.96 cube 2175 1.96 cube int 2176 1.134 dsl netbsd32_fsetxattr(struct lwp *l, const struct netbsd32_fsetxattr_args *uap, register_t *retval) 2177 1.96 cube { 2178 1.134 dsl /* { 2179 1.96 cube syscallarg(int) fd; 2180 1.96 cube syscallarg(const netbsd32_charp) name; 2181 1.96 cube syscallarg(netbsd32_voidp) value; 2182 1.96 cube syscallarg(netbsd32_size_t) size; 2183 1.96 cube syscallarg(int) flags; 2184 1.134 dsl } */ 2185 1.96 cube struct sys_fsetxattr_args ua; 2186 1.220 mrg 2187 1.96 cube NETBSD32TO64_UAP(fd); 2188 1.96 cube NETBSD32TOP_UAP(name, const char); 2189 1.96 cube NETBSD32TOP_UAP(value, void); 2190 1.96 cube NETBSD32TOX_UAP(size, size_t); 2191 1.96 cube NETBSD32TO64_UAP(flags); 2192 1.220 mrg 2193 1.96 cube return sys_fsetxattr(l, &ua, retval); 2194 1.96 cube } 2195 1.96 cube 2196 1.96 cube int 2197 1.134 dsl netbsd32_getxattr(struct lwp *l, const struct netbsd32_getxattr_args *uap, register_t *retval) 2198 1.96 cube { 2199 1.134 dsl /* { 2200 1.96 cube syscallarg(const netbsd32_charp) path; 2201 1.96 cube syscallarg(const netbsd32_charp) name; 2202 1.96 cube syscallarg(netbsd32_voidp) value; 2203 1.96 cube syscallarg(netbsd32_size_t) size; 2204 1.134 dsl } */ 2205 1.96 cube struct sys_getxattr_args ua; 2206 1.220 mrg 2207 1.96 cube NETBSD32TOP_UAP(path, const char); 2208 1.96 cube NETBSD32TOP_UAP(name, const char); 2209 1.96 cube NETBSD32TOP_UAP(value, void); 2210 1.96 cube NETBSD32TOX_UAP(size, size_t); 2211 1.220 mrg 2212 1.96 cube return sys_getxattr(l, &ua, retval); 2213 1.96 cube } 2214 1.96 cube 2215 1.96 cube int 2216 1.134 dsl netbsd32_lgetxattr(struct lwp *l, const struct netbsd32_lgetxattr_args *uap, register_t *retval) 2217 1.96 cube { 2218 1.134 dsl /* { 2219 1.96 cube syscallarg(const netbsd32_charp) path; 2220 1.96 cube syscallarg(const netbsd32_charp) name; 2221 1.96 cube syscallarg(netbsd32_voidp) value; 2222 1.96 cube syscallarg(netbsd32_size_t) size; 2223 1.134 dsl } */ 2224 1.96 cube struct sys_lgetxattr_args ua; 2225 1.220 mrg 2226 1.96 cube NETBSD32TOP_UAP(path, const char); 2227 1.96 cube NETBSD32TOP_UAP(name, const char); 2228 1.96 cube NETBSD32TOP_UAP(value, void); 2229 1.96 cube NETBSD32TOX_UAP(size, size_t); 2230 1.220 mrg 2231 1.96 cube return sys_lgetxattr(l, &ua, retval); 2232 1.96 cube } 2233 1.96 cube 2234 1.96 cube int 2235 1.134 dsl netbsd32_fgetxattr(struct lwp *l, const struct netbsd32_fgetxattr_args *uap, register_t *retval) 2236 1.96 cube { 2237 1.134 dsl /* { 2238 1.96 cube syscallarg(int) fd; 2239 1.96 cube syscallarg(const netbsd32_charp) name; 2240 1.96 cube syscallarg(netbsd32_voidp) value; 2241 1.96 cube syscallarg(netbsd32_size_t) size; 2242 1.134 dsl } */ 2243 1.96 cube struct sys_fgetxattr_args ua; 2244 1.220 mrg 2245 1.96 cube NETBSD32TO64_UAP(fd); 2246 1.96 cube NETBSD32TOP_UAP(name, const char); 2247 1.96 cube NETBSD32TOP_UAP(value, void); 2248 1.96 cube NETBSD32TOX_UAP(size, size_t); 2249 1.220 mrg 2250 1.96 cube return sys_fgetxattr(l, &ua, retval); 2251 1.96 cube } 2252 1.96 cube 2253 1.96 cube int 2254 1.134 dsl netbsd32_listxattr(struct lwp *l, const struct netbsd32_listxattr_args *uap, register_t *retval) 2255 1.96 cube { 2256 1.134 dsl /* { 2257 1.96 cube syscallarg(const netbsd32_charp) path; 2258 1.96 cube syscallarg(netbsd32_charp) list; 2259 1.96 cube syscallarg(netbsd32_size_t) size; 2260 1.134 dsl } */ 2261 1.96 cube struct sys_listxattr_args ua; 2262 1.220 mrg 2263 1.96 cube NETBSD32TOP_UAP(path, const char); 2264 1.96 cube NETBSD32TOP_UAP(list, char); 2265 1.96 cube NETBSD32TOX_UAP(size, size_t); 2266 1.220 mrg 2267 1.96 cube return sys_listxattr(l, &ua, retval); 2268 1.96 cube } 2269 1.96 cube 2270 1.96 cube int 2271 1.134 dsl netbsd32_llistxattr(struct lwp *l, const struct netbsd32_llistxattr_args *uap, register_t *retval) 2272 1.96 cube { 2273 1.134 dsl /* { 2274 1.96 cube syscallarg(const netbsd32_charp) path; 2275 1.96 cube syscallarg(netbsd32_charp) list; 2276 1.96 cube syscallarg(netbsd32_size_t) size; 2277 1.134 dsl } */ 2278 1.96 cube struct sys_llistxattr_args ua; 2279 1.220 mrg 2280 1.96 cube NETBSD32TOP_UAP(path, const char); 2281 1.96 cube NETBSD32TOP_UAP(list, char); 2282 1.96 cube NETBSD32TOX_UAP(size, size_t); 2283 1.220 mrg 2284 1.96 cube return sys_llistxattr(l, &ua, retval); 2285 1.96 cube } 2286 1.96 cube 2287 1.96 cube int 2288 1.134 dsl netbsd32_flistxattr(struct lwp *l, const struct netbsd32_flistxattr_args *uap, register_t *retval) 2289 1.96 cube { 2290 1.134 dsl /* { 2291 1.96 cube syscallarg(int) fd; 2292 1.96 cube syscallarg(netbsd32_charp) list; 2293 1.96 cube syscallarg(netbsd32_size_t) size; 2294 1.134 dsl } */ 2295 1.96 cube struct sys_flistxattr_args ua; 2296 1.220 mrg 2297 1.96 cube NETBSD32TO64_UAP(fd); 2298 1.96 cube NETBSD32TOP_UAP(list, char); 2299 1.96 cube NETBSD32TOX_UAP(size, size_t); 2300 1.220 mrg 2301 1.96 cube return sys_flistxattr(l, &ua, retval); 2302 1.96 cube } 2303 1.96 cube 2304 1.96 cube int 2305 1.134 dsl netbsd32_removexattr(struct lwp *l, const struct netbsd32_removexattr_args *uap, register_t *retval) 2306 1.96 cube { 2307 1.134 dsl /* { 2308 1.96 cube syscallarg(const netbsd32_charp) path; 2309 1.96 cube syscallarg(const netbsd32_charp) name; 2310 1.134 dsl } */ 2311 1.96 cube struct sys_removexattr_args ua; 2312 1.220 mrg 2313 1.96 cube NETBSD32TOP_UAP(path, const char); 2314 1.96 cube NETBSD32TOP_UAP(name, const char); 2315 1.220 mrg 2316 1.96 cube return sys_removexattr(l, &ua, retval); 2317 1.96 cube } 2318 1.96 cube 2319 1.96 cube int 2320 1.134 dsl netbsd32_lremovexattr(struct lwp *l, const struct netbsd32_lremovexattr_args *uap, register_t *retval) 2321 1.96 cube { 2322 1.134 dsl /* { 2323 1.96 cube syscallarg(const netbsd32_charp) path; 2324 1.96 cube syscallarg(const netbsd32_charp) name; 2325 1.134 dsl } */ 2326 1.96 cube struct sys_lremovexattr_args ua; 2327 1.96 cube NETBSD32TOP_UAP(path, const char); 2328 1.96 cube NETBSD32TOP_UAP(name, const char); 2329 1.96 cube return sys_lremovexattr(l, &ua, retval); 2330 1.96 cube } 2331 1.96 cube 2332 1.96 cube int 2333 1.134 dsl netbsd32_fremovexattr(struct lwp *l, const struct netbsd32_fremovexattr_args *uap, register_t *retval) 2334 1.96 cube { 2335 1.134 dsl /* { 2336 1.96 cube syscallarg(int) fd; 2337 1.96 cube syscallarg(const netbsd32_charp) name; 2338 1.134 dsl } */ 2339 1.96 cube struct sys_fremovexattr_args ua; 2340 1.220 mrg 2341 1.96 cube NETBSD32TO64_UAP(fd); 2342 1.96 cube NETBSD32TOP_UAP(name, const char); 2343 1.220 mrg 2344 1.96 cube return sys_fremovexattr(l, &ua, retval); 2345 1.96 cube } 2346 1.129 dsl 2347 1.140 martin int 2348 1.140 martin netbsd32___posix_fadvise50(struct lwp *l, 2349 1.141 martin const struct netbsd32___posix_fadvise50_args *uap, register_t *retval) 2350 1.140 martin { 2351 1.140 martin /* { 2352 1.140 martin syscallarg(int) fd; 2353 1.157 pooka syscallarg(int) PAD; 2354 1.186 njoly syscallarg(netbsd32_off_t) offset; 2355 1.186 njoly syscallarg(netbsd32_off_t) len; 2356 1.140 martin syscallarg(int) advice; 2357 1.140 martin } */ 2358 1.140 martin 2359 1.155 skrll *retval = do_posix_fadvise(SCARG(uap, fd), SCARG(uap, offset), 2360 1.143 ad SCARG(uap, len), SCARG(uap, advice)); 2361 1.155 skrll 2362 1.155 skrll return 0; 2363 1.140 martin } 2364 1.136 dsl 2365 1.153 tron int 2366 1.153 tron netbsd32__sched_setparam(struct lwp *l, 2367 1.153 tron const struct netbsd32__sched_setparam_args *uap, 2368 1.153 tron register_t *retval) 2369 1.153 tron { 2370 1.153 tron /* { 2371 1.153 tron syscallarg(pid_t) pid; 2372 1.153 tron syscallarg(lwpid_t) lid; 2373 1.153 tron syscallarg(int) policy; 2374 1.153 tron syscallarg(const netbsd32_sched_paramp_t) params; 2375 1.153 tron } */ 2376 1.153 tron struct sys__sched_setparam_args ua; 2377 1.153 tron 2378 1.153 tron NETBSD32TO64_UAP(pid); 2379 1.153 tron NETBSD32TO64_UAP(lid); 2380 1.153 tron NETBSD32TO64_UAP(policy); 2381 1.153 tron NETBSD32TOP_UAP(params, const struct sched_param *); 2382 1.220 mrg 2383 1.153 tron return sys__sched_setparam(l, &ua, retval); 2384 1.153 tron } 2385 1.153 tron 2386 1.153 tron int 2387 1.153 tron netbsd32__sched_getparam(struct lwp *l, 2388 1.153 tron const struct netbsd32__sched_getparam_args *uap, 2389 1.153 tron register_t *retval) 2390 1.153 tron { 2391 1.153 tron /* { 2392 1.153 tron syscallarg(pid_t) pid; 2393 1.153 tron syscallarg(lwpid_t) lid; 2394 1.153 tron syscallarg(netbsd32_intp) policy; 2395 1.153 tron syscallarg(netbsd32_sched_paramp_t) params; 2396 1.153 tron } */ 2397 1.153 tron struct sys__sched_getparam_args ua; 2398 1.153 tron 2399 1.153 tron NETBSD32TO64_UAP(pid); 2400 1.153 tron NETBSD32TO64_UAP(lid); 2401 1.153 tron NETBSD32TOP_UAP(policy, int *); 2402 1.153 tron NETBSD32TOP_UAP(params, struct sched_param *); 2403 1.220 mrg 2404 1.153 tron return sys__sched_getparam(l, &ua, retval); 2405 1.153 tron } 2406 1.153 tron 2407 1.153 tron int 2408 1.153 tron netbsd32__sched_setaffinity(struct lwp *l, 2409 1.153 tron const struct netbsd32__sched_setaffinity_args *uap, 2410 1.153 tron register_t *retval) 2411 1.153 tron { 2412 1.153 tron /* { 2413 1.153 tron syscallarg(pid_t) pid; 2414 1.153 tron syscallarg(lwpid_t) lid; 2415 1.153 tron syscallarg(netbsd_size_t) size; 2416 1.153 tron syscallarg(const netbsd32_cpusetp_t) cpuset; 2417 1.153 tron } */ 2418 1.153 tron struct sys__sched_setaffinity_args ua; 2419 1.153 tron 2420 1.153 tron NETBSD32TO64_UAP(pid); 2421 1.153 tron NETBSD32TO64_UAP(lid); 2422 1.153 tron NETBSD32TOX_UAP(size, size_t); 2423 1.153 tron NETBSD32TOP_UAP(cpuset, const cpuset_t *); 2424 1.220 mrg 2425 1.153 tron return sys__sched_setaffinity(l, &ua, retval); 2426 1.153 tron } 2427 1.153 tron 2428 1.153 tron int 2429 1.153 tron netbsd32__sched_getaffinity(struct lwp *l, 2430 1.153 tron const struct netbsd32__sched_getaffinity_args *uap, 2431 1.153 tron register_t *retval) 2432 1.153 tron { 2433 1.153 tron /* { 2434 1.153 tron syscallarg(pid_t) pid; 2435 1.153 tron syscallarg(lwpid_t) lid; 2436 1.153 tron syscallarg(netbsd_size_t) size; 2437 1.153 tron syscallarg(netbsd32_cpusetp_t) cpuset; 2438 1.153 tron } */ 2439 1.153 tron struct sys__sched_getaffinity_args ua; 2440 1.153 tron 2441 1.153 tron NETBSD32TO64_UAP(pid); 2442 1.153 tron NETBSD32TO64_UAP(lid); 2443 1.153 tron NETBSD32TOX_UAP(size, size_t); 2444 1.153 tron NETBSD32TOP_UAP(cpuset, cpuset_t *); 2445 1.220 mrg 2446 1.153 tron return sys__sched_getaffinity(l, &ua, retval); 2447 1.153 tron } 2448 1.153 tron 2449 1.172 njoly int 2450 1.201 skrll netbsd32__sched_protect(struct lwp *l, 2451 1.201 skrll const struct netbsd32__sched_protect_args *uap, 2452 1.201 skrll register_t *retval) 2453 1.201 skrll { 2454 1.201 skrll /* { 2455 1.201 skrll syscallarg(int) priority; 2456 1.201 skrll } */ 2457 1.201 skrll struct sys__sched_protect_args ua; 2458 1.201 skrll 2459 1.201 skrll NETBSD32TO64_UAP(priority); 2460 1.220 mrg 2461 1.201 skrll return sys__sched_protect(l, &ua, retval); 2462 1.201 skrll } 2463 1.201 skrll 2464 1.173 njoly int 2465 1.237 christos netbsd32___dup3100(struct lwp *l, const struct netbsd32___dup3100_args *uap, 2466 1.237 christos register_t *retval) 2467 1.173 njoly { 2468 1.173 njoly /* { 2469 1.173 njoly syscallarg(int) from; 2470 1.173 njoly syscallarg(int) to; 2471 1.173 njoly syscallarg(int) flags; 2472 1.173 njoly } */ 2473 1.237 christos struct sys___dup3100_args ua; 2474 1.173 njoly 2475 1.173 njoly NETBSD32TO64_UAP(from); 2476 1.173 njoly NETBSD32TO64_UAP(to); 2477 1.173 njoly NETBSD32TO64_UAP(flags); 2478 1.173 njoly 2479 1.237 christos return sys___dup3100(l, &ua, retval); 2480 1.173 njoly } 2481 1.173 njoly 2482 1.174 njoly int 2483 1.174 njoly netbsd32_kqueue1(struct lwp *l, const struct netbsd32_kqueue1_args *uap, 2484 1.174 njoly register_t *retval) 2485 1.174 njoly { 2486 1.174 njoly /* { 2487 1.174 njoly syscallarg(int) flags; 2488 1.174 njoly } */ 2489 1.174 njoly struct sys_kqueue1_args ua; 2490 1.174 njoly 2491 1.174 njoly NETBSD32TO64_UAP(flags); 2492 1.177 matt 2493 1.174 njoly return sys_kqueue1(l, &ua, retval); 2494 1.174 njoly } 2495 1.174 njoly 2496 1.177 matt int 2497 1.177 matt netbsd32_paccept(struct lwp *l, const struct netbsd32_paccept_args *uap, 2498 1.177 matt register_t *retval) 2499 1.177 matt { 2500 1.177 matt /* { 2501 1.177 matt syscallarg(int) s; 2502 1.177 matt syscallarg(netbsd32_sockaddrp_t) name; 2503 1.177 matt syscallarg(netbsd32_socklenp_t) anamelen; 2504 1.177 matt syscallarg(const netbsd32_sigsetp_t) mask; 2505 1.177 matt syscallarg(int) flags; 2506 1.177 matt } */ 2507 1.177 matt struct sys_paccept_args ua; 2508 1.177 matt 2509 1.177 matt NETBSD32TO64_UAP(s); 2510 1.177 matt NETBSD32TOP_UAP(name, struct sockaddr *); 2511 1.177 matt NETBSD32TOP_UAP(anamelen, socklen_t *); 2512 1.177 matt NETBSD32TOP_UAP(mask, const sigset_t *); 2513 1.177 matt NETBSD32TO64_UAP(flags); 2514 1.177 matt 2515 1.177 matt return sys_paccept(l, &ua, retval); 2516 1.177 matt } 2517 1.177 matt 2518 1.195 martin int 2519 1.195 martin netbsd32_fdiscard(struct lwp *l, const struct netbsd32_fdiscard_args *uap, 2520 1.195 martin register_t *retval) 2521 1.195 martin { 2522 1.195 martin /* { 2523 1.195 martin syscallarg(int) fd; 2524 1.195 martin syscallarg(netbsd32_off_t) pos; 2525 1.195 martin syscallarg(netbsd32_off_t) len; 2526 1.195 martin } */ 2527 1.195 martin struct sys_fdiscard_args ua; 2528 1.195 martin 2529 1.195 martin NETBSD32TO64_UAP(fd); 2530 1.195 martin NETBSD32TO64_UAP(pos); 2531 1.195 martin NETBSD32TO64_UAP(len); 2532 1.195 martin 2533 1.195 martin return sys_fdiscard(l, &ua, retval); 2534 1.195 martin } 2535 1.195 martin 2536 1.195 martin int 2537 1.195 martin netbsd32_posix_fallocate(struct lwp *l, const struct netbsd32_posix_fallocate_args *uap, 2538 1.195 martin register_t *retval) 2539 1.195 martin { 2540 1.195 martin /* { 2541 1.195 martin syscallarg(int) fd; 2542 1.195 martin syscallarg(netbsd32_off_t) pos; 2543 1.195 martin syscallarg(netbsd32_off_t) len; 2544 1.195 martin } */ 2545 1.195 martin struct sys_posix_fallocate_args ua; 2546 1.195 martin 2547 1.195 martin NETBSD32TO64_UAP(fd); 2548 1.195 martin NETBSD32TO64_UAP(pos); 2549 1.195 martin NETBSD32TO64_UAP(len); 2550 1.195 martin 2551 1.195 martin return sys_posix_fallocate(l, &ua, retval); 2552 1.195 martin } 2553 1.195 martin 2554 1.196 martin int 2555 1.196 martin netbsd32_pset_create(struct lwp *l, 2556 1.196 martin const struct netbsd32_pset_create_args *uap, register_t *retval) 2557 1.196 martin { 2558 1.196 martin /* { 2559 1.196 martin syscallarg(netbsd32_psetidp_t) psid; 2560 1.196 martin }; */ 2561 1.219 mrg struct sys_pset_create_args ua; 2562 1.196 martin 2563 1.219 mrg NETBSD32TOP_UAP(psid, psetid_t); 2564 1.219 mrg 2565 1.219 mrg return sys_pset_create(l, &ua, retval); 2566 1.196 martin } 2567 1.196 martin 2568 1.196 martin int 2569 1.196 martin netbsd32_pset_destroy(struct lwp *l, 2570 1.196 martin const struct netbsd32_pset_destroy_args *uap, register_t *retval) 2571 1.196 martin { 2572 1.196 martin /* { 2573 1.196 martin syscallarg(psetid_t) psid; 2574 1.196 martin }; */ 2575 1.196 martin 2576 1.196 martin return sys_pset_destroy(l, (const void *)uap, retval); 2577 1.196 martin } 2578 1.196 martin 2579 1.196 martin int 2580 1.196 martin netbsd32_pset_assign(struct lwp *l, 2581 1.196 martin const struct netbsd32_pset_assign_args *uap, register_t *retval) 2582 1.196 martin { 2583 1.196 martin /* { 2584 1.196 martin syscallarg(psetid_t) psid; 2585 1.196 martin syscallarg(cpuid_t) cpuid; 2586 1.196 martin syscallarg(netbsd32_psetidp_t) opsid; 2587 1.196 martin }; */ 2588 1.196 martin struct sys_pset_assign_args ua; 2589 1.196 martin 2590 1.196 martin SCARG(&ua, psid) = SCARG(uap, psid); 2591 1.196 martin NETBSD32TO64_UAP(cpuid); 2592 1.196 martin NETBSD32TOP_UAP(opsid, psetid_t); 2593 1.196 martin 2594 1.196 martin return sys_pset_assign(l, &ua, retval); 2595 1.196 martin } 2596 1.196 martin 2597 1.196 martin int 2598 1.196 martin netbsd32__pset_bind(struct lwp *l, 2599 1.196 martin const struct netbsd32__pset_bind_args *uap, register_t *retval) 2600 1.196 martin { 2601 1.196 martin /* { 2602 1.196 martin syscallarg(idtype_t) idtype; 2603 1.196 martin syscallarg(id_t) first_id; 2604 1.196 martin syscallarg(id_t) second_id; 2605 1.196 martin syscallarg(psetid_t) psid; 2606 1.196 martin syscallarg(netbsd32_psetidp_t) opsid; 2607 1.196 martin }; */ 2608 1.196 martin struct sys__pset_bind_args ua; 2609 1.196 martin 2610 1.196 martin SCARG(&ua, idtype) = SCARG(uap, idtype); 2611 1.196 martin SCARG(&ua, first_id) = SCARG(uap, first_id); 2612 1.196 martin SCARG(&ua, second_id) = SCARG(uap, second_id); 2613 1.196 martin SCARG(&ua, psid) = SCARG(uap, psid); 2614 1.196 martin NETBSD32TOP_UAP(opsid, psetid_t); 2615 1.196 martin 2616 1.196 martin return sys__pset_bind(l, &ua, retval); 2617 1.196 martin } 2618 1.195 martin 2619 1.230 rin int 2620 1.230 rin netbsd32_getrandom(struct lwp *l, const struct netbsd32_getrandom_args *uap, 2621 1.230 rin register_t *retval) 2622 1.230 rin { 2623 1.230 rin /* { 2624 1.230 rin syscallarg(netbsd32_voidp) buf; 2625 1.230 rin syscallarg(netbsd32_size_t) buflen; 2626 1.230 rin syscallarg(unsigned) flags; 2627 1.230 rin } */ 2628 1.230 rin struct sys_getrandom_args ua; 2629 1.230 rin 2630 1.230 rin NETBSD32TOP_UAP(buf, void *); 2631 1.230 rin NETBSD32TOX_UAP(buflen, size_t); 2632 1.230 rin NETBSD32TO64_UAP(flags); 2633 1.230 rin return sys_getrandom(l, &ua, retval); 2634 1.230 rin } 2635 1.195 martin 2636 1.233 thorpej int 2637 1.233 thorpej netbsd32_eventfd(struct lwp *l, 2638 1.233 thorpej const struct netbsd32_eventfd_args *uap, register_t *retval) 2639 1.233 thorpej { 2640 1.233 thorpej /* { 2641 1.233 thorpej syscallarg(unsigned int) val; 2642 1.233 thorpej syscallarg(int) flags; 2643 1.233 thorpej } */ 2644 1.233 thorpej struct sys_eventfd_args ua; 2645 1.233 thorpej 2646 1.233 thorpej NETBSD32TO64_UAP(val); 2647 1.233 thorpej NETBSD32TO64_UAP(flags); 2648 1.233 thorpej return sys_eventfd(l, &ua, retval); 2649 1.233 thorpej } 2650 1.233 thorpej 2651 1.235 rin int 2652 1.235 rin netbsd32_memfd_create(struct lwp *l, 2653 1.235 rin const struct netbsd32_memfd_create_args *uap, register_t *retval) 2654 1.235 rin { 2655 1.235 rin /* { 2656 1.235 rin syscallarg(const netbsd32_charp) name; 2657 1.235 rin syscallarg(unsigned int) flags; 2658 1.235 rin } */ 2659 1.235 rin struct sys_memfd_create_args ua; 2660 1.235 rin 2661 1.235 rin NETBSD32TOP_UAP(name, const char); 2662 1.235 rin NETBSD32TO64_UAP(flags); 2663 1.235 rin return sys_memfd_create(l, &ua, retval); 2664 1.235 rin } 2665 1.235 rin 2666 1.129 dsl /* 2667 1.129 dsl * MI indirect system call support. 2668 1.129 dsl * Only used if the MD netbsd32_syscall.c doesn't intercept the calls. 2669 1.129 dsl */ 2670 1.129 dsl 2671 1.129 dsl #define NETBSD32_SYSCALL 2672 1.129 dsl #undef SYS_NSYSENT 2673 1.129 dsl #define SYS_NSYSENT NETBSD32_SYS_NSYSENT 2674 1.129 dsl 2675 1.153 tron #define SYS_SYSCALL netbsd32_syscall 2676 1.129 dsl #include "../../kern/sys_syscall.c" 2677 1.129 dsl #undef SYS_SYSCALL 2678 1.129 dsl 2679 1.153 tron #define SYS_SYSCALL netbsd32____syscall 2680 1.129 dsl #include "../../kern/sys_syscall.c" 2681 1.129 dsl #undef SYS_SYSCALL 2682