|
|
1.1 root 1: /*
2: * Copyright (c) 1988 University of Utah.
3: * Copyright (c) 1982, 1990 The Regents of the University of California.
4: * All rights reserved.
5: *
6: * This code is derived from software contributed to Berkeley by
7: * the Systems Programming Group of the University of Utah Computer
8: * Science Department.
9: *
10: * Redistribution is only permitted until one year after the first shipment
11: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and
12: * binary forms are permitted provided that: (1) source distributions retain
13: * this entire copyright notice and comment, and (2) distributions including
14: * binaries display the following acknowledgement: This product includes
15: * software developed by the University of California, Berkeley and its
16: * contributors'' in the documentation or other materials provided with the
17: * distribution and in all advertising materials mentioning features or use
18: * of this software. Neither the name of the University nor the names of
19: * its contributors may be used to endorse or promote products derived from
20: * this software without specific prior written permission.
21: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
22: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
23: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
24: *
25: * from: Utah $Hdr: frame.h 1.6 89/02/24$
26: *
27: * @(#)frame.h 7.1 (Berkeley) 5/8/90
28: */
29:
30: struct frame {
31: int f_regs[16];
32: short f_stackadj;
33: u_short f_sr;
34: u_int f_pc;
35: u_short f_format:4,
36: f_vector:12;
37: union F_u {
38: struct fmt2 {
39: u_int f_iaddr;
40: } F_fmt2;
41:
42: struct fmt9 {
43: u_int f_iaddr;
44: u_short f_iregs[4];
45: } F_fmt9;
46:
47: struct fmtA {
48: u_short f_ir0;
49: u_short f_ssw;
50: u_short f_ipsc;
51: u_short f_ipsb;
52: u_int f_dcfa;
53: u_short f_ir1, f_ir2;
54: u_int f_dob;
55: u_short f_ir3, f_ir4;
56: } F_fmtA;
57:
58: struct fmtB {
59: u_short f_ir0;
60: u_short f_ssw;
61: u_short f_ipsc;
62: u_short f_ipsb;
63: u_int f_dcfa;
64: u_short f_ir1, f_ir2;
65: u_int f_dob;
66: u_short f_ir3, f_ir4;
67: u_short f_ir5, f_ir6;
68: u_int f_sba;
69: u_short f_ir7, f_ir8;
70: u_int f_dib;
71: u_short f_iregs[22];
72: } F_fmtB;
73: } F_u;
74: };
75:
76: #define f_fmt2 F_u.F_fmt2
77: #define f_fmtA F_u.F_fmtA
78: #define f_fmtB F_u.F_fmtB
79:
80: /* common frame size */
81: #define CFSIZE (sizeof(struct frame) - sizeof(union F_u))
82: #define NFMTSIZE 8
83:
84: #define FMT0 0x0
85: #define FMT1 0x1
86: #define FMT2 0x2
87: #define FMT9 0x9
88: #define FMTA 0xA
89: #define FMTB 0xB
90:
91: /* frame specific info sizes */
92: #define FMT0SIZE 0
93: #define FMT1SIZE 0
94: #define FMT2SIZE sizeof(struct fmt2)
95: #define FMT9SIZE sizeof(struct fmt9)
96: #define FMTASIZE sizeof(struct fmtA)
97: #define FMTBSIZE sizeof(struct fmtB)
98:
99: #define V_BUSERR 0x008
100: #define V_ADDRERR 0x00C
101: #define V_TRAP1 0x084
102:
103: #define SSW_RC 0x2000
104: #define SSW_RB 0x1000
105: #define SSW_DF 0x0100
106: #define SSW_RM 0x0080
107: #define SSW_RW 0x0040
108: #define SSW_FCMASK 0x0007
109:
110: struct fpframe {
111: union FPF_u1 {
112: u_int FPF_null;
113: struct {
114: u_char FPF_version;
115: u_char FPF_fsize;
116: u_short FPF_res1;
117: } FPF_nonnull;
118: } FPF_u1;
119: union FPF_u2 {
120: struct fpidle {
121: u_short fpf_ccr;
122: u_short fpf_res2;
123: u_int fpf_iregs1[8];
124: u_int fpf_xops[3];
125: u_int fpf_opreg;
126: u_int fpf_biu;
127: } FPF_idle;
128:
129: struct fpbusy {
130: u_int fpf_iregs[53];
131: } FPF_busy;
132: } FPF_u2;
133: u_int fpf_regs[8*3];
134: u_int fpf_fpcr;
135: u_int fpf_fpsr;
136: u_int fpf_fpiar;
137: };
138:
139: #define fpf_null FPF_u1.FPF_null
140: #define fpf_version FPF_u1.FPF_nonnull.FPF_version
141: #define fpf_fsize FPF_u1.FPF_nonnull.FPF_fsize
142: #define fpf_res1 FPF_u1.FPF_nonnull.FPF_res1
143: #define fpf_idle FPF_u2.FPF_idle
144: #define fpf_busy FPF_u2.FPF_busy
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.