Subversion Repositories HelenOS

Rev

Rev 4558 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4558 Rev 4708
Line 41... Line 41...
41
#define CRC_DIVIDER_BE  0x04C11DB7
41
#define CRC_DIVIDER_BE  0x04C11DB7
42
 
42
 
43
#define CRC_DIVIDER_LE  0xEDB88320
43
#define CRC_DIVIDER_LE  0xEDB88320
44
 
44
 
45
uint32_t compute_crc32_le( uint32_t seed, uint8_t * data, size_t length ){
45
uint32_t compute_crc32_le( uint32_t seed, uint8_t * data, size_t length ){
46
    int index;
46
    size_t  index;
47
 
47
 
48
    while( length >= 8 ){
48
    while( length >= 8 ){
49
        seed ^= ( * data );
49
        seed ^= ( * data );
50
        for( index = 0; index < 8; ++ index ){
50
        for( index = 0; index < 8; ++ index ){
51
            if( seed & 1 ){
51
            if( seed & 1 ){
Line 70... Line 70...
70
    }
70
    }
71
    return seed;
71
    return seed;
72
}
72
}
73
 
73
 
74
uint32_t compute_crc32_be( uint32_t seed, uint8_t * data, size_t length ){
74
uint32_t compute_crc32_be( uint32_t seed, uint8_t * data, size_t length ){
75
    int index;
75
    size_t  index;
76
 
76
 
77
    while( length >= 8 ){
77
    while( length >= 8 ){
78
        seed ^= ( * data ) << 24;
78
        seed ^= ( * data ) << 24;
79
        for( index = 0; index < 8; ++ index ){
79
        for( index = 0; index < 8; ++ index ){
80
            if( seed & 0x80000000 ){
80
            if( seed & 0x80000000 ){