Kernel: Start making device numbers unique for each device

This commit is contained in:
2024-02-22 15:53:48 +02:00
parent 7a4ec7f7a3
commit 9594ee8e47
22 changed files with 92 additions and 57 deletions

View File

@@ -1,9 +1,18 @@
#include <kernel/Device/DeviceNumbers.h>
#include <kernel/FS/TmpFS/FileSystem.h>
#include <kernel/Memory/Heap.h>
#include <sys/sysmacros.h>
namespace Kernel
{
static dev_t get_next_rdev()
{
static dev_t minor = 0;
return makedev(DeviceNumber::TmpFS, minor++);
}
BAN::ErrorOr<TmpFileSystem*> TmpFileSystem::create(size_t max_pages, mode_t mode, uid_t uid, gid_t gid)
{
if (max_pages < 2)
@@ -17,7 +26,8 @@ namespace Kernel
}
TmpFileSystem::TmpFileSystem(size_t max_pages)
: m_max_pages(max_pages)
: m_rdev(get_next_rdev())
, m_max_pages(max_pages)
{ }
BAN::ErrorOr<void> TmpFileSystem::initialize(mode_t mode, uid_t uid, gid_t gid)

View File

@@ -41,6 +41,11 @@ namespace Kernel
/* GENERAL INODE */
dev_t TmpInode::dev() const
{
return m_fs.dev();
}
BAN::ErrorOr<BAN::RefPtr<TmpInode>> TmpInode::create_from_existing(TmpFileSystem& fs, ino_t ino, const TmpInodeInfo& info)
{
TmpInode* inode_ptr = nullptr;