home *** CD-ROM | disk | FTP | other *** search
- /** xproto.h
- *
- * Include file for External Protocol Handling
- *
- **/
-
- /*
- * The structure
- */
- struct XPR_IO {
- char *xpr_filename; /* File name(s) */
- long (*xpr_fopen) (); /* Open file */
- long (*xpr_fclose) (); /* Close file */
- long (*xpr_fread) (); /* Get char from file */
- long (*xpr_fwrite) (); /* Put string to file */
- long (*xpr_sread) (); /* Get char from serial */
- long (*xpr_swrite) (); /* Put string to serial */
- long (*xpr_sflush) (); /* Flush serial input buffer */
- long (*xpr_update) (); /* Print stuff */
- long (*xpr_chkabort) (void); /* Check for abort */
- long (*xpr_chkmisc) (); /* Check misc. stuff */
- long (*xpr_gets) (); /* Get string interactively */
- long (*xpr_setserial) (); /* Set and Get serial info */
- long (*xpr_ffirst) (); /* Find first file name */
- long (*xpr_fnext) (); /* Find next file name */
- long (*xpr_finfo) (); /* Return file info */
- long (*xpr_fseek) (); /* Seek in a file */
- long xpr_extension; /* Number of extensions */
- struct XProtocolData *xpr_data; /* Initialized by Setup. */
- long (*xpr_options) (); /* Multiple XPR options. */
- long (*xpr_unlink) (); /* Delete a file. */
- long (*xpr_squery) (); /* Query serial device */
- long (*xpr_getptr) (); /* Get various host ptrs */
- };
-
- /*
- * Number of defined extensions
- */
- #define XPR_EXTENSION 4L
-
- /*
- * Flags returned by XProtocolSetup()
- */
- #define XPRS_FAILURE 0x00000000L
- #define XPRS_SUCCESS 0x00000001L
- #define XPRS_NORECREQ 0x00000002L
- #define XPRS_NOSNDREQ 0x00000004L
- #define XPRS_HOSTMON 0x00000008L
- #define XPRS_USERMON 0x00000010L
- #define XPRS_HOSTNOWAIT 0x00000020L
-
- /*
- * The update structure
- */
- struct XPR_UPDATE {
- long xpru_updatemask;
- char *xpru_protocol;
- char *xpru_filename;
- long xpru_filesize;
- char *xpru_msg;
- char *xpru_errormsg;
- long xpru_blocks;
- long xpru_blocksize;
- long xpru_bytes;
- long xpru_errors;
- long xpru_timeouts;
- long xpru_packettype;
- long xpru_packetdelay;
- long xpru_chardelay;
- char *xpru_blockcheck;
- char *xpru_expecttime;
- char *xpru_elapsedtime;
- long xpru_datarate;
- long xpru_reserved1;
- long xpru_reserved2;
- long xpru_reserved3;
- long xpru_reserved4;
- long xpru_reserved5;
- };
-
- /*
- * The possible bit values for the xpru_updatemask are:
- */
- #define XPRU_PROTOCOL 0x00000001L
- #define XPRU_FILENAME 0x00000002L
- #define XPRU_FILESIZE 0x00000004L
- #define XPRU_MSG 0x00000008L
- #define XPRU_ERRORMSG 0x00000010L
- #define XPRU_BLOCKS 0x00000020L
- #define XPRU_BLOCKSIZE 0x00000040L
- #define XPRU_BYTES 0x00000080L
- #define XPRU_ERRORS 0x00000100L
- #define XPRU_TIMEOUTS 0x00000200L
- #define XPRU_PACKETTYPE 0x00000400L
- #define XPRU_PACKETDELAY 0x00000800L
- #define XPRU_CHARDELAY 0x00001000L
- #define XPRU_BLOCKCHECK 0x00002000L
- #define XPRU_EXPECTTIME 0x00004000L
- #define XPRU_ELAPSEDTIME 0x00008000L
- #define XPRU_DATARATE 0x00010000L
-
- /*
- * The xpro_option structure
- */
- struct xpr_option {
- char *xpro_description; /* description of the option */
- long xpro_type; /* type of option */
- char *xpro_value; /* pointer to a buffer with the current value */
- long xpro_length; /* buffer size */
- };
-
- /*
- * Valid values for xpro_type are:
- */
- #define XPRO_BOOLEAN 1L /* xpro_value is "yes", "no", "on" or "off" */
- #define XPRO_LONG 2L /* xpro_value is string representing a number */
- #define XPRO_STRING 3L /* xpro_value is a string */
- #define XPRO_HEADER 4L /* xpro_value is ignored */
- #define XPRO_COMMAND 5L /* xpro_value is ignored */
- #define XPRO_COMMPAR 6L /* xpro_value contains command parameters */
-
- #include <exec/libraries.h>
-
- #define XPRXLIBNAME "xprxmodem.library"
-
- /* data message length */
- #define SMSGLEN 128 /* short message length */
- #define LMSGLEN 1024 /* long message length */
-
- struct XProtocolBase {
- struct Library xp_Lib;
- unsigned long xp_SegList;
- };
-
- struct XProtocolData {
- long fp, serialbits;
- int ascii, crc_conf, big;
- int crcmode; /* TRUE for CRC mode, FALSE for checksum */
- long numerrs, numtime, startsecs, startmics, filsiz;
- int savech, abort;
- int blknum; /* current block number */
- int bufptr; /* current buffer pointer */
- int chksum; /* current checksum value (or CRC) */
- int msgstart; /* current message start character (SOH or
- * STX) */
- int msglength; /* current message length */
- int nak; /* NAK character on receive */
- unsigned char *buffer; /* data portion of packet */
- unsigned char packet[LMSGLEN + 5];
- };
-
- long XProtocolCleanup(struct XPR_IO * IO);
- long XProtocolSetup(struct XPR_IO * IO);
- long XProtocolSend(struct XPR_IO * IO);
- long XProtocolReceive(struct XPR_IO * IO);
-
- #include "xprxmodempragmas.h"
-