#ifndef __STATICMALLOC_H
#define __STATICMALLOC_H


#if !defined(_SIZE_T)&&!defined(_SIZE_T_)
#define _SIZE_T
#define _SIZE_T_
typedef unsigned int size_t;
#endif  /* _SIZE_T,_SIZE_T_ */

struct staticMallocDataT  /* After set values, must be untouched */
	{
	size_t blockSize;  /* The size of one block, attending alignment */
	size_t blockMax;  /* The number of blocks */
	size_t *flag;  /* This size must be blockMax */
	char *memory;  /* This size must be blockSize*blockMax */
	};
typedef struct staticMallocDataT staticMallocDataT;


void staticMallocInitialize(staticMallocDataT *pData);
void *staticMalloc(size_t n,staticMallocDataT *pData);
void staticFree(void *p,staticMallocDataT *pData);
void *staticRealloc(void *p,size_t n,staticMallocDataT *pData);


#endif  /* __STATICMALLOC_H */
