General refactor and cleanup.

This commit is contained in:
2024-04-30 15:51:32 +01:00
parent 80d5a532de
commit 1f813feec9
56 changed files with 2858 additions and 3104 deletions

View File

@@ -23,22 +23,15 @@
#include <aaruformat.h>
int identify(char* path);
int info(char* path);
char* byte_array_to_hex_string(const unsigned char* array, int array_size);
int read(unsigned long long sector_no, char* path);
int printhex(unsigned char* array, unsigned int length, int width, bool color);
int read_long(unsigned long long sector_no, char* path);
int verify(char* path);
int verify_sectors(char* path);
bool check_cd_sector_channel(CdEccContext* context,
uint8_t* sector,
bool* unknown,
bool* has_edc,
bool* edc_correct,
bool* has_ecc_p,
bool* ecc_p_correct,
bool* has_ecc_q,
bool* ecc_q_correct);
int identify(char *path);
int info(char *path);
char *byte_array_to_hex_string(const unsigned char *array, int array_size);
int read(unsigned long long sector_no, char *path);
int printhex(unsigned char *array, unsigned int length, int width, bool color);
int read_long(unsigned long long sector_no, char *path);
int verify(char *path);
int verify_sectors(char *path);
bool check_cd_sector_channel(CdEccContext *context, uint8_t *sector, bool *unknown, bool *has_edc, bool *edc_correct,
bool *has_ecc_p, bool *ecc_p_correct, bool *has_ecc_q, bool *ecc_q_correct);
#endif // LIBAARUFORMAT_TOOL_AARUFORMATTOOL_H_
#endif // LIBAARUFORMAT_TOOL_AARUFORMATTOOL_H_

View File

@@ -22,15 +22,8 @@
#include <aaruformat.h>
bool check_cd_sector_channel(CdEccContext* context,
uint8_t* sector,
bool* unknown,
bool* has_edc,
bool* edc_correct,
bool* has_ecc_p,
bool* ecc_p_correct,
bool* has_ecc_q,
bool* ecc_q_correct)
bool check_cd_sector_channel(CdEccContext *context, uint8_t *sector, bool *unknown, bool *has_edc, bool *edc_correct,
bool *has_ecc_p, bool *ecc_p_correct, bool *has_ecc_q, bool *ecc_q_correct)
{
int i;
uint32_t storedEdc, edc, calculatedEdc;
@@ -53,15 +46,12 @@ bool check_cd_sector_channel(CdEccContext* context,
return false;
}
if((sector[0x00F] & 0x03) == 0x00) // Mode 0
if((sector[0x00F] & 0x03) == 0x00) // Mode 0
{
for(i = 0x010; i < 0x930; i++)
if(sector[i] != 0x00)
{
fprintf(stderr,
"Mode 0 sector with error at address: %2X:%2X:%2X.\n",
sector[0x00C],
sector[0x00D],
fprintf(stderr, "Mode 0 sector with error at address: %2X:%2X:%2X.\n", sector[0x00C], sector[0x00D],
sector[0x00E]);
return false;
}
@@ -69,18 +59,15 @@ bool check_cd_sector_channel(CdEccContext* context,
return true;
}
if((sector[0x00F] & 0x03) == 0x01) // Mode 1
if((sector[0x00F] & 0x03) == 0x01) // Mode 1
{
if(sector[0x814] != 0x00 ||
// reserved (8 bytes)
sector[0x815] != 0x00 || sector[0x816] != 0x00 || sector[0x817] != 0x00 || sector[0x818] != 0x00 ||
sector[0x819] != 0x00 || sector[0x81A] != 0x00 || sector[0x81B] != 0x00)
{
fprintf(stderr,
"Mode 1 with data in reserved bytes at address: %2X:%2X:%2X.\n",
sector[0x00C],
sector[0x00D],
sector[0x00E]);
fprintf(stderr, "Mode 1 with data in reserved bytes at address: %2X:%2X:%2X.\n", sector[0x00C],
sector[0x00D], sector[0x00E]);
return false;
}
@@ -91,8 +78,8 @@ bool check_cd_sector_channel(CdEccContext* context,
*ecc_p_correct = aaruf_ecc_cd_check(context, sector, sector, 86, 24, 2, 86, sector, 0xC, 0x10, 0x81C);
*ecc_q_correct = aaruf_ecc_cd_check(context, sector, sector, 52, 43, 86, 88, sector, 0xC, 0x10, 0x81C + 0xAC);
storedEdc =
(sector[0x813] << 24) + (sector[0x812] << 16) + (sector[0x811] << 8) + sector[0x810]; // TODO: Check casting
storedEdc = (sector[0x813] << 24) + (sector[0x812] << 16) + (sector[0x811] << 8) +
sector[0x810]; // TODO: Check casting
edc = 0;
size = 0x810;
pos = 0;
@@ -103,47 +90,33 @@ bool check_cd_sector_channel(CdEccContext* context,
if(!*edc_correct)
{
fprintf(stderr,
"Mode 1 sector at address: %2X:%2X:%2X, got CRC 0x%8X expected 0x%8X\n",
sector[0x00C],
sector[0x00D],
sector[0x00E],
calculatedEdc,
storedEdc);
fprintf(stderr, "Mode 1 sector at address: %2X:%2X:%2X, got CRC 0x%8X expected 0x%8X\n", sector[0x00C],
sector[0x00D], sector[0x00E], calculatedEdc, storedEdc);
}
if(!*ecc_p_correct)
{
fprintf(stderr,
"Mode 1 sector at address: %2X:%2X:%2X, fails ECC P check.\n",
sector[0x00C],
sector[0x00D],
fprintf(stderr, "Mode 1 sector at address: %2X:%2X:%2X, fails ECC P check.\n", sector[0x00C], sector[0x00D],
sector[0x00E]);
}
if(!*ecc_q_correct)
{
fprintf(stderr,
"Mode 1 sector at address: %2X:%2X:%2X, fails ECC Q check.\n",
sector[0x00C],
sector[0x00D],
fprintf(stderr, "Mode 1 sector at address: %2X:%2X:%2X, fails ECC Q check.\n", sector[0x00C], sector[0x00D],
sector[0x00E]);
}
return *edc_correct && *ecc_p_correct && *ecc_q_correct;
}
if((sector[0x00F] & 0x03) == 0x02) // Mode 2
if((sector[0x00F] & 0x03) == 0x02) // Mode 2
{
if((sector[0x012] & 0x20) == 0x20) // mode 2 form 2
if((sector[0x012] & 0x20) == 0x20) // mode 2 form 2
{
if(sector[0x010] != sector[0x014] || sector[0x011] != sector[0x015] || sector[0x012] != sector[0x016] ||
sector[0x013] != sector[0x017])
fprintf(stderr,
"Subheader copies differ in mode 2 form 2 sector at address: %2X:%2X:%2X",
sector[0x00C],
sector[0x00D],
sector[0x00E]);
fprintf(stderr, "Subheader copies differ in mode 2 form 2 sector at address: %2X:%2X:%2X",
sector[0x00C], sector[0x00D], sector[0x00E]);
storedEdc = sector[0x91C];
@@ -162,13 +135,8 @@ bool check_cd_sector_channel(CdEccContext* context,
if(!*edc_correct)
{
fprintf(stderr,
"Mode 2 sector at address: %2X:%2X:%2X, got CRC 0x%8X expected 0x%8X\n",
sector[0x00C],
sector[0x00D],
sector[0x00E],
calculatedEdc,
storedEdc);
fprintf(stderr, "Mode 2 sector at address: %2X:%2X:%2X, got CRC 0x%8X expected 0x%8X\n", sector[0x00C],
sector[0x00D], sector[0x00E], calculatedEdc, storedEdc);
}
return *edc_correct;
@@ -179,7 +147,7 @@ bool check_cd_sector_channel(CdEccContext* context,
*ecc_q_correct =
aaruf_ecc_cd_check(context, zeroaddress, sector, 52, 43, 86, 88, sector, 0, 0x10, 0x81C + 0xAC);
storedEdc = sector[0x818]; // TODO: Check cast
storedEdc = sector[0x818]; // TODO: Check cast
edc = 0;
size = 0x808;
pos = 0x10;
@@ -190,41 +158,26 @@ bool check_cd_sector_channel(CdEccContext* context,
if(!*edc_correct)
{
fprintf(stderr,
"Mode 2 sector at address: %2X:%2X:%2X, got CRC 0x%8X expected 0x%8X\n",
sector[0x00C],
sector[0x00D],
sector[0x00E],
calculatedEdc,
storedEdc);
fprintf(stderr, "Mode 2 sector at address: %2X:%2X:%2X, got CRC 0x%8X expected 0x%8X\n", sector[0x00C],
sector[0x00D], sector[0x00E], calculatedEdc, storedEdc);
}
if(!*ecc_p_correct)
{
fprintf(stderr,
"Mode 2 sector at address: %2X:%2X:%2X, fails ECC P check.\n",
sector[0x00C],
sector[0x00D],
fprintf(stderr, "Mode 2 sector at address: %2X:%2X:%2X, fails ECC P check.\n", sector[0x00C], sector[0x00D],
sector[0x00E]);
}
if(!*ecc_q_correct)
{
fprintf(stderr,
"Mode 2 sector at address: %2X:%2X:%2X, fails ECC Q check.\n",
sector[0x00C],
sector[0x00D],
fprintf(stderr, "Mode 2 sector at address: %2X:%2X:%2X, fails ECC Q check.\n", sector[0x00C], sector[0x00D],
sector[0x00E]);
}
return *edc_correct && *ecc_p_correct && *ecc_q_correct;
}
fprintf(stderr,
"Unknown mode %d sector at address: %2X:%2X:%2X",
sector[0x00F],
sector[0x00C],
sector[0x00D],
fprintf(stderr, "Unknown mode %d sector at address: %2X:%2X:%2X", sector[0x00F], sector[0x00C], sector[0x00D],
sector[0x00E]);
return false;

View File

@@ -22,9 +22,9 @@
#include "aaruformattool.h"
char* byte_array_to_hex_string(const unsigned char* array, int array_size)
char *byte_array_to_hex_string(const unsigned char *array, int array_size)
{
char* hex_string = NULL;
char *hex_string = NULL;
int j;
int i;

View File

@@ -19,7 +19,7 @@
#include <aaruformat.h>
int identify(char* path)
int identify(char *path)
{
int ret;

View File

@@ -25,14 +25,14 @@
#include "aaruformattool.h"
int info(char* path)
int info(char *path)
{
aaruformatContext* ctx;
char* strBuffer;
aaruformatContext *ctx;
char *strBuffer;
UErrorCode u_error_code;
uint i, j;
mediaTagEntry* mediaTag;
mediaTagEntry* tmpMediaTag;
mediaTagEntry *mediaTag;
mediaTagEntry *tmpMediaTag;
ctx = aaruf_open(path);
@@ -43,14 +43,14 @@ int info(char* path)
}
printf("AaruFormat context information:\n");
printf("Magic number: %8.8s\n", (char*)&ctx->magic);
printf("Magic number: %8.8s\n", (char *)&ctx->magic);
printf("Library version: %d.%d\n", ctx->libraryMajorVersion, ctx->libraryMinorVersion);
printf("AaruFormat header:\n");
printf("\tIdentifier: %8.8s\n", (char*)&ctx->header.identifier);
printf("\tIdentifier: %8.8s\n", (char *)&ctx->header.identifier);
strBuffer = malloc(65);
memset(strBuffer, 0, 65);
ucnv_convert(NULL, "UTF-16LE", strBuffer, 64, (const char*)ctx->header.application, 64, &u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, 64, (const char *)ctx->header.application, 64, &u_error_code);
if(u_error_code == U_ZERO_ERROR) printf("\tApplication: %s\n", strBuffer);
free(strBuffer);
@@ -88,30 +88,23 @@ int info(char* path)
if(ctx->sectorPrefixDdt != NULL) printf("Sector suffix DDT has been read to memory.\n");
if(ctx->geometryBlock.identifier == GeometryBlock)
printf("Media has %d cylinders, %d heads and %d sectors per track.\n",
ctx->geometryBlock.cylinders,
ctx->geometryBlock.heads,
ctx->geometryBlock.sectorsPerTrack);
printf("Media has %d cylinders, %d heads and %d sectors per track.\n", ctx->geometryBlock.cylinders,
ctx->geometryBlock.heads, ctx->geometryBlock.sectorsPerTrack);
if(ctx->metadataBlockHeader.identifier == MetadataBlock)
{
printf("Metadata block:\n");
if(ctx->metadataBlockHeader.mediaSequence > 0)
printf("\tMedia is no. %d in a set of %d media\n",
ctx->metadataBlockHeader.mediaSequence,
printf("\tMedia is no. %d in a set of %d media\n", ctx->metadataBlockHeader.mediaSequence,
ctx->metadataBlockHeader.lastMediaSequence);
if(ctx->metadataBlockHeader.creatorLength > 0)
{
strBuffer = malloc(ctx->metadataBlockHeader.creatorLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.creatorLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.creatorLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.creatorOffset),
(int)ctx->metadataBlockHeader.creatorLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.creatorLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.creatorOffset),
(int)ctx->metadataBlockHeader.creatorLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -120,13 +113,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.commentsLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.commentsLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.commentsLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.commentsOffset),
(int)ctx->metadataBlockHeader.commentsLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.commentsLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.commentsOffset),
(int)ctx->metadataBlockHeader.commentsLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -135,13 +124,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.mediaTitleLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.mediaTitleLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.mediaTitleLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaTitleOffset),
(int)ctx->metadataBlockHeader.mediaTitleLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.mediaTitleLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaTitleOffset),
(int)ctx->metadataBlockHeader.mediaTitleLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -150,13 +135,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.mediaManufacturerLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.mediaManufacturerLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.mediaManufacturerLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaManufacturerOffset),
(int)ctx->metadataBlockHeader.mediaManufacturerLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.mediaManufacturerLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaManufacturerOffset),
(int)ctx->metadataBlockHeader.mediaManufacturerLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -165,13 +146,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.mediaModelLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.mediaModelLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.mediaModelLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaModelOffset),
(int)ctx->metadataBlockHeader.mediaModelLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.mediaModelLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaModelOffset),
(int)ctx->metadataBlockHeader.mediaModelLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -180,13 +157,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.mediaSerialNumberLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.mediaSerialNumberLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.mediaSerialNumberLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaSerialNumberOffset),
(int)ctx->metadataBlockHeader.mediaSerialNumberLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.mediaSerialNumberLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaSerialNumberOffset),
(int)ctx->metadataBlockHeader.mediaSerialNumberLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -195,13 +168,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.mediaBarcodeLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.mediaBarcodeLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.mediaBarcodeLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaBarcodeOffset),
(int)ctx->metadataBlockHeader.mediaBarcodeLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.mediaBarcodeLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaBarcodeOffset),
(int)ctx->metadataBlockHeader.mediaBarcodeLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -210,13 +179,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.mediaPartNumberLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.mediaPartNumberLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.mediaPartNumberLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaPartNumberOffset),
(int)ctx->metadataBlockHeader.mediaPartNumberLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.mediaPartNumberLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.mediaPartNumberOffset),
(int)ctx->metadataBlockHeader.mediaPartNumberLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -225,13 +190,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.driveManufacturerLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.driveManufacturerLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.driveManufacturerLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.driveManufacturerOffset),
(int)ctx->metadataBlockHeader.driveManufacturerLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.driveManufacturerLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.driveManufacturerOffset),
(int)ctx->metadataBlockHeader.driveManufacturerLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -240,13 +201,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.driveModelLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.driveModelLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.driveModelLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.driveModelOffset),
(int)ctx->metadataBlockHeader.driveModelLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.driveModelLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.driveModelOffset),
(int)ctx->metadataBlockHeader.driveModelLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -255,13 +212,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.driveSerialNumberLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.driveSerialNumberLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.driveSerialNumberLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.driveSerialNumberOffset),
(int)ctx->metadataBlockHeader.driveSerialNumberLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.driveSerialNumberLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.driveSerialNumberOffset),
(int)ctx->metadataBlockHeader.driveSerialNumberLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -270,13 +223,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->metadataBlockHeader.driveFirmwareRevisionLength + 1);
memset(strBuffer, 0, ctx->metadataBlockHeader.driveFirmwareRevisionLength + 1);
ucnv_convert(NULL,
"UTF-16LE",
strBuffer,
(int)ctx->metadataBlockHeader.driveFirmwareRevisionLength,
(char*)(ctx->metadataBlock + ctx->metadataBlockHeader.driveFirmwareRevisionOffset),
(int)ctx->metadataBlockHeader.driveFirmwareRevisionLength,
&u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, (int)ctx->metadataBlockHeader.driveFirmwareRevisionLength,
(char *)(ctx->metadataBlock + ctx->metadataBlockHeader.driveFirmwareRevisionOffset),
(int)ctx->metadataBlockHeader.driveFirmwareRevisionLength, &u_error_code);
printf("\tCreator: %s\n", strBuffer);
free(strBuffer);
}
@@ -319,13 +268,10 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.manufacturerLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.manufacturerLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
ucnv_convert(NULL, "UTF-8", strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.manufacturerLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].manufacturer),
(int)ctx->dumpHardwareEntriesWithData[i].entry.manufacturerLength,
&u_error_code);
(char *)(ctx->dumpHardwareEntriesWithData[i].manufacturer),
(int)ctx->dumpHardwareEntriesWithData[i].entry.manufacturerLength, &u_error_code);
printf("\t\tManufacturer: %s\n", strBuffer);
free(strBuffer);
}
@@ -334,13 +280,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.modelLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.modelLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.modelLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].model),
(int)ctx->dumpHardwareEntriesWithData[i].entry.modelLength,
&u_error_code);
ucnv_convert(NULL, "UTF-8", strBuffer, (int)ctx->dumpHardwareEntriesWithData[i].entry.modelLength,
(char *)(ctx->dumpHardwareEntriesWithData[i].model),
(int)ctx->dumpHardwareEntriesWithData[i].entry.modelLength, &u_error_code);
printf("\t\tModel: %s\n", strBuffer);
free(strBuffer);
}
@@ -349,13 +291,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.revisionLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.revisionLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.revisionLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].revision),
(int)ctx->dumpHardwareEntriesWithData[i].entry.revisionLength,
&u_error_code);
ucnv_convert(NULL, "UTF-8", strBuffer, (int)ctx->dumpHardwareEntriesWithData[i].entry.revisionLength,
(char *)(ctx->dumpHardwareEntriesWithData[i].revision),
(int)ctx->dumpHardwareEntriesWithData[i].entry.revisionLength, &u_error_code);
printf("\t\tRevision: %s\n", strBuffer);
free(strBuffer);
}
@@ -364,13 +302,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.firmwareLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.firmwareLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.firmwareLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].firmware),
(int)ctx->dumpHardwareEntriesWithData[i].entry.firmwareLength,
&u_error_code);
ucnv_convert(NULL, "UTF-8", strBuffer, (int)ctx->dumpHardwareEntriesWithData[i].entry.firmwareLength,
(char *)(ctx->dumpHardwareEntriesWithData[i].firmware),
(int)ctx->dumpHardwareEntriesWithData[i].entry.firmwareLength, &u_error_code);
printf("\t\tFirmware version: %s\n", strBuffer);
free(strBuffer);
}
@@ -379,13 +313,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.serialLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.serialLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.serialLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].serial),
(int)ctx->dumpHardwareEntriesWithData[i].entry.serialLength,
&u_error_code);
ucnv_convert(NULL, "UTF-8", strBuffer, (int)ctx->dumpHardwareEntriesWithData[i].entry.serialLength,
(char *)(ctx->dumpHardwareEntriesWithData[i].serial),
(int)ctx->dumpHardwareEntriesWithData[i].entry.serialLength, &u_error_code);
printf("\t\tSerial number: %s\n", strBuffer);
free(strBuffer);
}
@@ -394,13 +324,10 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.softwareNameLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.softwareNameLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
ucnv_convert(NULL, "UTF-8", strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareNameLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].softwareName),
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareNameLength,
&u_error_code);
(char *)(ctx->dumpHardwareEntriesWithData[i].softwareName),
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareNameLength, &u_error_code);
printf("\t\tSoftware name: %s\n", strBuffer);
free(strBuffer);
}
@@ -409,13 +336,10 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.softwareVersionLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.softwareVersionLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
ucnv_convert(NULL, "UTF-8", strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareVersionLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].softwareVersion),
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareVersionLength,
&u_error_code);
(char *)(ctx->dumpHardwareEntriesWithData[i].softwareVersion),
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareVersionLength, &u_error_code);
printf("\t\tSoftware version: %s\n", strBuffer);
free(strBuffer);
}
@@ -424,11 +348,9 @@ int info(char* path)
{
strBuffer = malloc(ctx->dumpHardwareEntriesWithData[i].entry.softwareOperatingSystemLength + 1);
memset(strBuffer, 0, ctx->dumpHardwareEntriesWithData[i].entry.softwareOperatingSystemLength + 1);
ucnv_convert(NULL,
"UTF-8",
strBuffer,
ucnv_convert(NULL, "UTF-8", strBuffer,
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareOperatingSystemLength,
(char*)(ctx->dumpHardwareEntriesWithData[i].softwareOperatingSystem),
(char *)(ctx->dumpHardwareEntriesWithData[i].softwareOperatingSystem),
(int)ctx->dumpHardwareEntriesWithData[i].entry.softwareOperatingSystemLength,
&u_error_code);
printf("\t\tSoftware operating system: %s\n", strBuffer);
@@ -474,7 +396,7 @@ int info(char* path)
{
strBuffer = malloc(65);
memset(strBuffer, 0, 65);
ucnv_convert(NULL, "UTF-16LE", strBuffer, 64, (const char*)ctx->imageInfo.Application, 64, &u_error_code);
ucnv_convert(NULL, "UTF-16LE", strBuffer, 64, (const char *)ctx->imageInfo.Application, 64, &u_error_code);
if(u_error_code == U_ZERO_ERROR) printf("\tApplication: %s\n", strBuffer);
free(strBuffer);
}
@@ -494,8 +416,7 @@ int info(char* path)
printf("\tMedia type: %u\n", ctx->imageInfo.MediaType);
if(ctx->imageInfo.MediaSequence > 0 || ctx->imageInfo.LastMediaSequence > 0)
printf("\tMedia is number %d in a set of %d media\n",
ctx->imageInfo.MediaSequence,
printf("\tMedia is number %d in a set of %d media\n", ctx->imageInfo.MediaSequence,
ctx->imageInfo.LastMediaSequence);
if(ctx->imageInfo.DriveManufacturer != NULL) printf("\tDrive manufacturer: %s\n", ctx->imageInfo.DriveManufacturer);
@@ -506,10 +427,8 @@ int info(char* path)
printf("\tDrive firmware revision: %s\n", ctx->imageInfo.DriveFirmwareRevision);
printf("\tXML media type: %d\n", ctx->imageInfo.XmlMediaType);
if(ctx->imageInfo.Cylinders > 0 || ctx->imageInfo.Heads > 0 || ctx->imageInfo.SectorsPerTrack > 0)
printf("\tMedia has %d cylinders, %d heads and %d sectors per track\n",
ctx->imageInfo.Cylinders,
ctx->imageInfo.Heads,
ctx->imageInfo.SectorsPerTrack);
printf("\tMedia has %d cylinders, %d heads and %d sectors per track\n", ctx->imageInfo.Cylinders,
ctx->imageInfo.Heads, ctx->imageInfo.SectorsPerTrack);
if(ctx->checksums.hasMd5)
{

View File

@@ -111,7 +111,7 @@ void usage_verify_sectors()
printf("\t<filename>\tPath to AaruFormat image to verify.\n");
}
int main(int argc, char* argv[])
int main(int argc, char *argv[])
{
uint64_t sector_no = 0;

View File

@@ -23,4 +23,4 @@
#define AARUFORMAT_TOOL_MAJOR_VERSION 1
#define AARUFORMAT_TOOL_MINOR_VERSION 0
#endif // LIBAARUFORMAT_TOOL_MAIN_H_
#endif // LIBAARUFORMAT_TOOL_MAIN_H_

View File

@@ -22,7 +22,7 @@
#include <stdio.h>
#include <string.h>
int printhex(unsigned char* array, unsigned int length, int width, bool color)
int printhex(unsigned char *array, unsigned int length, int width, bool color)
{
char length_hex[17];
char str[256];

View File

@@ -24,12 +24,12 @@
#include "aaruformattool.h"
int read(unsigned long long sector_no, char* path)
int read(unsigned long long sector_no, char *path)
{
aaruformatContext* ctx;
aaruformatContext *ctx;
int32_t res;
uint32_t length;
uint8_t* data;
uint8_t *data;
ctx = aaruf_open(path);
@@ -74,12 +74,12 @@ int read(unsigned long long sector_no, char* path)
aaruf_close(ctx);
}
int read_long(unsigned long long sector_no, char* path)
int read_long(unsigned long long sector_no, char *path)
{
aaruformatContext* ctx;
aaruformatContext *ctx;
int32_t res;
uint32_t length;
uint8_t* data;
uint8_t *data;
ctx = aaruf_open(path);

View File

@@ -23,9 +23,9 @@
#include "aaruformattool.h"
int verify(char* path)
int verify(char *path)
{
aaruformatContext* ctx;
aaruformatContext *ctx;
uint32_t res;
ctx = aaruf_open(path);
@@ -38,7 +38,8 @@ int verify(char* path)
res = aaruf_verify_image(ctx);
if(res == AARUF_STATUS_OK) printf("Image blocks contain no errors.\n");
if(res == AARUF_STATUS_OK)
printf("Image blocks contain no errors.\n");
else if(res == AARUF_ERROR_INVALID_BLOCK_CRC)
printf("A block contains an invalid CRC value.\n");
else
@@ -47,14 +48,14 @@ int verify(char* path)
return res;
}
int verify_sectors(char* path)
int verify_sectors(char *path)
{
aaruformatContext* ctx;
aaruformatContext *ctx;
uint64_t s;
uint8_t* buffer;
uint8_t *buffer;
uint32_t buffer_len = 2352;
int32_t res;
CdEccContext* cd_ecc_context;
CdEccContext *cd_ecc_context;
ctx = aaruf_open(path);
bool verify_result;
bool unknown, has_edc, edc_correct, has_ecc_p, ecc_p_correct, has_ecc_q, ecc_q_correct;
@@ -89,15 +90,8 @@ int verify_sectors(char* path)
continue;
}
verify_result = check_cd_sector_channel(cd_ecc_context,
buffer,
&unknown,
&has_edc,
&edc_correct,
&has_ecc_p,
&ecc_p_correct,
&has_ecc_q,
&ecc_q_correct);
verify_result = check_cd_sector_channel(cd_ecc_context, buffer, &unknown, &has_edc, &edc_correct, &has_ecc_p,
&ecc_p_correct, &has_ecc_q, &ecc_q_correct);
if(verify_result) continue;
@@ -118,7 +112,8 @@ int verify_sectors(char* path)
any_error = true;
}
if(any_error) printf("\rSome sectors had incorrect checksums.\n");
if(any_error)
printf("\rSome sectors had incorrect checksums.\n");
else
printf("\rAll sector checksums are correct.\n");