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::Object
 Object structure. More...
 

Namespaces

 IFS
 

Macros

#define FWFILESYS_START_MARKER   0x53465746
 
#define FWFILESYS_END_MARKER   0x46574653
 
#define FWFS_OBJTYPE_MAP(XX)
 Object type identifiers. More...
 
#define XX(value, tag, text)   tag = value,
 

Functions

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

Macro Definition Documentation

◆ FWFILESYS_END_MARKER

#define FWFILESYS_END_MARKER   0x46574653

◆ FWFILESYS_START_MARKER

#define FWFILESYS_START_MARKER   0x53465746

◆ 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, ObjectStore, "Identifier for object store") \
XX(8, Md5Hash, "MD5 Hash Value") \
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:146
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::Object::Type  obt)

Get descriptive String for an object type.