void rtc_cmos_write(unsigned char val, unsigned char addr) { lock_cmos_prefix(addr); outb(addr, RTC_PORT(0)); outb(val, RTC_PORT(1)); lock_cmos_suffix(addr); }
void vrtc_cmos_write(unsigned char val, unsigned char reg) { if (reg > 0xd || !vrtc_virt_base) return; lock_cmos_prefix(reg); __raw_writeb(val, vrtc_virt_base + (reg << 2)); lock_cmos_suffix(reg); }
/* Routines for accessing the CMOS RAM/RTC. */ unsigned char rtc_cmos_read(unsigned char addr) { unsigned char val; lock_cmos_prefix(addr); outb_p(addr, RTC_PORT(0)); val = inb_p(RTC_PORT(1)); lock_cmos_suffix(addr); return val; }
unsigned char vrtc_cmos_read(unsigned char reg) { unsigned char retval; /* vRTC's registers range from 0x0 to 0xD */ if (reg > 0xd || !vrtc_virt_base) return 0xff; lock_cmos_prefix(reg); retval = __raw_readb(vrtc_virt_base + (reg << 2)); lock_cmos_suffix(reg); return retval; }