Lines Matching defs:ukfs

1 /*	$NetBSD: ukfs.c,v 1.60 2022/04/19 20:32:17 rillig Exp $	*/
61 #include <rump/ukfs.h>
71 struct ukfs {
88 int (*mkdirfn)(struct ukfs *, const char *, mode_t), struct ukfs *);
91 ukfs_getmp(struct ukfs *ukfs)
94 return ukfs->ukfs_mp;
98 ukfs_setspecific(struct ukfs *ukfs, void *priv)
101 ukfs->ukfs_specific = priv;
105 ukfs_getspecific(struct ukfs *ukfs)
108 return ukfs->ukfs_specific;
119 precall(struct ukfs *ukfs, struct lwp **curlwp)
125 rump_pub_lwproc_switch(ukfs->ukfs_lwp);
128 if (rump_sys_chroot(ukfs->ukfs_mountpath) == -1)
130 if (rump_sys_chdir(ukfs->ukfs_cwd) == -1)
149 if ((ukfs_rv = precall(ukfs, &ukfs_curlwp)) != 0) { \
187 warn("incompatible ukfs version, %d vs. %d",
202 rumpmkdir(struct ukfs *dummy, const char *path, mode_t mode)
217 warnx("ukfs: %%PART is deprecated. use "
418 warn("ukfs: cannot unlock device file");
529 static struct ukfs *
533 struct ukfs *fs = NULL;
548 fs = malloc(sizeof(struct ukfs));
553 memset(fs, 0, sizeof(struct ukfs));
659 struct ukfs *
668 struct ukfs *
679 ukfs_release(struct ukfs *fs, int flags)
712 /* release this routine's lwp and ukfs base lwp */
747 #define STDCALL(ukfs, thecall) \
756 ukfs_opendir(struct ukfs *ukfs, const char *dirname, struct ukfs_dircookie **c)
805 ukfs_getdents_cookie(struct ukfs *ukfs, struct ukfs_dircookie *c, off_t *off,
816 ukfs_getdents(struct ukfs *ukfs, const char *dirname, off_t *off,
839 ukfs_closedir(struct ukfs *ukfs, struct ukfs_dircookie *c)
848 ukfs_open(struct ukfs *ukfs, const char *filename, int flags)
862 ukfs_read(struct ukfs *ukfs, const char *filename, off_t off,
886 ukfs_read_fd(struct ukfs *ukfs, int fd, off_t off, uint8_t *buf, size_t buflen)
893 ukfs_write(struct ukfs *ukfs, const char *filename, off_t off,
921 ukfs_write_fd(struct ukfs *ukfs, int fd, off_t off, uint8_t *buf, size_t buflen,
935 ukfs_close(struct ukfs *ukfs, int fd)
943 ukfs_create(struct ukfs *ukfs, const char *filename, mode_t mode)
958 ukfs_mknod(struct ukfs *ukfs, const char *path, mode_t mode, dev_t dev)
961 STDCALL(ukfs, rump_sys_mknod(path, mode, dev));
965 ukfs_mkfifo(struct ukfs *ukfs, const char *path, mode_t mode)
968 STDCALL(ukfs, rump_sys_mkfifo(path, mode));
972 ukfs_mkdir(struct ukfs *ukfs, const char *filename, mode_t mode)
975 STDCALL(ukfs, rump_sys_mkdir(filename, mode));
979 ukfs_remove(struct ukfs *ukfs, const char *filename)
982 STDCALL(ukfs, rump_sys_unlink(filename));
986 ukfs_rmdir(struct ukfs *ukfs, const char *filename)
989 STDCALL(ukfs, rump_sys_rmdir(filename));
993 ukfs_link(struct ukfs *ukfs, const char *filename, const char *f_create)
996 STDCALL(ukfs, rump_sys_link(filename, f_create));
1000 ukfs_symlink(struct ukfs *ukfs, const char *filename, const char *linkname)
1003 STDCALL(ukfs, rump_sys_symlink(filename, linkname));
1007 ukfs_readlink(struct ukfs *ukfs, const char *filename,
1019 ukfs_rename(struct ukfs *ukfs, const char *from, const char *to)
1022 STDCALL(ukfs, rump_sys_rename(from, to));
1026 ukfs_chdir(struct ukfs *ukfs, const char *path)
1041 pthread_spin_lock(&ukfs->ukfs_spin);
1042 oldpath = ukfs->ukfs_cwd;
1043 ukfs->ukfs_cwd = newpath;
1044 pthread_spin_unlock(&ukfs->ukfs_spin);
1053 ukfs_stat(struct ukfs *ukfs, const char *filename, struct stat *file_stat)
1065 ukfs_lstat(struct ukfs *ukfs, const char *filename, struct stat *file_stat)
1077 ukfs_chmod(struct ukfs *ukfs, const char *filename, mode_t mode)
1080 STDCALL(ukfs, rump_sys_chmod(filename, mode));
1084 ukfs_lchmod(struct ukfs *ukfs, const char *filename, mode_t mode)
1087 STDCALL(ukfs, rump_sys_lchmod(filename, mode));
1091 ukfs_chown(struct ukfs *ukfs, const char *filename, uid_t uid, gid_t gid)
1094 STDCALL(ukfs, rump_sys_chown(filename, uid, gid));
1098 ukfs_lchown(struct ukfs *ukfs, const char *filename, uid_t uid, gid_t gid)
1101 STDCALL(ukfs, rump_sys_lchown(filename, uid, gid));
1105 ukfs_chflags(struct ukfs *ukfs, const char *filename, u_long flags)
1108 STDCALL(ukfs, rump_sys_chflags(filename, flags));
1112 ukfs_lchflags(struct ukfs *ukfs, const char *filename, u_long flags)
1115 STDCALL(ukfs, rump_sys_lchflags(filename, flags));
1119 ukfs_utimes(struct ukfs *ukfs, const char *filename, const struct timeval *tptr)
1122 STDCALL(ukfs, rump_sys_utimes(filename, tptr));
1126 ukfs_lutimes(struct ukfs *ukfs, const char *filename,
1130 STDCALL(ukfs, rump_sys_lutimes(filename, tptr));
1141 * can't protect against other threads calling dl*() outside of ukfs,
1321 int (*mkdirfn)(struct ukfs *, const char *, mode_t), struct ukfs *fs)
1363 ukfs_util_builddirs(struct ukfs *ukfs, const char *pathname, mode_t mode)
1366 return builddirs(pathname, mode, ukfs_mkdir, ukfs);