X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6d75e31596b5ac2e638c8a31c6c2185ee4053b6b..61a1daa59589212608039e2734009870818bacd3:/lunaix-os/kernel/fs/vfs.c diff --git a/lunaix-os/kernel/fs/vfs.c b/lunaix-os/kernel/fs/vfs.c index eaf35e0..3592dc8 100644 --- a/lunaix-os/kernel/fs/vfs.c +++ b/lunaix-os/kernel/fs/vfs.c @@ -609,9 +609,9 @@ __DEFINE_LXSYSCALL2(int, readdir, int, fd, struct dirent*, dent) __vfs_readdir_callback }; errno = 1; if (dent->d_offset == 0) { - __vfs_readdir_callback(&dctx, vfs_dot.value, vfs_dot.len, 0); + __vfs_readdir_callback(&dctx, vfs_dot.value, vfs_dot.len, DT_DIR); } else if (dent->d_offset == 1) { - __vfs_readdir_callback(&dctx, vfs_ddot.value, vfs_ddot.len, 0); + __vfs_readdir_callback(&dctx, vfs_ddot.value, vfs_ddot.len, DT_DIR); } else { dctx.index -= 2; if ((errno = fd_s->file->ops->readdir(fd_s->file, &dctx)) != 1) { @@ -793,6 +793,19 @@ vfs_readlink(struct v_dnode* dnode, char* buf, size_t size) return 0; } +int +vfs_get_dtype(int itype) +{ + switch (itype) { + case VFS_IFDIR: + return DT_DIR; + case VFS_IFSYMLINK: + return DT_SYMLINK; + default: + return DT_PIPE; + } +} + __DEFINE_LXSYSCALL3(int, realpathat, int, fd, char*, buf, size_t, size) { int errno;