- register struct buf *cp, *bp;
- register struct filsys *fp;
- register unsigned i, j;
-
- (*bdevsw[major(rootdev)].d_open)(rootdev, 1);
- bp = bread(rootdev, SUPERB);
- cp = geteblk();
- if(u.u_error)
- panic("iinit");
- bcopy(bp->b_un.b_addr, cp->b_un.b_addr, sizeof(struct filsys));
- brelse(bp);
- mount[0].m_bufp = cp;
- mount[0].m_dev = rootdev;
- fp = cp->b_un.b_filsys;
- fp->s_flock = 0;
- fp->s_ilock = 0;
- fp->s_ronly = 0;
- fp->s_lasti = 1;
- fp->s_nbehind = 0;
- /* on boot, read VAX TODR register (GMT 10 ms.
- * clicks into current year) and set software time
- * in 'int time' (GMT seconds since year YRREF)
- */
- for (i = 0 , j = YRREF ; j < YRCURR ; j++)
- i += (SECYR + (j%4?0:SECDAY)) ;
- time = udiv(mfpr(TODR),100) + i ;
- bootime = time;
-}