core/MemoryUtils.h
author Scott Ehlert <ds@alliedmods.net>
Wed Aug 15 06:19:30 2007 +0000 (2007-08-15)
changeset 1330 ab94316bb52b
parent 1231 17badaf66ce4
child 1947 e73a1e51833b
permissions -rw-r--r--
Updated license headers on virtually all files with extremely minor changes in the name of some sort of strange consistency.
All plugin and include file headers also have been changed to say about GPL3 instead of GPL2.

(This day shall henceforth be known as the Eighty Column Massacre of '07)
ds@700
     1
/**
ds@700
     2
 * vim: set ts=4 :
ds@1330
     3
 * =============================================================================
dvander@1231
     4
 * SourceMod
dvander@1231
     5
 * Copyright (C) 2004-2007 AlliedModders LLC.  All rights reserved.
ds@1330
     6
 * =============================================================================
ds@700
     7
 *
ds@1330
     8
 * This program is free software; you can redistribute it and/or modify it under
ds@1330
     9
 * the terms of the GNU General Public License, version 3.0, as published by the
ds@1330
    10
 * Free Software Foundation.
dvander@1231
    11
 * 
ds@1330
    12
 * This program is distributed in the hope that it will be useful, but WITHOUT
ds@1330
    13
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ds@1330
    14
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
ds@1330
    15
 * details.
dvander@1231
    16
 *
ds@1330
    17
 * You should have received a copy of the GNU General Public License along with
ds@1330
    18
 * this program.  If not, see <http://www.gnu.org/licenses/>.
dvander@1231
    19
 *
ds@1330
    20
 * As a special exception, AlliedModders LLC gives you permission to link the
ds@1330
    21
 * code of this program (as well as its derivative works) to "Half-Life 2," the
ds@1330
    22
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ds@1330
    23
 * by the Valve Corporation.  You must obey the GNU General Public License in
ds@1330
    24
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
ds@1330
    25
 * this exception to all derivative works.  AlliedModders LLC defines further
ds@1330
    26
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ds@1330
    27
 * or <http://www.sourcemod.net/license.php>.
ds@700
    28
 *
ds@700
    29
 * Version: $Id$
ds@700
    30
 */
ds@700
    31
ds@700
    32
#ifndef _INCLUDE_SOURCEMOD_MEMORYUTILS_H_
ds@700
    33
#define _INCLUDE_SOURCEMOD_MEMORYUTILS_H_
ds@700
    34
ds@700
    35
#include <IMemoryUtils.h>
ds@702
    36
#include "sm_globals.h"
ds@700
    37
ds@700
    38
using namespace SourceMod;
ds@700
    39
ds@700
    40
struct DynLibInfo
ds@700
    41
{
ds@700
    42
	void *baseAddress;
ds@700
    43
	size_t memorySize;
ds@700
    44
};
ds@700
    45
ds@702
    46
class MemoryUtils : 
ds@702
    47
	public IMemoryUtils,
ds@702
    48
	public SMGlobalClass
ds@700
    49
{
ds@702
    50
public: // SMGlobalClass
ds@702
    51
	void OnSourceModAllInitialized();
ds@702
    52
public: // IMemoryUtils
ds@701
    53
	void *FindPattern(const void *libPtr, const char *pattern, size_t len);
ds@700
    54
private:
ds@701
    55
	bool GetLibraryInfo(const void *libPtr, DynLibInfo &lib);
ds@700
    56
};
ds@700
    57
ds@700
    58
extern MemoryUtils g_MemUtils;
ds@700
    59
ds@700
    60
#endif // _INCLUDE_SOURCEMOD_MEMORYUTILS_H_