|
|
1.1 ! root 1: /* vtpm.h - VTPM: definitions */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/vt/RCS/vtpm.h,v 7.0 89/11/23 22:31:58 mrose Rel $ ! 5: * ! 6: * ! 7: * $Log: vtpm.h,v $ ! 8: * Revision 7.0 89/11/23 22:31:58 mrose ! 9: * Release 6.0 ! 10: * ! 11: */ ! 12: ! 13: /* ! 14: * NOTICE ! 15: * ! 16: * Acquisition, use, and distribution of this module and related ! 17: * materials are subject to the restrictions of a license agreement. ! 18: * Consult the Preface in the User's Manual for the full terms of ! 19: * this agreement. ! 20: * ! 21: */ ! 22: ! 23: ! 24: #include <errno.h> ! 25: #include <stdio.h> ! 26: ! 27: #include "acsap.h" /* definitions for AcS-USERs */ ! 28: #include "logger.h" ! 29: ! 30: /* Make sure this is here in new versions */ ! 31: /*#include "sector1.h"*/ ! 32: ! 33: ! 34: #define TRUE 1 ! 35: #define FALSE 0 ! 36: ! 37: #define ERR -1 ! 38: #define E_ERROR -1 ! 39: #define E_EOF -2 ! 40: ! 41: #define E_NOEVENT 1 ! 42: #define E_READ 2 ! 43: ! 44: #define INPUT 1 ! 45: #define OUTPUT 2 ! 46: ! 47: #define DEFINED 1 ! 48: #define UNDEFINED 0 ! 49: ! 50: #define BASIC 1 ! 51: ! 52: #define WACI_WACA 0 ! 53: #define WAVAR 1 ! 54: ! 55: #define FAILURE 0 ! 56: #define SUCCESS 1 ! 57: #define WARNING 2 ! 58: ! 59: #define ECHO_NOW 0 ! 60: #define NOT_ECHO_NOW 1 ! 61: ! 62: #define DISPLAY 0 ! 63: #define CONTROL 2 ! 64: ! 65: #define SEQUENCED 1 ! 66: #define NONSEQUENCED 2 ! 67: ! 68: #define COLL_DET 1 ! 69: #define PROFILE_NG 4 ! 70: ! 71: #define TEXT 5 ! 72: ! 73: #define WOULDBLOCK -3 ! 74: ! 75: /* type identifiers */ ! 76: #define G_COLLISION_WINNER 1 ! 77: #define G_PARM_VLIST 6 ! 78: #define G_RESULT3 11 ! 79: ! 80: /* Incoming Events -- Table 25, ISO 9041 */ ! 81: ! 82: #define VASSreq 1 /*VT-ASSOCIATE request*/ ! 83: #define VASSrsp 2 /*VT-ASSOCIATE response*/ ! 84: #define VBRKreq 3 /*VT-BREAK request*/ ! 85: #define VBRKrsp 4 /*VT-BREAK response*/ ! 86: #define VDACKreq 5 /*VT-ACK-RECEIPT request*/ ! 87: #define VDATreq_u 6 /*VT-DATA request urgent priority*/ ! 88: #define VDATreq_h 7 /*VT-DATA request high priority*/ ! 89: #define VDATreq_n 8 /*VT-DATA request normal*/ ! 90: #define VDATreq_sqtr 9 /*VT-DATA request trigger control*/ ! 91: #define VDELreq 10 /*VT-DELIVER request*/ ! 92: #define VENEGreq 11 /*VT-END-NEG request*/ ! 93: #define VENEGrsp 12 /*VT-END-NEG response*/ ! 94: #define VGVTreq 13 /*VT-GIVE-TOKENS request*/ ! 95: #define VNACCreq 14 /*VT-NEG-ACCEPT (negotiation accept)*/ ! 96: #define VNINVreq 15 /*Negotiation Invitaion*/ ! 97: #define VNOFFreq 16 /*Negotiation Offer*/ ! 98: #define VNREJreq 17 /*Negotiation Reject*/ ! 99: #define VRELreq 18 /*VT-RELEASE request*/ ! 100: #define VRELrsp 19 /*VT-RELEASE response*/ ! 101: #define VRQTreq 20 /*VT-REQUEST-TOKENS request*/ ! 102: #define VSNEGreq 21 /*Start Negotiation request*/ ! 103: #define VSNEGrsp 22 /*Start Negotiation response*/ ! 104: #define VSWPreq 23 /*Switch Profile request*/ ! 105: #define VSWPrsp 24 /*Switch Profile response*/ ! 106: #define VUABreq 25 /*VT-U-ABORT request*/ ! 107: #define APQ 26 /*VT-P-ABORT request*/ ! 108: #define ASQ 27 /*Associate Request*/ ! 109: #define ASR 28 /*Associate Response*/ ! 110: #define AUQ 29 /*VT-U-ABORT request*/ ! 111: #define BKQ 30 /*Break Request*/ ! 112: #define BKR 31 /*Break Response*/ ! 113: #define DAQ 32 /*VT-ACK-RECEIPT*/ ! 114: #define DLQ 33 /*VT-DELIVER*/ ! 115: #define HDQ 34 /*VT-EXPEDITED-DATA*/ ! 116: #define ENQ 35 /*End Negotiation Request*/ ! 117: #define ENR 36 /*End Negotiation Response*/ ! 118: #define GTQ 37 /*VT-GIVE-TOKEN*/ ! 119: #define NAQ 38 /*Negotiation Accept Request*/ ! 120: #define NDQ_ntr 39 /*VT-DATA -- No Trigger Update*/ ! 121: #define NDQ_tr 40 /*VT-DATA -- Trigger Update*/ ! 122: #define NJQ 41 /*Negotiation Reject Request*/ ! 123: #define NIQ 42 /*Negotiation Invite Request*/ ! 124: #define NOQ 43 /*Negotiation Offer Request*/ ! 125: #define RLQ 44 /*VT-RELEASE-REQ*/ ! 126: #define RLR 45 /*VT-RELEASE-RESP*/ ! 127: #define RTQ 46 /*VT-REQUEST-TOKEN*/ ! 128: #define SPQ 47 /*VT-SWITCH-PROFILE-REQ*/ ! 129: #define SPR 48 /*VT-SWITCH-PROFILE-RESP*/ ! 130: #define SNQ 49 /*Start Negotiation Request*/ ! 131: #define SNR 50 /*Start Negotiation Response*/ ! 132: #define UDQ 51 /*VT-UNCONTROLLED-DATA*/ ! 133: #define AUTO 52 /*Internal event not defined by VTP*/ ! 134: #define VTAB 53 /*Irrecoverable exception condition*/ ! 135: #define PAB 54 /*Failure Indication*/ ! 136: ! 137: /* Outgoing Events -- Table 27, ISO 9041 */ ! 138: ! 139: #define VACKind 55 /*VT-ACK-RECEIPT Indication*/ ! 140: #define VASSind 56 /*VT-ASSOCIATE Indication*/ ! 141: #define VASScnf 57 /*VT-ASSOCIATE Confirm*/ ! 142: #define VBRKind 58 /*VT-BREAK Indication*/ ! 143: #define VBRKcnf 59 /*VT-BREAK Confirm*/ ! 144: #define VDATind_u 60 /*VT-DATA indication -- urgent object*/ ! 145: #define VDATind_h 61 /*VT-DATA indication -- high object*/ ! 146: #define VDATind_n 62 /*VT-DATA indication -- normal object*/ ! 147: #define VDATind_Vnt 63 /*Sequence of Vnt VT-DATA normal*/ ! 148: #define VDELind 64 /*VT-DELIVER indication*/ ! 149: #define VENEGind 65 /*VT-END-NEG indication*/ ! 150: #define VENEGcnf 66 /*VT-END-NEG confirm*/ ! 151: #define VGVTind 67 /*VT-GIVE-TOKENS indication*/ ! 152: #define VNINVind 68 /*VT-NEG-INVITE indication*/ ! 153: #define VNOFFind 69 /*VT-NEG-OFFER indication*/ ! 154: #define VNACCind 70 /*VT-NEG-ACCEPT indication*/ ! 155: #define VNREJind 71 /*VT-NEG-REJECT indication*/ ! 156: #define VPABind 72 /*VT-P-ABORT indication*/ ! 157: #define VRELind 73 /*VT-RELEASE indication*/ ! 158: #define VRELcnf 74 /*VT-RELEASE confirm*/ ! 159: #define VRQTind 75 /*VT-REQUEST-TOKENS indication*/ ! 160: #define VSNEGind 76 /*VT-START-NEG indication*/ ! 161: #define VSNEGcnf 77 /*VT-START-NEG confirm*/ ! 162: #define VSWPind 78 /*VT-SWITCH-PROFILE indication*/ ! 163: #define VSWPcnf 79 /*VT-SWITCH-PROFILE confirm*/ ! 164: #define VUABind 80 /*VT-U-ABORT indication*/ ! 165: #define NDQseq_ntr 81 /*Sequence of NDQ-ntr to xmit updates*/ ! 166: #define NDQseq_tr 82 /*1 NDQ-tr preceeded by >=1 NDQ-ntr*/ ! 167: #define NDQ_x_tr 83 ! 168: #define NDQ_x_ntr 84 ! 169: ! 170: ! 171: ! 172: /* Sector 1 States */ ! 173: ! 174: #define S1_01 0 /*No Association*/ ! 175: #define S1_02B 1 /*Associate -- Awaiting target*/ ! 176: #define S1_02S 2 /*Associate -- Awaiting target*/ ! 177: #define S1_03B 3 /*Associate -- Awaiting User*/ ! 178: #define S1_03S 4 /*Associate -- Awaiting User*/ ! 179: #define S1_10B 5 /*Environment Not Agreed*/ ! 180: #define S1_10N 6 ! 181: #define S1_10T 7 ! 182: #define S1_50B 8 ! 183: #define S1_51Q 9 /*Release -- Awaiting Peer*/ ! 184: #define S1_51R 10 /*Release -- Awaiting User*/ ! 185: #define S1_51N 11 /*Release -- Awaiting User*/ ! 186: #define S1_51T 12 /*Release -- Awaiting Peer*/ ! 187: ! 188: ! 189: /* Sector 5 States */ ! 190: ! 191: #define S5_400B 0 /*Data Transfer*/ ! 192: #define S5_402B 1 /*Data Xfer -- Awaiting Ack from user*/ ! 193: #define S5_420B 2 /*Data Xfer -- Awaiting Ack from peer*/ ! 194: #define S5_422B 3 /*Data xfer -- Awaiting Ack (Both)*/ ! 195: #define S5_40N 4 /*Data Transfer*/ ! 196: #define S5_40T 5 /*Data Transfer*/ ! 197: #define S5_42T 6 /*Data Xfer -- Awaiting Ack from peer*/ ! 198: #define S5_42N 7 /*Data Xfer -- Awaiting Ack from user*/ ! 199: #define S5_61 8 /*Break Request rcv'd from User*/ ! 200: #define S5_62 9 /*Break Request rcv'd from Peer*/ ! 201: ! 202: ! 203: #define INITIATOR 0 ! 204: #define ACCEPTOR 1 ! 205: #define ACHOICE 2 ! 206: ! 207: ! 208: ! 209: /* PDU Types (Table 4, ISO 9041) */ ! 210: ! 211: #define ASQ_PDU 0 ! 212: #define ASR_PDU 1 ! 213: #define RLR_PDU 2 ! 214: #define AUQ_PDU 3 ! 215: #define APQ_PDU 4 ! 216: #define HDQ_PDU 5 ! 217: #define NDQ_PDU 6 ! 218: #define UDQ_PDU 7 ! 219: #define BKQ_PDU 8 ! 220: #define BKR_PDU 9 ! 221: #define DLQ_PDU 10 ! 222: #define DAQ_PDU 11 ! 223: #define SPQ_PDU 12 ! 224: #define SPR_PDU 13 ! 225: #define SNQ_PDU 14 ! 226: #define SNR_PDU 15 ! 227: #define ENQ_PDU 16 ! 228: #define ENR_PDU 17 ! 229: #define NIQ_PDU 18 ! 230: #define NOQ_PDU 19 ! 231: #define NAQ_PDU 20 ! 232: #define NJQ_PDU 21 ! 233: ! 234: #define PEPYPARM int * ! 235: ! 236: PE pre, pwe; ! 237: PE mkdeliver(); ! 238: int fd, ! 239: readfds, ! 240: writefds, ! 241: exfds, ! 242: sd, ! 243: connected, ! 244: netfile; ! 245: ! 246: char *dprofile, *cprofile; ! 247: char *myname, ttyname(); ! 248: extern PE p_ondq; ! 249: extern LLog _vt_log, *vt_log; ! 250: ! 251: ! 252: extern int errno; ! 253: extern unsigned state, sector; ! 254: ! 255: int vns, ! 256: allpmde, /* all draft VTE parameters defined */ ! 257: allpmdu, /* all draft VTE parameters defined or undefined */ ! 258: cnw, /* collision winner right assigned to this VTPM */ ! 259: dcno, /* no delivery control */ ! 260: dcqua, /* quarantine delivery control */ ! 261: dcsim, /* simple delivery control */ ! 262: pmacc, /* parameter values acceptable */ ! 263: dr_pm_st,/* draft parameter status: ! 264: DEFINED, ! 265: UNDEFINED, ! 266: OFI, (offered, initiator) ! 267: OFR, (offered, responder) ! 268: COFI, (counter-offered, initiator) ! 269: COFR, (counter-offered, responder) ! 270: INVI, (invited, initiator) ! 271: INVR (invited, responder) ! 272: */ ! 273: pracc, ! 274: vtpma, ! 275: vcwa, /* whether the collision winner right is owned */ ! 276: vena, /* agreement on current VTE */ ! 277: vnt, /* number of VT service data units held for local delivery */ ! 278: vns, /* number of VT service data units held for transmission */ ! 279: vacc, /*action choice: switch, restore, or not specified*/ ! 280: vacp, /*action proposal: switch, restore, or responder ! 281: choice*/ ! 282: vrea, /*failure reason: collision detected or profile not ! 283: supplied*/ ! 284: vrjo, /*rejection option: retain, discard, or responder ! 285: choice*/ ! 286: vrsl, /*result: succes, failure, or success with warning*/ ! 287: vsmd, /*1 if S-Mode, 0 if A-Mode*/ ! 288: vtok, /*1 if tokens held, 0 otherwise*/ ! 289: vtkp, /*token parameters*/ ! 290: waca, /*WACA right*/ ! 291: vra, /*Boolean recording of acknowledgement request*/ ! 292: G_Func_Units, /*Bit map of Functional Units requested*/ ! 293: wavar, /* boolean, this VTPM has the token */ ! 294: waci, /* boolean, this VTPM is assigned the waci right */ ! 295: del_cont; /* type of delivery control */ ! 296: ! 297: ! 298: /* ! 299: profile is name of the profile. This is also used for the draft profile. ! 300: */ ! 301: ! 302: int s1_01(), ! 303: s1_02B(), ! 304: s1_02S(), ! 305: s1_03B(), ! 306: s1_03S(), ! 307: s1_10B(), ! 308: s1_10N(), ! 309: s1_10T(), ! 310: s1_50B(), ! 311: s1_51Q(), ! 312: s1_51R(), ! 313: s1_51N(), ! 314: s1_51T(); ! 315: ! 316: int s5_400B(), ! 317: s5_402B(), ! 318: s5_420B(), ! 319: s5_422B(), ! 320: s5_40N(), ! 321: s5_40T(), ! 322: s5_42N(), ! 323: s5_42T(), ! 324: s5_61(), ! 325: s5_62(); ! 326: ! 327: ! 328: extern struct SSAPref sfs; ! 329: extern struct SSAPref *sf; ! 330: extern struct PSAPaddr *pa; ! 331: extern struct AcSAPconnect accs; ! 332: extern struct AcSAPconnect *acc; ! 333: extern struct AcSAPrelease acrs; ! 334: extern struct AcSAPrelease *acr; ! 335: extern struct AcSAPindication acis; ! 336: extern struct AcSAPindication *aci; ! 337: extern struct AcSAPabort *aca; ! 338: extern AEI aei; ! 339: extern OID ctx, ! 340: pci; ! 341: ! 342: extern struct AcSAPstart acss; ! 343: extern struct AcSAPstart *acs; ! 344: extern struct PSAPstart *ps; ! 345: extern struct PSAPindication pi; ! 346: extern struct PSAPdata px; ! 347: extern struct PSAPfinish *pf; ! 348: ! 349: void finalbye (); ! 350: void adios (), advise (); ! 351: void acs_adios (), acs_advise (); ! 352: void ps_adios (), ps_advise (); ! 353: ! 354: int connected; /*TEMP -- for sector 1 testing only -- will be supplied by VTP*/ ! 355: ! 356: char *malloc();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.