Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
view vmalloc.h @ 135:0b49fd35afc1
distributed free working
-app sends a VMSSemReqst to his Master which send a request to a different Master
-Master send the request directly
-The request structure is freed by the sender, when the request was handled
There are still problems on shutdown. The shutdownVPs are all allocated by one Master which is likly to be terminated
| author | Merten Sach <msach@mailbox.tu-berlin.de> |
|---|---|
| date | Fri, 16 Sep 2011 20:08:28 +0200 |
| parents | a9b72021f053 |
| children | 99798e4438a6 |
line source
1 /*
2 * Copyright 2009 OpenSourceCodeStewardshipFoundation.org
3 * Licensed under GNU General Public License version 2
4 *
5 * Author: seanhalle@yahoo.com
6 *
7 * Created on November 14, 2009, 9:07 PM
8 */
9 #ifndef _VMALLOC_H
10 #define _VMALLOC_H
12 #include <malloc.h>
13 #include <inttypes.h>
14 #include "VMS_primitive_data_types.h"
15 #include "ProcrContext.h"
17 typedef struct _MallocProlog MallocProlog;
19 struct _MallocProlog
20 {
21 MallocProlog *nextChunkInFreeList;
22 MallocProlog *prevChunkInFreeList;
23 MallocProlog *nextHigherInMem;
24 MallocProlog *nextLowerInMem;
25 };
26 //MallocProlog
28 typedef struct
29 {
30 uintptr_t procrID;
31 MallocProlog *prevChunkInFreeList;
32 MallocProlog *nextHigherInMem;
33 MallocProlog *nextLowerInMem;
34 } MallocPrologAllocated;
36 typedef struct
37 {
38 MallocProlog *firstChunkInFreeList;
39 int32 numInList; //TODO not used
40 } FreeListHead;
42 void *
43 VMS__malloc_on_core(size_t sizeRequested, int procrID);
45 void *
46 VMS__malloc(size_t sizeRequested);
48 void *
49 VMS__malloc_in_lib(size_t sizeRequested, VirtProcr *VProc);
51 void
52 VMS__free( void *ptrToFree );
54 void
55 VMS__free_in_lib(void *ptrToFree, VirtProcr *VProc);
57 void
58 VMS__free_on_core(void *ptrToFree, int procrID);
60 /*Allocates memory from the external system -- higher overhead
61 */
62 void *
63 VMS__malloc_in_ext( size_t sizeRequested );
65 /*Frees memory that was allocated in the external system -- higher overhead
66 */
67 void
68 VMS__free_in_ext( void *ptrToFree );
70 MallocProlog *
71 VMS_ext__create_free_list();
73 void
74 VMS_ext__free_free_list( MallocProlog* freeListHead );
76 #endif
