crc.h revision 73334d216e090057ca9631df4a4bbf8fa5ba529f
230N/A * IPRT - CRCs and Checksums. 230N/A * Copyright (C) 2006-2010 Oracle Corporation 230N/A * This file is part of VirtualBox Open Source Edition (OSE), as 230N/A * you can redistribute it and/or modify it under the terms of the GNU 230N/A * General Public License (GPL) as published by the Free Software 230N/A * Foundation, in version 2 as it comes in the "COPYING" file of the 230N/A * VirtualBox OSE distribution. VirtualBox OSE is distributed in the 230N/A * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 230N/A * The contents of this file may alternatively be used under the terms 230N/A * of the Common Development and Distribution License Version 1.0 230N/A * (CDDL) only, as it comes in the "COPYING.CDDL" file of the 230N/A * VirtualBox OSE distribution, in which case the provisions of the 230N/A * CDDL are applicable instead of those of the GPL. 230N/A * You may elect to license modified versions of this file under the 230N/A * terms and conditions of either the GPL or the CDDL or both. 230N/A/** @defgroup grp_rt_crc RTCrc - Checksums and CRCs. 230N/A/** @defgroup grp_rt_crc32 CRC-32 230N/A * Calculate CRC-32 for a memory block. 230N/A * @returns CRC-32 for the memory block. 340N/A * @param pv Pointer to the memory block. 340N/A * @param cb Size of the memory block in bytes. 230N/A * Start a multiblock CRC-32 calculation. 340N/A * @returns Start CRC-32. 230N/A * Processes a multiblock of a CRC-32 calculation. 230N/A * @returns Intermediate CRC-32 value. 340N/A * @param uCRC32 Current CRC-32 intermediate value. 230N/A * @param pv The data block to process. 230N/A * @param cb The size of the data block in bytes. * Complete a multiblock CRC-32 calculation. * @param uCRC32 Current CRC-32 intermediate value. /** @defgroup grp_rt_crc64 CRC-64 Calculation * Calculate CRC-64 for a memory block. * @returns CRC-64 for the memory block. * @param pv Pointer to the memory block. * @param cb Size of the memory block in bytes. * Start a multiblock CRC-64 calculation. * Processes a multiblock of a CRC-64 calculation. * @returns Intermediate CRC-64 value. * @param uCRC64 Current CRC-64 intermediate value. * @param pv The data block to process. * @param cb The size of the data block in bytes. * Complete a multiblock CRC-64 calculation. * @param uCRC64 Current CRC-64 intermediate value. /** @defgroup grp_rt_crc_adler32 Adler-32 * Calculate Adler-32 for a memory block. * @returns Adler-32 for the memory block. * @param pv Pointer to the memory block. * @param cb Size of the memory block in bytes. * Start a multiblock Adler-32 calculation. * @returns Start Adler-32. * Processes a multiblock of a Adler-32 calculation. * @returns Intermediate Adler-32 value. * @param uCrc Current Adler-32 intermediate value. * @param pv The data block to process. * @param cb The size of the data block in bytes. * Complete a multiblock Adler-32 calculation. * @returns Adler-32 value. * @param uCrc Current Adler-32 intermediate value. /** @defgroup grp_rt_crc32c CRC-32C * Calculate CRC-32C for a memory block. * @returns CRC-32C for the memory block. * @param pv Pointer to the memory block. * @param cb Size of the memory block in bytes. * Start a multiblock CRC-32 calculation. * Processes a multiblock of a CRC-32C calculation. * @returns Intermediate CRC-32C value. * @param uCRC32C Current CRC-32C intermediate value. * @param pv The data block to process. * @param cb The size of the data block in bytes. * Complete a multiblock CRC-32 calculation. * @param uCRC32 Current CRC-32 intermediate value.