diff --git a/sys/amd64/amd64/tsc.c b/sys/amd64/amd64/tsc.c index be0284049f0..9dba18b0e60 100644 --- a/sys/amd64/amd64/tsc.c +++ b/sys/amd64/amd64/tsc.c @@ -398,18 +398,29 @@ sysbeep(int pitch, int period) /* * RTC support routines */ +static int +bcd2int(int bcd) +{ + return(bcd/16 * 10 + bcd%16); +} -static __inline void +static int +int2bcd(int dez) +{ + return(dez/10 * 16 + dez%10); +} + +static inline void writertc(u_char reg, u_char val) { outb(IO_RTC, reg); outb(IO_RTC + 1, val); } -static __inline int +static int readrtc(int port) { - return(bcd2bin(rtcin(port))); + return(bcd2int(rtcin(port))); } /* @@ -512,9 +523,9 @@ resettodr() tm -= tz.tz_minuteswest * 60 + adjkerntz; - writertc(RTC_SEC, bin2bcd(tm%60)); tm /= 60; /* Write back Seconds */ - writertc(RTC_MIN, bin2bcd(tm%60)); tm /= 60; /* Write back Minutes */ - writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */ + writertc(RTC_SEC, int2bcd(tm%60)); tm /= 60; /* Write back Seconds */ + writertc(RTC_MIN, int2bcd(tm%60)); tm /= 60; /* Write back Minutes */ + writertc(RTC_HRS, int2bcd(tm%24)); tm /= 24; /* Write back Hours */ /* We have now the days since 01-01-1970 in tm */ writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */ @@ -525,10 +536,10 @@ resettodr() /* Now we have the years in y and the day-of-the-year in tm */ #ifdef USE_RTC_CENTURY - writertc(RTC_YEAR, bin2bcd(y%100)); /* Write back Year */ - writertc(RTC_CENTURY, bin2bcd(y/100)); /* ... and Century */ + writertc(RTC_YEAR, int2bcd(y%100)); /* Write back Year */ + writertc(RTC_CENTURY, int2bcd(y/100)); /* ... and Century */ #else - writertc(RTC_YEAR, bin2bcd(y - 1900)); /* Write back Year */ + writertc(RTC_YEAR, int2bcd(y - 1900)); /* Write back Year */ #endif for (m = 0; ; m++) { int ml; @@ -541,8 +552,8 @@ resettodr() tm -= ml; } - writertc(RTC_MONTH, bin2bcd(m + 1)); /* Write back Month */ - writertc(RTC_DAY, bin2bcd(tm + 1)); /* Write back Month Day */ + writertc(RTC_MONTH, int2bcd(m + 1)); /* Write back Month */ + writertc(RTC_DAY, int2bcd(tm + 1)); /* Write back Month Day */ /* Reenable RTC updates and interrupts. */ writertc(RTC_STATUSB, RTCSB_24HR | RTCSB_PINTR); diff --git a/sys/amd64/isa/clock.c b/sys/amd64/isa/clock.c index be0284049f0..9dba18b0e60 100644 --- a/sys/amd64/isa/clock.c +++ b/sys/amd64/isa/clock.c @@ -398,18 +398,29 @@ sysbeep(int pitch, int period) /* * RTC support routines */ +static int +bcd2int(int bcd) +{ + return(bcd/16 * 10 + bcd%16); +} -static __inline void +static int +int2bcd(int dez) +{ + return(dez/10 * 16 + dez%10); +} + +static inline void writertc(u_char reg, u_char val) { outb(IO_RTC, reg); outb(IO_RTC + 1, val); } -static __inline int +static int readrtc(int port) { - return(bcd2bin(rtcin(port))); + return(bcd2int(rtcin(port))); } /* @@ -512,9 +523,9 @@ resettodr() tm -= tz.tz_minuteswest * 60 + adjkerntz; - writertc(RTC_SEC, bin2bcd(tm%60)); tm /= 60; /* Write back Seconds */ - writertc(RTC_MIN, bin2bcd(tm%60)); tm /= 60; /* Write back Minutes */ - writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */ + writertc(RTC_SEC, int2bcd(tm%60)); tm /= 60; /* Write back Seconds */ + writertc(RTC_MIN, int2bcd(tm%60)); tm /= 60; /* Write back Minutes */ + writertc(RTC_HRS, int2bcd(tm%24)); tm /= 24; /* Write back Hours */ /* We have now the days since 01-01-1970 in tm */ writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */ @@ -525,10 +536,10 @@ resettodr() /* Now we have the years in y and the day-of-the-year in tm */ #ifdef USE_RTC_CENTURY - writertc(RTC_YEAR, bin2bcd(y%100)); /* Write back Year */ - writertc(RTC_CENTURY, bin2bcd(y/100)); /* ... and Century */ + writertc(RTC_YEAR, int2bcd(y%100)); /* Write back Year */ + writertc(RTC_CENTURY, int2bcd(y/100)); /* ... and Century */ #else - writertc(RTC_YEAR, bin2bcd(y - 1900)); /* Write back Year */ + writertc(RTC_YEAR, int2bcd(y - 1900)); /* Write back Year */ #endif for (m = 0; ; m++) { int ml; @@ -541,8 +552,8 @@ resettodr() tm -= ml; } - writertc(RTC_MONTH, bin2bcd(m + 1)); /* Write back Month */ - writertc(RTC_DAY, bin2bcd(tm + 1)); /* Write back Month Day */ + writertc(RTC_MONTH, int2bcd(m + 1)); /* Write back Month */ + writertc(RTC_DAY, int2bcd(tm + 1)); /* Write back Month Day */ /* Reenable RTC updates and interrupts. */ writertc(RTC_STATUSB, RTCSB_24HR | RTCSB_PINTR); diff --git a/sys/i386/i386/tsc.c b/sys/i386/i386/tsc.c index be0284049f0..9dba18b0e60 100644 --- a/sys/i386/i386/tsc.c +++ b/sys/i386/i386/tsc.c @@ -398,18 +398,29 @@ sysbeep(int pitch, int period) /* * RTC support routines */ +static int +bcd2int(int bcd) +{ + return(bcd/16 * 10 + bcd%16); +} -static __inline void +static int +int2bcd(int dez) +{ + return(dez/10 * 16 + dez%10); +} + +static inline void writertc(u_char reg, u_char val) { outb(IO_RTC, reg); outb(IO_RTC + 1, val); } -static __inline int +static int readrtc(int port) { - return(bcd2bin(rtcin(port))); + return(bcd2int(rtcin(port))); } /* @@ -512,9 +523,9 @@ resettodr() tm -= tz.tz_minuteswest * 60 + adjkerntz; - writertc(RTC_SEC, bin2bcd(tm%60)); tm /= 60; /* Write back Seconds */ - writertc(RTC_MIN, bin2bcd(tm%60)); tm /= 60; /* Write back Minutes */ - writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */ + writertc(RTC_SEC, int2bcd(tm%60)); tm /= 60; /* Write back Seconds */ + writertc(RTC_MIN, int2bcd(tm%60)); tm /= 60; /* Write back Minutes */ + writertc(RTC_HRS, int2bcd(tm%24)); tm /= 24; /* Write back Hours */ /* We have now the days since 01-01-1970 in tm */ writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */ @@ -525,10 +536,10 @@ resettodr() /* Now we have the years in y and the day-of-the-year in tm */ #ifdef USE_RTC_CENTURY - writertc(RTC_YEAR, bin2bcd(y%100)); /* Write back Year */ - writertc(RTC_CENTURY, bin2bcd(y/100)); /* ... and Century */ + writertc(RTC_YEAR, int2bcd(y%100)); /* Write back Year */ + writertc(RTC_CENTURY, int2bcd(y/100)); /* ... and Century */ #else - writertc(RTC_YEAR, bin2bcd(y - 1900)); /* Write back Year */ + writertc(RTC_YEAR, int2bcd(y - 1900)); /* Write back Year */ #endif for (m = 0; ; m++) { int ml; @@ -541,8 +552,8 @@ resettodr() tm -= ml; } - writertc(RTC_MONTH, bin2bcd(m + 1)); /* Write back Month */ - writertc(RTC_DAY, bin2bcd(tm + 1)); /* Write back Month Day */ + writertc(RTC_MONTH, int2bcd(m + 1)); /* Write back Month */ + writertc(RTC_DAY, int2bcd(tm + 1)); /* Write back Month Day */ /* Reenable RTC updates and interrupts. */ writertc(RTC_STATUSB, RTCSB_24HR | RTCSB_PINTR); diff --git a/sys/i386/isa/clock.c b/sys/i386/isa/clock.c index be0284049f0..9dba18b0e60 100644 --- a/sys/i386/isa/clock.c +++ b/sys/i386/isa/clock.c @@ -398,18 +398,29 @@ sysbeep(int pitch, int period) /* * RTC support routines */ +static int +bcd2int(int bcd) +{ + return(bcd/16 * 10 + bcd%16); +} -static __inline void +static int +int2bcd(int dez) +{ + return(dez/10 * 16 + dez%10); +} + +static inline void writertc(u_char reg, u_char val) { outb(IO_RTC, reg); outb(IO_RTC + 1, val); } -static __inline int +static int readrtc(int port) { - return(bcd2bin(rtcin(port))); + return(bcd2int(rtcin(port))); } /* @@ -512,9 +523,9 @@ resettodr() tm -= tz.tz_minuteswest * 60 + adjkerntz; - writertc(RTC_SEC, bin2bcd(tm%60)); tm /= 60; /* Write back Seconds */ - writertc(RTC_MIN, bin2bcd(tm%60)); tm /= 60; /* Write back Minutes */ - writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */ + writertc(RTC_SEC, int2bcd(tm%60)); tm /= 60; /* Write back Seconds */ + writertc(RTC_MIN, int2bcd(tm%60)); tm /= 60; /* Write back Minutes */ + writertc(RTC_HRS, int2bcd(tm%24)); tm /= 24; /* Write back Hours */ /* We have now the days since 01-01-1970 in tm */ writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */ @@ -525,10 +536,10 @@ resettodr() /* Now we have the years in y and the day-of-the-year in tm */ #ifdef USE_RTC_CENTURY - writertc(RTC_YEAR, bin2bcd(y%100)); /* Write back Year */ - writertc(RTC_CENTURY, bin2bcd(y/100)); /* ... and Century */ + writertc(RTC_YEAR, int2bcd(y%100)); /* Write back Year */ + writertc(RTC_CENTURY, int2bcd(y/100)); /* ... and Century */ #else - writertc(RTC_YEAR, bin2bcd(y - 1900)); /* Write back Year */ + writertc(RTC_YEAR, int2bcd(y - 1900)); /* Write back Year */ #endif for (m = 0; ; m++) { int ml; @@ -541,8 +552,8 @@ resettodr() tm -= ml; } - writertc(RTC_MONTH, bin2bcd(m + 1)); /* Write back Month */ - writertc(RTC_DAY, bin2bcd(tm + 1)); /* Write back Month Day */ + writertc(RTC_MONTH, int2bcd(m + 1)); /* Write back Month */ + writertc(RTC_DAY, int2bcd(tm + 1)); /* Write back Month Day */ /* Reenable RTC updates and interrupts. */ writertc(RTC_STATUSB, RTCSB_24HR | RTCSB_PINTR); diff --git a/sys/isa/atrtc.c b/sys/isa/atrtc.c index be0284049f0..9dba18b0e60 100644 --- a/sys/isa/atrtc.c +++ b/sys/isa/atrtc.c @@ -398,18 +398,29 @@ sysbeep(int pitch, int period) /* * RTC support routines */ +static int +bcd2int(int bcd) +{ + return(bcd/16 * 10 + bcd%16); +} -static __inline void +static int +int2bcd(int dez) +{ + return(dez/10 * 16 + dez%10); +} + +static inline void writertc(u_char reg, u_char val) { outb(IO_RTC, reg); outb(IO_RTC + 1, val); } -static __inline int +static int readrtc(int port) { - return(bcd2bin(rtcin(port))); + return(bcd2int(rtcin(port))); } /* @@ -512,9 +523,9 @@ resettodr() tm -= tz.tz_minuteswest * 60 + adjkerntz; - writertc(RTC_SEC, bin2bcd(tm%60)); tm /= 60; /* Write back Seconds */ - writertc(RTC_MIN, bin2bcd(tm%60)); tm /= 60; /* Write back Minutes */ - writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */ + writertc(RTC_SEC, int2bcd(tm%60)); tm /= 60; /* Write back Seconds */ + writertc(RTC_MIN, int2bcd(tm%60)); tm /= 60; /* Write back Minutes */ + writertc(RTC_HRS, int2bcd(tm%24)); tm /= 24; /* Write back Hours */ /* We have now the days since 01-01-1970 in tm */ writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */ @@ -525,10 +536,10 @@ resettodr() /* Now we have the years in y and the day-of-the-year in tm */ #ifdef USE_RTC_CENTURY - writertc(RTC_YEAR, bin2bcd(y%100)); /* Write back Year */ - writertc(RTC_CENTURY, bin2bcd(y/100)); /* ... and Century */ + writertc(RTC_YEAR, int2bcd(y%100)); /* Write back Year */ + writertc(RTC_CENTURY, int2bcd(y/100)); /* ... and Century */ #else - writertc(RTC_YEAR, bin2bcd(y - 1900)); /* Write back Year */ + writertc(RTC_YEAR, int2bcd(y - 1900)); /* Write back Year */ #endif for (m = 0; ; m++) { int ml; @@ -541,8 +552,8 @@ resettodr() tm -= ml; } - writertc(RTC_MONTH, bin2bcd(m + 1)); /* Write back Month */ - writertc(RTC_DAY, bin2bcd(tm + 1)); /* Write back Month Day */ + writertc(RTC_MONTH, int2bcd(m + 1)); /* Write back Month */ + writertc(RTC_DAY, int2bcd(tm + 1)); /* Write back Month Day */ /* Reenable RTC updates and interrupts. */ writertc(RTC_STATUSB, RTCSB_24HR | RTCSB_PINTR);