/////////////////////////////////////////////////////////////
//
//		Memory Management of the Module : LDT
//
// File Name	: MmgLDT.h
// Date			: 
// Author		: CPA_Ed_1 team
//
/////////////////////////////////////////////////////////////
#ifndef __MmgLDT_H__
#define __MmgLDT_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* 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


#include "MMG.h"

typedef enum e_ucLDTStaticBlocks_
{
	E_ucLDTMemoryBlock0 = 0,
	E_ucLDTMemoryBlock1 = 1,
	E_ucLDTMemoryBlock2 = 2,
	E_ucLDTMemoryBlock3 = 3,
	E_ucLDTMemoryBlock4 = 4,
	E_ucLDTMemoryBlock5 = 5,
	E_ucLDTMemoryBlock6 = 6,
	E_ucLDTMemoryBlock7 = 7,
	E_ucLDTMemoryBlock8 = 8,
	E_ucLDTMaxBlocksNb  // maximum number of static block, You have to follow this syntax 'E_uc+ Abbreviation Module +MaxBlocksNb'
} e_ucLDTStaticBlocks;

#undef EXTERN
#ifdef __DeclareGlobalVariableMmgLDT_h__
#define EXTERN /*nothing*/
#else // no __DeclareGlobalVariableMmgLDT_h__
#define EXTERN extern
#endif //__DeclareGlobalVariableMmgLDT_h__

EXTERN CPA_EXPORT  struct tdstBlockInfo_ g_a_stLDTBlocksInfo[E_ucLDTMaxBlocksNb];

#ifdef __DYNAMIC_MALLOC_ALLOWED__
#ifdef __DEBUG_MALLOC_MODE__
EXTERN CPA_EXPORT  struct tdstDynInfo_ g_stLDTDynInfo;
#endif //__DEBUG_MALLOC_MODE__
#endif //__DYNAMIC_MALLOC_ALLOWED__

#ifdef __cplusplus
};
#endif /* __cplusplus */

#endif //__MmgLDT_H__
