home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 300.lha / xprzmodem.library_v2.0 / xproto.h < prev    next >
Encoding:
C/C++ Source or Header  |  1980-12-01  |  5.6 KB  |  137 lines

  1. /** xproto.h
  2. *
  3. *   Include file for External Protocol Handling
  4. *
  5. **/
  6. /*
  7. *   The structure
  8. */
  9. struct XPR_IO {
  10.                   /* File name(s)             */
  11.                   char  *xpr_filename;
  12.                   /* Open file                */
  13.                   void *(*xpr_fopen)(char *filename,char *accessmode);
  14.                   /* Close file               */
  15.                   void (*xpr_fclose)(void *fileptr);
  16.                   /* Get char from file       */
  17.                   long (*xpr_fread)(char *buffer,long size,long count,void *fileptr);
  18.                   /* Put string to file       */
  19.                   long (*xpr_fwrite)(char *buffer,long size,long count,void *fileptr);
  20.                   /* Get char from serial     */
  21.                   long (*xpr_sread)(char *buffer,long size,long timeout);
  22.                   /* Put string to serial     */
  23.                   long (*xpr_swrite)(char *buffer,long size);
  24.                   /* Flush serial input buffer*/
  25.                   long (*xpr_sflush)(void);
  26.                   /* Print stuff              */
  27.                   void (*xpr_update)(struct XPR_UPDATE *updatestruct);
  28.                   /* Check for abort          */
  29.                   long (*xpr_chkabort)(void);
  30.                   /* Check misc. stuff        */
  31.                   void (*xpr_chkmisc)(void);
  32.                   /* Get string interactively */
  33.                   long (*xpr_gets)(char *prompt,char *buffer);
  34.                   /* Set and Get serial info  */
  35.                   long (*xpr_setserial)(long newstatus);
  36.                   /* Find first file name     */
  37.                   long (*xpr_ffirst)(char *buffer,char *pattern);
  38.                   /* Find next file name      */
  39.                   long (*xpr_fnext)(long oldstate,char *buffer,char *pattern);
  40.                   /* Return file info         */
  41.                   long (*xpr_finfo)(char *filename,long typeofinfo);
  42.                   /* Seek in a file           */
  43.                   long (*xpr_fseek)(void *fileptr,long position,long origin);
  44.                   /* Number of extensions     */
  45.                   long   xpr_extension;
  46.                   /* Initialized by Setup.    */
  47.                   void  *xpr_data;
  48.                   /* Multiple XPR options.    */
  49.                   long (*xpr_options)(long n,struct xpr_option *opt[]);
  50.                   /* Delete a file.           */
  51.                   long (*xpr_unlink)(char *filename);
  52.                   /* Query serial device      */
  53.                   long (*xpr_squery)(void);
  54.                   /* Get various host ptrs    */
  55.                   void *(*xpr_getptr)(long type);
  56.               };
  57. /*
  58. *   Number of defined extensions
  59. */
  60. #define XPR_EXTENSION 4L
  61.  
  62. /*
  63. *   Flags returned by XProtocolSetup()
  64. */
  65. #define XPRS_FAILURE  0x00000000L
  66. #define XPRS_SUCCESS  0x00000001L
  67. #define XPRS_NORECREQ 0x00000002L
  68. #define XPRS_NOSNDREQ 0x00000004L
  69. #define XPRS_HOSTMON  0x00000008L
  70. #define XPRS_USERMON  0x00000010L
  71. /*
  72. *   The update structure
  73. */
  74. struct XPR_UPDATE {     long  xpru_updatemask;
  75.                         char *xpru_protocol;
  76.                         char *xpru_filename;
  77.                         long  xpru_filesize;
  78.                         char *xpru_msg;
  79.                         char *xpru_errormsg;
  80.                         long  xpru_blocks;
  81.                         long  xpru_blocksize;
  82.                         long  xpru_bytes;
  83.                         long  xpru_errors;
  84.                         long  xpru_timeouts;
  85.                         long  xpru_packettype;
  86.                         long  xpru_packetdelay;
  87.                         long  xpru_chardelay;
  88.                         char *xpru_blockcheck;
  89.                         char *xpru_expecttime;
  90.                         char *xpru_elapsedtime;
  91.                         long  xpru_datarate;
  92.                         long  xpru_reserved1;
  93.                         long  xpru_reserved2;
  94.                         long  xpru_reserved3;
  95.                         long  xpru_reserved4;
  96.                         long  xpru_reserved5;
  97.                    };
  98. /*
  99. *   The possible bit values for the xpru_updatemask are:
  100. */
  101. #define XPRU_PROTOCOL           0x00000001L
  102. #define XPRU_FILENAME           0x00000002L
  103. #define XPRU_FILESIZE           0x00000004L
  104. #define XPRU_MSG                0x00000008L
  105. #define XPRU_ERRORMSG           0x00000010L
  106. #define XPRU_BLOCKS             0x00000020L
  107. #define XPRU_BLOCKSIZE          0x00000040L
  108. #define XPRU_BYTES              0x00000080L
  109. #define XPRU_ERRORS             0x00000100L
  110. #define XPRU_TIMEOUTS           0x00000200L
  111. #define XPRU_PACKETTYPE         0x00000400L
  112. #define XPRU_PACKETDELAY        0x00000800L
  113. #define XPRU_CHARDELAY          0x00001000L
  114. #define XPRU_BLOCKCHECK         0x00002000L
  115. #define XPRU_EXPECTTIME         0x00004000L
  116. #define XPRU_ELAPSEDTIME        0x00008000L
  117. #define XPRU_DATARATE           0x00010000L
  118. /*
  119. *   The xpro_option structure
  120. */
  121. struct xpr_option {
  122.    char *xpro_description;      /* description of the option                  */
  123.    long  xpro_type;             /* type of option                             */
  124.    char *xpro_value;            /* pointer to a buffer with the current value */
  125.    long  xpro_length;           /* buffer size                                */
  126. };
  127. /*
  128. *   Valid values for xpro_type are:
  129. */
  130. #define XPRO_BOOLEAN 1L         /* xpro_value is "yes", "no", "on" or "off"   */
  131. #define XPRO_LONG    2L         /* xpro_value is string representing a number */
  132. #define XPRO_STRING  3L         /* xpro_value is a string                     */
  133. #define XPRO_HEADER  4L         /* xpro_value is ignored                      */
  134. #define XPRO_COMMAND 5L         /* xpro_value is ignored                      */
  135. #define XPRO_COMMPAR 6L         /* xpro_value contains command parameters     */
  136.  
  137.