1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) 2020 ARM Ltd.
4 */
5#ifndef __ASM_VDSO_PROCESSOR_H
6#define __ASM_VDSO_PROCESSOR_H
7
8#ifndef __ASSEMBLY__
9
10/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
11static __always_inline void rep_nop(void)
12{
13 asm volatile("rep; nop" ::: "memory");
14}
15
16static __always_inline void cpu_relax(void)
17{
18 rep_nop();
19}
20
21struct getcpu_cache;
22
23notrace long __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused);
24
25#endif /* __ASSEMBLY__ */
26
27#endif /* __ASM_VDSO_PROCESSOR_H */
28

source code of linux/arch/x86/include/asm/vdso/processor.h