Line data Source code
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. */ 11 : static __always_inline void rep_nop(void) 12 : { 13 166424849 : asm volatile("rep; nop" ::: "memory"); 14 : } 15 : 16 : static __always_inline void cpu_relax(void) 17 : { 18 166424849 : rep_nop(); 19 153670541 : } 20 : 21 : struct getcpu_cache; 22 : 23 : notrace long __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused); 24 : 25 : #endif /* __ASSEMBLY__ */ 26 : 27 : #endif /* __ASM_VDSO_PROCESSOR_H */