using System;
namespace SabreTools.Data.Models.UDF
{
///
/// Enum for DescriptorTag.TagIdentifier
///
///
public enum TagIdentifier : ushort
{
///
/// Primary Volume Descriptor (3/10.1)
///
PRIMARY_VOLUME_DESCRIPTOR = 1,
///
/// Anchor Volume Descriptor Pointer (3/10.2)
///
ANCHOR_VOLUME_DESCRIPTOR_POINTER = 2,
///
/// Volume Descriptor Pointer (3/10.3)
///
VOLUME_DESCRIPTOR_POINTER = 3,
///
/// Implementation Use Volume Descriptor (3/10.4)
///
IMPLEMENTATION_USE_VOLUME_DESCRIPTOR = 4,
///
/// Partition Descriptor (3/10.5)
///
PARTITION_DESCRIPTOR = 5,
///
/// Logical Volume Descriptor (3/10.6)
///
LOGICAL_VOLUME_DESCRIPTOR = 6,
///
/// Unallocated Space Descriptor (3/10.8)
///
UNALLOCATED_SPACE_DESCRIPTOR = 7,
///
/// Terminating Descriptor (3/10.9)
///
TERMINATING_DESCRIPTOR = 8,
///
/// Logical Volume Integrity Descriptor (3/10.10)
///
LOGICAL_VOLUME_INTEGRITY_DESCRIPTOR = 9,
///
/// File Set Descriptor (4/14.1)
///
FILE_SET_DESCRIPTOR = 256,
///
/// File Identifier Descriptor (4/14.4)
///
FILE_IDENTIFIER_DESCRIPTOR = 257,
///
/// Allocation Extent Descriptor (4/14.5)
///
ALLOCATION_EXTENT_DESCRIPTOR = 258,
///
/// Indirect Entry (4/14.7)
///
INDIRECT_ENTRY = 259,
///
/// Terminal Entry (4/14.8)
///
TERMINAL_ENTRY = 260,
///
/// File Entry (4/14.9)
///
FILE_ENTRY = 261,
///
/// Extended Attribute Header Descriptor (4/14.10.1)
///
EXTENDED_ATTRIBUTE_HEADER_DESCRIPTOR = 262,
///
/// Unallocated Space Entry (4/14.11)
///
UNALLOCATED_SPACE_ENTRY = 263,
///
/// Space Bitmap Descriptor (4/14.12)
///
SPACE_BITMAP_DESCRIPTOR = 264,
///
/// Partition Integrity Entry (4/14.13)
///
PARTITION_INTEGRITY_ENTRY = 265,
///
/// Extended File Entry (4/14.17)
///
EXTENDED_FILE_ENTRY = 266,
}
///
/// Enum for FileIdentifierDescriptor.FileCharacteristics (4/14.4.3)
/// Bits 5-7: Reserved: 0
///
///
[Flags]
public enum FileCharacteristics : byte
{
///
/// No characteristics set
///
NONE = 0x00,
///
/// The existence of the file shall not be made known to the user (hidden)
///
EXISTENCE = 0x01,
///
/// The file is a directory
///
DIRECTORY = 0x02,
///
/// The descriptor shall be ignored (deleted)
///
DELETED = 0x04,
///
/// The ICB identifies the parent directory
///
PARENT = 0x08,
///
/// The file contains implementation use data (UDF: stream directory metadata)
///
METADATA = 0x10,
}
///
/// Enum for ICBTag.FileType (4/14.6.6, UDF 2.3.5.4)
///
///
public enum FileType : byte
{
///
/// Not specified
///
UNSPECIFIED = 0,
///
/// Unallocated Space Entry
///
UNALLOCATED_SPACE_ENTRY = 1,
///
/// Partition Integrity Entry
///
PARTITION_INTEGRITY_ENTRY = 2,
///
/// Indirect Entry
///
INDIRECT_ENTRY = 3,
///
/// Directory
///
DIRECTORY = 4,
///
/// Sequence of bytes (a regular file)
///
FILE = 5,
///
/// Block special device
///
BLOCK_DEVICE = 6,
///
/// Character special device
///
CHARACTER_DEVICE = 7,
///
/// Extended attributes
///
EXTENDED_ATTRIBUTES = 8,
///
/// FIFO file
///
FIFO = 9,
///
/// Socket
///
SOCKET = 10,
///
/// Terminal Entry
///
TERMINAL_ENTRY = 11,
///
/// Symbolic link
///
SYMBOLIC_LINK = 12,
///
/// Stream directory
///
STREAM_DIRECTORY = 13,
///
/// UDF Virtual Allocation Table
///
VIRTUAL_ALLOCATION_TABLE = 248,
///
/// UDF Real-Time file
///
REAL_TIME_FILE = 249,
///
/// UDF Metadata File
///
METADATA_FILE = 250,
///
/// UDF Metadata Mirror File
///
METADATA_MIRROR_FILE = 251,
///
/// UDF Metadata Bitmap File
///
METADATA_BITMAP_FILE = 252,
}
///
/// Enum for the allocation descriptor type in ICBTag.Flags (4/14.6.8)
///
///
public enum AllocationDescriptorType : byte
{
///
/// Short Allocation Descriptors (4/14.14.1)
///
SHORT = 0,
///
/// Long Allocation Descriptors (4/14.14.2)
///
LONG = 1,
///
/// Extended Allocation Descriptors (4/14.14.3)
///
EXTENDED = 2,
///
/// The file data is embedded in the allocation descriptors field
///
EMBEDDED = 3,
}
///
/// Enum for the extent type in the top two bits of an allocation descriptor's extent length (4/14.14.1.1)
///
///
public enum ExtentType : byte
{
///
/// Extent recorded and allocated
///
RECORDED_AND_ALLOCATED = 0,
///
/// Extent not recorded but allocated
///
NOT_RECORDED_BUT_ALLOCATED = 1,
///
/// Extent not recorded and not allocated
///
NOT_RECORDED_NOT_ALLOCATED = 2,
///
/// The extent is the next extent of allocation descriptors
///
NEXT_EXTENT = 3,
}
}