2
0

target_prctl_unalign.h 751 B

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