summaryrefslogtreecommitdiff
path: root/arm9/lib/src/MATH_crc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/src/MATH_crc.c')
-rw-r--r--arm9/lib/src/MATH_crc.c150
1 files changed, 0 insertions, 150 deletions
diff --git a/arm9/lib/src/MATH_crc.c b/arm9/lib/src/MATH_crc.c
deleted file mode 100644
index cf8cc64c..00000000
--- a/arm9/lib/src/MATH_crc.c
+++ /dev/null
@@ -1,150 +0,0 @@
-#include "global.h"
-#include "MATH_crc.h"
-
-ARM_FUNC void MATHi_CRC8InitTable(struct MATHCRC8Table *table, u8 poly) {
- u32 r, i, j;
- u8 *t = table->table;
-
- for (i = 0; i < 256; i++) {
- r = i;
- for (j = 0; j < 8; j++) {
- if (r & 0x80) {
- r = (r << 1) ^ poly;
- }
- else {
- r <<= 1;
- }
- }
- t[i] = (u8)r;
- }
-}
-
-ARM_FUNC void MATHi_CRC8Update(const struct MATHCRC8Table *table, MATHCRC8Context *context, const void *input, u32 length) {
- u32 r, i;
- const u8* t = table->table;
- u8* data = (u8*)input;
-
- r = *context;
- for (i = 0; i < length; i++) {
- r = t[(r ^ *data) & 0xff];
- data++;
- }
- *context = (MATHCRC8Context)r;
-}
-
-ARM_FUNC void MATHi_CRC16InitTable(struct MATHCRC16Table *table, u16 poly) {
- u32 r, i, j;
- u16 *t = table->table;
-
- for (i = 0; i < 256; i++) {
- r = i << 8;
- for (j = 0; j < 8; j++) {
- if (r & 0x8000) {
- r = (r << 1) ^ poly;
- }
- else {
- r <<= 1;
- }
- }
- t[i] = (u16)r;
- }
-}
-
-ARM_FUNC void MATHi_CRC16InitTableRev(struct MATHCRC16Table *table, u16 poly) {
- u32 r, i, j;
- u16 *t = table->table;
-
- for (i = 0; i < 256; i++) {
- r = i;
- for (j = 0; j < 8; j++) {
- if (r & 1) {
- r = (r >> 1) ^ poly;
- }
- else {
- r >>= 1;
- }
- }
- t[i] = (u16)r;
- }
-}
-
-ARM_FUNC void MATHi_CRC16Update(const struct MATHCRC16Table *table, MATHCRC16Context *context, const void *input, u32 length) {
- u32 r, i;
- const u16* t = table->table;
- u8* data = (u8*)input;
-
- r = *context;
- for (i = 0; i < length; i++) {
- r = (r << 8) ^ t[((r >> 8) ^ *data) & 0xff];
- data++;
- }
- *context = (MATHCRC16Context)r;
-}
-
-ARM_FUNC void MATHi_CRC16UpdateRev(const struct MATHCRC16Table *table, MATHCRC16Context *context, const void *input, u32 length) {
- u32 r, i;
- const u16* t = table->table;
- u8* data = (u8*)input;
-
- r = *context;
- for (i = 0; i < length; i++) {
- r = (r >> 8) ^ t[(r ^ *data) & 0xff];
- data++;
- }
- *context = (MATHCRC16Context)r;
-}
-
-ARM_FUNC void MATHi_CRC32InitTableRev(struct MATHCRC32Table *table, u32 poly) {
- u32 r, i, j;
- u32 *t = table->table;
-
- for (i = 0; i < 256; i++) {
- r = i;
- for (j = 0; j < 8; j++) {
- if (r & 1) {
- r = (r >> 1) ^ poly;
- }
- else {
- r >>= 1;
- }
- }
- t[i] = r;
- }
-}
-
-ARM_FUNC void MATHi_CRC32UpdateRev(const struct MATHCRC32Table *table, MATHCRC32Context *context, const void *input, u32 length) {
- u32 r, i;
- const u32* t = table->table;
- u8* data = (u8*)input;
-
- r = *context;
- for (i = 0; i < length; i++) {
- r = (r >> 8) ^ t[(r ^ *data) & 0xff];
- data++;
- }
- *context = r;
-}
-
-ARM_FUNC u8 MATH_CalcCRC8(const struct MATHCRC8Table *table, const void *data, u32 dataLength) {
- MATHCRC8Context ctx = 0;
- MATHi_CRC8Update(table, &ctx, data, dataLength);
- return ctx;
-}
-
-ARM_FUNC u16 MATH_CalcCRC16(const struct MATHCRC16Table *table, const void *data, u32 dataLength) {
- MATHCRC16Context ctx = 0;
- MATHi_CRC16UpdateRev(table, &ctx, data, dataLength);
- return ctx;
-}
-
-ARM_FUNC u16 MATH_CalcCRC16CCITT(const struct MATHCRC16Table *table, const void *data, u32 dataLength) {
- MATHCRC16Context ctx = 0xffff;
- MATHi_CRC16Update(table, &ctx, data, dataLength);
- return ctx;
-}
-
-ARM_FUNC u32 MATH_CalcCRC32(const struct MATHCRC32Table *table, const void *data, u32 dataLength) {
- MATHCRC32Context ctx = (MATHCRC32Context)(~0);
- MATHi_CRC32UpdateRev(table, &ctx, data, dataLength);
- return ~ctx;
-}