linux/drivers/isdn/hardware/eicon/debug_if.h
<<
>>
Prefs
   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
  33typedef 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
  44int 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);
  59
  60#define DIVA_MAX_SELECTIVE_FILTER_LENGTH 127
  61int diva_set_trace_filter(int filter_length, const char *filter);
  62int 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