|
The Pedigree Project 0.1
|
#include <Iso9660Filesystem.h>
Inheritance diagram for Iso9660Filesystem:
Collaboration diagram for Iso9660Filesystem:Public Member Functions | |
| virtual bool | initialise (Disk *pDisk) |
| virtual File * | getRoot () const |
| virtual const String & | getVolumeLabel () const |
Public Member Functions inherited from Filesystem | |
| Filesystem () | |
| virtual | ~Filesystem () |
| virtual File * | find (const StringView &path) |
| virtual File * | find (const String &path) |
| virtual File * | find (const StringView &path, File *pStartNode) |
| virtual File * | find (const String &path, File *pStartNode) |
| File * | findRetained (const StringView &path, Directory::ChildLease &result, File *pStartNode=nullptr) |
| virtual bool | getUuid (String &uuid) const |
| virtual FileHandleStatus | encodeFileHandle (File &file, FileHandle &handle) |
| virtual FileHandleStatus | decodeFileHandle (const FileHandle &handle, RetainedFile &file) |
| virtual FileHandleStatus | fileHandleFsid (FileSystemId &id) |
| virtual SyncStatus | sync () |
| virtual SyncStatus | shutdown () |
| virtual bool | deviceRemoved (bool deviceAvailable=false) |
| bool | tryAcquireOperation (OperationBarrier::Lease &operation) const |
| bool | isDeviceRemoved () const |
| virtual QuotaStatus | quotaControl (const QuotaRequest &, QuotaResponse &, File *quotaFile=nullptr) |
| bool | createFile (const StringView &path, uint32_t mask, File *pStartNode=0) |
| bool | createDirectory (const StringView &path, uint32_t mask, File *pStartNode=0) |
| bool | createSymlink (const StringView &path, const String &value, File *pStartNode=0) |
| bool | createLink (const StringView &path, File *target, File *pStartNode=0) |
| bool | remove (const StringView &path, File *pStartNode=0) |
| bool | remove (const StringView &path, File *pStartNode, File *expected) |
| bool | rename (const StringView &oldPath, File *oldStart, const StringView &newPath, File *newStart, bool noReplace=false) |
| Disk * | getDisk () |
| bool | isReadOnly () |
| virtual bool | isCaseSensitive () |
| bool | remove (File *parent, File *file) |
Static Public Member Functions | |
| static Filesystem * | probe (Disk *pDisk) |
Protected Member Functions | |
| uintptr_t | readBlock (File *pFile, uint64_t location) |
| size_t | getBlockSize () |
| virtual bool | createFile (File *parent, const String &filename, uint32_t mask) |
| virtual bool | createDirectory (File *parent, const String &filename, uint32_t mask) |
| virtual bool | createSymlink (File *parent, const String &filename, const String &value) |
| virtual bool | removeNode (File *parent, const String &filename, File *file) |
| virtual Disk * | getDisk () |
| String | parseName (Iso9660DirRecord &name) |
| String | parseJolietName (Iso9660DirRecord &name) |
| bool | readSector (uint64_t location, void *destination) |
| bool | isLeap (uint32_t year) |
| Time::Timestamp | timeToUnix (Iso9660DirTimestamp &time) |
| File * | fileFromDirRecord (Iso9660DirRecord &dir, size_t inodeNum, File *parent, bool bDirectory=false) |
| Iso9660Filesystem (const Iso9660Filesystem &) | |
| void | operator= (const Iso9660Filesystem &) |
Protected Member Functions inherited from Filesystem | |
| virtual bool | createLink (File *parent, const String &filename, File *target) |
| virtual bool | renameNode (Directory *oldParent, const String &oldName, File *source, Directory *newParent, const String &newName, File *replaced) |
| bool | beginDeviceRemoval (bool deviceAvailable) |
Protected Attributes | |
| Disk * | m_pDisk |
| Iso9660VolumeDescriptorPrimary | m_PrimaryVolDesc |
| Iso9660VolumeDescriptorPrimary | m_SuppVolDesc |
| Iso9660VolumeDescriptor | m_VolDesc |
| Iso9660DirRecord * | m_RootDir |
| int | m_JolietLevel |
| size_t | m_BlockSize |
| size_t | m_BlockNumber |
| String | m_VolumeLabel |
| File * | m_pRoot |
Protected Attributes inherited from Filesystem | |
| bool | m_bReadOnly |
| Disk * | m_pDisk |
| DiskUse | m_DiskUse |
| OperationBarrier | m_Operations |
Friends | |
| class | Iso9660File |
| class | Iso9660Directory |
Additional Inherited Members | |
Public Types inherited from Filesystem | |
| enum class | SyncStatus { Success , Unsupported , NoMemory , IoError } |
| typedef Filesystem *(* | ProbeCallback) (Disk *) |
This class provides an implementation of the ISO9660 filesystem.
Definition at line 34 of file Iso9660Filesystem.h.
| Iso9660Filesystem::Iso9660Filesystem | ( | ) |
Definition at line 61 of file Iso9660Filesystem.cc.
|
virtual |
Definition at line 73 of file Iso9660Filesystem.cc.
|
protectedvirtual |
createDirectory calls this after it has parsed the string path.
Implements Filesystem.
Definition at line 243 of file Iso9660Filesystem.cc.
|
protectedvirtual |
createFile calls this after it has parsed the string path.
Implements Filesystem.
Definition at line 239 of file Iso9660Filesystem.cc.
|
protectedvirtual |
createSymlink calls this after it has parsed the string path.
Implements Filesystem.
Definition at line 247 of file Iso9660Filesystem.cc.
|
protected |
Definition at line 297 of file Iso9660Filesystem.cc.
|
inlineprotected |
Definition at line 54 of file Iso9660Filesystem.h.
|
inlineprotectedvirtual |
Definition at line 63 of file Iso9660Filesystem.h.
|
virtual |
Returns the root filesystem node.
Implements Filesystem.
Definition at line 188 of file Iso9660Filesystem.cc.
References m_pRoot.
|
virtual |
Returns a string identifying the volume label.
Implements Filesystem.
Definition at line 192 of file Iso9660Filesystem.cc.
References m_VolumeLabel.
|
virtual |
Populates this filesystem with data from the given Disk device.
Implements Filesystem.
Definition at line 75 of file Iso9660Filesystem.cc.
References m_BlockSize, Filesystem::m_bReadOnly, m_JolietLevel, m_pDisk, m_PrimaryVolDesc, m_pRoot, m_VolumeLabel, and readSector().
|
inlineprotected |
Definition at line 73 of file Iso9660Filesystem.h.
|
protected |
Definition at line 280 of file Iso9660Filesystem.cc.
|
protected |
Definition at line 255 of file Iso9660Filesystem.cc.
|
static |
Definition at line 178 of file Iso9660Filesystem.cc.
|
protected |
Definition at line 212 of file Iso9660Filesystem.cc.
|
protected |
Copies one logical ISO sector from one or more target-page views.
Definition at line 196 of file Iso9660Filesystem.cc.
References m_pDisk, Disk::readViews(), and Disk::unpinViews().
Referenced by initialise().
Here is the caller graph for this function:
|
protectedvirtual |
Remove a backing node while the VFS holds the parent's namespace lock. A successful implementation must retire the parent's cached entry before returning and must recheck directory emptiness while holding the child's namespace lock.
Implements Filesystem.
Definition at line 251 of file Iso9660Filesystem.cc.
|
inlineprotected |
Definition at line 84 of file Iso9660Filesystem.h.
|
friend |
Definition at line 36 of file Iso9660Filesystem.h.
|
friend |
Definition at line 35 of file Iso9660Filesystem.h.
|
protected |
Definition at line 130 of file Iso9660Filesystem.h.
|
protected |
Block size, and block number, of the disk
Definition at line 129 of file Iso9660Filesystem.h.
Referenced by initialise().
|
protected |
Joliet level (0 if not using it)
Definition at line 126 of file Iso9660Filesystem.h.
Referenced by initialise().
|
protected |
Our raw device.
Definition at line 117 of file Iso9660Filesystem.h.
Referenced by initialise(), Iso9660File::pinBlock(), Iso9660File::readPage(), readSector(), and Iso9660File::unpinBlock().
|
protected |
|
protected |
Root filesystem node.
Definition at line 136 of file Iso9660Filesystem.h.
Referenced by getRoot(), and initialise().
|
protected |
Definition at line 123 of file Iso9660Filesystem.h.
|
protected |
Definition at line 121 of file Iso9660Filesystem.h.
|
protected |
Definition at line 122 of file Iso9660Filesystem.h.
|
protected |
Our volume label
Definition at line 133 of file Iso9660Filesystem.h.
Referenced by getVolumeLabel(), and initialise().