1
1
openmpi/opal/util/crc.h
Tim Woodall bd870519fd - modified convertor copy_and_prepare routines to accept an addition
flag, new flags to be included when convertor is initialized
- modified pml/btl module defs and added stub functions for diagnostic
  output routines to dump state of queues / endpoints
- updates to data reliability pml

This commit was SVN r9329.
2006-03-17 18:46:48 +00:00

152 строки
4.3 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef _OPAL_CRC_H_
#define _OPAL_CRC_H_
#define CRC_POLYNOMIAL ((unsigned int)0x04c11db7)
#define CRC_INITIAL_REGISTER ((unsigned int)0xffffffff)
#define OPAL_CSUM( SRC, LEN ) opal_uicsum( SRC, LEN )
#define OPAL_CSUM_PARTIAL( SRC, LEN, UI1, UI2 ) \
opal_uicsum_partial( SRC, LEN, UI1, UI2 )
#define OPAL_CSUM_BCOPY_PARTIAL( SRC, DST, LEN1, LEN2, UI1, UI2 ) \
opal_bcopy_uicsum_partial( SRC, DST, LEN1, LEN2, UI1, UI2 )
#define OPAL_CSUM_ZERO 0
unsigned long
opal_bcopy_csum_partial(
const void * source,
void * destination,
unsigned long copylen,
unsigned long csumlen,
unsigned long * lastPartialLong,
unsigned long * lastPartialLength
);
static inline unsigned long
opal_bcopy_csum (
const void * source,
void * destination,
unsigned long copylen,
unsigned long csumlen
)
{
unsigned long plong = 0;
unsigned long plength = 0;
return opal_bcopy_csum_partial(source, destination, copylen, csumlen, &plong, &plength);
}
unsigned int
opal_bcopy_uicsum_partial (
const void * source,
void * destination,
unsigned long copylen,
unsigned long csumlen,
unsigned int * lastPartialInt,
unsigned int * lastPartialLength
);
static inline unsigned int
opal_bcopy_uicsum (
const void * source,
void * destination,
unsigned long copylen,
unsigned long csumlen
)
{
unsigned int pint = 0;
unsigned int plength = 0;
return opal_bcopy_uicsum_partial(source, destination, copylen, csumlen, &pint, &plength);
}
unsigned long
opal_csum_partial (
const void * source,
unsigned long csumlen,
unsigned long * lastPartialLong,
unsigned long * lastPartialLength
);
static inline unsigned long
opal_csum(const void * source, unsigned long csumlen)
{
unsigned long lastPartialLong = 0;
unsigned long lastPartialLength = 0;
return opal_csum_partial(source, csumlen, &lastPartialLong, &lastPartialLength);
}
unsigned int
opal_uicsum_partial (
const void * source,
unsigned long csumlen,
unsigned int * lastPartialInt,
unsigned int * lastPartialLength
);
static inline unsigned int
opal_uicsum(const void * source, unsigned long csumlen)
{
unsigned int lastPartialInt = 0;
unsigned int lastPartialLength = 0;
return opal_uicsum_partial(source, csumlen, &lastPartialInt, &lastPartialLength);
}
/*
* CRC Support
*/
void opal_initialize_crc_table(void);
unsigned int
opal_bcopy_uicrc_partial(
const void * source,
void * destination,
unsigned long copylen,
unsigned long crclen,
unsigned int partial_crc);
static inline unsigned int
opal_bcopy_uicrc(
const void * source,
void * destination,
unsigned long copylen,
unsigned long crclen)
{
return opal_bcopy_uicrc_partial(source, destination, copylen, crclen, CRC_INITIAL_REGISTER);
}
unsigned int
opal_uicrc_partial(
const void * source,
unsigned long crclen,
unsigned int partial_crc);
static inline unsigned int
opal_uicrc(const void * source, unsigned long crclen)
{
return opal_uicrc_partial(source, crclen, CRC_INITIAL_REGISTER);
}
#endif