root/opal/mca/pmix/pmix4x/pmix/test/test_server.h

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

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2018      Mellanox Technologies, Inc.
   3  *                         All rights reserved.
   4  *
   5  * $COPYRIGHT$
   6  *
   7  * Additional copyrights may follow
   8  *
   9  * $HEADER$
  10  *
  11  */
  12 
  13 #ifndef TEST_SERVER_C
  14 #define TEST_SERVER_C
  15 
  16 #include "pmix_server.h"
  17 #include "test_common.h"
  18 
  19 
  20 typedef enum {
  21     CMD_BARRIER_REQUEST,
  22     CMD_BARRIER_RESPONSE,
  23     CMD_FENCE_CONTRIB,
  24     CMD_FENCE_COMPLETE,
  25     CMD_DMDX_REQUEST,
  26     CMD_DMDX_RESPONSE
  27 } server_cmd_t;
  28 
  29 typedef struct {
  30     int dst_id;
  31     int src_id;
  32     int cmd;
  33     size_t size;
  34 } msg_hdr_t;
  35 
  36 struct server_info_t
  37 {
  38     pmix_list_item_t super;
  39     pid_t pid;
  40     int idx;
  41     int rd_fd;
  42     int wr_fd;
  43     pmix_event_t *evread;
  44     pmix_lock_t lock;
  45     pmix_modex_cbfunc_t modex_cbfunc;
  46     void *cbdata;
  47 };
  48 typedef struct server_info_t server_info_t;
  49 PMIX_EXPORT PMIX_CLASS_DECLARATION(server_info_t);
  50 
  51 struct server_nspace_t
  52 {
  53     pmix_list_item_t super;
  54     char name[PMIX_MAX_NSLEN+1];
  55     size_t ntasks; /* total number of tasks in this namespace */
  56     size_t ltasks; /* local */
  57     int *task_map;
  58 };
  59 typedef struct server_nspace_t server_nspace_t;
  60 PMIX_EXPORT PMIX_CLASS_DECLARATION(server_nspace_t);
  61 
  62 extern int my_server_id;
  63 extern pmix_list_t *server_list;
  64 extern server_info_t *my_server_info;
  65 extern pmix_list_t *server_nspace;
  66 
  67 int server_init(test_params *params);
  68 int server_finalize(test_params *params);
  69 int server_barrier(void);
  70 int server_fence_contrib(char *data, size_t ndata,
  71                          pmix_modex_cbfunc_t cbfunc, void *cbdata);
  72 int server_dmdx_get(const char *nspace, int rank,
  73                     pmix_modex_cbfunc_t cbfunc, void *cbdata);
  74 int server_launch_clients(int local_size, int univ_size, int base_rank,
  75                    test_params *params, char *** client_env, char ***base_argv);
  76 
  77 
  78 #endif // TEST_SERVER_C
  79 

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