diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2016-05-27 17:17:44 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2016-05-27 17:17:44 +0900 |
commit | 960921f537adf6424c266664dcf1575c08ef0623 (patch) | |
tree | 799a2bbed8b436542e73035b1b2f2ee4908a1690 /example-fs-bb48/crc32.c | |
parent | f2a8b01607aca8f41cc5f50b18bea74d65766731 (diff) |
example-fs-bb48: SYS implementation
Diffstat (limited to 'example-fs-bb48/crc32.c')
-rw-r--r-- | example-fs-bb48/crc32.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/example-fs-bb48/crc32.c b/example-fs-bb48/crc32.c new file mode 100644 index 0000000..4335295 --- /dev/null +++ b/example-fs-bb48/crc32.c @@ -0,0 +1,22 @@ +const unsigned int *const crc32_table= (const unsigned int *const)0x00000480; + +void +crc32_init (unsigned int *p) +{ + *p = 0xffffffff; +} + +static void +crc32_u8 (unsigned int *p, unsigned char v) +{ + *p = crc32_table[(*p & 0xff) ^ v] ^ (*p >> 8); +} + +void +crc32_u32 (unsigned int *p, unsigned int u) +{ + crc32_u8 (p, u & 0xff); + crc32_u8 (p, (u >> 8)& 0xff); + crc32_u8 (p, (u >> 16)& 0xff); + crc32_u8 (p, (u >> 24)& 0xff); +} |