135 lines
5.3 KiB
C
135 lines
5.3 KiB
C
/*
|
|
* CM_PUB.H - definitions for connection manager
|
|
*/
|
|
|
|
#ifndef _CM_PUB_
|
|
#define _CM_PUB_
|
|
|
|
//
|
|
// global cm def's
|
|
//
|
|
/* a channel descriptor */
|
|
typedef struct
|
|
{
|
|
VOID* idd; /* related idd */
|
|
USHORT lterm; /* logical terminal in idd */
|
|
CHAR addr[32]; /* address to used - phone no. */
|
|
|
|
USHORT bchan; /* related b channel */
|
|
#define CM_BCHAN_B1 0 /* - b1 */
|
|
#define CM_BCHAN_B2 1 /* - b2 */
|
|
#define CM_BCHAN_ANY 2 /* - any */
|
|
#define CM_BCHAN_NONE 3 /* - no bchannel related */
|
|
#define CM_BCHAN_ASSIGNED(_b) \
|
|
((_b) < 3) /* check for 'assigned' b channel */
|
|
|
|
USHORT type; /* channel type */
|
|
#define CM_CT_D64 0 /* - digital 64 kbps */
|
|
#define CM_CT_D56 1 /* - digital 56 kbps */
|
|
#define CM_CT_VOICE 2 /* - digital voice/56 kbps */
|
|
ULONG speed; /* channel speed, in bps */
|
|
|
|
USHORT ustate; /* ustate (q.931) of channel */
|
|
USHORT cid; /* connection id, idp allocated */
|
|
|
|
USHORT num; /* channel number within connection */
|
|
VOID *cm; /* related connection manager */
|
|
|
|
UCHAR DstAddr[6]; /* ethernet address of remote side */
|
|
UCHAR remote_conn_index; /* connection # of remote connection */
|
|
|
|
ULONG timeout; /* used for dead-man timeouts */
|
|
|
|
BOOL active; /* channel is active? */
|
|
BOOL gave_up; /* gave-up on channel? */
|
|
|
|
ULONG flag; /* general purpose flag */
|
|
} CM_CHAN;
|
|
|
|
/* a profile descriptor */
|
|
typedef struct
|
|
{
|
|
BOOL nailed; /* nailed/demand access */
|
|
BOOL persist; /* connection persistance */
|
|
BOOL permanent; /* connection is permanent? */
|
|
BOOL frame_activated; /* connection activate by frame? */
|
|
BOOL fallback; /* fallback on channels */
|
|
BOOL HWCompression; // Compression negotiation on/off
|
|
|
|
ULONG rx_idle_timer; /* idle timer for rx side */
|
|
ULONG tx_idle_timer; /* idle timer for tx side */
|
|
|
|
USHORT chan_num; /* # of channels requested */
|
|
CM_CHAN chan_tbl[MAX_CHAN_PER_CONN]; /* requested channel descriptor */
|
|
|
|
CHAR name[32]; /* name of this profile */
|
|
CHAR remote_name[32]; /* name of remote profile */
|
|
} CM_PROF;
|
|
|
|
/* connection status descriptor */
|
|
typedef struct _CM
|
|
{
|
|
CHAR name[64]; /* name for this object */
|
|
|
|
CHAR LocalAddress[32]; /* address in format NetCard#-Line#-EndPoint */
|
|
|
|
USHORT state; /* connection state */
|
|
#define CM_ST_IDLE 0 /* - idle */
|
|
#define CM_ST_WAIT_ACT 1 /* - waiting for frame activation */
|
|
#define CM_ST_IN_ACT 2 /* - in activation */
|
|
#define CM_ST_IN_SYNC 3 /* - in syncronization */
|
|
#define CM_ST_ACTIVE 4 /* - connection is active! */
|
|
#define CM_ST_LISTEN 5 /* - is listening */
|
|
#define CM_ST_IN_ANS 6 /* - in answering process */
|
|
#define CM_ST_DEACT 7 /* - in deactivation process */
|
|
|
|
USHORT PrevState; /* used to track event signal states */
|
|
USHORT StateChangeFlag; /* used to signal state changes */
|
|
|
|
CM_PROF dprof; /* related profile - dynamic copy */
|
|
CM_PROF oprof; /* related profile - original copy */
|
|
|
|
BOOL was_listen; /* connection started as a listener? */
|
|
ULONG active_chan_num; /* # of active channels */
|
|
ULONG speed; /* connection speed, bps */
|
|
ULONG ConnectionType; /* 0/1 - ppp/dkf */
|
|
|
|
ULONG rx_last_frame_time; /* last time rx frame recorded */
|
|
ULONG tx_last_frame_time; /* last time tx frame recorded */
|
|
|
|
UCHAR local_conn_index; /* local connection # */
|
|
UCHAR SrcAddr[6]; /* local side ethernet address */
|
|
|
|
UCHAR remote_conn_index; /* remote side connection # */
|
|
UCHAR DstAddr[6]; /* remote side ethernet address */
|
|
CHAR remote_name[32]; /* name of remote profile */
|
|
|
|
ULONG timeout; /* dead-man timeout */
|
|
|
|
VOID *mtl; /* related mtl, internal */
|
|
VOID *idd; /* related idd */
|
|
VOID *Adapter; /* related adapter, internal */
|
|
|
|
VOID *TapiLineInfo; // back pointer to owning line
|
|
|
|
NDIS_HANDLE LinkHandle; // assigned during lineup
|
|
|
|
ULONG htCall; // tapi's handle to the call
|
|
|
|
ULONG TapiCallState; // tapi's call state
|
|
|
|
ULONG CallState; // our call state
|
|
|
|
ULONG AppSpecific; // app specific storage
|
|
|
|
UCHAR CauseValue; // Cause Value in Disc or Rel Messages
|
|
UCHAR SignalValue; // Signal Value in CallProc or CallProg Messages
|
|
UCHAR CalledAddress[32]; // Address that was called
|
|
UCHAR CallingAddress[32]; // Address of caller
|
|
ULONG PPPToDKF; // Flag to signal a change from PPP to DKF
|
|
ULONG NoActiveLine; // Flag to indicate when no line is detected
|
|
} CM_STATUS, CM;
|
|
|
|
#endif /* _CM_PUB_ */
|
|
|