19 #include "ompi_config.h"
23 #include "ompi/mca/mtl/base/base.h"
24 #include "ompi/constants.h"
25 #include "ompi/datatype/ompi_datatype.h"
26 #include "opal/datatype/opal_convertor.h"
27 #include "opal/datatype/opal_datatype_internal.h"
36 uint32_t iov_count = 1;
38 opal_convertor_get_packed_size(convertor, buffer_len);
40 if( 0 == *buffer_len ) {
44 iov.iov_len = *buffer_len;
46 if (opal_convertor_need_buffers(convertor)) {
47 iov.iov_base = malloc(*buffer_len);
48 if (NULL == iov.iov_base)
return OMPI_ERR_OUT_OF_RESOURCE;
52 opal_convertor_pack( convertor, &iov, &iov_count, buffer_len );
54 *buffer = iov.iov_base;
66 opal_convertor_get_packed_size(convertor, buffer_len);
67 *free_on_error =
false;
68 if( 0 == *buffer_len ) {
73 if (opal_convertor_need_buffers(convertor)) {
74 *buffer = malloc(*buffer_len);
75 *free_on_error =
true;
90 uint32_t iov_count = 1;
92 if (buffer_len > 0 && opal_convertor_need_buffers(convertor)) {
93 iov.iov_len = buffer_len;
94 iov.iov_base = buffer;
96 opal_convertor_unpack(convertor, &iov, &iov_count, &buffer_len );
OPAL_PTRDIFF_TYPE first_elem_disp
the displacement of the first block in the loop
Definition: opal_datatype_internal.h:180
unsigned char * pBaseBuf
initial buffer as supplied by the user
Definition: opal_convertor.h:101
Top-level interface for all MCA components.
Definition: ompi_uio.h:29
Definition: opal_convertor.h:90
opal_datatype_count_t used
the number of used elements in the description array
Definition: opal_datatype.h:94
Matching Transport Layer.
const dt_type_desc_t * use_desc
the version used by the convertor (normal or optimized)
Definition: opal_convertor.h:97