8d647da1ed
for better structure. Much of this is related to <sys/clock.h>, which should really have been called <sys/calendar.h>, but unless and until we need the name, the repocopy can wait. In general the kernel does not know about minutes, hours, days, timezones, daylight savings time, leap-years and such. All that is theoretically a matter for userland only. Parts of kernel code does however care: badly designed filesystems store timestamps in local time and RTC chips almost universally track time in a YY-MM-DD HH:MM:SS format, and sometimes in local timezone instead of UTC. For this we have <sys/clock.h> <sys/time.h> on the other hand, deals with time_t, timeval, timespec and so on. These know only seconds and fractions thereof. Move inittodr() and resettodr() prototypes to <sys/time.h>. Retain the names as it is one of the few surviving PDP/VAX references. Move startrtclock() to <machine/clock.h> on relevant platforms, it is a MD call between machdep.c/clock.c. Remove references to it elsewhere. Remove a lot of unnecessary <sys/clock.h> includes. Move the machdep.disable_rtc_set sysctl to subr_rtc.c where it belongs. XXX: should be kern.disable_rtc_set really, it's not MD.
43 lines
835 B
C
43 lines
835 B
C
/*-
|
|
* Kernel interface to machine-dependent clock driver.
|
|
* Garrett Wollman, September 1994.
|
|
* This file is in the public domain.
|
|
*
|
|
* $FreeBSD$
|
|
*/
|
|
|
|
#ifndef _MACHINE_CLOCK_H_
|
|
#define _MACHINE_CLOCK_H_
|
|
|
|
#ifdef _KERNEL
|
|
/*
|
|
* i386 to clock driver interface.
|
|
* XXX large parts of the driver and its interface are misplaced.
|
|
*/
|
|
extern int clkintr_pending;
|
|
extern int statclock_disable;
|
|
extern u_int i8254_freq;
|
|
extern int i8254_max_count;
|
|
extern uint64_t tsc_freq;
|
|
extern int tsc_is_broken;
|
|
|
|
void i8254_init(void);
|
|
|
|
/*
|
|
* Driver to clock driver interface.
|
|
*/
|
|
|
|
void startrtclock(void);
|
|
void timer_restore(void);
|
|
void init_TSC(void);
|
|
void init_TSC_tc(void);
|
|
|
|
#define HAS_TIMER_SPKR 1
|
|
int timer_spkr_acquire(void);
|
|
int timer_spkr_release(void);
|
|
void timer_spkr_setfreq(int freq);
|
|
|
|
#endif /* _KERNEL */
|
|
|
|
#endif /* !_MACHINE_CLOCK_H_ */
|