basic API for dynamic module loading, used by libexslt added in 2.6.17

Table of Contents

Structure xmlModule
struct _xmlModule The content of this structure is not made public by the API.
Enum xmlModuleOption
Typedef xmlModule * xmlModulePtr
int	xmlModuleClose			(xmlModulePtr module)
int	xmlModuleFree			(xmlModulePtr module)
xmlModulePtr	xmlModuleOpen		(const char * name, 
int options)
int	xmlModuleSymbol			(xmlModulePtr module, 
const char * name,
void ** symbol)

Description

Structure xmlModule

Structure xmlModule
struct _xmlModule { The content of this structure is not made public by the API. }

Enum xmlModuleOption

Enum xmlModuleOption {
    XML_MODULE_LAZY = 1 : lazy binding
    XML_MODULE_LOCAL = 2 : local binding
}
A handle to a dynamically loaded module

Function: xmlModuleClose

int	xmlModuleClose			(xmlModulePtr module)

The close operations unload the associated module and free the data associated to the module.

module:the module handle
Returns:0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.

Function: xmlModuleFree

int	xmlModuleFree			(xmlModulePtr module)

The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.

module:the module handle
Returns:0 in case of success, -1 in case of argument error

Function: xmlModuleOpen

xmlModulePtr	xmlModuleOpen		(const char * name, 
int options)

Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . TODO: options are not yet implemented.

name:the module name
options:a set of xmlModuleOption
Returns:a handle for the module or NULL in case of error

Function: xmlModuleSymbol

int	xmlModuleSymbol			(xmlModulePtr module, 
const char * name,
void ** symbol)

Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * .

module:the module
name:the name of the symbol
symbol:the resulting symbol address
Returns:0 if the symbol was found, or -1 in case of error

Daniel Veillard