CD-ROM: Re-enable CRC checking and disable the usage of the ARM CRC32 instruction.
This commit is contained in:
@@ -345,7 +345,6 @@ cdrom_is_sector_good(cdrom_t *dev, const uint8_t *b, const uint8_t mode2, const
|
||||
int ret = 1;
|
||||
|
||||
if (!mode2 || (form != 1)) {
|
||||
#ifdef TEMPORARILY_DISABLE_CRC_CHECKING
|
||||
if (mode2 && (form == 1)) {
|
||||
const uint32_t crc = cdrom_crc32(0xffffffff, &(b[16]), 2056) ^ 0xffffffff;
|
||||
|
||||
@@ -355,7 +354,6 @@ cdrom_is_sector_good(cdrom_t *dev, const uint8_t *b, const uint8_t mode2, const
|
||||
|
||||
ret = ret && (crc == (*(uint32_t *) &(b[2064])));
|
||||
}
|
||||
#endif
|
||||
|
||||
cdrom_generate_ecc_data(dev, &(b[12]), mode2 && (form == 1));
|
||||
|
||||
|
||||
@@ -103,17 +103,23 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
#ifdef this out because that code path does not currently produce the
|
||||
correct results.
|
||||
*/
|
||||
#ifdef USE_ARMCRC32
|
||||
/* If available, use the ARM processor CRC32 instruction. */
|
||||
#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8
|
||||
# define ARMCRC32
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE))
|
||||
/*
|
||||
Swap the bytes in a word_t to convert between little and big endian. Any
|
||||
self-respecting compiler will optimize this to a single machine byte-swap
|
||||
instruction, if one is available. This assumes that word_t is either 32 bits
|
||||
or 64 bits.
|
||||
Swap the bytes in a word_t to convert between little and big endian. Any
|
||||
self-respecting compiler will optimize this to a single machine byte-swap
|
||||
instruction, if one is available. This assumes that word_t is either 32 bits
|
||||
or 64 bits.
|
||||
*/
|
||||
static word_t byte_swap(word_t word) {
|
||||
# if W == 8
|
||||
|
||||
Reference in New Issue
Block a user