1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 #ifndef MCA_CRS_SELF_EXPORT_H
  26 #define MCA_CRS_SELF_EXPORT_H
  27 
  28 #include "opal_config.h"
  29 
  30 
  31 #include "opal/mca/mca.h"
  32 #include "opal/mca/crs/crs.h"
  33 
  34 BEGIN_C_DECLS
  35 
  36 #define PREFIX_DEFAULT    ("opal_crs_self_user")
  37 #define SUFFIX_CHECKPOINT ("checkpoint")
  38 #define SUFFIX_CONTINUE   ("continue")
  39 #define SUFFIX_RESTART    ("restart")
  40 
  41     typedef int (*opal_crs_self_checkpoint_callback_fn_t)(char **restart_cmd);
  42     typedef int (*opal_crs_self_continue_callback_fn_t)(void);
  43     typedef int (*opal_crs_self_restart_callback_fn_t)(void);
  44 
  45     
  46 
  47 
  48     struct opal_crs_self_component_t {
  49         opal_crs_base_component_t super;  
  50 
  51         char *prefix;    
  52         bool do_restart; 
  53         bool can_checkpoint; 
  54 
  55         
  56         opal_crs_self_checkpoint_callback_fn_t ucb_checkpoint_fn;
  57         opal_crs_self_continue_callback_fn_t   ucb_continue_fn;
  58         opal_crs_self_restart_callback_fn_t    ucb_restart_fn;
  59     };
  60     typedef struct opal_crs_self_component_t opal_crs_self_component_t;
  61     OPAL_MODULE_DECLSPEC extern opal_crs_self_component_t mca_crs_self_component;
  62 
  63     int opal_crs_self_component_query(mca_base_module_t **module, int *priority);
  64 
  65     
  66 
  67 
  68     int opal_crs_self_module_init(void);
  69     int opal_crs_self_module_finalize(void);
  70 
  71     
  72 
  73 
  74     int opal_crs_self_checkpoint( pid_t pid,
  75                                   opal_crs_base_snapshot_t *snapshot,
  76                                   opal_crs_base_ckpt_options_t *options,
  77                                   opal_crs_state_type_t *state);
  78 
  79     int opal_crs_self_restart(    opal_crs_base_snapshot_t *snapshot, bool spawn_child, pid_t *child_pid);
  80 
  81     int opal_crs_self_disable_checkpoint(void);
  82     int opal_crs_self_enable_checkpoint(void);
  83 
  84     int opal_crs_self_prelaunch(int32_t rank,
  85                                 char *base_snapshot_dir,
  86                                 char **app,
  87                                 char **cwd,
  88                                 char ***argv,
  89                                 char ***env);
  90 
  91     int opal_crs_self_reg_thread(void);
  92 
  93 
  94 END_C_DECLS
  95 
  96 #endif