Me@178: /* Me@178: * Copyright 2009 OpenSourceCodeStewardshipFoundation.org Me@178: * Licensed under GNU General Public License version 2 Me@178: * Me@178: * Author: seanhalle@yahoo.com Me@178: * Me@178: * Created on November 14, 2009, 9:07 PM Me@178: */ Me@178: Me@178: #ifndef _VMALLOC_H Me@178: #define _VMALLOC_H Me@178: Me@178: #include Me@178: #include Me@178: #include "VMS_primitive_data_types.h" Me@178: Me@178: typedef struct _MallocProlog MallocProlog; Me@178: Me@178: struct _MallocProlog Me@178: { Me@178: MallocProlog *nextChunkInFreeList; Me@178: MallocProlog *prevChunkInFreeList; Me@178: MallocProlog *nextHigherInMem; Me@178: MallocProlog *nextLowerInMem; Me@178: }; Me@178: //MallocProlog Me@178: Me@178: typedef struct Me@178: { Me@178: MallocProlog *firstChunkInFreeList; Me@178: int32 numInList; //TODO not used Me@178: } Me@178: FreeListHead; Me@178: Me@178: void * Me@178: VMS__malloc( size_t sizeRequested ); Me@178: Me@178: void * Me@178: VMS__malloc_aligned( size_t sizeRequested ); Me@178: Me@178: void Me@178: VMS__free( void *ptrToFree ); Me@178: Me@178: /*Allocates memory from the external system -- higher overhead Me@178: */ Me@178: void * Me@178: VMS__malloc_in_ext( size_t sizeRequested ); Me@178: Me@178: /*Frees memory that was allocated in the external system -- higher overhead Me@178: */ Me@178: void Me@178: VMS__free_in_ext( void *ptrToFree ); Me@178: Me@178: Me@178: MallocProlog * Me@178: VMS_ext__create_free_list(); Me@178: Me@178: void Me@178: VMS_ext__free_free_list( MallocProlog *freeListHead ); Me@178: Me@65: #endif