10 #ifndef OPAL_HWLOC_BASE_H
11 #define OPAL_HWLOC_BASE_H
13 #include "opal_config.h"
18 #include "opal/mca/hwloc/hwloc.h"
56 OPAL_DECLSPEC
int opal_hwloc_base_open(
void);
69 OPAL_DECLSPEC
int opal_hwloc_base_close(
void);
74 OPAL_DECLSPEC
extern int opal_hwloc_base_output;
75 OPAL_DECLSPEC
extern opal_list_t opal_hwloc_base_components;
76 OPAL_DECLSPEC
extern bool opal_hwloc_base_inited;
77 OPAL_DECLSPEC
extern bool opal_hwloc_topology_inited;
80 OPAL_DECLSPEC
extern char *opal_hwloc_base_slot_list;
81 OPAL_DECLSPEC
extern char *opal_hwloc_base_cpu_set;
89 OPAL_DECLSPEC
int opal_hwloc_base_report_bind_failure(
const char *file,
94 OPAL_DECLSPEC opal_paffinity_locality_t opal_hwloc_base_get_relative_locality(
hwloc_topology_t topo,
95 opal_hwloc_level_t level1,
97 opal_hwloc_level_t level2,
100 OPAL_DECLSPEC
void opal_hwloc_base_get_local_cpuset(
void);
107 OPAL_HWLOC_BASE_MAP_NONE,
108 OPAL_HWLOC_BASE_MAP_LOCAL_ONLY
109 } opal_hwloc_base_map_t;
114 OPAL_DECLSPEC
extern opal_hwloc_base_map_t opal_hwloc_base_map;
121 OPAL_HWLOC_BASE_MBFA_SILENT,
122 OPAL_HWLOC_BASE_MBFA_WARN,
123 OPAL_HWLOC_BASE_MBFA_ERROR
124 } opal_hwloc_base_mbfa_t;
129 OPAL_DECLSPEC
extern opal_hwloc_base_mbfa_t opal_hwloc_base_mbfa;
133 OPAL_DECLSPEC
int opal_hwloc_base_get_topology(
void);
137 OPAL_DECLSPEC
unsigned int opal_hwloc_base_get_nbobjs_by_type(
hwloc_topology_t topo,
139 unsigned cache_level,
140 opal_hwloc_resource_type_t rtype);
143 unsigned cache_level,
144 unsigned int instance,
145 opal_hwloc_resource_type_t rtype);
146 OPAL_DECLSPEC
unsigned int opal_hwloc_base_get_obj_idx(
hwloc_topology_t topo,
148 opal_hwloc_resource_type_t rtype);
149 OPAL_DECLSPEC
void opal_hwloc_base_get_level_and_index(
hwloc_cpuset_t cpus,
150 opal_hwloc_level_t *bind_level,
151 unsigned int *bind_idx);
154 OPAL_DECLSPEC
char* opal_hwloc_base_print_binding(opal_binding_policy_t binding);
155 OPAL_DECLSPEC
char* opal_hwloc_base_print_locality(opal_paffinity_locality_t locality);
156 OPAL_DECLSPEC
char* opal_hwloc_base_print_level(opal_hwloc_level_t level);
157 OPAL_DECLSPEC
bool opal_hwloc_base_single_cpu(
hwloc_cpuset_t cpuset);
163 OPAL_DECLSPEC
int opal_hwloc_base_slot_list_parse(
const char *slot_str,
172 OPAL_DECLSPEC
int opal_hwloc_base_report_bind_failure(
const char *file,
185 OPAL_DECLSPEC
int opal_hwloc_base_set_process_membind_policy(
void);
188 OPAL_DECLSPEC
int opal_hwloc_pack(
opal_buffer_t *buffer,
const void *src,
190 opal_data_type_t type);
191 OPAL_DECLSPEC
int opal_hwloc_unpack(
opal_buffer_t *buffer,
void *dest,
193 opal_data_type_t type);
196 opal_data_type_t type);
199 opal_data_type_t type);
200 OPAL_DECLSPEC
int opal_hwloc_print(
char **output,
char *prefix,
202 opal_data_type_t type);
203 OPAL_DECLSPEC
int opal_hwloc_size(
size_t *size,
205 opal_data_type_t type);
Structure of a topology object.
Definition: hwloc.h:329
Definition: dss_types.h:89
paffinity (processor affinity) framework component interface definitions.
Definition: opal_list.h:147
hwloc_obj_type_t
Type of topology object.
Definition: hwloc.h:164
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159