Added wrapped libcups, plus some changes in wrapped libSDL2 and pthread

This commit is contained in:
ptitSeb 2021-03-26 14:42:50 +01:00
parent 86c5dfd664
commit 9f01b2ec0d
10 changed files with 680 additions and 7 deletions

View File

@ -170,6 +170,7 @@ set(WRAPPEDS
"${BOX64_ROOT}/src/wrapped/wrappedldlinux.c"
"${BOX64_ROOT}/src/wrapped/wrappedlibasound.c"
"${BOX64_ROOT}/src/wrapped/wrappedlibc.c"
"${BOX64_ROOT}/src/wrapped/wrappedlibcups.c"
"${BOX64_ROOT}/src/wrapped/wrappedlibdl.c"
"${BOX64_ROOT}/src/wrapped/wrappedlibgl.c"
"${BOX64_ROOT}/src/wrapped/wrappedlibglu.c"

View File

@ -126,7 +126,7 @@ GO("libICE.so.6", libice)
//GO("libtcmalloc_minimal.so.4", tcmallocminimal)
//GO("libmpg123.so.0", mpg123)
GO("libgnutls.so.30", gnutls)
//GO("libcups.so.2", libcups)
GO("libcups.so.2", libcups)
//GO("d3dadapter9.so.1", d3dadapter9)
//GO("libvulkan.so.1", vulkan)
//GO("libvulkan.so", vulkan)

View File

@ -26,6 +26,7 @@
#ifdef DYNAREC
#include "dynablock.h"
#endif
//#define ALIGN_COND
void _pthread_cleanup_push_defer(void* buffer, void* routine, void* arg); // declare hidden functions
void _pthread_cleanup_pop_restore(void* buffer, int exec);
@ -494,6 +495,9 @@ EXPORT int my_pthread_key_create(x64emu_t* emu, void* key, void* dtor)
}
EXPORT int my___pthread_key_create(x64emu_t* emu, void* key, void* dtor) __attribute__((alias("my_pthread_key_create")));
pthread_mutex_t* getAlignedMutex(pthread_mutex_t* m);
#ifdef ALIGN_COND
// phtread_cond_init with null attr seems to only write 1 (NULL) dword on x86, while it's 48 bytes on ARM.
// Not sure why as sizeof(pthread_cond_init) is 48 on both platform... But Neverwinter Night init seems to rely on that
// What about cond that are statically initialized?
@ -553,7 +557,6 @@ static void del_cond(void* cond)
}
pthread_mutex_unlock(&my_context->mutex_thread);
}
pthread_mutex_t* getAlignedMutex(pthread_mutex_t* m);
EXPORT int my_pthread_cond_broadcast(x64emu_t* emu, void* cond)
{
@ -587,6 +590,12 @@ EXPORT int my_pthread_cond_wait(x64emu_t* emu, void* cond, void* mutex)
pthread_cond_t * c = get_cond(cond);
return pthread_cond_wait(c, getAlignedMutex((pthread_mutex_t*)mutex));
}
#else
EXPORT int my_pthread_cond_wait(x64emu_t* emu, pthread_cond_t* cond, void* mutex)
{
return pthread_cond_wait(cond, getAlignedMutex((pthread_mutex_t*)mutex));
}
#endif
//EXPORT int my_pthread_attr_setscope(x64emu_t* emu, void* attr, int scope)
//{
@ -754,7 +763,9 @@ emu_jmpbuf_t* GetJmpBuf()
void init_pthread_helper()
{
InitCancelThread();
#ifdef ALIGN_COND
mapcond = kh_init(mapcond);
#endif
pthread_key_create(&jmpbuf_key, emujmpbuf_destroy);
#ifndef NOALIGN
unaligned_mutex = kh_init(mutex);
@ -765,6 +776,7 @@ void fini_pthread_helper(box64context_t* context)
{
FreeCancelThread(context);
CleanStackSize(context);
#ifdef ALIGN_COND
pthread_cond_t *cond;
kh_foreach_value(mapcond, cond,
pthread_cond_destroy(cond);
@ -772,6 +784,7 @@ void fini_pthread_helper(box64context_t* context)
);
kh_destroy(mapcond, mapcond);
mapcond = NULL;
#endif
#ifndef NOALIGN
pthread_mutex_t *m;
kh_foreach_value(unaligned_mutex, m,

View File

@ -765,6 +765,7 @@
#() iFpiiiii
#() iFpiiipp
#() iFpiippp
#() iFpippip
#() iFpipppp
#() iFpupuui
#() iFppiiuu
@ -781,6 +782,8 @@
#() iFpppipi
#() iFpppipp
#() iFppppii
#() iFppppip
#() iFppppup
#() iFpppppi
#() iFpppppL
#() iFpppppp
@ -868,10 +871,12 @@
#() iFppiipii
#() iFppiipiL
#() iFppipipi
#() iFppippip
#() iFppipppp
#() iFppuipiL
#() iFpppiiii
#() iFpppiiuu
#() iFpppiiup
#() iFpppiipi
#() iFpppiuwu
#() iFppppiii

View File

@ -798,6 +798,7 @@ typedef int32_t (*iFuppppp_t)(uint32_t, void*, void*, void*, void*, void*);
typedef int32_t (*iFpiiiii_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t);
typedef int32_t (*iFpiiipp_t)(void*, int32_t, int32_t, int32_t, void*, void*);
typedef int32_t (*iFpiippp_t)(void*, int32_t, int32_t, void*, void*, void*);
typedef int32_t (*iFpippip_t)(void*, int32_t, void*, void*, int32_t, void*);
typedef int32_t (*iFpipppp_t)(void*, int32_t, void*, void*, void*, void*);
typedef int32_t (*iFpupuui_t)(void*, uint32_t, void*, uint32_t, uint32_t, int32_t);
typedef int32_t (*iFppiiuu_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t);
@ -814,6 +815,8 @@ typedef int32_t (*iFpppiuu_t)(void*, void*, void*, int32_t, uint32_t, uint32_t);
typedef int32_t (*iFpppipi_t)(void*, void*, void*, int32_t, void*, int32_t);
typedef int32_t (*iFpppipp_t)(void*, void*, void*, int32_t, void*, void*);
typedef int32_t (*iFppppii_t)(void*, void*, void*, void*, int32_t, int32_t);
typedef int32_t (*iFppppip_t)(void*, void*, void*, void*, int32_t, void*);
typedef int32_t (*iFppppup_t)(void*, void*, void*, void*, uint32_t, void*);
typedef int32_t (*iFpppppi_t)(void*, void*, void*, void*, void*, int32_t);
typedef int32_t (*iFpppppL_t)(void*, void*, void*, void*, void*, uintptr_t);
typedef int32_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*);
@ -901,10 +904,12 @@ typedef int32_t (*iFppiiuui_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_
typedef int32_t (*iFppiipii_t)(void*, void*, int32_t, int32_t, void*, int32_t, int32_t);
typedef int32_t (*iFppiipiL_t)(void*, void*, int32_t, int32_t, void*, int32_t, uintptr_t);
typedef int32_t (*iFppipipi_t)(void*, void*, int32_t, void*, int32_t, void*, int32_t);
typedef int32_t (*iFppippip_t)(void*, void*, int32_t, void*, void*, int32_t, void*);
typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*);
typedef int32_t (*iFppuipiL_t)(void*, void*, uint32_t, int32_t, void*, int32_t, uintptr_t);
typedef int32_t (*iFpppiiii_t)(void*, void*, void*, int32_t, int32_t, int32_t, int32_t);
typedef int32_t (*iFpppiiuu_t)(void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t);
typedef int32_t (*iFpppiiup_t)(void*, void*, void*, int32_t, int32_t, uint32_t, void*);
typedef int32_t (*iFpppiipi_t)(void*, void*, void*, int32_t, int32_t, void*, int32_t);
typedef int32_t (*iFpppiuwu_t)(void*, void*, void*, int32_t, uint32_t, int16_t, uint32_t);
typedef int32_t (*iFppppiii_t)(void*, void*, void*, void*, int32_t, int32_t, int32_t);
@ -1861,6 +1866,7 @@ void iFuppppp(x64emu_t *emu, uintptr_t fcn) { iFuppppp_t fn = (iFuppppp_t)fcn; R
void iFpiiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiiii_t fn = (iFpiiiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
void iFpiiipp(x64emu_t *emu, uintptr_t fcn) { iFpiiipp_t fn = (iFpiiipp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
void iFpiippp(x64emu_t *emu, uintptr_t fcn) { iFpiippp_t fn = (iFpiippp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
void iFpippip(x64emu_t *emu, uintptr_t fcn) { iFpippip_t fn = (iFpippip_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
void iFpipppp(x64emu_t *emu, uintptr_t fcn) { iFpipppp_t fn = (iFpipppp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
void iFpupuui(x64emu_t *emu, uintptr_t fcn) { iFpupuui_t fn = (iFpupuui_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9); }
void iFppiiuu(x64emu_t *emu, uintptr_t fcn) { iFppiiuu_t fn = (iFppiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
@ -1877,6 +1883,8 @@ void iFpppiuu(x64emu_t *emu, uintptr_t fcn) { iFpppiuu_t fn = (iFpppiuu_t)fcn; R
void iFpppipi(x64emu_t *emu, uintptr_t fcn) { iFpppipi_t fn = (iFpppipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
void iFpppipp(x64emu_t *emu, uintptr_t fcn) { iFpppipp_t fn = (iFpppipp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
void iFppppii(x64emu_t *emu, uintptr_t fcn) { iFppppii_t fn = (iFppppii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
void iFppppip(x64emu_t *emu, uintptr_t fcn) { iFppppip_t fn = (iFppppip_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
void iFppppup(x64emu_t *emu, uintptr_t fcn) { iFppppup_t fn = (iFppppup_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
void iFpppppi(x64emu_t *emu, uintptr_t fcn) { iFpppppi_t fn = (iFpppppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); }
void iFpppppL(x64emu_t *emu, uintptr_t fcn) { iFpppppL_t fn = (iFpppppL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); }
void iFpppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppp_t fn = (iFpppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
@ -1964,10 +1972,12 @@ void iFppiiuui(x64emu_t *emu, uintptr_t fcn) { iFppiiuui_t fn = (iFppiiuui_t)fcn
void iFppiipii(x64emu_t *emu, uintptr_t fcn) { iFppiipii_t fn = (iFppiipii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
void iFppiipiL(x64emu_t *emu, uintptr_t fcn) { iFppiipiL_t fn = (iFppiipiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(uintptr_t*)(R_RSP + 8)); }
void iFppipipi(x64emu_t *emu, uintptr_t fcn) { iFppipipi_t fn = (iFppipipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
void iFppippip(x64emu_t *emu, uintptr_t fcn) { iFppippip_t fn = (iFppippip_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
void iFppipppp(x64emu_t *emu, uintptr_t fcn) { iFppipppp_t fn = (iFppipppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
void iFppuipiL(x64emu_t *emu, uintptr_t fcn) { iFppuipiL_t fn = (iFppuipiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(uintptr_t*)(R_RSP + 8)); }
void iFpppiiii(x64emu_t *emu, uintptr_t fcn) { iFpppiiii_t fn = (iFpppiiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
void iFpppiiuu(x64emu_t *emu, uintptr_t fcn) { iFpppiiuu_t fn = (iFpppiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
void iFpppiiup(x64emu_t *emu, uintptr_t fcn) { iFpppiiup_t fn = (iFpppiiup_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); }
void iFpppiipi(x64emu_t *emu, uintptr_t fcn) { iFpppiipi_t fn = (iFpppiipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
void iFpppiuwu(x64emu_t *emu, uintptr_t fcn) { iFpppiuwu_t fn = (iFpppiuwu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (int16_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
void iFppppiii(x64emu_t *emu, uintptr_t fcn) { iFppppiii_t fn = (iFppppiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }

View File

@ -795,6 +795,7 @@ void iFuppppp(x64emu_t *emu, uintptr_t fnc);
void iFpiiiii(x64emu_t *emu, uintptr_t fnc);
void iFpiiipp(x64emu_t *emu, uintptr_t fnc);
void iFpiippp(x64emu_t *emu, uintptr_t fnc);
void iFpippip(x64emu_t *emu, uintptr_t fnc);
void iFpipppp(x64emu_t *emu, uintptr_t fnc);
void iFpupuui(x64emu_t *emu, uintptr_t fnc);
void iFppiiuu(x64emu_t *emu, uintptr_t fnc);
@ -811,6 +812,8 @@ void iFpppiuu(x64emu_t *emu, uintptr_t fnc);
void iFpppipi(x64emu_t *emu, uintptr_t fnc);
void iFpppipp(x64emu_t *emu, uintptr_t fnc);
void iFppppii(x64emu_t *emu, uintptr_t fnc);
void iFppppip(x64emu_t *emu, uintptr_t fnc);
void iFppppup(x64emu_t *emu, uintptr_t fnc);
void iFpppppi(x64emu_t *emu, uintptr_t fnc);
void iFpppppL(x64emu_t *emu, uintptr_t fnc);
void iFpppppp(x64emu_t *emu, uintptr_t fnc);
@ -898,10 +901,12 @@ void iFppiiuui(x64emu_t *emu, uintptr_t fnc);
void iFppiipii(x64emu_t *emu, uintptr_t fnc);
void iFppiipiL(x64emu_t *emu, uintptr_t fnc);
void iFppipipi(x64emu_t *emu, uintptr_t fnc);
void iFppippip(x64emu_t *emu, uintptr_t fnc);
void iFppipppp(x64emu_t *emu, uintptr_t fnc);
void iFppuipiL(x64emu_t *emu, uintptr_t fnc);
void iFpppiiii(x64emu_t *emu, uintptr_t fnc);
void iFpppiiuu(x64emu_t *emu, uintptr_t fnc);
void iFpppiiup(x64emu_t *emu, uintptr_t fnc);
void iFpppiipi(x64emu_t *emu, uintptr_t fnc);
void iFpppiuwu(x64emu_t *emu, uintptr_t fnc);
void iFppppiii(x64emu_t *emu, uintptr_t fnc);

59
src/wrapped/wrappedlibcups.c Executable file
View File

@ -0,0 +1,59 @@
#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 "callback.h"
#include "librarian.h"
#include "box64context.h"
#include "emu/x64emu_private.h"
#include "myalign.h"
const char* libcupsName = "libcups.so.2";
#define LIBNAME libcups
#if 0
#define SUPER()
GO(BZ2_bzCompressInit, iFpiii_t)
typedef struct libcups_my_s {
// functions
#define GO(A, B) B A;
SUPER()
#undef GO
} libcups_my_t;
void* getCupsMy(library_t* lib)
{
libcups_my_t* my = (libcups_my_t*)calloc(1, sizeof(libcups_my_t));
#define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
SUPER()
#undef GO
return my;
}
#undef SUPER
void freeCupsMy(void* lib)
{
libcups_my_t *my = (libcups_my_t *)lib;
}
#define CUSTOM_INIT \
lib->priv.w.p2 = getCupsMy(lib);
#define CUSTOM_FINI \
freeCupsMy(lib->priv.w.p2); \
free(lib->priv.w.p2);
#endif
#include "wrappedlib_init.h"

View File

@ -0,0 +1,568 @@
#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
#error meh!
#endif
//GO(cupsAddDest,
//GO(cupsAddIntegerOption,
GO(cupsAddOption, iFppip)
//GO(cupsAdminCreateWindowsPPD,
//GO(cupsAdminExportSamba,
//GO(cupsAdminGetServerSettings,
//GO(cupsAdminSetServerSettings,
//GO(cupsArrayAdd,
//GO(_cupsArrayAddStrings,
//GO(cupsArrayClear,
//GO(cupsArrayCount,
//GO(cupsArrayCurrent,
//GO(cupsArrayDelete,
//GO(cupsArrayDup,
//GO(cupsArrayFind,
//GO(cupsArrayFirst,
//GO(cupsArrayGetIndex,
//GO(cupsArrayGetInsert,
//GO(cupsArrayIndex,
//GO(cupsArrayInsert,
//GO(cupsArrayLast,
//GO(cupsArrayNew,
//GO(cupsArrayNew2,
//GO(cupsArrayNew3,
//GO(_cupsArrayNewStrings,
//GO(cupsArrayNext,
//GO(cupsArrayPrev,
//GO(cupsArrayRemove,
//GO(cupsArrayRestore,
//GO(cupsArraySave,
//GO(cupsArrayUserData,
//GO(cupsBackChannelRead,
//GO(cupsBackChannelWrite,
//GO(cupsBackendDeviceURI,
//GO(cupsBackendReport,
//GO(_cupsBufferGet,
//GO(_cupsBufferRelease,
//GO(cupsCancelDestJob,
//GO(cupsCancelJob,
//GO(cupsCancelJob2,
//GO(_cupsCharmapFlush,
//GO(cupsCharsetToUTF8,
//GO(cupsCheckDestSupported,
//GO(cupsCloseDestJob,
//GO(_cupsCondBroadcast,
//GO(_cupsCondInit,
//GO(_cupsCondWait,
//GO(_cupsConnect,
//GO(cupsConnectDest,
//GO(_cupsConvertOptions,
//GO(cupsCopyDest,
//GO(cupsCopyDestConflicts,
//GO(cupsCopyDestInfo,
//GO(_cupsCreateDest,
//GO(cupsCreateDestJob,
//GO(cupsCreateJob,
//DATA(_cups_debug_fd,
//DATA(_cups_debug_level,
//GO(cupsDirClose,
//GO(cupsDirOpen,
//GO(cupsDirRead,
//GO(cupsDirRewind,
//GO(cupsDoAuthentication,
//GO(cupsDoFileRequest,
//GO(cupsDoIORequest,
//GO(cupsDoRequest,
//GO(cupsEncodeOptions,
//GO(cupsEncodeOptions2,
//GO(_cupsEncodingName,
//GO(cupsEncryption,
//GO(cupsEnumDests,
//GO(_cupsFileCheck,
//GO(_cupsFileCheckFilter,
//GO(cupsFileClose,
//GO(cupsFileCompression,
//GO(cupsFileEOF,
//GO(cupsFileFind,
//GO(cupsFileFlush,
//GO(cupsFileGetChar,
//GO(cupsFileGetConf,
//GO(cupsFileGetLine,
//GO(cupsFileGets,
//GO(cupsFileLock,
//GO(cupsFileNumber,
//GO(cupsFileOpen,
//GO(cupsFileOpenFd,
//GO(_cupsFilePeekAhead,
//GO(cupsFilePeekChar,
//GO(cupsFilePrintf,
//GO(cupsFilePutChar,
//GO(cupsFilePutConf,
//GO(cupsFilePuts,
//GO(cupsFileRead,
//GO(cupsFileRewind,
//GO(cupsFileSeek,
//GO(cupsFileStderr,
//GO(cupsFileStdin,
//GO(cupsFileStdout,
//GO(cupsFileTell,
//GO(cupsFileUnlock,
//GO(cupsFileWrite,
//GO(cupsFindDestDefault,
//GO(cupsFindDestReady,
//GO(cupsFindDestSupported,
//GO(cupsFinishDestDocument,
//GO(cupsFinishDocument,
GO(cupsFreeDestInfo, vFp)
GO(cupsFreeDests, vFip)
GO(cupsFreeJobs, vFip)
GO(cupsFreeOptions, vFip)
//GO(_cupsGet1284Values,
GO(cupsGetClasses, iFp)
//GO(cupsGetConflicts,
GO(cupsGetDefault, pFv)
GO(cupsGetDefault2, pFp)
GO(cupsGetDest, pFppip)
//GO(cupsGetDestMediaByIndex,
GO(cupsGetDestMediaByName, iFppppup)
GO(cupsGetDestMediaBySize, iFpppiiup)
//GO(cupsGetDestMediaCount,
//GO(cupsGetDestMediaDefault,
//GO(_cupsGetDestResource,
//GO(_cupsGetDests,
GO(cupsGetDests, iFp)
GO(cupsGetDests2, iFpp)
//GO(cupsGetDestWithURI,
//GO(cupsGetDevices,
//GO(cupsGetFd,
//GO(cupsGetFile,
//GO(cupsGetIntegerOption,
GO(cupsGetJobs, iFppii)
GO(cupsGetJobs2, iFpppii)
GO(cupsGetNamedDest, pFppp)
GO(cupsGetOption, pFpip)
//GO(_cupsGetPassword,
GO(cupsGetPassword, pFp)
GO(cupsGetPassword2, pFpppp)
GO(cupsGetPPD, pFp)
GO(cupsGetPPD2, pFpp)
GO(cupsGetPPD3, iFppppL)
GO(cupsGetPrinters, iFp)
//GO(cupsGetResponse,
GO(cupsGetServerPPD, pFpp)
//GO(_cupsGlobalLock,
//GO(_cupsGlobals,
//GO(_cupsGlobalUnlock,
//GO(_cupsGSSServiceName,
//GO(cupsHashData,
//GO(cupsHashString,
GO(cupsLangDefault, pFv)
GO(cupsLangEncoding, pFp)
GO(cupsLangFlush, vFv)
GO(cupsLangFree, vFp)
GO(cupsLangGet, pFp)
//GO(_cupsLangPrintError,
//GO(_cupsLangPrintf,
//GO(_cupsLangPrintFilter,
//GO(_cupsLangPuts,
//GO(_cupsLangString,
GO(cupsLastError, iFv)
GO(cupsLastErrorString, pFv)
//GO(cupsLocalizeDestMedia,
GO(cupsLocalizeDestOption, pFpppp)
GO(cupsLocalizeDestValue, pFppppp)
//GO(cupsMakeServerCredentials,
//GO(cupsMarkOptions,
//GO(_cupsMessageFree,
//GO(_cupsMessageLoad,
//GO(_cupsMessageLookup,
//GO(_cupsMessageNew,
//GO(_cupsMutexInit,
//GO(_cupsMutexLock,
//GO(_cupsMutexUnlock,
//GO(_cupsNextDelay,
//GO(cupsNotifySubject,
GO(cupsNotifyText, pFpp)
GO(cupsParseOptions, iFpip)
GO(cupsPrintFile, iFpppip)
GO(cupsPrintFile2, iFppppip)
GO(cupsPrintFiles, iFpippip)
GO(cupsPrintFiles2, iFppippip)
//GO(cupsPutFd,
//GO(cupsPutFile,
//GO(cupsReadResponseData,
GO(cupsRemoveDest, iFppip)
GO(cupsRemoveOption, iFpip)
//GO(cupsResolveConflicts,
//GO(_cupsRWInit,
//GO(_cupsRWLockRead,
//GO(_cupsRWLockWrite,
//GO(_cupsRWUnlock,
//GO(_cups_safe_vsnprintf,
//GO(cupsSendRequest,
GO(cupsServer, pFv)
//GO(cupsSetClientCertCB,
//GO(cupsSetCredentials,
GO(cupsSetDefaultDest, vFppip)
//GO(_cupsSetDefaults,
//GO(cupsSetDests,
//GO(cupsSetDests2,
//GO(cupsSetEncryption,
//GO(_cupsSetError,
//GO(_cupsSetHTTPError,
//GO(_cupsSetLocale,
//GO(_cupsSetNegotiateAuthString,
//GO(cupsSetPasswordCB,
//GO(cupsSetPasswordCB2,
//GO(cupsSetServer,
//GO(cupsSetServerCertCB,
//GO(cupsSetServerCredentials,
//GO(cupsSetUser,
//GO(cupsSetUserAgent,
//GO(cupsSideChannelDoRequest,
//GO(cupsSideChannelRead,
//GO(cupsSideChannelSNMPGet,
//GO(cupsSideChannelSNMPWalk,
//GO(cupsSideChannelWrite,
//GO(_cupsSNMPClose,
//GO(_cupsSNMPCopyOID,
//GO(_cupsSNMPDefaultCommunity,
//GO(_cupsSNMPIsOID,
//GO(_cupsSNMPIsOIDPrefixed,
//GO(_cupsSNMPOIDToString,
//GO(_cupsSNMPOpen,
//GO(_cupsSNMPRead,
//GO(_cupsSNMPSetDebug,
//GO(_cupsSNMPStringToOID,
//GO(_cupsSNMPWalk,
//GO(_cupsSNMPWrite,
//GO(cupsStartDestDocument,
//GO(cupsStartDocument,
//GO(_cupsStrAlloc,
//GO(_cups_strcasecmp,
//GO(_cups_strcpy,
//GO(_cupsStrDate,
//GO(_cupsStrFlush,
//GO(_cupsStrFormatd,
//GO(_cupsStrFree,
//GO(_cups_strlcat,
//GO(_cups_strlcpy,
//GO(_cups_strncasecmp,
//GO(_cupsStrRetain,
//GO(_cupsStrScand,
//GO(_cupsStrStatistics,
//GO(cupsTempFd,
//GO(cupsTempFile,
//GO(cupsTempFile2,
//GO(_cupsThreadCancel,
//GO(_cupsThreadCreate,
//GO(_cupsThreadDetach,
//GO(_cupsThreadWait,
//GO(cupsUser,
//GO(cupsUserAgent,
//GO(_cupsUserDefault,
//GO(cupsUTF32ToUTF8,
//GO(cupsUTF8ToCharset,
//GO(cupsUTF8ToUTF32,
//GO(cupsWriteRequestData,
//GO(httpAcceptConnection,
//GO(httpAddCredential,
//GO(httpAddrAny,
//GO(httpAddrClose,
//GO(httpAddrConnect,
//GO(httpAddrConnect2,
//GO(httpAddrCopyList,
//GO(httpAddrEqual,
//GO(httpAddrFamily,
//GO(httpAddrFreeList,
//GO(httpAddrGetList,
//GO(httpAddrLength,
//GO(httpAddrListen,
//GO(httpAddrLocalhost,
//GO(httpAddrLookup,
//GO(httpAddrPort,
//GO(_httpAddrSetPort,
//GO(httpAddrString,
//GO(httpAssembleURI,
//GO(httpAssembleURIf,
//GO(httpAssembleUUID,
//GO(httpBlocking,
//GO(httpCheck,
//GO(httpClearCookie,
//GO(httpClearFields,
//GO(httpClose,
//GO(httpCompareCredentials,
//GO(httpConnect,
//GO(httpConnect2,
//GO(httpConnectEncrypt,
//GO(httpCopyCredentials,
//GO(_httpCreateCredentials,
//GO(httpCredentialsAreValidForName,
//GO(httpCredentialsGetExpiration,
//GO(httpCredentialsGetTrust,
//GO(httpCredentialsString,
//GO(httpDecode64,
//GO(httpDecode64_2,
//GO(_httpDecodeURI,
//GO(httpDelete,
//GO(_httpDisconnect,
//GO(httpEncode64,
//GO(httpEncode64_2,
//GO(_httpEncodeURI,
//GO(httpEncryption,
//GO(httpError,
//GO(httpFieldValue,
//GO(httpFlush,
//GO(httpFlushWrite,
//GO(_httpFreeCredentials,
//GO(httpFreeCredentials,
//GO(httpGet,
//GO(httpGetActivity,
//GO(httpGetAddress,
//GO(httpGetAuthString,
//GO(httpGetBlocking,
//GO(httpGetContentEncoding,
//GO(httpGetCookie,
//GO(httpGetDateString,
//GO(httpGetDateString2,
//GO(httpGetDateTime,
//GO(httpGetEncryption,
//GO(httpGetExpect,
//GO(httpGetFd,
//GO(httpGetField,
//GO(httpGetHostByName,
//GO(httpGetHostname,
//GO(httpGetKeepAlive,
//GO(httpGetLength,
//GO(httpGetLength2,
//GO(httpGetPending,
//GO(httpGetReady,
//GO(httpGetRemaining,
//GO(httpGets,
//GO(httpGetState,
//GO(httpGetStatus,
//GO(httpGetSubField,
//GO(httpGetSubField2,
//GO(httpGetVersion,
//GO(httpHead,
//GO(httpInitialize,
//GO(httpIsChunked,
//GO(httpIsEncrypted,
//GO(httpLoadCredentials,
//GO(httpMD5,
//GO(httpMD5Final,
//GO(httpMD5String,
//GO(httpOptions,
//GO(httpPeek,
//GO(httpPost,
//GO(httpPrintf,
//GO(httpPut,
//GO(httpRead,
//GO(httpRead2,
//GO(httpReadRequest,
//GO(httpReconnect,
//GO(httpReconnect2,
//GO(httpResolveHostname,
//GO(_httpResolveURI,
//GO(httpSaveCredentials,
//GO(httpSeparate,
//GO(httpSeparate2,
//GO(httpSeparateURI,
//GO(httpSetAuthString,
//GO(httpSetCookie,
//GO(httpSetCredentials,
//GO(httpSetDefaultField,
//GO(_httpSetDigestAuthString,
//GO(httpSetExpect,
//GO(httpSetField,
//GO(httpSetKeepAlive,
//GO(httpSetLength,
//GO(httpSetTimeout,
//GO(httpShutdown,
//GO(httpStateString,
//GO(_httpStatus,
//GO(httpStatus,
//GO(_httpTLSInitialize,
//GO(_httpTLSPending,
//GO(_httpTLSRead,
//GO(_httpTLSSetCredentials,
//GO(_httpTLSSetOptions,
//GO(_httpTLSStart,
//GO(_httpTLSStop,
//GO(_httpTLSWrite,
//GO(httpTrace,
//GO(_httpUpdate,
//GO(httpUpdate,
//GO(httpURIStatusString,
//GO(_httpWait,
//GO(httpWait,
//GO(httpWrite,
//GO(httpWrite2,
//GO(httpWriteResponse,
//GO(ippAddBoolean,
//GO(ippAddBooleans,
//GO(ippAddCollection,
//GO(ippAddCollections,
//GO(ippAddDate,
//GO(ippAddInteger,
//GO(ippAddIntegers,
//GO(ippAddOctetString,
//GO(ippAddOutOfBand,
//GO(ippAddRange,
//GO(ippAddRanges,
//GO(ippAddResolution,
//GO(ippAddResolutions,
//GO(ippAddSeparator,
//GO(ippAddString,
//GO(ippAddStringf,
//GO(ippAddStringfv,
//GO(ippAddStrings,
//GO(ippAttributeString,
//GO(ippContainsInteger,
//GO(ippContainsString,
//GO(ippCopyAttribute,
//GO(ippCopyAttributes,
//GO(ippCreateRequestedArray,
//GO(ippDateToTime,
//GO(ippDelete,
//GO(ippDeleteAttribute,
//GO(ippDeleteValues,
//GO(ippEnumString,
//GO(ippEnumValue,
//GO(ippErrorString,
//GO(ippErrorValue,
//GO(ippFindAttribute,
//GO(ippFindNextAttribute,
//GO(_ippFindOption,
//GO(ippFirstAttribute,
//GO(ippGetBoolean,
//GO(ippGetCollection,
//GO(ippGetCount,
//GO(ippGetDate,
//GO(ippGetGroupTag,
//GO(ippGetInteger,
//GO(ippGetName,
//GO(ippGetOctetString,
//GO(ippGetOperation,
//GO(ippGetRange,
//GO(ippGetRequestId,
//GO(ippGetResolution,
//GO(ippGetState,
//GO(ippGetStatusCode,
//GO(ippGetString,
//GO(ippGetValueTag,
//GO(ippGetVersion,
//GO(ippLength,
//GO(ippNew,
//GO(ippNewRequest,
//GO(ippNewResponse,
//GO(ippNextAttribute,
//GO(ippOpString,
//GO(ippOpValue,
//GO(ippPort,
//GO(ippRead,
//GO(ippReadFile,
//GO(ippReadIO,
//GO(ippSetBoolean,
//GO(ippSetCollection,
//GO(ippSetDate,
//GO(ippSetGroupTag,
//GO(ippSetInteger,
//GO(ippSetName,
//GO(ippSetOctetString,
//GO(ippSetOperation,
//GO(ippSetPort,
//GO(ippSetRange,
//GO(ippSetRequestId,
//GO(ippSetResolution,
//GO(ippSetState,
//GO(ippSetStatusCode,
//GO(ippSetString,
//GO(ippSetStringf,
//GO(ippSetStringfv,
//GO(ippSetValueTag,
//GO(ippSetVersion,
//GO(ippStateString,
//GO(ippTagString,
//GO(ippTagValue,
//GO(ippTimeToDate,
//GO(ippValidateAttribute,
//GO(ippValidateAttributes,
//GO(ippWrite,
//GO(ippWriteFile,
//GO(ippWriteIO,
//GO(_ppdCacheCreateWithFile,
//GO(_ppdCacheCreateWithPPD,
//GO(_ppdCacheDestroy,
//GO(_ppdCacheGetBin,
//GO(_ppdCacheGetFinishingOptions,
//GO(_ppdCacheGetFinishingValues,
//GO(_ppdCacheGetInputSlot,
//GO(_ppdCacheGetMediaType,
//GO(_ppdCacheGetOutputBin,
//GO(_ppdCacheGetPageSize,
//GO(_ppdCacheGetSize,
//GO(_ppdCacheGetSource,
//GO(_ppdCacheGetType,
//GO(_ppdCacheWriteFile,
//GO(ppdClose,
//GO(ppdCollect,
//GO(ppdCollect2,
//GO(ppdConflicts,
//GO(_ppdCreateFromIPP,
//GO(ppdEmit,
//GO(ppdEmitAfterOrder,
//GO(ppdEmitFd,
//GO(ppdEmitJCL,
//GO(ppdEmitJCLEnd,
//GO(ppdEmitString,
//GO(ppdErrorString,
//GO(ppdFindAttr,
//GO(ppdFindChoice,
//GO(ppdFindCustomOption,
//GO(ppdFindCustomParam,
//GO(ppdFindMarkedChoice,
//GO(ppdFindNextAttr,
//GO(ppdFindOption,
//GO(ppdFirstCustomParam,
//GO(ppdFirstOption,
//GO(_ppdFreeLanguages,
//GO(_ppdGetEncoding,
//GO(_ppdGetLanguages,
//GO(_ppdGlobals,
//GO(_ppdHashName,
//GO(ppdInstallableConflict,
//GO(ppdIsMarked,
//GO(ppdLastError,
//GO(ppdLocalize,
//GO(ppdLocalizeAttr,
//GO(_ppdLocalizedAttr,
//GO(ppdLocalizeIPPReason,
//GO(ppdLocalizeMarkerName,
//GO(ppdMarkDefaults,
//GO(ppdMarkOption,
//GO(ppdNextCustomParam,
//GO(ppdNextOption,
//GO(_ppdNormalizeMakeAndModel,
//GO(_ppdOpen,
//GO(ppdOpen,
//GO(ppdOpen2,
//GO(ppdOpenFd,
//GO(_ppdOpenFile,
//GO(ppdOpenFile,
//GO(ppdPageLength,
//GO(ppdPageSize,
//GO(ppdPageSizeLimits,
//GO(ppdPageWidth,
//GO(_ppdParseOptions,
//GO(ppdSetConformance,
//GO(pwgFormatSizeName,
//GO(pwgInitSize,
//GO(_pwgInputSlotForSource,
//GO(pwgMediaForLegacy,
//GO(pwgMediaForPPD,
//GO(pwgMediaForPWG,
//GO(pwgMediaForSize,
//GO(_pwgMediaNearSize,
//GO(_pwgMediaTable,
//GO(_pwgMediaTypeForType,
//GO(_pwgPageSizeForMedia,

View File

@ -58,11 +58,16 @@ GO(pthread_condattr_getpshared, iFpp)
GO(pthread_condattr_init, iFp)
GO(pthread_condattr_setclock, iFpp)
GO(pthread_condattr_setpshared, iFpi)
GOM(pthread_cond_broadcast, iFEp)
GOM(pthread_cond_destroy, iFEp)
GOM(pthread_cond_init, iFEpp)
GOM(pthread_cond_signal, iFEp)
GOM(pthread_cond_timedwait, iFEppp)
//GOM(pthread_cond_broadcast, iFEp)
//GOM(pthread_cond_destroy, iFEp)
//GOM(pthread_cond_init, iFEpp)
//GOM(pthread_cond_signal, iFEp)
//GOM(pthread_cond_timedwait, iFEppp)
GO(pthread_cond_broadcast, iFp)
GO(pthread_cond_destroy, iFp)
GO(pthread_cond_init, iFpp)
GO(pthread_cond_signal, iFp)
GO(pthread_cond_timedwait, iFppp)
GOM(pthread_cond_wait, iFEpp)
GOM(pthread_create, iFEpppp)
GO(pthread_detach, iFL)

View File

@ -137,8 +137,10 @@ GO(SDL_GameControllerGetJoystick, pFp)
GO(SDL_GameControllerGetPlayerIndex, iFp)
GO(SDL_GameControllerGetProduct, WFp)
GO(SDL_GameControllerGetProductVersion, WFp)
GO(SDL_GameControllerGetSerial, pFp)
GO(SDL_GameControllerGetStringForAxis, pFp)
GO(SDL_GameControllerGetStringForButton, pFu)
GO(SDL_GameControllerGetType, iFp)
GO(SDL_GameControllerGetVendor, WFp)
GO(SDL_GameControllerMapping, pFp)
GO(SDL_GameControllerMappingForDeviceIndex, pFi)
@ -149,6 +151,11 @@ GO(SDL_GameControllerNameForIndex, pFi)
GO(SDL_GameControllerNumMappings, iFv)
GO(SDL_GameControllerOpen, pFi)
GO(SDL_GameControllerRumble, iFpWWu)
GO(SDL_GameControllerRumbleTriggers, iFpWWu)
GO(SDL_GameControllerSetLED, iFpCCC)
GO(SDL_GameControllerSetPlayerIndex, vFpi)
GO(SDL_GameControllerSetSensorEnabled, iFpii)
GO(SDL_GameControllerTypeForIndex, iFi)
GO(SDL_GameControllerUpdate, vFv)
// SDL_GetAssertionHandler
GO(SDL_GetAssertionReport, pFv)