|
|
researchv9-SUN3(old)
#include "ps.h"
char *
lookdir(node)
register node;
{
register Dirnode *np;
register struct direct *dp;
if (node)
for (np = devlist; np; np = np->next)
for (dp = np->begin; dp < np->end; dp++)
if (dp->d_ino == node)
return dp->d_name;
return 0;
}
char *
gettty(node)
{
register char *nm = lookdir(node);
if (nm == 0)
return "?";
if (nm[0] == 't' && nm[1] == 't' && nm[2] == 'y')
nm += 3;
return nm;
}
Dirnode *
getdir(dirname, list)
char *dirname; Dirnode *list;
{
struct stat sbuf;
register fd, n;
register Dirnode *np; register struct direct *dp;
if ((fd = open(dirname, 0)) < 0)
return 0;
if (fstat(fd, &sbuf) < 0 || (np = Malloc(Dirnode, 1)) == 0) {
close(fd); return 0;
}
n = sbuf.st_size/sizeof(struct direct);
if ((dp = Malloc(struct direct, n)) == 0) {
free(np); close(fd); return 0;
}
if (!Read(fd, dp, sbuf.st_size)) {
free(np); free(dp); close(fd); return 0;
}
np->next = list;
np->begin = dp;
np->end = dp + n;
close(fd);
return np;
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.