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