xref: /netbsd-src/sys/arch/vax/include/frame.h (revision 6a6027692662ba623e7bf5274322989a7b5d1440)
1*6a602769Sragge /*	$NetBSD: frame.h,v 1.3 2017/05/22 17:12:11 ragge Exp $ */
2bfc2ca40Sragge /*
3bfc2ca40Sragge  * Copyright (c) 1995 Ludd, University of Lule}, Sweden.
4bfc2ca40Sragge  * All rights reserved.
5bfc2ca40Sragge  *
6bfc2ca40Sragge  * Redistribution and use in source and binary forms, with or without
7bfc2ca40Sragge  * modification, are permitted provided that the following conditions
8bfc2ca40Sragge  * are met:
9bfc2ca40Sragge  * 1. Redistributions of source code must retain the above copyright
10bfc2ca40Sragge  *    notice, this list of conditions and the following disclaimer.
11bfc2ca40Sragge  * 2. Redistributions in binary form must reproduce the above copyright
12bfc2ca40Sragge  *    notice, this list of conditions and the following disclaimer in the
13bfc2ca40Sragge  *    documentation and/or other materials provided with the distribution.
14bfc2ca40Sragge  *
15bfc2ca40Sragge  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16bfc2ca40Sragge  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17bfc2ca40Sragge  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18bfc2ca40Sragge  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19bfc2ca40Sragge  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20bfc2ca40Sragge  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21bfc2ca40Sragge  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22bfc2ca40Sragge  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23bfc2ca40Sragge  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24bfc2ca40Sragge  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25bfc2ca40Sragge  */
26bfc2ca40Sragge 
27a8a863d4Smatt #ifndef _VAX_FRAME_H_
28a8a863d4Smatt #define	_VAX_FRAME_H_
29a8a863d4Smatt 
30bfc2ca40Sragge /*
31bfc2ca40Sragge  * Description of calls frame on stack. This is the
32bfc2ca40Sragge  * standard way of making procedure calls on vax systems.
33bfc2ca40Sragge  */
34bfc2ca40Sragge struct callsframe {
35bfc2ca40Sragge 	unsigned int	ca_cond;	/* condition handler */
36bfc2ca40Sragge 	unsigned int	ca_maskpsw;	/* register mask and saved psw */
37bfc2ca40Sragge 	unsigned int	ca_ap;		/* argument pointer */
38bfc2ca40Sragge 	unsigned int	ca_fp;		/* frame pointer */
39bfc2ca40Sragge 	unsigned int	ca_pc;		/* program counter */
40bfc2ca40Sragge 	unsigned int	ca_argno;	/* argument count on stack */
41bfc2ca40Sragge 	unsigned int	ca_arg1;	/* first arg on stack */
42bfc2ca40Sragge 	/* This can be followed by more arguments */
43bfc2ca40Sragge };
44bfc2ca40Sragge 
45a8a863d4Smatt struct icallsframe {
46a8a863d4Smatt 	struct callsframe ica_frame;	/* std call frame */
47a8a863d4Smatt 	unsigned int	ica_r0;		/* interrupt saved r0 */
48a8a863d4Smatt 	unsigned int	ica_r1;		/* interrupt saved r1 */
49a8a863d4Smatt 	unsigned int	ica_r2;		/* interrupt saved r2 */
50a8a863d4Smatt 	unsigned int	ica_r3;		/* interrupt saved r3 */
51a8a863d4Smatt 	unsigned int	ica_r4;		/* interrupt saved r4 */
52a8a863d4Smatt 	unsigned int	ica_r5;		/* interrupt saved r5 */
53a8a863d4Smatt 	unsigned int	ica_pc;		/* interrupt saved pc */
54a8a863d4Smatt 	unsigned int	ica_psl;	/* interrupt saved psl */
55a8a863d4Smatt };
56bfc2ca40Sragge 
57a8a863d4Smatt #endif /* _VAX_FRAME_H */
58