Lines Matching defs:td
99 linux_creat(struct thread *td, struct linux_creat_args *args)
102 return (kern_openat(td, AT_FDCWD, args->path, UIO_USERSPACE,
156 linux_common_open(struct thread *td, int dirfd, const char *path, int l_flags,
159 struct proc *p = td->td_proc;
165 error = kern_openat(td, dirfd, path, seg, bsd_flags, mode);
181 fd = td->td_retval[0];
182 if (fget(td, fd, &cap_ioctl_rights, &fp) == 0) {
184 fdrop(fp, td);
194 td->td_ucred, td);
199 fdrop(fp, td);
207 linux_openat(struct thread *td, struct linux_openat_args *args)
212 return (linux_common_open(td, dfd, args->filename, args->flags,
218 linux_open(struct thread *td, struct linux_open_args *args)
221 return (linux_common_open(td, AT_FDCWD, args->path, args->flags,
227 linux_name_to_handle_at(struct thread *td,
252 error = kern_getfhat(td, bsd_flags, fd, args->name,
294 linux_open_by_handle_at(struct thread *td,
309 return (kern_fhopen(td, (void *)&args->handle->f_handle, bsd_flags));
313 linux_lseek(struct thread *td, struct linux_lseek_args *args)
316 return (kern_lseek(td, args->fdes, args->off, args->whence));
321 linux_llseek(struct thread *td, struct linux_llseek_args *args)
328 error = kern_lseek(td, args->fd, off, args->whence);
332 error = copyout(td->td_retval, args->res, sizeof(off_t));
336 td->td_retval[0] = 0;
354 linux_getdents_error(struct thread *td, int fd, int err)
361 error = getvnode(td, fd, &cap_read_rights, &fp);
366 fdrop(fp, td);
369 fdrop(fp, td);
401 linux_getdents(struct thread *td, struct linux_getdents_args *args)
417 error = kern_getdirentries(td, args->fd, buf, buflen,
420 error = linux_getdents_error(td, args->fd, error);
426 len = td->td_retval[0];
467 td->td_retval[0] = retval;
478 linux_getdents64(struct thread *td, struct linux_getdents64_args *args)
493 error = kern_getdirentries(td, args->fd, buf, buflen,
496 error = linux_getdents_error(td, args->fd, error);
503 len = td->td_retval[0];
540 td->td_retval[0] = retval;
551 linux_readdir(struct thread *td, struct linux_readdir_args *args)
563 error = kern_getdirentries(td, args->fd, buf, buflen,
566 error = linux_getdents_error(td, args->fd, error);
569 if (td->td_retval[0] == 0)
585 td->td_retval[0] = linuxreclen;
600 linux_access(struct thread *td, struct linux_access_args *args)
607 return (kern_accessat(td, AT_FDCWD, args->path, UIO_USERSPACE, 0,
613 linux_do_accessat(struct thread *td, int ldfd, const char *filename,
623 return (kern_accessat(td, dfd, filename, UIO_USERSPACE, flags, amode));
627 linux_faccessat(struct thread *td, struct linux_faccessat_args *args)
630 return (linux_do_accessat(td, args->dfd, args->filename, args->amode,
635 linux_faccessat2(struct thread *td, struct linux_faccessat2_args *args)
642 linux_msg(td, "faccessat2 unsupported flag 0x%x", unsupported);
652 return (linux_do_accessat(td, args->dfd, args->filename, args->amode,
659 linux_unlink(struct thread *td, struct linux_unlink_args *args)
664 error = kern_funlinkat(td, AT_FDCWD, args->path, FD_NONE,
668 if (kern_statat(td, 0, AT_FDCWD, args->path,
680 linux_unlinkat_impl(struct thread *td, enum uio_seg pathseg, const char *path,
687 error = kern_frmdirat(td, dfd, path, FD_NONE, pathseg, 0);
689 error = kern_funlinkat(td, dfd, path, FD_NONE, pathseg, 0, 0);
692 if (kern_statat(td, AT_SYMLINK_NOFOLLOW, dfd, path,
700 linux_unlinkat(struct thread *td, struct linux_unlinkat_args *args)
707 return (linux_unlinkat_impl(td, UIO_USERSPACE, args->pathname,
712 linux_chdir(struct thread *td, struct linux_chdir_args *args)
715 return (kern_chdir(td, args->path, UIO_USERSPACE));
720 linux_chmod(struct thread *td, struct linux_chmod_args *args)
723 return (kern_fchmodat(td, AT_FDCWD, args->path, UIO_USERSPACE,
729 linux_fchmodat(struct thread *td, struct linux_fchmodat_args *args)
734 return (kern_fchmodat(td, dfd, args->filename, UIO_USERSPACE,
740 linux_mkdir(struct thread *td, struct linux_mkdir_args *args)
743 return (kern_mkdirat(td, AT_FDCWD, args->path, UIO_USERSPACE, args->mode));
748 linux_mkdirat(struct thread *td, struct linux_mkdirat_args *args)
753 return (kern_mkdirat(td, dfd, args->pathname, UIO_USERSPACE, args->mode));
758 linux_rmdir(struct thread *td, struct linux_rmdir_args *args)
761 return (kern_frmdirat(td, AT_FDCWD, args->path, FD_NONE,
766 linux_rename(struct thread *td, struct linux_rename_args *args)
769 return (kern_renameat(td, AT_FDCWD, args->from, AT_FDCWD,
775 linux_renameat(struct thread *td, struct linux_renameat_args *args)
785 return (linux_renameat2(td, &renameat2_args));
789 linux_renameat2(struct thread *td, struct linux_renameat2_args *args)
808 linux_msg(td, "renameat2 unsupported flags 0x%x",
816 return (kern_renameat(td, olddfd, args->oldname, newdfd,
822 linux_symlink(struct thread *td, struct linux_symlink_args *args)
825 return (kern_symlinkat(td, args->path, AT_FDCWD, args->to,
831 linux_symlinkat(struct thread *td, struct linux_symlinkat_args *args)
836 return (kern_symlinkat(td, args->oldname, dfd, args->newname,
842 linux_readlink(struct thread *td, struct linux_readlink_args *args)
848 return (kern_readlinkat(td, AT_FDCWD, args->name, UIO_USERSPACE,
854 linux_readlinkat(struct thread *td, struct linux_readlinkat_args *args)
862 return (kern_readlinkat(td, dfd, args->path, UIO_USERSPACE,
867 linux_truncate(struct thread *td, struct linux_truncate_args *args)
870 return (kern_truncate(td, args->path, UIO_USERSPACE, args->length));
875 linux_truncate64(struct thread *td, struct linux_truncate64_args *args)
885 return (kern_truncate(td, args->path, UIO_USERSPACE, length));
890 linux_ftruncate(struct thread *td, struct linux_ftruncate_args *args)
893 return (kern_ftruncate(td, args->fd, args->length));
898 linux_ftruncate64(struct thread *td, struct linux_ftruncate64_args *args)
908 return (kern_ftruncate(td, args->fd, length));
914 linux_link(struct thread *td, struct linux_link_args *args)
917 return (kern_linkat(td, AT_FDCWD, AT_FDCWD, args->path, args->to,
923 linux_linkat(struct thread *td, struct linux_linkat_args *args)
936 return (kern_linkat(td, olddfd, newdfd, args->oldname,
941 linux_fdatasync(struct thread *td, struct linux_fdatasync_args *uap)
944 return (kern_fsync(td, uap->fd, false));
948 linux_sync_file_range(struct thread *td, struct linux_sync_file_range_args *uap)
967 return (kern_fsync(td, uap->fd, false));
971 linux_pread(struct thread *td, struct linux_pread_args *uap)
983 error = kern_pread(td, uap->fd, uap->buf, uap->nbyte, offset);
986 error = fgetvp(td, uap->fd, &cap_pread_rights, &vp);
997 linux_pwrite(struct thread *td, struct linux_pwrite_args *uap)
1007 return (linux_enobufs2eagain(td, uap->fd,
1008 kern_pwrite(td, uap->fd, uap->buf, uap->nbyte, offset)));
1021 linux_preadv(struct thread *td, struct linux_preadv_args *uap)
1042 error = kern_preadv(td, uap->fd, auio, offset);
1048 linux_pwritev(struct thread *td, struct linux_pwritev_args *uap)
1069 error = kern_pwritev(td, uap->fd, auio, offset);
1071 return (linux_enobufs2eagain(td, uap->fd, error));
1075 linux_mount(struct thread *td, struct linux_mount_args *args)
1161 linux_oldumount(struct thread *td, struct linux_oldumount_args *args)
1164 return (kern_unmount(td, args->path, 0));
1170 linux_umount(struct thread *td, struct linux_umount_args *args)
1180 linux_msg(td, "unsupported umount2 flags %#x", args->flags);
1184 return (kern_unmount(td, args->path, flags));
1307 fcntl_common(struct thread *td, struct linux_fcntl_args *args)
1318 return (kern_fcntl(td, args->fd, F_DUPFD, args->arg));
1321 return (kern_fcntl(td, args->fd, F_GETFD, 0));
1324 return (kern_fcntl(td, args->fd, F_SETFD, args->arg));
1327 error = kern_fcntl(td, args->fd, F_GETFL, 0);
1328 result = td->td_retval[0];
1329 td->td_retval[0] = 0;
1331 td->td_retval[0] |= LINUX_O_RDONLY;
1333 td->td_retval[0] |= LINUX_O_WRONLY;
1335 td->td_retval[0] |= LINUX_O_RDWR;
1337 td->td_retval[0] |= LINUX_O_NONBLOCK;
1339 td->td_retval[0] |= LINUX_O_APPEND;
1341 td->td_retval[0] |= LINUX_O_SYNC;
1343 td->td_retval[0] |= LINUX_O_ASYNC;
1346 td->td_retval[0] |= LINUX_O_NOFOLLOW;
1350 td->td_retval[0] |= LINUX_O_DIRECT;
1372 return (kern_fcntl(td, args->fd, F_SETFL, arg));
1380 error = kern_fcntl(td, args->fd, F_GETLK, (intptr_t)&bsd_flock);
1393 return (kern_fcntl(td, args->fd, F_SETLK,
1402 return (kern_fcntl(td, args->fd, F_SETLKW,
1406 return (kern_fcntl(td, args->fd, F_GETOWN, 0));
1414 error = fget(td, args->fd,
1419 fdrop(fp, td);
1422 fdrop(fp, td);
1424 return (kern_fcntl(td, args->fd, F_SETOWN, args->arg));
1427 return (kern_fcntl(td, args->fd, F_DUPFD_CLOEXEC, args->arg));
1433 error = kern_fcntl(td, args->fd, F_GET_SEALS, 0);
1436 td->td_retval[0] = bsd_to_linux_bits(td->td_retval[0],
1441 return (kern_fcntl(td, args->fd, F_ADD_SEALS,
1445 error = fget(td, args->fd,
1450 fdrop(fp, td);
1454 td->td_retval[0] = fpipe->pipe_buffer.size;
1455 fdrop(fp, td);
1459 linux_msg(td, "unsupported fcntl cmd %d", args->cmd);
1465 linux_fcntl(struct thread *td, struct linux_fcntl_args *args)
1468 return (fcntl_common(td, args));
1473 linux_fcntl64(struct thread *td, struct linux_fcntl64_args *args)
1487 error = kern_fcntl(td, args->fd, F_GETLK, (intptr_t)&bsd_flock);
1500 return (kern_fcntl(td, args->fd, F_SETLK,
1509 return (kern_fcntl(td, args->fd, F_SETLKW,
1516 return (fcntl_common(td, &fcntl_args));
1522 linux_chown(struct thread *td, struct linux_chown_args *args)
1525 return (kern_fchownat(td, AT_FDCWD, args->path, UIO_USERSPACE,
1531 linux_fchownat(struct thread *td, struct linux_fchownat_args *args)
1537 linux_msg(td, "fchownat unsupported flag 0x%x", unsupported);
1547 return (kern_fchownat(td, dfd, args->filename, UIO_USERSPACE,
1553 linux_lchown(struct thread *td, struct linux_lchown_args *args)
1556 return (kern_fchownat(td, AT_FDCWD, args->path, UIO_USERSPACE, args->uid,
1583 linux_fadvise64(struct thread *td, struct linux_fadvise64_args *args)
1597 return (kern_posix_fadvise(td, args->fd, offset, args->len, advice));
1602 linux_fadvise64_64(struct thread *td, struct linux_fadvise64_64_args *args)
1618 return (kern_posix_fadvise(td, args->fd, offset, len, advice));
1624 linux_pipe(struct thread *td, struct linux_pipe_args *args)
1629 error = kern_pipe(td, fildes, 0, NULL, NULL);
1635 (void)kern_close(td, fildes[0]);
1636 (void)kern_close(td, fildes[1]);
1644 linux_pipe2(struct thread *td, struct linux_pipe2_args *args)
1657 error = kern_pipe(td, fildes, flags, NULL, NULL);
1663 (void)kern_close(td, fildes[0]);
1664 (void)kern_close(td, fildes[1]);
1671 linux_dup3(struct thread *td, struct linux_dup3_args *args)
1686 return (kern_fcntl(td, args->oldfd, cmd, newfd));
1690 linux_fallocate(struct thread *td, struct linux_fallocate_args *args)
1709 return (kern_posix_fallocate(td, args->fd, offset, len));
1713 linux_copy_file_range(struct thread *td, struct linux_copy_file_range_args
1724 linux_msg(td, "copy_file_range unsupported flags 0x%x",
1743 error = kern_copy_file_range(td, args->fd_in, inoffp, args->fd_out,
1755 linux_memfd_create(struct thread *td, struct linux_memfd_create_args *args)
1792 return (kern_shm_open2(td, SHM_ANON, oflags, 0, shmflags, NULL,
1797 linux_splice(struct thread *td, struct linux_splice_args *args)
1800 linux_msg(td, "syscall splice not really implemented");
1811 linux_close_range(struct thread *td, struct linux_close_range_args *args)
1833 return (kern_close_range(td, flags, args->first, args->last));
1837 linux_enobufs2eagain(struct thread *td, int fd, int error)
1843 if (fget(td, fd, &cap_no_rights, &fp) != 0)
1847 fdrop(fp, td);
1852 linux_write(struct thread *td, struct linux_write_args *args)
1860 return (linux_enobufs2eagain(td, args->fd, sys_write(td, &bargs)));
1864 linux_writev(struct thread *td, struct linux_writev_args *args)
1876 error = kern_writev(td, args->fd, auio);
1878 return (linux_enobufs2eagain(td, args->fd, error));