]> git.zerfleddert.de Git - rsbs2/blobdiff - src/rsb-crc.c
firmware: update for 64bit platforms
[rsbs2] / src / rsb-crc.c
index 6a2bf99540be9dfc519a59c7743032c6a6e3ba8f..4363e3022c5e1c29055c86a491619684462d8ffa 100644 (file)
@@ -1,11 +1,12 @@
 #include <stdio.h>
+#include <stdint.h>
 
 #define POLY 0x04c11db7
 
-unsigned int rsb_crc(unsigned int r11_crc, unsigned char *r10_buf, unsigned int r14_len) {
-       unsigned int r6_pos = 0;
-       unsigned int r3_data;
-       int r5_bit;
+uint32_t rsb_crc(uint32_t r11_crc, uint8_t *r10_buf, uint32_t r14_len) {
+       uint32_t r6_pos = 0;
+       uint32_t r3_data;
+       int32_t r5_bit;
 
        while (r6_pos < r14_len) {
                r3_data = (*(r6_pos+r10_buf)) << 24;
@@ -31,13 +32,13 @@ unsigned int rsb_crc(unsigned int r11_crc, unsigned char *r10_buf, unsigned int
        return r11_crc;
 }
 
-unsigned int rsb_crc2(unsigned char *r0_buf, unsigned int r1_buflen, unsigned int r2_magic, unsigned int *crc_out) {
-       unsigned int r4_len;
-       unsigned int file_crc;
+uint32_t rsb_crc2(uint8_t *r0_buf, uint32_t r1_buflen, uint32_t r2_magic, uint32_t *crc_out) {
+       uint32_t r4_len;
+       uint32_t file_crc;
 
-       r4_len = *(unsigned int*)(r0_buf + 0x20);
+       r4_len = *(uint32_t*)(r0_buf + 0x20);
 
-       if (*((unsigned int*)(r0_buf + 0x24)) != r2_magic)
+       if (*((uint32_t*)(r0_buf + 0x24)) != r2_magic)
                return 2; /* MAGIC does not match */
        
        if (r1_buflen < r4_len)
@@ -45,7 +46,7 @@ unsigned int rsb_crc2(unsigned char *r0_buf, unsigned int r1_buflen, unsigned in
        
        *crc_out = ~rsb_crc(~0x0, r0_buf, r4_len);
 
-       file_crc = *((unsigned int*)(r0_buf + r4_len));
+       file_crc = *((uint32_t*)(r0_buf + r4_len));
 
        if (file_crc != *crc_out)
                return 4;
Impressum, Datenschutz