FreeNOS
Public Member Functions
TmpFileSystem Class Reference

Temporary filesystem (TmpFS). More...

#include <TmpFileSystem.h>

Inheritance diagram for TmpFileSystem:
FileSystemServer ChannelServer< FileSystemServer, FileSystemMessage >

Public Member Functions

 TmpFileSystem (const char *path)
 Class constructor function. More...
 
virtual FilecreateFile (const FileSystem::FileType type)
 Creates a new TmpFile. More...
 
- Public Member Functions inherited from FileSystemServer
 FileSystemServer (Directory *root, const char *path)
 Constructor function. More...
 
virtual ~FileSystemServer ()
 Destructor function. More...
 
const char * getMountPath () const
 Get mount path. More...
 
u32 getNextInode ()
 Get next unused inode. More...
 
FileSystem::Result mount ()
 Mount the FileSystem. More...
 
FileSystem::Result registerFile (File *file, const char *path)
 Register a new File. More...
 
FileSystem::Result registerDirectory (Directory *dir, const char *path)
 Register a new Directory. More...
 
FileSystem::Result unregisterFile (const char *path)
 Remove a File from the FileSystemServer. More...
 
void pathHandler (FileSystemMessage *msg)
 Process an incoming filesystem request using a path. More...
 
void mountHandler (FileSystemMessage *msg)
 Process a filesystem mount request message. More...
 
void getFileSystemsHandler (FileSystemMessage *msg)
 Read the file system mounts table. More...
 
virtual bool retryRequests ()
 Retry any pending requests. More...
 
- Public Member Functions inherited from ChannelServer< FileSystemServer, FileSystemMessage >
 ChannelServer (FileSystemServer *inst)
 Constructor function. More...
 
virtual ~ChannelServer ()
 Destructor function. More...
 
int run ()
 Enters an infinite loop, serving incoming requests. More...
 
void setTimeout (const uint msec)
 Set a sleep timeout. More...
 

Additional Inherited Members

- Public Types inherited from ChannelServer< FileSystemServer, FileSystemMessage >
enum  Result
 Result codes. More...
 
- Protected Types inherited from ChannelServer< FileSystemServer, FileSystemMessage >
typedef void(FileSystemServer ::* IPCHandlerFunction) (FileSystemMessage *)
 Member function pointer inside Base, to handle IPC messages. More...
 
typedef void(FileSystemServer ::* IRQHandlerFunction) (Size)
 Member function pointer inside Base, to handle interrupts. More...
 
- Protected Member Functions inherited from FileSystemServer
FileSystem::Result processRequest (FileSystemRequest &req)
 Process a FileSystemRequest. More...
 
FileSystem::Result inodeHandler (FileSystemRequest &req)
 Handle a request for a File specified by its inode. More...
 
FileSystem::Result waitFileHandler (FileSystemRequest &req)
 Handle a WaitFile request. More...
 
void sendResponse (FileSystemMessage *msg) const
 Send response for a FileSystemMessage. More...
 
bool redirectRequest (const char *path, FileSystemMessage *msg)
 Try to forward the given FileSystemMessage to a mount file system. More...
 
void setRoot (Directory *newRoot)
 Change the filesystem root directory. More...
 
DirectorygetParentDirectory (const char *path)
 Retrieve parent Directory for a file. More...
 
FileCachelookupFile (const FileSystemPath &path)
 Retrieve a File from storage. More...
 
FileCachefindFileCache (const char *path) const
 Search the cache for an entry. More...
 
FileCachefindFileCache (const String &path) const
 Search the cache for an entry. More...
 
FileCachefindFileCache (const FileSystemPath &path) const
 Search the cache for an entry. More...
 
FileCacheinsertFileCache (File *file, const char *pathFormat)
 Inserts a file into the in-memory filesystem tree. More...
 
void removeFileFromCache (FileCache *cache, File *file)
 Remove a File from the cache. More...
 
void clearFileCache (FileCache *cache=ZERO)
 Cleans up the entire file cache (except opened file caches and root). More...
 
- Protected Member Functions inherited from ChannelServer< FileSystemServer, FileSystemMessage >
void addIPCHandler (const Size slot, IPCHandlerFunction h, const bool sendReply=true)
 Register a new IPC message action handler. More...
 
void addIRQHandler (const Size slot, IRQHandlerFunction h)
 Register a new IRQ message vector handler. More...
 
virtual void timeout ()
 Called when sleep timeout is reached. More...
 
virtual void onProcessTerminated (const ProcessID pid)
 Called whenever another Process is terminated. More...
 
void retryAllRequests ()
 Keep retrying requests until all served. More...
 
- Protected Attributes inherited from FileSystemServer
const ProcessID m_pid
 Process identifier. More...
 
FileCachem_root
 Root entry of the filesystem tree. More...
 
HashTable< u32, File * > m_inodeMap
 Contains a mapping of inode number to file of all cached files. More...
 
const char * m_mountPath
 Mount point path. More...
 
FileSystemMountm_mounts
 Table with mounted file systems (only used by the root file system). More...
 
List< FileSystemRequest * > * m_requests
 Contains ongoing requests. More...
 
- Protected Attributes inherited from ChannelServer< FileSystemServer, FileSystemMessage >
FileSystemServerm_instance
 Server object instance. More...
 
ChannelClientm_client
 Client for sending replies. More...
 
ChannelRegistrym_registry
 Contains registered channels. More...
 
MemoryChannel m_kernelEvent
 Kernel event channel. More...
 
Index< MessageHandler< IPCHandlerFunction >, MaximumHandlerCountm_ipcHandlers
 IPC handler functions. More...
 
Index< MessageHandler< IRQHandlerFunction >, MaximumHandlerCountm_irqHandlers
 IRQ handler functions. More...
 
ProcessID m_self
 ProcessID of ourselves. More...
 
Timer::Info m_time
 System timer value. More...
 
Timer::Info m_expiry
 System timer expiration value. More...
 

Detailed Description

Temporary filesystem (TmpFS).

Maps files into virtual memory.

Definition at line 36 of file TmpFileSystem.h.

Constructor & Destructor Documentation

◆ TmpFileSystem()

TmpFileSystem::TmpFileSystem ( const char *  path)

Class constructor function.

Parameters
pathPath to which we are mounted.

Definition at line 24 of file TmpFileSystem.cpp.

Member Function Documentation

◆ createFile()

File * TmpFileSystem::createFile ( const FileSystem::FileType  type)
virtual

Creates a new TmpFile.

Parameters
typeDescribes the file type to create.
Returns
Pointer to a new File on success, or ZERO on failure.
See also
File

Reimplemented from FileSystemServer.

Definition at line 29 of file TmpFileSystem.cpp.

References assert, FileSystem::DirectoryFile, FileSystemServer::getNextInode(), NULL, FileSystem::RegularFile, type, and ZERO.


The documentation for this class was generated from the following files: