blob: fc5953a35ff6244e83fe3904d7e0a97b720ecad9 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 *
Joe Perches475be4d2012-02-19 19:52:38 -08003 Copyright (c) Eicon Technology Corporation, 2000.
Linus Torvalds1da177e2005-04-16 15:20:36 -07004 *
Joe Perches475be4d2012-02-19 19:52:38 -08005 This source file is supplied for the use with Eicon
6 Technology Corporation's range of DIVA Server Adapters.
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 *
Joe Perches475be4d2012-02-19 19:52:38 -08008 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.
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 *
Joe Perches475be4d2012-02-19 19:52:38 -080013 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.
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 *
Joe Perches475be4d2012-02-19 19:52:38 -080018 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.
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 *
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
33typedef struct _diva_dbg_entry_head {
Joe Perches475be4d2012-02-19 19:52:38 -080034 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;
Linus Torvalds1da177e2005-04-16 15:20:36 -070042} diva_dbg_entry_head_t;
43
Joe Perches475be4d2012-02-19 19:52:38 -080044int diva_maint_init(byte *base, unsigned long length, int do_init);
45void *diva_maint_finit(void);
46dword diva_dbg_q_length(void);
47diva_dbg_entry_head_t *diva_maint_get_message(word *size,
48 diva_os_spin_lock_magic_t *old_irql);
49void diva_maint_ack_message(int do_release,
50 diva_os_spin_lock_magic_t *old_irql);
51void diva_maint_prtComp(char *format, ...);
52void diva_maint_wakeup_read(void);
53int diva_get_driver_info(dword id, byte *data, int data_length);
54int diva_get_driver_dbg_mask(dword id, byte *data);
55int diva_set_driver_dbg_mask(dword id, dword mask);
56void diva_mnt_remove_xdi_adapter(const DESCRIPTOR *d);
57void diva_mnt_add_xdi_adapter(const DESCRIPTOR *d);
58int diva_mnt_shutdown_xdi_adapters(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070059
60#define DIVA_MAX_SELECTIVE_FILTER_LENGTH 127
Joe Perches475be4d2012-02-19 19:52:38 -080061int diva_set_trace_filter(int filter_length, const char *filter);
62int diva_get_trace_filter(int max_length, char *filter);
Linus Torvalds1da177e2005-04-16 15:20:36 -070063
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
Joe Perches475be4d2012-02-19 19:52:38 -080075*/
Linus Torvalds1da177e2005-04-16 15:20:36 -070076#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 */