feat: a pseudo shell environment for basic interacting and testing purpose
[lunaix-os.git] / lunaix-os / kernel / device / devfs.c
index 0448924083fa603413b73a415b3fa669b2aca610..ac674b4ac77ebb4e5f4b5cee6f1b4794c2c92ad0 100644 (file)
@@ -84,7 +84,9 @@ devfs_dirlookup(struct v_inode* this, struct v_dnode* dnode)
 int
 devfs_readdir(struct v_file* file, struct dir_context* dctx)
 {
 int
 devfs_readdir(struct v_file* file, struct dir_context* dctx)
 {
-    struct device* dev = device_getbyoffset(file->inode->data, dctx->index);
+    struct device* holder = (struct device*)(file->inode->data);
+    struct device* dev =
+      device_getbyoffset(holder ? &holder->children : NULL, dctx->index);
     if (!dev) {
         return 0;
     }
     if (!dev) {
         return 0;
     }