/* ##H_FILE#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE : ErrMmg.h DESCRIPTION : this file contain constant and variables to manage error in the module Mmg VERSION : 5.1.0/Pierrick Crepy/Creation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ #ifndef __ERRMMG_H__ #define __ERRMMG_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* ##CONSTANTE#-------------------------------------------------------------------------- Constantes declaration ---------------------------------------------------------------------------------------*/ #define D_CheckSystemForBlockWithoutFree #define C_szMmgVersion "MMG V6.0.1" /* The format is XXX Va.b.c with Xxx is the Tag of the module */ #define C_szMmgFullName "Memory Manager"/* the complete and clear name of the module */ #define C_szMmgDate "Mar 12 1998" /*The format is "Mmm dd yyyy".You can use __DATE__ but be careful that you have the control of the compilation*/ /* break the compatibility with the old syntaxe (mem)*/ /* modification of all the message error in order to give the maximum accurate information*/ /* testMalloc function work propely.*/ /* strong the initialization of block.*/ /* For DLLs who are using this module : */ #undef CPA_EXPORT #if defined(CPA_WANTS_IMPORT) #define CPA_EXPORT __declspec(dllimport) #elif defined(CPA_WANTS_EXPORT) #define CPA_EXPORT __declspec(dllexport) #else #define CPA_EXPORT #endif #ifndef __ERM_H__ #include "ERM.h" #endif /*__ERM_H__*/ #define __FATAL_ERR_MMG__ #define __FATAL_DEBUG_ERR_MMG__ /* disable the definition if __DEBUG_MALLOC_MODE__ is not defined*/ #define __WARNING1_ERR_MMG__ #define __WARNING2_ERR_MMG__ #define __WARNING3_ERR_MMG__ /* error of the Mmg Module*/ typedef enum e_uwMmgErrNumber_{ E_uwMmgFatalErr, #ifdef __FATAL_ERR_MMG__ /* -----------------*/ /* E_uwMmgPbDataAlignment,*/ E_uwMmgPbInvalidMallocInfo, E_uwMmgPbAlignmentBlock, E_uwMmgPbDynAllacationAlignment, E_uwMmgPbDynOverflowBefore, E_uwMmgPbDynOverflowAfter, E_uwMmgPbStaOverflowBefore, E_uwMmgPbStaOverflowAfter, E_uwMmgPbOverflowBefore, E_uwMmgPbOverflowAfter, E_uwMmgPbTooManyAllacation, E_uwMmgPbVirtualAlloc, E_uwMmgPbInvalidBlock, E_uwMmgPbInvalidStaticAddress, E_uwMmgPbInvalidModuleId, E_uwMmgPbInvalidBlockId, E_uwMmgPbNoStaticMemory, E_uwMmgPbAccessMemoryDenied, E_uwMmgPbInvalNbOfChannel, E_uwMmgPbTooManyChannel, E_uwMmgPbInFirstInitMmgModule, E_uwMmgPbInInitMmg, E_uwMmgPbInInitBlock, #endif /*__FATAL_ERR_MMG__*/ #ifdef __FATAL_DEBUG_ERR_MMG__ /* ---------------------*/ E_uwMmgPbCanNotInitMmg, E_uwMmgPbCanNotUseDynMode, E_uwMmgPbBagMode, #endif /*__FATAL_DEBUG_ERR_MMG__*/ #ifdef D_CheckSystemForBlockWithoutFree /* ----------------------------------*/ E_uwMmgPbAlignmentAllocationRequested, E_uwMmgPbOverFlowBeforeOnTheRemainTag, E_uwMmgPbNoAvailableFunctionForBlockWithoutFree, #endif /*D_CheckSystemForBlockWithoutFree*/ E_uwMmgStartOfWarning, #ifdef __WARNING1_ERR_MMG__ /* -------------------*/ #endif /*__WARNING1_ERR_MMG__*/ #ifdef __WARNING2_ERR_MMG__ /* -------------------*/ E_uwMmgPbDynamicFree, #endif /*__WARNING2_ERR_MMG__*/ #ifdef __WARNING3_ERR_MMG__ /* -------------------*/ E_uwMmgPbAllocateBlock, E_uwMmgPbDynAllacateMemory, E_uwMmgPbDynAddressNotValid, E_uwMmgPbStaAddressNotValid, E_uwMmgPbBLockFull, E_uwMmgPbSpaceForDebugInformationIsFull, E_uwMmgPbDeleteBlock, E_uwMmgPbSizeOfAllocIs0, E_uwMmgPbFreeofNULL, E_uwMmgPbBbFree, E_uwMmgPbDftChannelCannotBeFree, E_uwMmgPbInvalChannel, E_uwMmgInvalidGroup, #endif /*__WARNING3_ERR_MMG__*/ E_uwMmgErrNumber } e_uwMmgErrNumber; /* ##GLOBVAR#---------------------------------------------------------------------------- Globale variable declaration ---------------------------------------------------------------------------------------*/ #undef __ERRMMG_EXTERN #ifndef __DeclareGlobalVariableErrMmg_h__ #define __ERRMMG_EXTERN extern /*external declaration*/ #else /*__DeclareGlobalVariableErrMmg_h__*/ #define __ERRMMG_EXTERN /*replace by nothing : we have to declare*/ #endif /*__DeclareGlobalVariableErrMmg_h__*/ __ERRMMG_EXTERN CPA_EXPORT unsigned char g_ucMmgModuleId /* number of identification of the Erm module*/ #if defined(__DeclareGlobalVariableErrMmg_h__) && !defined(CPA_WANTS_IMPORT) = C_ucModuleNotInitialized #endif /*__DeclareGlobalVariableErrMmg_h__ && CPA_WANTS_IMPORT*/ ; #ifdef __ERROR_STRINGS__ __ERRMMG_EXTERN CPA_EXPORT char * g_a_szMmgInformationModule [] #if defined(__DeclareGlobalVariableErrMmg_h__) && !defined(CPA_WANTS_IMPORT) = {C_szMmgVersion, C_szMmgFullName, C_szMmgDate} #endif /*__DeclareGlobalVariableErrMmg_h__ && CPA_WANTS_IMPORT*/ ; __ERRMMG_EXTERN CPA_EXPORT struct tdstErrorMsg_ g_a_stMmgTabErr [] /* Obliged syntax 'g_a_st'+[Abbreviation of ModuleName]+'TabErr'*/ #if defined(__DeclareGlobalVariableErrMmg_h__) && !defined(CPA_WANTS_IMPORT) ={ #ifdef __FATAL_ERR_MMG__ /* -------------*/ /* E_uwMmgPbDataAlignment, "the alignment information are not valid (in Mmg_fn_cCheckAlignmentValidity)",*/ E_uwMmgPbInvalidMallocInfo, "The block tested by testMalloc is not valid, it's should be not initialize !", E_uwMmgPbAlignmentBlock, "Alignment error of the beginning address of my block\n(from the 'malloc' system function, in Mmg_fn_vInitblock)", E_uwMmgPbDynAllacationAlignment, "the dynamic memory allocated is not aligned\n(from the 'malloc' system function, in fn_p_vDynAlloc)", E_uwMmgPbDynOverflowBefore, "Overflow before a dynamic malloc", E_uwMmgPbDynOverflowAfter, "Overflow after a dynamic malloc", E_uwMmgPbStaOverflowBefore,"Overflow before a static malloc", E_uwMmgPbStaOverflowAfter, "Overflow after a static malloc", E_uwMmgPbOverflowBefore,"Overflow before an allocation", E_uwMmgPbOverflowAfter, "Overflow after an allocation", E_uwMmgPbTooManyAllacation, "There is too many allocation", E_uwMmgPbVirtualAlloc, "The virtualAlloc function failed (return NULL). Is that enough memory ??", E_uwMmgPbInvalidBlock, "The static block that you try to use, is not valid, it's should be not well initialize !", E_uwMmgPbInvalidStaticAddress, "The address is not a static address", E_uwMmgPbInvalidModuleId, "The moduleId is impossible", E_uwMmgPbInvalidBlockId, "The BlockId is impossible", E_uwMmgPbNoStaticMemory, "There is no static memory", E_uwMmgPbAccessMemoryDenied, "You've try to access to the memory through Mmg module.\nBut the memory have been locked with Mmg_fn_vLockAlloaction!", E_uwMmgPbInvalNbOfChannel, "Invalid number of channel", E_uwMmgPbTooManyChannel, "Sorry, too much channels are used", E_uwMmgPbInFirstInitMmgModule, "Malloc system failed in FirstInitMmgModule function", E_uwMmgPbInInitMmg, "Malloc system failed in InitMmg function", E_uwMmgPbInInitBlock, "Malloc system failed in Mmg_fn_vInitBlock function", #endif /*__FATAL_ERR_MMG__*/ #ifdef __FATAL_DEBUG_ERR_MMG__ E_uwMmgPbCanNotInitMmg, "The Mmg initialization have to be done before the Erm initialization", E_uwMmgPbCanNotUseDynMode, "You have selected the Dynamic mode.\nBut __DYNAMIC_MALLOC_ALLOWED__ is not defined", E_uwMmgPbBagMode, "Problem the Mmg_M_SetModeAlloc is not appropriate \nExample: you try to use Dynamic memory but Mmg_M_SetModeAlloc is set for the Static memory", #endif /*__FATAL_DEBUG_ERR_MMG__*/ #ifdef D_CheckSystemForBlockWithoutFree /* ----------------------------------*/ E_uwMmgPbAlignmentAllocationRequested, "The size of the allocation is not compatible with the alignment requested duing the initialization of the block", E_uwMmgPbOverFlowBeforeOnTheRemainTag, "The last Allocation Overwrite the Remain check Key, just after the p_cMaxMen", E_uwMmgPbNoAvailableFunctionForBlockWithoutFree,"You can NOT use this function with this kind of block: block without Free management", #endif /*D_CheckSystemForBlockWithoutFree*/ #ifdef __WARNING1_ERR_MMG__ /* ----------------*/ #endif /*__WARNING1_ERR_MMG__*/ #ifdef __WARNING2_ERR_MMG__ /* ----------------*/ E_uwMmgPbDynamicFree, "Can not free the dynamic memory", #endif /*__WARNING2_ERR_MMG__*/ #ifdef __WARNING3_ERR_MMG__ /* ----------------*/ E_uwMmgPbAllocateBlock, "Impossible to Allocate the block (in Mmg_fn_vInitblock),\nthe system function for allocation failed (return NULL)", E_uwMmgPbDynAllacateMemory, "Can not allocate dynamic memory (in fn_p_vDynAlloc),\nthe system function for allocation failed (return NULL)", E_uwMmgPbDynAddressNotValid, "The dynamic memory address is not valid (not referenced in the debug table)", E_uwMmgPbStaAddressNotValid, "The Static memory address is not valid (not referenced in the debug table), or using a wrong static block", E_uwMmgPbBLockFull, "Can not allocate (the block is full)", E_uwMmgPbSpaceForDebugInformationIsFull, "The number of requested allocation are too high, the debug information memory is full", E_uwMmgPbDeleteBlock, "Can not free the Block (in Mmg_fn_vDeleteblock)", E_uwMmgPbSizeOfAllocIs0, "Strange, you have request an allocation of 0 Byte, the return value Will be NULL, please change", E_uwMmgPbFreeofNULL, "Strange, you have request a free with a NULL pointer, please change that", E_uwMmgPbBbFree, "Strange, the number of free was not valid.\nThe debug function TestMalloc has repaired this data.\nPlease warn the developper of Mmg to fix the Bug", E_uwMmgPbDftChannelCannotBeFree,"You try to release the default channel (0), you not allow to do that !", E_uwMmgPbInvalChannel, "Invalid number of channel", E_uwMmgInvalidGroup,"You are not allow to use another group to the default", #endif /*__WARNING3_ERR_MMG__*/ 0xFFFF, "\0"/*fin*/ } #endif /*__DeclareGlobalVariableErrMmg_h__ && CPA_WANTS_IMPORT*/ ; #endif /*__ERROR_STRINGS__*/ #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /*__ERRMMG_H__*/