root/ompi/mca/pml/example/pml_example.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2006-2007 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2007 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2011      Sandia National Laboratories. All rights reserved.
   9  * $COPYRIGHT$
  10  *
  11  * Additional copyrights may follow
  12  *
  13  * $HEADER$
  14  */
  15 
  16 #ifndef PML_EXAMPLE_H_HAS_BEEN_INCLUDED
  17 #define PML_EXAMPLE_H_HAS_BEEN_INCLUDED
  18 
  19 #include "ompi/request/request.h"
  20 #include "ompi/mca/pml/pml.h"
  21 #include "ompi/mca/ptl/ptl.h"
  22 
  23 BEGIN_C_DECLS
  24 
  25 struct mca_pml_example_t {
  26     mca_pml_base_module_t super;
  27 
  28     mca_ptl_base_component_t **example_ptl_components;
  29     size_t example_num_ptl_components;
  30 
  31     mca_ptl_base_module_t** example_ptl_modules;
  32     size_t example_num_ptl_modules;
  33 
  34     opal_list_t  example_procs;
  35     opal_mutex_t example_lock;
  36 
  37     /* list of pending send requests */
  38     opal_list_t example_send_pending;
  39 };
  40 typedef struct mca_pml_example_t mca_pml_example_t;
  41 
  42 extern mca_pml_example_t mca_pml_example;
  43 
  44 /*
  45  * PML interface functions.
  46  */
  47 extern int mca_pml_example_add_comm( struct ompi_communicator_t* comm );
  48 extern int mca_pml_example_del_comm( struct ompi_communicator_t* comm );
  49 
  50 extern int mca_pml_example_add_procs( struct ompi_proc_t **procs, size_t nprocs );
  51 extern int mca_pml_example_del_procs( struct ompi_proc_t **procs, size_t nprocs );
  52 
  53 extern int mca_pml_example_add_ptls( opal_list_t *ptls );
  54 
  55 extern int mca_pml_example_control( int param, void *size, size_t value );
  56 
  57 extern int mca_pml_example_iprobe( int dst,
  58                                int tag,
  59                                struct ompi_communicator_t* comm,
  60                                int *matched,
  61                                ompi_status_public_t* status );
  62 
  63 extern int mca_pml_example_probe( int dst,
  64                               int tag,
  65                               struct ompi_communicator_t* comm,
  66                               ompi_status_public_t* status );
  67 
  68 extern int mca_pml_example_improbe(int dst,
  69                                    int tag,
  70                                    struct ompi_communicator_t* comm,
  71                                    int *matched,
  72                                    struct ompi_message_t **message,
  73                                    ompi_status_public_t* status);
  74 
  75 extern int mca_pml_example_mprobe(int dst,
  76                                   int tag,
  77                                   struct ompi_communicator_t* comm,
  78                                   struct ompi_message_t **message,
  79                                   ompi_status_public_t* status);
  80 
  81 extern int mca_pml_example_cancel( ompi_request_t* request );
  82 extern int mca_pml_example_cancelled( ompi_request_t* request, int *flag );
  83 
  84 extern int mca_pml_example_isend_init( void *buf,
  85                                    size_t count,
  86                                    ompi_datatype_t *datatype,
  87                                    int dst,
  88                                    int tag,
  89                                    mca_pml_base_send_mode_t mode,
  90                                    struct ompi_communicator_t* comm,
  91                                    struct ompi_request_t **request );
  92 
  93 extern int mca_pml_example_isend( void *buf,
  94                               size_t count,
  95                               ompi_datatype_t *datatype,
  96                               int dst,
  97                               int tag,
  98                               mca_pml_base_send_mode_t mode,
  99                               struct ompi_communicator_t* comm,
 100                               struct ompi_request_t **request );
 101 
 102 extern int mca_pml_example_send( void *buf,
 103                              size_t count,
 104                              ompi_datatype_t *datatype,
 105                              int dst,
 106                              int tag,
 107                              mca_pml_base_send_mode_t mode,
 108                              struct ompi_communicator_t* comm );
 109 
 110 extern int mca_pml_example_irecv_init( void *buf,
 111                                    size_t count,
 112                                    ompi_datatype_t *datatype,
 113                                    int src,
 114                                    int tag,
 115                                    struct ompi_communicator_t* comm,
 116                                    struct ompi_request_t **request );
 117 
 118 extern int mca_pml_example_irecv( void *buf,
 119                               size_t count,
 120                               ompi_datatype_t *datatype,
 121                               int src,
 122                               int tag,
 123                               struct ompi_communicator_t* comm,
 124                               struct ompi_request_t **request );
 125 
 126 extern int mca_pml_example_recv( void *buf,
 127                              size_t count,
 128                              ompi_datatype_t *datatype,
 129                              int src,
 130                              int tag,
 131                              struct ompi_communicator_t* comm,
 132                              ompi_status_public_t* status );
 133 
 134 extern int mca_pml_example_imrecv(void *buf,
 135                                   size_t count,
 136                                   ompi_datatype_t *datatype,
 137                                   struct ompi_message_t **message,
 138                                   struct ompi_request_t **request);
 139 
 140 extern int mca_pml_example_mrecv(void *buf,
 141                                  size_t count,
 142                                  ompi_datatype_t *datatype,
 143                                  struct ompi_message_t **message,
 144                                  ompi_status_public_t* status);
 145 
 146 extern int mca_pml_example_progress(void);
 147 
 148 extern int mca_pml_example_start( size_t count, ompi_request_t** requests );
 149 
 150 extern int mca_pml_example_ft_event(int state);
 151 
 152 
 153 END_C_DECLS
 154 
 155 #endif  /* PML_EXAMPLE_H_HAS_BEEN_INCLUDED */

/* [<][>][^][v][top][bottom][index][help] */