diff options
author | rsc <devnull@localhost> | 2003-11-23 18:12:54 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2003-11-23 18:12:54 +0000 |
commit | fd04aacee17b348da206c13a550dc1029669805f (patch) | |
tree | 9bdd35a25ff6e3d6e9a0171b06240a76723f922c /src/lib9/priv.c | |
parent | 74f990ad84deb1591ddb91be4fc8152ec0c46222 (diff) | |
download | plan9port-fd04aacee17b348da206c13a550dc1029669805f.tar.gz plan9port-fd04aacee17b348da206c13a550dc1029669805f.tar.bz2 plan9port-fd04aacee17b348da206c13a550dc1029669805f.zip |
Various additions and fixes.
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]; +} + |