Expand PMF_FN_* macros.
[netbsd-mini2440.git] / sys / arch / acorn26 / include / frame.h
blob1e03a60b4fd214029a1191776a6df8adad14fa01
1 /* $NetBSD: frame.h,v 1.3 2005/12/11 12:16:04 christos Exp $ */
3 /*
4 * Copyright (c) 1999 Ben Harris.
5 * Copyright (c) 1994-1997 Mark Brinicombe.
6 * Copyright (c) 1994 Brini.
7 * All rights reserved.
9 * This code is derived from software written for Brini by Mark Brinicombe
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * 3. All advertising materials mentioning features or use of this software
20 * must display the following acknowledgement:
21 * This product includes software developed by Brini.
22 * 4. The name of the company nor the name of the author may be used to
23 * endorse or promote products derived from this software without specific
24 * prior written permission.
26 * THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
27 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
29 * IN NO EVENT SHALL BRINI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
30 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
32 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
39 * frame.h - Stack frames structures
42 #ifndef _ARM26_FRAME_H_
43 #define _ARM26_FRAME_H_
45 #include <arm/frame.h>
47 #ifndef _LOCORE
49 #include <arm/armreg.h>
52 * System stack frames.
56 * irqframes just contain registers that APCS specifies the callee
57 * need not preserve.
59 typedef struct irqframe {
60 union {
61 struct {
62 register_t if_r0;
63 register_t if_r1;
64 register_t if_r2;
65 register_t if_r3;
66 register_t if_r12;
67 register_t if_r14;
68 } svc;
69 struct {
70 register_t if_r0;
71 register_t if_r1;
72 register_t if_r2;
73 register_t if_r3;
74 register_t if_r11;
75 register_t if_r12;
76 } usr;
77 } if_mode;
78 register_t if_r15; /* Must be fixed so we know which branch to use */
79 } irqframe_t;
81 struct clockframe {
82 struct irqframe cf_if;
86 * Switch frame
89 struct switchframe {
90 register_t sf_r4; /* Callee-saved registers */
91 register_t sf_r5;
92 register_t sf_r6;
93 register_t sf_r7;
94 register_t sf_r8;
95 register_t sf_r9;
96 register_t sf_r10;
97 register_t sf_r11; /* Frame pointer */
98 register_t sf_r13; /* Stack pointer */
99 register_t sf_pc; /* Return address */
103 * Floating-point frame. Stores the state of the FPU.
106 struct fpframe {
107 register_t ff_fpsr;
108 register_t ff_regs[8*3];
111 #endif /* _LOCORE */
113 #endif /* _ARM26_FRAME_H_ */
115 /* End of frame.h */