7 #ifndef swcdb_core_Checksum_h
8 #define swcdb_core_Checksum_h
15 namespace SWC {
namespace Core {
27 uint32_t c0 = 0, c1 = 0;
28 for(uint16_t i; len >= 720; len -= 720) {
29 for(i = 360; i; --i, ++
data) {
30 c0 += uint16_t(*
data) << 8;
31 c1 += (c0 += *++
data);
38 for(;len > 1; ++
data, len-=2) {
39 c0 += uint16_t(*
data) << 8;
40 c1 += (c0 += *++
data);
47 return (c1 << 16 | c0);
51 uint32_t
checksum32(
const uint8_t* data8,
size_t len8) noexcept
55 uint32_t
checksum32(
const uint8_t* data8,
size_t len8) noexcept {
63 uint8_t** ptr) noexcept {
69 uint8_t** ptr) noexcept {
81 void checksum_i32(
const uint8_t* start,
const uint8_t* end, uint8_t** ptr,
100 uint32_t* computed) {
107 memset(
const_cast<uint8_t*
>(base + offset), 0, 4);
116 #ifdef SWC_IMPL_SOURCE
120 #endif // swcdb_core_Checksum_h