1
1
openmpi/ompi/mca/pml/cm/pml_cm_request.h
George Bosilca eb45a5e402 Move things around a little bit. Mainly fields from the send and receive
request in the base request. Rearrange the fields to keep the data
together. Remove some useless tests.

This commit was SVN r12482.
2006-11-08 04:58:23 +00:00

55 строки
1.9 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2006 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2006 The Regents of the University of California.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef PML_CM_REQUEST_H
#define PML_CM_REQUEST_H
#include "ompi/mca/pml/base/pml_base_sendreq.h"
#include "ompi/mca/pml/base/pml_base_bsend.h"
#include "ompi/mca/pml/pml.h"
#include "ompi/mca/mtl/mtl.h"
/**
* Type of request.
*/
typedef enum {
MCA_PML_CM_REQUEST_SEND_HEAVY,
MCA_PML_CM_REQUEST_SEND_THIN,
MCA_PML_CM_REQUEST_RECV_HEAVY,
MCA_PML_CM_REQUEST_RECV_THIN,
MCA_PML_CM_REQUEST_NULL
} mca_pml_cm_request_type_t;
/**
* Base type for PML CM P2P requests
*/
struct mca_pml_cm_request_t {
ompi_request_t req_ompi; /**< base request */
volatile bool req_pml_complete; /**< flag indicating if the pt-2-pt layer is done with this request */
volatile bool req_free_called; /**< flag indicating if the user has freed this request */
mca_pml_cm_request_type_t req_pml_type;
struct ompi_communicator_t *req_comm; /**< communicator pointer */
struct ompi_datatype_t *req_datatype; /**< pointer to data type */
mca_mtl_request_t req_mtl; /**< the mtl specific memory */
ompi_convertor_t req_convertor; /**< always need the convertor */
};
typedef struct mca_pml_cm_request_t mca_pml_cm_request_t;
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_pml_cm_request_t);
#endif