1*053f45beSAndroid Build Coastguard Worker // SPDX-License-Identifier: GPL-2.0-only 2*053f45beSAndroid Build Coastguard Worker #ifndef __SELFTESTS_X86_HELPERS_H 3*053f45beSAndroid Build Coastguard Worker #define __SELFTESTS_X86_HELPERS_H 4*053f45beSAndroid Build Coastguard Worker 5*053f45beSAndroid Build Coastguard Worker #include <asm/processor-flags.h> 6*053f45beSAndroid Build Coastguard Worker get_eflags(void)7*053f45beSAndroid Build Coastguard Workerstatic inline unsigned long get_eflags(void) 8*053f45beSAndroid Build Coastguard Worker { 9*053f45beSAndroid Build Coastguard Worker #ifdef __x86_64__ 10*053f45beSAndroid Build Coastguard Worker return __builtin_ia32_readeflags_u64(); 11*053f45beSAndroid Build Coastguard Worker #else 12*053f45beSAndroid Build Coastguard Worker return __builtin_ia32_readeflags_u32(); 13*053f45beSAndroid Build Coastguard Worker #endif 14*053f45beSAndroid Build Coastguard Worker } 15*053f45beSAndroid Build Coastguard Worker set_eflags(unsigned long eflags)16*053f45beSAndroid Build Coastguard Workerstatic inline void set_eflags(unsigned long eflags) 17*053f45beSAndroid Build Coastguard Worker { 18*053f45beSAndroid Build Coastguard Worker #ifdef __x86_64__ 19*053f45beSAndroid Build Coastguard Worker __builtin_ia32_writeeflags_u64(eflags); 20*053f45beSAndroid Build Coastguard Worker #else 21*053f45beSAndroid Build Coastguard Worker __builtin_ia32_writeeflags_u32(eflags); 22*053f45beSAndroid Build Coastguard Worker #endif 23*053f45beSAndroid Build Coastguard Worker } 24*053f45beSAndroid Build Coastguard Worker 25*053f45beSAndroid Build Coastguard Worker #endif /* __SELFTESTS_X86_HELPERS_H */ 26