sourcepawn/jit/x86/dll_exports.cpp
author Scott Ehlert <ds@alliedmods.net>
Fri Mar 28 06:21:34 2008 +0000 (2008-03-28)
branchsourcemod-1.1.0
changeset 1951 c7b4237fff50
parent 1930 12f08d51439c
child 1947 e73a1e51833b
permissions -rw-r--r--
Changed env var used in include paths: SOURCEMM -> SORCEMM16
Removed some unneccessary build configuartations in some project files
dvander@367
     1
/**
ds@653
     2
 * vim: set ts=4 :
ds@1330
     3
 * =============================================================================
ds@1330
     4
 * SourcePawn JIT
ds@1330
     5
 * Copyright (C)2004-2007 AlliedModders LLC.  All rights reserved.
ds@1330
     6
 * =============================================================================
dvander@367
     7
 *
ds@1330
     8
 * This file is not open source and may not be copied without explicit wriiten
ds@1330
     9
 * permission of AlliedModders LLC.  This file may not be redistributed in whole
ds@1330
    10
 * or significant part.
dvander@367
    11
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
dvander@367
    12
 *
dvander@367
    13
 * Version: $Id$
dvander@367
    14
 */
dvander@367
    15
dvander@157
    16
#include <sp_vm_api.h>
dvander@350
    17
#include <malloc.h>
dvander@157
    18
#include "jit_x86.h"
dvander@157
    19
#include "dll_exports.h"
dvander@157
    20
dvander@157
    21
SourcePawn::ISourcePawnEngine *engine = NULL;
dvander@601
    22
JITX86 g_jit;
dvander@157
    23
dvander@1147
    24
EXPORTFUNC int GiveEnginePointer2(SourcePawn::ISourcePawnEngine *engine_p, unsigned int api_version)
dvander@157
    25
{
dvander@157
    26
	engine = engine_p;
dvander@161
    27
dvander@1930
    28
	if (api_version > SOURCEPAWN_ENGINE_API_VERSION || api_version < 2)
dvander@1147
    29
	{
dvander@1147
    30
		return SP_ERROR_PARAM;
dvander@1147
    31
	}
dvander@1147
    32
dvander@1147
    33
	return SP_ERROR_NONE;
dvander@157
    34
}
dvander@157
    35
dvander@157
    36
EXPORTFUNC unsigned int GetExportCount()
dvander@157
    37
{
dvander@157
    38
	return 1;
dvander@157
    39
}
dvander@157
    40
dvander@157
    41
EXPORTFUNC SourcePawn::IVirtualMachine *GetExport(unsigned int exportnum)
dvander@157
    42
{
dvander@157
    43
	/* Don't return anything if we're not initialized yet */
dvander@157
    44
	if (!engine)
dvander@157
    45
	{
dvander@157
    46
		return NULL;
dvander@157
    47
	}
dvander@157
    48
dvander@157
    49
	/* We only have one export - 0 */
dvander@157
    50
	if (exportnum)
dvander@157
    51
	{
dvander@157
    52
		return NULL;
dvander@157
    53
	}
dvander@157
    54
dvander@601
    55
	return &g_jit;
dvander@157
    56
}
dvander@350
    57
dvander@350
    58
#if defined __linux__
dvander@350
    59
extern "C" void __cxa_pure_virtual(void)
dvander@350
    60
{
dvander@350
    61
}
dvander@350
    62
dvander@350
    63
void *operator new(size_t size)
dvander@350
    64
{
dvander@350
    65
	return malloc(size);
dvander@350
    66
}
dvander@350
    67
dvander@350
    68
void *operator new[](size_t size) 
dvander@350
    69
{
dvander@350
    70
	return malloc(size);
dvander@350
    71
}
dvander@350
    72
dvander@350
    73
void operator delete(void *ptr) 
dvander@350
    74
{
dvander@350
    75
	free(ptr);
dvander@350
    76
}
dvander@350
    77
dvander@350
    78
void operator delete[](void * ptr)
dvander@350
    79
{
dvander@350
    80
	free(ptr);
dvander@350
    81
}
dvander@350
    82
#endif
dvander@350
    83