blob: 88217b13519c2a64e51b11f510b84c46a6720aec [file] [log] [blame]
#ifndef __CKSUM_H
#define __CKSUM_H
#include <stddef.h>
#include <stdint.h>
#include <zircon/compiler.h>
__BEGIN_CDECLS
/*
* Computes the CRC-CCITT, starting with an initialization value.
* buf: the data on which to apply the checksum
* length: the number of bytes of data in 'buf' to be calculated.
*/
uint16_t crc16(const uint8_t *buf, size_t length);
/*
* Computes an updated version of the CRC-CCITT from existing CRC.
* crc: the previous values of the CRC
* buf: the data on which to apply the checksum
* length: the number of bytes of data in 'buf' to be calculated.
*/
uint16_t update_crc16(uint16_t crc, const uint8_t *buf, size_t len);
uint32_t crc32(uint32_t crc, const uint8_t *buf, size_t len);
uint32_t crc32_combine(uint32_t crc1, uint32_t crc2, size_t len2);
uint32_t adler32(uint32_t adler, const uint8_t *buf, size_t len);
uint32_t adler32_combine(uint32_t adler1, uint32_t adler2, size_t len2);
const uint32_t* get_crc_table(void);
__END_CDECLS
#endif