vmdisc.c revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968
/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1985-2007 AT&T Knowledge Ventures *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Knowledge Ventures *
* *
* A copy of the License is available at *
* http://www.opensource.org/licenses/cpl1.0.txt *
* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* David Korn <dgk@research.att.com> *
* Phong Vo <kpv@research.att.com> *
* *
***********************************************************************/
#if defined(_UWIN) && defined(_BLD_ast)
void _STUB_vmdisc(){}
#else
#include "vmhdr.h"
/* Change the discipline for a region. The old discipline
** is returned. If the new discipline is NIL then the
** discipline is not changed.
**
** Written by Kiem-Phong Vo, kpv@research.att.com, 01/16/94.
*/
#if __STD_C
Vmdisc_t* vmdisc(Vmalloc_t* vm, Vmdisc_t* disc)
#else
Vmdisc_t* vmdisc(vm, disc)
Vmalloc_t* vm;
Vmdisc_t* disc;
#endif
{
Vmdisc_t* old = vm->disc;
if(disc)
{ if(disc->memoryf != old->memoryf)
return NIL(Vmdisc_t*);
if(old->exceptf &&
(*old->exceptf)(vm,VM_DISC,(Void_t*)disc,old) != 0 )
return NIL(Vmdisc_t*);
vm->disc = disc;
}
return old;
}
#endif