1 /* $OpenBSD: frame.h,v 1.3 1998/09/15 10:50:12 pefo Exp $ */ 2 3 /*- 4 * SPDX-License-Identifier: BSD-4-Clause 5 * 6 * Copyright (c) 1998 Per Fogelstrom, Opsycon AB 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. All advertising materials mentioning features or use of this software 17 * must display the following acknowledgement: 18 * This product includes software developed under OpenBSD by 19 * Per Fogelstrom, Opsycon AB, Sweden. 20 * 4. The name of the author may not be used to endorse or promote products 21 * derived from this software without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 24 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 27 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * JNPR: frame.h,v 1.6.2.1 2007/09/10 08:14:57 girish 36 * $FreeBSD$ 37 * 38 */ 39 #ifndef _MACHINE_FRAME_H_ 40 #define _MACHINE_FRAME_H_ 41 42 /* Note: This must also match regnum.h and regdef.h */ 43 44 struct trapframe { 45 register_t zero; 46 register_t ast; 47 register_t v0; 48 register_t v1; 49 register_t a0; 50 register_t a1; 51 register_t a2; 52 register_t a3; 53 #if defined(__mips_n32) || defined(__mips_n64) 54 register_t a4; 55 register_t a5; 56 register_t a6; 57 register_t a7; 58 register_t t0; 59 register_t t1; 60 register_t t2; 61 register_t t3; 62 #else 63 register_t t0; 64 register_t t1; 65 register_t t2; 66 register_t t3; 67 register_t t4; 68 register_t t5; 69 register_t t6; 70 register_t t7; 71 #endif 72 register_t s0; 73 register_t s1; 74 register_t s2; 75 register_t s3; 76 register_t s4; 77 register_t s5; 78 register_t s6; 79 register_t s7; 80 register_t t8; 81 register_t t9; 82 register_t k0; 83 register_t k1; 84 register_t gp; 85 register_t sp; 86 register_t s8; 87 register_t ra; 88 register_t sr; 89 register_t mullo; 90 register_t mulhi; 91 register_t badvaddr; 92 register_t cause; 93 register_t pc; 94 /* 95 * FREEBSD_DEVELOPERS_FIXME: 96 * Include any other registers which are CPU-Specific and 97 * need to be part of the frame here. 98 * 99 * Also, be sure this matches what is defined in regnum.h 100 */ 101 register_t ic; /* RM7k and RM9k specific */ 102 register_t dummy; /* Alignment for 32-bit case */ 103 104 /* From here and on, only saved user processes. */ 105 106 f_register_t f0; 107 f_register_t f1; 108 f_register_t f2; 109 f_register_t f3; 110 f_register_t f4; 111 f_register_t f5; 112 f_register_t f6; 113 f_register_t f7; 114 f_register_t f8; 115 f_register_t f9; 116 f_register_t f10; 117 f_register_t f11; 118 f_register_t f12; 119 f_register_t f13; 120 f_register_t f14; 121 f_register_t f15; 122 f_register_t f16; 123 f_register_t f17; 124 f_register_t f18; 125 f_register_t f19; 126 f_register_t f20; 127 f_register_t f21; 128 f_register_t f22; 129 f_register_t f23; 130 f_register_t f24; 131 f_register_t f25; 132 f_register_t f26; 133 f_register_t f27; 134 f_register_t f28; 135 f_register_t f29; 136 f_register_t f30; 137 f_register_t f31; 138 register_t fsr; 139 register_t fir; 140 }; 141 142 #endif /* !_MACHINE_FRAME_H_ */ 143