mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
Removed **Sys_LoadDll** (unused)
This commit is contained in:
parent
c180514a72
commit
dba6b82df8
1 changed files with 0 additions and 119 deletions
|
@ -1053,125 +1053,6 @@ void* Sys_GetCGameAPI(void* parms)
|
|||
return GetCGameAPI(parms);
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
Sys_LoadDll
|
||||
|
||||
Used to load a development dll instead of a virtual machine
|
||||
TTimo:
|
||||
changed the load procedure to match VFS logic, and allow developer use
|
||||
#1 look down current path
|
||||
#2 look in fs_homepath
|
||||
#3 look in fs_basepath
|
||||
=================
|
||||
*/
|
||||
extern char *FS_BuildOSPath( const char *base, const char *game, const char *qpath );
|
||||
|
||||
void *Sys_LoadDll( const char *name, char *fqpath ,
|
||||
int (**entryPoint)(int, ...),
|
||||
int (*systemcalls)(int, ...) )
|
||||
{
|
||||
void *libHandle;
|
||||
void (*dllEntry)( int (*syscallptr)(int, ...) );
|
||||
char curpath[MAX_OSPATH];
|
||||
char fname[MAX_OSPATH];
|
||||
char *basepath;
|
||||
char *homepath;
|
||||
char *pwdpath;
|
||||
char *gamedir;
|
||||
char *fn;
|
||||
const char* err = NULL;
|
||||
|
||||
*fqpath = 0;
|
||||
|
||||
// bk001206 - let's have some paranoia
|
||||
assert( name );
|
||||
|
||||
getcwd(curpath, sizeof(curpath));
|
||||
#if defined __i386__
|
||||
snprintf (fname, sizeof(fname), "%si386.so", name);
|
||||
#elif defined __powerpc__ //rcg010207 - PPC support.
|
||||
snprintf (fname, sizeof(fname), "%sppc.so", name);
|
||||
#elif defined __axp__
|
||||
snprintf (fname, sizeof(fname), "%saxp.so", name);
|
||||
#elif defined __mips__
|
||||
snprintf (fname, sizeof(fname), "%smips.so", name);
|
||||
#elif defined __x86_64__
|
||||
snprintf(fname, sizeof(fname), "%sx86_64.so", name);
|
||||
#elif defined __arm__
|
||||
snprintf(fname, sizeof(fname), "%sarm.so", name);
|
||||
#elif defined __arm64__
|
||||
snprintf(fname, sizeof(fname), "%sarm64.so", name);
|
||||
#error Unknown arch
|
||||
#endif
|
||||
|
||||
// bk001129 - was RTLD_LAZY
|
||||
#define Q_RTLD RTLD_NOW
|
||||
|
||||
pwdpath = Sys_Cwd();
|
||||
basepath = Cvar_VariableString( "fs_basepath" );
|
||||
homepath = Cvar_VariableString( "fs_homepath" );
|
||||
gamedir = Cvar_VariableString( "fs_game" );
|
||||
|
||||
// pwdpath
|
||||
fn = FS_BuildOSPath( pwdpath, gamedir, fname );
|
||||
Com_Printf( "Sys_LoadDll(%s)... \n", fn );
|
||||
libHandle = dlopen( fn, Q_RTLD );
|
||||
|
||||
if ( !libHandle )
|
||||
{
|
||||
Com_Printf( "Sys_LoadDll(%s) failed:\n\"%s\"\n", fn, dlerror() );
|
||||
// fs_homepath
|
||||
fn = FS_BuildOSPath( homepath, gamedir, fname );
|
||||
Com_Printf( "Sys_LoadDll(%s)... \n", fn );
|
||||
libHandle = dlopen( fn, Q_RTLD );
|
||||
|
||||
if ( !libHandle )
|
||||
{
|
||||
Com_Printf( "Sys_LoadDll(%s) failed:\n\"%s\"\n", fn, dlerror() );
|
||||
// fs_basepath
|
||||
fn = FS_BuildOSPath( basepath, gamedir, fname );
|
||||
Com_Printf( "Sys_LoadDll(%s)... \n", fn );
|
||||
libHandle = dlopen( fn, Q_RTLD );
|
||||
|
||||
if ( !libHandle )
|
||||
{
|
||||
#ifndef NDEBUG // bk001206 - in debug abort on failure
|
||||
Com_Error ( ERR_FATAL, "Sys_LoadDll(%s) failed dlopen() completely!\n", name );
|
||||
#else
|
||||
Com_Printf ( "Sys_LoadDll(%s) failed dlopen() completely!\n", name );
|
||||
#endif
|
||||
return NULL;
|
||||
} else
|
||||
Com_Printf ( "Sys_LoadDll(%s): succeeded ...\n", fn );
|
||||
} else
|
||||
Com_Printf ( "Sys_LoadDll(%s): succeeded ...\n", fn );
|
||||
} else
|
||||
Com_Printf ( "Sys_LoadDll(%s): succeeded ...\n", fn );
|
||||
|
||||
dllEntry = dlsym( libHandle, "dllEntry" );
|
||||
*entryPoint = dlsym( libHandle, "vmMain" );
|
||||
if ( !*entryPoint || !dllEntry )
|
||||
{
|
||||
err = dlerror();
|
||||
#ifndef NDEBUG // bk001206 - in debug abort on failure
|
||||
Com_Error ( ERR_FATAL, "Sys_LoadDll(%s) failed dlsym(vmMain):\n\"%s\" !\n", name, err );
|
||||
#else
|
||||
Com_Printf ( "Sys_LoadDll(%s) failed dlsym(vmMain):\n\"%s\" !\n", name, err );
|
||||
#endif
|
||||
dlclose( libHandle );
|
||||
err = dlerror();
|
||||
if ( err != NULL )
|
||||
Com_Printf ( "Sys_LoadDll(%s) failed dlcose:\n\"%s\"\n", name, err );
|
||||
return NULL;
|
||||
}
|
||||
Com_Printf ( "Sys_LoadDll(%s) found **vmMain** at %p \n", name, *entryPoint ); // bk001212
|
||||
dllEntry( systemcalls );
|
||||
Com_Printf ( "Sys_LoadDll(%s) succeeded!\n", name );
|
||||
if ( libHandle ) Q_strncpyz ( fqpath , fn , MAX_QPATH ) ; // added 7/20/02 by T.Ray
|
||||
return libHandle;
|
||||
}
|
||||
|
||||
/*
|
||||
========================================================================
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue