You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (62 commits) posix-clocks: Check write permissions in posix syscalls hrtimer: Remove empty hrtimer_init_hres_timer() hrtimer: Update hrtimer->state documentation hrtimer: Update base[CLOCK_BOOTTIME].offset correctly timers: Export CLOCK_BOOTTIME via the posix timers interface timers: Add CLOCK_BOOTTIME hrtimer base time: Extend get_xtime_and_monotonic_offset() to also return sleep time: Introduce get_monotonic_boottime and ktime_get_boottime hrtimers: extend hrtimer base code to handle more then 2 clockids ntp: Remove redundant and incorrect parameter check mn10300: Switch do_timer() to xtimer_update() posix clocks: Introduce dynamic clocks posix-timers: Cleanup namespace posix-timers: Add support for fd based clocks x86: Add clock_adjtime for x86 posix-timers: Introduce a syscall for clock tuning. time: Splitout compat timex accessors ntp: Add ADJ_SETOFFSET mode bit time: Introduce timekeeping_inject_offset posix-timer: Update comment ... Fix up new system-call-related conflicts in arch/x86/ia32/ia32entry.S arch/x86/include/asm/unistd_32.h arch/x86/include/asm/unistd_64.h arch/x86/kernel/syscall_table_32.S (name_to_handle_at()/open_by_handle_at() vs clock_adjtime()), and some due to movement of get_jiffies_64() in: kernel/time.c
This commit is contained in:
+19
-11
@@ -53,6 +53,8 @@ MODULE_LICENSE("GPL");
|
||||
|
||||
#define RTC_BITS 55 /* 55 bits for this implementation */
|
||||
|
||||
static struct k_clock sgi_clock;
|
||||
|
||||
extern unsigned long sn_rtc_cycles_per_second;
|
||||
|
||||
#define RTC_COUNTER_ADDR ((long *)LOCAL_MMR_ADDR(SH_RTC))
|
||||
@@ -487,7 +489,7 @@ static int sgi_clock_get(clockid_t clockid, struct timespec *tp)
|
||||
return 0;
|
||||
};
|
||||
|
||||
static int sgi_clock_set(clockid_t clockid, struct timespec *tp)
|
||||
static int sgi_clock_set(const clockid_t clockid, const struct timespec *tp)
|
||||
{
|
||||
|
||||
u64 nsec;
|
||||
@@ -763,15 +765,21 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
|
||||
return err;
|
||||
}
|
||||
|
||||
static int sgi_clock_getres(const clockid_t which_clock, struct timespec *tp)
|
||||
{
|
||||
tp->tv_sec = 0;
|
||||
tp->tv_nsec = sgi_clock_period;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct k_clock sgi_clock = {
|
||||
.res = 0,
|
||||
.clock_set = sgi_clock_set,
|
||||
.clock_get = sgi_clock_get,
|
||||
.timer_create = sgi_timer_create,
|
||||
.nsleep = do_posix_clock_nonanosleep,
|
||||
.timer_set = sgi_timer_set,
|
||||
.timer_del = sgi_timer_del,
|
||||
.timer_get = sgi_timer_get
|
||||
.clock_set = sgi_clock_set,
|
||||
.clock_get = sgi_clock_get,
|
||||
.clock_getres = sgi_clock_getres,
|
||||
.timer_create = sgi_timer_create,
|
||||
.timer_set = sgi_timer_set,
|
||||
.timer_del = sgi_timer_del,
|
||||
.timer_get = sgi_timer_get
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -831,8 +839,8 @@ static int __init mmtimer_init(void)
|
||||
(unsigned long) node);
|
||||
}
|
||||
|
||||
sgi_clock_period = sgi_clock.res = NSEC_PER_SEC / sn_rtc_cycles_per_second;
|
||||
register_posix_clock(CLOCK_SGI_CYCLE, &sgi_clock);
|
||||
sgi_clock_period = NSEC_PER_SEC / sn_rtc_cycles_per_second;
|
||||
posix_timers_register_clock(CLOCK_SGI_CYCLE, &sgi_clock);
|
||||
|
||||
printk(KERN_INFO "%s: v%s, %ld MHz\n", MMTIMER_DESC, MMTIMER_VERSION,
|
||||
sn_rtc_cycles_per_second/(unsigned long)1E6);
|
||||
|
||||
Reference in New Issue
Block a user