/*
*
Copyright (c) Eicon Networks, 2000.
*
This source file is supplied for the use with
Eicon Networks range of DIVA Server Adapters.
*
Eicon File Revision : 1.9
*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
*
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifndef __DIVA_EICON_TRACE_IDI_IFC_H__
#define __DIVA_EICON_TRACE_IDI_IFC_H__
void *SuperTraceOpenAdapter(int AdapterNumber);
int SuperTraceCloseAdapter(void *AdapterHandle);
int SuperTraceWrite(void *AdapterHandle,
const void *data, int length);
int SuperTraceReadRequest(void *AdapterHandle, const char *name, byte *data);
int SuperTraceGetNumberOfChannels(void *AdapterHandle);
int SuperTraceASSIGN(void *AdapterHandle, byte *data);
int SuperTraceREMOVE(void *AdapterHandle);
int SuperTraceTraceOnRequest(void *hAdapter, const char *name, byte *data);
int SuperTraceWriteVar(void *AdapterHandle,
byte *data,
const char *name,
void *var,
byte type,
byte var_length);
int SuperTraceExecuteRequest(void *AdapterHandle,
const char *name,
byte *data);
typedef struct _diva_strace_path2action {
char path[64]; /* Full path to variable */
void *variable; /* Variable that will receive value */
} diva_strace_path2action_t;
#define DIVA_MAX_MANAGEMENT_TRANSFER_SIZE 4096
typedef struct _diva_strace_context {
diva_strace_library_interface_t instance;
int Adapter;
void *hAdapter;
int Channels;
int req_busy;
ENTITY e;
IDI_CALL request;
BUFFERS XData;
BUFFERS RData;
byte buffer[DIVA_MAX_MANAGEMENT_TRANSFER_SIZE + 1];
int removal_state;
int general_b_ch_event;
int general_fax_event;
int general_mdm_event;
byte rc_ok;
/*
Initialization request state machine
*/
int ChannelsTraceActive;
int ModemTraceActive;
int FaxTraceActive;
int IncomingCallsCallsActive;
int IncomingCallsConnectedActive;
int OutgoingCallsCallsActive;
int OutgoingCallsConnectedActive;
int trace_mask_init;
int audio_trace_init;
int bchannel_init;
int trace_length_init;
int trace_on;
int trace_events_down;
int l1_trace;
int l2_trace;
/*
Trace\Event Enable
*/
word trace_event_mask;
word current_trace_event_mask;
dword audio_tap_mask;
dword current_audio_tap_mask;
dword current_eye_pattern_mask;
int audio_tap_pending;
int eye_pattern_pending;
dword bchannel_trace_mask;
dword current_bchannel_trace_mask;
diva_trace_line_state_t lines[30];
int parse_entries;
int cur_parse_entry;
diva_strace_path2action_t *parse_table;
diva_trace_library_user_interface_t user_proc_table;
int line_parse_entry_first[30];
int line_parse_entry_last[30];
int modem_parse_entry_first[30];
int modem_parse_entry_last[30];
int fax_parse_entry_first[30];
int fax_parse_entry_last[30];
int statistic_parse_first;
int statistic_parse_last;
int mdm_statistic_parse_first;
int mdm_statistic_parse_last;
int fax_statistic_parse_first;
int fax_statistic_parse_last;
dword line_init_event;
dword modem_init_event;
dword fax_init_event;
dword pending_line_status;
dword pending_modem_status;
dword pending_fax_status;
dword clear_call_command;
int outgoing_ifc_stats;
int incoming_ifc_stats;
int modem_ifc_stats;
int fax_ifc_stats;
int b1_ifc_stats;
int b2_ifc_stats;
int d1_ifc_stats;
int d2_ifc_stats;
diva_trace_interface_state_t Interface;
diva_ifc_statistics_t InterfaceStat;
} diva_strace_context_t;
typedef struct _diva_man_var_header {
byte escape;
byte length;
byte management_id;
byte type;
byte attribute;
byte status;
byte value_length;
byte path_length;
} diva_man_var_header_t;
#endif