OpenMPI  0.1.1
vt_mpireq.h
1 /**
2  * VampirTrace
3  * http://www.tu-dresden.de/zih/vampirtrace
4  *
5  * Copyright (c) 2005-2012, ZIH, TU Dresden, Federal Republic of Germany
6  *
7  * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
8  * Centre, Federal Republic of Germany
9  *
10  * See the file COPYING in the package base directory for details
11  **/
12 
13 #ifndef _VT_MPIREQ_H
14 #define _VT_MPIREQ_H
15 
16 #ifdef __cplusplus
17 # define EXTERN extern "C"
18 #else
19 # define EXTERN extern
20 #endif
21 
22 #include "vt_defs.h"
23 #include "mpi.h"
24 
25 enum VTReqFlags {
26  ERF_NONE = 0x00,
27  ERF_SEND = 0x01,
28  ERF_RECV = 0x02,
29  ERF_IO = 0x04,
30  ERF_IS_PERSISTENT = 0x10,
31  ERF_DEALLOCATE = 0x20,
32  ERF_IS_ACTIVE = 0x40
33 };
34 
35 struct VTRequest {
37  unsigned flags;
38  int tag;
39  int dest;
40  int bytes;
41  MPI_Datatype datatype;
42  MPI_Comm comm;
43  uint64_t matchingid;
44  uint64_t handleid;
45  uint32_t fileid;
46  uint32_t fileop;
47  uint32_t ioflags;
48 };
49 
50 EXTERN void vt_request_finalize(void);
51 EXTERN void vt_request_create(MPI_Request request,
52  unsigned flags, int tag, int dest, int bytes,
53  MPI_Datatype datatype, MPI_Comm comm);
54 EXTERN void vt_iorequest_create( MPI_Request request,
55  MPI_Datatype datatype,
56  uint64_t matchingid,
57  uint64_t handleid,
58  uint32_t fileid,
59  uint32_t flags );
60 EXTERN struct VTRequest* vt_request_get(MPI_Request request);
61 EXTERN void vt_request_free(struct VTRequest* req);
62 EXTERN void vt_check_request(uint64_t* time, struct VTRequest* req,
63  MPI_Status *status, uint8_t record_event);
64 EXTERN void vt_save_request_array(MPI_Request *arr_req, int arr_req_size);
65 EXTERN struct VTRequest* vt_saved_request_get(int i);
66 
67 #endif
Definition: ompi_datatype.h:68
Definition: vt_mpireq.h:35
Definition: mpi.h:337
Definition: evdns.c:158
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100