/* * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. */ #ifndef _ASM_SPARC_VVAR_DATA_H #define _ASM_SPARC_VVAR_DATA_H #include <asm/clocksource.h> #include <linux/seqlock.h> #include <linux/time.h> #include <linux/types.h> struct vvar_data { unsigned int seq; int vclock_mode; struct { /* extract of a clocksource struct */ u64 cycle_last; u64 mask; int mult; int shift; } clock; /* open coded 'struct timespec' */ u64 wall_time_sec; u64 wall_time_snsec; u64 monotonic_time_snsec; u64 monotonic_time_sec; u64 monotonic_time_coarse_sec; u64 monotonic_time_coarse_nsec; u64 wall_time_coarse_sec; u64 wall_time_coarse_nsec; int tz_minuteswest; int tz_dsttime; }; extern struct vvar_data *vvar_data; extern int vdso_fix_stick;
static inline unsigned int vvar_read_begin(const struct vvar_data *s) { unsigned int ret; repeat: ret = READ_ONCE(s->seq); if (unlikely(ret & 1)) { cpu_relax(); goto repeat; } smp_rmb(); /* Finish all reads before we return seq */ return ret; }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Nagarathnam Muthusamy | 53 | 100.00% | 1 | 100.00% |
Total | 53 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Nagarathnam Muthusamy | 31 | 100.00% | 1 | 100.00% |
Total | 31 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Nagarathnam Muthusamy | 21 | 100.00% | 1 | 100.00% |
Total | 21 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Nagarathnam Muthusamy | 21 | 100.00% | 1 | 100.00% |
Total | 21 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Nagarathnam Muthusamy | 219 | 100.00% | 1 | 100.00% |
Total | 219 | 100.00% | 1 | 100.00% |