#ifndef IP4SUM_CHECKSUM_H
#define IP4SUM_CHECKSUM_H
#include <stdint.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
uint64_t acc;
} ip4sum_checksum;
static inline ip4sum_checksum ip4sum_checksum_new(void) {
ip4sum_checksum c;
c.acc = 0;
return c;
}
void ip4sum_checksum_update(ip4sum_checksum *c, const unsigned char *data,
size_t len);
uint16_t ip4sum_checksum_finalize(ip4sum_checksum c);
static inline void ip4sum_checksum_reset(ip4sum_checksum *c) {
c->acc = 0;
}
uint16_t ip4sum_checksum_oneshot(const unsigned char *data, size_t len);
#ifdef __cplusplus
}
#endif
#endif