_regset.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/* $NetBSD: _regset.h,v 1.1 2006/04/07 14:21:18 cherry Exp $ */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Copyright (c) 2002, 2003 Marcel Moolenaar
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * All rights reserved.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Redistribution and use in source and binary forms, with or without
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * modification, are permitted provided that the following conditions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * 1. Redistributions of source code must retain the above copyright
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * notice, this list of conditions and the following disclaimer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * 2. Redistributions in binary form must reproduce the above copyright
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * notice, this list of conditions and the following disclaimer in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * documentation and/or other materials provided with the distribution.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * $FreeBSD$
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Create register sets, based on the runtime specification. This allows
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * us to better reuse code and to copy sets around more efficiently.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Contexts are defined in terms of these sets. These include trapframe,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * sigframe, pcb, mcontext, reg and fpreg. Other candidates are unwind
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * and coredump related contexts.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * o Constant registers (r0, f0 and f1) are not accounted for,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * o The stacked registers (r32-r127) are not accounted for,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * o Predicates are not split across sets.
union _ia64_fpreg {
long double fpr_flt;
struct _special {
unsigned long sp;
unsigned long rp;
unsigned long pr;
unsigned long pfs;
unsigned long bspstore;
unsigned long rnat;
unsigned long __spare;
unsigned long tp;
unsigned long rsc;
unsigned long fpsr;
unsigned long psr;
unsigned long gp;
unsigned long ndirty;
unsigned long cfm;
unsigned long iip;
unsigned long ifa;
unsigned long isr;
struct _high_fp {
struct _callee_saved {
unsigned long gr4;
unsigned long gr5;
unsigned long gr6;
unsigned long gr7;
unsigned long br1;
unsigned long br2;
unsigned long br3;
unsigned long br4;
unsigned long br5;
unsigned long lc;
unsigned long __spare;
struct _callee_saved_fp {
struct _caller_saved {
unsigned long gr2;
unsigned long gr3;
unsigned long gr8;
unsigned long gr9;
unsigned long gr10;
unsigned long gr11;
unsigned long gr14;
unsigned long gr15;
unsigned long gr16;
unsigned long gr17;
unsigned long gr18;
unsigned long gr19;
unsigned long gr20;
unsigned long gr21;
unsigned long gr22;
unsigned long gr23;
unsigned long gr24;
unsigned long gr25;
unsigned long gr26;
unsigned long gr27;
unsigned long gr28;
unsigned long gr29;
unsigned long gr30;
unsigned long gr31;
unsigned long br6;
unsigned long br7;
unsigned long ccv;
unsigned long csd;
unsigned long ssd;
struct _caller_saved_fp {
#ifdef _KERNEL