blob: f5b2f2983f21785196d8aa2eadaf234188eb0a18 [file] [log] [blame]
pub fn make_table_crc16(poly: u16) -> [u16; 256] {
let mut table = [0u16; 256];
for i in 0..256 {
let mut value = i as u16;
for _ in 0..8 {
value = if (value & 1) == 1 {
(value >> 1) ^ poly
} else {
value >> 1
}
}
table[i] = value;
}
table
}
pub fn make_table_crc32(poly: u32) -> [u32; 256] {
let mut table = [0u32; 256];
for i in 0..256 {
let mut value = i as u32;
for _ in 0..8 {
value = if (value & 1) == 1 {
(value >> 1) ^ poly
} else {
value >> 1
}
}
table[i] = value;
}
table
}
pub fn make_table_crc64(poly: u64) -> [u64; 256] {
let mut table = [0u64; 256];
for i in 0..256 {
let mut value = i as u64;
for _ in 0..8 {
value = if (value & 1) == 1 {
(value >> 1) ^ poly
} else {
value >> 1
}
}
table[i] = value;
}
table
}