userspace fun: maze game and a new device to support it
[lunaix-os.git] / lunaix-os / kernel / fs / vfs.c
index 4ec74b402208c7cedd9f12c82f076dc4e41e164e..d4bc56a65c3f6784ef444b0ebcc271eec79b65fc 100644 (file)
@@ -47,7 +47,6 @@
 #include <lunaix/foptions.h>
 #include <lunaix/fs.h>
 #include <lunaix/mm/cake.h>
-#include <lunaix/mm/page.h>
 #include <lunaix/mm/valloc.h>
 #include <lunaix/process.h>
 #include <lunaix/spike.h>
@@ -117,7 +116,7 @@ __dcache_hash(struct v_dnode* parent, u32_t* hash)
     // 确保低位更加随机
     _hash = _hash ^ (_hash >> VFS_HASHBITS);
     // 与parent的指针值做加法,来减小碰撞的可能性。
-    _hash += (u32_t)parent;
+    _hash += (u32_t)__ptr(parent);
     *hash = _hash;
     return &dnode_cache[_hash & VFS_HASH_MASK];
 }
@@ -1337,7 +1336,7 @@ __DEFINE_LXSYSCALL2(char*, getcwd, char*, buf, size_t, size)
     ret_ptr = buf;
 
 done:
-    __current->k_status = errno;
+    syscall_result(errno);
     return ret_ptr;
 }
 
@@ -1454,7 +1453,7 @@ __DEFINE_LXSYSCALL2(int, fstat, int, fd, struct file_stat*, stat)
                                .st_blocks = vino->lb_usage,
                                .st_size = vino->fsize,
                                .mode = vino->itype,
-                               .st_ioblksize = PG_SIZE,
+                               .st_ioblksize = PAGE_SIZE,
                                .st_blksize = vino->sb->blksize};
 
     if (VFS_DEVFILE(vino->itype)) {