22 #include "../../SDL_internal.h" 24 #if SDL_VIDEO_DRIVER_KMSDRM 26 #define DEBUG_DYNAMIC_KMSDRM 0 30 #if DEBUG_DYNAMIC_KMSDRM 34 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC 45 #ifndef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC 46 #define SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC NULL 48 #ifndef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM 49 #define SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM NULL 52 static kmsdrmdynlib kmsdrmlibs[] = {
53 {
NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC},
54 {
NULL, SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM}
58 KMSDRM_GetSym(
const char *fnname,
int *pHasModule)
63 if (kmsdrmlibs[i].lib !=
NULL) {
70 #if DEBUG_DYNAMIC_KMSDRM 72 SDL_Log(
"KMSDRM: Found '%s' in %s (%p)\n", fnname, kmsdrmlibs[i].libname, fn);
74 SDL_Log(
"KMSDRM: Symbol '%s' NOT FOUND!\n", fnname);
86 #define SDL_KMSDRM_MODULE(modname) int SDL_KMSDRM_HAVE_##modname = 0; 87 #define SDL_KMSDRM_SYM(rc,fn,params) SDL_DYNKMSDRMFN_##fn KMSDRM_##fn = NULL; 88 #define SDL_KMSDRM_SYM_CONST(type,name) SDL_DYNKMSDRMCONST_##name KMSDRM_##name = NULL; 91 static int kmsdrm_load_refcount = 0;
97 if (kmsdrm_load_refcount > 0) {
98 if (--kmsdrm_load_refcount == 0) {
99 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC 104 #define SDL_KMSDRM_MODULE(modname) SDL_KMSDRM_HAVE_##modname = 0; 105 #define SDL_KMSDRM_SYM(rc,fn,params) KMSDRM_##fn = NULL; 106 #define SDL_KMSDRM_SYM_CONST(type,name) KMSDRM_##name = NULL; 110 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC 112 if (kmsdrmlibs[i].lib !=
NULL) {
114 kmsdrmlibs[
i].lib =
NULL;
129 if (kmsdrm_load_refcount++ == 0) {
130 #ifdef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC 134 if (kmsdrmlibs[i].libname !=
NULL) {
139 #define SDL_KMSDRM_MODULE(modname) SDL_KMSDRM_HAVE_##modname = 1; 142 #define SDL_KMSDRM_MODULE(modname) thismod = &SDL_KMSDRM_HAVE_##modname; 143 #define SDL_KMSDRM_SYM(rc,fn,params) KMSDRM_##fn = (SDL_DYNKMSDRMFN_##fn) KMSDRM_GetSym(#fn,thismod); 144 #define SDL_KMSDRM_SYM_CONST(type,name) KMSDRM_##name = *(SDL_DYNKMSDRMCONST_##name*) KMSDRM_GetSym(#name,thismod); 147 if ((SDL_KMSDRM_HAVE_LIBDRM) && (SDL_KMSDRM_HAVE_GBM)) {
158 #define SDL_KMSDRM_MODULE(modname) SDL_KMSDRM_HAVE_##modname = 1; 159 #define SDL_KMSDRM_SYM(rc,fn,params) KMSDRM_##fn = fn; 160 #define SDL_KMSDRM_SYM_CONST(type,name) KMSDRM_##name = name;
void SDL_KMSDRM_UnloadSymbols(void)
int SDL_KMSDRM_LoadSymbols(void)
#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)
void * SDL_LoadFunction(void *handle, const char *name)