Luna/kernel/src/fs/OpenFileDescription.cpp

34 lines
632 B
C++

#include "fs/OpenFileDescription.h"
#include <bits/open-flags.h>
OpenFileDescription::OpenFileDescription(SharedPtr<VFS::Inode> ino, int fl) : inode(ino), flags(fl)
{
inode->add_handle();
}
OpenFileDescription::~OpenFileDescription()
{
inode->remove_handle();
inode->did_close();
}
bool FileDescriptor::should_append()
{
return description->flags & O_APPEND;
}
bool FileDescriptor::should_block()
{
return !(description->flags & O_NONBLOCK);
}
bool FileDescriptor::is_readable()
{
return description->flags & O_RDONLY;
}
bool FileDescriptor::is_writable()
{
return description->flags & O_WRONLY;
}