1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 #ifndef DATATYPE_CHECKSUM_H_HAS_BEEN_INCLUDED
  20 #define DATATYPE_CHECKSUM_H_HAS_BEEN_INCLUDED
  21 
  22 
  23 #include "opal/datatype/opal_datatype_memcpy.h"
  24 #include "opal/util/crc.h"
  25 
  26 #if defined(CHECKSUM)
  27 
  28 #if defined (OPAL_CSUM_DST)
  29 #define MEMCPY_CSUM( DST, SRC, BLENGTH, CONVERTOR ) \
  30 do { \
  31     (CONVERTOR)->checksum += OPAL_CSUM_BCOPY_PARTIAL( (SRC), (DST), (BLENGTH), (BLENGTH), &(CONVERTOR)->csum_ui1, &(CONVERTOR)->csum_ui2 ); \
  32 } while (0)
  33 
  34 #else  
  35 
  36 #define MEMCPY_CSUM( DST, SRC, BLENGTH, CONVERTOR ) \
  37 do { \
  38     (CONVERTOR)->checksum += OPAL_CSUM_BCOPY_PARTIAL( (SRC), (DST), (BLENGTH), (BLENGTH), &(CONVERTOR)->csum_ui1, &(CONVERTOR)->csum_ui2 ); \
  39 } while (0)
  40 #endif  
  41 
  42 #define COMPUTE_CSUM( SRC, BLENGTH, CONVERTOR ) \
  43 do { \
  44     (CONVERTOR)->checksum += OPAL_CSUM_PARTIAL( (SRC), (BLENGTH), &(CONVERTOR)->csum_ui1, &(CONVERTOR)->csum_ui2 ); \
  45 } while (0)
  46 
  47 #else  
  48 
  49 #define MEMCPY_CSUM( DST, SRC, BLENGTH, CONVERTOR ) \
  50     MEMCPY( (DST), (SRC), (BLENGTH) )
  51 
  52 #define COMPUTE_CSUM( SRC, BLENGTH, CONVERTOR )
  53 
  54 #endif  
  55 #endif