/* mcs_defs_h */ #include #include #define COMPVER 0x01 /* Compiler version 1. */ #define MESGS 40 /* Number of messages in outmesg array. */ #define BUF 50 #define MSGBUF 80 /* Maximum length of the message buffers */ /* DRE 013190 - changed from 110 TO 80 */ #define PWDLEN 10 /* Password buffer length. */ #define RESP_EOT 0x1e /* Response message End-Of-Text character. */ #define PASSWD "PASSWORD" /* Password for enabling and disabling. */ #define PRT_FILE "SPOOLFILE" #define IN_TERM "INPUT" #define OUT_TERM "OUTPUT" #define QUEUENAME "THE_QUEUE" #define iowriter if (iowrite) prt_iowriter #define printriow if (iowrite) printreciow #define OFF 0 #define ON 1 #define YES 'Y' #define NO 'N' #define MESG 0 /* Boolean for testing messages. */ #define VARESP 1 /* Boolean for testing variable responses. */ #define RESP 2 /* Boolean for testing responses. */ #define S 0 /* Regular send. */ #define SX25 1 /* Send SX25. */ /* Defines for ParBlock structures. */ #define IPPHASE 0x49 /* Input phase. */ #define OPPHASE 0x4f /* Output phase. */ #define TERMPHASE 0x54 /* Input terminal phase. */ #define NODATA(x) x |= 0x01 /* No data was available - return (bit 1 set) */ #define EXITFG(x) x |= 0x02 /* Suspend if data is not available (bit 2 set) */ #define NOENDKEY 0 /* Partial segment, user specified. */ #define INTEGESI 0x01 /* End of segment, user specified. */ #define INTEGEMI 0x02 /* End of message, user specified. */ #define INTEGEGI 0x03 /* End of group, user specified. */ #define ESI 0x53 /* End of segment, compiler generated. */ #define EMI 0x4d /* End of message, compiler generated. */ #define EGI 0x47 /* End of group, compiler generated. * */ #define AFTER 0x41 /* Advance after message display. */ #define BEFORE 0x42 /* Advance before message display. * */ #define LINE 0x4c /* Line advancing. */ #define PAGE 0x50 /* Page advancing. * */ #define HEXMNEM 0 /* Mnemonic is a string of hex. */ #define ASCIIMNEM 1 /* Mnemonic is a string of ascii. * */ #ifndef lint extern void MSGBUILD(); extern void \:FINISH(); extern void MCS\:ENABLE(); extern void MCS\:DSABLE(); extern void MCS\:SEND(); extern void MCS\:RECEIV(); extern void MCS\:ACCEPT(); extern void SESS\:MGT(); #endif /*NOT LINT*/ FILE *fp; /* File pointer for the spool file. */ int iowrite; /* Iowriter. */ int nosends; /* Number of sends in a session. */ char outmesg[MESGS][MSGBUF];/* Array of output messages. */ char outterm[BUF]; /* Output terminal name. */ char interm[BUF]; /* Input terminal name. */ char iobuff[MSGBUF]; /* Buffer for send messages to iowriter. */ char *mcs_fgets(); struct SendSMTD{ char ijn[BUF]; char ihc[BUF]; } SendSMTD; struct OutputCD { /* Output communication descriptor. */ char destcnt[4]; /* Destination count. */ char textlen[4]; /* Text length. */ char statkey[2]; /* Status key. */ char errkey; /* Error key. */ char symdest[12]; /* Symbolic destination. */ struct ExOutCD { /* Extended output CD. */ char xoformat; /* Extended output format. */ char tcfunction[3]; /* TC function. */ char tcqualifier[3]; /* TC qualifier. */ char tcoutput_reset; /* TC output_reset */ char xofiller[33]; /* Extended output filler. */ } ExOutCD; } OutCD; struct InputCD { /* Input communication descriptor. */ char q[12]; /* Input CD queue. */ char symq1[12]; /* Symbolic Sub-queue 1. */ char symq2[12]; /* Symbolic Sub-queue 2. */ char symq3[12]; /* Symbolic Sub-queue 3. */ char mdate[6]; /* Message date. */ char mtime[8]; /* Message time. */ char source[12]; /* Symbolic source. */ char len[4]; /* Text length. */ char endkey; /* End key. */ char statkey[2]; /* Status key. */ char msgcnt[6]; /* Message count */ struct ExInCD { /* Extended input CD. */ char xiformat; /* Extended input format. */ char xistatus[2]; /* TC status. */ char xipassthru[10]; /* TC pass through. */ char xifiller[27]; /* Extended input filler. */ } ExInCD; } InCD; struct mnemonik { /* Mnemonic structure in each parameter block. */ char type; /* Mnemonic type field. */ char *address; /* Address of mnemonic. */ /* DRE 013190 - change to char ptr */ /* CHANGE PEG 012990 */ /* CAUSED AN ALIGNMENT PROBLEM DUE TO RANDOMNESS OF BYTE PLACEMENT */ /* for all purposes a four byte array */ }; struct SParBlck { /* parameter block for sending. */ short length; /* User message area length. */ char complver; /* Compiler version. */ char linenum; /* Number of lines to advance. */ char indicator; /* Send or receive end key. */ char advancing; /* Type of advancing. */ char position; /* Mode of advancing. */ char sendcount; /* Send destination count. */ /* struct mnemonik mnemonic; */ /* Mnemonic structure field. */ char mnemonic[4]; /* DRE 020990 */ } SParBlock; struct RParBlck { /* parameter block for receiving. */ short length; /* User message area length. */ char complver; /* Compiler version. */ char avail; /* Bit flags - receive data availability. */ char indicator; /* Send or receive end key. */ char filler[7]; /* PEG 012990 SIMILAR TO MCDAID'S DELETED SEVEN UNUSED BYTES FOR PROPER DEFINE */ } RParBlock; struct ParBlck { /* parameter block for enable/disable. */ char denabltyp; /* Enable or disable type. */ char passwdlen; /* Password length. */ char complver; /* Compiler version. */ char destcount; /* Enable/disable/purge destination count. */ char filler [8]; } ParBlock; struct SMParBlck { /* Session Management Parameter Block. */ char format; char action[3]; /* EST, DIS, ABT, 1, 2, or 3. */ char pbstatus[4]; /* Parameter block status. */ char symdest[12]; /* Symbolic destination. */ char input; /* Allow input. */ char output; /* Allow output. */ char status[2]; /* Return status. */ char exstatus[4]; /* Return extended status. */ } SMParBlock;