105 uint32_t *sectors_per_track)
107 TRACE(
"Entering aaruf_get_geometry(%p, %p, %p, %p)", context, cylinders, heads, sectors_per_track);
113 FATAL(
"Invalid context");
115 TRACE(
"Exiting aaruf_get_geometry() = AARUF_ERROR_NOT_AARUFORMAT");
124 FATAL(
"Invalid context");
126 TRACE(
"Exiting aaruf_get_geometry() = AARUF_ERROR_NOT_AARUFORMAT");
132 FATAL(
"No geometry block present");
134 TRACE(
"Exiting aaruf_get_geometry() = AARUF_ERROR_CANNOT_READ_BLOCK");
142 TRACE(
"Exiting aaruf_get_geometry(%p, %u, %u, %u) = AARUF_STATUS_OK", context, *cylinders, *heads,
246 TRACE(
"Entering aaruf_get_cicm_metadata(%p, %p, %p)", context, buffer, length);
251 FATAL(
"Invalid context");
253 TRACE(
"Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_NOT_AARUFORMAT");
262 FATAL(
"Invalid context");
264 TRACE(
"Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_NOT_AARUFORMAT");
270 TRACE(
"No CICM XML metadata present");
273 TRACE(
"Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_CANNOT_READ_BLOCK");
277 if(*length < ctx->cicm_block_header.length)
282 TRACE(
"Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_BUFFER_TOO_SMALL");
289 TRACE(
"CICM XML metadata read successfully, length %u", *length);
290 TRACE(
"Exiting aaruf_get_cicm_metadata(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
401 TRACE(
"Entering aaruf_get_aaru_json_metadata(%p, %p, %p)", context, buffer, length);
406 FATAL(
"Invalid context");
408 TRACE(
"Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_NOT_AARUFORMAT");
417 FATAL(
"Invalid context");
419 TRACE(
"Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_NOT_AARUFORMAT");
426 TRACE(
"No Aaru metadata JSON present");
429 TRACE(
"Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_CANNOT_READ_BLOCK");
433 if(*length < ctx->json_block_header.length)
438 TRACE(
"Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_BUFFER_TOO_SMALL");
445 TRACE(
"Aaru metadata JSON read successfully, length %u", *length);
446 TRACE(
"Exiting aaruf_get_aaru_json_metadata(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
479 TRACE(
"Entering aaruf_get_media_sequence(%p, %p, %p)", context, sequence, last_sequence);
484 FATAL(
"Invalid context");
486 TRACE(
"Exiting aaruf_set_media_sequence() = AARUF_ERROR_NOT_AARUFORMAT");
495 FATAL(
"Invalid context");
497 TRACE(
"Exiting aaruf_set_media_sequence() = AARUF_ERROR_NOT_AARUFORMAT");
503 FATAL(
"No metadata block present");
505 TRACE(
"Exiting aaruf_set_media_sequence() = AARUF_ERROR_METADATA_NOT_PRESENT");
512 TRACE(
"Exiting aaruf_set_media_sequence(%p, %d, %d) = AARUF_STATUS_OK", context, *sequence, *last_sequence);
546 TRACE(
"Entering aaruf_get_creator(%p, %p, %p)", context, buffer, length);
551 FATAL(
"Invalid context");
553 TRACE(
"Exiting aaruf_get_creator() = AARUF_ERROR_NOT_AARUFORMAT");
562 FATAL(
"Invalid context");
564 TRACE(
"Exiting aaruf_get_creator() = AARUF_ERROR_NOT_AARUFORMAT");
571 FATAL(
"No metadata block present");
573 TRACE(
"Exiting aaruf_get_creator() = AARUF_ERROR_METADATA_NOT_PRESENT");
577 if(buffer == NULL || *length < ctx->metadata_block_header.creatorLength)
581 TRACE(
"Exiting aaruf_get_creator() = AARUF_ERROR_BUFFER_TOO_SMALL");
589 TRACE(
"Exiting aaruf_get_creator(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
618 TRACE(
"Entering aaruf_get_comments(%p, %p, %p)", context, buffer, length);
623 FATAL(
"Invalid context");
625 TRACE(
"Exiting aaruf_get_comments() = AARUF_ERROR_NOT_AARUFORMAT");
634 FATAL(
"Invalid context");
636 TRACE(
"Exiting aaruf_get_comments() = AARUF_ERROR_NOT_AARUFORMAT");
643 FATAL(
"No metadata block present");
645 TRACE(
"Exiting aaruf_get_comments() = AARUF_ERROR_METADATA_NOT_PRESENT");
649 if(buffer == NULL || *length < ctx->metadata_block_header.commentsLength)
653 TRACE(
"Exiting aaruf_get_comments() = AARUF_ERROR_BUFFER_TOO_SMALL");
661 TRACE(
"Exiting aaruf_get_comments(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
688 TRACE(
"Entering aaruf_get_media_title(%p, %p, %p)", context, buffer, length);
693 FATAL(
"Invalid context");
695 TRACE(
"Exiting aaruf_get_media_title() = AARUF_ERROR_NOT_AARUFORMAT");
704 FATAL(
"Invalid context");
706 TRACE(
"Exiting aaruf_get_media_title() = AARUF_ERROR_NOT_AARUFORMAT");
713 FATAL(
"No metadata block present");
715 TRACE(
"Exiting aaruf_get_media_title() = AARUF_ERROR_METADATA_NOT_PRESENT");
719 if(buffer == NULL || *length < ctx->metadata_block_header.mediaTitleLength)
723 TRACE(
"Exiting aaruf_get_media_title() = AARUF_ERROR_BUFFER_TOO_SMALL");
731 TRACE(
"Exiting aaruf_get_media_title(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
758 TRACE(
"Entering aaruf_get_media_manufacturer(%p, %p, %p)", context, buffer, length);
763 FATAL(
"Invalid context");
765 TRACE(
"Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT");
774 FATAL(
"Invalid context");
776 TRACE(
"Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT");
783 FATAL(
"No metadata block present");
785 TRACE(
"Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_METADATA_NOT_PRESENT");
789 if(buffer == NULL || *length < ctx->metadata_block_header.mediaManufacturerLength)
793 TRACE(
"Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_BUFFER_TOO_SMALL");
801 TRACE(
"Exiting aaruf_get_media_manufacturer(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
828 TRACE(
"Entering aaruf_get_media_model(%p, %p, %p)", context, buffer, length);
833 FATAL(
"Invalid context");
835 TRACE(
"Exiting aaruf_get_media_model() = AARUF_ERROR_NOT_AARUFORMAT");
844 FATAL(
"Invalid context");
846 TRACE(
"Exiting aaruf_get_media_model() = AARUF_ERROR_NOT_AARUFORMAT");
853 FATAL(
"No metadata block present");
855 TRACE(
"Exiting aaruf_get_media_model() = AARUF_ERROR_METADATA_NOT_PRESENT");
859 if(buffer == NULL || *length < ctx->metadata_block_header.mediaModelLength)
863 TRACE(
"Exiting aaruf_get_media_model() = AARUF_ERROR_BUFFER_TOO_SMALL");
871 TRACE(
"Exiting aaruf_get_media_model(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
898 TRACE(
"Entering aaruf_get_media_serial_number(%p, %p, %p)", context, buffer, length);
903 FATAL(
"Invalid context");
905 TRACE(
"Exiting aaruf_get_media_serial_number() = AARUF_ERROR_NOT_AARUFORMAT");
914 FATAL(
"Invalid context");
916 TRACE(
"Exiting aaruf_get_media_serial_number() = AARUF_ERROR_NOT_AARUFORMAT");
923 FATAL(
"No metadata block present");
925 TRACE(
"Exiting aaruf_get_media_serial_number() = AARUF_ERROR_METADATA_NOT_PRESENT");
929 if(buffer == NULL || *length < ctx->metadata_block_header.mediaSerialNumberLength)
933 TRACE(
"Exiting aaruf_get_media_serial_number() = AARUF_ERROR_BUFFER_TOO_SMALL");
941 TRACE(
"Exiting aaruf_get_media_serial_number(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
967 TRACE(
"Entering aaruf_get_media_barcode(%p, %p, %p)", context, buffer, length);
972 FATAL(
"Invalid context");
974 TRACE(
"Exiting aaruf_get_media_barcode() = AARUF_ERROR_NOT_AARUFORMAT");
983 FATAL(
"Invalid context");
985 TRACE(
"Exiting aaruf_get_media_barcode() = AARUF_ERROR_NOT_AARUFORMAT");
992 FATAL(
"No metadata block present");
994 TRACE(
"Exiting aaruf_get_media_barcode() = AARUF_ERROR_METADATA_NOT_PRESENT");
998 if(buffer == NULL || *length < ctx->metadata_block_header.mediaBarcodeLength)
1002 TRACE(
"Exiting aaruf_get_media_barcode() = AARUF_ERROR_BUFFER_TOO_SMALL");
1010 TRACE(
"Exiting aaruf_get_media_barcode(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
1038 TRACE(
"Entering aaruf_get_media_part_number(%p, %p, %p)", context, buffer, length);
1043 FATAL(
"Invalid context");
1045 TRACE(
"Exiting aaruf_get_media_part_number() = AARUF_ERROR_NOT_AARUFORMAT");
1054 FATAL(
"Invalid context");
1056 TRACE(
"Exiting aaruf_get_media_part_number() = AARUF_ERROR_NOT_AARUFORMAT");
1063 FATAL(
"No metadata block present");
1065 TRACE(
"Exiting aaruf_get_media_part_number() = AARUF_ERROR_METADATA_NOT_PRESENT");
1069 if(buffer == NULL || *length < ctx->metadata_block_header.mediaPartNumberLength)
1073 TRACE(
"Exiting aaruf_get_media_part_number() = AARUF_ERROR_BUFFER_TOO_SMALL");
1081 TRACE(
"Exiting aaruf_get_media_part_number(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
1110 TRACE(
"Entering aaruf_get_drive_manufacturer(%p, %p, %p)", context, buffer, length);
1115 FATAL(
"Invalid context");
1117 TRACE(
"Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT");
1126 FATAL(
"Invalid context");
1128 TRACE(
"Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT");
1135 FATAL(
"No metadata block present");
1137 TRACE(
"Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_METADATA_NOT_PRESENT");
1141 if(buffer == NULL || *length < ctx->metadata_block_header.driveManufacturerLength)
1145 TRACE(
"Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_BUFFER_TOO_SMALL");
1153 TRACE(
"Exiting aaruf_get_drive_manufacturer(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
1180 TRACE(
"Entering aaruf_get_drive_model(%p, %p, %p)", context, buffer, length);
1185 FATAL(
"Invalid context");
1187 TRACE(
"Exiting aaruf_get_drive_model() = AARUF_ERROR_NOT_AARUFORMAT");
1196 FATAL(
"Invalid context");
1198 TRACE(
"Exiting aaruf_get_drive_model() = AARUF_ERROR_NOT_AARUFORMAT");
1205 FATAL(
"No metadata block present");
1207 TRACE(
"Exiting aaruf_get_drive_model() = AARUF_ERROR_METADATA_NOT_PRESENT");
1211 if(buffer == NULL || *length < ctx->metadata_block_header.driveModelLength)
1215 TRACE(
"Exiting aaruf_get_drive_model() = AARUF_ERROR_BUFFER_TOO_SMALL");
1223 TRACE(
"Exiting aaruf_get_drive_model(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
1250 TRACE(
"Entering aaruf_get_drive_serial_number(%p, %p, %p)", context, buffer, length);
1255 FATAL(
"Invalid context");
1257 TRACE(
"Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_NOT_AARUFORMAT");
1266 FATAL(
"Invalid context");
1268 TRACE(
"Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_NOT_AARUFORMAT");
1275 FATAL(
"No metadata block present");
1277 TRACE(
"Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_METADATA_NOT_PRESENT");
1281 if(buffer == NULL || *length < ctx->metadata_block_header.driveSerialNumberLength)
1285 TRACE(
"Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_BUFFER_TOO_SMALL");
1293 TRACE(
"Exiting aaruf_get_drive_serial_number(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
1320 TRACE(
"Entering aaruf_get_drive_firmware_revision(%p, %p, %p)", context, buffer, length);
1325 FATAL(
"Invalid context");
1327 TRACE(
"Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_NOT_AARUFORMAT");
1336 FATAL(
"Invalid context");
1338 TRACE(
"Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_NOT_AARUFORMAT");
1345 FATAL(
"No metadata block present");
1347 TRACE(
"Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_METADATA_NOT_PRESENT");
1351 if(buffer == NULL || *length < ctx->metadata_block_header.driveFirmwareRevisionLength)
1355 TRACE(
"Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_BUFFER_TOO_SMALL");
1363 TRACE(
"Exiting aaruf_get_drive_firmware_revision(%p, %p, %d) = AARUF_STATUS_OK", context, buffer, *length);
1434 TRACE(
"Entering aaruf_get_user_sectors(%p, %p)", context, sectors);
1439 FATAL(
"Invalid context");
1441 TRACE(
"Exiting aaruf_get_user_sectors() = AARUF_ERROR_NOT_AARUFORMAT");
1450 FATAL(
"Invalid context");
1452 TRACE(
"Exiting aaruf_get_user_sectors() = AARUF_ERROR_NOT_AARUFORMAT");
1458 TRACE(
"Exiting aaruf_get_user_sectors(%p, %llu) = AARUF_STATUS_OK", context, *sectors);
1559 TRACE(
"Entering aaruf_get_negative_sectors(%p, %p)", context, sectors);
1564 FATAL(
"Invalid context");
1566 TRACE(
"Exiting aaruf_get_negative_sectors() = AARUF_ERROR_NOT_AARUFORMAT");
1575 FATAL(
"Invalid context");
1577 TRACE(
"Exiting aaruf_get_negative_sectors() = AARUF_ERROR_NOT_AARUFORMAT");
1583 TRACE(
"Exiting aaruf_get_negative_sectors(%p, %u) = AARUF_STATUS_OK", context, *sectors);
1694 TRACE(
"Entering aaruf_get_overflow_sectors(%p, %p)", context, sectors);
1699 FATAL(
"Invalid context");
1701 TRACE(
"Exiting aaruf_get_overflow_sectors() = AARUF_ERROR_NOT_AARUFORMAT");
1710 FATAL(
"Invalid context");
1712 TRACE(
"Exiting aaruf_get_overflow_sectors() = AARUF_ERROR_NOT_AARUFORMAT");
1718 TRACE(
"Exiting aaruf_get_overflow_sectors(%p, %u) = AARUF_STATUS_OK", context, *sectors);
1776 TRACE(
"Entering aaruf_get_image_info(%p, %p)", context, image_info);
1781 FATAL(
"Invalid context");
1783 TRACE(
"Exiting aaruf_get_image_info() = AARUF_ERROR_NOT_AARUFORMAT");
1792 FATAL(
"Invalid context");
1794 TRACE(
"Exiting aaruf_get_image_info() = AARUF_ERROR_NOT_AARUFORMAT");
1798 if(image_info == NULL)
1800 FATAL(
"image_info parameter is NULL");
1802 TRACE(
"Exiting aaruf_get_image_info() = AARUF_ERROR_INCORRECT_DATA_SIZE");
1809 TRACE(
"Exiting aaruf_get_image_info() = AARUF_STATUS_OK");
#define AARU_MAGIC
Magic identifier for AaruFormat container (ASCII "AARUFRMT").
@ GeometryBlock
Block containing logical geometry.
@ AaruMetadataJsonBlock
Block containing JSON version of Aaru Metadata.
@ CicmBlock
Block containing CICM XML metadata.
@ MetadataBlock
Block containing metadata.
#define AARUF_STATUS_OK
Sector present and read without uncorrectable errors.
#define AARUF_ERROR_CANNOT_READ_BLOCK
Generic block read failure (seek/read error).
#define AARUF_ERROR_INCORRECT_DATA_SIZE
Data size does not match expected size.
#define AARUF_ERROR_METADATA_NOT_PRESENT
Requested metadata not present in image.
#define AARUF_ERROR_NOT_AARUFORMAT
Input file/stream failed magic or structural validation.
#define AARUF_ERROR_BUFFER_TOO_SMALL
Caller-supplied buffer insufficient for data.
High-level summary of an opened Aaru image containing metadata and media characteristics.
Master context representing an open or in‑creation Aaru image.
uint8_t * media_barcode
Barcode of the media represented by the image.
DdtHeader2 user_data_ddt_header
Active user data DDT v2 header (primary table meta).
uint8_t * creator
Who (person) created the image?
uint8_t * cicm_block
CICM XML payload.
uint8_t * drive_firmware_revision
Firmware revision of the drive used to read the media represented by the image.
uint8_t * media_serial_number
Serial number of the media represented by the image.
MetadataBlockHeader metadata_block_header
Metadata block header.
uint8_t * media_model
Model of the media represented by the image.
uint8_t * drive_serial_number
Serial number of the drive used to read the media represented by the image.
uint8_t * drive_manufacturer
Manufacturer of the drive used to read the media represented by the image.
CicmMetadataBlock cicm_block_header
CICM metadata header (if present).
uint8_t * drive_model
Model of the drive used to read the media represented by the image.
uint64_t magic
File magic (AARU_MAGIC) post-open.
GeometryBlockHeader geometry_block
Logical geometry block (if present).
uint8_t * json_block
JSON metadata block payload (UTF-8).
uint8_t * media_part_number
Part number of the media represented by the image.
AaruMetadataJsonBlockHeader json_block_header
JSON metadata block header (if present).
uint8_t * comments
Image comments.
ImageInfo image_info
Exposed high-level image info summary.
uint8_t * media_title
Title of the media represented by the image.
uint8_t * media_manufacturer
Manufacturer of the media represented by the image.