fat_io_lib finally works, implement virtual partition devices, manage devices via string keys
All checks were successful
Build documentation / build-and-deploy (push) Successful in 3m35s

This commit is contained in:
2026-03-01 00:00:27 +01:00
parent baa13fb695
commit 0533c2705d
37 changed files with 619 additions and 139 deletions

View File

@@ -8,6 +8,8 @@
#include <amd64/msr.h>
#include <aux/compiler.h>
#include <device/device.h>
#include <device/partitions.h>
#include <devices.h>
#include <fs/vfs.h>
#include <irq/irq.h>
#include <libk/std.h>
@@ -17,7 +19,6 @@
#include <mm/pmm.h>
#include <proc/proc.h>
#include <proc/reschedule.h>
#include <ramdisk_device.h>
#include <sys/debug.h>
#include <sys/mm.h>
#include <sys/smp.h>
@@ -55,14 +56,19 @@ void bootmain (void) {
devices_init ();
vfs_init ();
struct device* ramdisk_device = device_find (RAMDISK_DEVICE);
struct reschedule_ctx rctx = {.cpu = thiscpu, .reschedule = false};
int ret = vfs_create_volume ("ramdisk", VFS_TARFS, ramdisk_device, NULL, &rctx);
struct reschedule_ctx rctx = {.cpu = NULL, .reschedule = false};
if (ret < 0) {
DEBUG ("could not mount ramdisk! (%d)\n", ret);
spin ();
}
struct device* ramdisk = device_find ("RD");
vfs_create_volume ("RD", VFS_TARFS, ramdisk);
struct device* vdisk = device_find ("VD");
device_probe_partitions (vdisk);
struct device* vdp0 = device_find ("VDp0");
vfs_create_volume ("VD", VFS_FAT32, vdp0);
vfs_volume_open (VFS_KERNEL, "VD", &rctx);
vfs_format (VFS_KERNEL, "VD");
vfs_volume_close (VFS_KERNEL, "VD", &rctx);
proc_pid_alloc_init ();
procgroup_pgid_alloc_init ();