code:cinit - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

Source

8231 /* Initialize clist by freeing all character blocks, & count 8281

8232  * number of character devices. (Once-only routine)

8233  */

8234 cinit()

8235 {

8236     register int ccp;

8237     register struct cblock *cp;

8238     register struct cdevsw *cdp;

8239     ccp = cfree;

  • ccp 指向 cfree数组的头部
8240     for (cp=(ccp+07)&~07; cp <= &cfree[NCLIST-1]; cp++) {

8241           cp->c_next = cfreelist;

8242           cfreelist = cp;

8243     }

8244     ccp = 0;

8245     for(cdp = cdevsw; cdp->d_open; cdp++)

8246           ccp++;

8247     nchrdev = ccp;

8248 }

8249 /* ------------------------- */

Ref

Caller

⚠️ **GitHub.com Fallback** ⚠️