home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0010 - 0019 / ibm0010-0019 / ibm0010.tar / ibm0010 / UNIX3862.ZIP / U386-06.ZIP / U386-6.TD0 / usr / include / sys / rtc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-06-26  |  2.2 KB  |  83 lines

  1. /*    Copyright (c) 1984, 1986, 1987, 1988 AT&T    */
  2. /*      All Rights Reserved      */
  3.  
  4. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T    */
  5. /*    The copyright notice above does not evidence any       */
  6. /*    actual or intended publication of such source code.    */
  7.  
  8.  
  9. #ident    "@(#)head.sys:rtc.h    1.4"
  10.  
  11. /*
  12.  * Definitions for Real Time Clock driver (Motorola MC146818 chip).
  13.  */
  14.  
  15. #define    RTC_ADDR    0x70    /* I/O port address of for register select */
  16. #define    RTC_DATA    0x71    /* I/O port address for data read/write */
  17.  
  18. /*
  19.  * Register A definitions
  20.  */
  21. #define    RTC_A        0x0a    /* register A address */
  22. #define    RTC_UIP        0x80    /* Update in progress bit */
  23. #define    RTC_DIV0    0x00    /* Time base of 4.194304 MHz */
  24. #define    RTC_DIV1    0x10    /* Time base of 1.048576 MHz */
  25. #define    RTC_DIV2    0x20    /* Time base of 32.768 KHz */
  26. #define    RTC_RATE6    0x06    /* interrupt rate of 976.562 */
  27.  
  28. /*
  29.  * Register B definitions
  30.  */
  31. #define    RTC_B        0x0b    /* register B address */
  32. #define    RTC_SET        0x80    /* stop updates for time set */
  33. #define    RTC_PIE        0x40    /* Periodic interrupt enable */
  34. #define    RTC_AIE        0x20    /* Alarm interrupt enable */
  35. #define    RTC_UIE        0x10    /* Update ended interrupt enable */
  36. #define    RTC_SQWE    0x08    /* Square wave enable */
  37. #define    RTC_DM        0x04    /* Date mode, 1 = binary, 0 = BCD */
  38. #define    RTC_HM        0x02    /* hour mode, 1 = 24 hour, 0 = 12 hour */
  39. #define    RTC_DSE        0x01    /* Daylight savings enable */
  40.  
  41. /* 
  42.  * Register C definitions
  43.  */
  44. #define    RTC_C        0x0c    /* register C address */
  45. #define    RTC_IRQF    0x80    /* IRQ flag */
  46. #define    RTC_PF        0x40    /* PF flag bit */
  47. #define    RTC_AF        0x20    /* AF flag bit */
  48. #define    RTC_UF        0x10    /* UF flag bit */
  49.  
  50. /*
  51.  * Register D definitions
  52.  */
  53. #define    RTC_D        0x0d    /* register D address */
  54. #define    RTC_VRT        0x80    /* Valid RAM and time bit */
  55.  
  56. #define    RTC_NREG    0x0e    /* number of RTC registers */
  57. #define    RTC_NREGP    0x0a    /* number of RTC registers to set time */
  58.  
  59. /*
  60.  * Ioctl definitions for accessing RTC.
  61.  */
  62. #define    RTCIOC    ('R' << 8)
  63.  
  64. #define    RTCRTIME    (RTCIOC | 0x01)        /* Read time from RTC */
  65. #define    RTCSTIME    (RTCIOC | 0x02)        /* Set time into RTC */
  66.  
  67. struct    rtc_t {
  68.     char    rtc_sec;
  69.     char    rtc_asec;
  70.     char    rtc_min;
  71.     char    rtc_amin;
  72.     char    rtc_hr;
  73.     char    rtc_ahr;
  74.     char    rtc_dow;
  75.     char    rtc_dom;
  76.     char    rtc_mon;
  77.     char    rtc_yr;
  78.     char    rtc_statusa;
  79.     char    rtc_statusb;
  80.     char    rtc_statusc;
  81.     char    rtc_statusd;
  82. };
  83.