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 3191078fcaSMarcel Moolenaar #ifndef _MACHINE_UCONTEXT_H_ 32c5c6b7b3SMarcel Moolenaar #define _MACHINE_UCONTEXT_H_ 3391078fcaSMarcel Moolenaar 342be05b70SDaniel Eischen #if defined(_KERNEL) && defined(COMPAT_FREEBSD4) 3571ec998aSJohn Baldwin struct freebsd4_mcontext { 3609c666c1SDavid E. O'Brien __register_t mc_onstack; /* XXX - sigcontext compat. */ 3709c666c1SDavid E. O'Brien __register_t mc_gs; /* machine state (struct trapframe) */ 3809c666c1SDavid E. O'Brien __register_t mc_fs; 3909c666c1SDavid E. O'Brien __register_t mc_es; 4009c666c1SDavid E. O'Brien __register_t mc_ds; 4109c666c1SDavid E. O'Brien __register_t mc_edi; 4209c666c1SDavid E. O'Brien __register_t mc_esi; 4309c666c1SDavid E. O'Brien __register_t mc_ebp; 4409c666c1SDavid E. O'Brien __register_t mc_isp; 4509c666c1SDavid E. O'Brien __register_t mc_ebx; 4609c666c1SDavid E. O'Brien __register_t mc_edx; 4709c666c1SDavid E. O'Brien __register_t mc_ecx; 4809c666c1SDavid E. O'Brien __register_t mc_eax; 4909c666c1SDavid E. O'Brien __register_t mc_trapno; 5009c666c1SDavid E. O'Brien __register_t mc_err; 5109c666c1SDavid E. O'Brien __register_t mc_eip; 5209c666c1SDavid E. O'Brien __register_t mc_cs; 5309c666c1SDavid E. O'Brien __register_t mc_eflags; 5409c666c1SDavid E. O'Brien __register_t mc_esp; /* machine state */ 5509c666c1SDavid E. O'Brien __register_t mc_ss; 5609c666c1SDavid E. O'Brien __register_t mc_fpregs[28]; /* env87 + fpacc87 + u_long */ 5709c666c1SDavid E. O'Brien __register_t __spare__[17]; 5823eeeff7SPeter Wemm }; 59*be887b3eSJohn Baldwin 60*be887b3eSJohn Baldwin struct freebsd4_ucontext { 61*be887b3eSJohn Baldwin sigset_t uc_sigmask; 62*be887b3eSJohn Baldwin struct freebsd4_mcontext uc_mcontext; 63*be887b3eSJohn Baldwin struct freebsd4_ucontext *uc_link; 64*be887b3eSJohn Baldwin stack_t uc_stack; 65*be887b3eSJohn Baldwin int __spare__[8]; 66*be887b3eSJohn Baldwin }; 6723eeeff7SPeter Wemm #endif 6823eeeff7SPeter Wemm 6931a53cd0SKonstantin Belousov #include <x86/ucontext.h> 7031a53cd0SKonstantin Belousov 71c5c6b7b3SMarcel Moolenaar #endif /* !_MACHINE_UCONTEXT_H_ */ 72