161 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| /*
 | |
|  *
 | |
|   Copyright (c) Eicon Networks, 2002.
 | |
|  *
 | |
|   This source file is supplied for the use with
 | |
|   Eicon Networks range of DIVA Server Adapters.
 | |
|  *
 | |
|   Eicon File Revision :    2.1
 | |
|  *
 | |
|   This program is free software; you can redistribute it and/or modify
 | |
|   it under the terms of the GNU General Public License as published by
 | |
|   the Free Software Foundation; either version 2, or (at your option)
 | |
|   any later version.
 | |
|  *
 | |
|   This program is distributed in the hope that it will be useful,
 | |
|   but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
 | |
|   implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
|   See the GNU General Public License for more details.
 | |
|  *
 | |
|   You should have received a copy of the GNU General Public License
 | |
|   along with this program; if not, write to the Free Software
 | |
|   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | |
|  *
 | |
|  */
 | |
| #ifdef PLATFORM_GT_32BIT
 | |
| /* #define POINTER_32BIT byte * __ptr32 */
 | |
| #define POINTER_32BIT dword 
 | |
| #else
 | |
| #define POINTER_32BIT byte *
 | |
| #endif
 | |
| #if !defined(MIPS_SCOM)
 | |
| #define BUFFER_SZ  48
 | |
| #define MAINT_OFFS 0x380
 | |
| #else
 | |
| #define BUFFER_SZ  128
 | |
| #if defined(PRI)
 | |
| #define MAINT_OFFS 0xef00
 | |
| #else
 | |
| #define MAINT_OFFS 0xff00
 | |
| #endif
 | |
| #endif
 | |
| #define MIPS_BUFFER_SZ  128
 | |
| #if defined(PRI)
 | |
| #define MIPS_MAINT_OFFS 0xef00
 | |
| #else
 | |
| #define MIPS_MAINT_OFFS 0xff00
 | |
| #endif
 | |
| #define LOG                     1
 | |
| #define MEMR                    2
 | |
| #define MEMW                    3
 | |
| #define IOR                     4
 | |
| #define IOW                     5
 | |
| #define B1TEST                  6
 | |
| #define B2TEST                  7
 | |
| #define BTESTOFF                8
 | |
| #define DSIG_STATS              9
 | |
| #define B_CH_STATS              10
 | |
| #define D_CH_STATS              11
 | |
| #define BL1_STATS               12
 | |
| #define BL1_STATS_C             13
 | |
| #define GET_VERSION             14
 | |
| #define OS_STATS                15
 | |
| #define XLOG_SET_MASK           16
 | |
| #define XLOG_GET_MASK           17
 | |
| #define DSP_READ                20
 | |
| #define DSP_WRITE               21
 | |
| #define OK 0xff
 | |
| #define MORE_EVENTS 0xfe
 | |
| #define NO_EVENT 1
 | |
| struct DSigStruc
 | |
| {
 | |
|   byte Id;
 | |
|   byte u;
 | |
|   byte listen;
 | |
|   byte active;
 | |
|   byte sin[3];
 | |
|   byte bc[6];
 | |
|   byte llc[6];
 | |
|   byte hlc[6];
 | |
|   byte oad[20];
 | |
| };
 | |
| struct BL1Struc {
 | |
|   dword cx_b1;
 | |
|   dword cx_b2;
 | |
|   dword cr_b1;
 | |
|   dword cr_b2;
 | |
|   dword px_b1;
 | |
|   dword px_b2;
 | |
|   dword pr_b1;
 | |
|   dword pr_b2;
 | |
|   word er_b1;
 | |
|   word er_b2;
 | |
| };
 | |
| struct L2Struc {
 | |
|   dword XTotal;
 | |
|   dword RTotal;
 | |
|   word XError;
 | |
|   word RError;
 | |
| };
 | |
| struct OSStruc {
 | |
|   dword free_n;
 | |
| };
 | |
| typedef union
 | |
| {
 | |
|   struct DSigStruc DSigStats;
 | |
|   struct BL1Struc BL1Stats;
 | |
|   struct L2Struc L2Stats;
 | |
|   struct OSStruc OSStats;
 | |
|   byte   b[BUFFER_SZ];
 | |
|   word   w[BUFFER_SZ>>1];
 | |
|   word   l[BUFFER_SZ>>2]; /* word is wrong, do not use! Use 'd' instead. */
 | |
|   dword  d[BUFFER_SZ>>2];
 | |
| } BUFFER;
 | |
| typedef union
 | |
| {
 | |
|   struct DSigStruc DSigStats;
 | |
|   struct BL1Struc BL1Stats;
 | |
|   struct L2Struc L2Stats;
 | |
|   struct OSStruc OSStats;
 | |
|   byte   b[MIPS_BUFFER_SZ];
 | |
|   word   w[MIPS_BUFFER_SZ>>1];
 | |
|   word   l[BUFFER_SZ>>2]; /* word is wrong, do not use! Use 'd' instead. */
 | |
|   dword  d[MIPS_BUFFER_SZ>>2];
 | |
| } MIPS_BUFFER;
 | |
| #if !defined(MIPS_SCOM)
 | |
| struct pc_maint
 | |
| {
 | |
|   byte req;
 | |
|   byte rc;
 | |
|   POINTER_32BIT mem;
 | |
|   short length;
 | |
|   word port;
 | |
|   byte fill[6];
 | |
|   BUFFER data;
 | |
| };
 | |
| #else
 | |
| struct pc_maint
 | |
| {
 | |
|   byte req;
 | |
|   byte rc;
 | |
|   byte reserved[2];     /* R3000 alignment ... */
 | |
|   POINTER_32BIT mem;
 | |
|   short length;
 | |
|   word port;
 | |
|   byte fill[4];         /* data at offset 16   */
 | |
|   BUFFER data;
 | |
| };
 | |
| #endif
 | |
| struct mi_pc_maint
 | |
| {
 | |
|   byte req;
 | |
|   byte rc;
 | |
|   byte reserved[2];     /* R3000 alignment ... */
 | |
|   POINTER_32BIT mem;
 | |
|   short length;
 | |
|   word port;
 | |
|   byte fill[4];         /* data at offset 16   */
 | |
|   MIPS_BUFFER data;
 | |
| };
 |