18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * osta_udf.h
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * This file is based on OSTA UDF(tm) 2.60 (March 1, 2005)
58c2ecf20Sopenharmony_ci * http://www.osta.org
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Copyright (c) 2001-2004  Ben Fennema
88c2ecf20Sopenharmony_ci * Copyright (c) 2017-2019  Pali Rohár <pali@kernel.org>
98c2ecf20Sopenharmony_ci * All rights reserved.
108c2ecf20Sopenharmony_ci *
118c2ecf20Sopenharmony_ci * Redistribution and use in source and binary forms, with or without
128c2ecf20Sopenharmony_ci * modification, are permitted provided that the following conditions
138c2ecf20Sopenharmony_ci * are met:
148c2ecf20Sopenharmony_ci * 1. Redistributions of source code must retain the above copyright
158c2ecf20Sopenharmony_ci *    notice, this list of conditions, and the following disclaimer,
168c2ecf20Sopenharmony_ci *    without modification.
178c2ecf20Sopenharmony_ci * 2. The name of the author may not be used to endorse or promote products
188c2ecf20Sopenharmony_ci *    derived from this software without specific prior written permission.
198c2ecf20Sopenharmony_ci *
208c2ecf20Sopenharmony_ci * Alternatively, this software may be distributed under the terms of the
218c2ecf20Sopenharmony_ci * GNU Public License ("GPL").
228c2ecf20Sopenharmony_ci *
238c2ecf20Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
248c2ecf20Sopenharmony_ci * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
258c2ecf20Sopenharmony_ci * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
268c2ecf20Sopenharmony_ci * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
278c2ecf20Sopenharmony_ci * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
288c2ecf20Sopenharmony_ci * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
298c2ecf20Sopenharmony_ci * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
308c2ecf20Sopenharmony_ci * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
318c2ecf20Sopenharmony_ci * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
328c2ecf20Sopenharmony_ci * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
338c2ecf20Sopenharmony_ci * SUCH DAMAGE.
348c2ecf20Sopenharmony_ci */
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci/**
378c2ecf20Sopenharmony_ci * @file
388c2ecf20Sopenharmony_ci * OSTA-UDF defines and structure definitions
398c2ecf20Sopenharmony_ci */
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#include "ecma_167.h"
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#ifndef _OSTA_UDF_H
448c2ecf20Sopenharmony_ci#define _OSTA_UDF_H 1
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci/* OSTA CS0 Charspec (UDF 2.60 2.1.2) */
478c2ecf20Sopenharmony_ci#define UDF_CHAR_SET_TYPE		0
488c2ecf20Sopenharmony_ci#define UDF_CHAR_SET_INFO		"OSTA Compressed Unicode"
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci/* Entity Identifier (UDF 2.60 2.1.5) */
518c2ecf20Sopenharmony_ci/* Identifiers (UDF 2.60 2.1.5.2) */
528c2ecf20Sopenharmony_ci/* Implementation Use Extended Attribute (UDF 2.60 3.3.4.5) */
538c2ecf20Sopenharmony_ci/* Virtual Allocation Table (UDF 1.50 2.2.10) */
548c2ecf20Sopenharmony_ci/* Logical Volume Extended Information (UDF 1.50 Errata, DCN 5003, 3.3.4.5.1.3) */
558c2ecf20Sopenharmony_ci/* OS2EA (UDF 1.50 3.3.4.5.3.1) */
568c2ecf20Sopenharmony_ci/* MacUniqueIDTable (UDF 1.50 3.3.4.5.4.3) */
578c2ecf20Sopenharmony_ci/* MacResourceFork (UDF 1.50 3.3.4.5.4.4) */
588c2ecf20Sopenharmony_ci#define UDF_ID_DEVELOPER		"*Linux UDFFS"
598c2ecf20Sopenharmony_ci#define	UDF_ID_COMPLIANT		"*OSTA UDF Compliant"
608c2ecf20Sopenharmony_ci#define UDF_ID_LV_INFO			"*UDF LV Info"
618c2ecf20Sopenharmony_ci#define UDF_ID_FREE_EA			"*UDF FreeEASpace"
628c2ecf20Sopenharmony_ci#define UDF_ID_FREE_APP_EA		"*UDF FreeAppEASpace"
638c2ecf20Sopenharmony_ci#define UDF_ID_DVD_CGMS			"*UDF DVD CGMS Info"
648c2ecf20Sopenharmony_ci#define UDF_ID_VAT_LVEXTENSION		"*UDF VAT LVExtension"
658c2ecf20Sopenharmony_ci#define UDF_ID_OS2_EA			"*UDF OS/2 EA"
668c2ecf20Sopenharmony_ci#define UDF_ID_OS2_EA_LENGTH		"*UDF OS/2 EALength"
678c2ecf20Sopenharmony_ci#define UDF_ID_MAC_VOLUME		"*UDF Mac VolumeInfo"
688c2ecf20Sopenharmony_ci#define UDF_ID_MAC_FINDER		"*UDF Mac FinderInfo"
698c2ecf20Sopenharmony_ci#define UDF_ID_MAC_UNIQUE		"*UDF Mac UniqueIDTable"
708c2ecf20Sopenharmony_ci#define UDF_ID_MAC_RESOURCE		"*UDF Mac ResourceFork"
718c2ecf20Sopenharmony_ci#define UDF_ID_OS400_DIRINFO		"*UDF OS/400 DirInfo"
728c2ecf20Sopenharmony_ci#define UDF_ID_VIRTUAL			"*UDF Virtual Partition"
738c2ecf20Sopenharmony_ci#define UDF_ID_SPARABLE			"*UDF Sparable Partition"
748c2ecf20Sopenharmony_ci#define UDF_ID_ALLOC			"*UDF Virtual Alloc Tbl"
758c2ecf20Sopenharmony_ci#define UDF_ID_SPARING			"*UDF Sparing Table"
768c2ecf20Sopenharmony_ci#define UDF_ID_METADATA			"*UDF Metadata Partition"
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci/* Identifier Suffix (UDF 2.60 2.1.5.3) */
798c2ecf20Sopenharmony_ci#define DOMAIN_FLAGS_HARD_WRITE_PROTECT	0x01
808c2ecf20Sopenharmony_ci#define DOMAIN_FLAGS_SOFT_WRITE_PROTECT	0x02
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_cistruct domainIdentSuffix {
838c2ecf20Sopenharmony_ci	__le16		UDFRevision;
848c2ecf20Sopenharmony_ci	uint8_t		domainFlags;
858c2ecf20Sopenharmony_ci	uint8_t		reserved[5];
868c2ecf20Sopenharmony_ci} __packed;
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_cistruct UDFIdentSuffix {
898c2ecf20Sopenharmony_ci	__le16		UDFRevision;
908c2ecf20Sopenharmony_ci	uint8_t		OSClass;
918c2ecf20Sopenharmony_ci	uint8_t		OSIdentifier;
928c2ecf20Sopenharmony_ci	uint8_t		reserved[4];
938c2ecf20Sopenharmony_ci} __packed;
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_cistruct impIdentSuffix {
968c2ecf20Sopenharmony_ci	uint8_t		OSClass;
978c2ecf20Sopenharmony_ci	uint8_t		OSIdentifier;
988c2ecf20Sopenharmony_ci	uint8_t		impUse[6];
998c2ecf20Sopenharmony_ci} __packed;
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_cistruct appIdentSuffix {
1028c2ecf20Sopenharmony_ci	uint8_t		impUse[8];
1038c2ecf20Sopenharmony_ci} __packed;
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci/* Logical Volume Integrity Descriptor (UDF 2.60 2.2.6) */
1068c2ecf20Sopenharmony_ci/* Implementation Use (UDF 2.60 2.2.6.4) */
1078c2ecf20Sopenharmony_cistruct logicalVolIntegrityDescImpUse {
1088c2ecf20Sopenharmony_ci	struct regid	impIdent;
1098c2ecf20Sopenharmony_ci	__le32		numFiles;
1108c2ecf20Sopenharmony_ci	__le32		numDirs;
1118c2ecf20Sopenharmony_ci	__le16		minUDFReadRev;
1128c2ecf20Sopenharmony_ci	__le16		minUDFWriteRev;
1138c2ecf20Sopenharmony_ci	__le16		maxUDFWriteRev;
1148c2ecf20Sopenharmony_ci	uint8_t		impUse[0];
1158c2ecf20Sopenharmony_ci} __packed;
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci/* Implementation Use Volume Descriptor (UDF 2.60 2.2.7) */
1188c2ecf20Sopenharmony_ci/* Implementation Use (UDF 2.60 2.2.7.2) */
1198c2ecf20Sopenharmony_cistruct impUseVolDescImpUse {
1208c2ecf20Sopenharmony_ci	struct charspec	LVICharset;
1218c2ecf20Sopenharmony_ci	dstring		logicalVolIdent[128];
1228c2ecf20Sopenharmony_ci	dstring		LVInfo1[36];
1238c2ecf20Sopenharmony_ci	dstring		LVInfo2[36];
1248c2ecf20Sopenharmony_ci	dstring		LVInfo3[36];
1258c2ecf20Sopenharmony_ci	struct regid	impIdent;
1268c2ecf20Sopenharmony_ci	uint8_t		impUse[128];
1278c2ecf20Sopenharmony_ci} __packed;
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_cistruct udfPartitionMap2 {
1308c2ecf20Sopenharmony_ci	uint8_t		partitionMapType;
1318c2ecf20Sopenharmony_ci	uint8_t		partitionMapLength;
1328c2ecf20Sopenharmony_ci	uint8_t		reserved1[2];
1338c2ecf20Sopenharmony_ci	struct regid	partIdent;
1348c2ecf20Sopenharmony_ci	__le16		volSeqNum;
1358c2ecf20Sopenharmony_ci	__le16		partitionNum;
1368c2ecf20Sopenharmony_ci} __packed;
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci/* Virtual Partition Map (UDF 2.60 2.2.8) */
1398c2ecf20Sopenharmony_cistruct virtualPartitionMap {
1408c2ecf20Sopenharmony_ci	uint8_t		partitionMapType;
1418c2ecf20Sopenharmony_ci	uint8_t		partitionMapLength;
1428c2ecf20Sopenharmony_ci	uint8_t		reserved1[2];
1438c2ecf20Sopenharmony_ci	struct regid	partIdent;
1448c2ecf20Sopenharmony_ci	__le16		volSeqNum;
1458c2ecf20Sopenharmony_ci	__le16		partitionNum;
1468c2ecf20Sopenharmony_ci	uint8_t		reserved2[24];
1478c2ecf20Sopenharmony_ci} __packed;
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ci/* Sparable Partition Map (UDF 2.60 2.2.9) */
1508c2ecf20Sopenharmony_cistruct sparablePartitionMap {
1518c2ecf20Sopenharmony_ci	uint8_t partitionMapType;
1528c2ecf20Sopenharmony_ci	uint8_t partitionMapLength;
1538c2ecf20Sopenharmony_ci	uint8_t reserved1[2];
1548c2ecf20Sopenharmony_ci	struct regid partIdent;
1558c2ecf20Sopenharmony_ci	__le16 volSeqNum;
1568c2ecf20Sopenharmony_ci	__le16 partitionNum;
1578c2ecf20Sopenharmony_ci	__le16 packetLength;
1588c2ecf20Sopenharmony_ci	uint8_t numSparingTables;
1598c2ecf20Sopenharmony_ci	uint8_t reserved2[1];
1608c2ecf20Sopenharmony_ci	__le32 sizeSparingTable;
1618c2ecf20Sopenharmony_ci	__le32 locSparingTable[4];
1628c2ecf20Sopenharmony_ci} __packed;
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci/* Metadata Partition Map (UDF 2.60 2.2.10) */
1658c2ecf20Sopenharmony_cistruct metadataPartitionMap {
1668c2ecf20Sopenharmony_ci	uint8_t		partitionMapType;
1678c2ecf20Sopenharmony_ci	uint8_t		partitionMapLength;
1688c2ecf20Sopenharmony_ci	uint8_t		reserved1[2];
1698c2ecf20Sopenharmony_ci	struct regid	partIdent;
1708c2ecf20Sopenharmony_ci	__le16		volSeqNum;
1718c2ecf20Sopenharmony_ci	__le16		partitionNum;
1728c2ecf20Sopenharmony_ci	__le32		metadataFileLoc;
1738c2ecf20Sopenharmony_ci	__le32		metadataMirrorFileLoc;
1748c2ecf20Sopenharmony_ci	__le32		metadataBitmapFileLoc;
1758c2ecf20Sopenharmony_ci	__le32		allocUnitSize;
1768c2ecf20Sopenharmony_ci	__le16		alignUnitSize;
1778c2ecf20Sopenharmony_ci	uint8_t		flags;
1788c2ecf20Sopenharmony_ci	uint8_t		reserved2[5];
1798c2ecf20Sopenharmony_ci} __packed;
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci/* Virtual Allocation Table (UDF 1.5 2.2.10) */
1828c2ecf20Sopenharmony_cistruct virtualAllocationTable15 {
1838c2ecf20Sopenharmony_ci	__le32		vatEntry[0];
1848c2ecf20Sopenharmony_ci	struct regid	vatIdent;
1858c2ecf20Sopenharmony_ci	__le32		previousVATICBLoc;
1868c2ecf20Sopenharmony_ci} __packed;
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci#define ICBTAG_FILE_TYPE_VAT15		0x00U
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci/* Virtual Allocation Table (UDF 2.60 2.2.11) */
1918c2ecf20Sopenharmony_cistruct virtualAllocationTable20 {
1928c2ecf20Sopenharmony_ci	__le16		lengthHeader;
1938c2ecf20Sopenharmony_ci	__le16		lengthImpUse;
1948c2ecf20Sopenharmony_ci	dstring		logicalVolIdent[128];
1958c2ecf20Sopenharmony_ci	__le32		previousVATICBLoc;
1968c2ecf20Sopenharmony_ci	__le32		numFiles;
1978c2ecf20Sopenharmony_ci	__le32		numDirs;
1988c2ecf20Sopenharmony_ci	__le16		minUDFReadRev;
1998c2ecf20Sopenharmony_ci	__le16		minUDFWriteRev;
2008c2ecf20Sopenharmony_ci	__le16		maxUDFWriteRev;
2018c2ecf20Sopenharmony_ci	__le16		reserved;
2028c2ecf20Sopenharmony_ci	uint8_t		impUse[0];
2038c2ecf20Sopenharmony_ci	__le32		vatEntry[0];
2048c2ecf20Sopenharmony_ci} __packed;
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci#define ICBTAG_FILE_TYPE_VAT20		0xF8U
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci/* Sparing Table (UDF 2.60 2.2.12) */
2098c2ecf20Sopenharmony_cistruct sparingEntry {
2108c2ecf20Sopenharmony_ci	__le32		origLocation;
2118c2ecf20Sopenharmony_ci	__le32		mappedLocation;
2128c2ecf20Sopenharmony_ci} __packed;
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_cistruct sparingTable {
2158c2ecf20Sopenharmony_ci	struct tag	descTag;
2168c2ecf20Sopenharmony_ci	struct regid	sparingIdent;
2178c2ecf20Sopenharmony_ci	__le16		reallocationTableLen;
2188c2ecf20Sopenharmony_ci	__le16		reserved;
2198c2ecf20Sopenharmony_ci	__le32		sequenceNum;
2208c2ecf20Sopenharmony_ci	struct sparingEntry
2218c2ecf20Sopenharmony_ci			mapEntry[0];
2228c2ecf20Sopenharmony_ci} __packed;
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci/* Metadata File (and Metadata Mirror File) (UDF 2.60 2.2.13.1) */
2258c2ecf20Sopenharmony_ci#define ICBTAG_FILE_TYPE_MAIN		0xFA
2268c2ecf20Sopenharmony_ci#define ICBTAG_FILE_TYPE_MIRROR		0xFB
2278c2ecf20Sopenharmony_ci#define ICBTAG_FILE_TYPE_BITMAP		0xFC
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci/* struct long_ad ICB - ADImpUse (UDF 2.60 2.2.4.3) */
2308c2ecf20Sopenharmony_cistruct allocDescImpUse {
2318c2ecf20Sopenharmony_ci	__le16		flags;
2328c2ecf20Sopenharmony_ci	uint8_t		impUse[4];
2338c2ecf20Sopenharmony_ci} __packed;
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci#define AD_IU_EXT_ERASED		0x0001
2368c2ecf20Sopenharmony_ci
2378c2ecf20Sopenharmony_ci/* Real-Time Files (UDF 2.60 6.11) */
2388c2ecf20Sopenharmony_ci#define ICBTAG_FILE_TYPE_REALTIME	0xF9U
2398c2ecf20Sopenharmony_ci
2408c2ecf20Sopenharmony_ci/* Implementation Use Extended Attribute (UDF 2.60 3.3.4.5) */
2418c2ecf20Sopenharmony_ci/* FreeEASpace (UDF 2.60 3.3.4.5.1.1) */
2428c2ecf20Sopenharmony_cistruct freeEaSpace {
2438c2ecf20Sopenharmony_ci	__le16		headerChecksum;
2448c2ecf20Sopenharmony_ci	uint8_t		freeEASpace[0];
2458c2ecf20Sopenharmony_ci} __packed;
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci/* DVD Copyright Management Information (UDF 2.60 3.3.4.5.1.2) */
2488c2ecf20Sopenharmony_cistruct DVDCopyrightImpUse {
2498c2ecf20Sopenharmony_ci	__le16		headerChecksum;
2508c2ecf20Sopenharmony_ci	uint8_t		CGMSInfo;
2518c2ecf20Sopenharmony_ci	uint8_t		dataType;
2528c2ecf20Sopenharmony_ci	uint8_t		protectionSystemInfo[4];
2538c2ecf20Sopenharmony_ci} __packed;
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci/* Logical Volume Extended Information (UDF 1.50 Errata, DCN 5003, 3.3.4.5.1.3) */
2568c2ecf20Sopenharmony_cistruct LVExtensionEA {
2578c2ecf20Sopenharmony_ci	__le16		headerChecksum;
2588c2ecf20Sopenharmony_ci	__le64		verificationID;
2598c2ecf20Sopenharmony_ci	__le32		numFiles;
2608c2ecf20Sopenharmony_ci	__le32		numDirs;
2618c2ecf20Sopenharmony_ci	dstring		logicalVolIdent[128];
2628c2ecf20Sopenharmony_ci} __packed;
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci/* Application Use Extended Attribute (UDF 2.60 3.3.4.6) */
2658c2ecf20Sopenharmony_ci/* FreeAppEASpace (UDF 2.60 3.3.4.6.1) */
2668c2ecf20Sopenharmony_cistruct freeAppEASpace {
2678c2ecf20Sopenharmony_ci	__le16		headerChecksum;
2688c2ecf20Sopenharmony_ci	uint8_t		freeEASpace[0];
2698c2ecf20Sopenharmony_ci} __packed;
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ci/* UDF Defined System Stream (UDF 2.60 3.3.7) */
2728c2ecf20Sopenharmony_ci#define UDF_ID_UNIQUE_ID		"*UDF Unique ID Mapping Data"
2738c2ecf20Sopenharmony_ci#define UDF_ID_NON_ALLOC		"*UDF Non-Allocatable Space"
2748c2ecf20Sopenharmony_ci#define UDF_ID_POWER_CAL		"*UDF Power Cal Table"
2758c2ecf20Sopenharmony_ci#define UDF_ID_BACKUP			"*UDF Backup"
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci/* UDF Defined Non-System Streams (UDF 2.60 3.3.8) */
2788c2ecf20Sopenharmony_ci#define UDF_ID_MAC_RESOURCE_FORK_STREAM	"*UDF Macintosh Resource Fork"
2798c2ecf20Sopenharmony_ci/* #define UDF_ID_OS2_EA		"*UDF OS/2 EA" */
2808c2ecf20Sopenharmony_ci#define UDF_ID_NT_ACL			"*UDF NT ACL"
2818c2ecf20Sopenharmony_ci#define UDF_ID_UNIX_ACL			"*UDF UNIX ACL"
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci/* Operating System Identifiers (UDF 2.60 6.3) */
2848c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_UNDEF		0x00U
2858c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_DOS		0x01U
2868c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_OS2		0x02U
2878c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_MAC		0x03U
2888c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_UNIX		0x04U
2898c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_WIN9X		0x05U
2908c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_WINNT		0x06U
2918c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_OS400		0x07U
2928c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_BEOS		0x08U
2938c2ecf20Sopenharmony_ci#define UDF_OS_CLASS_WINCE		0x09U
2948c2ecf20Sopenharmony_ci
2958c2ecf20Sopenharmony_ci#define UDF_OS_ID_UNDEF			0x00U
2968c2ecf20Sopenharmony_ci#define UDF_OS_ID_DOS			0x00U
2978c2ecf20Sopenharmony_ci#define UDF_OS_ID_OS2			0x00U
2988c2ecf20Sopenharmony_ci#define UDF_OS_ID_MAC			0x00U
2998c2ecf20Sopenharmony_ci#define UDF_OS_ID_MAX_OSX		0x01U
3008c2ecf20Sopenharmony_ci#define UDF_OS_ID_UNIX			0x00U
3018c2ecf20Sopenharmony_ci#define UDF_OS_ID_AIX			0x01U
3028c2ecf20Sopenharmony_ci#define UDF_OS_ID_SOLARIS		0x02U
3038c2ecf20Sopenharmony_ci#define UDF_OS_ID_HPUX			0x03U
3048c2ecf20Sopenharmony_ci#define UDF_OS_ID_IRIX			0x04U
3058c2ecf20Sopenharmony_ci#define UDF_OS_ID_LINUX			0x05U
3068c2ecf20Sopenharmony_ci#define UDF_OS_ID_MKLINUX		0x06U
3078c2ecf20Sopenharmony_ci#define UDF_OS_ID_FREEBSD		0x07U
3088c2ecf20Sopenharmony_ci#define UDF_OS_ID_NETBSD		0x08U
3098c2ecf20Sopenharmony_ci#define UDF_OS_ID_WIN9X			0x00U
3108c2ecf20Sopenharmony_ci#define UDF_OS_ID_WINNT			0x00U
3118c2ecf20Sopenharmony_ci#define UDF_OS_ID_OS400			0x00U
3128c2ecf20Sopenharmony_ci#define UDF_OS_ID_BEOS			0x00U
3138c2ecf20Sopenharmony_ci#define UDF_OS_ID_WINCE			0x00U
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci#endif /* _OSTA_UDF_H */
316