Ausam/sys/cinit.h
struct cblock {
struct cblock *c_next;
#ifndef CBLOCK_16
char info[6];
};
extern cblockm; extern cblockl;
#endif
#ifdef CBLOCK_16
char info[14];
};
extern cblockm; extern cblockl;
#endif
/* The character lists-- space for (6 or 14)*NCLIST characters */
struct cblock cfree[NCLIST];
/* List head for unused character blocks. */
struct cblock *cfreelist;
/*
* Initialize clist by freeing all character blocks, then count
* number of character devices. (Once-only routine)
*/
cinit()
{
register int ccp;
register struct cblock *cp;
register struct cdevsw *cdp;
ccp = cfree;
for (cp=(ccp+cblockm)&~cblockm; cp <= &cfree[NCLIST-1]; cp++) {
cp->c_next = cfreelist;
cfreelist = cp;
}
ccp = 0;
for(cdp = cdevsw; cdp->d_open; cdp++)
ccp++;
nchrdev = ccp;
}