11b4e358aSWarner Losh /*
21b4e358aSWarner Losh * x86_64 signal definitions
31b4e358aSWarner Losh *
41b4e358aSWarner Losh *
51b4e358aSWarner Losh * This program is free software; you can redistribute it and/or modify
61b4e358aSWarner Losh * it under the terms of the GNU General Public License as published by
71b4e358aSWarner Losh * the Free Software Foundation; either version 2 of the License, or
81b4e358aSWarner Losh * (at your option) any later version.
91b4e358aSWarner Losh *
101b4e358aSWarner Losh * This program is distributed in the hope that it will be useful,
111b4e358aSWarner Losh * but WITHOUT ANY WARRANTY; without even the implied warranty of
121b4e358aSWarner Losh * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
131b4e358aSWarner Losh * GNU General Public License for more details.
141b4e358aSWarner Losh *
151b4e358aSWarner Losh * You should have received a copy of the GNU General Public License
161b4e358aSWarner Losh * along with this program; if not, see <http://www.gnu.org/licenses/>.
171b4e358aSWarner Losh */
181b4e358aSWarner Losh
19*48e438a3SMarkus Armbruster #include "qemu/osdep.h"
201b4e358aSWarner Losh #include "qemu.h"
211b4e358aSWarner Losh
221b4e358aSWarner Losh /*
231b4e358aSWarner Losh * Compare to amd64/amd64/machdep.c sendsig()
241b4e358aSWarner Losh * Assumes that target stack frame memory is locked.
251b4e358aSWarner Losh */
set_sigtramp_args(CPUX86State * regs,int sig,struct target_sigframe * frame,abi_ulong frame_addr,struct target_sigaction * ka)261b4e358aSWarner Losh abi_long set_sigtramp_args(CPUX86State *regs,
271b4e358aSWarner Losh int sig, struct target_sigframe *frame, abi_ulong frame_addr,
281b4e358aSWarner Losh struct target_sigaction *ka)
291b4e358aSWarner Losh {
301b4e358aSWarner Losh /* XXX return -TARGET_EOPNOTSUPP; */
311b4e358aSWarner Losh return 0;
321b4e358aSWarner Losh }
331b4e358aSWarner Losh
342373a62aSWarner Losh /*
352373a62aSWarner Losh * Compare to amd64/amd64/exec_machdep.c sendsig()
362373a62aSWarner Losh * Assumes that the memory is locked if frame points to user memory.
372373a62aSWarner Losh */
setup_sigframe_arch(CPUX86State * env,abi_ulong frame_addr,struct target_sigframe * frame,int flags)382373a62aSWarner Losh abi_long setup_sigframe_arch(CPUX86State *env, abi_ulong frame_addr,
392373a62aSWarner Losh struct target_sigframe *frame, int flags)
402373a62aSWarner Losh {
412373a62aSWarner Losh target_mcontext_t *mcp = &frame->sf_uc.uc_mcontext;
422373a62aSWarner Losh
432373a62aSWarner Losh get_mcontext(env, mcp, flags);
442373a62aSWarner Losh return 0;
452373a62aSWarner Losh }
462373a62aSWarner Losh
471b4e358aSWarner Losh /* Compare to amd64/amd64/machdep.c get_mcontext() */
get_mcontext(CPUX86State * regs,target_mcontext_t * mcp,int flags)481b4e358aSWarner Losh abi_long get_mcontext(CPUX86State *regs,
491b4e358aSWarner Losh target_mcontext_t *mcp, int flags)
501b4e358aSWarner Losh {
511b4e358aSWarner Losh /* XXX */
521b4e358aSWarner Losh return -TARGET_EOPNOTSUPP;
531b4e358aSWarner Losh }
541b4e358aSWarner Losh
551b4e358aSWarner Losh /* Compare to amd64/amd64/machdep.c set_mcontext() */
set_mcontext(CPUX86State * regs,target_mcontext_t * mcp,int srflag)561b4e358aSWarner Losh abi_long set_mcontext(CPUX86State *regs,
571b4e358aSWarner Losh target_mcontext_t *mcp, int srflag)
581b4e358aSWarner Losh {
591b4e358aSWarner Losh /* XXX */
601b4e358aSWarner Losh return -TARGET_EOPNOTSUPP;
611b4e358aSWarner Losh }
621b4e358aSWarner Losh
get_ucontext_sigreturn(CPUX86State * regs,abi_ulong target_sf,abi_ulong * target_uc)631b4e358aSWarner Losh abi_long get_ucontext_sigreturn(CPUX86State *regs,
641b4e358aSWarner Losh abi_ulong target_sf, abi_ulong *target_uc)
651b4e358aSWarner Losh {
661b4e358aSWarner Losh /* XXX */
671b4e358aSWarner Losh *target_uc = 0;
681b4e358aSWarner Losh return -TARGET_EOPNOTSUPP;
691b4e358aSWarner Losh }
70