| plan 9 kernel history: overview | file list | diff list |
1999/0608/mpc/devrtc.c (diff list | history)
| 1999/0608/sys/src/9/mpc/devrtc.c:10,15 – 1999/0612/sys/src/9/mpc/devrtc.c:10,16 (short | long | prev | next) | ||
| 1999/0121 | enum{ Qrtc = 1, | |
| 1999/0608 | Qnvram, | |
| 1999/0612 | Qnvram2, | |
| 1999/0121 | /* sccr */ RTDIV= 1<<24, | |
| 1999/0608/sys/src/9/mpc/devrtc.c:21,26 – 1999/0612/sys/src/9/mpc/devrtc.c:22,29 | ||
| 1999/0608 | Nvoff= 4*1024, /* where usable nvram lives */ Nvsize= 4*1024, | |
| 1999/0612 | Nvoff2= 8*1024, /* where usable nvram lives */ Nvsize2= 4*1024, | |
| 1999/0121 | }; static QLock rtclock; /* mutex on clock operations */ | |
| 1999/0608/sys/src/9/mpc/devrtc.c:30,35 – 1999/0612/sys/src/9/mpc/devrtc.c:33,39 | ||
| 1999/0121 | static Dirtab rtcdir[]={ "rtc", {Qrtc, 0}, 12, 0666, | |
| 1999/0608 | "nvram", {Qnvram, 0}, Nvsize, 0664, | |
| 1999/0612 | "nvram2", {Qnvram2, 0}, Nvsize, 0664, | |
| 1999/0121 | }; #define NRTC (sizeof(rtcdir)/sizeof(rtcdir[0])) | |
| 1999/0608/sys/src/9/mpc/devrtc.c:77,82 – 1999/0612/sys/src/9/mpc/devrtc.c:81,87 | ||
| 1999/0121 | error(Eperm); break; | |
| 1999/0608 | case Qnvram: | |
| 1999/0612 | case Qnvram2: | |
| 1999/0608 | if(strcmp(up->user, eve)!=0) | |
| 1999/0121 | error(Eperm); break; | |
| 1999/0608/sys/src/9/mpc/devrtc.c:112,117 – 1999/0612/sys/src/9/mpc/devrtc.c:117,132 | ||
| 1999/0608 | memmove(buf, (uchar*)(NVRAMMEM + Nvoff + t), n); iunlock(&nvrtlock); return n; | |
| 1999/0612 | case Qnvram2: if(offset >= Nvsize2) return 0; t = offset; if(t + n > Nvsize2) n = Nvsize2 - t; ilock(&nvrtlock); memmove(buf, (uchar*)(NVRAMMEM + Nvoff2 + t), n); iunlock(&nvrtlock); return n; | |
| 1999/0121 | } error(Egreg); return 0; /* not reached */ | |
| 1999/0608/sys/src/9/mpc/devrtc.c:157,162 – 1999/0612/sys/src/9/mpc/devrtc.c:172,187 | ||
| 1999/0608 | n = Nvsize - t; ilock(&nvrtlock); memmove((uchar*)(NVRAMMEM + Nvoff + offset), buf, n); | |
| 1999/0612 | iunlock(&nvrtlock); return n; case Qnvram2: if(offset >= Nvsize2) return 0; t = offset; if(t + n > Nvsize2) n = Nvsize2 - t; ilock(&nvrtlock); memmove((uchar*)(NVRAMMEM + Nvoff2 + offset), buf, n); | |
| 1999/0608 | iunlock(&nvrtlock); return n; | |
| 1999/0121 | } | |