1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-29 11:25:07 +00:00

Add an fd field to FileHandle in Kernel builds.

This commit is contained in:
Andreas Kling 2018-10-18 10:27:07 +02:00
parent 9d5de91cf3
commit e86cadc7af
3 changed files with 20 additions and 0 deletions

View file

@ -14,11 +14,20 @@ public:
ByteBuffer readEntireFile(); ByteBuffer readEntireFile();
#ifdef SERENITY_KERNEL
int fd() const { return m_fd; }
void setFD(int fd) { m_fd = fd; }
#endif
private: private:
friend class VirtualFileSystem; friend class VirtualFileSystem;
RetainPtr<VirtualFileSystem::Node> m_vnode; RetainPtr<VirtualFileSystem::Node> m_vnode;
Unix::off_t m_currentOffset { 0 }; Unix::off_t m_currentOffset { 0 };
#ifdef SERENITY_KERNEL
int m_fd { -1 };
#endif
}; };

View file

@ -12,8 +12,17 @@ static dword encodedDevice(unsigned major, unsigned minor)
return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12); return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12);
} }
static VirtualFileSystem* s_the;
VirtualFileSystem& VirtualFileSystem::the()
{
ASSERT(s_the);
return *s_the;
}
VirtualFileSystem::VirtualFileSystem() VirtualFileSystem::VirtualFileSystem()
{ {
s_the = this;
m_maxNodeCount = 16; m_maxNodeCount = 16;
m_nodes = reinterpret_cast<Node*>(kmalloc(sizeof(Node) * maxNodeCount())); m_nodes = reinterpret_cast<Node*>(kmalloc(sizeof(Node) * maxNodeCount()));
memset(m_nodes, 0, sizeof(Node) * maxNodeCount()); memset(m_nodes, 0, sizeof(Node) * maxNodeCount());

View file

@ -35,6 +35,8 @@ public:
CharacterDevice* m_characterDevice { nullptr }; CharacterDevice* m_characterDevice { nullptr };
}; };
static VirtualFileSystem& the();
VirtualFileSystem(); VirtualFileSystem();
~VirtualFileSystem(); ~VirtualFileSystem();