about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h2
-rw-r--r--src/wrapped/generated/functions_list.txt6
-rw-r--r--src/wrapped/generated/wrappedxsltdefs.h8
-rw-r--r--src/wrapped/generated/wrappedxslttypes.h21
-rw-r--r--src/wrapped/generated/wrappedxsltundefs.h8
-rw-r--r--src/wrapped/generated/wrapper.c3
-rw-r--r--src/wrapped/generated/wrapper.h1
-rwxr-xr-xsrc/wrapped/wrappedxslt.c135
-rwxr-xr-xsrc/wrapped/wrappedxslt_private.h247
9 files changed, 430 insertions, 1 deletions
diff --git a/src/library_list.h b/src/library_list.h
index e25b8d88..be2a909d 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -154,7 +154,7 @@ GO("libcups.so.2", libcups)
 //GO("libvulkan.so", vulkan)
 //GO("libwayland-client.so.0", waylandclient)
 GO("libxml2.so.2", xml2)
-//GO("libxslt.so.1", xslt)
+GO("libxslt.so.1", xslt)
 GO("libldap_r-2.4.so.2", ldapr)
 GO("liblber-2.4.so.2", lber)
 //GO("libnsl.so.1", nsl)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index a0109dde..3b5fe1ff 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -725,6 +725,7 @@
 #() iFppui
 #() iFppuu
 #() iFppup
+#() iFppdp
 #() iFppll
 #() iFpplp
 #() iFppLi
@@ -3461,3 +3462,8 @@ wrappedxml2:
   - xmlHashUpdateEntry3
 - pFpppppi:
   - xmlCreateIOParserCtxt
+wrappedxslt:
+- vFp:
+  - xsltSetLoaderFunc
+- iFppp:
+  - xsltRegisterExtModuleFunction
diff --git a/src/wrapped/generated/wrappedxsltdefs.h b/src/wrapped/generated/wrappedxsltdefs.h
new file mode 100644
index 00000000..f7f387eb
--- /dev/null
+++ b/src/wrapped/generated/wrappedxsltdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedxsltDEFS_H_
+#define __wrappedxsltDEFS_H_
+
+
+#endif // __wrappedxsltDEFS_H_
diff --git a/src/wrapped/generated/wrappedxslttypes.h b/src/wrapped/generated/wrappedxslttypes.h
new file mode 100644
index 00000000..e5700bce
--- /dev/null
+++ b/src/wrapped/generated/wrappedxslttypes.h
@@ -0,0 +1,21 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedxsltTYPES_H_
+#define __wrappedxsltTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef void (*vFp_t)(void*);
+typedef int64_t (*iFppp_t)(void*, void*, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(xsltSetLoaderFunc, vFp_t) \
+	GO(xsltRegisterExtModuleFunction, iFppp_t)
+
+#endif // __wrappedxsltTYPES_H_
diff --git a/src/wrapped/generated/wrappedxsltundefs.h b/src/wrapped/generated/wrappedxsltundefs.h
new file mode 100644
index 00000000..8fdeaa7a
--- /dev/null
+++ b/src/wrapped/generated/wrappedxsltundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedxsltUNDEFS_H_
+#define __wrappedxsltUNDEFS_H_
+
+
+#endif // __wrappedxsltUNDEFS_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 8f7b19f5..2e073166 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -759,6 +759,7 @@ typedef int64_t (*iFppuw_t)(void*, void*, uint64_t, int16_t);
 typedef int64_t (*iFppui_t)(void*, void*, uint64_t, int64_t);
 typedef int64_t (*iFppuu_t)(void*, void*, uint64_t, uint64_t);
 typedef int64_t (*iFppup_t)(void*, void*, uint64_t, void*);
+typedef int64_t (*iFppdp_t)(void*, void*, double, void*);
 typedef int64_t (*iFppll_t)(void*, void*, intptr_t, intptr_t);
 typedef int64_t (*iFpplp_t)(void*, void*, intptr_t, void*);
 typedef int64_t (*iFppLi_t)(void*, void*, uintptr_t, int64_t);
@@ -2657,6 +2658,7 @@ void iFppuw(x64emu_t *emu, uintptr_t fcn) { iFppuw_t fn = (iFppuw_t)fcn; R_RAX=(
 void iFppui(x64emu_t *emu, uintptr_t fcn) { iFppui_t fn = (iFppui_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX); }
 void iFppuu(x64emu_t *emu, uintptr_t fcn) { iFppuu_t fn = (iFppuu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX); }
 void iFppup(x64emu_t *emu, uintptr_t fcn) { iFppup_t fn = (iFppup_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX); }
+void iFppdp(x64emu_t *emu, uintptr_t fcn) { iFppdp_t fn = (iFppdp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], (void*)R_RDX); }
 void iFppll(x64emu_t *emu, uintptr_t fcn) { iFppll_t fn = (iFppll_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); }
 void iFpplp(x64emu_t *emu, uintptr_t fcn) { iFpplp_t fn = (iFpplp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (void*)R_RCX); }
 void iFppLi(x64emu_t *emu, uintptr_t fcn) { iFppLi_t fn = (iFppLi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int64_t)R_RCX); }
@@ -4457,6 +4459,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFppui) return 1;
 	if (fun == &iFppuu) return 1;
 	if (fun == &iFppup) return 1;
+	if (fun == &iFppdp) return 2;
 	if (fun == &iFppll) return 1;
 	if (fun == &iFpplp) return 1;
 	if (fun == &iFppLi) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index ca23a0aa..8e3b9676 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -758,6 +758,7 @@ void iFppuw(x64emu_t *emu, uintptr_t fnc);
 void iFppui(x64emu_t *emu, uintptr_t fnc);
 void iFppuu(x64emu_t *emu, uintptr_t fnc);
 void iFppup(x64emu_t *emu, uintptr_t fnc);
+void iFppdp(x64emu_t *emu, uintptr_t fnc);
 void iFppll(x64emu_t *emu, uintptr_t fnc);
 void iFpplp(x64emu_t *emu, uintptr_t fnc);
 void iFppLi(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedxslt.c b/src/wrapped/wrappedxslt.c
new file mode 100755
index 00000000..a3aff7df
--- /dev/null
+++ b/src/wrapped/wrappedxslt.c
@@ -0,0 +1,135 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "box64context.h"
+#include "librarian.h"
+#include "callback.h"
+
+const char *xsltName =
+#ifdef ANDROID
+    "libxslt.so"
+#else
+    "libxslt.so.1"
+#endif
+    ;
+#define LIBNAME xslt
+static library_t *my_lib = NULL;
+
+typedef void    (*vFp_t)        (void*);
+typedef int     (*iFppp_t)      (void*, void*, void*);
+
+#define SUPER()                                 \
+    GO(xsltRegisterExtModuleFunction, iFppp_t)  \
+    GO(xsltSetLoaderFunc, vFp_t)                \
+
+typedef struct xslt_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} xslt_my_t;
+
+void* getXsltMy(library_t* lib)
+{
+    xslt_my_t* my = (xslt_my_t*)calloc(1, sizeof(xslt_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeXsltMy(void* lib)
+{
+    //xslt_my_t *my = (xslt_my_t *)lib;
+}
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// xmlXPathFunction ...
+#define GO(A)   \
+static uintptr_t my_xmlXPathFunction_fct_##A = 0;                   \
+static void my_xmlXPathFunction_##A(void* a, int b)                 \
+{                                                                   \
+    RunFunction(my_context, my_xmlXPathFunction_fct_##A, 2, a, b);  \
+}
+SUPER()
+#undef GO
+static void* find_xmlXPathFunction_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_xmlXPathFunction_fct_##A == (uintptr_t)fct) return my_xmlXPathFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_xmlXPathFunction_fct_##A == 0) {my_xmlXPathFunction_fct_##A = (uintptr_t)fct; return my_xmlXPathFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libxslt xmlXPathFunction callback\n");
+    return NULL;
+}
+// xsltDocLoaderFunc ...
+#define GO(A)   \
+static uintptr_t my_xsltDocLoaderFunc_fct_##A = 0;                                          \
+static void* my_xsltDocLoaderFunc_##A(void* a, void* b, int c, void* d, int e)              \
+{                                                                                           \
+    return (void*)RunFunction(my_context, my_xsltDocLoaderFunc_fct_##A, 5, a, b, c, d, e);  \
+}
+SUPER()
+#undef GO
+static void* find_xsltDocLoaderFunc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_xsltDocLoaderFunc_fct_##A == (uintptr_t)fct) return my_xsltDocLoaderFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_xsltDocLoaderFunc_fct_##A == 0) {my_xsltDocLoaderFunc_fct_##A = (uintptr_t)fct; return my_xsltDocLoaderFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libxslt xsltDocLoaderFunc callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+EXPORT int my_xsltRegisterExtModuleFunction(x64emu_t* emu, void* name, void* URI, void* f)
+{
+    xslt_my_t* my = (xslt_my_t*)my_lib->priv.w.p2;
+
+    return my->xsltRegisterExtModuleFunction(name, URI, find_xmlXPathFunction_Fct(f));
+}
+
+EXPORT void my_xsltSetLoaderFunc(x64emu_t* emu, void* f)
+{
+    xslt_my_t* my = (xslt_my_t*)my_lib->priv.w.p2;
+
+    my->xsltSetLoaderFunc(find_xsltDocLoaderFunc_Fct(f));
+}
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getXsltMy(lib);    \
+    my_lib = lib;
+
+#define CUSTOM_FINI \
+    freeXsltMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2);       \
+    my_lib = NULL;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedxslt_private.h b/src/wrapped/wrappedxslt_private.h
new file mode 100755
index 00000000..f769d942
--- /dev/null
+++ b/src/wrapped/wrappedxslt_private.h
@@ -0,0 +1,247 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(xslAddCall, iFpp)
+GO(xslDropCall, vFv)
+GO(xslHandleDebugger, vFpppp)
+//GO(xsltAddKey, 
+GO(xsltAddStackElemList, iFpp)
+//GO(xsltAddTemplate, 
+GO(xsltAllocateExtra, iFp)
+GO(xsltAllocateExtraCtxt, iFp)
+//GO(xsltApplyAttributeSet, 
+GO(xsltApplyImports, vFpppp)
+GO(xsltApplyOneTemplate, vFppppp)
+GO(xsltApplyStripSpaces, vFpp)
+GO(xsltApplyStylesheet, pFppp)
+GO(xsltApplyStylesheetUser, pFpppppp)
+GO(xsltApplyTemplates, vFpppp)
+GO(xsltAttribute, vFpppp)
+//GO(xsltAttrListTemplateProcess, 
+//GO(xsltAttrTemplateProcess, 
+//GO(xsltAttrTemplateValueProcess, 
+//GO(xsltAttrTemplateValueProcessNode, 
+GO(xsltCalibrateAdjust, vFl)
+GO(xsltCallTemplate, vFpppp)
+GO(xsltCheckExtPrefix, iFpp)
+GO(xsltCheckExtURI, iFpp)
+GO(xsltCheckRead, iFppp)
+GO(xsltCheckWrite, iFppp)
+GO(xsltChoose, vFpppp)
+GO(xsltCleanupGlobals, vFv)
+//GO(xsltCleanupTemplates, 
+GO(xsltComment, vFpppp)
+GO(xsltCompileAttr, vFpp)
+//GO(xsltCompilePattern, 
+GO(xsltComputeSortResult, pFpp)
+GO(xsltCopy, vFpppp)
+//GO(xsltCopyNamespace, 
+//GO(xsltCopyNamespaceList, 
+GO(xsltCopyOf, vFpppp)
+GO(xsltCopyTextString, pFpppi)
+//GO(xsltCopyTree, 
+GO(xsltCreateRVT, pFp)
+GO(xsltDebug, vFpppp)
+GO(xsltDebugDumpExtensions, vFp)
+GO(xsltDebugGetDefaultTrace, iFv)
+GO(xsltDebugSetDefaultTrace, vFi)
+GO(xsltDecimalFormatGetByName, pFpp)
+GO(xsltDecimalFormatGetByQName, pFppp)
+GO(xsltDefaultSortFunction, vFppi)
+//GO(xsltDocumentComp, 
+GO(xsltDocumentElem, vFpppp)
+//GO(xsltDocumentFunction, 
+GO(xsltDocumentSortFunction, vFp)
+GO(xsltDoSortFunction, vFppi)
+GO(xsltElement, vFpppp)
+//GO(xsltElementAvailableFunction, 
+//GO(xsltEvalAttrValueTemplate, 
+GO(xsltEvalAVT, pFppp)
+GO(xsltEvalGlobalVariables, iFp)
+GO(xsltEvalOneUserParam, iFppp)
+//GO(xsltEvalStaticAttrValueTemplate, 
+//GO(xsltEvalTemplateString, 
+GO(xsltEvalUserParams, iFpp)
+//GO(xsltEvalXPathPredicate, 
+//GO(xsltEvalXPathString, 
+//GO(xsltEvalXPathStringNs, 
+//GOM(xsltExtElementLookup, BFEppp)
+GO(xsltExtensionInstructionResultFinalize, iFp)
+GO(xsltExtensionInstructionResultRegister, iFpp)
+//GOM(xsltExtModuleElementLookup, BFEpp)
+//GOM(xsltExtModuleElementPreComputeLookup, BFEpp)
+//GOM(xsltExtModuleFunctionLookup, BFEpp)
+//GOM(xsltExtModuleTopLevelLookup, BFEpp)
+GO(xsltFindDocument, pFpp)
+GO(xsltFindElemSpaceHandling, iFpp)
+GO(xsltFindTemplate, pFppp)
+GO(xsltFlagRVTs, iFppp)
+GO(xsltForEach, vFpppp)
+GO(xsltFormatNumberConversion, iFppdp)
+//GO(xsltFormatNumberFunction, 
+//GO(xsltFreeAttributeSetsHashes, 
+GO(xsltFreeAVTList, vFp)
+//GO(xsltFreeCompMatchList, 
+GO(xsltFreeCtxtExts, vFp)
+//GO(xsltFreeDocumentKeys, 
+GO(xsltFreeDocuments, vFp)
+GO(xsltFreeExts, vFp)
+GO(xsltFreeGlobalVariables, vFp)
+//GO(xsltFreeKeys, 
+//GO(xsltFreeLocale, 
+//GO(xsltFreeNamespaceAliasHashes, 
+GO(xsltFreeRVTs, vFp)
+GO(xsltFreeSecurityPrefs, vFp)
+GO(xsltFreeStackElemList, vFp)
+GO(xsltFreeStyleDocuments, vFp)
+//GO(xsltFreeStylePreComps, 
+GO(xsltFreeStylesheet, vFp)
+//GO(xsltFreeTemplateHashes, 
+GO(xsltFreeTransformContext, vFp)
+//GO(xsltFunctionAvailableFunction, 
+GO(xsltFunctionNodeSet, vFpi)
+//GO(xsltGenerateIdFunction, 
+GO(xsltGetCNsProp, pFpppp)
+GO(xsltGetDebuggerStatus, iFv)
+//GO(xsltGetDefaultSecurityPrefs, 
+GO(xsltGetExtData, pFpp)
+GO(xsltGetExtInfo, pFpp)
+//GO(xsltGetKey, 
+//GO(xsltGetNamespace, 
+GO(xsltGetNsProp, pFppp)
+//GO(xsltGetPlainNamespace, 
+GO(xsltGetProfileInformation, pFp)
+GO(xsltGetQNameURI, pFpp)
+GO(xsltGetQNameURI2, pFppp)
+GO(xsltGetSecurityPrefs, pFpi)
+//GO(xsltGetSpecialNamespace, 
+//GO(xsltGetTemplate, 
+GO(xsltGetUTF8Char, iFpp)
+GO(xsltGetXIncludeDefault, iFv)
+GO(xsltIf, vFpppp)
+GO(xsltInit, vFv)
+GO(xsltInitAllDocKeys, iFp)
+GO(xsltInitCtxtExts, iFp)
+//GO(xsltInitCtxtKey, 
+//GO(xsltInitCtxtKeys, 
+//GOM(xsltInitElemPreComp, vFEpppBB)
+GO(xsltInitGlobals, vFv)
+GO(xsltIsBlank, iFp)
+//GO(xsltKeyFunction, 
+GO(xsltLoadDocument, pFpp)
+GO(xsltLoadStyleDocument, pFpp)
+GO(xsltLoadStylesheetPI, pFp)
+//GO(xsltLocaleStrcmp, 
+GO(xsltLocalVariablePop, vFpii)
+GO(xsltLocalVariablePush, iFppi)
+GO(xsltMessage, vFppp)
+//GO(xsltNamespaceAlias, 
+GO(xsltNeedElemSpaceHandling, iFp)
+GO(xsltNewDocument, pFpp)
+//GOM(xsltNewElemPreComp, pFEppB)
+//GO(xsltNewLocale, 
+GO(xsltNewSecurityPrefs, pFv)
+GO(xsltNewStyleDocument, pFpp)
+GO(xsltNewStylesheet, pFv)
+GO(xsltNewTransformContext, pFpp)
+GO(xsltNextImport, pFp)
+//GO(xsltNormalizeCompSteps, 
+GO(xsltNumber, vFpppp)
+GO(xsltNumberFormat, vFppp)
+GO(xsltParseAnyXSLTElem, iFpp)
+GO(xsltParseGlobalParam, vFpp)
+GO(xsltParseGlobalVariable, vFpp)
+GO(xsltParseSequenceConstructor, vFpp)
+//GO(xsltParseStylesheetAttributeSet, 
+GO(xsltParseStylesheetCallerParam, pFpp)
+GO(xsltParseStylesheetDoc, pFp)
+GO(xsltParseStylesheetFile, pFp)
+GO(xsltParseStylesheetImport, iFpp)
+GO(xsltParseStylesheetImportedDoc, pFpp)
+GO(xsltParseStylesheetInclude, iFpp)
+GO(xsltParseStylesheetOutput, vFpp)
+GO(xsltParseStylesheetParam, vFpp)
+GO(xsltParseStylesheetProcess, pFpp)
+GO(xsltParseStylesheetVariable, vFpp)
+//GO(xsltParseTemplateContent, 
+GO(xsltPointerListAddSize, iFppi)
+GO(xsltPointerListClear, vFp)
+GO(xsltPointerListCreate, pFi)
+GO(xsltPointerListFree, vFp)
+GO(xsltPreComputeExtModuleElement, pFpp)
+GO(xsltPrintErrorContext, vFppp)
+GO(xsltProcessingInstruction, vFpppp)
+GO(xsltProcessOneNode, vFppp)
+GO(xsltProfileStylesheet, pFpppp)
+GO(xsltQuoteOneUserParam, iFppp)
+GO(xsltQuoteUserParams, iFpp)
+GO(xsltRegisterAllElement, vFp)
+GO(xsltRegisterAllExtras, vFv)
+//GO(xsltRegisterAllFunctions, 
+//GOM(xsltRegisterExtElement, iFEpppB)
+//GOM(xsltRegisterExtFunction, iFEpppB)
+//GOM(xsltRegisterExtModule, iFEpBB)
+//GOM(xsltRegisterExtModuleElement, iFEppBB)
+//GOM(xsltRegisterExtModuleFull, iFEpBBBB)
+GOM(xsltRegisterExtModuleFunction, iFEppp)
+//GOM(xsltRegisterExtModuleTopLevel, iFEppB)
+GO(xsltRegisterExtPrefix, iFppp)
+GO(xsltRegisterExtras, vFp)
+GO(xsltRegisterLocalRVT, iFpp)
+GO(xsltRegisterPersistRVT, iFpp)
+GO(xsltRegisterTestModule, vFv)
+GO(xsltRegisterTmpRVT, iFpp)
+GO(xsltReleaseRVT, vFpp)
+//GO(xsltResolveStylesheetAttributeSet, 
+GO(xsltRestoreDocumentNamespaces, iFpp)
+GO(xsltRunStylesheet, iFpppppp)
+GO(xsltRunStylesheetUser, iFpppppppp)
+GO(xsltSaveProfiling, vFpp)
+GO(xsltSaveResultTo, iFppp)
+GO(xsltSaveResultToFd, iFipp)
+GO(xsltSaveResultToFile, iFppp)
+GO(xsltSaveResultToFilename, iFpppi)
+GO(xsltSaveResultToString, iFpppp)
+GO(xsltSecurityAllow, iFppp)
+GO(xsltSecurityForbid, iFppp)
+GO(xsltSetCtxtParseOptions, iFpi)
+GO(xsltSetCtxtSecurityPrefs, iFpp)
+//GOM(xsltSetCtxtSortFunc, vFEpB)
+//GOM(xsltSetDebuggerCallbacks, iFip)
+GO(xsltSetDebuggerStatus, vFi)
+GO(xsltSetDefaultSecurityPrefs, vFp)
+//GOM(xsltSetGenericDebugFunc, vFEpB)
+//GOM(xsltSetGenericErrorFunc, vFEpB)
+GOM(xsltSetLoaderFunc, vFEp)
+//GOM(xsltSetSecurityPrefs, iFEppB)
+//GOM(xsltSetSortFunc, vFEp)
+//GO(MxsltSetTransformErrorFunc, vFEppB)
+GO(xsltSetXIncludeDefault, vFi)
+GO(xsltShutdownCtxtExts, vFp)
+GO(xsltShutdownExts, vFp)
+GO(xsltSort, vFpppp)
+GO(xsltSplitQName, pFppp)
+//GO(xsltStrxfrm, 
+GO(xsltStyleGetExtData, pFpp)
+//GO(xsltStylePreCompute, 
+GO(xsltStyleStylesheetLevelGetExtData, pFpp)
+//GO(xsltSystemPropertyFunction, 
+//GO(xsltTemplateProcess, 
+//GO(xsltTestCompMatchList, 
+GO(xsltText, vFpppp)
+GO(xsltTimestamp, lFv)
+GO(xsltTransformError, vFpppppppppppppppp)  //vaarg
+GO(xsltUninit, vFv)
+//GO(xsltUnparsedEntityURIFunction, 
+GO(xsltUnregisterExtModule, iFp)
+GO(xsltUnregisterExtModuleElement, iFpp)
+GO(xsltUnregisterExtModuleFunction, iFpp)
+GO(xsltUnregisterExtModuleTopLevel, iFpp)
+GO(xsltValueOf, vFpppp)
+GO(xsltVariableLookup, pFppp)
+GO(xsltXPathCompile, pFpp)
+GO(xsltXPathCompileFlags, pFppi)
+GO(xsltXPathFunctionLookup, pFppp)
+GO(xsltXPathGetTransformContext, pFp)
+//GO(xsltXPathVariableLookup, 
\ No newline at end of file