1*6e8dcacdSRichard Henderson /* 2*6e8dcacdSRichard Henderson * Generic prctl unalign functions for linux-user 3*6e8dcacdSRichard Henderson * 4*6e8dcacdSRichard Henderson * SPDX-License-Identifier: GPL-2.0-or-later 5*6e8dcacdSRichard Henderson */ 6*6e8dcacdSRichard Henderson #ifndef GENERIC_TARGET_PRCTL_UNALIGN_H 7*6e8dcacdSRichard Henderson #define GENERIC_TARGET_PRCTL_UNALIGN_H 8*6e8dcacdSRichard Henderson do_prctl_get_unalign(CPUArchState * env,target_long arg2)9*6e8dcacdSRichard Hendersonstatic abi_long do_prctl_get_unalign(CPUArchState *env, target_long arg2) 10*6e8dcacdSRichard Henderson { 11*6e8dcacdSRichard Henderson CPUState *cs = env_cpu(env); 12*6e8dcacdSRichard Henderson uint32_t res = PR_UNALIGN_NOPRINT; 13*6e8dcacdSRichard Henderson if (cs->prctl_unalign_sigbus) { 14*6e8dcacdSRichard Henderson res |= PR_UNALIGN_SIGBUS; 15*6e8dcacdSRichard Henderson } 16*6e8dcacdSRichard Henderson return put_user_u32(res, arg2); 17*6e8dcacdSRichard Henderson } 18*6e8dcacdSRichard Henderson #define do_prctl_get_unalign do_prctl_get_unalign 19*6e8dcacdSRichard Henderson do_prctl_set_unalign(CPUArchState * env,target_long arg2)20*6e8dcacdSRichard Hendersonstatic abi_long do_prctl_set_unalign(CPUArchState *env, target_long arg2) 21*6e8dcacdSRichard Henderson { 22*6e8dcacdSRichard Henderson env_cpu(env)->prctl_unalign_sigbus = arg2 & PR_UNALIGN_SIGBUS; 23*6e8dcacdSRichard Henderson return 0; 24*6e8dcacdSRichard Henderson } 25*6e8dcacdSRichard Henderson #define do_prctl_set_unalign do_prctl_set_unalign 26*6e8dcacdSRichard Henderson 27*6e8dcacdSRichard Henderson #endif /* GENERIC_TARGET_PRCTL_UNALIGN_H */ 28