11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3475be4d85a274d0961593db41cf85689db1d583cJoe Perches Copyright (c) Eicon Networks, 2000. 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5475be4d85a274d0961593db41cf85689db1d583cJoe Perches This source file is supplied for the use with 6475be4d85a274d0961593db41cf85689db1d583cJoe Perches Eicon Networks range of DIVA Server Adapters. 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 8475be4d85a274d0961593db41cf85689db1d583cJoe Perches Eicon File Revision : 1.9 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 10475be4d85a274d0961593db41cf85689db1d583cJoe Perches This program is free software; you can redistribute it and/or modify 11475be4d85a274d0961593db41cf85689db1d583cJoe Perches it under the terms of the GNU General Public License as published by 12475be4d85a274d0961593db41cf85689db1d583cJoe Perches the Free Software Foundation; either version 2, or (at your option) 13475be4d85a274d0961593db41cf85689db1d583cJoe Perches any later version. 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 15475be4d85a274d0961593db41cf85689db1d583cJoe Perches This program is distributed in the hope that it will be useful, 16475be4d85a274d0961593db41cf85689db1d583cJoe Perches but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY 17475be4d85a274d0961593db41cf85689db1d583cJoe Perches implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18475be4d85a274d0961593db41cf85689db1d583cJoe Perches See the GNU General Public License for more details. 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 20475be4d85a274d0961593db41cf85689db1d583cJoe Perches You should have received a copy of the GNU General Public License 21475be4d85a274d0961593db41cf85689db1d583cJoe Perches along with this program; if not, write to the Free Software 22475be4d85a274d0961593db41cf85689db1d583cJoe Perches Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __DIVA_EICON_TRACE_IDI_IFC_H__ 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __DIVA_EICON_TRACE_IDI_IFC_H__ 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 28475be4d85a274d0961593db41cf85689db1d583cJoe Perchesvoid *SuperTraceOpenAdapter(int AdapterNumber); 29475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceCloseAdapter(void *AdapterHandle); 30475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceWrite(void *AdapterHandle, 31475be4d85a274d0961593db41cf85689db1d583cJoe Perches const void *data, int length); 32475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceReadRequest(void *AdapterHandle, const char *name, byte *data); 33475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceGetNumberOfChannels(void *AdapterHandle); 34475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceASSIGN(void *AdapterHandle, byte *data); 35475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceREMOVE(void *AdapterHandle); 36475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceTraceOnRequest(void *hAdapter, const char *name, byte *data); 37475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceWriteVar(void *AdapterHandle, 38475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte *data, 39475be4d85a274d0961593db41cf85689db1d583cJoe Perches const char *name, 40475be4d85a274d0961593db41cf85689db1d583cJoe Perches void *var, 41475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte type, 42475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte var_length); 43475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint SuperTraceExecuteRequest(void *AdapterHandle, 44475be4d85a274d0961593db41cf85689db1d583cJoe Perches const char *name, 45475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte *data); 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _diva_strace_path2action { 48475be4d85a274d0961593db41cf85689db1d583cJoe Perches char path[64]; /* Full path to variable */ 49475be4d85a274d0961593db41cf85689db1d583cJoe Perches void *variable; /* Variable that will receive value */ 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} diva_strace_path2action_t; 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DIVA_MAX_MANAGEMENT_TRANSFER_SIZE 4096 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _diva_strace_context { 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds diva_strace_library_interface_t instance; 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 57475be4d85a274d0961593db41cf85689db1d583cJoe Perches int Adapter; 58475be4d85a274d0961593db41cf85689db1d583cJoe Perches void *hAdapter; 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int Channels; 61475be4d85a274d0961593db41cf85689db1d583cJoe Perches int req_busy; 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 63475be4d85a274d0961593db41cf85689db1d583cJoe Perches ENTITY e; 64475be4d85a274d0961593db41cf85689db1d583cJoe Perches IDI_CALL request; 65475be4d85a274d0961593db41cf85689db1d583cJoe Perches BUFFERS XData; 66475be4d85a274d0961593db41cf85689db1d583cJoe Perches BUFFERS RData; 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte buffer[DIVA_MAX_MANAGEMENT_TRANSFER_SIZE + 1]; 68475be4d85a274d0961593db41cf85689db1d583cJoe Perches int removal_state; 69475be4d85a274d0961593db41cf85689db1d583cJoe Perches int general_b_ch_event; 70475be4d85a274d0961593db41cf85689db1d583cJoe Perches int general_fax_event; 71475be4d85a274d0961593db41cf85689db1d583cJoe Perches int general_mdm_event; 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 73475be4d85a274d0961593db41cf85689db1d583cJoe Perches byte rc_ok; 741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 76475be4d85a274d0961593db41cf85689db1d583cJoe Perches Initialization request state machine 77475be4d85a274d0961593db41cf85689db1d583cJoe Perches */ 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int ChannelsTraceActive; 791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int ModemTraceActive; 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int FaxTraceActive; 811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int IncomingCallsCallsActive; 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int IncomingCallsConnectedActive; 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int OutgoingCallsCallsActive; 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int OutgoingCallsConnectedActive; 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int trace_mask_init; 871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int audio_trace_init; 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int bchannel_init; 891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int trace_length_init; 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int trace_on; 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int trace_events_down; 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int l1_trace; 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int l2_trace; 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 96475be4d85a274d0961593db41cf85689db1d583cJoe Perches Trace\Event Enable 97475be4d85a274d0961593db41cf85689db1d583cJoe Perches */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word trace_event_mask; 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds word current_trace_event_mask; 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword audio_tap_mask; 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword current_audio_tap_mask; 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword current_eye_pattern_mask; 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int audio_tap_pending; 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int eye_pattern_pending; 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword bchannel_trace_mask; 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword current_bchannel_trace_mask; 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds diva_trace_line_state_t lines[30]; 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int parse_entries; 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int cur_parse_entry; 115475be4d85a274d0961593db41cf85689db1d583cJoe Perches diva_strace_path2action_t *parse_table; 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds diva_trace_library_user_interface_t user_proc_table; 1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int line_parse_entry_first[30]; 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int line_parse_entry_last[30]; 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int modem_parse_entry_first[30]; 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int modem_parse_entry_last[30]; 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int fax_parse_entry_first[30]; 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int fax_parse_entry_last[30]; 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int statistic_parse_first; 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int statistic_parse_last; 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int mdm_statistic_parse_first; 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int mdm_statistic_parse_last; 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int fax_statistic_parse_first; 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int fax_statistic_parse_last; 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword line_init_event; 1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword modem_init_event; 1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword fax_init_event; 1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword pending_line_status; 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword pending_modem_status; 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword pending_fax_status; 1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dword clear_call_command; 1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int outgoing_ifc_stats; 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int incoming_ifc_stats; 1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int modem_ifc_stats; 1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int fax_ifc_stats; 1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int b1_ifc_stats; 1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int b2_ifc_stats; 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int d1_ifc_stats; 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int d2_ifc_stats; 1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds diva_trace_interface_state_t Interface; 1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds diva_ifc_statistics_t InterfaceStat; 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} diva_strace_context_t; 1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _diva_man_var_header { 1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte escape; 1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte length; 1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte management_id; 1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte type; 1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte attribute; 1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte status; 1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte value_length; 1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds byte path_length; 1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} diva_man_var_header_t; 1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 172