2005-05-24 02:06:50 +04:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
|
|
|
* All rights reserved.
|
|
|
|
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
|
|
|
* 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$
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
*/
|
|
|
|
|
2005-05-24 02:22:20 +04:00
|
|
|
#ifndef MCA_PML_OB1_RECVFRAG_H
|
|
|
|
#define MCA_PML_OB1_RECVFRAG_H
|
2005-05-24 02:06:50 +04:00
|
|
|
|
|
|
|
#include "mca/bmi/bmi.h"
|
|
|
|
#include "pml_ob1_hdr.h"
|
|
|
|
|
|
|
|
struct mca_pml_ob1_recv_frag_t {
|
|
|
|
ompi_list_item_t super;
|
|
|
|
mca_bmi_base_module_t* bmi;
|
|
|
|
mca_pml_ob1_hdr_t hdr;
|
|
|
|
mca_bmi_base_segment_t* segments;
|
|
|
|
size_t num_segments;
|
|
|
|
struct mca_pml_ob1_recv_request_t* request;
|
|
|
|
};
|
|
|
|
typedef struct mca_pml_ob1_recv_frag_t mca_pml_ob1_recv_frag_t;
|
|
|
|
|
|
|
|
|
2005-05-24 02:22:20 +04:00
|
|
|
#define MCA_PML_OB1_RECV_FRAG_ALLOC(frag,rc) \
|
2005-05-24 02:06:50 +04:00
|
|
|
{ \
|
|
|
|
\
|
|
|
|
}
|
|
|
|
|
2005-05-24 02:22:20 +04:00
|
|
|
#define MCA_PML_OB1_RECV_FRAG_INIT(frag,bmi,hdr,segs,cnt) \
|
2005-05-24 02:06:50 +04:00
|
|
|
{ \
|
|
|
|
\
|
|
|
|
}
|
|
|
|
|
2005-05-24 02:22:20 +04:00
|
|
|
#define MCA_PML_OB1_RECV_FRAG_RETURN(frag) \
|
2005-05-24 02:06:50 +04:00
|
|
|
{ \
|
|
|
|
\
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2005-06-02 01:09:43 +04:00
|
|
|
* Callback from BMI on receipt of a fragment.
|
2005-05-24 02:06:50 +04:00
|
|
|
*/
|
|
|
|
|
2005-06-02 01:09:43 +04:00
|
|
|
OMPI_DECLSPEC void mca_pml_ob1_recv_frag_callback(
|
|
|
|
mca_bmi_base_module_t* bmi,
|
|
|
|
mca_bmi_base_tag_t tag,
|
|
|
|
mca_bmi_base_descriptor_t* descriptor,
|
|
|
|
void* cbdata
|
2005-05-24 02:06:50 +04:00
|
|
|
);
|
2005-06-02 01:09:43 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Match incoming fragments against posted receives.
|
|
|
|
* Supports out of order delivery.
|
|
|
|
*
|
|
|
|
* @param frag_header (IN) Header of received fragment.
|
|
|
|
* @param frag_desc (IN) Received fragment descriptor.
|
|
|
|
* @param match_made (OUT) Flag indicating wether a match was made.
|
|
|
|
* @param additional_matches (OUT) List of additional matches
|
|
|
|
* @return OMPI_SUCCESS or error status on failure.
|
|
|
|
*/
|
|
|
|
OMPI_DECLSPEC int mca_pml_ob1_recv_frag_match(
|
|
|
|
mca_bmi_base_module_t* bmi,
|
|
|
|
mca_pml_ob1_match_hdr_t *hdr,
|
|
|
|
mca_bmi_base_segment_t* segments,
|
|
|
|
size_t num_segments);
|
2005-05-24 02:06:50 +04:00
|
|
|
|
|
|
|
|
2005-06-02 01:09:43 +04:00
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
|
|
}
|
|
|
|
#endif
|
2005-05-24 02:06:50 +04:00
|
|
|
#endif
|
|
|
|
|