mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-08 21:00:19 +02:00
63 lines
2.6 KiB
C++
63 lines
2.6 KiB
C++
/*
|
|
$info$
|
|
tags: thunklibs|X11
|
|
desc: Handles callbacks and varargs
|
|
$end_info$
|
|
*/
|
|
|
|
#include <cstdlib>
|
|
#include <stdio.h>
|
|
|
|
#include <X11/Xlib.h>
|
|
#include <X11/Xutil.h>
|
|
#include <X11/Xresource.h>
|
|
#include "common/Host.h"
|
|
#include <dlfcn.h>
|
|
|
|
#include "ldr_ptrs.inl"
|
|
|
|
_XIC *fexfn_impl_libX11_XCreateIC_internal(XIM a_0, size_t count, unsigned long *list) {
|
|
switch(count) {
|
|
case 0: return fexldr_ptr_libX11_XCreateIC(a_0, nullptr); break;
|
|
case 1: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], nullptr); break;
|
|
case 2: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], nullptr); break;
|
|
case 3: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], nullptr); break;
|
|
case 4: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], nullptr); break;
|
|
case 5: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break;
|
|
case 6: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break;
|
|
case 7: return fexldr_ptr_libX11_XCreateIC(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break;
|
|
default:
|
|
fprintf(stderr, "XCreateIC_internal FAILURE\n");
|
|
return nullptr;
|
|
}
|
|
}
|
|
|
|
static char ErrorReply[] = "FEX: Unable to match arg count";
|
|
|
|
char* fexfn_impl_libX11_XGetICValues_internal(XIC a_0, size_t count, unsigned long *list) {
|
|
switch(count) {
|
|
case 0: return fexldr_ptr_libX11_XGetICValues(a_0, nullptr); break;
|
|
case 1: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], nullptr); break;
|
|
case 2: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], nullptr); break;
|
|
case 3: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], nullptr); break;
|
|
case 4: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], nullptr); break;
|
|
case 5: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], nullptr); break;
|
|
case 6: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], nullptr); break;
|
|
case 7: return fexldr_ptr_libX11_XGetICValues(a_0, list[0], list[1], list[2], list[3], list[4], list[5], list[6], nullptr); break;
|
|
default:
|
|
fprintf(stderr, "XCreateIC_internal FAILURE\n");
|
|
return ErrorReply;
|
|
}
|
|
}
|
|
|
|
#include "function_unpacks.inl"
|
|
|
|
static ExportEntry exports[] = {
|
|
#include "tab_function_unpacks.inl"
|
|
{ nullptr, nullptr }
|
|
};
|
|
|
|
#include "ldr.inl"
|
|
|
|
EXPORTS(libX11)
|