18#ifndef __LIB_LIBFS_FILESYSTEMCLIENT_H
19#define __LIB_LIBFS_FILESYSTEMCLIENT_H
21#include <FreeNOS/API/ProcessID.h>
116 Size & descriptor)
const;
175 const Size msecTimeout)
const;
FileSystemClient provides a simple interface to a FileSystemServer.
FileSystem::Result closeFile(const Size descriptor) const
Close a file.
FileSystem::Result writeFile(const Size descriptor, const void *buf, Size *size) const
Write a file.
const ProcessID m_pid
ProcessID of the target file system or ANY to lookup in mounts table.
FileSystem::Result request(const char *path, FileSystemMessage &msg) const
Send an IPC request to the target file system.
static String * m_currentDirectory
Current directory path is prefixed to relative path inputs.
const String * getCurrentDirectory() const
Get current directory String.
FileSystem::Result waitFile(const char *filesystemPath, const FileSystem::WaitSet *waitSet, const Size count, const Size msecTimeout) const
Wait for one or more files to become readable/writable.
FileSystem::Result statFile(const char *path, FileSystem::FileStat *st) const
Retrieve status of a file.
FileSystem::Result waitFileSystem(const char *path) const
Blocking wait for a mounted filesystem.
FileSystem::Result readFile(const Size descriptor, void *buf, Size *size) const
Read a file.
static const Size MaximumFileSystemMounts
Maximum number of mounted filesystems.
void setCurrentDirectory(const String &directory)
Set new current directory.
FileSystem::Result mountFileSystem(const char *mountPath) const
Mount the current process as a file system on the rootfs.
FileSystem::Result deleteFile(const char *path) const
Remove a file from the file system.
FileSystem::Result createFile(const char *path, const FileSystem::FileType type, const FileSystem::FileModes mode) const
Create a new file.
FileSystem::Result openFile(const char *path, Size &descriptor) const
Open a file.
ProcessID findMount(const char *path) const
Retrieve the ProcessID of the FileSystemMount for the given path.
static FileSystemMount m_mounts[MaximumFileSystemMounts]
FileSystem mounts table.
FileSystemMount * getFileSystems(Size &numberOfMounts) const
Get file system mounts table.
u32 ProcessID
Process Identification Number.
unsigned int Size
Any sane size indicator cannot go negative.
FileType
All possible filetypes.
Result
Result code for filesystem Actions.
u16 FileModes
Multiple FileMode values combined.
Represents a mounted filesystem.
Contains file information.
Provides information about an inode.