1
2/*
3 *
4 Copyright (c) Eicon Networks, 2002.
5 *
6 This source file is supplied for the use with
7 Eicon Networks range of DIVA Server Adapters.
8 *
9 Eicon File Revision :    2.1
10 *
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2, or (at your option)
14 any later version.
15 *
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
18 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 See the GNU General Public License for more details.
20 *
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 */
26#ifdef PLATFORM_GT_32BIT
27/* #define POINTER_32BIT byte * __ptr32 */
28#define POINTER_32BIT dword
29#else
30#define POINTER_32BIT byte *
31#endif
32#if !defined(MIPS_SCOM)
33#define BUFFER_SZ  48
34#define MAINT_OFFS 0x380
35#else
36#define BUFFER_SZ  128
37#if defined(PRI)
38#define MAINT_OFFS 0xef00
39#else
40#define MAINT_OFFS 0xff00
41#endif
42#endif
43#define MIPS_BUFFER_SZ  128
44#if defined(PRI)
45#define MIPS_MAINT_OFFS 0xef00
46#else
47#define MIPS_MAINT_OFFS 0xff00
48#endif
49#define LOG                     1
50#define MEMR                    2
51#define MEMW                    3
52#define IOR                     4
53#define IOW                     5
54#define B1TEST                  6
55#define B2TEST                  7
56#define BTESTOFF                8
57#define DSIG_STATS              9
58#define B_CH_STATS              10
59#define D_CH_STATS              11
60#define BL1_STATS               12
61#define BL1_STATS_C             13
62#define GET_VERSION             14
63#define OS_STATS                15
64#define XLOG_SET_MASK           16
65#define XLOG_GET_MASK           17
66#define DSP_READ                20
67#define DSP_WRITE               21
68#define OK 0xff
69#define MORE_EVENTS 0xfe
70#define NO_EVENT 1
71struct DSigStruc
72{
73	byte Id;
74	byte u;
75	byte listen;
76	byte active;
77	byte sin[3];
78	byte bc[6];
79	byte llc[6];
80	byte hlc[6];
81	byte oad[20];
82};
83struct BL1Struc {
84	dword cx_b1;
85	dword cx_b2;
86	dword cr_b1;
87	dword cr_b2;
88	dword px_b1;
89	dword px_b2;
90	dword pr_b1;
91	dword pr_b2;
92	word er_b1;
93	word er_b2;
94};
95struct L2Struc {
96	dword XTotal;
97	dword RTotal;
98	word XError;
99	word RError;
100};
101struct OSStruc {
102	dword free_n;
103};
104typedef union
105{
106	struct DSigStruc DSigStats;
107	struct BL1Struc BL1Stats;
108	struct L2Struc L2Stats;
109	struct OSStruc OSStats;
110	byte   b[BUFFER_SZ];
111	word   w[BUFFER_SZ >> 1];
112	word   l[BUFFER_SZ >> 2]; /* word is wrong, do not use! Use 'd' instead. */
113	dword  d[BUFFER_SZ >> 2];
114} BUFFER;
115typedef union
116{
117	struct DSigStruc DSigStats;
118	struct BL1Struc BL1Stats;
119	struct L2Struc L2Stats;
120	struct OSStruc OSStats;
121	byte   b[MIPS_BUFFER_SZ];
122	word   w[MIPS_BUFFER_SZ >> 1];
123	word   l[BUFFER_SZ >> 2]; /* word is wrong, do not use! Use 'd' instead. */
124	dword  d[MIPS_BUFFER_SZ >> 2];
125} MIPS_BUFFER;
126#if !defined(MIPS_SCOM)
127struct pc_maint
128{
129	byte req;
130	byte rc;
131	POINTER_32BIT mem;
132	short length;
133	word port;
134	byte fill[6];
135	BUFFER data;
136};
137#else
138struct pc_maint
139{
140	byte req;
141	byte rc;
142	byte reserved[2];     /* R3000 alignment ... */
143	POINTER_32BIT mem;
144	short length;
145	word port;
146	byte fill[4];         /* data at offset 16   */
147	BUFFER data;
148};
149#endif
150struct mi_pc_maint
151{
152	byte req;
153	byte rc;
154	byte reserved[2];     /* R3000 alignment ... */
155	POINTER_32BIT mem;
156	short length;
157	word port;
158	byte fill[4];         /* data at offset 16   */
159	MIPS_BUFFER data;
160};
161