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

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_102.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_102.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_102.h - Definitions and Data-Structures described in UDF-1.02
  27. //
  28. // Author: Nir Milstein
  29. #include "Config.h" // Global Configuration - do not remove!
  30. #ifndef __UDF_102_H_
  31. #define __UDF_102_H_
  32. #include "PlaycoreFileSysUDFECMA167.h"
  33. // NOTE: All of the structures MUST be packed, since they represent
  34. //  data-structures resident on the Medium!
  35. #pragma pack(1)
  36. /////////////////////////////////////////////////////////////////////////////
  37. // Basic Restrictions and Requirements (UDF-1.02 2)
  38. #define LOGICAL_BLOCK_SIZE 2048 // DVD-Specific (UDF-1.02 6.9.2.3)
  39. #define MAX_FILENAME_LEN 255
  40. #define MAX_PATH_LEN 1023
  41. #define ICB_STRATEGY_TYPE 4 // DVD-Specific (UDF-1.02 6.9.1)
  42. /////////////////////////////////////////////////////////////////////////////
  43. // General (UDF-1.02 2.1)
  44. // Character-Sets (UDF-1.02 2.1.1)
  45. #define UNICODE_COMPRESSIONID_SINGLE_BYTE 8
  46. #define UNICODE_COMPRESSIONID_DOUBLE_BYTE 16
  47. // OSTA CS0 CharSpec (UDF-1.02 2.1.2)
  48. #define UDF_CHAR_SET_INFO "OSTA Compressed Unicode"
  49. // Entity Identifer (UDF-1.02 2.1.5)
  50. #define EntityID RegID
  51. // Identifer Suffix (UDF-1.02 2.1.5.3)
  52. struct Domain_IdentifierSuffix {
  53. UINT16 uUDFRevision;
  54. UINT8 uDomainFlags;
  55. BYTE aReserved[5];
  56. };
  57. #define IDSUFFIX_FLAGS_HARD_PROTECT 0x01
  58. #define IDSUFFIX_FLAGS_SOFT_PROTECT 0x02
  59. struct UDF_IdentifierSuffix {
  60. UINT16 uUDFRevision;
  61. UINT8 uOSClass;
  62. UINT8 uOSIdentifier;
  63. BYTE aReserved[4];
  64. };
  65. struct Impl_IdentifierSuffix {
  66. UINT8 uOSClass;
  67. UINT8 uOSIdentifer;
  68. BYTE aReserved[6];
  69. };
  70. // Implementation-Use for a Logical Volume Integrity Descriptor (UDF-1.02 2.2.6.4)
  71. struct LogicalVolumeIntegrityDescImplUse {
  72. EntityID eidImplID;
  73. UINT32 uNumberOfFiles;
  74. UINT32 uNumberOfDirs;
  75. UINT16 uMinimumUDFReadRevision;
  76. UINT16 uMinimumUDFWriteRevision;
  77. UINT16 uMaximumUDFWriteRevision;
  78. BYTE aImplUse[];
  79. };
  80. // Implementation-Use for Implementation-Use Volume Descriptor (UDF-1.02 2.2.7.2)
  81. struct LVInfo {
  82. CharSpec csLVICharset;
  83. DString sLogicalVolumeID[128];
  84. DString sLVInfo1[36];
  85. DString sLVInfo2[36];
  86. DString sLVInfo3[36];
  87. EntityID eidImplID;
  88. BYTE aImplUse[128];
  89. };
  90. // Implementation-Use for Long Allocation Descriptor (UDF-1.02 2.3.10.1)
  91. struct Long_ad_ImplUse {
  92. UINT16 wFlags;
  93. BYTE aImplUse[4];
  94. };
  95. #define LONGAD_IMPLUSE_FLAGS_EXTENT_ERASED 0x01
  96. // DVD Copyright Management Information (UDF-1.02 3.3.4.5.1.2)
  97. #define UDF_ID_DVD_FREE_EA "*UDF FreeEASpace"
  98. #define UDF_ID_DVD_IMPL "*UDF DVD CGMS Info"
  99. struct ExtendedAttrImplUse_DVD_FreeEASpace {
  100. UINT16 uHeaderChecksum;
  101. UINT16 uFreeEASpace;
  102. };
  103. struct ExtendedAttrImplUse_DVD_CGMS {
  104. UINT16 uHeaderChecksum;
  105. BYTE ucCGMSInfo;
  106. UINT8 uDataStructureType;
  107. BYTE aProtectionSystemInfo[4];
  108. };
  109. #pragma pack()
  110. #endif //__UDF_102_H_