| plan 9 kernel history: overview | file list | diff list |
1991/1022/port/devenv.c (diff list | history)
| 1991/1018/sys/src/9/port/devenv.c:28,33 – 1991/1022/sys/src/9/port/devenv.c:28,34 (short | long | prev | next) | ||
| 1991/1018 | Envval *free[EVFREE+1]; char *block; /* the free page we are allocating from */ char *lim; /* end of block */ | |
| 1991/1022 | int npage; /* total pages gotten from newpage() */ | |
| 1990/0227 | }envalloc; | |
| 1991/1018 | QLock evlock; | |
| 1991/1018/sys/src/9/port/devenv.c:366,374 – 1991/1022/sys/src/9/port/devenv.c:367,376 | ||
| 1991/1018 | b += ALIGN + sizeof *ev; } b = (char*)VA(kmap(newpage(0, 0, 0))); | |
| 1991/1022 | envalloc.npage++; | |
| 1991/1018 | envalloc.lim = b + BY2PG; } | |
| 1991/1022 | ||
| 1991/1018 | ev = (Envval*)b; ev->val = b + sizeof *ev; ev->ref = 1; | |
| 1991/1018/sys/src/9/port/devenv.c:398,403 – 1991/1022/sys/src/9/port/devenv.c:400,442 | ||
| 1991/1018 | n = EVFREE; ev->next = envalloc.free[n]; envalloc.free[n] = ev; | |
| 1991/1022 | } void envdump(void) { Envval *ev; int i, j; qlock(&evlock); print("pages allocated: %d\n", envalloc.npage); print("bytes left in page: %d\n", envalloc.lim - envalloc.block); for(i = 0; i < EVFREE + 1; i++){ j = 0; if(i == EVFREE) print("big blocks:\n"); else print("%d byte blocks:\n", (i + 1) * ALIGN); for(ev = envalloc.free[i]; ev; ev = ev->next){ if(j++ == 1000){ print("circular\n"); break; } if(j < 10) print("\tenv %d %lux n%lux p%lux r%d\n", ev->len, ev, ev->next, ev->prev, ev->ref); } } for(i = 0; i < EVHASH; i++){ j = 0; for(ev = evhash[i].next; ev; ev = ev->next){ if(j++ == 1000){ print("hash bucket %d circular\n", i); break; } } } qunlock(&evlock); | |
| 1990/0227 | } | |
| 1991/0927 | /* | |