23#include "pedigree/kernel/Log.h"
24#include "pedigree/kernel/graphics/Graphics.h"
25#include "pedigree/kernel/graphics/GraphicsService.h"
26#include "pedigree/kernel/machine/InputManager.h"
27#include "pedigree/kernel/process/Mutex.h"
28#include "pedigree/kernel/utilities/ExtensibleBitmap.h"
29#include "pedigree/kernel/utilities/Vector.h"
31#include "modules/subsys/posix/PsAuxFile.h"
32#include "modules/subsys/posix/VirtualTerminal.h"
33#include "modules/system/vfs/Directory.h"
34#include "modules/system/vfs/File.h"
35#include "modules/system/vfs/Filesystem.h"
41extern DevFs* g_pDevFs;
46 :
File(str, 0, 0, 0, inode, pParentFS, 0, pParent) {
53 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
54 bool bCanBlock =
true);
55 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
56 bool bCanBlock =
true);
58 int command(
size_t command,
void* buffer)
override;
69 :
File(str, 0, 0, 0, inode, pParentFS, 0, pParentNode) {
76 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
77 bool bCanBlock =
true);
78 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
79 bool bCanBlock =
true);
90 :
File(str, 0, 0, 0, inode, pParentFS, 0, pParentNode) {
97 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
98 bool bCanBlock =
true);
99 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
100 bool bCanBlock =
true);
113 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
114 bool bCanBlock =
true);
115 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
116 bool bCanBlock =
true);
117 virtual int select(
bool bWriting =
false,
int timeout = 0);
130 DevFsDirectory* m_pPtsDirectory, uint32_t slavePermissions = 0333,
131 bool callerOwns =
false);
134 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
135 bool bCanBlock =
true);
136 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
137 bool bCanBlock =
true);
142 bool isCharacterDevice()
const override {
145 uint64_t deviceNumber()
const override {
154 uint32_t m_SlavePermissions;
165 :
File(
String(
"rtc"), 0, 0, 0, inode, pParentFS, 0, pParentNode) {
172 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
173 bool bCanBlock =
true);
174 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
175 bool bCanBlock =
true);
178 virtual int command(
const size_t command,
void* buffer);
193 virtual uintptr_t
readBlock(uint64_t location);
195 bool isDirectPhysicalMapping()
const override {
201 virtual int command(
const size_t command,
void* buffer);
210 uint32_t m_LinuxPalette[256];
218 virtual uint64_t
readBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
219 bool bCanBlock =
true);
220 virtual uint64_t
writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer,
221 bool bCanBlock =
true);
238 :
File(name, 0, 0, 0, inode, pParentFS, 0, pParentNode) {
246 bool isDirectPhysicalMapping()
const override {
257 Time::Timestamp creationTime, uintptr_t inode,
class Filesystem* pFs,
size_t size,
259 :
Directory(name, accessedTime, modifiedTime, creationTime, inode, pFs, size, pParent) {}
272 return SyncStatus::Success;
276 : m_pRoot(0), m_CttySelector(nullptr), m_Serial(nullptr), m_VtManager(0), m_pPsAuxFile(0) {}
286 static String devfsLabel(
"dev");
290 virtual size_t getNextInode();
291 virtual void revertInode();
293 bool isControllingTerminalSelector(
const File* file)
const {
294 return file && file == m_CttySelector;
322 File* m_CttySelector;
virtual bool createDirectory(File *parent, const String &filename, uint32_t mask)
SyncStatus sync() override
virtual const String & getVolumeLabel() const
virtual bool initialise(Disk *pDisk)
virtual File * getRoot() const
virtual bool removeNode(File *, const String &, File *)
virtual bool createFile(File *parent, const String &filename, uint32_t mask)
virtual bool createSymlink(File *parent, const String &filename, const String &value)
bool addDirectoryEntry(const String &name, File *pTarget)
void setGidOnly(size_t gid)
void setPermissionsOnly(uint32_t perms)
void setUidOnly(size_t uid)
GraphicsService::GraphicsParameters * m_pGraphicsParameters
void returnPhysicalPage(size_t offset) override
virtual int command(const size_t command, void *buffer)
virtual bool supports(const size_t command) const
virtual physical_uintptr_t getPhysicalPage(size_t offset)
virtual uintptr_t readBlock(uint64_t location)
virtual void returnPhysicalPage(size_t offset)
virtual physical_uintptr_t getPhysicalPage(size_t offset)
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual bool isBytewise() const
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual bool isBytewise() const
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
bool supports(size_t command) const override
int command(size_t command, void *buffer) override
virtual bool isBytewise() const
virtual bool isBytewise() const
virtual int command(const size_t command, void *buffer)
virtual bool supports(const size_t command) const
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual int select(bool bWriting=false, int timeout=0)
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual bool isBytewise() const
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual bool isBytewise() const
A vector / dynamic array.
virtual uint64_t readBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual uint64_t writeBytewise(uint64_t location, uint64_t size, uintptr_t buffer, bool bCanBlock=true)
virtual bool isBytewise() const