Touching up new system for linux support

This commit is contained in:
David Anderson
2005-07-31 22:16:54 +00:00
parent a7fb4e85c9
commit 13ed6ed2d6
5 changed files with 24 additions and 10 deletions

View File

@@ -1,7 +1,13 @@
#include "amxmodx.h"
#include <malloc.h>
#include <stdlib.h>
#include "CStack.h"
#include "natives.h"
#ifdef __linux__
#include <sys/mman.h>
#endif
CVector<regnative *> g_RegNatives;
CStack<regnative *> g_NativeStack;
CVector<String> g_Libraries;
@@ -76,7 +82,7 @@ AMX_NATIVE_INFO *BuildNativeTable()
{
pNative = g_RegNatives[i];
info.name = pNative->name.c_str();
info.func = reinterpret_cast<AMX_NATIVE>(pNative->pfn);
info.func = (AMX_NATIVE)((void *)(pNative->pfn));
pNatives[i] = info;
}
pNatives[g_RegNatives.size()].name = NULL;
@@ -301,7 +307,7 @@ static cell AMX_NATIVE_CALL register_library(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL register_native(AMX *amx, cell *params)
{
if (!g_Initialized)
amxx_DynaInit(static_cast<void *>(amxx_DynaCallback));
amxx_DynaInit((void *)(amxx_DynaCallback));
g_Initialized = true;
@@ -328,7 +334,7 @@ static cell AMX_NATIVE_CALL register_native(AMX *amx, cell *params)
pNative->pfn = new char[size + 10];
VirtualProtect(pNative->pfn, size+10, PAGE_EXECUTE_READWRITE, &temp);
#else
pNative->pfn = (unsigned char *)memalign(sysconf(_SC_PAGESIZE), amx->code_size);
pNative->pfn = (char *)memalign(sysconf(_SC_PAGESIZE), amx->code_size);
mprotect((void *)pNative->pfn, size+10, PROT_READ|PROT_WRITE|PROT_EXEC);
#endif