Kernel: move Device.h to its own directory

This commit is contained in:
Bananymous
2023-07-19 23:50:57 +03:00
parent 94af856db0
commit 08cd285ca6
7 changed files with 11 additions and 9 deletions

View File

@@ -0,0 +1,43 @@
#pragma once
#include <kernel/FS/RamFS/Inode.h>
namespace Kernel
{
class Device : public RamInode
{
public:
virtual ~Device() = default;
virtual void update() {}
virtual bool is_device() const override { return true; }
virtual bool is_partition() const { return false; }
virtual dev_t rdev() const override = 0;
protected:
Device(mode_t, uid_t, gid_t);
};
class BlockDevice : public Device
{
protected:
BlockDevice(mode_t mode, uid_t uid, gid_t gid)
: Device(Mode::IFBLK | mode, uid, gid)
{
ASSERT(Device::mode().ifblk());
}
};
class CharacterDevice : public Device
{
protected:
CharacterDevice(mode_t mode, uid_t uid, gid_t gid)
: Device(Mode::IFCHR | mode, uid, gid)
{
ASSERT(Device::mode().ifchr());
}
};
}