diff options
Diffstat (limited to 'src/lib9/priv.c')
-rw-r--r-- | src/lib9/priv.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/lib9/priv.c b/src/lib9/priv.c new file mode 100644 index 00000000..651c48c1 --- /dev/null +++ b/src/lib9/priv.c @@ -0,0 +1,32 @@ +#include <u.h> +#include <libc.h> +#include "9proc.h" + +static Lock privlock; +static ulong privmap; + +int +privalloc(void) +{ + int i; + + lock(&privlock); + for(i=0; i<NPRIV; i++) + if((privmap&(1<<i)) == 0){ + privmap |= (1<<i); + unlock(&privlock); + return i; + } + unlock(&privlock); + return -1; +} + +void** +privmem(int i) +{ + Uproc *up; + + up = _p9uproc(); + return &up->priv[i]; +} + |