signal.c (ba49d760eb04630e7b15f423ebecf6c871b8f77b) signal.c (3c13b0ffe76057e93e007bedbad3cc556146e3ed)
1/*
2 * Emulation of Linux signals
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or

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

96 __get_user(env->gr[i], &sc->sc_gr[i]);
97 }
98 for (i = 0; i < 32; ++i) {
99 __get_user(env->fr[i], &sc->sc_fr[i]);
100 }
101 cpu_hppa_loaded_fr0(env);
102
103 __get_user(env->iaoq_f, &sc->sc_iaoq[0]);
1/*
2 * Emulation of Linux signals
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or

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

96 __get_user(env->gr[i], &sc->sc_gr[i]);
97 }
98 for (i = 0; i < 32; ++i) {
99 __get_user(env->fr[i], &sc->sc_fr[i]);
100 }
101 cpu_hppa_loaded_fr0(env);
102
103 __get_user(env->iaoq_f, &sc->sc_iaoq[0]);
104 env->iaoq_f |= PRIV_USER;
104 __get_user(env->iaoq_b, &sc->sc_iaoq[1]);
105 __get_user(env->iaoq_b, &sc->sc_iaoq[1]);
106 env->iaoq_b |= PRIV_USER;
105 __get_user(env->cr[CR_SAR], &sc->sc_sar);
106}
107
108void setup_rt_frame(int sig, struct target_sigaction *ka,
109 target_siginfo_t *info,
110 target_sigset_t *set, CPUArchState *env)
111{
112 abi_ulong frame_addr, sp, haddr;

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

157 if (!fdesc) {
158 goto give_sigsegv;
159 }
160 __get_user(dest, fdesc);
161 __get_user(env->gr[19], fdesc + 1);
162 unlock_user(fdesc, haddr, 0);
163 haddr = dest;
164 }
107 __get_user(env->cr[CR_SAR], &sc->sc_sar);
108}
109
110void setup_rt_frame(int sig, struct target_sigaction *ka,
111 target_siginfo_t *info,
112 target_sigset_t *set, CPUArchState *env)
113{
114 abi_ulong frame_addr, sp, haddr;

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

159 if (!fdesc) {
160 goto give_sigsegv;
161 }
162 __get_user(dest, fdesc);
163 __get_user(env->gr[19], fdesc + 1);
164 unlock_user(fdesc, haddr, 0);
165 haddr = dest;
166 }
165 env->iaoq_f = haddr;
166 env->iaoq_b = haddr + 4;
167 env->iaoq_f = haddr | PRIV_USER;
168 env->iaoq_b = env->iaoq_f + 4;
167 env->psw_n = 0;
168 return;
169
170 give_sigsegv:
171 force_sigsegv(sig);
172}
173
174long do_rt_sigreturn(CPUArchState *env)

--- 42 unchanged lines hidden ---
169 env->psw_n = 0;
170 return;
171
172 give_sigsegv:
173 force_sigsegv(sig);
174}
175
176long do_rt_sigreturn(CPUArchState *env)

--- 42 unchanged lines hidden ---