/*-INCLUDE-***************************************************************************************/
/* File-Name       : G L O B _ D E F . H                                                         */
/* Projekt         : Gesko I209                                                                  */
/* Modul           : -                                                                           */
/*-----------------------------------------------------------------------------------------------*/
/* Aufgabe         : Schicht-123 Globale Definitionen                                            */
/*                   - Allgemeine Definitionen                                                   */
/*                   - Primitive-Codierungen Verwendung in den Layer 1, Layer 2, Layer 3         */
/*                     Automaten                                                                 */
/*                   - Schicht-1,2,3-Konstanten (laut CCITT und 1TR 6)                           */
/*                                                                                               */
/*-----------------------------------------------------------------------------------------------*/
/* Autor           : Rainer Hackbarth                                                            */
/* entwickelt am   : 28.01.1993                                                                  */
/* letztes Update  : 16.10.1999                                                                  */
/*-----------------------------------------------------------------------------------------------*/
/* Vers.  | Datum  | Beschreibung                                                    | FNR | KZ  */
/* -------|--------|-----------------------------------------------------------------|-----|---- */
/* 01/000 |28.01.93| Erstellung                                                      |     | HB  */
/* 10/000 |05.11.93| ROLAND NET3 abgenommen                                          |     | HB  */
/* 10/001 |09.11.93| typedef Deklaration fuer LtStruct eingefuehrt                   |     | MB  */
/* 10/002 |15.11.93| Im L3Hdr 'NextMsg' entfernt (wird nicht mehr benutzt)           |     |     */
/*                 | Im L3Hdr '*L2Lcb hinzugefuegt                                   |     |     */
/*                 | Neues Primitive K_L3_TIM_REL_REQ_EXP fuer DL-REL-REQ            |     | RH  */
/* 10/003 |18.11.93| Defines fuer EEPROM-Treiber ueberarbeitet                       |     | MB  */
/* 10/004 |22.11.93| EEP_TEST fuer EEPROM-Test zugefuegt                             |     | MB  */
/* 10/005 |23.11.93| Parameter EEP_ALL zugefuegt (LT-Schnittstelle)                  |     | MB  */
/* 10/006 |23.11.93| Restliche EEPROM-Parameter zugefuegt                            |     | MB  */
/* 10/007 |02.12.93| LtToPc Struktur  zugefügt                                       |     | RM  */
/* 10/008 |11.01.94| LT Messages eingefügt                                           |     | RM  */
/* 10/009 |17.01.94| LT_TIMER_RESET_V24 eingefügt                                    |     | RM  */
/* 10/010 |18.01.94| LT Timer hinzugefügt                                            |     | RM  */
/* 10/011 |21.01.94| Freigabe Version 1.0                                            |     | HB  */
/* 10/012 |31.01.94| Tei fuer Net-PTMP im L3Hdr hinzugefuegt                         |     | RH  */
/* 10/013 |04.02.94| Defines fuer S31 eingefuegt                                     |     | HB  */
/* 10/014 |25.02.94| Kf - Strobe Timing und RS 232 Steuerung angepasst               |     | RM  */
/* 10/015 |07.03.94| In IsdnMsgType 'TeiIdx' für L3 <-> L7 im User-Mode hinzugefuegt |     | RH  */
/* 10/016 |11.03.94| LabSwitchBChn - Structur eingefuegt                             |     | AB  */
/* 10/017 |14.03.94| Ergaenzungen fuer S34 zum Schalten der B-Kanaele (digital)      |     | RH  */
/* 10/018 |22.03.94| EEP-Versionsdaten entfernt                                      |     | MB  */
/* 10/019 |03.05.94| Neues Primitiv K_L3_REL_CON fuer Layer 3                        |     | RH  */
/* 10/020 |19.05.94| Tei und TlnId im L3Hdr entfernt                                 |     | RH  */
/* 10/021 |02.06.94| Neue Primitive K_L3_IND_DATA_REQ & K_L3_IND_DATA_IND            |     | RH  */
/* 10/022 |10.06.94| K_N_UDATA_REQ neu.                                              |     | BA  */
/* 10/023 |21.07.94| Neue L2 Primitive K_AMCO_RNR_TIM_EXP                            |     | HB  */
/* 10/024 |06.09.94| Konstanten fuer LM-Task und dig. Koppelfeld eingebaut.          |     | RM  */
/*                   LgbKonfigType wird bei S34 nicht benoetigt (dort macht ein Array|     |     */
/* 10/025 |08.09.94| mit Dimension 0 dem Borland-Compiler Schwierigkeiten!)          |     | BA  */
/* 10/026 |24.07.95| #ifdef E208 entfernt                                            |     | RH  */
/* 10/027 |01.08.95| Anpassungen fuer neue L7 (Port -> TeiIdx)                       |     | RH  */
/* 10/028 |28.08.95| Doppeldeutige L1-Primitive beseitigt                            |     | RH  */
/* 10/029 |29.08.95| Primitive fuer LGB hinzugebracht                                |     | RH  */
/* 10/030 |30.10.95| Neue Primitive fuer Call-Referenz Generator                     |     | RH  */
/* 10/031 |31.10.95| K_L73_CR_REL_OK_REQ mit K_L73_CR_REL_REQ ersetzt                |     | RH  */
/* 10/032 |01.03.96| Neues Primitive 'K_L7_SHOW_DATEN' fuer PC-Simulation            |     | RH  */
/* 10/033 |07.03.96| Neues Primitive 'K_LGB_AMT_RUF_ABBRUCH'                         |     | RH  */
/* 10/034 |12.06.96| Neues Primitive 'K_LGB_GEB_IMP_IND'                             |     | RH  */
/* 10/035 |20.09.96| Sicofi-Töne implementiert                                       |     | TM  */
/* 10/036 |21.10.96| Erweiterung bei Gebuehren fuer Nationale Konfigurationen        |     | RH  */
/* 10/037 |30.10.96| Neues Primitive K_L3_TIM_EST_REQ_EXP                            |     | RH  */
/* 10/038 |13.11.96| exportierte Schnittstelle von LGB zu L7 eingebaut               |     | TM  */
/* 10/039 |18.11.96| LgbKonfig erweitert um Gebührenkonto                            |     | TM  */
/* 10/040 |03.01.97| Neues Primitive 'K_LGB_GEB_KON_IND'                             |     | TM  */
/* 10/041 |10.01.97| LT_MSG_IN_IND eingebaut                                         |     | TM  */
/* 10/042 |27.02.97| Neues Primitive: K_L7_FW_START fuer Fernwartung                 |     | RH  */
/* 10/043 |16.04.97| GespDatenSpeicherung in EEP - eigene Variablen reingebracht     |     | TM  */
/* 10/044 |22.04.97| Neues Primitive: K_LGB_L7_DATA fuer Beocom AOCE                 |     | HM  */
/* 10/045 |22.07.97| Neue Struktur 'L7_RH_FacHdrType' fuer Facility I.E.             |     | RH  */
/* 10/046 |28.08.97| Neues Primitive 'K_DL_TEI_REM_REQ'                              |     | RH  */
/* 10/047 |02.10.97| Primitive 'EEP_CODEC_SPEC' in  'EEP_CODEC_RUL' umbenannt.       |     | HM  */
/* 10/048 |01.12.97| Neue Primitives 'K_AB_FSK_REQ'  FSK: CLIP per FSK senden        |     | HM  */
/*                   'K_AB_MARK_SIGNAL_ENDE'         FSK: Das Marksignal ist zu Ende |     |     */
/*                   'K_AB_FSK_ENDE'                 FSK: Die Sendung ist zu Ende    |     |     */
/* 10/049 |23.02.98| Neues Primitive 'K_L77_EDSS1_IND' fuer interne S0 Port          |     | RH  */
/* 10/050 |18.03.98| GeskoUhr auf Sekunden umgestellt                                |     | TM  */
/* 10/051 |05.05.98| Neue Primitives 'K_AB_MICO_TON_REQUEST','K_AB_MASI_TEST_REQUEST'|     | HM  */
/*                   'L7IntMsgType' mit 'L7ErwType' erweitert. Die Laenge dieser     |     |     */
/* 10/052 |28.07.98| Struktur muss beim holen eines Msg-Buff. beruecksichtigt werden |     | RH  */
/*************************************************************************************************/

#define GLOB_DEF_H
/* ============================================================================================= */
/*                                         KONSTANTE                                             */
/* ============================================================================================= */
#ifdef I416
  #define S0_PORT_TYP(x)          L7_Typ_Block.ISDN_PortType[x]
  #define ISDN_PORT_KONFIG_TYPE   L0_EepTypKonfigType
#endif

#ifdef I209
  #define S0_PORT_TYP(x)          L7_Msn_Block.ISDN_PortType[0]
  #define ISDN_PORT_KONFIG_TYPE   L0_EepSystemKonfigType
#endif

#define ANZ_SAPI                2                          /* Anzahl der Sapis                   */
#define SAPI_S                  0                          /* SAPI - Werte                       */
#define SAPI_P                  16                         /*                                    */
#define SAPI_MT                 32                         /*                                    */
#define SAPI_MG                 63                         /*                                    */

#define TEI_GROUP               127                        /* AB,                                */
#define TEI_IDX_UNASS           0xFF                       /* TEI Index in L3DataMsg unbekannt   */

#define K_SWITCH_B_CHAN_ON      1                          /* B-Kanal auf Digital-Seite einsch.  */
#define K_SWITCH_B_CHAN_OFF     0                          /* B-Kanal auf Digital-Seite aussch.  */

#define K_MAX_PORT_NR           16

#define BUFFER_260_MAX_MSG_LEN  BUFFER_260_LG               /* Maximale laenge einer ueber die   */
                                                            /* Physik uebertragbaren Dateninfo   */

/* ============================================================================================= */
/*                     Konstanten für die Codeladung                                             */
/* ============================================================================================= */
#define CODELADUNG_AUS        0
#define CODELADUNG_SENDEN     1
#define CODELADUNG_EMPFANGEN  2
#define MODE_SENDEN           1
#define MODE_EMPFANGEN        0

/* ============================================================================================= */
/*                     Codierung des oberens Nibble der Primitiven                               */
/* ============================================================================================= */

#define K_L0_PRIM              0x0000               /* Primitiv Kodierung von Layer 0 (inkl. EEP)*/
#define K_L1_PRIM              0x1000               /* Primitiv Kodierung von Layer 1            */
#define K_L2_PRIM              0x2000               /* Primitiv Kodierung von Layer 2            */
#define K_L3_PRIM              0x3000               /* Primitiv Kodierung von Layer 3            */
#define K_LGB_PRIM             0x4000               /* Primitiv Kodierung von Layer Gebuehren    */
#define K_LAB_PRIM             0x5000               /* Primitiv Kodierung von Layer AB           */
#define K_LT_PRIM              0x6000               /* Primitiv Kodierung von Layer LT           */
#define K_L7_PRIM              0x7000               /* Primitiv Kodierung von Layer 7            */
                                /* muß wieder geändert werde, wenn mehr als 8 Layer möglich sind */

#define K_LX_MASK              0xF000               /* Maske fuer K_LX_PRIM                      */

/* ============================================================================================= */
/*                    Primitive-Codierungen fuer das EEPROM-Handling                             */
/* ============================================================================================= */

#define EEP_GET                (K_L0_PRIM + 0x0040)
#define EEP_SET                (K_L0_PRIM + 0x0080)
#define EEP_TEST               (K_L0_PRIM + 0x00C0)

#define EEP_ALL                (K_L0_PRIM + 0x0001)
#define EEP_ICT_DATA           (K_L0_PRIM + 0x0002)
#define EEP_POWER_FAIL         (K_L0_PRIM + 0x0003)
#define EEP_CRC_DATA           (K_L0_PRIM + 0x0004)
#define EEP_CODEC_ALL          (K_L0_PRIM + 0x0006)
#define EEP_CODEC_TEL          (K_L0_PRIM + 0x0007)
#define EEP_CODEC_FAX          (K_L0_PRIM + 0x0008)
#define EEP_CODEC_CONF         (K_L0_PRIM + 0x0009)
#define EEP_CODEC_RUL          (K_L0_PRIM + 0x000A)
#define EEP_TLN_KONFIG         (K_L0_PRIM + 0x000B)
#define EEP_SERVICE            (K_L0_PRIM + 0x000C)
#define EEP_SYSTEM_KONFIG      (K_L0_PRIM + 0x000D)
#define EEP_CHARGE             (K_L0_PRIM + 0x000E)
#define EEP_APPLICATION        (K_L0_PRIM + 0x000F)
#define EEP_ERROR_TRACE        (K_L0_PRIM + 0x0010)
#define EEP_TYP_KONFIG         (K_L0_PRIM + 0x0011)
#define EEP_INT_PORT_TAB       (K_L0_PRIM + 0x0012)

#define LCR_ALL                (K_L0_PRIM + 0x0020)
#define LCR_KUNDE_DATA         (K_L0_PRIM + 0x0021)
#define LCR_PROVIDER_DATA      (K_L0_PRIM + 0x0022)

/* -- Antworten -------------------------------------------------------------------------------- */
#define EEP_OK                 (K_L0_PRIM + 0x0000)
#define EEP_ERROR              (K_L0_PRIM + 0x0FFF)

/* ============================================================================================= */

/*                            Primitive-Codierungen des LME-Automaten                            */
/* ============================================================================================= */

/* -- ACHTUNG: Liste L2_HB_TeTspAutomFktTab[] in L2TE_TSP.C beachten !!! ----------------------- */
/* -- ACHTUNG: Liste L2_HB_LmeAutomFktTab[]   in L2LTSTSP.C beachten !!! ----------------------- */

#define K_DL_EST_REQ           (K_L3_PRIM + 0x0000)        /* Aufbau oder Re-Initialisierung     */
#define K_DL_REL_REQ           (K_L3_PRIM + 0x0001)        /* Abbau einer L2-Verbindung          */
#define K_DL_UDATA_REQ         (K_L3_PRIM + 0x0002)        /* Daten ungesichert zur Gegenseite   */
#define K_T200_IDENT_EXP_IND   (K_L2_PRIM + 0x0003)        /* Timer Identity Request abgelaufen  */
#define K_DL_DATA_REQ          (K_L3_PRIM + 0x0004)        /* Daten zur gesicherten Uebertrag    */
#define K_AMCO_RNR_TIM_EXP     (K_L2_PRIM + 0x0005)        /* RnR Timer abgelaufen               */
#define K_DL_TEI_REM_REQ       (K_L3_PRIM + 0x0006)        /* TEI soll von L2 freigegeben werden */
#define K_PH_ACT_IND           (K_L1_PRIM + 0x0208)        /* Schicht-1 ist aktive               */
#define K_PH_DEA_IND           (K_L1_PRIM + 0x0209)        /* Schicht-1 ist deaktive             */
#define K_PH_DATA_IND          (K_L1_PRIM + 0x020A)        /* Daten der Gegenseite stehen an     */
#define K_MDL_ACT_REQ          (K_L2_PRIM + 0x010D)        /* L2MG aktive, L1 wird benoetigt     */
#define K_MDL_DEA_REQ          (K_L2_PRIM + 0x010E)        /* L2MG deaktive, keine L1 benoetigt  */
#define K_MDL_UDATA_REQ        (K_L2_PRIM + 0x0111)        /* TEI-Nachricht soll uebertragen     */
#define K_AMCO_DEA_REQ         (K_L2_PRIM + 0x0112)        /* Ausserbetriebnahme protokollgerec  */
#define K_TXX_EXP_IND          (K_L2_PRIM + 0x0018)        /* Timer fuer ACT-Ueberwachung        */
#define K_TYY_EXP_IND          (K_L2_PRIM + 0x0019)        /* Timer fuer DEACT-Ueberwachung      */
#define K_T200_EXP_IND_LC      (K_L2_PRIM + 0x001a)        /* Ueberwachung Auf/Abbau L2          */
#define K_T200_EXP_IND_MF      (K_L2_PRIM + 0x001b)        /* Ueberwachung Quittung              */
#define K_T203_EXP_IND         (K_L2_PRIM + 0x001c)        /* Ueberwachung der aktiven L2        */
#define K_AMCO_SET_BUSY        (K_L2_PRIM + 0x011d)        /* Setzen von OWN-RECEIVER BUSY       */
#define K_AMCO_SET_READY       (K_L2_PRIM + 0x011e)        /* Zuruecksetzen von OWN-BUSY         */

/* ============================================================================================= */
/*                       Primitive-Codierungen des Schicht-2-Managements                         */
/* ============================================================================================= */

#define K_L2_NOTHING_IND       (K_L2_PRIM + 0x0213)        /* Msg wegschmeissen                  */
#define K_T202_EXP_IND         (K_L2_PRIM + 0x021a)        /* Timer fuer REQUEST  Ueberwachung   */
#define K_T200_EXP_IND         (K_L2_PRIM + 0x021b)        /* T200 fuer TE                       */

#define K_MDL_UDATA_IND        (K_L2_PRIM + 0x0220)        /* TEI-Nachricht zum LMC              */
#define K_MDL_ERR_IND          (K_L2_PRIM + 0x0221)        /* L2AS meldet Protokollabweichung    */
#define K_MDL_DEA_IND          (K_L2_PRIM + 0x0222)        /* L2AS meldet L1 wird abgebaut       */
#define K_MDL_ACT_IND          (K_L2_PRIM + 0x0223)        /* L2AS meldet L1 aktiv               */
#define K_MDL_ASS_IND          (K_L2_PRIM + 0x0224)        /* CME  fordert einen TEI an          */
#define K_MDL_VALID_IND        (K_L2_PRIM + 0x0225)        /* anzeigen Gueltigkeit eines TEI     */


#define K_T201_EXP_IND         (K_L2_PRIM + 0x0225)        /* Timer fuer TEI-CHECK Ueberwachung  */
#define K_T252_EXP_IND         (K_L2_PRIM + 0x0226)        /* Ueberwachung General-Check         */
#define K_T204_EXP_IND         (K_L2_PRIM + 0x0227)        /* Uebrwachung Identiy Remove         */
#define K_T_VALID_EXP_IND      (K_L2_PRIM + 0x0228)        /* Ueberw. ungueltig gesetzter TEI    */
#define K_MACO_CHANGE_STAT     (K_L2_PRIM + 0x0229)        /* feste TEIs gueltig setzen          */

/* ============================================================================================= */
/*                      Primitive-Codierungen der Schicht-2-Initialisierung                      */
/* ============================================================================================= */

#define K_INIT_REQUEST         (K_L0_PRIM + 0x0050)        /* Primitive der Initanfor            */
#define K_INIT_RESPONSE        (K_L0_PRIM + 0x0054)        /*                                    */
#define K_AMCO_ACT_L2          (K_L2_PRIM + 0x0117)        /* Vermittlungstech. Aktivierung (PtP)*/

#define K_LISTEN_ENDE          0x007F                      /* Ende der Liste Automat             */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 2 zur Schicht 3                          */
/* ============================================================================================= */

#define K_DL_EST_IND           (K_L2_PRIM + 0x0008)        /* Aufbau oder Re-Initialisierung     */
#define K_DL_EST_CON           (K_L2_PRIM + 0x0009)        /* Aufbau oder Re-Initialisierung     */
#define K_DL_REL_IND           (K_L2_PRIM + 0x000a)        /* Abbau einer L2-Verbindung          */
#define K_DL_REL_CON           (K_L2_PRIM + 0x000b)        /* Abbau einer L2-Verbindung          */
#define K_DL_DATA_IND          (K_L2_PRIM + 0x000c)        /* Daten zur gesicherten Uebertrag    */
#define K_DL_UDATA_IND         (K_L2_PRIM + 0x000d)        /* Daten zur gesicherten Uebertrag    */

#define K_AMCO_L7_DATA_IND     (K_L7_PRIM + 0x0777)        /* Daten von 8051-Schnittstelle       */

/* ============================================================================================= */
/*              Primitives L23-Automat <--> L3-Manager <--> L3-Protokoll-Automaten               */
/* ============================================================================================= */

#define K_L3_EST_IND           (K_L3_PRIM + 0x0201)        /* Aufbau oder Re-Initialisierung L2  */
#define K_L3_EST_CON           (K_L3_PRIM + 0x0202)        /* Aufbau oder Re-Initialisierung L2  */
#define K_L3_REL_IND           (K_L3_PRIM + 0x0203)        /* Abbau einer L2 Verbindung          */
#define K_L3_REL_CON           (K_L3_PRIM + 0x0204)        /* Abbau einer L2 Verbindung          */
#define K_L3_DATA_IND          (K_L2_PRIM + 0x0205)        /* Un-, Gesicherte Daten zur L3       */
#define K_L3_UDATA_IND         (K_L2_PRIM + 0x0206)        /* Un-, Gesicherte Daten zur L3       */
#define K_L3_BROADC_IND        (K_L2_PRIM + 0x0207)        /* Broadcast-Message von L2           */
#define K_L3_NO_DATA_IND       (K_L2_PRIM + 0x0208)        /* Keine ISDN-Daten zur L3            */

#ifdef PC
#define K_L3_TM_FORCE_STATE_PRIM (K_L3_PRIM + 0x0400)      /* Primitiv zum Erzwingen eines States*/
#endif

#define K_L3_TIMER_PRIM        (K_L3_PRIM + 0x0100)        /* Primitiv fuer Layer 3 Timer        */
#define K_L3_ERROR             (K_L3_PRIM + 0x02FE)        /* Ein FEHLER ist aufgetreten         */
#define K_L3_LISTEN_ENDE       (K_L3_PRIM + 0x02FF)        /* Listen-Ende Primitive Automat L2/3 */
#define K_L3_EST_REQ           (K_L3_PRIM + 0x0301)        /* Aufbau oder Re-Initialisierung L2  */
#define K_L3_REL_REQ           (K_L3_PRIM + 0x0302)        /* Abbau einer L2 Verbindung          */
#define K_L3_DATA_REQ          (K_L3_PRIM + 0x0303)        /* Gesicherte Daten zur L2            */
#define K_L3_UDATA_REQ         (K_L3_PRIM + 0x0304)        /* Ungesicherte Daten zur L2          */
#define K_L3_BROADC_REQ        (K_L3_PRIM + 0x0305)        /* Broadcast-Message zur L2           */
#define K_L3_DATA_QUEUE_REQ    (K_L3_PRIM + 0x0306)        /* Data-Queue zur L2                  */
#define K_L3_INT_DATA_REQ      (K_L3_PRIM + 0x0307)        /* Daten von L3 -> L3 (Orgin. Intern) */
#define K_L3_EXT_DATA_REQ      (K_L3_PRIM + 0x0308)        /* Daten von L3 -> L3 (Orgin. Extern) */
#define K_L3_IND_DATA_REQ      (K_L3_PRIM + 0x0309)        /* Daten: L3-Glob-Proz -> L3-Ind-Proz */
#define K_L3_IND_DATA_IND      (K_L3_PRIM + 0x030A)        /* Daten: L3-Ind-Proz  -> L3-Glob-Proz*/

#define K_L3_NO_DATA_REQ       (K_L3_PRIM + 0x0320)        /* Keine ISDN-Daten zur L2            */
#define K_L3_TIM_EST_REQ_EXP   (K_L3_PRIM + 0x0321)        /* Wartezeit fuer DL-EST-REQ abgel.   */
#define K_L3_TIM_REL_REQ_EXP   (K_L3_PRIM + 0x0323)        /* Wartezeit fuer DL-REL-REQ abgel.   */
#define K_L3_TIM_REL_CON_EXP   (K_L3_PRIM + 0x0324)        /* Wartezeit fuer DL-REL-CON abgel.   */
#define K_L3_IGNORE_MSG        (K_L3_PRIM + 0x03FF)        /* Aktuelle Message Ignorieren        */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 3 zur Schicht 7                          */
/* ============================================================================================= */

#define K_L37_CR_EST_IND       (K_L3_PRIM + 0x0700)        /* CR wurde von Schicht 3 erzeugt     */
#define K_L37_CR_REL_IND       (K_L3_PRIM + 0x0701)        /* CR wurde von Schicht 3 freigegeben */
#define K_L37_DATA_IND         (K_L3_PRIM + 0x0702)        /* Daten zur L7 (ISDN-Message)        */
#define K_L37_T302_EXP_IND     (K_L3_PRIM + 0x0703)        /* Ablauf von Timer 302 der L7 melden */
#define K_L37_SWITCH_B_CHA_IND (K_L3_PRIM + 0x0737)        /* B-Kanal auf Digital-Seite schalten */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 7 zur Schicht AB                         */
/* ============================================================================================= */

#define K_AB_RUF_REQ           (K_L7_PRIM + 0x0000)        /* Ruf schalten                       */
#define K_AB_TON_REQ           (K_L7_PRIM + 0x0001)        /* Ton schalten                       */
#define K_AB_WRITE_SICO_REQ    (K_L7_PRIM + 0x0002)        /* Koeffizientensatz schreiben        */
#define K_AB_CHANGE_SICO_REQ   (K_L7_PRIM + 0x0003)        /* Koeff.satz eines Sicofis aendern   */
#define K_AB_SET_MOH_REQ       (K_L7_PRIM + 0x0004)        /* MOH-Melody aendern                 */
#define K_AB_SET_SICO_LOOP_REQ (K_L7_PRIM + 0x0005)        /* Schleife eines Sicofis setzen      */
#define K_AB_KF_REQ            (K_L7_PRIM + 0x0006)        /* Koppelfeld schalten                */
#define K_AB_SET_FLASH_REQ     (K_L7_PRIM + 0x0007)        /* Param der Flashzeit                */
#define K_AB_MICO_TON_REQUEST  (K_L7_PRIM + 0x0501)        /* Hoertoene im Mico erzeugen         */
#define K_AB_CLEAR_MICO        (K_L7_PRIM + 0x0505)        /* Mico-Verbindungen zuruecksetzen    */
#define K_AB_CLEAR_CLIP_BUFFER (K_L7_PRIM + 0x0506)        /* CLIP-Buffer entsorgen              */

/*----- Beocom ----------------------------------------------------------------------------------*/
#define K_AB_SICOFI_MFV_REQ           (K_L7_PRIM + 0x0507) /* Beocom  Sicofi soll Mfv senden     */
#define K_AB_SICOFI_SCHALTE_MFV       (K_L7_PRIM + 0x0508) /* Beocom  Sicofi soll Mfv senden     */
#define K_AB_SICOFI_MFV_DAUERTON      (K_L7_PRIM + 0x0509) /* Beocom  Sicofi soll Mfv senden     */
#define K_AB_SICOFI_SCHALTE_AMPLITUDE (K_L7_PRIM + 0x050A) /* Beocom  Sicofi soll Mfv senden     */

/*----- Quittungstoene --------------------------------------------------------------------------*/
#define K_AB_SICOFI_TON_REQ           (K_L7_PRIM + 0x050B) /* Quittungstoene im Sicofi erzeugen  */
/*----- Sicofi steuern --------------------------------------------------------------------------*/
#define K_AB_SICOFI_STEUER_REQ        (K_L7_PRIM + 0x050C) /* Sicofiausgang EIN/AUS              */
/*-----------------------------------------------------------------------------------------------*/


/*----- FSK-Modul -------------------------------------------------------------------------------*/
#define K_AB_FSK_REQ                  (K_L7_PRIM + 0x050D) /* CLIP per FSK senden                */
#define K_AB_FSK_TEST                 (K_L7_PRIM + 0x050E) /* FSK-Frequenz dauernd einschalten   */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 7 zur Schicht LT                         */
/* ============================================================================================= */

#define K_L7_FW_RESP           (K_L7_PRIM + 0x0600)        /* Fernwartung Antwort an Layer LT    */
#define K_L7I_DATA_IND         (K_L7_PRIM + 0x0601)        /* Daten von L7-Isdn-Seite zu LTC     */
#define K_L7AB_DATA_IND        (K_L7_PRIM + 0x0602)        /* Daten von L7-Ab-Seite zu LTC       */
#define K_L7IN_DATA_IND        (K_L7_PRIM + 0x0603)        /* Daten von L7-IsdnNet-Seite zu LTC  */
#define K_L7_DATA_IND          (K_L7_PRIM + 0x0604)        /* Daten von L7 Automat zu LTC        */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 7 zur Schicht 3                          */
/* ============================================================================================= */

#define K_L73_DATA_REQ         (K_L7_PRIM + 0x0300)        /* Daten zur L3 (ISDN-Message)        */
#define K_L73_UDATA_REQ        (K_L7_PRIM + 0x0301)        /* U-Daten zur L3 (ISDN-Message)      */
#define K_L73_CR_EST_REQ       (K_L7_PRIM + 0x0370)        /* L7 will neue Call-Referenz haben   */
#define K_L73_CR_REL_REQ       (K_L7_PRIM + 0x0371)        /* L7 will Call-Referenz freigeben    */
#define K_L73_CR_SHOW_REQ      (K_L7_PRIM + 0x0372)        /* L7 will alle Call-Referenzen sehen */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 7 zur Schicht 7                          */
/* ============================================================================================= */

#define K_L7_TIMER_PRIM        (K_L7_PRIM + 0x0100)        /* Primitive fuer L7 Timer            */
#define K_L77_DATA_IND         (K_L7_PRIM + 0x0700)        /* Daten zur L7 ( L7IntMsg )          */
#define K_L77_ISDN_IND         (K_L7_PRIM + 0x0701)        /* Daten zur L7 ( L7IntIsdnMsg )      */
#define K_L7_INT_SETUP_IND     (K_L7_PRIM + 0x0702)        /* Internes Setup (Rueckfrage)        */
#define K_L7_FW_START          (K_L7_PRIM + 0x0703)        /* Fernwartung ueber B-Kanal starten  */
#define K_L7_FW_STOP           (K_L7_PRIM + 0x0704)        /* Fernwartung ueber B-Kanal stoppen  */
#define K_L7_CDL_START         (K_L7_PRIM + 0x0706)
#define K_L77_AOCE_READY       (K_L7_PRIM + 0x0705)        /* AOCE-READY an AB-Seite  für Beocom */
#define K_L7_SHOW_DATEN        (K_L7_PRIM + 0x07FE)        /* Daten fuer PC-Simulation anzeigen  */
#define K_L7_IGNORE_MSG        (K_L7_PRIM + 0x07FF)        /* Diese Message ignorieren           */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht AB zur Schicht 7                         */
/* ============================================================================================= */

#define K_LAB_WAHLBEREIT       (K_LAB_PRIM + 0x00ff)       /* Wahlbereitschaft von Layer AB      */
#define K_AB_DATA_IND          (K_LAB_PRIM + 0x0700)       /* Daten von Layer AB -> L7-TLN       */
#define K_AB_ISDN_IND          (K_LAB_PRIM + 0x0701)       /* Daten von Layer AB -> L7-ISDN-AMT  */
#define K_CDL_SEND_COMPLETE    (K_LAB_PRIM + 0x0702)       /* Codeladung Senden                  */
#define K_CDL_RECEIVE_COMPLETE (K_LAB_PRIM + 0x0703)       /* Codeladung Empfangen               */
#define K_CDL_TRANSFER_ENDE    (K_LAB_PRIM + 0x0704)       /* Codeladung beenden                 */
#define K_CDL_RECEIVE_ECHO     (K_LAB_PRIM + 0x0705)       /* Codeladung Echo empfangen          */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht AB zur Schicht AB                        */
/* ============================================================================================= */

#define K_PH_MON_DATA_ACK        (K_LAB_PRIM + 0x0006)
#define K_PH_LAB_MFV_TIMER_START (K_LAB_PRIM + 0x0007)

#define K_AB_MARK_SIGNAL_ENDE    (K_LAB_PRIM + 0x0500)     /* FSK: Das Marksignal ist zu Ende    */
#define K_AB_FSK_ENDE            (K_LAB_PRIM + 0x0501)     /* FSK: Die Sendung ist zu Ende       */
#define K_AB_MICO_MON_DATA_REQ   (K_LAB_PRIM + 0x0502)     /* MICO soll Daten im Monitorkanal    */
                                                           /* zum SICOFI senden                  */

/* ============================================================================================= */
/*                    Primitive-Codierungen des HW-Testmoduls zur Schicht AB                     */
/* ============================================================================================= */

#define K_LAB_ZUSTAND_KF_1       (K_LAB_PRIM + 0x0011)                    /* KF Zustand anzeigen */
#define K_LAB_ZUSTAND_KF_2       (K_LAB_PRIM + 0x0012)                    /* KF Zustand anzeigen */
#define K_LAB_ZUSTAND_PORTS      (K_LAB_PRIM + 0x0013)                    /* Ports+I/Os anzeigen */

/* Um Testfunktionen fuer den MICO, SICOFI, FSK, usw. aufrufen zu koennen */
#define K_AB_MASI_TEST_REQUEST   (K_LAB_PRIM + 0x0014)

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht 1 zur Schicht 2                          */
/* ============================================================================================= */

#define K_PH_ACT_REQ             (K_L1_PRIM + 0x0000)
#define K_PH_DEA_REQ             (K_L1_PRIM + 0x0001)
#define K_PH_DATA_REQ            (K_L1_PRIM + 0x0002)
#define K_PH_ACT_REQ_LOOP        (K_L1_PRIM + 0x0003)
#define K_PH_LOOP_BCHANNEL_IOM   (K_L1_PRIM + 0x0004)
#define K_PH_SEND_SINGLE_PULSES  (K_L1_PRIM + 0x0005)
#define K_PH_SEND_CONT_PULSES    (K_L1_PRIM + 0x0006)
#define K_PH_RESET_TEST_MODE     (K_L1_PRIM + 0x0007)
#define K_PH_SWITCH_B_CHANEL     (K_L1_PRIM + 0x0708)
#define K_PH_INIT_DONE           (K_L1_PRIM + 0x0009)
#define K_PH_UDATA_REQ           (K_L1_PRIM + 0x000A)
#define K_PH_MON_DATA_REQ        (K_L1_PRIM + 0x000B)
#define K_PH_MSG_VOM_INT_TREIBER (K_L1_PRIM + 0x000C)
#define K_PH_T3_EXP_IND          (K_L1_PRIM + 0x000D)

#define ANZ_L1_PRIMITIVES  14     /* !! Beachten */

/* -- Fernwartung ------------------------------------------------------------------------------ */

#define K_L1_FW_RXD_IND          (K_L1_PRIM + 0x0101)      /* B-Kanal Message wurde empfangen    */
#define K_L1_FW_TIM_IND          (K_L1_PRIM + 0x0103)      /* FW-Timer                           */
#define K_L1_IGNORE_MSG          (K_L1_PRIM + 0x01FF)      /* Message Ignoriern (Timer)          */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht-LT                                       */
/* ============================================================================================= */

/* ------ Message Informationen ------ */
#define LT_INIT_REQUEST        (K_LT_PRIM + 0x0010)
#define LT_INIT_RESPONSE       (K_LT_PRIM + 0x0011)
#define LT_REC_DATA            (K_LT_PRIM + 0x0012)
#define LT_REC_MORE_DATA       (K_LT_PRIM + 0x0013)
#define LT_REC_FAIL_QUIT       (K_LT_PRIM + 0x0014)
#define LT_REC_PASS_QUIT       (K_LT_PRIM + 0x0015)
#define LT_SEND_DATA           (K_LT_PRIM + 0x0016)
#define LT_TEST_REC_DATA       (K_LT_PRIM + 0x0017)
#define LT_BLOCK_DATA          (K_LT_PRIM + 0x0018)
#define LT_TIMER_RESET         (K_LT_PRIM + 0x001a)
#define LT_TIMER_RES_1         (K_LT_PRIM + 0x001b)
#define LT_TIMER_RES_2         (K_LT_PRIM + 0x001c)
#define LT_TIMER_KF_OK         (K_LT_PRIM + 0x001d)

/* ============================================================================================= */
/*                    Primitive-Codierungen aller Schichten zu Schicht LT                        */
/* ============================================================================================= */
#define LT_MSG_IN_IND          (K_LT_PRIM + 0x001e)

/* ============================================================================================= */
/*                    Primitive-Codierungen zwischen Schicht LTC und Schicht L1                  */
/* ============================================================================================= */
#define K_LT_FW_SERVI_TO_L1    (K_LT_PRIM + 0x011f)        /* Daten von LT -> L1 Fernw. Service  */
#define K_LT_FW_KUNDE_TO_L1    (K_LT_PRIM + 0x0120)        /* Daten von LT -> L1 Fernw. Kunde    */
#define K_L1_FW_SERVI_TO_LT    (K_L1_PRIM + 0x0600)        /* Daten von L1 -> LT Fernw. Service  */
#define K_L1_FW_KUNDE_TO_LT    (K_L1_PRIM + 0x0601)        /* Daten von L1 -> LT Fernw. Kunde    */

#define K_LT_FW_START          (K_LT_PRIM + 0x0700)        /* Fernwartung bei Serviseite Starten */
#define K_LT_FW_STOP           (K_LT_PRIM + 0x0701)        /* Fernwartung bei Serviseite Stoppen */

/* ============================================================================================= */
/*                    Primitive-Codierungen der Schicht-Gebueren                                 */
/* ============================================================================================= */
#define K_LGB_FAC_MSG               (K_LGB_PRIM + 0x0700)
#define K_LGB_TLN_GEB_START         (K_LGB_PRIM + 0x0701)
#define K_LGB_TLN_CR_CHANGE         (K_LGB_PRIM + 0x0702)
#define K_LGB_AMT_RUF_ABBRUCH       (K_LGB_PRIM + 0x0703)
#define K_LGB_CLR_SUMM_GEB_TLN      (K_LGB_PRIM + 0x0005)
#define K_LGB_PRINT_SUMM_GEB_TLN    (K_LGB_PRIM + 0x0006)
#define K_LGB_INIT_CHANGE           (K_LGB_PRIM + 0x0007)
#define K_LGB_CANCEL_CR             (K_LGB_PRIM + 0x0008)
#define K_LGB_PRN_TIMER             (K_LGB_PRIM + 0x0009)
#define K_LGB_GEB_IMP_IND           (K_LGB_PRIM + 0x000A)
#define K_LGB_DATA_IND              (K_LGB_PRIM + 0x000B)
#define K_LGB_GEB_KON_IND           (K_LGB_PRIM + 0x000C)
#define K_LGB_L7_DATA               (K_LGB_PRIM + 0x0704) /* Daten an ISDN-Seite für Beocom AOCE */

/* ============================================================================================= */
/*                 Konstanten für die Art der Gebühreninformation                                */
/* ============================================================================================= */
#define GEB_FACILITY            0                          /* Geb.-Information im I.E. Facility  */
#define GEB_DISPLAY             1                          /* Geb.-Information im I.E. Display   */
#define GEB_CHARGE_ADVICE       2                          /* Geb.-Information im I.E. Codeset5/6*/


/* ============================================================================================= */
/*                 Typedefs der Structurdeklarationen fuer den LTC-Treiber                       */
/* ============================================================================================= */

#define LT_RM_MSG_LEN  4                      /* Laenge der Textzeichen für eine Kommado-Message */

typedef struct LtStruct
{
  byte       Message[LT_RM_MSG_LEN];                      /* Message von/zum PC-Einrichter       */
  dword      Para_1;                                      /* Parameter 1 laut Kommandouebersicht */
  dword      Para_2;                                      /* Parameter 2 laut Kommandouebersicht */
  dword      Para_3;                                      /* Parameter 3 laut Kommandouebersicht */
  word       Laenge;                                      /* Laenge der Daten                    */
  union
  {
   byte __far *DataPtr;                                    /* Datenfeld beim Auftraggeber        */
   byte   Data[1];
  } Info; 
} LtType;

/* -------- Struktur für die Kommunikation zwischen PC-Oberfläche und RS 232 Interface --------- */
typedef struct LtToPc
{
  word Crc;
  word MaxBufAnz;
  word BufNr;
  byte BufFlg;
  byte DataLen;
  union
  {
   struct LtStruct __far *GesDatPtr;
   byte   Data[1];
  } Info; 
} LtToPcType;

/* ============================================================================================= */
/*                 Typedefs der Structurdeklarationen fuer den EEProm-Treiber                    */
/* ============================================================================================= */

typedef struct L0EepStruct
{
  word       Target;                                        /* Offset vom EEPROM-Anfang          */
  word       Length;                                        /* Laenge der Daten                  */
  byte       WriteErlaubt;                           /* HM1 fuer ErrorTrace-Bereich-Ueberwachung */
  byte __far *Data;                                         /* Datenfeld beim Auftraggeber       */
} L0EepType;

/* ============================================================================================= */
/*                  Typedefs der Structurdeklarationen fuer die L2-Routinen                      */
/* ============================================================================================= */

/*===============================================================================================*/
/*                        Typedefs der Initialisierungsstructur der Layer 2                      */
/*===============================================================================================*/

typedef struct L2InitMessage
{
  word                Primitive;                           /* Primitive-Codierung                */
  word                MsgLen;                              /* Nachricht-Laenge ab sapi           */
  byte                Port;                                /* Kanalnummer                        */
  byte                TeiIdx;                              /*                                    */
  byte                Sapi;                                /* SAPI                               */
  byte                Tei;                                 /* TEI                                */
  byte                Ctrl1;                               /* Control-Feld Byte 1                */
  byte                Ctrl2;                               /* Control-Feld Byte 2                */
  byte                L3Info;                              /* S3-Info-Feld                       */
  byte                CrKonfig;                            /* MASTER oder SLAVE                  */
  dword               T_Valid;                             /* AUTO-TEI wieder gueltig            */
  byte                ValidSapi[64];                       /* Fenstergroesse der SAPI, 0=invalid */
} L2InitMessageType;

typedef struct L2Hdr
{
  byte  Sapi;                                              /* SAPI                               */
  byte  Tei;                                               /* TEI                                */
  byte  Ctrl1;                                             /* Control-Feld Byte 1                */
  byte  Ctrl2;                                             /* Control-Feld Byte 2                */
} L2HdrType;

typedef struct L2Init
{
  struct L2Hdr        L2;
  byte                CrKonfig;                            /* MASTER oder SLAVE                  */
  byte                ValidSapi[64];                       /* Fenstergroesse der SAPI, 0=invalid */
} L2InitType;


/* ============================================================================================= */
/*                  Typedefs der Structurdeklarationen fuer die L1-Routinen                      */
/* ============================================================================================= */

#ifdef SYSTEM_H

typedef struct L1_AB_InitStruct
{
  word  Primitive;                                         /* Primitive-Codierung                */
  word  MsgLen;                                            /* Nachricht-Laenge                   */
  byte  Port;                                              /* Kanalnummer                        */
  byte  TeiIdx;
  byte  PortApplication[ ANZ_S0_PORT ];                    /* TE, LT-T oder LT-S                 */
  byte  PortKonfig     [ ANZ_S0_PORT ];                    /* PtP oder PtmP                      */
} L1_AB_InitType;

#endif

typedef struct L1Hdr
{
  byte L2Info [ BUFFER_260_MAX_MSG_LEN + sizeof( struct L2Hdr ) ];
} L1HdrType;

#ifdef I209
  typedef struct L1FwStruct                                /* Wird fuer Fernwartung benoetigt    */
  {
    byte  Side;                                            /* Kunde oder Service                 */
    byte  Port;                                            /* Port der L3 Verbindung             */
    byte  Chan;                                            /* Benutzte B-Kanal                   */
    byte  Partner;                                         /* Tln der Verbindung                 */
    byte  CallId;                                          /* Call-ID der Verbindung             */
    byte  SubCallId;
  } L1FwType;
#else
  typedef struct L1FwStruct                                /* Wird fuer Fernwartung benoetigt    */
  {
    byte  Side;                                            /* Kunde oder Service                 */
    byte  Port;                                            /* Port der L3 Verbindung             */
    byte  Chan;                                            /* Benutzte B-Kanal (Kompatibilitaet) */
    byte  Partner;                                         /* Tln der Verbindung                 */
    byte  CallId;                                          /* Call-ID der Verbindung             */
    byte  SubCallId;
    byte  OrigIomChan;                                     /* Origination Side IOM-Kanal         */
    byte  OrigBChan;                                       /* Origination Side B-Kanal           */
    byte  DestIomChan;                                     /* Destination Side IOM-Kanal         */
    byte  DestBChan;                                       /* Destination Side B-Kanal           */
  } L1FwType;
#endif

/* ============================================================================================= */
/*                  Typedefs der Structurdeklarationen fuer die L3-Routinen                      */
/* ============================================================================================= */

/* typedef struct IsdnMsg IsdnMsgType; */
typedef struct L3_RH_L2LcbStruct L3_RH_L2LcbType;
typedef struct L3_RH_L3LcbStruct L3_RH_L3LcbType;

typedef struct L3Hdr                                        /* Layer 3 -> Layer 3                */
{
  byte                    CrLg;                             /* Laenge der Call Referenz          */
  word                    Cr;                               /* Call-Referenz                     */
  L3_RH_L2LcbType __far  *L2Lcb;                            /* Adresse L2Lcb                     */
  L3_RH_L3LcbType __far  *L3Lcb;                            /* Adresse L3Lcb                     */
} L3HdrType;

typedef struct L3DataMsg
{
  struct L2Hdr        L2;
  byte                Data[ BUFFER_260_MAX_MSG_LEN ];
} L3DataMsgType;

/* ============================================================================================= */
/*                  Typedefs der Structurdeklarationen fuer die L7-Routinen                      */
/* ============================================================================================= */

/* -- Achtung diese Struktur darf nicht groesser als 'struct L2Hdr' werden --------------------- */

typedef struct L7Hdr
{
  byte  CallId;                                            /* Call-Identification                */
  byte  AbsPort;                                           /* Port des Absenders                 */
  byte  Msg;                                               /* Interne Message                    */
  byte  MsgExt;                                            /* Status fuer Leistungsmerkmale      */
} L7HdrType;

typedef struct L7Erw
{
  byte  FernePartner;                                      /* Partner hinter den ISDN-Teilnehmer */
  byte  AbsSubCallId;                                      /* Sub-CallId des Absenders           */
  byte  EmpfSubCallId;                                     /* Sub-CallId des Empfaengers         */
} L7ErwType;
#define L7_ERW_LAENGE   sizeof ( L7ErwType )

typedef struct L7IntMsg
{
  L7HdrType           L7;                                  /* L7 Header Daten                    */
  L7ErwType         Erw;                                   /* Erweiterungen der Message Parameter*/
  byte                Data[ BUFFER_260_MAX_MSG_LEN - L7_ERW_LAENGE ];
} L7IntMsgType;

typedef struct L7_RH_FacHdrStruct                          /* Daten fuer Facility-Messages       */
{
  byte                           CompType;                 /* Das Empfangene Component           */
  word                           InvokeId;                 /* Identification bei Facility-Message*/
  byte                           OperType;                 /* 0 = Nomal, 1 = Object-Identifier   */
  #ifdef HUHU
  union
  {
    dword                        Operation;                /* Die Operation/Error falls vorhanden*/
    word                         Problem;                  /* Problem (Type * 0x100 + Value)     */
  };
  #endif
  byte                    __far *Data;                     /* Tag hinter dem Opererator          */
  word                           Len;                      /* Die verbleibende Laenge des I.E.   */
} L7_RH_FacHdrType;

typedef struct L7SwitchBCh
{
  word  Cr;                                                /* Callreferenz                       */
  byte  BChannel;                                          /* B-Kanal                            */
  byte  Zustand;                                           /* Zustand (ein- / ausschalten)       */
} L7SwitchBChType;

typedef struct GebKontoStruct
{
   byte   mode ATT;
   word   dm ATT;
} GebKontoType;

/* ============================================================================================= */
/*                  Typedefs der Structurdeklarationen fuer die LGB-Routinen                     */
/* ============================================================================================= */

#ifdef SYSTEM_H
                                                           /* gilt nur, wenn System.h included ! */
typedef struct GebErfLandStruct
{
  byte        InfoElement;                                 /*  0 = Facility, 1 = Display         */
  byte        Land;                                        /* Aktuelle Land                      */
} GebErfLandType;

typedef struct LgbKonfig
{
  #ifdef I416
  word  GrundFaktor;                                       /* Telekom Abrechnungseinheit         */
  word  UserFaktor;                                        /* Interne Abrechnungseinheit         */
  #else
  byte  GrundFaktor;                                       /* Telekom Abrechnungseinheit         */
  byte  UserFaktor;                                        /* Interne Abrechnungseinheit         */
  #endif
  byte  PrnKonfig[ MAX_ANZ_PORT ];                         /* Gesprächsdaten-Ausdruck            */
  byte  GespKonfig[ MAX_ANZ_PORT ];                        /* Gesprächsdaten-Speicherung EEP     */
  GebKontoType   GebKonto [ MAX_ANZ_PORT ];                /* Gebührenkonto                      */
  GebErfLandType LandKonfig;                               /* Laenderspzifische Konfiguration    */
} LgbKonfigType;

#endif

/* ============================================================================================= */
/*             Structurdeklaration fuer das digitale Koppelfeld (EPIC)                           */
/* Die Structur wird global definiert, damit sie der Vermittlungssoftware von AGFEO zur Verfue-  */
/* gung steht  !! wird vermutlich nicht gebraucht HM !!                                          */
/* ============================================================================================= */

typedef struct LabSwitchBChn
{
  byte SrcIomPort;
  byte SrcIomChn;
  byte SrcBChn;
  byte DestIomPort;
  byte DestIomChn;
  byte DestBChn;
  byte Dir;
  byte OnOff; 
} LabSwitchBChnType;

/* ============================================================================================= */
/*                    Typedefs der Structurdeklarationen fuer alle Layers                        */
/* ============================================================================================= */

typedef struct IsdnMsg
{
  struct
  {
    word  Primitive;                                       /* Primitive-Codierung                */
    word  MsgLen;                                          /* Nachricht-Laenge ab sapi           */
    byte  Port;                                            /* Kanalnummer                        */
    byte  TeiIdx;                                          /* USER=TeiIdx / NET=Tei L3<->L3<->L7 */
    union
    {
      struct L0EepStruct   Eep;
      struct L1Hdr         L1;
      struct L1FwStruct    L1Fw;
      struct L2Hdr         L2;
      struct L2Init        L2InitPara;
      struct L3DataMsg     Info;
      struct L3Hdr         L3;
      struct L7IntMsg      L7Msg;
      struct L7SwitchBCh   L7Switch;
      struct LabSwitchBChn Epic;
      #ifdef SYSTEM_H
        #ifndef S34
          struct LgbKonfig     Lgb;
        #endif
      #endif
      struct LtStruct      Lt;
      struct LtToPc        LtPc;
    } Msg;
  } Hdr;
} IsdnMsgType;

#define K_ISDN_MSG_HDR_LEN     (word)( sizeof( struct IsdnMsg ) - BUFFER_260_MAX_MSG_LEN  )

typedef struct L0_TM_GeskoUhrStruct
{
  union
  {
    byte String[6];
    struct
    {
      byte Year;
      byte Month;
      byte Day;
      byte Hour;
      byte Minute;
      byte Sec;
      byte DayOfWeek;
      byte YearHundred;
    } Elem;
  } GeskoTime;
} L0_TM_GeskoUhrType;




