| plan 9 kernel history: overview | file list | diff list |
1990/11211/port/devenv.c (diff list | history)
| 1990/0802/sys/src/9/port/devenv.c:155,161 – 1990/11211/sys/src/9/port/devenv.c:155,161 (short | long | prev | next) | ||
| 1990/0227 | envalloc.vfree = p1; if(envalloc.end-envalloc.vfree < n){ print("env compact failed\n"); | |
| 1990/11211 | error(Enoenv); | |
| 1990/0227 | } } | |
| 1990/0802/sys/src/9/port/devenv.c:173,179 – 1990/11211/sys/src/9/port/devenv.c:173,179 | ||
| 1990/0227 | ne = envalloc.efree; if(!ne){ print("out of envs\n"); | |
| 1990/11211 | error(Enoenv); | |
| 1990/0227 | } envalloc.efree = ne->next; lock(ne); | |
| 1990/0802/sys/src/9/port/devenv.c:224,230 – 1990/11211/sys/src/9/port/devenv.c:224,230 | ||
| 1990/0227 | ans = 0; else{ lock(e); | |
| 1990/11211 | devdir(c, (Qid){s+1,0}, e->name, e->val? e->val->len : 0, 0666, dp); | |
| 1990/0227 | unlock(e); ans = 1; } | |
| 1990/0802/sys/src/9/port/devenv.c:244,253 – 1990/11211/sys/src/9/port/devenv.c:244,253 | ||
| 1990/0227 | { Pgrp *pg; | |
| 1990/11211 | if(!(c->qid.path&CHDIR)){ | |
| 1990/0227 | pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | pg->etab[c->qid.path-1].chref++; | |
| 1990/0227 | unlock(pg); } return devclone(c, nc); | |
| 1990/0802/sys/src/9/port/devenv.c:259,268 – 1990/11211/sys/src/9/port/devenv.c:259,268 | ||
| 1990/0227 | Pgrp *pg; if(devwalk(c, name, 0, 0, envgen)){ | |
| 1990/11211 | if(!(c->qid.path&CHDIR)){ | |
| 1990/0227 | pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | pg->etab[c->qid.path-1].chref++; | |
| 1990/0227 | unlock(pg); return 1; } | |
| 1990/0802/sys/src/9/port/devenv.c:284,298 – 1990/11211/sys/src/9/port/devenv.c:284,298 | ||
| 1990/0227 | Pgrp *pg; if(omode & (OWRITE|OTRUNC)){ | |
| 1990/11211 | if(c->qid.path & CHDIR) error(Eperm); | |
| 1990/0227 | pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | ep = &pg->etab[c->qid.path-1]; | |
| 1990/0227 | e = ep->env; if(!e){ unlock(pg); | |
| 1990/11211 | error(Egreg); | |
| 1990/0227 | } lock(&envalloc); lock(e); | |
| 1990/0802/sys/src/9/port/devenv.c:333,340 – 1990/11211/sys/src/9/port/devenv.c:333,340 | ||
| 1990/0227 | Pgrp *pg; int i; | |
| 1990/11211 | if(c->qid.path != CHDIR) error(Eperm); | |
| 1990/0227 | pg = u->p->pgrp; lock(pg); lock(&envalloc); | |
| 1990/0802/sys/src/9/port/devenv.c:346,352 – 1990/11211/sys/src/9/port/devenv.c:346,352 | ||
| 1990/0227 | e = envalloc.efree; if(e == 0){ print("out of envs\n"); | |
| 1990/11211 | error(Enoenv); | |
| 1990/0227 | } envalloc.efree = e->next; e->next = 0; | |
| 1990/0802/sys/src/9/port/devenv.c:358,368 – 1990/11211/sys/src/9/port/devenv.c:358,368 | ||
| 1990/0227 | break; if(i == pg->nenv){ print("out of pgroup envs\n"); | |
| 1990/11211 | error(Enoenv); | |
| 1990/0227 | } }else i = pg->nenv++; | |
| 1990/11211 | c->qid.path = i+1; | |
| 1990/0227 | pg->etab[i].env = e; pg->etab[i].chref = 1; unlock(&envalloc); | |
| 1990/0802/sys/src/9/port/devenv.c:380,394 – 1990/11211/sys/src/9/port/devenv.c:380,394 | ||
| 1990/0227 | Envp *ep; Pgrp *pg; | |
| 1990/11211 | if(c->qid.path & CHDIR) error(Eperm); | |
| 1990/0227 | pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | ep = &pg->etab[c->qid.path-1]; | |
| 1990/0227 | e = ep->env; if(!e){ unlock(pg); | |
| 1990/11211 | error(Enonexist); | |
| 1990/0227 | } ep->env = 0; ep->chref--; | |
| 1990/0802/sys/src/9/port/devenv.c:401,407 – 1990/11211/sys/src/9/port/devenv.c:401,407 | ||
| 1990/0227 | { int dumpenv(void); dumpenv(); /*DEBUG*/ print("envwstat\n"); | |
| 1990/11211 | error(Egreg); | |
| 1990/0227 | } void | |
| 1990/0802/sys/src/9/port/devenv.c:409,419 – 1990/11211/sys/src/9/port/devenv.c:409,419 | ||
| 1990/0227 | { Pgrp *pg; | |
| 1990/11211 | if(c->qid.path & CHDIR) | |
| 1990/0227 | return; pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | pg->etab[c->qid.path-1].chref--; | |
| 1990/0227 | unlock(pg); } | |
| 1990/0802/sys/src/9/port/devenv.c:444,457 – 1990/11211/sys/src/9/port/devenv.c:444,457 | ||
| 1990/0227 | Pgrp *pg; char *a = va; | |
| 1990/11211 | if(c->qid.path & CHDIR) | |
| 1990/0227 | return devdirread(c, a, n, 0, 0, envgen); pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | e = pg->etab[c->qid.path-1].env; | |
| 1990/0227 | if(!e){ unlock(pg); | |
| 1990/11211 | error(Eio); | |
| 1990/0227 | } lock(e); ev = e->val; | |
| 1990/0802/sys/src/9/port/devenv.c:481,490 – 1990/11211/sys/src/9/port/devenv.c:481,490 | ||
| 1990/0227 | return 0; pg = u->p->pgrp; lock(pg); | |
| 1990/11211 | e = pg->etab[c->qid.path-1].env; /* caller checks for CHDIR */ | |
| 1990/0227 | if(!e){ unlock(pg); | |
| 1990/11211 | error(Eio); | |
| 1990/0227 | } lock(&envalloc); lock(e); | |
| 1990/0802/sys/src/9/port/devenv.c:500,506 – 1990/11211/sys/src/9/port/devenv.c:500,506 | ||
| 1990/0227 | ev = e->val; vn = ev? ev->len : 0; if(c->offset > vn) | |
| 1990/11211 | error(Egreg); /* perhaps should zero fill */ | |
| 1990/0227 | memcpy(ev->dat+c->offset, a, n); e->val->len = c->offset+n; poperror(); | |
| 1990/0802/sys/src/9/port/devenv.c:543,558 – 1990/11211/sys/src/9/port/devenv.c:543,545 | ||
| 1990/0227 | i += ev->n*sizeof(Envval); print(" %d free enval chars\n", i+((char *)envalloc.end-(char*)envalloc.vfree)); } | |