Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/vmalloc/vmset.c
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#if defined(_UWIN) && defined(_BLD_ast)
23
24
void _STUB_vmset(){}
25
26
#else
27
28
#include "vmhdr.h"
29
30
31
/* Set the control flags for a region.
32
**
33
** Written by Kiem-Phong Vo, [email protected], 01/16/94.
34
*/
35
#if __STD_C
36
int vmset(reg Vmalloc_t* vm, int flags, int on)
37
#else
38
int vmset(vm, flags, on)
39
reg Vmalloc_t* vm; /* region being worked on */
40
int flags; /* flags must be in VM_FLAGS */
41
int on; /* !=0 if turning on, else turning off */
42
#endif
43
{
44
int mode;
45
Vmdata_t *vd = vm->data;
46
47
if(flags == 0 && on == 0)
48
return vd->mode;
49
50
SETLOCK(vm, 0);
51
52
mode = vd->mode;
53
if(on)
54
vd->mode |= (flags&VM_FLAGS);
55
else vd->mode &= ~(flags&VM_FLAGS);
56
57
CLRLOCK(vm, 0);
58
59
return mode;
60
}
61
62
#endif
63
64