home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 558.TNTYP.H < prev    next >
Text File  |  1988-04-30  |  7KB  |  161 lines

  1. /* Typdefinitionen                                  */
  2.  
  3. typedef    unsigned uint;
  4. typedef uint     BOOLEAN;
  5.  
  6. typedef    struct    lhead {        /* Bufferkopf                     */
  7.     struct lhead *lnext;
  8.     struct lhead *lprev;
  9.     } lhtyp;
  10.  
  11. typedef    struct    l2lblk {    /* Level 2 Link Eintrag                 */
  12.     char    state;        /* Status                     */
  13.     char    srcid[7];    /* eigenes Call, Ident                 */
  14.     char    dstid[7];    /* Gegenstation                     */
  15.     char    viaid[8*7 +1];    /* Digipeaterliste zur Gegenstation         */
  16.     char    liport;        /* Port fuer Link                 */
  17.     char    VR;        /* receice sequence Variable             */
  18.     char    VS;        /* send sequence Variable             */
  19.     char    lrxNR;        /* last received NR                 */
  20.     char    ltxNR;        /* last transmitted NR                 */
  21.     char    tries;        /* aktuelle Versuche                 */
  22.     char    N2;        /* maximale Versuche                 */
  23.     char    k;        /* Fenstergroesse                 */
  24.     char    snglT1;        /* FRACK - ohne Digis                 */
  25.     char    V2link;        /* Protokoll Version                 */
  26.     char    RStype;        /* naechstes Antwortframe nach T2-Ablauf     */
  27.     char    frmr[3];    /* FRMR Info Bytes                 */
  28.     char    flag;        /* 5: L3, 6: busy, 7: DiscReq             */
  29.     uint    initT1;        /* T1 Wert fuer Initialisierung             */
  30.     uint    T1;        /* Timer 1                     */
  31.     uint    T2;        /* Timer 2                     */
  32.     uint    T3;        /* Timer 3                     */
  33.     uint    noatou;        /* no-activity-timeout                 */
  34.     uint    rcvd;        /* empfangene I Frames                 */
  35.     uint    tosend;        /* zu sendende I Frames                 */
  36.     lhtyp    rcvdil;        /* empfangene Info Liste             */
  37.     lhtyp    sendil;        /* zu sendende Info Liste             */
  38.     } l2ltyp;
  39.  
  40. typedef    struct    mhead {        /* Message Buffer Header             */
  41.     lhtyp    link;        /* Link zu Nachbarn der Kette             */
  42.     lhtyp    msg;        /* Kopf der Message Liste             */
  43.     char    *nxtchr;    /* Pointer auf naechstes Zeichen         */
  44.     uint    putcnt;        /* eingeschriebene Zeichen             */
  45.     uint    getcnt;        /* ausgelesene Zeichen                 */
  46.     l2ltyp    *l2lnk;        /* Eintrag in LNKTBL                 */
  47.     char    usrtyp;        /* Usertyp, 0=Host, 2=Enduser, 4=Circuit     */
  48.     char    pid;        /* PID des Frames, VR-VS in Level 4         */
  49.     char    l2port;        /* Port, 0 = HDLC, 1 = RS232             */
  50.     char    morflg;        /* Frame besteht aus mehreren Teilen Flag    */
  51.     char    l4trie;        /* Versuche in Level4                 */
  52.     uint    l4time;        /* Timeout in Level4                 */
  53.     } mhtyp;
  54.  
  55. typedef    struct    usrblk {    /* User Kontroll Block                 */
  56.     struct usrblk *unext;    /* doppelt verkettete Liste             */
  57.     struct usrblk *uprev;
  58.     char    status;        /* 0=leer, 1=am CCP, 2=ConReq, 3=Passworteing*/
  59.     l2ltyp    *cblk_u;    /* eigener Kontrollblock             */
  60.     char    typ_u;        /* eigener Typ                     */
  61.     l2ltyp    *cblk_p;    /* Partner Kontrollblock             */
  62.     char    typ_p;        /* Partner Typ                     */
  63.     char    sysflg;        /* SYSOP Flag                     */
  64.     char    errcnt;        /* CCP Fehlerzaehler                 */
  65.     char    paswrd[5];    /* gegebene Passwort Stellen             */
  66.     mhtyp    *mbhd;        /* eingelaufene Frames fuer User         */
  67.                 /* Rest noch undefiniert             */
  68.         } usrtyp;
  69.  
  70. typedef    struct hostus {      /* Kontrollblock fuer zum Host connecteten User */
  71.     char    conflg;        /* User ist connected Flag             */
  72.     char    call[6];    /* Call des Users                 */
  73.     char    ssid;        /* SSID des Users                 */
  74.     char    disflg;        /* Flag: Verbindung trennen, wenn Info weg   */
  75.     uint    noacti;        /* Timer fuer keine Aktivitaet             */
  76.     uint    noact2;        /* Timer2 fuer keine Aktivitaet             */
  77.     uint    inlin;        /* eingelaufene Zeilen                 */
  78.     uint    outlin;        /* auszugebende Zeilen                 */
  79.     uint    duh2;
  80.     lhtyp    inbuf;        /* Listenkopf Eingabebuffer             */
  81.     lhtyp    outbuf;        /* Listenkopf Ausgabebuffer             */
  82.     } hustyp;
  83.  
  84. typedef    struct    nbrent {    /* Nachbarliste                     */
  85.     lhtyp    nbrlnk;        /* Link innerhalb der Liste             */
  86.     char    nbrcal[7];    /* Call                         */
  87.     char    nbrdil[15];    /* Digipeater                     */
  88.     char    nbrpor;        /* Port                         */
  89.     char    pathqu;        /* Qualitaet des Weges                 */
  90.     char    locked;        /* Flag: Eintrag gesperrrt j-n             */
  91.     uint    nbrrou;        /* Wege ueber diesen Nachbarn             */
  92.     l2ltyp    *nbrl2l;    /* Querverweis zur Level2 Tabelle         */
  93.     } nbrtyp;
  94.  
  95. typedef    struct    ziel {
  96.     char    qualit;        /* Qualitaet                     */
  97.     char    obscnt;        /* Lebensdauer Zaehler                 */
  98.     nbrtyp    *nachba;    /* Nachbar                     */
  99.     } wegtyp;
  100.  
  101. typedef    struct    nodent {    /* Nodeliste                     */
  102.     lhtyp    nodlnk;        /* Link innerhalb der Liste             */
  103.     char    actrou;        /* aktive Wege zu diesem Ziel             */
  104.     char    nodide[6];    /* Ident dieses Zieles                 */
  105.     char    nodcal[7];    /* Call des Zieles                 */
  106.     char    wegnr;        /* Nummer des aktivens Weges             */
  107.     char    wege;        /* moegliche Wege                 */
  108.     wegtyp    weg[3];        /* Wegbeschreibungen                 */
  109.     lhtyp    nodinf;        /* Frames fuer dieses Ziel             */
  110.         } nodtyp;
  111.  
  112. typedef    struct    ptcent {    /* Patchcord Liste                 */
  113.     l2ltyp    *luserl;    /* Level2 Link des Users             */
  114.     char    lusert;        /* Typ des Users                 */
  115.         } ptctyp;        /* es gehoeren immer 2 Eintraege zusammen    */
  116.  
  117. typedef    struct    cirblk {    /* Level 3 Kontrollblock             */
  118.     char    state3;        /* Status: 0=leer, 1=ConReq, 2=Con, 3=DisReq */
  119.     char    idxpar;        /* Partner Index                 */
  120.     char    ideige;        /* eigener ID                     */
  121.     char    idpart;        /* Partner ID                     */
  122.     char    downca[7];    /* Downlink Call                 */
  123.     char    upcall[7];    /* Uplink Call                     */
  124.     char    window;        /* Fenstergroesse                 */
  125.     char    l4rxvs;        /* letzte bestaetigte Framenummer         */
  126.     char    l4vs;        /* letzte gesendete Framenummer             */
  127.     char    l4vr;        /* letzte erhaltene Framenummer             */
  128.     char    l4rs;        /* notwendige Antwort: 0=ACK, 1=NAK, 2=NAKweg*/
  129.     char    l4try;        /* Transport Versuche                 */
  130.     char    l4flag;        /* DISC-req, selbst choked, Partner choked   */
  131.     uint    traout;        /* Transport Timeout                 */
  132.     uint    acktim;        /* Acknowledge Timer                 */
  133.     uint    tranoa;        /* no-activity-Timeout                 */
  134.     uint    numrx;        /* empfangene Frames                 */
  135.     uint    numtx;        /* zu sendende Frames                 */
  136.     mhtyp   *fragme;    /* Fragment eines kommenden Frames         */
  137.     nodtyp    *l3node;    /* Node fuer diesen Circuit             */
  138.     lhtyp    mbhdrx;        /* Listenkopf empfangene Frames             */
  139.     lhtyp    mbhdtx;        /* Listenkopf zu sendende Frames         */
  140.     lhtyp    mbhdos;        /* Listenkopf: Frames ausserhalb der Folge   */
  141.     } cirtyp;
  142.  
  143. typedef    union cblk {        /* allgemeiner Kontrollblock             */
  144.     l2ltyp    l2blk;
  145.     cirtyp    l3blk;
  146.     hustyp    hoblk;
  147.         } ctyp;
  148.         
  149. typedef struct    param {        /* Parameter                     */
  150.   uint    *paradr;        /* Adresse des Parameters             */
  151.   uint    minimal;        /* Minimalwert                     */
  152.   uint    maximal;        /* Maximalwert                     */
  153.   } partyp;
  154.  
  155. typedef struct    comand {
  156.         char    *cmdstr;
  157.         uint    (*cmdfun)();
  158.         } cmdtyp;
  159.  
  160. /*--- Ende der Definitionen -------------------------------------------------*/
  161.