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