7ZZ -> 730
[unix-history] / usr / src / sys / vax / include / clock.h
index df55c63..f734d0c 100644 (file)
@@ -1,20 +1,39 @@
-/*     clock.h 3.2     %G%     */
+/*     clock.h 4.5     81/02/23        */
 
 /*
  * VAX clock registers
  */
 
 
 /*
  * VAX clock registers
  */
 
-#define        ICCS_RUN        0x1
-#define        ICCS_TRANS      0x10
-#define        ICCS_SS         0x20
-#define        ICCS_IE         0x40
-#define        ICCS_INT        0x80
+#define        ICCS_RUN        0x00000001
+#define        ICCS_TRANS      0x00000010
+#define        ICCS_SS         0x00000020
+#define        ICCS_IE         0x00000040
+#define        ICCS_INT        0x00000080
 #define        ICCS_ERR        0x80000000
        
 #define        ICCS_ERR        0x80000000
        
-/* THIS IS RIDICULOUS */
-#define        YRCURR  1980            /* current year */
+#define        SECDAY          ((unsigned)(24*60*60))          /* seconds per day */
+#define        SECYR           ((unsigned)(365*SECDAY))        /* per common year */
+/*
+ * TODRZERO is the what the TODR should contain when the ``year'' begins.
+ * The TODR should always contain a number between 0 and SECYR+SECDAY.
+ */
+#define        TODRZERO        ((unsigned)(1<<28))
+
+#define        YRREF           1970
+#define        LEAPYEAR(year)  ((year)%4==0)   /* good till time becomes negative */
 
 
-#define        YRREF   1970            /* reference year for time */
-#define        SECHR   (60*60)         /* seconds/hr */
-#define        SECDAY  (24*SECHR)      /* seconds/day */
-#define        SECYR   (365*SECDAY)    /* seconds/common year */
+/*
+ * Start a 60 HZ clock.
+ */
+#define        clkstart() {\
+       mtpr(NICR, -16667);     /* 16.667 milli-seconds */\
+       mtpr(ICCS, ICCS_RUN+ICCS_IE+ICCS_TRANS+ICCS_INT+ICCS_ERR);\
+}
+#define        clkreld()       mtpr(ICCS, ICCS_RUN+ICCS_IE+ICCS_INT+ICCS_ERR)
+
+#define        clkwrap()       (((unsigned)mfpr(TODR) - TODRZERO)/100 > SECYR+SECDAY)
+
+/*
+ * Software clock is software interrupt level 8
+ */
+#define        setsoftclock()  mtpr(SIRR, 0x8)