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