xen-asm.S (498495dba268b20e8eadd7fe93c140c68b6cc9d2) xen-asm.S (55aedddb6149ab71bec9f050846855113977b033)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Asm versions of Xen pv-ops, suitable for direct use.
4 *
5 * We only bother with direct forms (ie, vcpu in percpu data) of the
6 * operations here; the indirect forms are better handled in C.
7 */
8
9#include <asm/asm-offsets.h>
10#include <asm/percpu.h>
11#include <asm/processor-flags.h>
12#include <asm/frame.h>
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Asm versions of Xen pv-ops, suitable for direct use.
4 *
5 * We only bother with direct forms (ie, vcpu in percpu data) of the
6 * operations here; the indirect forms are better handled in C.
7 */
8
9#include <asm/asm-offsets.h>
10#include <asm/percpu.h>
11#include <asm/processor-flags.h>
12#include <asm/frame.h>
13#include <asm/asm.h>
13
14#include <linux/linkage.h>
15
16/*
17 * Enable events. This clears the event mask and tests the pending
18 * event status with one and operation. If there are pending events,
19 * then enter the hypervisor to get them handled.
20 */

--- 109 unchanged lines hidden (view full) ---

130 pop %rsi
131 pop %rdx
132 pop %rcx
133 pop %rax
134#endif
135 FRAME_END
136 ret
137ENDPROC(check_events)
14
15#include <linux/linkage.h>
16
17/*
18 * Enable events. This clears the event mask and tests the pending
19 * event status with one and operation. If there are pending events,
20 * then enter the hypervisor to get them handled.
21 */

--- 109 unchanged lines hidden (view full) ---

131 pop %rsi
132 pop %rdx
133 pop %rcx
134 pop %rax
135#endif
136 FRAME_END
137 ret
138ENDPROC(check_events)
139
140ENTRY(xen_read_cr2)
141 FRAME_BEGIN
142 _ASM_MOV PER_CPU_VAR(xen_vcpu), %_ASM_AX
143 _ASM_MOV XEN_vcpu_info_arch_cr2(%_ASM_AX), %_ASM_AX
144 FRAME_END
145 ret
146 ENDPROC(xen_read_cr2);
147
148ENTRY(xen_read_cr2_direct)
149 FRAME_BEGIN
150 _ASM_MOV PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_arch_cr2, %_ASM_AX
151 FRAME_END
152 ret
153 ENDPROC(xen_read_cr2_direct);