1 /*********************************************************************** 2 * * 3 * This software is part of the ast package * 4 * Copyright (c) 1985-2009 AT&T Intellectual Property * 5 * and is licensed under the * 6 * Common Public License, Version 1.0 * 7 * by AT&T Intellectual Property * 8 * * 9 * A copy of the License is available at * 10 * http://www.opensource.org/licenses/cpl1.0.txt * 11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12 * * 13 * Information and Software Systems Research * 14 * AT&T Research * 15 * Florham Park NJ * 16 * * 17 * Glenn Fowler <gsf@research.att.com> * 18 * David Korn <dgk@research.att.com> * 19 * Phong Vo <kpv@research.att.com> * 20 * * 21 ***********************************************************************/ 22 #if defined(_UWIN) && defined(_BLD_ast) 23 24 void _STUB_vmdcheap(){} 25 26 #else 27 28 #include "vmhdr.h" 29 30 /* A discipline to get memory from the heap. 31 ** 32 ** Written by Kiem-Phong Vo, kpv@research.att.com, 01/16/94. 33 */ 34 #if __STD_C 35 static Void_t* heapmem(Vmalloc_t* vm, Void_t* caddr, 36 size_t csize, size_t nsize, 37 Vmdisc_t* disc) 38 #else 39 static Void_t* heapmem(vm, caddr, csize, nsize, disc) 40 Vmalloc_t* vm; /* region doing allocation from */ 41 Void_t* caddr; /* current low address */ 42 size_t csize; /* current size */ 43 size_t nsize; /* new size */ 44 Vmdisc_t* disc; /* discipline structure */ 45 #endif 46 { 47 NOTUSED(vm); 48 NOTUSED(disc); 49 50 if(csize == 0) 51 return vmalloc(Vmheap,nsize); 52 else if(nsize == 0) 53 return vmfree(Vmheap,caddr) >= 0 ? caddr : NIL(Void_t*); 54 else return vmresize(Vmheap,caddr,nsize,0); 55 } 56 57 static Vmdisc_t _Vmdcheap = { heapmem, NIL(Vmexcept_f), 0 }; 58 __DEFINE__(Vmdisc_t*,Vmdcheap,&_Vmdcheap); 59 60 #ifdef NoF 61 NoF(vmdcheap) 62 #endif 63 64 #endif 65