Blame


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