Commit | Line | Data |
---|---|---|
b020632e MS |
1 | #ifndef __S390_VDSO_H__ |
2 | #define __S390_VDSO_H__ | |
3 | ||
4 | #ifdef __KERNEL__ | |
5 | ||
6 | /* Default link addresses for the vDSOs */ | |
7 | #define VDSO32_LBASE 0 | |
8 | #define VDSO64_LBASE 0 | |
9 | ||
10 | #define VDSO_VERSION_STRING LINUX_2.6.26 | |
11 | ||
12 | #ifndef __ASSEMBLY__ | |
13 | ||
14 | /* | |
c742b31c | 15 | * Note about the vdso_data and vdso_per_cpu_data structures: |
b020632e | 16 | * |
c742b31c | 17 | * NEVER USE THEM IN USERSPACE CODE DIRECTLY. The layout of the |
b020632e MS |
18 | * structure is supposed to be known only to the function in the vdso |
19 | * itself and may change without notice. | |
20 | */ | |
21 | ||
22 | struct vdso_data { | |
23 | __u64 tb_update_count; /* Timebase atomicity ctr 0x00 */ | |
24 | __u64 xtime_tod_stamp; /* TOD clock for xtime 0x08 */ | |
25 | __u64 xtime_clock_sec; /* Kernel time 0x10 */ | |
26 | __u64 xtime_clock_nsec; /* 0x18 */ | |
27 | __u64 wtom_clock_sec; /* Wall to monotonic clock 0x20 */ | |
28 | __u64 wtom_clock_nsec; /* 0x28 */ | |
29 | __u32 tz_minuteswest; /* Minutes west of Greenwich 0x30 */ | |
30 | __u32 tz_dsttime; /* Type of dst correction 0x34 */ | |
c742b31c MS |
31 | __u32 ectg_available; |
32 | }; | |
33 | ||
34 | struct vdso_per_cpu_data { | |
35 | __u64 ectg_timer_base; | |
36 | __u64 ectg_user_time; | |
b020632e MS |
37 | }; |
38 | ||
39 | extern struct vdso_data *vdso_data; | |
40 | ||
c742b31c MS |
41 | #ifdef CONFIG_64BIT |
42 | int vdso_alloc_per_cpu(int cpu, struct _lowcore *lowcore); | |
43 | void vdso_free_per_cpu(int cpu, struct _lowcore *lowcore); | |
44 | #endif | |
45 | ||
b020632e MS |
46 | #endif /* __ASSEMBLY__ */ |
47 | ||
48 | #endif /* __KERNEL__ */ | |
49 | ||
50 | #endif /* __S390_VDSO_H__ */ |