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_vmclear(){}
30 /* Clear out all allocated space.
32 ** Written by Kiem-Phong Vo, kpv@research.att.com, 01/16/94.
35 int vmclear(Vmalloc_t
* vm
)
45 reg Vmdata_t
* vd
= vm
->data
;
49 if(!(vd
->mode
&VM_TRUST
) )
51 { CLRINUSE(vd
, inuse
);
57 vd
->free
= vd
->wild
= NIL(Block_t
*);
60 if(vd
->mode
&(VM_MTBEST
|VM_MTDEBUG
|VM_MTPROFILE
) )
61 { vd
->root
= NIL(Block_t
*);
62 for(s
= 0; s
< S_TINY
; ++s
)
63 TINY(vd
)[s
] = NIL(Block_t
*);
64 for(s
= 0; s
<= S_CACHE
; ++s
)
65 CACHE(vd
)[s
] = NIL(Block_t
*);
68 for(seg
= vd
->seg
; seg
; seg
= next
)
72 size
= seg
->baddr
- ((Vmuchar_t
*)tp
) - 2*sizeof(Head_t
);
76 if((vd
->mode
&(VM_MTLAST
|VM_MTPOOL
)) )
79 { SIZE(tp
) |= BUSY
|JUNK
;
80 LINK(tp
) = CACHE(vd
)[C_INDEX(SIZE(tp
))];
81 CACHE(vd
)[C_INDEX(SIZE(tp
))] = tp
;
84 tp
= BLOCK(seg
->baddr
);