1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: dynamic module loading
3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: basic API for dynamic module loading, used by
4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *              libexslt added in 2.6.17
5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software.
7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Joel W. Reed
9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_MODULE_H__
12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_MODULE_H__
13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h>
15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_MODULES_ENABLED
17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" {
20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlModulePtr:
24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * A handle to a dynamically loaded module
26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlModule xmlModule;
28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlModule *xmlModulePtr;
29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlModuleOption:
32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * enumeration of options that can be passed down to xmlModuleOpen()
34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef enum {
36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_MODULE_LAZY = 1,	/* lazy binding */
37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_MODULE_LOCAL= 2		/* local binding */
38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} xmlModuleOption;
39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen	(const char *filename,
41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 int options);
42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlModuleSymbol		(xmlModulePtr module,
44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const char* name,
45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 void **result);
46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlModuleClose		(xmlModulePtr module);
48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlModuleFree		(xmlModulePtr module);
50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}
5394442ad4107000e6d49f9b85a46a591495a57632Selim Gurun#endif
54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_MODULES_ENABLED */
56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /*__XML_MODULE_H__ */
58