.. | .. |
---|
106 | 106 | u32 hrtimer_res; |
---|
107 | 107 | u32 __unused; |
---|
108 | 108 | |
---|
| 109 | +#ifdef CONFIG_GENERIC_CLOCKSOURCE_VDSO |
---|
| 110 | + u32 cs_type_seq; |
---|
| 111 | + char cs_mmdev[16]; |
---|
| 112 | +#endif |
---|
| 113 | + |
---|
109 | 114 | struct arch_vdso_data arch_data; |
---|
110 | 115 | }; |
---|
111 | 116 | |
---|
| 117 | +#if defined(CONFIG_GENERIC_CLOCKSOURCE_VDSO) && !defined(ENABLE_COMPAT_VDSO) |
---|
| 118 | + |
---|
| 119 | +#include <linux/clocksource.h> |
---|
| 120 | + |
---|
| 121 | +struct clksrc_info; |
---|
| 122 | + |
---|
| 123 | +typedef u64 vdso_read_cycles_t(const struct clksrc_info *info); |
---|
| 124 | + |
---|
| 125 | +struct clksrc_info { |
---|
| 126 | + vdso_read_cycles_t *read_cycles; |
---|
| 127 | + struct clksrc_user_mmio_info mmio; |
---|
| 128 | +}; |
---|
| 129 | + |
---|
| 130 | +struct vdso_priv { |
---|
| 131 | + u32 current_cs_type_seq; |
---|
| 132 | + struct clksrc_info clksrc_info[CLOCKSOURCE_VDSO_MMIO + CLKSRC_USER_MMIO_MAX]; |
---|
| 133 | +}; |
---|
| 134 | + |
---|
| 135 | +#endif /* !CONFIG_GENERIC_CLOCKSOURCE_VDSO */ |
---|
| 136 | + |
---|
112 | 137 | /* |
---|
113 | 138 | * We use the hidden visibility to prevent the compiler from generating a GOT |
---|
114 | 139 | * relocation. Not only is going through a GOT useless (the entry couldn't and |
---|