start work on fat
This commit is contained in:
parent
766439db6d
commit
6a1f653289
|
@ -32,6 +32,7 @@ set(KERNEL_SOURCES
|
|||
kernel/FS/DevFS/FileSystem.cpp
|
||||
kernel/FS/Ext2/FileSystem.cpp
|
||||
kernel/FS/Ext2/Inode.cpp
|
||||
kernel/FS/FAT/FileSystem.cpp
|
||||
kernel/FS/FileSystem.cpp
|
||||
kernel/FS/Inode.cpp
|
||||
kernel/FS/Pipe.cpp
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
#pragma once
|
||||
|
||||
#include <kernel/FS/FileSystem.h>
|
||||
|
||||
namespace Kernel
|
||||
{
|
||||
|
||||
class FATFS final : public FileSystem
|
||||
{
|
||||
public:
|
||||
static BAN::ErrorOr<bool> probe(BAN::RefPtr<BlockDevice>);
|
||||
static BAN::ErrorOr<BAN::RefPtr<FATFS>> create(BAN::RefPtr<BlockDevice>);
|
||||
|
||||
virtual BAN::RefPtr<Inode> root_inode() override { return m_root_inode; }
|
||||
|
||||
virtual dev_t dev() const override { return m_block_device->rdev(); };
|
||||
|
||||
private:
|
||||
FATFS(BAN::RefPtr<BlockDevice> block_device)
|
||||
: m_block_device(block_device)
|
||||
{}
|
||||
|
||||
private:
|
||||
Mutex m_mutex;
|
||||
|
||||
BAN::RefPtr<BlockDevice> m_block_device;
|
||||
BAN::RefPtr<Inode> m_root_inode;
|
||||
|
||||
friend class BAN::RefPtr<FATFS>;
|
||||
};
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
#include <kernel/FS/FAT/FileSystem.h>
|
||||
|
||||
namespace Kernel
|
||||
{
|
||||
|
||||
BAN::ErrorOr<bool> FATFS::probe(BAN::RefPtr<BlockDevice> block_device)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
BAN::ErrorOr<BAN::RefPtr<FATFS>> FATFS::create(BAN::RefPtr<BlockDevice> block_device)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
#include <kernel/FS/Ext2/FileSystem.h>
|
||||
#include <kernel/FS/FAT/FileSystem.h>
|
||||
#include <kernel/FS/FileSystem.h>
|
||||
|
||||
namespace Kernel
|
||||
|
@ -8,6 +9,8 @@ namespace Kernel
|
|||
{
|
||||
if (auto res = Ext2FS::probe(block_device); !res.is_error() && res.value())
|
||||
return BAN::RefPtr<FileSystem>(TRY(Ext2FS::create(block_device)));
|
||||
if (auto res = FATFS::probe(block_device); !res.is_error() && res.value())
|
||||
return BAN::RefPtr<FileSystem>(TRY(FATFS::create(block_device)));
|
||||
dprintln("Unsupported filesystem");
|
||||
return BAN::Error::from_errno(ENOTSUP);
|
||||
}
|
||||
|
|
|
@ -57,7 +57,8 @@ if [ ! -b $PARTITION1 ] || [ ! -b $PARTITION2 ]; then
|
|||
fi
|
||||
|
||||
# create root filesystem
|
||||
sudo mkfs.ext2 -q $PARTITION2
|
||||
sudo mkfs.fat -F 32 $PARTITION2
|
||||
#sudo mkfs.ext2 -q $PARTITION2
|
||||
|
||||
# delete loop device
|
||||
sudo losetup -d $LOOP_DEV
|
||||
|
|
Loading…
Reference in New Issue