1 /***********************************************************************
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
13 * Information and Software Systems Research *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
21 ***********************************************************************/
22 #if defined(_UWIN) && defined(_BLD_ast)
24 void _STUB_vmdcheap(){}
30 /* A discipline to get memory from the heap.
32 ** Written by Kiem-Phong Vo, kpv@research.att.com, 01/16/94.
35 static Void_t
* heapmem(Vmalloc_t
* vm
, Void_t
* caddr
,
36 size_t csize
, size_t nsize
,
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 */
51 return vmalloc(Vmheap
,nsize
);
53 return vmfree(Vmheap
,caddr
) >= 0 ? caddr
: NIL(Void_t
*);
54 else return vmresize(Vmheap
,caddr
,nsize
,0);
57 static Vmdisc_t _Vmdcheap
= { heapmem
, NIL(Vmexcept_f
), 0 };
58 __DEFINE__(Vmdisc_t
*,Vmdcheap
,&_Vmdcheap
);