Next: , Previous: bpipe_check_matrix_copy, Up: Internal Functions


A.5.2 bpipe_datatype_copy

call a copy function with offsets for a data type's atomic elements

Synopsis

     #include <bpipe/bpipe.h>
     
     
     
int bpipe_datatype_copy( size_t dst, size_t src, size_t nobjs, BPDataType type, BPXMap map, void *udata, int (*copy)(void *,size_t,size_t,size_t) );

Parameters

size_t dst
starting destination offset
size_t src
starting source offset
size_t nobjs
number of data objects to copy
BPDataType type
type of the data
          
          
Possible values for a BPDataType are as follows: BPDType_char, BPDType_double, BPDType_int, BPDType_uint, BPDType_DVector2, BPDType_DVector3, BPDType_IVector2, BPDType_IVector3, BPDType_UIVector2, BPDType_UIVector3, BPDType_DComplex, BPDType_DCVector2, BPDType_DCVector3
BPXMap map
what type of mapping
          
          
Possible values for a BPXMap are as follows: BPXMap_Input_to_Core, BPXMap_Core_to_Output, BPXMap_Core_to_Core
void *udata
copy routine specific data
int (*copy)(void *,size_t,size_t,size_t)
a function to copy the data

Description

bpipe_datatype_copy issues copy commands to copy the elements in a data type without inter-element padding. A routine must be provided with an interface similar to memcpy which will do the actual copying of data. It assumes that all of the passed arguments are correct.

Returns

It returns zero upon success, non-zero if a copy operation returned failure.