1 /*
2  *
3  Copyright (c) Eicon Technology Corporation, 2000.
4  *
5  This source file is supplied for the use with Eicon
6  Technology Corporation's range of DIVA Server Adapters.
7  *
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2, or (at your option)
11  any later version.
12  *
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
15  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  See the GNU General Public License for more details.
17  *
18  You should have received a copy of the GNU General Public License
19  along with this program; if not, write to the Free Software
20  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  */
23 #ifndef __DIVA_DEBUG_IF_H__
24 #define __DIVA_DEBUG_IF_H__
25 #define MSG_TYPE_DRV_ID		0x0001
26 #define MSG_TYPE_FLAGS		0x0002
27 #define MSG_TYPE_STRING		0x0003
28 #define MSG_TYPE_BINARY		0x0004
29 #define MSG_TYPE_MLOG     0x0005
30 
31 #define MSG_FRAME_MAX_SIZE 2150
32 
33 typedef struct _diva_dbg_entry_head {
34 	dword sequence;
35 	dword time_sec;
36 	dword time_usec;
37 	dword facility;
38 	dword dli;
39 	dword drv_id;
40 	dword di_cpu;
41 	dword data_length;
42 } diva_dbg_entry_head_t;
43 
44 int diva_maint_init(byte *base, unsigned long length, int do_init);
45 void *diva_maint_finit(void);
46 dword diva_dbg_q_length(void);
47 diva_dbg_entry_head_t *diva_maint_get_message(word *size,
48 					      diva_os_spin_lock_magic_t *old_irql);
49 void diva_maint_ack_message(int do_release,
50 			    diva_os_spin_lock_magic_t *old_irql);
51 void diva_maint_prtComp(char *format, ...);
52 void diva_maint_wakeup_read(void);
53 int diva_get_driver_info(dword id, byte *data, int data_length);
54 int diva_get_driver_dbg_mask(dword id, byte *data);
55 int diva_set_driver_dbg_mask(dword id, dword mask);
56 void diva_mnt_remove_xdi_adapter(const DESCRIPTOR *d);
57 void diva_mnt_add_xdi_adapter(const DESCRIPTOR *d);
58 int diva_mnt_shutdown_xdi_adapters(void);
59 
60 #define DIVA_MAX_SELECTIVE_FILTER_LENGTH 127
61 int diva_set_trace_filter(int filter_length, const char *filter);
62 int diva_get_trace_filter(int max_length, char *filter);
63 
64 
65 #define DITRACE_CMD_GET_DRIVER_INFO   1
66 #define DITRACE_READ_DRIVER_DBG_MASK  2
67 #define DITRACE_WRITE_DRIVER_DBG_MASK 3
68 #define DITRACE_READ_TRACE_ENTRY      4
69 #define DITRACE_READ_TRACE_ENTRYS     5
70 #define DITRACE_WRITE_SELECTIVE_TRACE_FILTER 6
71 #define DITRACE_READ_SELECTIVE_TRACE_FILTER  7
72 
73 /*
74   Trace lavels for debug via management interface
75 */
76 #define DIVA_MGT_DBG_TRACE          0x00000001 /* All trace messages from the card */
77 #define DIVA_MGT_DBG_DCHAN          0x00000002 /* All D-channel relater trace messages */
78 #define DIVA_MGT_DBG_MDM_PROGRESS   0x00000004 /* Modem progress events */
79 #define DIVA_MGT_DBG_FAX_PROGRESS   0x00000008 /* Fax progress events */
80 #define DIVA_MGT_DBG_IFC_STATISTICS 0x00000010 /* Interface call statistics */
81 #define DIVA_MGT_DBG_MDM_STATISTICS 0x00000020 /* Global modem statistics   */
82 #define DIVA_MGT_DBG_FAX_STATISTICS 0x00000040 /* Global call statistics    */
83 #define DIVA_MGT_DBG_LINE_EVENTS    0x00000080 /* Line state events */
84 #define DIVA_MGT_DBG_IFC_EVENTS     0x00000100 /* Interface/L1/L2 state events */
85 #define DIVA_MGT_DBG_IFC_BCHANNEL   0x00000200 /* B-Channel trace for all channels */
86 #define DIVA_MGT_DBG_IFC_AUDIO      0x00000400 /* Audio Tap trace for all channels */
87 
88 # endif /* DEBUG_IF___H */
89