rsc | fd04aac | 2003-11-23 18:12:54 +0000 | [diff] [blame] | 1 | #include <u.h> |
2 | #include <libc.h> | ||||
3 | #include "9proc.h" | ||||
4 | |||||
5 | static Lock privlock; | ||||
6 | static ulong privmap; | ||||
7 | |||||
8 | int | ||||
9 | privalloc(void) | ||||
10 | { | ||||
11 | int i; | ||||
12 | |||||
13 | lock(&privlock); | ||||
14 | for(i=0; i<NPRIV; i++) | ||||
15 | if((privmap&(1<<i)) == 0){ | ||||
16 | privmap |= (1<<i); | ||||
17 | unlock(&privlock); | ||||
18 | return i; | ||||
19 | } | ||||
20 | unlock(&privlock); | ||||
21 | return -1; | ||||
22 | } | ||||
23 | |||||
24 | void** | ||||
25 | privmem(int i) | ||||
26 | { | ||||
27 | Uproc *up; | ||||
28 | |||||
rsc | 175b8a5 | 2004-04-21 04:48:25 +0000 | [diff] [blame] | 29 | up = _p9uproc(0); |
rsc | fd04aac | 2003-11-23 18:12:54 +0000 | [diff] [blame] | 30 | return &up->priv[i]; |
31 | } | ||||
32 |