dissect.volume 3.17.dev2__tar.gz → 3.17.dev3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/PKG-INFO +1 -1
  2. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/ddf/c_ddf.py +0 -2
  3. dissect_volume-3.17.dev3/dissect/volume/ddf/c_ddf.pyi +541 -0
  4. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/ddf/ddf.py +5 -6
  5. dissect_volume-3.17.dev3/dissect/volume/dm/c_dm.pyi +110 -0
  6. dissect_volume-3.17.dev3/dissect/volume/lvm/c_lvm2.pyi +87 -0
  7. dissect_volume-3.17.dev3/dissect/volume/md/c_md.pyi +284 -0
  8. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/md/md.py +2 -4
  9. dissect_volume-3.17.dev3/dissect/volume/vinum/c_vinum.pyi +67 -0
  10. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect.volume.egg-info/PKG-INFO +1 -1
  11. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect.volume.egg-info/SOURCES.txt +5 -0
  12. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/pyproject.toml +1 -0
  13. dissect_volume-3.17.dev3/tests/ddf/test_ddf.py +82 -0
  14. dissect_volume-3.17.dev3/tests/md/test_md.py +150 -0
  15. dissect_volume-3.17.dev2/tests/ddf/test_ddf.py +0 -33
  16. dissect_volume-3.17.dev2/tests/md/test_md.py +0 -85
  17. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/.git-blame-ignore-revs +0 -0
  18. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/.gitattributes +0 -0
  19. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/COPYRIGHT +0 -0
  20. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/LICENSE +0 -0
  21. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/MANIFEST.in +0 -0
  22. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/README.md +0 -0
  23. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/__init__.py +0 -0
  24. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/ddf/__init__.py +0 -0
  25. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/__init__.py +0 -0
  26. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/disk.py +0 -0
  27. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/partition.py +0 -0
  28. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/schemes/__init__.py +0 -0
  29. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/schemes/apm.py +0 -0
  30. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/schemes/bsd.py +0 -0
  31. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/schemes/gpt.py +0 -0
  32. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/disk/schemes/mbr.py +0 -0
  33. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/dm/__init__.py +0 -0
  34. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/dm/btree.py +0 -0
  35. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/dm/c_dm.py +0 -0
  36. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/dm/thin.py +0 -0
  37. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/exceptions.py +0 -0
  38. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/ldm.py +0 -0
  39. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/lvm/__init__.py +0 -0
  40. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/lvm/c_lvm2.py +0 -0
  41. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/lvm/lvm2.py +0 -0
  42. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/lvm/metadata.py +0 -0
  43. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/lvm/physical.py +0 -0
  44. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/md/__init__.py +0 -0
  45. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/md/c_md.py +0 -0
  46. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/raid/__init__.py +0 -0
  47. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/raid/raid.py +0 -0
  48. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/raid/stream.py +0 -0
  49. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/vinum/__init__.py +0 -0
  50. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/vinum/c_vinum.py +0 -0
  51. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/vinum/config.py +0 -0
  52. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/vinum/vinum.py +0 -0
  53. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect/volume/vss.py +0 -0
  54. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect.volume.egg-info/dependency_links.txt +0 -0
  55. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect.volume.egg-info/requires.txt +0 -0
  56. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/dissect.volume.egg-info/top_level.txt +0 -0
  57. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/setup.cfg +0 -0
  58. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/__init__.py +0 -0
  59. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid0-1.bin.gz +0 -0
  60. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid0-2.bin.gz +0 -0
  61. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid0-3.bin.gz +0 -0
  62. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid0-raid1-1.bin.gz +0 -0
  63. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid0-raid1-2.bin.gz +0 -0
  64. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid1-1.bin.gz +0 -0
  65. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid1-2.bin.gz +0 -0
  66. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid10-1.bin.gz +0 -0
  67. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid10-2.bin.gz +0 -0
  68. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid10-3.bin.gz +0 -0
  69. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid10-4.bin.gz +0 -0
  70. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid4-1.bin.gz +0 -0
  71. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid4-2.bin.gz +0 -0
  72. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid5-1.bin.gz +0 -0
  73. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid5-2.bin.gz +0 -0
  74. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid5-3.bin.gz +0 -0
  75. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid6-1.bin.gz +0 -0
  76. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid6-2.bin.gz +0 -0
  77. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid6-3.bin.gz +0 -0
  78. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/ddf/ddf-raid6-4.bin.gz +0 -0
  79. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/apm.bin +0 -0
  80. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/bsd.bin +0 -0
  81. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/bsd64.bin.gz +0 -0
  82. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/gpt.bin +0 -0
  83. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/gpt_4k.bin +0 -0
  84. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/gpt_esxi.bin +0 -0
  85. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/gpt_hybrid.bin +0 -0
  86. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/gpt_no_name_xff.bin +0 -0
  87. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/disk/mbr.bin +0 -0
  88. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/dm/dm-thin-data.bin.gz +0 -0
  89. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/dm/dm-thin-empty-data.bin.gz +0 -0
  90. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/dm/dm-thin-empty-metadata.bin.gz +0 -0
  91. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/dm/dm-thin-metadata.bin.gz +0 -0
  92. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/lvm/lvm-mirror-1.bin.gz +0 -0
  93. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/lvm/lvm-mirror-2.bin.gz +0 -0
  94. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/lvm/lvm-thin.bin.gz +0 -0
  95. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/lvm/lvm.bin.gz +0 -0
  96. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-90-1.bin.gz +0 -0
  97. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-90-2.bin.gz +0 -0
  98. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-90-raid1-1.bin.gz +0 -0
  99. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-90-raid1-2.bin.gz +0 -0
  100. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-linear-1.bin.gz +0 -0
  101. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-linear-2.bin.gz +0 -0
  102. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid0-1.bin.gz +0 -0
  103. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid0-2.bin.gz +0 -0
  104. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid0-3.bin.gz +0 -0
  105. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid1-1.bin.gz +0 -0
  106. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid1-2.bin.gz +0 -0
  107. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid10-1.bin.gz +0 -0
  108. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid10-2.bin.gz +0 -0
  109. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid4-1.bin.gz +0 -0
  110. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid4-2.bin.gz +0 -0
  111. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid4-3.bin.gz +0 -0
  112. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid5-1.bin.gz +0 -0
  113. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid5-2.bin.gz +0 -0
  114. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid5-3.bin.gz +0 -0
  115. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid6-1.bin.gz +0 -0
  116. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid6-2.bin.gz +0 -0
  117. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid6-3.bin.gz +0 -0
  118. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/md/md-raid6-4.bin.gz +0 -0
  119. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-concat_diska.bin.gz +0 -0
  120. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-concat_diskb.bin.gz +0 -0
  121. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-mirror_diska.bin.gz +0 -0
  122. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-mirror_diskb.bin.gz +0 -0
  123. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-raid5_diska.bin.gz +0 -0
  124. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-raid5_diskb.bin.gz +0 -0
  125. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-raid5_diskc.bin.gz +0 -0
  126. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-raid5_diskd.bin.gz +0 -0
  127. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-striped_diska.bin.gz +0 -0
  128. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-striped_diskb.bin.gz +0 -0
  129. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-stripedmirror_diska.bin.gz +0 -0
  130. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-stripedmirror_diskb.bin.gz +0 -0
  131. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-stripedmirror_diskc.bin.gz +0 -0
  132. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_data/vinum/vinum-stripedmirror_diskd.bin.gz +0 -0
  133. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_docs/Makefile +0 -0
  134. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_docs/__init__.py +0 -0
  135. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_docs/conf.py +0 -0
  136. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/_docs/index.rst +0 -0
  137. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/conftest.py +0 -0
  138. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/ddf/__init__.py +0 -0
  139. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/disk/__init__.py +0 -0
  140. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/disk/test_apm.py +0 -0
  141. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/disk/test_bsd.py +0 -0
  142. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/disk/test_gpt.py +0 -0
  143. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/disk/test_mbr.py +0 -0
  144. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/dm/__init__.py +0 -0
  145. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/dm/test_dm.py +0 -0
  146. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/lvm/__init__.py +0 -0
  147. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/lvm/test_lvm.py +0 -0
  148. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/md/__init__.py +0 -0
  149. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/vinum/__init__.py +0 -0
  150. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/vinum/test_config.py +0 -0
  151. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tests/vinum/test_vinum.py +0 -0
  152. {dissect_volume-3.17.dev2 → dissect_volume-3.17.dev3}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.volume
3
- Version: 3.17.dev2
3
+ Version: 3.17.dev3
4
4
  Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -323,5 +323,3 @@ struct Vendor_Specific_Log {
323
323
  };
324
324
  """
325
325
  c_ddf = cstruct(endian=">").load(ddf_def)
326
-
327
- DEFAULT_SECTOR_SIZE = 512
@@ -0,0 +1,541 @@
1
+ # Generated by cstruct-stubgen
2
+ from typing import BinaryIO, Literal, TypeAlias, overload
3
+
4
+ import dissect.cstruct as __cs__
5
+
6
+ class _c_ddf(__cs__.cstruct):
7
+ DDF_HEADER_SIGNATURE: Literal[3725712913] = ...
8
+ DDF_HEADER_CLOSED: Literal[0] = ...
9
+ DDF_HEADER_OPENED_MASK: Literal[15] = ...
10
+ DDF_HEADER_OPEN_ANCHOR: Literal[255] = ...
11
+ DDF_HEADER_ANCHOR: Literal[0] = ...
12
+ DDF_HEADER_PRIMARY: Literal[1] = ...
13
+ DDF_HEADER_SECONDARY: Literal[2] = ...
14
+ DDF_CONTROLLER_DATA_SIGNATURE: Literal[2903576849] = ...
15
+ DDF_PDR_SIGNATURE: Literal[572662306] = ...
16
+ DDF_PDE_GUID_FORCE: Literal[1] = ...
17
+ DDF_PDE_PARTICIPATING: Literal[2] = ...
18
+ DDF_PDE_GLOBAL_SPARE: Literal[4] = ...
19
+ DDF_PDE_CONFIG_SPARE: Literal[8] = ...
20
+ DDF_PDE_FOREIGN: Literal[16] = ...
21
+ DDF_PDE_LEGACY: Literal[32] = ...
22
+ DDF_PDE_TYPE_MASK: Literal[61440] = ...
23
+ DDF_PDE_UNKNOWN: Literal[0] = ...
24
+ DDF_PDE_SCSI: Literal[4096] = ...
25
+ DDF_PDE_SAS: Literal[8192] = ...
26
+ DDF_PDE_SATA: Literal[12288] = ...
27
+ DDF_PDE_FC: Literal[16384] = ...
28
+ DDF_PDE_ONLINE: Literal[1] = ...
29
+ DDF_PDE_FAILED: Literal[2] = ...
30
+ DDF_PDE_REBUILD: Literal[4] = ...
31
+ DDF_PDE_TRANSITION: Literal[8] = ...
32
+ DDF_PDE_PFA: Literal[16] = ...
33
+ DDF_PDE_UNRECOVERED: Literal[32] = ...
34
+ DDF_PDE_MISSING: Literal[64] = ...
35
+ DDF_VD_RECORD_SIGNATURE: Literal[3722304989] = ...
36
+ DDF_VDE_SHARED: Literal[1] = ...
37
+ DDF_VDE_ENFORCE_GROUP: Literal[2] = ...
38
+ DDF_VDE_UNICODE_NAME: Literal[4] = ...
39
+ DDF_VDE_OWNER_ID_VALID: Literal[8] = ...
40
+ DDF_VDE_OPTIMAL: Literal[0] = ...
41
+ DDF_VDE_DEGRADED: Literal[1] = ...
42
+ DDF_VDE_DELETED: Literal[2] = ...
43
+ DDF_VDE_MISSING: Literal[3] = ...
44
+ DDF_VDE_FAILED: Literal[4] = ...
45
+ DDF_VDE_PARTIAL: Literal[5] = ...
46
+ DDF_VDE_OFFLINE: Literal[6] = ...
47
+ DDF_VDE_STATE_MASK: Literal[7] = ...
48
+ DDF_VDE_MORPH: Literal[8] = ...
49
+ DDF_VDE_DIRTY: Literal[16] = ...
50
+ DDF_VDE_UNINTIALIZED: Literal[0] = ...
51
+ DDF_VDE_INIT_QUICK: Literal[1] = ...
52
+ DDF_VDE_INIT_FULL: Literal[2] = ...
53
+ DDF_VDE_INIT_MASK: Literal[3] = ...
54
+ DDF_VDE_UACCESS_RW: Literal[0] = ...
55
+ DDF_VDE_UACCESS_RO: Literal[128] = ...
56
+ DDF_VDE_UACCESS_BLOCKED: Literal[192] = ...
57
+ DDF_VDE_UACCESS_MASK: Literal[192] = ...
58
+ DDF_VDCR_SIGNATURE: Literal[4008636142] = ...
59
+ DDF_VDCR_RAID0: Literal[0] = ...
60
+ DDF_VDCR_RAID1: Literal[1] = ...
61
+ DDF_VDCR_RAID3: Literal[3] = ...
62
+ DDF_VDCR_RAID4: Literal[4] = ...
63
+ DDF_VDCR_RAID5: Literal[5] = ...
64
+ DDF_VDCR_RAID6: Literal[6] = ...
65
+ DDF_VDCR_RAID1E: Literal[17] = ...
66
+ DDF_VDCR_SINGLE: Literal[15] = ...
67
+ DDF_VDCR_CONCAT: Literal[31] = ...
68
+ DDF_VDCR_RAID5E: Literal[21] = ...
69
+ DDF_VDCR_RAID5EE: Literal[37] = ...
70
+ DDF_VDCR_RAID0_SIMPLE: Literal[0] = ...
71
+ DDF_VDCR_RAID1_SIMPLE: Literal[0] = ...
72
+ DDF_VDCR_RAID1_MULTI: Literal[1] = ...
73
+ DDF_VDCR_RAID3_0: Literal[0] = ...
74
+ DDF_VDCR_RAID3_N: Literal[1] = ...
75
+ DDF_VDCR_RAID4_0: Literal[0] = ...
76
+ DDF_VDCR_RAID4_N: Literal[1] = ...
77
+ DDF_VDCR_RAID5_0_RESTART: Literal[0] = ...
78
+ DDF_VDCR_RAID6_0_RESTART: Literal[1] = ...
79
+ DDF_VDCR_RAID5_N_RESTART: Literal[2] = ...
80
+ DDF_VDCR_RAID5_N_CONTINUE: Literal[3] = ...
81
+ DDF_VDCR_RAID1E_ADJACENT: Literal[0] = ...
82
+ DDF_VDCR_RAID1E_OFFSET: Literal[1] = ...
83
+ DDF_VDCR_2STRIPED: Literal[0] = ...
84
+ DDF_VDCR_2MIRRORED: Literal[1] = ...
85
+ DDF_VDCR_2CONCAT: Literal[2] = ...
86
+ DDF_VDCR_2SPANNED: Literal[3] = ...
87
+ DDF_VDCR_CACHE_WB: Literal[1] = ...
88
+ DDF_VDCR_CACHE_WB_ADAPTIVE: Literal[2] = ...
89
+ DDF_VDCR_CACHE_RA: Literal[4] = ...
90
+ DDF_VDCR_CACHE_RA_ADAPTIVE: Literal[8] = ...
91
+ DDF_VDCR_CACHE_WCACHE_NOBATTERY: Literal[16] = ...
92
+ DDF_VDCR_CACHE_WCACHE_ALLOW: Literal[32] = ...
93
+ DDF_VDCR_CACHE_RCACHE_ALLOW: Literal[64] = ...
94
+ DDF_VDCR_CACHE_VENDOR: Literal[128] = ...
95
+ DDF_VUCR_SIGNATURE: Literal[2290649224] = ...
96
+ DDF_SA_SIGNATURE: Literal[1431655765] = ...
97
+ DDF_SAR_TYPE_DEDICATED: Literal[1] = ...
98
+ DDF_SAR_TYPE_REVERTIBLE: Literal[2] = ...
99
+ DDF_SAR_TYPE_ACTIVE: Literal[4] = ...
100
+ DDF_SAR_TYPE_ENCL_AFFINITY: Literal[8] = ...
101
+ DDF_PDD_SIGNATURE: Literal[858993459] = ...
102
+ DDF_PDD_FORCED_REF: Literal[1] = ...
103
+ DDF_PDD_FORCED_GUID: Literal[1] = ...
104
+ DDF_BBML_SIGNATURE: Literal[2880286988] = ...
105
+ DDF_VENDOR_LOG_SIGNATURE: Literal[31190768] = ...
106
+ class DDF_Header(__cs__.Structure):
107
+ Signature: _c_ddf.uint32
108
+ CRC: _c_ddf.uint32
109
+ DDF_Header_GUID: __cs__.CharArray
110
+ DDF_rev: __cs__.CharArray
111
+ Sequence_Number: _c_ddf.uint32
112
+ TimeStamp: _c_ddf.uint32
113
+ Open_Flag: _c_ddf.uint8
114
+ Foreign_Flag: _c_ddf.uint8
115
+ Disk_Grouping: _c_ddf.uint8
116
+ Reserved1: __cs__.CharArray
117
+ Header_Ext: __cs__.Array[_c_ddf.uint8]
118
+ Primary_Header_LBA: _c_ddf.uint64
119
+ Secondary_Header_LBA: _c_ddf.uint64
120
+ Header_Type: _c_ddf.uint8
121
+ Reserved2: __cs__.CharArray
122
+ Workspace_Length: _c_ddf.uint32
123
+ Workspace_LBA: _c_ddf.uint64
124
+ Max_PD_Entries: _c_ddf.uint16
125
+ Max_VD_Entries: _c_ddf.uint16
126
+ Max_Partitions: _c_ddf.uint16
127
+ Configuration_Record_Length: _c_ddf.uint16
128
+ Max_Primary_Element_Entries: _c_ddf.uint16
129
+ Max_Mapped_Block_Entries: _c_ddf.uint32
130
+ Reserved3: __cs__.CharArray
131
+ Controller_Data_Section: _c_ddf.uint32
132
+ Controller_Data_Section_Length: _c_ddf.uint32
133
+ Physical_Disk_Records_Section: _c_ddf.uint32
134
+ Physical_Disk_Records_Section_Length: _c_ddf.uint32
135
+ Virtual_Disk_Records_Section: _c_ddf.uint32
136
+ Virtual_Disk_Records_Section_Length: _c_ddf.uint32
137
+ Configuration_Records_Section: _c_ddf.uint32
138
+ Configuration_Records_Section_Length: _c_ddf.uint32
139
+ Physical_Disk_Data_Section: _c_ddf.uint32
140
+ Physical_Disk_Data_Section_Length: _c_ddf.uint32
141
+ BBM_Log_Section: _c_ddf.uint32
142
+ BBM_Log_Section_Length: _c_ddf.uint32
143
+ Diagnostic_Space_Section: _c_ddf.uint32
144
+ Diagnostic_Space_Section_Length: _c_ddf.uint32
145
+ Vendor_Specific_Logs_Section: _c_ddf.uint32
146
+ Vendor_Specific_Logs_Section_Length: _c_ddf.uint32
147
+ Reserved4: __cs__.CharArray
148
+ @overload
149
+ def __init__(
150
+ self,
151
+ Signature: _c_ddf.uint32 | None = ...,
152
+ CRC: _c_ddf.uint32 | None = ...,
153
+ DDF_Header_GUID: __cs__.CharArray | None = ...,
154
+ DDF_rev: __cs__.CharArray | None = ...,
155
+ Sequence_Number: _c_ddf.uint32 | None = ...,
156
+ TimeStamp: _c_ddf.uint32 | None = ...,
157
+ Open_Flag: _c_ddf.uint8 | None = ...,
158
+ Foreign_Flag: _c_ddf.uint8 | None = ...,
159
+ Disk_Grouping: _c_ddf.uint8 | None = ...,
160
+ Reserved1: __cs__.CharArray | None = ...,
161
+ Header_Ext: __cs__.Array[_c_ddf.uint8] | None = ...,
162
+ Primary_Header_LBA: _c_ddf.uint64 | None = ...,
163
+ Secondary_Header_LBA: _c_ddf.uint64 | None = ...,
164
+ Header_Type: _c_ddf.uint8 | None = ...,
165
+ Reserved2: __cs__.CharArray | None = ...,
166
+ Workspace_Length: _c_ddf.uint32 | None = ...,
167
+ Workspace_LBA: _c_ddf.uint64 | None = ...,
168
+ Max_PD_Entries: _c_ddf.uint16 | None = ...,
169
+ Max_VD_Entries: _c_ddf.uint16 | None = ...,
170
+ Max_Partitions: _c_ddf.uint16 | None = ...,
171
+ Configuration_Record_Length: _c_ddf.uint16 | None = ...,
172
+ Max_Primary_Element_Entries: _c_ddf.uint16 | None = ...,
173
+ Max_Mapped_Block_Entries: _c_ddf.uint32 | None = ...,
174
+ Reserved3: __cs__.CharArray | None = ...,
175
+ Controller_Data_Section: _c_ddf.uint32 | None = ...,
176
+ Controller_Data_Section_Length: _c_ddf.uint32 | None = ...,
177
+ Physical_Disk_Records_Section: _c_ddf.uint32 | None = ...,
178
+ Physical_Disk_Records_Section_Length: _c_ddf.uint32 | None = ...,
179
+ Virtual_Disk_Records_Section: _c_ddf.uint32 | None = ...,
180
+ Virtual_Disk_Records_Section_Length: _c_ddf.uint32 | None = ...,
181
+ Configuration_Records_Section: _c_ddf.uint32 | None = ...,
182
+ Configuration_Records_Section_Length: _c_ddf.uint32 | None = ...,
183
+ Physical_Disk_Data_Section: _c_ddf.uint32 | None = ...,
184
+ Physical_Disk_Data_Section_Length: _c_ddf.uint32 | None = ...,
185
+ BBM_Log_Section: _c_ddf.uint32 | None = ...,
186
+ BBM_Log_Section_Length: _c_ddf.uint32 | None = ...,
187
+ Diagnostic_Space_Section: _c_ddf.uint32 | None = ...,
188
+ Diagnostic_Space_Section_Length: _c_ddf.uint32 | None = ...,
189
+ Vendor_Specific_Logs_Section: _c_ddf.uint32 | None = ...,
190
+ Vendor_Specific_Logs_Section_Length: _c_ddf.uint32 | None = ...,
191
+ Reserved4: __cs__.CharArray | None = ...,
192
+ ): ...
193
+ @overload
194
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
195
+
196
+ class Controller_Data(__cs__.Structure):
197
+ Signature: _c_ddf.uint32
198
+ CRC: _c_ddf.uint32
199
+ Controller_GUID: __cs__.CharArray
200
+ Controller_Type: __cs__.CharArray
201
+ Product_ID: __cs__.CharArray
202
+ Reserved: __cs__.CharArray
203
+ Vendor_Unique_Controller_Data: __cs__.CharArray
204
+ @overload
205
+ def __init__(
206
+ self,
207
+ Signature: _c_ddf.uint32 | None = ...,
208
+ CRC: _c_ddf.uint32 | None = ...,
209
+ Controller_GUID: __cs__.CharArray | None = ...,
210
+ Controller_Type: __cs__.CharArray | None = ...,
211
+ Product_ID: __cs__.CharArray | None = ...,
212
+ Reserved: __cs__.CharArray | None = ...,
213
+ Vendor_Unique_Controller_Data: __cs__.CharArray | None = ...,
214
+ ): ...
215
+ @overload
216
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
217
+
218
+ class Physical_Disk_Entry(__cs__.Structure):
219
+ PD_GUID: __cs__.CharArray
220
+ PD_Reference: _c_ddf.uint32
221
+ PD_Type: _c_ddf.uint16
222
+ PD_State: _c_ddf.uint16
223
+ Configured_Size: _c_ddf.uint64
224
+ Path_Information: __cs__.CharArray
225
+ Block_Size: _c_ddf.uint16
226
+ Reserved: __cs__.CharArray
227
+ @overload
228
+ def __init__(
229
+ self,
230
+ PD_GUID: __cs__.CharArray | None = ...,
231
+ PD_Reference: _c_ddf.uint32 | None = ...,
232
+ PD_Type: _c_ddf.uint16 | None = ...,
233
+ PD_State: _c_ddf.uint16 | None = ...,
234
+ Configured_Size: _c_ddf.uint64 | None = ...,
235
+ Path_Information: __cs__.CharArray | None = ...,
236
+ Block_Size: _c_ddf.uint16 | None = ...,
237
+ Reserved: __cs__.CharArray | None = ...,
238
+ ): ...
239
+ @overload
240
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
241
+
242
+ class Physical_Disk_Records(__cs__.Structure):
243
+ Signature: _c_ddf.uint32
244
+ CRC: _c_ddf.uint32
245
+ Populated_PDEs: _c_ddf.uint16
246
+ Max_PDE_Supported: _c_ddf.uint16
247
+ Reserved: __cs__.CharArray
248
+ @overload
249
+ def __init__(
250
+ self,
251
+ Signature: _c_ddf.uint32 | None = ...,
252
+ CRC: _c_ddf.uint32 | None = ...,
253
+ Populated_PDEs: _c_ddf.uint16 | None = ...,
254
+ Max_PDE_Supported: _c_ddf.uint16 | None = ...,
255
+ Reserved: __cs__.CharArray | None = ...,
256
+ ): ...
257
+ @overload
258
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
259
+
260
+ class Virtual_Disk_Entry(__cs__.Structure):
261
+ VD_GUID: __cs__.CharArray
262
+ VD_Number: _c_ddf.uint16
263
+ Reserved1: __cs__.CharArray
264
+ VD_Type: _c_ddf.uint32
265
+ VD_State: _c_ddf.uint8
266
+ Init_State: _c_ddf.uint8
267
+ Partially_Optimal_Drive_Failures_Remaining: _c_ddf.uint8
268
+ Reserved2: __cs__.CharArray
269
+ VD_Name: __cs__.CharArray
270
+ @overload
271
+ def __init__(
272
+ self,
273
+ VD_GUID: __cs__.CharArray | None = ...,
274
+ VD_Number: _c_ddf.uint16 | None = ...,
275
+ Reserved1: __cs__.CharArray | None = ...,
276
+ VD_Type: _c_ddf.uint32 | None = ...,
277
+ VD_State: _c_ddf.uint8 | None = ...,
278
+ Init_State: _c_ddf.uint8 | None = ...,
279
+ Partially_Optimal_Drive_Failures_Remaining: _c_ddf.uint8 | None = ...,
280
+ Reserved2: __cs__.CharArray | None = ...,
281
+ VD_Name: __cs__.CharArray | None = ...,
282
+ ): ...
283
+ @overload
284
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
285
+
286
+ class Virtual_Disk_Records(__cs__.Structure):
287
+ Signature: _c_ddf.uint32
288
+ CRC: _c_ddf.uint32
289
+ Populated_VDEs: _c_ddf.uint16
290
+ Max_VDE_Supported: _c_ddf.uint16
291
+ Reserved: __cs__.CharArray
292
+ @overload
293
+ def __init__(
294
+ self,
295
+ Signature: _c_ddf.uint32 | None = ...,
296
+ CRC: _c_ddf.uint32 | None = ...,
297
+ Populated_VDEs: _c_ddf.uint16 | None = ...,
298
+ Max_VDE_Supported: _c_ddf.uint16 | None = ...,
299
+ Reserved: __cs__.CharArray | None = ...,
300
+ ): ...
301
+ @overload
302
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
303
+
304
+ class VD_Configuration_Record(__cs__.Structure):
305
+ Signature: _c_ddf.uint32
306
+ CRC: _c_ddf.uint32
307
+ VD_GUID: __cs__.CharArray
308
+ Timestamp: _c_ddf.uint32
309
+ Sequence_Number: _c_ddf.uint32
310
+ Reserved1: __cs__.CharArray
311
+ Primary_Element_Count: _c_ddf.uint16
312
+ Strip_Size: _c_ddf.uint8
313
+ Primary_RAID_Level: _c_ddf.uint8
314
+ RAID_Level_Qualifier: _c_ddf.uint8
315
+ Secondary_Element_Count: _c_ddf.uint8
316
+ Secondary_Element_Seq: _c_ddf.uint8
317
+ Secondary_RAID_Level: _c_ddf.uint8
318
+ Block_Count: _c_ddf.uint64
319
+ VD_Size: _c_ddf.uint64
320
+ Block_Size: _c_ddf.uint16
321
+ Rotate_Parity_Count: _c_ddf.uint8
322
+ Reserved2: __cs__.CharArray
323
+ Associated_Spares: __cs__.CharArray
324
+ Cache_Policies_And_Parameters: _c_ddf.uint64
325
+ BG_Rate: _c_ddf.uint8
326
+ Reserved3: __cs__.CharArray
327
+ MDF_Parity_Disks: _c_ddf.uint8
328
+ MDF_Parity_Generator_Polynomial: _c_ddf.uint16
329
+ Reserved4: __cs__.CharArray
330
+ MDF_Constant_Generation_Method: _c_ddf.uint8
331
+ Reserved5: __cs__.CharArray
332
+ Reserved6: __cs__.CharArray
333
+ V0: __cs__.CharArray
334
+ V1: __cs__.CharArray
335
+ V2: __cs__.CharArray
336
+ V3: __cs__.CharArray
337
+ Vendor_Specific_Scratch_Space: __cs__.CharArray
338
+ @overload
339
+ def __init__(
340
+ self,
341
+ Signature: _c_ddf.uint32 | None = ...,
342
+ CRC: _c_ddf.uint32 | None = ...,
343
+ VD_GUID: __cs__.CharArray | None = ...,
344
+ Timestamp: _c_ddf.uint32 | None = ...,
345
+ Sequence_Number: _c_ddf.uint32 | None = ...,
346
+ Reserved1: __cs__.CharArray | None = ...,
347
+ Primary_Element_Count: _c_ddf.uint16 | None = ...,
348
+ Strip_Size: _c_ddf.uint8 | None = ...,
349
+ Primary_RAID_Level: _c_ddf.uint8 | None = ...,
350
+ RAID_Level_Qualifier: _c_ddf.uint8 | None = ...,
351
+ Secondary_Element_Count: _c_ddf.uint8 | None = ...,
352
+ Secondary_Element_Seq: _c_ddf.uint8 | None = ...,
353
+ Secondary_RAID_Level: _c_ddf.uint8 | None = ...,
354
+ Block_Count: _c_ddf.uint64 | None = ...,
355
+ VD_Size: _c_ddf.uint64 | None = ...,
356
+ Block_Size: _c_ddf.uint16 | None = ...,
357
+ Rotate_Parity_Count: _c_ddf.uint8 | None = ...,
358
+ Reserved2: __cs__.CharArray | None = ...,
359
+ Associated_Spares: __cs__.CharArray | None = ...,
360
+ Cache_Policies_And_Parameters: _c_ddf.uint64 | None = ...,
361
+ BG_Rate: _c_ddf.uint8 | None = ...,
362
+ Reserved3: __cs__.CharArray | None = ...,
363
+ MDF_Parity_Disks: _c_ddf.uint8 | None = ...,
364
+ MDF_Parity_Generator_Polynomial: _c_ddf.uint16 | None = ...,
365
+ Reserved4: __cs__.CharArray | None = ...,
366
+ MDF_Constant_Generation_Method: _c_ddf.uint8 | None = ...,
367
+ Reserved5: __cs__.CharArray | None = ...,
368
+ Reserved6: __cs__.CharArray | None = ...,
369
+ V0: __cs__.CharArray | None = ...,
370
+ V1: __cs__.CharArray | None = ...,
371
+ V2: __cs__.CharArray | None = ...,
372
+ V3: __cs__.CharArray | None = ...,
373
+ Vendor_Specific_Scratch_Space: __cs__.CharArray | None = ...,
374
+ ): ...
375
+ @overload
376
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
377
+
378
+ class VU_Configuration_Record(__cs__.Structure):
379
+ Signature: _c_ddf.uint32
380
+ CRC: _c_ddf.uint32
381
+ VD_GUID: __cs__.CharArray
382
+ @overload
383
+ def __init__(
384
+ self,
385
+ Signature: _c_ddf.uint32 | None = ...,
386
+ CRC: _c_ddf.uint32 | None = ...,
387
+ VD_GUID: __cs__.CharArray | None = ...,
388
+ ): ...
389
+ @overload
390
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
391
+
392
+ class Spare_Assignment_Entry(__cs__.Structure):
393
+ VD_GUID: __cs__.CharArray
394
+ Secondary_Element: _c_ddf.uint16
395
+ Reserved: __cs__.CharArray
396
+ @overload
397
+ def __init__(
398
+ self,
399
+ VD_GUID: __cs__.CharArray | None = ...,
400
+ Secondary_Element: _c_ddf.uint16 | None = ...,
401
+ Reserved: __cs__.CharArray | None = ...,
402
+ ): ...
403
+ @overload
404
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
405
+
406
+ class Spare_Assignment_Record(__cs__.Structure):
407
+ Signature: _c_ddf.uint32
408
+ CRC: _c_ddf.uint32
409
+ Timestamp: _c_ddf.uint32
410
+ Reserved1: __cs__.CharArray
411
+ Spare_Type: _c_ddf.uint8
412
+ Populated_SAEs: _c_ddf.uint16
413
+ Max_SAE_Supported: _c_ddf.uint16
414
+ Reserved2: __cs__.CharArray
415
+ class Spare_Assignment_Entry(__cs__.Structure):
416
+ VD_GUID: __cs__.CharArray
417
+ Secondary_Element: _c_ddf.uint16
418
+ Reserved: __cs__.CharArray
419
+ @overload
420
+ def __init__(
421
+ self,
422
+ VD_GUID: __cs__.CharArray | None = ...,
423
+ Secondary_Element: _c_ddf.uint16 | None = ...,
424
+ Reserved: __cs__.CharArray | None = ...,
425
+ ): ...
426
+ @overload
427
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
428
+
429
+ Spare_Assignment_Entries: __cs__.Array[Spare_Assignment_Entry]
430
+ @overload
431
+ def __init__(
432
+ self,
433
+ Signature: _c_ddf.uint32 | None = ...,
434
+ CRC: _c_ddf.uint32 | None = ...,
435
+ Timestamp: _c_ddf.uint32 | None = ...,
436
+ Reserved1: __cs__.CharArray | None = ...,
437
+ Spare_Type: _c_ddf.uint8 | None = ...,
438
+ Populated_SAEs: _c_ddf.uint16 | None = ...,
439
+ Max_SAE_Supported: _c_ddf.uint16 | None = ...,
440
+ Reserved2: __cs__.CharArray | None = ...,
441
+ Spare_Assignment_Entries: __cs__.Array[Spare_Assignment_Entry] | None = ...,
442
+ ): ...
443
+ @overload
444
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
445
+
446
+ class Physical_Disk_Data(__cs__.Structure):
447
+ Signature: _c_ddf.uint32
448
+ CRC: _c_ddf.uint32
449
+ PD_GUID: __cs__.CharArray
450
+ PD_Reference: _c_ddf.uint32
451
+ Forced_Ref_Flag: _c_ddf.uint8
452
+ Forced_PD_GUID_Flag: _c_ddf.uint8
453
+ Vendor_Specific_Scratch_Space: __cs__.CharArray
454
+ Reserved: __cs__.CharArray
455
+ @overload
456
+ def __init__(
457
+ self,
458
+ Signature: _c_ddf.uint32 | None = ...,
459
+ CRC: _c_ddf.uint32 | None = ...,
460
+ PD_GUID: __cs__.CharArray | None = ...,
461
+ PD_Reference: _c_ddf.uint32 | None = ...,
462
+ Forced_Ref_Flag: _c_ddf.uint8 | None = ...,
463
+ Forced_PD_GUID_Flag: _c_ddf.uint8 | None = ...,
464
+ Vendor_Specific_Scratch_Space: __cs__.CharArray | None = ...,
465
+ Reserved: __cs__.CharArray | None = ...,
466
+ ): ...
467
+ @overload
468
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
469
+
470
+ class Mapped_Block_Entry(__cs__.Structure):
471
+ Defective_Block_Start: _c_ddf.uint64
472
+ Spare_Block_Offset: _c_ddf.uint32
473
+ Remapped_Marked_Count: _c_ddf.uint16
474
+ Reserved: __cs__.CharArray
475
+ @overload
476
+ def __init__(
477
+ self,
478
+ Defective_Block_Start: _c_ddf.uint64 | None = ...,
479
+ Spare_Block_Offset: _c_ddf.uint32 | None = ...,
480
+ Remapped_Marked_Count: _c_ddf.uint16 | None = ...,
481
+ Reserved: __cs__.CharArray | None = ...,
482
+ ): ...
483
+ @overload
484
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
485
+
486
+ class Bad_Block_Management_Log(__cs__.Structure):
487
+ Signature: _c_ddf.uint32
488
+ CRC: _c_ddf.uint32
489
+ Entry_Count: _c_ddf.uint32
490
+ Reserved_Spare_Block_Count: _c_ddf.uint32
491
+ Reserved: __cs__.CharArray
492
+ First_Spare_LBA: _c_ddf.uint64
493
+ class Mapped_Block_Entry(__cs__.Structure):
494
+ Defective_Block_Start: _c_ddf.uint64
495
+ Spare_Block_Offset: _c_ddf.uint32
496
+ Remapped_Marked_Count: _c_ddf.uint16
497
+ Reserved: __cs__.CharArray
498
+ @overload
499
+ def __init__(
500
+ self,
501
+ Defective_Block_Start: _c_ddf.uint64 | None = ...,
502
+ Spare_Block_Offset: _c_ddf.uint32 | None = ...,
503
+ Remapped_Marked_Count: _c_ddf.uint16 | None = ...,
504
+ Reserved: __cs__.CharArray | None = ...,
505
+ ): ...
506
+ @overload
507
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
508
+
509
+ Mapped_Block_Entries: __cs__.Array[Mapped_Block_Entry]
510
+ @overload
511
+ def __init__(
512
+ self,
513
+ Signature: _c_ddf.uint32 | None = ...,
514
+ CRC: _c_ddf.uint32 | None = ...,
515
+ Entry_Count: _c_ddf.uint32 | None = ...,
516
+ Reserved_Spare_Block_Count: _c_ddf.uint32 | None = ...,
517
+ Reserved: __cs__.CharArray | None = ...,
518
+ First_Spare_LBA: _c_ddf.uint64 | None = ...,
519
+ Mapped_Block_Entries: __cs__.Array[Mapped_Block_Entry] | None = ...,
520
+ ): ...
521
+ @overload
522
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
523
+
524
+ class Vendor_Specific_Log(__cs__.Structure):
525
+ Signature: _c_ddf.uint32
526
+ CRC: _c_ddf.uint32
527
+ Log_Owner: __cs__.CharArray
528
+ Reserved: __cs__.CharArray
529
+ @overload
530
+ def __init__(
531
+ self,
532
+ Signature: _c_ddf.uint32 | None = ...,
533
+ CRC: _c_ddf.uint32 | None = ...,
534
+ Log_Owner: __cs__.CharArray | None = ...,
535
+ Reserved: __cs__.CharArray | None = ...,
536
+ ): ...
537
+ @overload
538
+ def __init__(self, fh: bytes | memoryview | bytearray | BinaryIO, /): ...
539
+
540
+ # Technically `c_ddf` is an instance of `_c_ddf`, but then we can't use it in type hints
541
+ c_ddf: TypeAlias = _c_ddf
@@ -1,11 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import io
4
- from typing import TYPE_CHECKING, BinaryIO
4
+ from typing import BinaryIO
5
5
 
6
6
  from dissect.util import ts
7
7
 
8
- from dissect.volume.ddf.c_ddf import DEFAULT_SECTOR_SIZE, c_ddf
8
+ from dissect.volume.ddf.c_ddf import c_ddf
9
9
  from dissect.volume.exceptions import DDFError
10
10
  from dissect.volume.raid.raid import (
11
11
  RAID,
@@ -16,8 +16,7 @@ from dissect.volume.raid.raid import (
16
16
  )
17
17
  from dissect.volume.raid.stream import Layout, Level
18
18
 
19
- if TYPE_CHECKING:
20
- DDFPhysicalDiskDescriptor = BinaryIO | "DDFPhysicalDisk"
19
+ DEFAULT_SECTOR_SIZE = 512
21
20
 
22
21
  DECADE = 3600 * 24 * (365 * 10 + 2)
23
22
 
@@ -25,7 +24,7 @@ DECADE = 3600 * 24 * (365 * 10 + 2)
25
24
  class DDF(RAID):
26
25
  def __init__(
27
26
  self,
28
- fh: list[DDFPhysicalDiskDescriptor] | DDFPhysicalDiskDescriptor,
27
+ fh: list[BinaryIO | DDFPhysicalDisk] | BinaryIO | DDFPhysicalDisk,
29
28
  sector_size: int = DEFAULT_SECTOR_SIZE,
30
29
  ):
31
30
  fhs = [fh] if not isinstance(fh, list) else fh
@@ -96,7 +95,7 @@ class DDFVirtualDisk(VirtualDisk):
96
95
 
97
96
  super().__init__(
98
97
  self.vdr.name,
99
- self.vdr.guid,
98
+ self.vdr.guid.hex(),
100
99
  self.vdcr.size * block_size,
101
100
  level,
102
101
  layout,