annotate vmalloc.h @ 203:caa8512f7bdc

changed __brch__ contents for update naming scheme
author Me@portablequad
date Mon, 13 Feb 2012 09:23:27 -0800
parents c1784868dcea
children
rev   line source
Me@178 1 /*
Me@178 2 * Copyright 2009 OpenSourceCodeStewardshipFoundation.org
Me@178 3 * Licensed under GNU General Public License version 2
Me@178 4 *
Me@178 5 * Author: seanhalle@yahoo.com
Me@178 6 *
Me@178 7 * Created on November 14, 2009, 9:07 PM
Me@178 8 */
Me@178 9
Me@178 10 #ifndef _VMALLOC_H
Me@178 11 #define _VMALLOC_H
Me@178 12
Me@178 13 #include <malloc.h>
Me@178 14 #include <inttypes.h>
Me@178 15 #include "VMS_primitive_data_types.h"
Me@178 16
Me@178 17 typedef struct _MallocProlog MallocProlog;
Me@178 18
Me@178 19 struct _MallocProlog
Me@178 20 {
Me@178 21 MallocProlog *nextChunkInFreeList;
Me@178 22 MallocProlog *prevChunkInFreeList;
Me@178 23 MallocProlog *nextHigherInMem;
Me@178 24 MallocProlog *nextLowerInMem;
Me@178 25 };
Me@178 26 //MallocProlog
Me@178 27
Me@178 28 typedef struct
Me@178 29 {
Me@178 30 MallocProlog *firstChunkInFreeList;
Me@178 31 int32 numInList; //TODO not used
Me@178 32 }
Me@178 33 FreeListHead;
Me@178 34
Me@178 35 void *
Me@200 36 VMS_int__malloc( size_t sizeRequested );
Me@178 37
Me@178 38 void *
Me@200 39 VMS_int__malloc_aligned( size_t sizeRequested );
Me@178 40
Me@178 41 void
Me@200 42 VMS_int__free( void *ptrToFree );
Me@200 43
Me@200 44 #define VMS_PI__malloc VMS_int__malloc
Me@200 45 #define VMS_PI__malloc_aligned VMS_int__malloc_aligned
Me@200 46 #define VMS_PI__free VMS_int__free
Me@200 47 /* For now, the PI is protected by master lock, so int malloc fine
Me@200 48 void *
Me@200 49 VMS_PI__malloc( size_t sizeRequested );
Me@200 50
Me@200 51 void *
Me@200 52 VMS_PI__malloc_aligned( size_t sizeRequested );
Me@200 53
Me@200 54 void
Me@200 55 VMS_PI__free( void *ptrToFree );
Me@200 56 */
Me@200 57
Me@200 58 //TODO: protect WL malloc from concurrency!! shared freelist can be corrupted
Me@200 59 #define VMS_WL__malloc VMS_int__malloc
Me@200 60 #define VMS_WL__malloc_aligned VMS_int__malloc_aligned
Me@200 61 #define VMS_WL__free VMS_int__free
Me@200 62 /*
Me@200 63 void *
Me@200 64 VMS_WL__malloc( size_t sizeRequested );
Me@200 65
Me@200 66 void *
Me@200 67 VMS_WL__malloc_aligned( size_t sizeRequested );
Me@200 68
Me@200 69 void
Me@200 70 VMS_WL__free( void *ptrToFree );
Me@200 71 */
Me@178 72
Me@178 73 /*Allocates memory from the external system -- higher overhead
Me@178 74 */
Me@178 75 void *
Me@178 76 VMS__malloc_in_ext( size_t sizeRequested );
Me@178 77
Me@178 78 /*Frees memory that was allocated in the external system -- higher overhead
Me@178 79 */
Me@178 80 void
Me@178 81 VMS__free_in_ext( void *ptrToFree );
Me@178 82
Me@178 83
Me@178 84 MallocProlog *
Me@178 85 VMS_ext__create_free_list();
Me@178 86
Me@178 87 void
Me@178 88 VMS_ext__free_free_list( MallocProlog *freeListHead );
Me@178 89
Me@65 90 #endif