summaryrefslogtreecommitdiff
path: root/arm9/lib/NitroSDK/include/MATH_crc.h
diff options
context:
space:
mode:
authorRevo <projectrevotpp@hotmail.com>2021-07-22 20:46:10 -0400
committerGitHub <noreply@github.com>2021-07-22 20:46:10 -0400
commitb5b9e57dcb55ee1a69ca86c30e90475bb80e3c28 (patch)
tree2e91e60bdb7a9174b16d8ca1b532809d4ae2e5b6 /arm9/lib/NitroSDK/include/MATH_crc.h
parentc2d91a2d997afd01fa4f40e1e16d5ee85557c9a8 (diff)
parent5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae (diff)
Merge pull request #435 from red031000/master
separate out libs to libc, libnns and NitroSDK
Diffstat (limited to 'arm9/lib/NitroSDK/include/MATH_crc.h')
-rw-r--r--arm9/lib/NitroSDK/include/MATH_crc.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/include/MATH_crc.h b/arm9/lib/NitroSDK/include/MATH_crc.h
new file mode 100644
index 00000000..4f06fa75
--- /dev/null
+++ b/arm9/lib/NitroSDK/include/MATH_crc.h
@@ -0,0 +1,45 @@
+#ifndef GUARD_MATH_CRC_H
+#define GUARD_MATH_CRC_H
+
+#include "nitro/types.h"
+
+typedef u8 MATHCRC8Context;
+typedef u16 MATHCRC16Context;
+typedef u32 MATHCRC32Context;
+
+#define MATH_CRC16_CCITT_POLY 0x1021
+
+struct MATHCRC8Table {
+ u8 table[256];
+};
+
+struct MATHCRC16Table {
+ u16 table[256];
+};
+
+struct MATHCRC32Table {
+ u32 table[256];
+};
+
+u32 MATH_CalcCRC32(const struct MATHCRC32Table *table, const void *data, u32 dataLength);
+void MATHi_CRC32UpdateRev(const struct MATHCRC32Table *table, MATHCRC32Context *context, const void *input, u32 length);
+u16 MATH_CalcCRC16CCITT(const struct MATHCRC16Table *table, const void *data, u32 dataLength);
+void MATHi_CRC16Update(const struct MATHCRC16Table *table, MATHCRC16Context *context, const void *input, u32 length);
+u16 MATH_CalcCRC16(const struct MATHCRC16Table *table, const void *data, u32 dataLength);
+void MATHi_CRC16UpdateRev(const struct MATHCRC16Table *table, MATHCRC16Context *context, const void *input, u32 length);
+u8 MATH_CalcCRC8(const struct MATHCRC8Table *table, const void *data, u32 dataLength);
+void MATHi_CRC8Update(const struct MATHCRC8Table *table, MATHCRC8Context *context, const void *input, u32 length);
+void MATHi_CRC32InitTableRev(struct MATHCRC32Table *table, u32 poly);
+void MATHi_CRC16UpdateRev(const struct MATHCRC16Table *table, MATHCRC16Context *context, const void *input, u32 length);
+void MATHi_CRC16Update(const struct MATHCRC16Table *table, MATHCRC16Context *context, const void *input, u32 length);
+void MATHi_CRC16InitTableRev(struct MATHCRC16Table *table, u16 poly);
+void MATHi_CRC16InitTable(struct MATHCRC16Table *table, u16 poly);
+void MATHi_CRC8Update(const struct MATHCRC8Table *table, MATHCRC8Context *context, const void *input, u32 length);
+void MATHi_CRC8InitTable(struct MATHCRC8Table *table, u8 poly);
+
+static inline void MATH_CRC16InitTable(struct MATHCRC16Table * table)
+{
+ MATHi_CRC16InitTable(table, MATH_CRC16_CCITT_POLY);
+}
+
+#endif