22 #include "../../SDL_internal.h"
24 #if SDL_VIDEO_DRIVER_KMSDRM
26 #define DEBUG_DYNAMIC_KMSDRM_LEGACY 0
30 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC
41 #ifndef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC
42 #define SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC NULL
44 #ifndef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM
45 #define SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM NULL
48 static kmsdrmdynlib kmsdrmlibs[] = {
49 {
NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM},
50 {
NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC}
54 KMSDRM_LEGACY_GetSym(
const char *fnname,
int *pHasModule)
59 if (kmsdrmlibs[
i].lib !=
NULL) {
66 #if DEBUG_DYNAMIC_KMSDRM_LEGACY
68 SDL_Log(
"KMSDRM_LEGACY: Found '%s' in %s (%p)\n", fnname, kmsdrmlibs[
i].libname, fn);
70 SDL_Log(
"KMSDRM_LEGACY: Symbol '%s' NOT FOUND!\n", fnname);
82 #define SDL_KMSDRM_LEGACY_MODULE(modname) int SDL_KMSDRM_LEGACY_HAVE_##modname = 0;
83 #define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) SDL_DYNKMSDRM_LEGACYFN_##fn KMSDRM_LEGACY_##fn = NULL;
84 #define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) SDL_DYNKMSDRM_LEGACYCONST_##name KMSDRM_LEGACY_##name = NULL;
87 static int kmsdrm_load_refcount = 0;
93 if (kmsdrm_load_refcount > 0) {
94 if (--kmsdrm_load_refcount == 0) {
95 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC
100 #define SDL_KMSDRM_LEGACY_MODULE(modname) SDL_KMSDRM_LEGACY_HAVE_##modname = 0;
101 #define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) KMSDRM_LEGACY_##fn = NULL;
102 #define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) KMSDRM_LEGACY_##name = NULL;
106 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC
108 if (kmsdrmlibs[
i].lib !=
NULL) {
110 kmsdrmlibs[
i].lib =
NULL;
125 if (kmsdrm_load_refcount++ == 0) {
126 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC
130 if (kmsdrmlibs[
i].libname !=
NULL) {
135 #define SDL_KMSDRM_LEGACY_MODULE(modname) SDL_KMSDRM_LEGACY_HAVE_##modname = 1;
138 #define SDL_KMSDRM_LEGACY_MODULE(modname) thismod = &SDL_KMSDRM_LEGACY_HAVE_##modname;
139 #define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) KMSDRM_LEGACY_##fn = (SDL_DYNKMSDRM_LEGACYFN_##fn) KMSDRM_LEGACY_GetSym(#fn,thismod);
140 #define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) KMSDRM_LEGACY_##name = *(SDL_DYNKMSDRM_LEGACYCONST_##name*) KMSDRM_LEGACY_GetSym(#name,thismod);
143 if ((SDL_KMSDRM_LEGACY_HAVE_LIBDRM) && (SDL_KMSDRM_LEGACY_HAVE_GBM)) {
154 #define SDL_KMSDRM_LEGACY_MODULE(modname) SDL_KMSDRM_LEGACY_HAVE_##modname = 1;
155 #define SDL_KMSDRM_LEGACY_SYM(rc,fn,params) KMSDRM_LEGACY_##fn = fn;
156 #define SDL_KMSDRM_LEGACY_SYM_CONST(type,name) KMSDRM_LEGACY_##name = name;
void SDL_KMSDRM_LEGACY_UnloadSymbols(void)
int SDL_KMSDRM_LEGACY_LoadSymbols(void)
void * SDL_LoadFunction(void *handle, const char *name)
#define SDL_TABLESIZE(table)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)