Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# Functions.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file Functions.hpp
    00003 ///
    00004 /// @brief Destiny3D assembly functions for Memory Manager
    00005 ///
    00006 /// @author Lightning
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Oct 2002
    00023 /// @author Lightning
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef DEMEMORY_FUNCTIONS_HPP
    00029 #define DEMEMORY_FUNCTIONS_HPP
    00030
    00031 #include "deGlobalTypes.hpp"
    00032
    00033 #ifdef __cplusplus
    00034 extern "C" {
    00035 #endif
    00036
    00037 //define the paramaters to the functions
    00038 typedef void * (*Internal_memccpyFN)(void *Ptr1, const void *Ptr2, const int C, long Len);
    00039 typedef void * (*Internal_memchrFN)(const void *Ptr1, const int C, long Len);
    00040 typedef long (*Internal_memcmpFN)(const void *Ptr1, const void *Ptr2, long Len);
    00041 typedef void * (*Internal_memcpyFN)(void *Ptr1, const void *Ptr2, long Len);
    00042 typedef void * (*Internal_memsetFN)(void *Ptr1, int C, long Len);
    00043 typedef long (*Internal_strcmpFN)(const char *Str1, const char *Str2);
    00044 typedef long (*Internal_strlenFN)(const char *Str);
    00045
    00046 //define the internal lookup structure used for the functions
    00047 typedef struct geMem_InternalFunctions
    00048 {
    00049     Internal_memccpyFN  MemCCpy;
    00050     Internal_memchrFN   MemChr;
    00051     Internal_memcmpFN   MemCmp;
    00052     Internal_memcpyFN   MemCpy;
    00053     Internal_memsetFN   MemSet;
    00054     Internal_strcmpFN   StrCmp;
    00055     Internal_strlenFN   StrLen;
    00056 } geMem_InternalFunctions;
    00057
    00058 //init and release functions for the internal functions
    00059 deBoolean InitializeInternalFunctions();
    00060 void ReleaseInternalFunctions();
    00061
    00062 //a "global" pointer of what internal functions to use
    00063 extern geMem_InternalFunctions *InternalFunctions;
    00064
    00065
    00066 //all the asm function defines that get used
    00067
    00068 //regular asm versions
    00069 void * Internal_ASM_memccpy(void *Ptr1, const void *Ptr2, const int C, long Len);
    00070 void * Internal_ASM_memchr(const void *Ptr1, const int C, long Len);
    00071 long Internal_ASM_memcmp(const void *Ptr1, const void *Ptr2, long Len);
    00072 void * Internal_ASM_memcpy(void *Ptr1, const void *Ptr2, long Len);
    00073 void * Internal_ASM_memset(void *Ptr1, int C, long Len);
    00074 long Internal_ASM_strcmp(const char *Str1, const char *Str2);
    00075 long Internal_ASM_strlen(const char *Str);
    00076
    00077 //asm and mmx functions
    00078 void * Internal_ASM_MMX_memcpy(void *Ptr1, const void *Ptr2, long Len);
    00079 void * Internal_ASM_MMX_memset(void *Ptr1, int C, long Len);
    00080
    00081 //mmx with 3dnow! (AMD) verions
    00082 void * Internal_ASM_AMD_MMX_memcpy(void *Ptr1, const void *Ptr2, long Len);
    00083
    00084 #ifdef __cplusplus
    00085 }
    00086 #endif
    00087
    00088 #endif