#include <linux/clockchips.h>
#include <linux/slab.h>
#include <asm/uv/uv_mmrs.h>
#include <asm/uv/uv_hub.h>
#include <asm/uv/bios.h>
#include <asm/uv/uv.h>
#include <asm/apic.h>
#include <asm/cpu.h>
#define RTC_NAME …
static u64 uv_read_rtc(struct clocksource *cs);
static int uv_rtc_next_event(unsigned long, struct clock_event_device *);
static int uv_rtc_shutdown(struct clock_event_device *evt);
static struct clocksource clocksource_uv = …;
static struct clock_event_device clock_event_device_uv = …;
static DEFINE_PER_CPU(struct clock_event_device, cpu_ced);
struct uv_rtc_timer_head { … };
static struct uv_rtc_timer_head **blade_info __read_mostly;
static int uv_rtc_evt_enable;
static void uv_rtc_send_IPI(int cpu)
{ … }
static int uv_intr_pending(int pnode)
{ … }
static int uv_setup_intr(int cpu, u64 expires)
{ … }
static __init void uv_rtc_deallocate_timers(void)
{ … }
static __init int uv_rtc_allocate_timers(void)
{ … }
static void uv_rtc_find_next_timer(struct uv_rtc_timer_head *head, int pnode)
{ … }
static int uv_rtc_set_timer(int cpu, u64 expires)
{ … }
static int uv_rtc_unset_timer(int cpu, int force)
{ … }
static u64 uv_read_rtc(struct clocksource *cs)
{ … }
static int uv_rtc_next_event(unsigned long delta,
struct clock_event_device *ced)
{ … }
static int uv_rtc_shutdown(struct clock_event_device *evt)
{ … }
static void uv_rtc_interrupt(void)
{ … }
static int __init uv_enable_evt_rtc(char *str)
{ … }
__setup(…);
static __init void uv_rtc_register_clockevents(struct work_struct *dummy)
{ … }
static __init int uv_rtc_setup_clock(void)
{ … }
arch_initcall(uv_rtc_setup_clock);