|
|
|
2002/0109/sys/src/9/port/devenv.c:27,39 –
2002/0405/sys/src/9/port/devenv.c:27,38
(short | long | prev | next)
|
|
1999/1230
| |
}
|
|
2002/0109
| |
eg = envgrp(c);
|
|
1992/0623
| |
qlock(eg);
|
|
2002/0405
| |
rlock(eg);
|
|
1992/0623
| |
for(e = eg->entries; e && s; e = e->link)
s--;
if(e == 0) {
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
1992/0623
| |
return -1;
|
|
1990/0227
| |
}
|
|
1992/0623
| |
|
|
2002/0109/sys/src/9/port/devenv.c:40,46 –
2002/0405/sys/src/9/port/devenv.c:39,45
|
|
2001/0527
| |
/* make sure name string continues to exist after we release lock */
kstrcpy(up->genbuf, e->name, sizeof up->genbuf);
devdir(c, e->qid, up->genbuf, e->len, eve, 0666, dp);
|
|
1992/0623
| |
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
1992/0623
| |
return 1;
|
|
1990/0227
| |
}
|
|
2002/0109/sys/src/9/port/devenv.c:100,109 –
2002/0405/sys/src/9/port/devenv.c:99,108
|
|
1992/0623
| |
else {
|
|
2002/0109
| |
if(omode != OREAD && !envwriteable(c))
error(Eperm);
|
|
1992/0623
| |
qlock(eg);
|
|
2002/0405
| |
rlock(eg);
|
|
1999/0122
| |
e = envlookup(eg, nil, c->qid.path);
|
|
1992/0623
| |
if(e == 0) {
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
1991/1018
| |
error(Enonexist);
|
|
1990/0227
| |
}
|
|
1999/0122
| |
if((omode & OTRUNC) && e->value) {
|
|
2002/0109/sys/src/9/port/devenv.c:112,118 –
2002/0405/sys/src/9/port/devenv.c:111,117
|
|
1992/0623
| |
e->value = 0;
e->len = 0;
|
|
1990/0227
| |
}
|
|
1992/0623
| |
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
1990/0227
| |
}
|
|
1992/0623
| |
c->mode = openmode(omode);
|
|
1990/0227
| |
c->flag |= COPEN;
|
|
2002/0109/sys/src/9/port/devenv.c:132,140 –
2002/0405/sys/src/9/port/devenv.c:131,139
|
|
1991/1018
| |
omode = openmode(omode);
|
|
2002/0109
| |
eg = envgrp(c);
|
|
1992/0623
| |
qlock(eg);
|
|
2002/0405
| |
wlock(eg);
|
|
1992/0623
| |
if(waserror()) {
qunlock(eg);
|
|
2002/0405
| |
wunlock(eg);
|
|
1992/0623
| |
nexterror();
|
|
1990/0227
| |
}
|
|
1992/0623
| |
|
|
2002/0109/sys/src/9/port/devenv.c:152,158 –
2002/0405/sys/src/9/port/devenv.c:151,157
|
|
1992/0623
| |
eg->entries = e;
|
|
1999/0122
| |
c->qid = e->qid;
|
|
1998/0512
| |
|
|
1992/0623
| |
qunlock(eg);
|
|
2002/0405
| |
wunlock(eg);
|
|
1992/0623
| |
poperror();
|
|
1990/0227
| |
c->offset = 0;
|
|
2002/0109/sys/src/9/port/devenv.c:170,176 –
2002/0405/sys/src/9/port/devenv.c:169,175
|
|
1990/11211
| |
error(Eperm);
|
|
1992/0623
| |
|
|
2002/0109
| |
eg = envgrp(c);
|
|
1992/0623
| |
qlock(eg);
|
|
2002/0405
| |
wlock(eg);
|
|
1992/0623
| |
l = &eg->entries;
for(e = *l; e; e = e->link) {
|
|
1999/0122
| |
if(e->qid.path == c->qid.path)
|
|
2002/0109/sys/src/9/port/devenv.c:179,191 –
2002/0405/sys/src/9/port/devenv.c:178,190
|
|
1992/0623
| |
}
if(e == 0) {
qunlock(eg);
|
|
2002/0405
| |
wunlock(eg);
|
|
1990/11211
| |
error(Enonexist);
|
|
1990/0227
| |
}
|
|
1992/0623
| |
*l = e->link;
|
|
1999/0122
| |
eg->vers++;
|
|
1992/0623
| |
qunlock(eg);
|
|
2002/0405
| |
wunlock(eg);
|
|
1992/0623
| |
free(e->name);
if(e->value)
free(e->value);
|
|
2002/0109/sys/src/9/port/devenv.c:215,224 –
2002/0405/sys/src/9/port/devenv.c:214,223
|
|
1990/0227
| |
return devdirread(c, a, n, 0, 0, envgen);
|
|
1992/0623
| |
|
|
2002/0109
| |
eg = envgrp(c);
|
|
1992/0623
| |
qlock(eg);
|
|
2002/0405
| |
rlock(eg);
|
|
1999/0122
| |
e = envlookup(eg, nil, c->qid.path);
|
|
1992/0623
| |
if(e == 0) {
qunlock(eg);
|
|
2002/0405
| |
rlock(eg);
|
|
1991/1018
| |
error(Enonexist);
|
|
1990/0227
| |
}
|
|
1992/0623
| |
|
|
2002/0109/sys/src/9/port/devenv.c:228,234 –
2002/0405/sys/src/9/port/devenv.c:227,233
|
|
1990/0227
| |
n = 0;
else
|
|
1992/0623
| |
memmove(a, e->value+offset, n);
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
1990/0227
| |
return n;
}
|
|
2002/0109/sys/src/9/port/devenv.c:249,258 –
2002/0405/sys/src/9/port/devenv.c:248,257
|
|
1991/1018
| |
error(Etoobig);
|
|
1992/0623
| |
|
|
2002/0109
| |
eg = envgrp(c);
|
|
1992/0623
| |
qlock(eg);
|
|
2002/0405
| |
wlock(eg);
|
|
1999/0122
| |
e = envlookup(eg, nil, c->qid.path);
|
|
1992/0623
| |
if(e == 0) {
qunlock(eg);
|
|
2002/0405
| |
wunlock(eg);
|
|
1991/1018
| |
error(Enonexist);
|
|
1990/0227
| |
}
|
|
2002/0109/sys/src/9/port/devenv.c:268,274 –
2002/0405/sys/src/9/port/devenv.c:267,273
|
|
1992/0623
| |
memmove(e->value+offset, a, n);
|
|
1999/0122
| |
e->qid.vers++;
eg->vers++;
|
|
1992/0623
| |
qunlock(eg);
|
|
2002/0405
| |
wunlock(eg);
|
|
1992/0623
| |
return n;
|
|
1995/0108
| |
}
|
|
2002/0109/sys/src/9/port/devenv.c:299,305 –
2002/0405/sys/src/9/port/devenv.c:298,304
|
|
1992/0625
| |
Evalue **l, *ne, *e;
l = &to->entries;
qlock(from);
|
|
2002/0405
| |
rlock(from);
|
|
1992/0625
| |
for(e = from->entries; e; e = e->link) {
ne = smalloc(sizeof(Evalue));
ne->name = smalloc(strlen(e->name)+1);
|
|
2002/0109/sys/src/9/port/devenv.c:313,319 –
2002/0405/sys/src/9/port/devenv.c:312,318
|
|
1992/0625
| |
*l = ne;
l = &ne->link;
}
qunlock(from);
|
|
2002/0405
| |
runlock(from);
|
|
1992/0625
| |
}
void
|
|
2002/0109/sys/src/9/port/devenv.c:375,383 –
2002/0405/sys/src/9/port/devenv.c:374,382
|
|
2002/0109
| |
char *p, *q;
int n;
qlock(eg);
|
|
2002/0405
| |
rlock(eg);
|
|
2002/0109
| |
if(waserror()) {
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
2002/0109
| |
nexterror();
}
|
|
2002/0109/sys/src/9/port/devenv.c:400,405 –
2002/0405/sys/src/9/port/devenv.c:399,404
|
|
2002/0109
| |
*q = 0;
poperror();
qunlock(eg);
|
|
2002/0405
| |
runlock(eg);
|
|
2002/0109
| |
return p;
|
|
1991/1102
| |
}
|