2004-01-12 03:13:53 +00:00
|
|
|
/*
|
2004-11-22 01:38:40 +00: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.
|
2004-11-28 20:09:25 +00:00
|
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
|
|
* University of Stuttgart. All rights reserved.
|
2005-03-24 12:43:37 +00:00
|
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
|
|
* All rights reserved.
|
2004-11-22 01:38:40 +00:00
|
|
|
* $COPYRIGHT$
|
|
|
|
*
|
|
|
|
* Additional copyrights may follow
|
|
|
|
*
|
2004-01-12 03:13:53 +00:00
|
|
|
* $HEADER$
|
|
|
|
*/
|
2004-03-26 14:15:20 +00:00
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
*/
|
2004-01-12 03:13:53 +00:00
|
|
|
#ifndef MCA_PTL_BASE_MATCH_H
|
|
|
|
#define MCA_PTL_BASE_MATCH_H
|
2004-10-28 18:13:43 +00:00
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2004-01-12 03:13:53 +00:00
|
|
|
|
2004-02-05 00:50:37 +00:00
|
|
|
struct mca_ptl_base_recv_frag_t;
|
|
|
|
|
2004-03-26 14:15:20 +00:00
|
|
|
/**
|
2004-10-08 22:24:57 +00:00
|
|
|
* RCS/CTS receive side matching
|
|
|
|
* Match incoming fragments against posted receives. Out of order
|
|
|
|
* delivery.
|
2004-03-26 14:15:20 +00:00
|
|
|
*
|
|
|
|
* @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.
|
2004-03-31 17:00:38 +00:00
|
|
|
* @param additional_matches (OUT) List of additional matches
|
2004-06-07 15:33:53 +00:00
|
|
|
* @return OMPI_SUCCESS or error status on failure.
|
2004-03-26 14:15:20 +00:00
|
|
|
*/
|
2004-11-17 22:47:08 +00:00
|
|
|
OMPI_DECLSPEC bool mca_ptl_base_match(
|
|
|
|
mca_ptl_base_match_header_t *frag_header,
|
|
|
|
struct mca_ptl_base_recv_frag_t *frag_desc,
|
2005-07-03 16:22:16 +00:00
|
|
|
opal_list_t *additional_matches,
|
2004-11-17 22:47:08 +00:00
|
|
|
bool* additional_matched);
|
2004-01-14 05:59:43 +00:00
|
|
|
|
2004-10-08 22:24:57 +00:00
|
|
|
/**
|
|
|
|
* RCS/CTS receive side matching
|
|
|
|
*
|
|
|
|
* @param frag_header list of parameters needed for matching
|
|
|
|
* This list is also embeded in frag_desc,
|
|
|
|
* but this allows to save a memory copy when
|
|
|
|
* a match is made in this routine. (IN)
|
|
|
|
* @param frag_desc pointer to receive fragment which we want
|
|
|
|
* to match (IN/OUT). If a match is not made,
|
|
|
|
* frag_header is copied to frag_desc.
|
|
|
|
* @param match_made parameter indicating if we matched frag_desc/
|
|
|
|
* frag_header (OUT)
|
|
|
|
* @return indication if match was made or not.
|
|
|
|
*
|
|
|
|
* This routine is used to try and match a newly arrived message fragment
|
|
|
|
* to pre-posted receives. The following assumptions are made
|
|
|
|
* - fragments are received in order, so no explicit sequence
|
|
|
|
* tracking is needed.
|
|
|
|
* - for long messages, e.g. more than one fragment, a RTS/CTS algorithm
|
|
|
|
* is used.
|
|
|
|
* - 2nd and greater fragments include a receive descriptor pointer
|
|
|
|
* - this routine may be called simoultaneously by more than one thread
|
|
|
|
*/
|
2004-10-28 18:13:43 +00:00
|
|
|
OMPI_DECLSPEC bool mca_ptl_base_match_in_order_network_delivery(
|
2004-10-08 22:24:57 +00:00
|
|
|
mca_ptl_base_match_header_t *frag_header,
|
|
|
|
struct mca_ptl_base_recv_frag_t *frag_desc);
|
|
|
|
|
2004-10-28 18:13:43 +00:00
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
|
|
}
|
|
|
|
#endif
|
2004-01-12 03:13:53 +00:00
|
|
|
#endif /* MCA_PTL_BASE_MATCH_H */
|
|
|
|
|