Object.h File Reference
#include "../TimeStamp.h"
#include "../FileAttributes.h"
#include "../Compression.h"
#include "../UserRole.h"
Include dependency graph for Object.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  IFS::FWFS::Object
 Object structure. More...
 
struct  IFS::FWFS::FWObjDesc
 FWFS Object Descriptor. More...
 

Namespaces

 IFS
 
 IFS::FWFS
 

Macros

#define FWFS_OBJTYPE_MAP(XX)
 Object type identifiers. More...
 
#define XX(value, tag, text)   tag = value,
 

Functions

template<typename T >
static T IFS::FWFS::at_offset (const void *current, int offset)
 
template<typename T >
static T IFS::FWFS::at_offset (void *current, int offset)
 
FileAttributes IFS::FWFS::getFileAttributes (Object::Attributes objattr)
 
Object::Attributes IFS::FWFS::getObjectAttributes (FileAttributes fileAttr)
 
String toString (IFS::FWFS::Object::Type obt)
 Get descriptive String for an object type. More...
 

Variables

constexpr size_t IFS::FWFS::FWFS_BASE_OFFSET {sizeof(uint32_t)}
 
constexpr uint32_t IFS::FWFS::FWFILESYS_START_MARKER {0x53465746}
 
constexpr uint32_t IFS::FWFS::FWFILESYS_END_MARKER {0x46574653}
 

Macro Definition Documentation

◆ FWFS_OBJTYPE_MAP

#define FWFS_OBJTYPE_MAP (   XX)
Value:
XX(0, End, "The system image footer") \
XX(1, Data8, "Data, max 255 bytes") \
XX(2, ID32, "32-bit identifier") \
XX(3, ObjAttr, "Object attributes") \
XX(4, Compression, "Compression descriptor") \
XX(5, ReadACE, "minimum UserRole for read access") \
XX(6, WriteACE, "minimum UserRole for write access") \
XX(7, VolumeIndex, "Volume index number") \
XX(8, Md5Hash, "MD5 Hash Value") \
XX(9, Comment, "Comment") \
XX(10, UserAttribute, "User Attribute") \
XX(32, Data16, "Data, max 64K - 1") \
XX(33, Volume, "Volume, top-level container object") \
XX(34, MountPoint, "Root for another filesystem") \
XX(35, Directory, "Directory entry") \
XX(36, File, "File entry") \
XX(64, Data24, "Data, max 16M - 1")
Directory stream class.
Definition: Core/FileSystem.h:66
#define XX(value, tag, text)
Definition: Object.h:153
Definition: Core/FileSystem.h:54

Object type identifiers.

Note
id is followed by the content size, in either 1, 2 or 3 bytes. All references have 1-byte size Everything from Data8 and below has 1-byte size Data24 uses 3-byte size Everything else uses 2 byte size

◆ XX

#define XX (   value,
  tag,
  text 
)    tag = value,

Function Documentation

◆ toString()

String toString ( IFS::FWFS::Object::Type  obt)

Get descriptive String for an object type.