191078fcaSMarcel Moolenaar /*- 283ef78beSPedro F. Giffuni * SPDX-License-Identifier: BSD-3-Clause 383ef78beSPedro F. Giffuni * 491078fcaSMarcel Moolenaar * Copyright (c) 1999 Marcel Moolenaar 591078fcaSMarcel Moolenaar * All rights reserved. 691078fcaSMarcel Moolenaar * 791078fcaSMarcel Moolenaar * Redistribution and use in source and binary forms, with or without 891078fcaSMarcel Moolenaar * modification, are permitted provided that the following conditions 991078fcaSMarcel Moolenaar * are met: 1091078fcaSMarcel Moolenaar * 1. Redistributions of source code must retain the above copyright 1191078fcaSMarcel Moolenaar * notice, this list of conditions and the following disclaimer 1291078fcaSMarcel Moolenaar * in this position and unchanged. 1391078fcaSMarcel Moolenaar * 2. Redistributions in binary form must reproduce the above copyright 1491078fcaSMarcel Moolenaar * notice, this list of conditions and the following disclaimer in the 1591078fcaSMarcel Moolenaar * documentation and/or other materials provided with the distribution. 1691078fcaSMarcel Moolenaar * 3. The name of the author may not be used to endorse or promote products 1791078fcaSMarcel Moolenaar * derived from this software without specific prior written permission. 1891078fcaSMarcel Moolenaar * 1991078fcaSMarcel Moolenaar * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 2091078fcaSMarcel Moolenaar * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 2191078fcaSMarcel Moolenaar * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 2291078fcaSMarcel Moolenaar * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2391078fcaSMarcel Moolenaar * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2491078fcaSMarcel Moolenaar * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2591078fcaSMarcel Moolenaar * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2691078fcaSMarcel Moolenaar * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2791078fcaSMarcel Moolenaar * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2891078fcaSMarcel Moolenaar * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2991078fcaSMarcel Moolenaar * 3091078fcaSMarcel Moolenaar * $FreeBSD$ 3191078fcaSMarcel Moolenaar */ 3291078fcaSMarcel Moolenaar 3391078fcaSMarcel Moolenaar #ifndef _MACHINE_SIGFRAME_H_ 340afa439dSMarcel Moolenaar #define _MACHINE_SIGFRAME_H_ 350afa439dSMarcel Moolenaar 360afa439dSMarcel Moolenaar /* 370afa439dSMarcel Moolenaar * Signal frames, arguments passed to application signal handlers. 380afa439dSMarcel Moolenaar */ 390270d57aSDaniel Eischen #ifdef _KERNEL 4023eeeff7SPeter Wemm #ifdef COMPAT_43 4191078fcaSMarcel Moolenaar struct osigframe { 4291078fcaSMarcel Moolenaar /* 434c53edc5SMarcel Moolenaar * The first four members may be used by applications. 4491078fcaSMarcel Moolenaar */ 4591078fcaSMarcel Moolenaar 4691078fcaSMarcel Moolenaar register_t sf_signum; 4791078fcaSMarcel Moolenaar 4891078fcaSMarcel Moolenaar /* 4991078fcaSMarcel Moolenaar * Either 'int' for old-style FreeBSD handler or 'siginfo_t *' 5091078fcaSMarcel Moolenaar * pointing to sf_siginfo for SA_SIGINFO handlers. 5191078fcaSMarcel Moolenaar */ 5291078fcaSMarcel Moolenaar register_t sf_arg2; 5391078fcaSMarcel Moolenaar 5491078fcaSMarcel Moolenaar /* Points to sf_siginfo.si_sc. */ 5591078fcaSMarcel Moolenaar register_t sf_scp; 5691078fcaSMarcel Moolenaar 57ec1d9fe8SMarcel Moolenaar register_t sf_addr; 584c53edc5SMarcel Moolenaar 5991078fcaSMarcel Moolenaar /* 6091078fcaSMarcel Moolenaar * The following arguments are not constrained by the 6191078fcaSMarcel Moolenaar * function call protocol. 6291078fcaSMarcel Moolenaar * Applications are not supposed to access these members, 6391078fcaSMarcel Moolenaar * except using the pointers we provide in the first three 6491078fcaSMarcel Moolenaar * arguments. 6591078fcaSMarcel Moolenaar */ 6691078fcaSMarcel Moolenaar 6791078fcaSMarcel Moolenaar union { 6891078fcaSMarcel Moolenaar __osiginfohandler_t *sf_action; 6991078fcaSMarcel Moolenaar __sighandler_t *sf_handler; 7091078fcaSMarcel Moolenaar } sf_ahu; 7191078fcaSMarcel Moolenaar 7291078fcaSMarcel Moolenaar /* In the SA_SIGINFO case, sf_arg2 points here. */ 7391078fcaSMarcel Moolenaar osiginfo_t sf_siginfo; 7491078fcaSMarcel Moolenaar }; 750270d57aSDaniel Eischen #endif 7623eeeff7SPeter Wemm #ifdef COMPAT_FREEBSD4 7723eeeff7SPeter Wemm /* FreeBSD 4.x */ 7823eeeff7SPeter Wemm struct sigframe4 { 7923eeeff7SPeter Wemm register_t sf_signum; 8023eeeff7SPeter Wemm register_t sf_siginfo; /* code or pointer to sf_si */ 8123eeeff7SPeter Wemm register_t sf_ucontext; /* points to sf_uc */ 8223eeeff7SPeter Wemm register_t sf_addr; /* undocumented 4th arg */ 8323eeeff7SPeter Wemm 8423eeeff7SPeter Wemm union { 8523eeeff7SPeter Wemm __siginfohandler_t *sf_action; 8623eeeff7SPeter Wemm __sighandler_t *sf_handler; 8723eeeff7SPeter Wemm } sf_ahu; 88*717e7fb2SBrooks Davis struct freebsd4_ucontext sf_uc; /* = *sf_ucontext */ 8923eeeff7SPeter Wemm siginfo_t sf_si; /* = *sf_siginfo (SA_SIGINFO case) */ 9023eeeff7SPeter Wemm }; 9123eeeff7SPeter Wemm #endif 9223eeeff7SPeter Wemm #endif 9391078fcaSMarcel Moolenaar 9431a53cd0SKonstantin Belousov #include <x86/sigframe.h> 9591078fcaSMarcel Moolenaar 960afa439dSMarcel Moolenaar #endif /* !_MACHINE_SIGFRAME_H_ */ 97