Manpages - hwlocality_xmlexport.3
Table of Contents
- NAME
- SYNOPSIS
- Detailed Description
- Enumeration Type Documentation
- Function Documentation
- int hwloc_export_obj_userdata (void * reserved, *hwloc_topology_t*/
- int hwloc_export_obj_userdata_base64 (void * reserved,
- void hwloc_free_xmlbuffer (*hwloc_topology_t*/ topology, char *
- int hwloc_topology_export_xml (*hwloc_topology_t*/ topology, const
- int hwloc_topology_export_xmlbuffer (*hwloc_topology_t*/ topology,
- void hwloc_topology_set_userdata_export_callback (*hwloc_topology_t*/
- void hwloc_topology_set_userdata_import_callback (*hwloc_topology_t*/
- Author
NAME
hwlocality_xmlexport - Exporting Topologies to XML
SYNOPSIS
Enumerations
enum hwloc_topology_export_xml_flags_e {
HWLOC_TOPOLOGY_EXPORT_XML_FLAG_V1 }
Functions
int hwloc_topology_export_xml (hwloc_topology_t topology, const char
*xmlpath, unsigned long flags)
int hwloc_topology_export_xmlbuffer (hwloc_topology_t topology, char
**xmlbuffer, int *buflen, unsigned long flags)
void hwloc_free_xmlbuffer (hwloc_topology_t topology, char
*xmlbuffer)
void hwloc_topology_set_userdata_export_callback (hwloc_topology_t
topology, void(export_cb)(void *reserved, *hwloc_topology_t topology,
hwloc_obj_t obj))
int hwloc_export_obj_userdata (void reserved, *hwloc_topology_t
topology, hwloc_obj_t obj, const char *name, const void *buffer,
size_t length)
int hwloc_export_obj_userdata_base64 (void reserved,
*hwloc_topology_t topology, hwloc_obj_t obj, const char *name, const
void *buffer, size_t length)
void hwloc_topology_set_userdata_import_callback (hwloc_topology_t
topology, void(import_cb)(*hwloc_topology_t topology, hwloc_obj_t
obj, const char *name, const void *buffer, size_t length))
Detailed Description
Enumeration Type Documentation
enum hwloc_topology_export_xml_flags_e
Flags for exporting XML topologies. Flags to be given as a OR’ed set to hwloc_topology_export_xml().
Enumerator
- /HWLOC_TOPOLOGY_EXPORT_XML_FLAG_V1 /
- Export XML that is loadable by hwloc v1.x. However, the export may miss some details about the topology.
Function Documentation
int hwloc_export_obj_userdata (void * reserved, *hwloc_topology_t*/
topology, hwloc_obj_t obj, const char * name, const void * buffer,
size_t length)/
Export some object userdata to XML. This function may only be called
from within the export() callback passed to
*hwloc_topology_set_userdata_export_callback()*/. It may be invoked one
of multiple times to export some userdata to XML. The buffer
content
of length length
is stored with optional name name
./
When importing this XML file, the import() callback (if set) will be
called exactly as many times as *hwloc_export_obj_userdata()*/ was
called during export(). It will receive the corresponding name
,
buffer
and length
arguments./
=reserved=/, topology
and obj
must be the first three parameters
that were given to the export callback./
Only printable characters may be exported to XML string attributes. If a
non-printable character is passed in =name=/ or buffer
, the function
returns -1 with errno set to EINVAL./
If exporting binary data, the application should first encode into printable characters only (or use *hwloc_export_obj_userdata_base64()*/). It should also take care of portability issues if the export may be reimported on a different architecture. /
int hwloc_export_obj_userdata_base64 (void * reserved,
*hwloc_topology_t*/ topology, hwloc_obj_t obj, const char * name, const void * buffer, size_t length)/ Encode and export some object userdata to XML. This function is similar to *hwloc_export_obj_userdata()*/ but it encodes the input buffer into printable characters before exporting. On import, decoding is automatically performed before the data is given to the import() callback if any./
This function may only be called from within the export() callback passed to *hwloc_topology_set_userdata_export_callback()*/./
The function does not take care of portability issues if the export may be reimported on a different architecture.
void hwloc_free_xmlbuffer (*hwloc_topology_t*/ topology, char *
xmlbuffer)/ Free a buffer allocated by *hwloc_topology_export_xmlbuffer()*/ /
int hwloc_topology_export_xml (*hwloc_topology_t*/ topology, const
char * xmlpath, unsigned long flags)/ Export the topology into an XML file. This file may be loaded later through *hwloc_topology_set_xml()*/./
By default, the latest export format is used, which means older hwloc releases (e.g. v1.x) will not be able to import it. Exporting to v1.x specific XML format is possible using flag *HWLOC_TOPOLOGY_EXPORT_XML_FLAG_V1*/ but it may miss some details about the topology. If there is any chance that the exported file may ever be imported back by a process using hwloc 1.x, one should consider detecting it at runtime and using the corresponding export format./
=flags=/ is a OR’ed set of hwloc_topology_export_xml_flags_e./
Returns
-1 if a failure occured.
Note
See also *hwloc_topology_set_userdata_export_callback()*/ for exporting application-specific object userdata./
The topology-specific userdata pointer is ignored when exporting to XML.
Only printable characters may be exported to XML string attributes. Any other character, especially any non-ASCII character, will be silently dropped.
If =name=/ is ’-’, the XML output is sent to the standard output. /
int hwloc_topology_export_xmlbuffer (*hwloc_topology_t*/ topology,
char ** xmlbuffer, int * buflen, unsigned long flags)/ Export the topology into a newly-allocated XML memory buffer. =xmlbuffer=/ is allocated by the callee and should be freed with hwloc_free_xmlbuffer() later in the caller./
This memory buffer may be loaded later through *hwloc_topology_set_xmlbuffer()*/./
By default, the latest export format is used, which means older hwloc releases (e.g. v1.x) will not be able to import it. Exporting to v1.x specific XML format is possible using flag *HWLOC_TOPOLOGY_EXPORT_XML_FLAG_V1*/ but it may miss some details about the topology. If there is any chance that the exported buffer may ever be imported back by a process using hwloc 1.x, one should consider detecting it at runtime and using the corresponding export format./
The returned buffer ends with a \0 that is included in the returned length.
=flags=/ is a OR’ed set of hwloc_topology_export_xml_flags_e./
Returns
-1 if a failure occured.
Note
See also *hwloc_topology_set_userdata_export_callback()*/ for exporting application-specific object userdata./
The topology-specific userdata pointer is ignored when exporting to XML.
Only printable characters may be exported to XML string attributes. Any other character, especially any non-ASCII character, will be silently dropped.
void hwloc_topology_set_userdata_export_callback (*hwloc_topology_t*/
topology, void(*)(void *reserved, hwloc_topology_t topology, hwloc_obj_t obj) export_cb)/ Set the application-specific callback for exporting object userdata. The object userdata pointer is not exported to XML by default because hwloc does not know what it contains.
This function lets applications set =export_cb=/ to a callback function that converts this opaque userdata into an exportable string./
=export_cb=/ is invoked during XML export for each object whose
userdata
pointer is not NULL
. The callback should use
hwloc_export_obj_userdata() or
hwloc_export_obj_userdata_base64() to actually export something to
XML (possibly multiple times per object)./
=export_cb=/ may be set to NULL
if userdata should not be exported
to XML./
Note
The topology-specific userdata pointer is ignored when exporting to XML.
void hwloc_topology_set_userdata_import_callback (*hwloc_topology_t*/
topology, void(*)(hwloc_topology_t topology, hwloc_obj_t obj, const char *name, const void *buffer, size_t length) import_cb)/ Set the application-specific callback for importing userdata. On XML import, userdata is ignored by default because hwloc does not know how to store it in memory.
This function lets applications set =import_cb=/ to a callback function that will get the XML-stored userdata and store it in the object as expected by the application./
=import_cb=/ is called during hwloc_topology_load() as many times as hwloc_export_obj_userdata() was called during export. The topology is not entirely setup yet. Object attributes are ready to consult, but links between objects are not./
=import_cb=/ may be NULL
if userdata should be ignored during
import./
Note
=buffer=/ contains
length
characters followed by a null byte (’\0’)./This function should be called before *hwloc_topology_load()*/./
The topology-specific userdata pointer is ignored when importing from XML.
Author
Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code.