150397Sobrien/* $NetBSD$ */ 2169689Skan 390075Sobrien/*- 4122180Skan * Copyright (c) 2000 Doug Rabson 550397Sobrien * All rights reserved. 6132718Skan * 750397Sobrien * Redistribution and use in source and binary forms, with or without 8132718Skan * modification, are permitted provided that the following conditions 950397Sobrien * are met: 1050397Sobrien * 1. Redistributions of source code must retain the above copyright 1150397Sobrien * notice, this list of conditions and the following disclaimer. 1250397Sobrien * 2. Redistributions in binary form must reproduce the above copyright 13132718Skan * notice, this list of conditions and the following disclaimer in the 1450397Sobrien * documentation and/or other materials provided with the distribution. 1550397Sobrien * 1650397Sobrien * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1750397Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1850397Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19132718Skan * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20169689Skan * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21169689Skan * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2250397Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23122180Skan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2450397Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2550397Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2690075Sobrien * SUCH DAMAGE. 2750397Sobrien * 2850397Sobrien * $FreeBSD$ 2990075Sobrien */ 3050397Sobrien 3150397Sobrien#ifndef _MACHINE_FRAME_H_ 32122180Skan#define _MACHINE_FRAME_H_ 33122180Skan 34122180Skan#include <machine/_regset.h> 35122180Skan 36122180Skan/* 37122180Skan * System stack frames. 38122180Skan */ 39122180Skan 40122180Skan/* 41122180Skan * Software trap, exception, and syscall frame. 42122180Skan */ 43122180Skanstruct trapframe { 44122180Skan uint64_t tf_length; 45122180Skan uint64_t tf_flags; 4650397Sobrien#define FRAME_SYSCALL 1 /* syscalls use a partial trapframe */ 47122180Skan struct _special tf_special; 48122180Skan struct _caller_saved tf_scratch; 49122180Skan struct _caller_saved_fp tf_scratch_fp; 5050397Sobrien}; 5150397Sobrien 5250397Sobrien#endif /* _MACHINE_FRAME_H_ */ 5350397Sobrien