Next: , Previous: bpipe_check_matrix_copy, Up: Internal Functions   [Contents]


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.