atmos/kernel/fs/checksum.rs
1// checksum.rs - CRC32 Checksum implementation for SylFS data integrity
2#![allow(dead_code)]
3
4/// 与えられたバイトデータの CRC32 チェックサムを計算します (多項式: 0xEDB88320)
5pub fn crc32(data: &[u8]) -> u32 {
6 let mut crc = 0xFFFFFFFFu32;
7 for &byte in data {
8 crc ^= byte as u32;
9 for _ in 0..8 {
10 if (crc & 1) != 0 {
11 crc = (crc >> 1) ^ 0xEDB88320u32;
12 } else {
13 crc >>= 1;
14 }
15 }
16 }
17 !crc
18}