Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v1.11.13

  |   Home   |   Support   |   FAQ   |  
diff.h
1 /*
2  * Copyright © 2013-2018 Inria. All rights reserved.
3  * See COPYING in top-level directory.
4  */
5 
10 #ifndef HWLOC_DIFF_H
11 #define HWLOC_DIFF_H
12 
13 #ifndef HWLOC_H
14 #error Please include the main hwloc.h instead
15 #endif
16 
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #elif 0
21 }
22 #endif
23 
24 
67 
79 
84  /* each part of the union must start with these */
86  } generic;
87 
90  /* used for storing integer attributes */
92  hwloc_uint64_t index; /* not used for SIZE */
93  hwloc_uint64_t oldvalue;
94  hwloc_uint64_t newvalue;
95  } uint64;
96 
99  /* used for storing name and info pairs */
101  char *name; /* not used for NAME */
102  char *oldvalue;
103  char *newvalue;
104  } string;
105 };
106 
107 
115 
125 
128 typedef union hwloc_topology_diff_u {
130  /* each part of the union must start with these */
132  union hwloc_topology_diff_u * next; /* pointer to the next element of the list, or NULL */
133  } generic;
134 
135  /* A difference in an object attribute. */
137  hwloc_topology_diff_type_t type; /* must be ::HWLOC_TOPOLOGY_DIFF_OBJ_ATTR */
139  /* List of attribute differences for a single object */
140  unsigned obj_depth;
141  unsigned obj_index;
143  } obj_attr;
144 
145  /* A difference that is too complex. */
147  hwloc_topology_diff_type_t type; /* must be ::HWLOC_TOPOLOGY_DIFF_TOO_COMPLEX */
149  /* Where we had to stop computing the diff in the first topology */
150  unsigned obj_depth;
151  unsigned obj_index;
152  } too_complex;
154 
155 
193 HWLOC_DECLSPEC int hwloc_topology_diff_build(hwloc_topology_t topology, hwloc_topology_t newtopology, unsigned long flags, hwloc_topology_diff_t *diff);
194 
202 };
203 
221 HWLOC_DECLSPEC int hwloc_topology_diff_apply(hwloc_topology_t topology, hwloc_topology_diff_t diff, unsigned long flags);
222 
228 HWLOC_DECLSPEC int hwloc_topology_diff_destroy(hwloc_topology_t topology, hwloc_topology_diff_t diff);
229 
244 HWLOC_DECLSPEC int hwloc_topology_diff_load_xml(hwloc_topology_t topology, const char *xmlpath, hwloc_topology_diff_t *diff, char **refname);
245 
258 HWLOC_DECLSPEC int hwloc_topology_diff_export_xml(hwloc_topology_t topology, hwloc_topology_diff_t diff, const char *refname, const char *xmlpath);
259 
274 HWLOC_DECLSPEC int hwloc_topology_diff_load_xmlbuffer(hwloc_topology_t topology, const char *xmlbuffer, int buflen, hwloc_topology_diff_t *diff, char **refname);
275 
293 HWLOC_DECLSPEC int hwloc_topology_diff_export_xmlbuffer(hwloc_topology_t topology, hwloc_topology_diff_t diff, const char *refname, char **xmlbuffer, int *buflen);
294 
298 #ifdef __cplusplus
299 } /* extern "C" */
300 #endif
301 
302 
303 #endif /* HWLOC_DIFF_H */
struct hwloc_topology_diff_obj_attr_u::hwloc_topology_diff_obj_attr_string_s string
hwloc_topology_diff_obj_attr_type_e
Type of one object attribute difference.
Definition: diff.h:61
int hwloc_topology_diff_destroy(hwloc_topology_t topology, hwloc_topology_diff_t diff)
Destroy a list of topology differences.
int hwloc_topology_diff_build(hwloc_topology_t topology, hwloc_topology_t newtopology, unsigned long flags, hwloc_topology_diff_t *diff)
Compute the difference between 2 topologies.
int hwloc_topology_diff_load_xmlbuffer(hwloc_topology_t topology, const char *xmlbuffer, int buflen, hwloc_topology_diff_t *diff, char **refname)
Load a list of topology differences from a XML buffer.
String attribute modification with an optional name.
Definition: diff.h:98
int hwloc_topology_diff_export_xmlbuffer(hwloc_topology_t topology, hwloc_topology_diff_t diff, const char *refname, char **xmlbuffer, int *buflen)
Export a list of topology differences to a XML buffer.
union hwloc_topology_diff_u * next
Definition: diff.h:148
int hwloc_topology_diff_apply(hwloc_topology_t topology, hwloc_topology_diff_t diff, unsigned long flags)
Apply a topology diff to an existing topology.
hwloc_topology_diff_type_e
Type of one element of a difference list.
Definition: diff.h:110
An object attribute was changed. The union is a hwloc_topology_diff_obj_attr_u::hwloc_topology_diff_o...
Definition: diff.h:114
Apply topology diff in reverse direction.
Definition: diff.h:201
int hwloc_topology_diff_load_xml(hwloc_topology_t topology, const char *xmlpath, hwloc_topology_diff_t *diff, char **refname)
Load a list of topology differences from a XML file.
struct hwloc_topology_diff_obj_attr_u::hwloc_topology_diff_obj_attr_uint64_s uint64
hwloc_topology_diff_obj_attr_type_t type
Definition: diff.h:91
hwloc_topology_diff_type_t type
Definition: diff.h:147
The difference is too complex, it cannot be represented. The difference below this object has not bee...
Definition: diff.h:123
hwloc_topology_diff_apply_flags_e
Flags to be given to hwloc_topology_diff_apply().
Definition: diff.h:197
union hwloc_topology_diff_u * hwloc_topology_diff_t
One element of a difference list between two topologies.
enum hwloc_topology_diff_type_e hwloc_topology_diff_type_t
Type of one element of a difference list.
hwloc_topology_diff_type_t type
Definition: diff.h:137
enum hwloc_topology_diff_obj_attr_type_e hwloc_topology_diff_obj_attr_type_t
Type of one object attribute difference.
hwloc_topology_diff_obj_attr_type_t type
Definition: diff.h:85
the value of an info attribute is modified. The union is a hwloc_topology_diff_obj_attr_u::hwloc_topo...
Definition: diff.h:77
The object name is modified. The union is a hwloc_topology_diff_obj_attr_u::hwloc_topology_diff_obj_a...
Definition: diff.h:73
hwloc_topology_diff_type_t type
Definition: diff.h:131
One element of a difference list between two topologies.
Definition: diff.h:128
The object local memory is modified. The union is a hwloc_topology_diff_obj_attr_u::hwloc_topology_di...
Definition: diff.h:66
union hwloc_topology_diff_u * next
Definition: diff.h:138
Integer attribute modification with an optional index.
Definition: diff.h:89
union hwloc_topology_diff_u * next
Definition: diff.h:132
int hwloc_topology_diff_export_xml(hwloc_topology_t topology, hwloc_topology_diff_t diff, const char *refname, const char *xmlpath)
Export a list of topology differences to a XML file.
struct hwloc_topology * hwloc_topology_t
Topology context.
Definition: hwloc.h:633
hwloc_topology_diff_obj_attr_type_t type
Definition: diff.h:100
One object attribute difference.
Definition: diff.h:82