Loading...
Searching...
No Matches
aaru.h File Reference

Public high-level API types: media classifications, per-sector / per-media tag enums and image summary. More...

`#include <stdint.h>`

Go to the source code of this file.

## Data Structures

struct | ImageInfo
| High-level summary of an opened Aaru image containing metadata and media characteristics. More...

## Typedefs

typedef struct ImageInfo | ImageInfo

## Enumerations

enum

MediaType {
UnknownMedia = 0 , UnknownMO = 1 , GENERIC_HDD = 2 , Microdrive = 3 ,
Zone_HDD = 4 , FlashDrive = 5 , CD = 10 , CDDA = 11 ,
CDG = 12 , CDEG = 13 , CDI = 14 , CDROM = 15 ,
CDROMXA = 16 , CDPLUS = 17 , CDMO = 18 , CDR = 19 ,
CDRW = 20 , CDMRW = 21 , VCD = 22 , SVCD = 23 ,
PCD = 24 , SACD = 25 , DDCD = 26 , DDCDR = 27 ,
DDCDRW = 28 , DTSCD = 29 , CDMIDI = 30 , CDV = 31 ,
PD650 = 32 , PD650_WORM = 33 , CDIREADY = 34 , FMTOWNS = 35 ,
DVDROM = 40 , DVDR = 41 , DVDRW = 42 , DVDPR = 43 ,
DVDPRW = 44 , DVDPRWDL = 45 , DVDRDL = 46 , DVDPRDL = 47 ,
DVDRAM = 48 , DVDRWDL = 49 , DVDDownload = 50 , HDDVDROM = 51 ,
HDDVDRAM = 52 , HDDVDR = 53 , HDDVDRW = 54 , HDDVDRDL = 55 ,
HDDVDRWDL = 56 , BDROM = 60 , BDR = 61 , BDRE = 62 ,
BDRXL = 63 , BDREXL = 64 , EVD = 70 , FVD = 71 ,
HVD = 72 , CBHD = 73 , HDVMD = 74 , VCDHD = 75 ,
SVOD = 76 , FDDVD = 77 , LD = 80 , LDROM = 81 ,
LDROM2 = 82 , LVROM = 83 , MegaLD = 84 , HiMD = 90 ,
MD = 91 , MDData = 92 , MDData2 = 93 , MD60 = 94 ,
MD74 = 95 , MD80 = 96 , UDO = 100 , UDO2 ,
UDO2_WORM , PlayStationMemoryCard = 110 , PlayStationMemoryCard2 = 111 , PS1CD = 112 ,
PS2CD = 113 , PS2DVD = 114 , PS3DVD = 115 , PS3BD = 116 ,
PS4BD = 117 , UMD = 118 , PlayStationVitaGameCard = 119 , XGD = 130 ,
XGD2 = 131 , XGD3 = 132 , XGD4 = 133 , MEGACD = 150 ,
SATURNCD = 151 , GDROM = 152 , GDR = 153 , SegaCard = 154 ,
MilCD = 155 , HuCard = 170 , SuperCDROM2 = 171 , JaguarCD = 172 ,
ThreeDO = 173 , PCFX = 174 , NeoGeoCD = 175 , CDTV = 176 ,
CD32 = 177 , Nuon = 178 , Playdia = 179 , Apple32SS = 180 ,
Apple32DS = 181 , Apple33SS = 182 , Apple33DS = 183 , AppleSonySS = 184 ,
AppleSonyDS = 185 , AppleFileWare = 186 , DOS_525_SS_DD_8 = 190 , DOS_525_SS_DD_9 = 191 ,
DOS_525_DS_DD_8 = 192 , DOS_525_DS_DD_9 = 193 , DOS_525_HD = 194 , DOS_35_SS_DD_8 = 195 ,
DOS_35_SS_DD_9 = 196 , DOS_35_DS_DD_8 = 197 , DOS_35_DS_DD_9 = 198 , DOS_35_HD = 199 ,
DOS_35_ED = 200 , DMF = 201 , DMF_82 = 202 , XDF_525 = 203 ,
XDF_35 = 204 , IBM23FD = 210 , IBM33FD_128 = 211 , IBM33FD_256 = 212 ,
IBM33FD_512 = 213 , IBM43FD_128 = 214 , IBM43FD_256 = 215 , IBM53FD_256 = 216 ,
IBM53FD_512 = 217 , IBM53FD_1024 = 218 , RX01 = 220 , RX02 = 221 ,
RX03 = 222 , RX50 = 223 , ACORN_525_SS_SD_40 = 230 , ACORN_525_SS_SD_80 = 231 ,
ACORN_525_SS_DD_40 = 232 , ACORN_525_SS_DD_80 = 233 , ACORN_525_DS_DD = 234 , ACORN_35_DS_DD = 235 ,
ACORN_35_DS_HD = 236 , ATARI_525_SD = 240 , ATARI_525_ED = 241 , ATARI_525_DD = 242 ,
ATARI_35_SS_DD = 243 , ATARI_35_DS_DD = 244 , ATARI_35_SS_DD_11 = 245 , ATARI_35_DS_DD_11 = 246 ,
CBM_35_DD = 250 , CBM_AMIGA_35_DD = 251 , CBM_AMIGA_35_HD = 252 , CBM_1540 = 253 ,
CBM_1540_Ext = 254 , CBM_1571 = 255 , NEC_8_SD = 260 , NEC_8_DD = 261 ,
NEC_525_SS = 262 , NEC_525_DS = 263 , NEC_525_HD = 264 , NEC_35_HD_8 = 265 ,
NEC_35_HD_15 = 266 , NEC_35_TD = 267 , SHARP_525 = NEC_525_HD , SHARP_525_9 = 268 ,
SHARP_35 = NEC_35_HD_8 , SHARP_35_9 = 269 , ECMA_99_8 = 270 , ECMA_99_15 = 271 ,
ECMA_99_26 = 272 , ECMA_100 = DOS_35_DS_DD_9 , ECMA_125 = DOS_35_HD , ECMA_147 = DOS_35_ED ,
ECMA_54 = 273 , ECMA_59 = 274 , ECMA_66 , ECMA_69_8 = 276 ,
ECMA_69_15 = 277 , ECMA_69_26 = 278 , ECMA_70 = 279 , ECMA_78 = 280 ,
ECMA_78_2 = 281 , FDFORMAT_525_DD = 290 , FDFORMAT_525_HD = 291 , FDFORMAT_35_DD = 292 ,
FDFORMAT_35_HD = 293 , Apricot_35 = 309 , ADR2120 = 310 , ADR260 = 311 ,
ADR30 = 312 , ADR50 = 313 , AIT1 = 320 , AIT1Turbo = 321 ,
AIT2 = 322 , AIT2Turbo = 323 , AIT3 = 324 , AIT3Ex = 325 ,
AIT3Turbo = 326 , AIT4 = 327 , AIT5 = 328 , AITETurbo = 329 ,
SAIT1 = 330 , SAIT2 = 331 , Bernoulli = 340 , Bernoulli2 = 341 ,
Ditto = 342 , DittoMax = 343 , Jaz = 344 , Jaz2 = 345 ,
PocketZip = 346 , REV120 = 347 , REV35 = 348 , REV70 = 349 ,
ZIP100 = 350 , ZIP250 = 351 , ZIP750 = 352 , Bernoulli35 = 353 ,
Bernoulli44 = 354 , Bernoulli65 = 355 , Bernoulli90 = 356 , Bernoulli105 = 357 ,
Bernoulli150 = 358 , Bernoulli230 = 359 , CompactCassette = 360 , Data8 = 361 ,
MiniDV = 362 , Dcas25 = 363 , Dcas85 = 364 , Dcas103 = 365 ,
CFast = 370 , CompactFlash = 371 , CompactFlashType2 = 372 , DigitalAudioTape = 380 ,
DAT160 = 381 , DAT320 = 382 , DAT72 = 383 , DDS1 = 384 ,
DDS2 = 385 , DDS3 = 386 , DDS4 = 387 , CompactTapeI = 390 ,
CompactTapeII = 391 , DECtapeII = 392 , DLTtapeIII = 393 , DLTtapeIIIxt = 394 ,
DLTtapeIV = 395 , DLTtapeS4 = 396 , SDLT1 = 397 , SDLT2 = 398 ,
VStapeI = 399 , Exatape15m = 400 , Exatape22m = 401 , Exatape22mAME = 402 ,
Exatape28m = 403 , Exatape40m = 404 , Exatape45m = 405 , Exatape54m = 406 ,
Exatape75m = 407 , Exatape76m = 408 , Exatape80m = 409 , Exatape106m = 410 ,
Exatape160mXL = 411 , Exatape112m = 412 , Exatape125m = 413 , Exatape150m = 414 ,
Exatape170m = 415 , Exatape225m = 416 , ExpressCard34 = 420 , ExpressCard54 = 421 ,
PCCardTypeI = 422 , PCCardTypeII = 423 , PCCardTypeIII = 424 , PCCardTypeIV = 425 ,
EZ135 = 430 , EZ230 = 431 , Quest = 432 , SparQ = 433 ,
SQ100 = 434 , SQ200 = 435 , SQ300 = 436 , SQ310 = 437 ,
SQ327 = 438 , SQ400 = 439 , SQ800 = 440 , SQ1500 = 441 ,
SQ2000 = 442 , SyJet = 443 , FamicomGamePak = 450 , GameBoyAdvanceGamePak = 451 ,
GameBoyGamePak = 452 , GOD = 453 , N64DD = 454 , N64GamePak = 455 ,
NESGamePak = 456 , Nintendo3DSGameCard = 457 , NintendoDiskCard = 458 , NintendoDSGameCard = 459 ,
NintendoDSiGameCard = 460 , SNESGamePak = 461 , SNESGamePakUS = 462 , WOD = 463 ,
WUOD = 464 , SwitchGameCard = 465 , IBM3470 = 470 , IBM3480 = 471 ,
IBM3490 = 472 , IBM3490E = 473 , IBM3592 = 474 , LTO = 480 ,
LTO2 = 481 , LTO3 = 482 , LTO3WORM = 483 , LTO4 = 484 ,
LTO4WORM = 485 , LTO5 = 486 , LTO5WORM = 487 , LTO6 = 488 ,
LTO6WORM = 489 , LTO7 = 490 , LTO7WORM = 491 , MemoryStick = 510 ,
MemoryStickDuo = 511 , MemoryStickMicro = 512 , MemoryStickPro = 513 , MemoryStickProDuo = 514 ,
microSD = 520 , miniSD = 521 , SecureDigital = 522 , MMC = 530 ,
MMCmicro = 531 , RSMMC = 532 , MMCplus = 533 , MMCmobile = 534 ,
MLR1 = 540 , MLR1SL = 541 , MLR3 = 542 , SLR1 = 543 ,
SLR2 = 544 , SLR3 = 545 , SLR32 = 546 , SLR32SL = 547 ,
SLR4 = 548 , SLR5 = 549 , SLR5SL = 550 , SLR6 = 551 ,
SLRtape7 = 552 , SLRtape7SL = 553 , SLRtape24 = 554 , SLRtape24SL = 555 ,
SLRtape40 = 556 , SLRtape50 = 557 , SLRtape60 = 558 , SLRtape75 = 559 ,
SLRtape100 = 560 , SLRtape140 = 561 , QIC11 = 570 , QIC120 = 571 ,
QIC1350 = 572 , QIC150 = 573 , QIC24 = 574 , QIC3010 = 575 ,
QIC3020 = 576 , QIC3080 = 577 , QIC3095 = 578 , QIC320 = 579 ,
QIC40 = 580 , QIC525 = 581 , QIC80 = 582 , STK4480 = 590 ,
STK4490 = 591 , STK9490 = 592 , T9840A = 593 , T9840B = 594 ,
T9840C = 595 , T9840D = 596 , T9940A = 597 , T9940B = 598 ,
T10000A = 599 , T10000B = 600 , T10000C = 601 , T10000D = 602 ,
Travan1 = 610 , Travan1Ex = 611 , Travan3 = 612 , Travan3Ex = 613 ,
Travan4 = 614 , Travan5 = 615 , Travan7 = 616 , VXA1 = 620 ,
VXA2 = 621 , VXA3 = 622 , ECMA_153 = 630 , ECMA_153_512 = 631 ,
ECMA_154 = 632 , ECMA_183_512 = 633 , ECMA_183 = 634 , ECMA_184_512 = 635 ,
ECMA_184 = 636 , ECMA_189 = 637 , ECMA_190 = 638 , ECMA_195 = 639 ,
ECMA_195_512 = 640 , ECMA_201 = 641 , ECMA_201_ROM = 642 , ECMA_223 = 643 ,
ECMA_223_512 = 644 , ECMA_238 = 645 , ECMA_239 = 646 , ECMA_260 = 647 ,
ECMA_260_Double = 648 , ECMA_280 = 649 , ECMA_317 = 650 , ECMA_322 = 651 ,
ECMA_322_2k = 652 , GigaMo = 653 , GigaMo2 = 654 , CompactFloppy = 660 ,
DemiDiskette = 661 , Floptical = 662 , HiFD = 663 , QuickDisk = 664 ,
UHD144 = 665 , VideoFloppy = 666 , Wafer = 667 , ZXMicrodrive = 668 ,
BeeCard = 670 , Borsu = 671 , DataStore = 672 , DIR = 673 ,
DST = 674 , DTF = 675 , DTF2 = 676 , Flextra3020 = 677 ,
Flextra3225 = 678 , HiTC1 = 679 , HiTC2 = 680 , LT1 = 681 ,
MiniCard = 872 , Orb = 683 , Orb5 = 684 , SmartMedia = 685 ,
xD = 686 , XQD = 687 , DataPlay = 688 , AppleProfile = 690 ,
AppleWidget = 691 , AppleHD20 = 692 , PriamDataTower = 693 , Pippin = 694 ,
RA60 = 700 , RA80 = 701 , RA81 = 702 , RC25 = 703 ,
RD31 = 704 , RD32 = 705 , RD51 = 706 , RD52 = 707 ,
RD53 = 708 , RD54 = 709 , RK06 = 710 , RK06_18 = 711 ,
RK07 = 712 , RK07_18 = 713 , RM02 = 714 , RM03 = 715 ,
RM05 = 716 , RP02 = 717 , RP02_18 = 718 , RP03 = 719 ,
RP03_18 = 720 , RP04 = 721 , RP04_18 = 722 , RP05 = 723 ,
RP05_18 = 724 , RP06 = 725 , RP06_18 = 726 , LS120 = 730 ,
LS240 = 731 , FD32MB = 732 , RDX = 733 , RDX320 = 734 ,
VideoNow = 740 , VideoNowColor = 741 , VideoNowXp = 742 , Bernoulli10 = 750 ,
Bernoulli20 = 751 , BernoulliBox2_20 = 752 , KodakVerbatim3 = 760 , KodakVerbatim6 = 761 ,
KodakVerbatim12 = 762 , ProfessionalDisc = 770 , ProfessionalDiscDual = 771 , ProfessionalDiscTriple = 772 ,
ProfessionalDiscQuad = 773 , PDD = 774 , PDD_WORM = 775 , ArchivalDisc = 776 ,
ArchivalDisc2 = 777 , ArchivalDisc3 = 778 , ODC300R = 779 , ODC300RE = 780 ,
ODC600R = 781 , ODC600RE = 782 , ODC1200RE = 783 , ODC1500R = 784 ,
ODC3300R = 785 , ODC5500R = 786 , ECMA_322_1k = 800 , ECMA_322_512 = 801 ,
ISO_14517 = 802 , ISO_14517_512 = 803 , ISO_15041_512 = 804 , HSM650 = 805 ,
MetaFloppy_Mod_I = 820 , HF12 = 823 , HF24 = 824 , AtariLynxCard = 821 ,
AtariJaguarCartridge = 822
}

| Enumerates every recognized media / cartridge / optical / tape / card / disk format. More...

enum

SectorTagType {
AppleSonyTagAaru = 0 , CdSectorSync = 1 , CdSectorHeader = 2 , CdSectorSubHeader = 3 ,
CdSectorEdc = 4 , CdSectorEccP = 5 , CdSectorEccQ = 6 , CdSectorEcc = 7 ,
CdSectorSubchannelAaru = 8 , CdTrackIsrc = 9 , CdTrackText = 10 , CdTrackFlags = 11 ,
DvdCmi = 12 , FloppyAddressMark = 13 , DvdSectorTitleKey = 14 , DvdTitleKeyDecrypted = 15 ,
DvdSectorInformation = 16 , DvdSectorNumber = 17 , DvdSectorIedAaru = 18 , DvdSectorEdcAaru = 19 ,
AppleProfileTagAaru = 20 , PriamDataTowerTagAaru = 21 , MaxSectorTag = PriamDataTowerTagAaru
}

enum

MediaTagType {
CD_TOC = 0 , CD_SessionInfo = 1 , CD_FullTOC = 2 , CD_PMA = 3 ,
CD_ATIP = 4 , CD_TEXT = 5 , CD_MCN = 6 , DVD_PFI = 7 ,
DVD_CMI = 8 , DVD_DiscKey = 9 , DVD_BCA = 10 , DVD_DMI = 11 ,
DVD_MediaIdentifier = 12 , DVD_MKB = 13 , DVDRAM_DDS = 14 , DVDRAM_MediumStatus = 15 ,
DVDRAM_SpareArea = 16 , DVDR_RMD = 17 , DVDR_PreRecordedInfo = 18 , DVDR_MediaIdentifier = 19 ,
DVDR_PFI = 20 , DVD_ADIP = 21 , HDDVD_CPI = 22 , HDDVD_MediumStatus = 23 ,
DVDDL_LayerCapacity = 24 , DVDDL_MiddleZoneAddress = 25 , DVDDL_JumpIntervalSize = 26 , DVDDL_ManualLayerJumpLBA = 27 ,
BD_DI = 28 , BD_BCA = 29 , BD_DDS = 30 , BD_CartridgeStatus = 31 ,
BD_SpareArea = 32 , AACS_VolumeIdentifier = 33 , AACS_SerialNumber = 34 , AACS_MediaIdentifier = 35 ,
AACS_MKB = 36 , AACS_DataKeys = 37 , AACS_LBAExtents = 38 , AACS_CPRM_MKB = 39 ,
Hybrid_RecognizedLayers = 40 , MMC_WriteProtection = 41 , MMC_DiscInformation = 42 , MMC_TrackResourcesInformation = 43 ,
MMC_POWResourcesInformation = 44 , SCSI_INQUIRY = 45 , SCSI_MODEPAGE_2A = 46 , ATA_IDENTIFY = 47 ,
ATAPI_IDENTIFY = 48 , PCMCIA_CIS = 49 , SD_CID = 50 , SD_CSD = 51 ,
SD_SCR = 52 , SD_OCR = 53 , MMC_CID = 54 , MMC_CSD = 55 ,
MMC_OCR = 56 , MMC_ExtendedCSD = 57 , Xbox_SecuritySector = 58 , Floppy_LeadOut = 59 ,
DiscControlBlock = 60 , CD_FirstTrackPregap = 61 , CD_LeadOut = 62 , SCSI_MODESENSE_6 = 63 ,
SCSI_MODESENSE_10 = 64 , USB_Descriptors = 65 , Xbox_DMI = 66 , Xbox_PFI = 67 ,
CD_LeadIn = 68 , MiniDiscType = 69 , MiniDiscD5 = 70 , MiniDiscUTOC = 71 ,
MiniDiscDTOC = 72 , DVD_DiscKey_Decrypted = 73 , DVD_PFI_2ndLayer = 74 , MaxMediaTag = DVD_PFI_2ndLayer
}

## Detailed Description

Public high-level API types: media classifications, per-sector / per-media tag enums and image summary.

This header provides:

- MediaType : exhaustive enumeration of recognized physical / logical media formats (disks, tapes, cards, optics).
- ImageInfo : summary metadata extracted from an opened image (sizes, creator, geometry, drive/media identity).
- SectorTagType : bit-addressable per-sector auxiliary data kinds (prefix/suffix/ECC/subchannel, etc.).
- MediaTagType : higher-level per-media metadata structures (TOCs, format information, IDs, inquiry pages, etc.).

Value range conventions (MediaType): groups of contiguous numeric IDs are reserved for technology families; comments in the enum mark the ranges. This stable numeric mapping forms part of the external on-disk and API contract—do not renumber existing entries. New media types must be appended in an unused range or in an explicitly extended tail section to preserve backward compatibility.

Thread safety: All types here are PODs / enumerations and are safe for concurrent read-only access. Encoding: All UTF-8 textual pointers inside ImageInfo refer to NUL-terminated dynamically allocated buffers owned by the context that produced them (caller copies if persistence is required beyond context lifetime).

See also: aaruformat/context.h for runtime context internals and metadata/dump structures.

Definition in file aaru.h.

## Typedef Documentation

## ImageInfo

typedef struct ImageInfo ImageInfo