| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|---|
| 1 | 2 | #ifndef _VDSO_DATAPAGE_H |
|---|
| 2 | 3 | #define _VDSO_DATAPAGE_H |
|---|
| 3 | 4 | #ifdef __KERNEL__ |
|---|
| .. | .. |
|---|
| 6 | 7 | * Copyright (C) 2002 Peter Bergner <bergner@vnet.ibm.com>, IBM |
|---|
| 7 | 8 | * Copyright (C) 2005 Benjamin Herrenschmidy <benh@kernel.crashing.org>, |
|---|
| 8 | 9 | * IBM Corp. |
|---|
| 9 | | - * |
|---|
| 10 | | - * This program is free software; you can redistribute it and/or |
|---|
| 11 | | - * modify it under the terms of the GNU General Public License |
|---|
| 12 | | - * as published by the Free Software Foundation; either version |
|---|
| 13 | | - * 2 of the License, or (at your option) any later version. |
|---|
| 14 | 10 | */ |
|---|
| 15 | 11 | |
|---|
| 16 | 12 | |
|---|
| .. | .. |
|---|
| 85 | 81 | __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ |
|---|
| 86 | 82 | __s32 wtom_clock_nsec; /* Wall to monotonic clock nsec */ |
|---|
| 87 | 83 | __s64 wtom_clock_sec; /* Wall to monotonic clock sec */ |
|---|
| 88 | | - struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ |
|---|
| 84 | + __s64 stamp_xtime_sec; /* xtime secs as at tb_orig_stamp */ |
|---|
| 85 | + __s64 stamp_xtime_nsec; /* xtime nsecs as at tb_orig_stamp */ |
|---|
| 89 | 86 | __u32 hrtimer_res; /* hrtimer resolution */ |
|---|
| 90 | 87 | __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ |
|---|
| 91 | 88 | __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ |
|---|
| .. | .. |
|---|
| 106 | 103 | __u32 tz_dsttime; /* Type of dst correction 0x5C */ |
|---|
| 107 | 104 | __s32 wtom_clock_sec; /* Wall to monotonic clock */ |
|---|
| 108 | 105 | __s32 wtom_clock_nsec; |
|---|
| 109 | | - struct timespec stamp_xtime; /* xtime as at tb_orig_stamp */ |
|---|
| 106 | + __s32 stamp_xtime_sec; /* xtime seconds as at tb_orig_stamp */ |
|---|
| 107 | + __s32 stamp_xtime_nsec; /* xtime nsecs as at tb_orig_stamp */ |
|---|
| 110 | 108 | __u32 stamp_sec_fraction; /* fractional seconds of stamp_xtime */ |
|---|
| 111 | 109 | __u32 hrtimer_res; /* hrtimer resolution */ |
|---|
| 112 | 110 | __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ |
|---|
| 113 | | - __u32 dcache_block_size; /* L1 d-cache block size */ |
|---|
| 114 | | - __u32 icache_block_size; /* L1 i-cache block size */ |
|---|
| 115 | | - __u32 dcache_log_block_size; /* L1 d-cache log block size */ |
|---|
| 116 | | - __u32 icache_log_block_size; /* L1 i-cache log block size */ |
|---|
| 117 | 111 | }; |
|---|
| 118 | 112 | |
|---|
| 119 | 113 | #endif /* CONFIG_PPC64 */ |
|---|
| 120 | 114 | |
|---|
| 121 | 115 | extern struct vdso_data *vdso_data; |
|---|
| 122 | 116 | |
|---|
| 117 | +#else /* __ASSEMBLY__ */ |
|---|
| 118 | + |
|---|
| 119 | +.macro get_datapage ptr, tmp |
|---|
| 120 | + bcl 20, 31, .+4 |
|---|
| 121 | + mflr \ptr |
|---|
| 122 | + addi \ptr, \ptr, (__kernel_datapage_offset - (.-4))@l |
|---|
| 123 | + lwz \tmp, 0(\ptr) |
|---|
| 124 | + add \ptr, \tmp, \ptr |
|---|
| 125 | +.endm |
|---|
| 126 | + |
|---|
| 123 | 127 | #endif /* __ASSEMBLY__ */ |
|---|
| 124 | 128 | |
|---|
| 125 | 129 | #endif /* __KERNEL__ */ |
|---|