libcdio  0.93
Data Structures | Macros | Typedefs | Enumerations | Variables
ecma_167.h File Reference

Definitions based on ECMA-167 3rd edition (June 1997) See http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-167.pdf. More...

#include <cdio/types.h>

Go to the source code of this file.

Data Structures

struct  udf_charspec_s
 
struct  udf_timestamp_s
 
struct  udf_id_suffix_s
 
struct  udf_regid_s
 
struct  vol_struct_desc_s
 
struct  beginning_extended_area_desc_s
 
struct  terminating_extended_area_desc_s
 
struct  boot_desc_s
 
struct  udf_extent_ad_s
 
struct  udf_tag_s
 
struct  NSR_desc_s
 
struct  udf_pvd_s
 
struct  anchor_vol_desc_ptr_s
 
struct  vol_desc_ptr_s
 
struct  imp_use_vol_desc_s
 
struct  partition_desc_s
 
struct  udf_lb_addr_s
 
struct  udf_short_ad_s
 
struct  udf_long_ad_s
 
struct  logical_vol_desc_s
 
struct  generic_partition_map
 
struct  generic_partition_map1
 
struct  generic_partition_map2
 
struct  unalloc_space_desc_s
 
struct  terminating_desc_s
 
struct  logvol_integrity_desc_s
 
struct  udf_ext_ad_s
 
struct  udf_fsd_s
 
struct  partition_header_desc_s
 
struct  udf_fileid_desc_s
 
struct  allocExtDesc
 
struct  udf_icbtag_s
 
struct  indirect_entry_s
 
struct  terminal_entry_s
 
struct  udf_file_entry_s
 
struct  extended_attr_header_desc_s
 
struct  generic_format_s
 
struct  charSet_info_s
 
struct  alt_perms_s
 
struct  filetimes_ext_attr_s
 
struct  infoTimesExtAttr
 
struct  deviceSpec
 
struct  impUseExtAttr
 
struct  appUseExtAttr
 
struct  unallocSpaceEntry
 
struct  spaceBitmapDesc
 
struct  partitionIntegrityEntry
 
struct  logical_vol_header_desc_s
 
struct  pathComponent
 
struct  extended_file_entry
 

Macros

#define UDF_LENGTH_MASK   0x3fffffff
 
#define TIMESTAMP_TYPE_MASK   0xF000
 
#define TIMESTAMP_TYPE_CUT   0x0000
 
#define TIMESTAMP_TYPE_LOCAL   0x1000
 
#define TIMESTAMP_TYPE_AGREEMENT   0x2000
 
#define TIMESTAMP_TIMEZONE_MASK   0x0FFF
 
#define ENTITYID_FLAGS_DIRTY   0x00
 
#define ENTITYID_FLAGS_PROTECTED   0x01
 
#define VSD_STD_ID_NSR02   "NSR02" /* (3/9.1) */
 
#define VSD_STD_ID_BEA01   "BEA01"
 
#define VSD_STD_ID_BOOT2   "BOOT2"
 
#define VSD_STD_ID_CD001   "CD001"
 
#define VSD_STD_ID_CDW02   "CDW02"
 
#define VSD_STD_ID_NSR02   "NSR02"
 
#define VSD_STD_ID_NSR03   "NSR03"
 
#define VSD_STD_ID_TEA01   "TEA01"
 
#define BOOT_FLAGS_ERASE   0x01
 
#define PVD_FLAGS_VSID_COMMON   0x0001
 
#define PD_PARTITION_FLAGS_ALLOC   0x0001
 
#define PD_PARTITION_CONTENTS_NSR02   "+NSR02"
 
#define PD_PARTITION_CONTENTS_FDC01   "+FDC01"
 
#define PD_PARTITION_CONTENTS_CD001   "+CD001"
 
#define PD_PARTITION_CONTENTS_CDW02   "+CDW02"
 
#define PD_PARTITION_CONTENTS_NSR03   "+NSR03"
 
#define PD_ACCESS_TYPE_NONE   0x00000000
 
#define PD_ACCESS_TYPE_READ_ONLY   0x00000001
 
#define PD_ACCESS_TYPE_WRITE_ONCE   0x00000002
 
#define PD_ACCESS_TYPE_REWRITABLE   0x00000003
 
#define PD_ACCESS_TYPE_OVERWRITABLE   0x00000004
 
#define GP_PARTITION_MAP_TYPE_UNDEF   0x00
 
#define GP_PARTIITON_MAP_TYPE_1   0x01
 
#define GP_PARTITION_MAP_TYPE_2   0x02
 
#define LVID_INTEGRITY_TYPE_OPEN   0x00000000
 
#define LVID_INTEGRITY_TYPE_CLOSE   0x00000001
 
#define UDF_ICB_TAG_FLAGS_SETUID   0x40
 
#define UDF_ICB_TAG_FLAGS_SETGID   0x80
 
#define UDF_ICB_TAG_FLAGS_STICKY   0x100
 
#define ICBTAG_STRATEGY_TYPE_UNDEF   0x0000
 
#define ICBTAG_STRATEGY_TYPE_1   0x0001
 
#define ICBTAG_STRATEGY_TYPE_2   0x0002
 
#define ICBTAG_STRATEGY_TYPE_3   0x0003
 
#define ICBTAG_STRATEGY_TYPE_4   0x0004
 
#define UDF_FENTRY_SIZE   176
 
#define UDF_FENTRY_PERM_USER_MASK   0x07
 
#define UDF_FENTRY_PERM_GRP_MASK   0xE0
 
#define UDF_FENTRY_PERM_OWNER_MASK   0x1C00
 
#define FE_PERM_O_EXEC   0x00000001U
 
#define FE_PERM_O_WRITE   0x00000002U
 
#define FE_PERM_O_READ   0x00000004U
 
#define FE_PERM_O_CHATTR   0x00000008U
 
#define FE_PERM_O_DELETE   0x00000010U
 
#define FE_PERM_G_EXEC   0x00000020U
 
#define FE_PERM_G_WRITE   0x00000040U
 
#define FE_PERM_G_READ   0x00000080U
 
#define FE_PERM_G_CHATTR   0x00000100U
 
#define FE_PERM_G_DELETE   0x00000200U
 
#define FE_PERM_U_EXEC   0x00000400U
 
#define FE_PERM_U_WRITE   0x00000800U
 
#define FE_PERM_U_READ   0x00001000U
 
#define FE_PERM_U_CHATTR   0x00002000U
 
#define FE_PERM_U_DELETE   0x00004000U
 
#define FE_RECORD_FMT_UNDEF   0x00
 
#define FE_RECORD_FMT_FIXED_PAD   0x01
 
#define FE_RECORD_FMT_FIXED   0x02
 
#define FE_RECORD_FMT_VARIABLE8   0x03
 
#define FE_RECORD_FMT_VARIABLE16   0x04
 
#define FE_RECORD_FMT_VARIABLE16_MSB   0x05
 
#define FE_RECORD_FMT_VARIABLE32   0x06
 
#define FE_RECORD_FMT_PRINT   0x07
 
#define FE_RECORD_FMT_LF   0x08
 
#define FE_RECORD_FMT_CR   0x09
 
#define FE_RECORD_FMT_CRLF   0x0A
 
#define FE_RECORD_FMT_LFCR   0x0B
 
#define FE_RECORD_DISPLAY_ATTR_UNDEF   0x00
 
#define FE_RECORD_DISPLAY_ATTR_1   0x01
 
#define FE_RECORD_DISPLAY_ATTR_2   0x02
 
#define FE_RECORD_DISPLAY_ATTR_3   0x03
 
#define FTE_CREATION   0x00000001
 
#define FTE_DELETION   0x00000004
 
#define FTE_EFFECTIVE   0x00000008
 
#define FTE_BACKUP   0x00000002
 
#define EXTATTR_CHAR_SET   1
 
#define EXTATTR_ALT_PERMS   3
 
#define EXTATTR_FILE_TIMES   5
 
#define EXTATTR_INFO_TIMES   6
 
#define EXTATTR_DEV_SPEC   12
 
#define EXTATTR_IMP_USE   2048
 
#define EXTATTR_APP_USE   65536
 
#define EXT_RECORDED_ALLOCATED   0x00000000
 
#define EXT_NOT_RECORDED_ALLOCATED   0x40000000
 
#define EXT_NOT_RECORDED_NOT_ALLOCATED   0x80000000
 
#define EXT_NEXT_EXTENT_ALLOCDECS   0xC0000000
 

Typedefs

typedef uint8_t udf_Uint8_t
 
typedef uint16_t udf_Uint16_t
 
typedef uint32_t udf_Uint32_t
 
typedef uint64_t udf_Uint64_t
 
typedef char udf_dstring
 
typedef struct udf_charspec_s udf_charspec_t
 
typedef struct udf_timestamp_s udf_timestamp_t
 
typedef struct udf_id_suffix_s udf_id_suffix_t
 
typedef struct udf_regid_s udf_regid_t
 
typedef struct udf_extent_ad_s udf_extent_ad_t
 
typedef struct udf_tag_s udf_tag_t
 
typedef struct udf_pvd_s udf_pvd_t
 
typedef struct
anchor_vol_desc_ptr_s 
anchor_vol_desc_ptr_t
 
typedef struct partition_desc_s partition_desc_t
 
typedef struct udf_lb_addr_s udf_lb_addr_t
 
typedef struct udf_short_ad_s udf_short_ad_t
 
typedef struct udf_long_ad_s udf_long_ad_t
 
typedef struct logical_vol_desc_s logical_vol_desc_t
 
typedef struct udf_ext_ad_s udf_ext_ad_t
 
typedef struct udf_fsd_s udf_fsd_t
 
typedef struct
partition_header_desc_s 
partition_header_desc_t
 
typedef struct udf_fileid_desc_s udf_fileid_desc_t
 
typedef struct udf_icbtag_s udf_icbtag_t
 
typedef struct udf_file_entry_s udf_file_entry_t
 
typedef struct
logical_vol_header_desc_s 
logical_vol_header_desc_t
 

Enumerations

enum  ecma_167_enum1_t {
  VSD_STD_ID_SIZE = 5, UDF_REGID_ID_SIZE = 23, UDF_VOLID_SIZE = 32, UDF_FID_SIZE = 38,
  UDF_VOLSET_ID_SIZE = 128
}
 
enum  tag_id_t {
  TAGID_PRI_VOL = 0x0001, TAGID_ANCHOR = 0x0002, TAGID_VOL = 0x0003, TAGID_IMP_VOL = 0x0004,
  TAGID_PARTITION = 0x0005, TAGID_LOGVOL = 0x0006, TAGID_UNALLOC_SPACE = 0x0007, TAGID_TERM = 0x0008,
  TAGID_LOGVOL_INTEGRITY = 0x0009, TAGID_FSD = 0x0100, TAGID_FID = 0x0101, TAGID_AED = 0x0102,
  TAGID_IE = 0x0103, TAGID_TE = 0x0104, TAGID_FILE_ENTRY = 0x0105, TAGID_EAHD = 0x0106,
  TAGID_USE = 0x0107, TAGID_SBD = 0x0108, TAGID_PIE = 0x0109, TAGID_EFE = 0x010A
}
 
enum  udf_charspec_enum_t {
  CHARSPEC_TYPE_CS0 = 0x00, CHARSPEC_TYPE_CS1 = 0x01, CHARSPEC_TYPE_CS2 = 0x02, CHARSPEC_TYPE_CS3 = 0x03,
  CHARSPEC_TYPE_CS4 = 0x04, CHARSPEC_TYPE_CS5 = 0x05, CHARSPEC_TYPE_CS6 = 0x06, CHARSPEC_TYPE_CS7 = 0x07,
  CHARSPEC_TYPE_CS8 = 0x08
}
 
enum  ecma_167_timezone_enum_t {
  TIMESTAMP_TYPE_CUT = 0x0000, TIMESTAMP_TYPE_LOCAL = 0x1000, TIMESTAMP_TYPE_AGREEMENT = 0x2000, TIMESTAMP_TYPE_MASK = 0xF000,
  TIMESTAMP_TIMEZONE_MASK = 0x0FFF
}
 
enum  file_characteristics_t {
  UDF_FILE_HIDDEN = (1 << 0), UDF_FILE_DIRECTORY = (1 << 1), UDF_FILE_DELETED = (1 << 2), UDF_FILE_PARENT = (1 << 3),
  UDF_FILE_METADATA = (1 << 4)
}
 
enum  icbtag_file_type_enum_t {
  ICBTAG_FILE_TYPE_UNDEF = 0x00, ICBTAG_FILE_TYPE_USE = 0x01, ICBTAG_FILE_TYPE_PIE = 0x02, ICBTAG_FILE_TYPE_IE = 0x03,
  ICBTAG_FILE_TYPE_DIRECTORY = 0x04, ICBTAG_FILE_TYPE_REGULAR = 0x05, ICBTAG_FILE_TYPE_BLOCK = 0x06, ICBTAG_FILE_TYPE_CHAR = 0x07,
  ICBTAG_FILE_TYPE_EA = 0x08, ICBTAG_FILE_TYPE_FIFO = 0x09, ICBTAG_FILE_TYPE_SOCKET = 0x0A, ICBTAG_FILE_TYPE_TE = 0x0B,
  ICBTAG_FILE_TYPE_SYMLINK = 0x0C, ICBTAG_FILE_TYPE_STREAMDIR = 0x0D
}
 
enum  icbtag_flag_enum_t {
  ICBTAG_FLAG_AD_MASK = 0x0007, ICBTAG_FLAG_AD_SHORT = 0x0000, ICBTAG_FLAG_AD_LONG = 0x0001, ICBTAG_FLAG_AD_EXTENDED = 0x0002,
  ICBTAG_FLAG_AD_IN_ICB = 0x0003, ICBTAG_FLAG_SORTED = 0x0008, ICBTAG_FLAG_NONRELOCATABLE = 0x0010, ICBTAG_FLAG_ARCHIVE = 0x0020,
  ICBTAG_FLAG_SETUID = 0x0040, ICBTAG_FLAG_SETGID = 0x0080, ICBTAG_FLAG_STICKY = 0x0100, ICBTAG_FLAG_CONTIGUOUS = 0x0200,
  ICBTAG_FLAG_SYSTEM = 0x0400, ICBTAG_FLAG_TRANSFORMED = 0x0800, ICBTAG_FLAG_MULTIVERSIONS = 0x1000, ICBTAG_FLAG_STREAM = 0x2000
}
 

Variables

PRAGMA_BEGIN_PACKED struct
udf_charspec_s 
GNUC_PACKED
 
const char VSD_STD_ID_BEA01 [sizeof("BEA01")-1]
 
const char VSD_STD_ID_BOOT2 [sizeof("BOOT2")-1]
 
const char VSD_STD_ID_CD001 [sizeof("CD001")-1]
 
const char VSD_STD_ID_CDW01 [sizeof("CDW02")-1]
 
const char VSD_STD_ID_NSR03 [sizeof("NSR03")-1]
 
const char VSD_STD_ID_TEA01 [sizeof("TEA01")-1]
 
PRAGMA_END_PACKED tag_id_t debug_tagid
 
file_characteristics_t debug_file_characteristics
 
icbtag_file_type_enum_t debug_icbtag_file_type_enum
 
icbtag_flag_enum_t debug_flag_enum
 
ecma_167_enum1_t debug_ecma_167_enum1
 
ecma_167_timezone_enum_t debug_ecma_167_timezone_enum
 

Detailed Description

Definitions based on ECMA-167 3rd edition (June 1997) See http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-167.pdf.

Macro Definition Documentation

#define BOOT_FLAGS_ERASE   0x01

Flags (ECMA 167r3 2/9.4.12)

#define ENTITYID_FLAGS_DIRTY   0x00

Flags (ECMA 167r3 1/7.4.1)

#define ENTITYID_FLAGS_PROTECTED   0x01
#define EXT_NEXT_EXTENT_ALLOCDECS   0xC0000000
#define EXT_NOT_RECORDED_ALLOCATED   0x40000000
#define EXT_NOT_RECORDED_NOT_ALLOCATED   0x80000000
#define EXT_RECORDED_ALLOCATED   0x00000000

Short Allocation Descriptor (ECMA 167r3 4/14.14.1) Extent Length (ECMA 167r3 4/14.14.1.1)

#define EXTATTR_ALT_PERMS   3
#define EXTATTR_APP_USE   65536
#define EXTATTR_CHAR_SET   1
#define EXTATTR_DEV_SPEC   12
#define EXTATTR_FILE_TIMES   5
#define EXTATTR_IMP_USE   2048
#define EXTATTR_INFO_TIMES   6
#define FE_PERM_G_CHATTR   0x00000100U
#define FE_PERM_G_DELETE   0x00000200U
#define FE_PERM_G_EXEC   0x00000020U
#define FE_PERM_G_READ   0x00000080U
#define FE_PERM_G_WRITE   0x00000040U
#define FE_PERM_O_CHATTR   0x00000008U
#define FE_PERM_O_DELETE   0x00000010U
#define FE_PERM_O_EXEC   0x00000001U

Permissions (ECMA 167r3 4/14.9.5)

#define FE_PERM_O_READ   0x00000004U
#define FE_PERM_O_WRITE   0x00000002U
#define FE_PERM_U_CHATTR   0x00002000U
#define FE_PERM_U_DELETE   0x00004000U
#define FE_PERM_U_EXEC   0x00000400U
#define FE_PERM_U_READ   0x00001000U
#define FE_PERM_U_WRITE   0x00000800U
#define FE_RECORD_DISPLAY_ATTR_1   0x01
#define FE_RECORD_DISPLAY_ATTR_2   0x02
#define FE_RECORD_DISPLAY_ATTR_3   0x03
#define FE_RECORD_DISPLAY_ATTR_UNDEF   0x00

Record Display Attributes (ECMA 167r3 4/14.9.8)

#define FE_RECORD_FMT_CR   0x09
#define FE_RECORD_FMT_CRLF   0x0A
#define FE_RECORD_FMT_FIXED   0x02
#define FE_RECORD_FMT_FIXED_PAD   0x01
#define FE_RECORD_FMT_LF   0x08
#define FE_RECORD_FMT_LFCR   0x0B
#define FE_RECORD_FMT_PRINT   0x07
#define FE_RECORD_FMT_UNDEF   0x00

Record Format (ECMA 167r3 4/14.9.7)

#define FE_RECORD_FMT_VARIABLE16   0x04
#define FE_RECORD_FMT_VARIABLE16_MSB   0x05
#define FE_RECORD_FMT_VARIABLE32   0x06
#define FE_RECORD_FMT_VARIABLE8   0x03
#define FTE_BACKUP   0x00000002
#define FTE_CREATION   0x00000001

FileTimeExistence (ECMA 167r3 4/14.10.5.6)

#define FTE_DELETION   0x00000004
#define FTE_EFFECTIVE   0x00000008
#define GP_PARTIITON_MAP_TYPE_1   0x01
#define GP_PARTITION_MAP_TYPE_2   0x02
#define GP_PARTITION_MAP_TYPE_UNDEF   0x00

Partition Map Type (ECMA 167r3 3/10.7.1.1)

#define ICBTAG_STRATEGY_TYPE_1   0x0001

4/A.2 Direct entries Uint16

#define ICBTAG_STRATEGY_TYPE_2   0x0002

4/A.3 List of ICB direct entries

#define ICBTAG_STRATEGY_TYPE_3   0x0003

4/A.4

#define ICBTAG_STRATEGY_TYPE_4   0x0004

4/A.5 Hierarchy having one single ICB with one direct entry. This is what's most often used.

#define ICBTAG_STRATEGY_TYPE_UNDEF   0x0000

Strategy Type (ECMA 167r3 4/14.6.2) which helpfully points largely to 4/A.x

#define LVID_INTEGRITY_TYPE_CLOSE   0x00000001
#define LVID_INTEGRITY_TYPE_OPEN   0x00000000

Integrity Type (ECMA 167r3 3/10.10.3)

#define PD_ACCESS_TYPE_NONE   0x00000000

Access Type (ECMA 167r3 3/10.5.7)

#define PD_ACCESS_TYPE_OVERWRITABLE   0x00000004
#define PD_ACCESS_TYPE_READ_ONLY   0x00000001
#define PD_ACCESS_TYPE_REWRITABLE   0x00000003
#define PD_ACCESS_TYPE_WRITE_ONCE   0x00000002
#define PD_PARTITION_CONTENTS_CD001   "+CD001"
#define PD_PARTITION_CONTENTS_CDW02   "+CDW02"
#define PD_PARTITION_CONTENTS_FDC01   "+FDC01"

Partition Contents (ECMA 167r3 3/10.5.5)

#define PD_PARTITION_CONTENTS_NSR02   "+NSR02"

Partition Contents (ECMA 167r2 3/10.5.3)

#define PD_PARTITION_CONTENTS_NSR03   "+NSR03"
#define PD_PARTITION_FLAGS_ALLOC   0x0001

Partition Flags (ECMA 167r3 3/10.5.3)

#define PVD_FLAGS_VSID_COMMON   0x0001

Flags (ECMA 167r3 3/10.1.21)

#define TIMESTAMP_TIMEZONE_MASK   0x0FFF
#define TIMESTAMP_TYPE_AGREEMENT   0x2000
#define TIMESTAMP_TYPE_CUT   0x0000
#define TIMESTAMP_TYPE_LOCAL   0x1000
#define TIMESTAMP_TYPE_MASK   0xF000
#define UDF_FENTRY_PERM_GRP_MASK   0xE0
#define UDF_FENTRY_PERM_OWNER_MASK   0x1C00
#define UDF_FENTRY_PERM_USER_MASK   0x07
#define UDF_FENTRY_SIZE   176
#define UDF_ICB_TAG_FLAGS_SETGID   0x80
#define UDF_ICB_TAG_FLAGS_SETUID   0x40
#define UDF_ICB_TAG_FLAGS_STICKY   0x100
#define UDF_LENGTH_MASK   0x3fffffff

Section 1/7.1.12

#define VSD_STD_ID_BEA01   "BEA01"

ECMA-167 2/9.2

#define VSD_STD_ID_BOOT2   "BOOT2"

ECMA-167 2/9.4

#define VSD_STD_ID_CD001   "CD001"

ECMA-119

#define VSD_STD_ID_CDW02   "CDW02"

ECMA-168

#define VSD_STD_ID_NSR02   "NSR02" /* (3/9.1) */

Standard Identifier (EMCA 167r2 2/9.1.2)

ECMA-167, 3/9.1 NOTE: ECMA-167, 2nd edition

#define VSD_STD_ID_NSR02   "NSR02"

Standard Identifier (EMCA 167r2 2/9.1.2)

ECMA-167, 3/9.1 NOTE: ECMA-167, 2nd edition

#define VSD_STD_ID_NSR03   "NSR03"

ECMA-167 3/9.1

#define VSD_STD_ID_TEA01   "TEA01"

ECMA-168 2/9.3

Typedef Documentation

typedef char udf_dstring

Section 1/7.1.7

typedef struct udf_ext_ad_s udf_ext_ad_t
typedef struct udf_fsd_s udf_fsd_t
typedef struct udf_icbtag_s udf_icbtag_t
typedef struct udf_lb_addr_s udf_lb_addr_t
typedef struct udf_long_ad_s udf_long_ad_t
typedef struct udf_pvd_s udf_pvd_t
typedef struct udf_regid_s udf_regid_t
typedef struct udf_tag_s udf_tag_t
typedef uint16_t udf_Uint16_t

Section 1/7/1.1

typedef uint32_t udf_Uint32_t

Section 1/7.1.3

typedef uint64_t udf_Uint64_t

Section 1/7.1.5

typedef uint8_t udf_Uint8_t

Enumeration Type Documentation

Imagine the below enum values as #define'd values rather than distinct values of an enum.

Enumerator
VSD_STD_ID_SIZE 
UDF_REGID_ID_SIZE 

Volume Structure Descriptor (ECMA 167r3 2/9.1) See identifier (ECMA 167r3 1/7.4)

UDF_VOLID_SIZE 
UDF_FID_SIZE 
UDF_VOLSET_ID_SIZE 

Type and Time Zone (ECMA 167r3 1/7.3.1)

Imagine the below enum values as #define'd values rather than distinct values of an enum.

Enumerator
TIMESTAMP_TYPE_CUT 
TIMESTAMP_TYPE_LOCAL 
TIMESTAMP_TYPE_AGREEMENT 
TIMESTAMP_TYPE_MASK 
TIMESTAMP_TIMEZONE_MASK 

File Characteristics (ECMA 167r3 4/14.4.3)

Imagine the below enumeration values are #defines to be used in a bitmask rather than distinct values of an enum.

Enumerator
UDF_FILE_HIDDEN 
UDF_FILE_DIRECTORY 
UDF_FILE_DELETED 
UDF_FILE_PARENT 
UDF_FILE_METADATA 

File Type (ECMA 167r3 4/14.6.6)

Imagine the below enum values as #define'd values rather than distinct values of an enum.

Enumerator
ICBTAG_FILE_TYPE_UNDEF 
ICBTAG_FILE_TYPE_USE 
ICBTAG_FILE_TYPE_PIE 
ICBTAG_FILE_TYPE_IE 
ICBTAG_FILE_TYPE_DIRECTORY 
ICBTAG_FILE_TYPE_REGULAR 
ICBTAG_FILE_TYPE_BLOCK 
ICBTAG_FILE_TYPE_CHAR 
ICBTAG_FILE_TYPE_EA 
ICBTAG_FILE_TYPE_FIFO 
ICBTAG_FILE_TYPE_SOCKET 
ICBTAG_FILE_TYPE_TE 
ICBTAG_FILE_TYPE_SYMLINK 
ICBTAG_FILE_TYPE_STREAMDIR 

Flags (ECMA 167r3 4/14.6.8)

Enumerator
ICBTAG_FLAG_AD_MASK 

"&" this to get below address flags

ICBTAG_FLAG_AD_SHORT 

The allocation descriptor field is filled with short_ad's. If the offset is beyond the current extent, look for the next extent.

ICBTAG_FLAG_AD_LONG 

The allocation descriptor field is filled with long_ad's If the offset is beyond the current extent, look for the next extent.

ICBTAG_FLAG_AD_EXTENDED 
ICBTAG_FLAG_AD_IN_ICB 

This type means that the file data is stored in the allocation descriptor field of the file entry.

ICBTAG_FLAG_SORTED 
ICBTAG_FLAG_NONRELOCATABLE 
ICBTAG_FLAG_ARCHIVE 
ICBTAG_FLAG_SETUID 
ICBTAG_FLAG_SETGID 
ICBTAG_FLAG_STICKY 
ICBTAG_FLAG_CONTIGUOUS 
ICBTAG_FLAG_SYSTEM 
ICBTAG_FLAG_TRANSFORMED 
ICBTAG_FLAG_MULTIVERSIONS 
ICBTAG_FLAG_STREAM 
enum tag_id_t

Tag Identifier (ECMA 167r3 3/7.2.1)

Enumerator
TAGID_PRI_VOL 
TAGID_ANCHOR 
TAGID_VOL 
TAGID_IMP_VOL 
TAGID_PARTITION 
TAGID_LOGVOL 
TAGID_UNALLOC_SPACE 
TAGID_TERM 
TAGID_LOGVOL_INTEGRITY 
TAGID_FSD 
TAGID_FID 
TAGID_AED 
TAGID_IE 
TAGID_TE 
TAGID_FILE_ENTRY 
TAGID_EAHD 
TAGID_USE 
TAGID_SBD 
TAGID_PIE 
TAGID_EFE 

Character Set Type (ECMA 167r3 1/7.2.1.1)

Enumerator
CHARSPEC_TYPE_CS0 

Section 1/7.2.2

CHARSPEC_TYPE_CS1 

Section 1/7.2.3

CHARSPEC_TYPE_CS2 

Section 1/7.2.4

CHARSPEC_TYPE_CS3 

Section 1/7.2.5

CHARSPEC_TYPE_CS4 

Section 1/7.2.6

CHARSPEC_TYPE_CS5 

Section 1/7.2.7

CHARSPEC_TYPE_CS6 

Section 1/7.2.8

CHARSPEC_TYPE_CS7 

Section 1/7.2.9

CHARSPEC_TYPE_CS8 

Section 1/7.2.10

Variable Documentation

ecma_167_enum1_t debug_ecma_167_enum1
ecma_167_timezone_enum_t debug_ecma_167_timezone_enum
file_characteristics_t debug_file_characteristics
icbtag_flag_enum_t debug_flag_enum
icbtag_file_type_enum_t debug_icbtag_file_type_enum

The below variables are trickery to force the above enum symbol values to be recorded in debug symbol tables. They are used to allow one refer to the enumeration value names in the typedefs above in a debugger and in debugger expressions.

struct extended_file_entry GNUC_PACKED
const char VSD_STD_ID_BEA01[sizeof("BEA01")-1]

Standard Identifier (ECMA 167r3 2/9.1.2)

const char VSD_STD_ID_BOOT2[sizeof("BOOT2")-1]
const char VSD_STD_ID_CD001[sizeof("CD001")-1]
const char VSD_STD_ID_CDW01[sizeof("CDW02")-1]
const char VSD_STD_ID_NSR03[sizeof("NSR03")-1]
const char VSD_STD_ID_TEA01[sizeof("TEA01")-1]