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