mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
qemu: add castagnoli crc32c checksum algorithm
This adds the Castagnoli CRC32C algorithm, using the 0x11EDC6F41 polynomial. This is extracted from the linux kernel cryptographic crc32.c module. The algorithm is based on: Castagnoli93: Guy Castagnoli and Stefan Braeuer and Martin Herrman "Optimization of Cyclic Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions on Communication, Volume 41, Number 6, June 1993 Signed-off-by: Jeff Cody <jcody@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
8ca27ce2e1
commit
8e1b02b8ef
3 changed files with 151 additions and 0 deletions
35
include/qemu/crc32c.h
Normal file
35
include/qemu/crc32c.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Castagnoli CRC32C Checksum Algorithm
|
||||
*
|
||||
* Polynomial: 0x11EDC6F41
|
||||
*
|
||||
* Castagnoli93: Guy Castagnoli and Stefan Braeuer and Martin Herrman
|
||||
* "Optimization of Cyclic Redundancy-Check Codes with 24
|
||||
* and 32 Parity Bits",IEEE Transactions on Communication,
|
||||
* Volume 41, Number 6, June 1993
|
||||
*
|
||||
* Copyright (c) 2013 Red Hat, Inc.,
|
||||
*
|
||||
* Authors:
|
||||
* Jeff Cody <jcody@redhat.com>
|
||||
*
|
||||
* Based on the Linux kernel cryptographic crc32c module,
|
||||
*
|
||||
* Copyright (c) 2004 Cisco Systems, Inc.
|
||||
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef QEMU_CRC32_H
|
||||
#define QEMU_CRC32_H
|
||||
|
||||
#include "qemu-common.h"
|
||||
|
||||
uint32_t crc32c(uint32_t crc, const uint8_t *data, unsigned int length);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue