1 /*
2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2006 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
13 * Copyright (c) 2012 Oak Ridge National Labs. All rights reserved.
14 * Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved.
15 * Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
16 * $COPYRIGHT$
17 *
18 * Additional copyrights may follow
19 *
20 * $HEADER$
21 */
22 /** @file:
23 */
24
25 #ifndef MCA_ESS_BASE_H
26 #define MCA_ESS_BASE_H
27
28 #include "orte_config.h"
29 #include "orte/types.h"
30
31 #include "orte/mca/mca.h"
32 #include "opal/dss/dss_types.h"
33
34 #include "orte/mca/ess/ess.h"
35
36 BEGIN_C_DECLS
37
38 /*
39 * MCA Framework
40 */
41 ORTE_DECLSPEC extern mca_base_framework_t orte_ess_base_framework;
42 /**
43 * Select a ess module
44 */
45 ORTE_DECLSPEC int orte_ess_base_select(void);
46
47 /*
48 * stdout/stderr buffering control parameter
49 */
50 ORTE_DECLSPEC extern int orte_ess_base_std_buffering;
51
52 ORTE_DECLSPEC extern int orte_ess_base_num_procs;
53 ORTE_DECLSPEC extern char *orte_ess_base_jobid;
54 ORTE_DECLSPEC extern char *orte_ess_base_vpid;
55 ORTE_DECLSPEC extern opal_list_t orte_ess_base_signals;
56
57 /*
58 * Internal helper functions used by components
59 */
60 ORTE_DECLSPEC int orte_ess_env_get(void);
61
62 ORTE_DECLSPEC int orte_ess_base_std_prolog(void);
63
64 ORTE_DECLSPEC int orte_ess_base_tool_setup(opal_list_t *flags);
65 ORTE_DECLSPEC int orte_ess_base_tool_finalize(void);
66
67 ORTE_DECLSPEC int orte_ess_base_orted_setup(void);
68 ORTE_DECLSPEC int orte_ess_base_orted_finalize(void);
69
70 /* Detect whether or not this proc is bound - if not,
71 * see if it should bind itself
72 */
73 ORTE_DECLSPEC int orte_ess_base_proc_binding(void);
74
75 /*
76 * Put functions
77 */
78 ORTE_DECLSPEC int orte_ess_env_put(orte_std_cntr_t num_procs,
79 orte_std_cntr_t num_local_procs,
80 char ***env);
81
82 typedef struct {
83 opal_list_item_t super;
84 char *signame;
85 int signal;
86 } orte_ess_base_signal_t;
87 OBJ_CLASS_DECLARATION(orte_ess_base_signal_t);
88
89 END_C_DECLS
90
91 #endif