feat: shell and signal demo as loadable user executable
[lunaix-os.git] / lunaix-os / kernel / fs / ramfs / ramfs.c
index 11ec8463aa4f8db47097bc8eb3e936e6d45aa7c4..decc0806d082ac0cfc8699fdf42ea98b4606ace7 100644 (file)
@@ -22,7 +22,7 @@
     case, our rootfs will be something like ext2.
 
     RamFS vs. TwiFS: Indeed, they are both fs that lives in RAM so
     case, our rootfs will be something like ext2.
 
     RamFS vs. TwiFS: Indeed, they are both fs that lives in RAM so
-    there is no foundmentally differences. However, TwiFS is designed
+    there is no foundmental differences. However, TwiFS is designed
     to be a 'virtual FIlesystem for KERnel space' (FIKER), so other
     kernel sub-modules can just create node and attach their own
     implementation of read/write, without brothering to create a
     to be a 'virtual FIlesystem for KERnel space' (FIKER), so other
     kernel sub-modules can just create node and attach their own
     implementation of read/write, without brothering to create a
@@ -52,8 +52,10 @@ ramfs_readdir(struct v_file* file, struct dir_context* dctx)
     llist_for_each(pos, n, &file->dnode->children, siblings)
     {
         if (i++ >= dctx->index) {
     llist_for_each(pos, n, &file->dnode->children, siblings)
     {
         if (i++ >= dctx->index) {
-            dctx->read_complete_callback(
-              dctx, pos->name.value, pos->name.len, 0);
+            dctx->read_complete_callback(dctx,
+                                         pos->name.value,
+                                         pos->name.len,
+                                         vfs_get_dtype(pos->inode->itype));
             return 1;
         }
     }
             return 1;
         }
     }
@@ -115,7 +117,7 @@ ramfs_unmount(struct v_superblock* vsb)
 void
 ramfs_init()
 {
 void
 ramfs_init()
 {
-    struct filesystem* ramfs = fsm_new_fs("ramfs", 5);
+    struct filesystem* ramfs = fsm_new_fs("ramfs", -1);
     ramfs->mount = ramfs_mount;
     ramfs->unmount = ramfs_unmount;
 
     ramfs->mount = ramfs_mount;
     ramfs->unmount = ramfs_unmount;
 
@@ -133,5 +135,7 @@ const struct v_inode_ops ramfs_inode_ops = { .mkdir = ramfs_mkdir,
 const struct v_file_ops ramfs_file_ops = { .readdir = ramfs_readdir,
                                            .close = default_file_close,
                                            .read = default_file_read,
 const struct v_file_ops ramfs_file_ops = { .readdir = ramfs_readdir,
                                            .close = default_file_close,
                                            .read = default_file_read,
+                                           .read_page = default_file_read,
                                            .write = default_file_write,
                                            .write = default_file_write,
+                                           .write_page = default_file_write,
                                            .seek = default_file_seek };
\ No newline at end of file
                                            .seek = default_file_seek };
\ No newline at end of file