UDF_200.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:3k
源码类别:

DVD

开发平台:

Others

  1. /****************************************************************************************
  2.  *  Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
  3.  *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
  4.  *
  5.  *  File: $Workfile: UDF_200.h $             
  6.  *
  7.  * Description:
  8.  * ============
  9.  * 
  10.  * 
  11.  * Log:
  12.  * ====
  13.  * $Revision: 2 $
  14.  * Last Modified by $Author: Nirm $ at $Modtime: 23/04/02 9:06 $ 
  15.  ****************************************************************************************
  16.  * Updates:
  17.  ****************************************************************************************
  18.  * $Log: /I49/H49V/Playcore/FileSys/UDF/UDF_200.h $
  19.  * 
  20.  * 2     23/04/02 9:30 Nirm
  21.  * - Added dependency in "Config.h".
  22.  * 
  23.  * 1     30/01/02 18:12 Nirm
  24.  ****************************************************************************************/
  25. /////////////////////////////////////////////////////////////////////////////
  26. // UDF_200.h - Definitions and Data-Structures described in UDF-2.00
  27. //
  28. // Author: Nir Milstein
  29. #include "Config.h" // Global Configuration - do not remove!
  30. #ifndef __UDF_200_H_
  31. #define __UDF_200_H_
  32. #include "PlaycoreFileSysUDFECMA167.h"
  33. #include "PlaycoreFileSysUDFUDF_102.h"
  34. // NOTE: All of the structures MUST be packed, since they represent
  35. //  data-structures resident on the Medium!
  36. #pragma pack(1)
  37. /////////////////////////////////////////////////////////////////////////////
  38. // General (UDF-2.00 2.1)
  39. // Character-Sets (UDF-2.00 2.1.1)
  40. #define UNICODE_COMPRESSIONID_UNIQUE_WORD 254
  41. #define UNICODE_COMPRESSIONID_UNIQUE_DWORD 255
  42. // Type2 PartitionMap for Virtual-Partition (UDF-2.00 2.2.8)
  43. #define ENTITYID_VAT "*UDF Virtual Alloc Tbl"
  44. struct PartitionMapType2_VirtualPartition {
  45. UINT8 uPartitionMapType;
  46. UINT8 cbPartitionMapLength;
  47. BYTE aReserved1[2];
  48. EntityID eidPartitionTypeID;
  49. UINT16 uVolumeSequenceNumber;
  50. UINT16 uPartitionNumber;
  51. BYTE aReserved2[24];
  52. };
  53. // Type2 PartitionMap for Sparable Partition Map (UDF-2.00 2.2.9)
  54. #define ENTITYID_SPARABLE_PARTITION "*UDF Sparable Partition"
  55. struct PartitionMapType2_SparablePartition {
  56. UINT8 uPartitionMapType;
  57. UINT8 cbPartitionMapLength;
  58. BYTE aReserved1[2];
  59. EntityID eidPartitionTypeID;
  60. UINT16 uVolumeSequenceNumber;
  61. UINT16 uPartitionNumber;
  62. UINT16 uPacketLength;
  63. UINT8 uNumberOfSparingTables;
  64. BYTE ucReserved2;
  65. UINT32 cbSparingTableSize;
  66. UINT32 aLocationsOfSparingTables[];
  67. BYTE aPadding[];
  68. };
  69. // Virtual Allocation Table (UDF-2.00 2.2.10)
  70. #define ICB_FILETYPE_VAT 248
  71. #define ICB_FILETYPE_REALTIME 249
  72. struct VirtualAllocationTable {
  73. UINT16 cbLengthOfHeader;
  74. UINT16 cbLengthOfImplUse;
  75. DString sLogicalVolumeID[128];
  76. UINT32 dwPrevVAT_ICB_Location;
  77. UINT32 uFilesCnt;
  78. UINT32 uDirsCnt;
  79. UINT16 uMinUDFRead;
  80. UINT16 uMinUDFWrite;
  81. UINT16 uMaxUDFWrite;
  82. BYTE aReserved[2];
  83. BYTE aVATEntries[];
  84. };
  85. // Sparing Table (UDF-2.00 2.2.11)
  86. #define STME_AVAILABLE_FOR_SPARING 0xFFFFFFFF
  87. #define STME_DEFECTIVE_PACKET 0xFFFFFFF0
  88. struct SparingTableMapEntry {
  89. UINT32 dwOriginalLocation;
  90. UINT32 dwMappedLocation;
  91. };
  92. #define ENTITYID_SPARING_TABLE "*UDF Sparing Table"
  93. struct SparingTable {
  94. Tag tgDescTag;
  95. EntityID eidSparingID;
  96. UINT16 uReallocationTableLength;
  97. BYTE aReserved[2];
  98. UINT32 uSequenceNumber;
  99. struct SparingTableMapEntry aMapEntries[];
  100. };
  101. #pragma pack()
  102. #endif //__UDF_200_H_