signal.c (2bf40d0841b942e7ba12953d515e62a436f0af84) signal.c (c979d901c8016082cd55a5789998c1cdfa26beef)
1/*
2 * Emulation of Linux signals
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 * Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by

--- 25 unchanged lines hidden (view full) ---

34 target_ulong r28, r29, r30, r31;
35 target_ulong sa0;
36 target_ulong lc0;
37 target_ulong sa1;
38 target_ulong lc1;
39 target_ulong m0;
40 target_ulong m1;
41 target_ulong usr;
1/*
2 * Emulation of Linux signals
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 * Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by

--- 25 unchanged lines hidden (view full) ---

34 target_ulong r28, r29, r30, r31;
35 target_ulong sa0;
36 target_ulong lc0;
37 target_ulong sa1;
38 target_ulong lc1;
39 target_ulong m0;
40 target_ulong m1;
41 target_ulong usr;
42 target_ulong p3_0;
43 target_ulong gp;
44 target_ulong ugp;
45 target_ulong pc;
46 target_ulong cause;
47 target_ulong badva;
42 target_ulong gp;
43 target_ulong ugp;
44 target_ulong pc;
45 target_ulong cause;
46 target_ulong badva;
48 target_ulong pad1;
49 target_ulong pad2;
50 target_ulong pad3;
47 target_ulong pred[NUM_PREGS];
51};
52
53struct target_ucontext {
54 unsigned long uc_flags;
55 target_ulong uc_link; /* target pointer */
56 target_stack_t uc_stack;
57 struct target_sigcontext uc_mcontext;
58 target_sigset_t uc_sigmask;

--- 54 unchanged lines hidden (view full) ---

113 __put_user(env->gpr[HEX_REG_R31], &sc->r31);
114 __put_user(env->gpr[HEX_REG_SA0], &sc->sa0);
115 __put_user(env->gpr[HEX_REG_LC0], &sc->lc0);
116 __put_user(env->gpr[HEX_REG_SA1], &sc->sa1);
117 __put_user(env->gpr[HEX_REG_LC1], &sc->lc1);
118 __put_user(env->gpr[HEX_REG_M0], &sc->m0);
119 __put_user(env->gpr[HEX_REG_M1], &sc->m1);
120 __put_user(env->gpr[HEX_REG_USR], &sc->usr);
48};
49
50struct target_ucontext {
51 unsigned long uc_flags;
52 target_ulong uc_link; /* target pointer */
53 target_stack_t uc_stack;
54 struct target_sigcontext uc_mcontext;
55 target_sigset_t uc_sigmask;

--- 54 unchanged lines hidden (view full) ---

110 __put_user(env->gpr[HEX_REG_R31], &sc->r31);
111 __put_user(env->gpr[HEX_REG_SA0], &sc->sa0);
112 __put_user(env->gpr[HEX_REG_LC0], &sc->lc0);
113 __put_user(env->gpr[HEX_REG_SA1], &sc->sa1);
114 __put_user(env->gpr[HEX_REG_LC1], &sc->lc1);
115 __put_user(env->gpr[HEX_REG_M0], &sc->m0);
116 __put_user(env->gpr[HEX_REG_M1], &sc->m1);
117 __put_user(env->gpr[HEX_REG_USR], &sc->usr);
121 __put_user(env->gpr[HEX_REG_P3_0], &sc->p3_0);
122 __put_user(env->gpr[HEX_REG_GP], &sc->gp);
123 __put_user(env->gpr[HEX_REG_UGP], &sc->ugp);
124 __put_user(env->gpr[HEX_REG_PC], &sc->pc);
118 __put_user(env->gpr[HEX_REG_GP], &sc->gp);
119 __put_user(env->gpr[HEX_REG_UGP], &sc->ugp);
120 __put_user(env->gpr[HEX_REG_PC], &sc->pc);
121
122 int i;
123 for (i = 0; i < NUM_PREGS; i++) {
124 __put_user(env->pred[i], &(sc->pred[i]));
125 }
125}
126
127static void setup_ucontext(struct target_ucontext *uc,
128 CPUHexagonState *env, target_sigset_t *set)
129{
130 __put_user(0, &(uc->uc_flags));
131 __put_user(0, &(uc->uc_link));
132

--- 92 unchanged lines hidden (view full) ---

225 __get_user(env->gpr[HEX_REG_R31], &sc->r31);
226 __get_user(env->gpr[HEX_REG_SA0], &sc->sa0);
227 __get_user(env->gpr[HEX_REG_LC0], &sc->lc0);
228 __get_user(env->gpr[HEX_REG_SA1], &sc->sa1);
229 __get_user(env->gpr[HEX_REG_LC1], &sc->lc1);
230 __get_user(env->gpr[HEX_REG_M0], &sc->m0);
231 __get_user(env->gpr[HEX_REG_M1], &sc->m1);
232 __get_user(env->gpr[HEX_REG_USR], &sc->usr);
126}
127
128static void setup_ucontext(struct target_ucontext *uc,
129 CPUHexagonState *env, target_sigset_t *set)
130{
131 __put_user(0, &(uc->uc_flags));
132 __put_user(0, &(uc->uc_link));
133

--- 92 unchanged lines hidden (view full) ---

226 __get_user(env->gpr[HEX_REG_R31], &sc->r31);
227 __get_user(env->gpr[HEX_REG_SA0], &sc->sa0);
228 __get_user(env->gpr[HEX_REG_LC0], &sc->lc0);
229 __get_user(env->gpr[HEX_REG_SA1], &sc->sa1);
230 __get_user(env->gpr[HEX_REG_LC1], &sc->lc1);
231 __get_user(env->gpr[HEX_REG_M0], &sc->m0);
232 __get_user(env->gpr[HEX_REG_M1], &sc->m1);
233 __get_user(env->gpr[HEX_REG_USR], &sc->usr);
233 __get_user(env->gpr[HEX_REG_P3_0], &sc->p3_0);
234 __get_user(env->gpr[HEX_REG_GP], &sc->gp);
235 __get_user(env->gpr[HEX_REG_UGP], &sc->ugp);
236 __get_user(env->gpr[HEX_REG_PC], &sc->pc);
234 __get_user(env->gpr[HEX_REG_GP], &sc->gp);
235 __get_user(env->gpr[HEX_REG_UGP], &sc->ugp);
236 __get_user(env->gpr[HEX_REG_PC], &sc->pc);
237
238 int i;
239 for (i = 0; i < NUM_PREGS; i++) {
240 __get_user(env->pred[i], &(sc->pred[i]));
241 }
237}
238
239static void restore_ucontext(CPUHexagonState *env, struct target_ucontext *uc)
240{
241 sigset_t blocked;
242 target_sigset_t target_set;
243 int i;
244

--- 44 unchanged lines hidden ---
242}
243
244static void restore_ucontext(CPUHexagonState *env, struct target_ucontext *uc)
245{
246 sigset_t blocked;
247 target_sigset_t target_set;
248 int i;
249

--- 44 unchanged lines hidden ---