#ifndef IO_ALLOC_H #define IO_ALLOC_H /* PURPOSE: (The ALLOC_INFO structure describes a chunk of memory that the MemoryManager knows about.) */ #include "trick/attributes.h" #include "trick/parameter_types.h" /** * enum TRICK_STCL - indicates whether or not the MemoryManager allocated the object. * ------------------------------------------------------------------------------------------- * TRICK_LOCAL - The memory manager allocated the object, via a form of declare_var..(). * TRICK_EXTERN - The memory manager did not allocate the object, but was given a pointer to * an object via a form of declare_extern_var..(). * ------------------------------------------------------------------------------------------- */ typedef enum { TRICK_LOCAL = 0, TRICK_EXTERN = 1, } TRICK_STCL; typedef enum { TRICK_ALLOC_MALLOC = 0, TRICK_ALLOC_NEW = 1, TRICK_ALLOC_OTHER = 2, } TRICK_ALLOC_TYPE; #ifdef __cplusplus extern "C" { #endif /** * The ALLOC_INFO structure describes a chunk of memory that the MemoryManager knows about. */ typedef struct { void *start; /**< ** Address where this allocation starts */ void *end; /**< ** Address where this allocation ends */ char *name; /**< ** Name of parameter */ int size; /**< ** Size of element */ int sentinel_bytes; /**< ** Number of sentinel bytes. Sentinel bytes are extra bytes requested by operator new[] */ Language language; /**< ** Language */ TRICK_TYPE type; /**< ** Type specifier */ TRICK_STCL stcl; /**< ** Storage class */ TRICK_ALLOC_TYPE alloc_type; /**< ** Allocation type for local variables */ char *user_type_name; /**< ** name of class/struct or enumeration type */ ATTRIBUTES *attr; /**< ** class/struct or enumeration attributes */ int num; /**< ** Total number of elements. Is the product of all the fixed dimension sizes.*/ int num_index; /**< ** number of dimensions. */ int index[TRICK_MAX_INDEX]; /**< ** dimension sizes. */ unsigned int id ; /**< ** id number assigned when added to ALLOC_INFO_MAP */ int alloced_in_memory_init ; /**< ** boolean indicating memory was set in memory_init in S_source.cpp */ } ALLOC_INFO; #ifdef __cplusplus } #endif #endif