| /* See COPYRIGHT for copyright information. */ |
| |
| #ifndef ROS_KERN_KCLOCK_H |
| #define ROS_KERN_KCLOCK_H |
| #ifndef ROS_KERNEL |
| # error "This is a ROS kernel header; user programs should not #include it" |
| #endif |
| |
| #define IO_RTC 0x070 /* RTC port */ |
| |
| #define MC_NVRAM_START 0xe /* start of NVRAM: offset 14 */ |
| #define MC_NVRAM_SIZE 50 /* 50 bytes of NVRAM */ |
| |
| /* NVRAM bytes 7 & 8: base memory size */ |
| #define NVRAM_BASELO (MC_NVRAM_START + 7) /* low byte; RTC off. 0x15 */ |
| #define NVRAM_BASEHI (MC_NVRAM_START + 8) /* high byte; RTC off. 0x16 */ |
| |
| /* NVRAM bytes 9 & 10: extended memory size */ |
| #define NVRAM_EXTLO (MC_NVRAM_START + 9) /* low byte; RTC off. 0x17 */ |
| #define NVRAM_EXTHI (MC_NVRAM_START + 10) /* high byte; RTC off. 0x18 */ |
| |
| /* NVRAM bytes 34 and 35: extended memory POSTed size */ |
| #define NVRAM_PEXTLO (MC_NVRAM_START + 34) /* low byte; RTC off. 0x30 */ |
| #define NVRAM_PEXTHI (MC_NVRAM_START + 35) /* high byte; RTC off. 0x31 */ |
| |
| /* NVRAM byte 36: current century. (please increment in Dec99!) */ |
| #define NVRAM_CENTURY (MC_NVRAM_START + 36) /* RTC offset 0x32 */ |
| |
| unsigned mc146818_read(unsigned reg); |
| void mc146818_write(unsigned reg, unsigned datum); |
| void kclock_init(void); |
| |
| #endif // !ROS_KERN_KCLOCK_H |