summaryrefslogtreecommitdiff
path: root/crc32_p.h
blob: 47b4b3751b6c861cc78aedd12232b8fede43c1e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef CRC32_P_H_
#define CRC32_P_H_

#define GF2_DIM 32      /* dimension of GF(2) vectors (length of CRC) */


static inline uint32_t gf2_matrix_times(const uint32_t *mat, uint32_t vec) {
    uint32_t sum = 0;
    while (vec) {
        if (vec & 1)
            sum ^= *mat;
        vec >>= 1;
        mat++;
    }
    return sum;
}


#endif /* CRC32_P_H_ */