home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 631b.lha / XPR_ZmodemLibrary_v2.52 / Xproto.h < prev    next >
C/C++ Source or Header  |  1991-09-10  |  5KB  |  164 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.           long (* __asm xpr_fopen)(register __a0 char *filename,
  14.                        register __a1 char *accessmode);
  15.           /* Close file */
  16.           long (* __asm xpr_fclose)(register __a0 long filepointer);
  17.           /* Get char from file */
  18.           long (* __asm xpr_fread)(register __a0 char *buffer,
  19.                        register __d0 long size,
  20.                        register __d1 long count,
  21.                        register __a1 long fileptr);
  22.           /* Put string to file */
  23.           long (* __asm xpr_fwrite)(register __a0 char *buffer,
  24.                         register __d0 long size,
  25.                         register __d1 long count,
  26.                         register __a1 long fileptr);
  27.           /* Get char from serial */
  28.           long (* __asm xpr_sread)(register __a0 char *buffer,
  29.                        register __d0 long size,
  30.                        register __d1 long timeout);
  31.           /* Put string to serial */
  32.           long (* __asm xpr_swrite)(register __a0 char *buffer,
  33.                         register __d0 long size);
  34.           /* Flush serial input buffer */
  35.           long (*xpr_sflush)(void);
  36.           /* Print stuff */
  37.           long (* __asm xpr_update)(register __a0
  38.                           struct XPR_UPDATE *updatestruct);
  39.           /* Check for abort */
  40.           long (*xpr_chkabort)(void);
  41.           /* Check misc. stuff */
  42.           void (*xpr_chkmisc)(void);
  43.           /* Get string interactively */
  44.           long (* __asm xpr_gets)(register __a0 char *prompt,
  45.                       register __a1 char *buffer);
  46.           /* Set and Get serial info */
  47.           long (* __asm xpr_setserial)(register __d0 long newstatus);
  48.           /* Find first file name */
  49.           long (* __asm xpr_ffirst)(register __a0 char *buffer,
  50.                         register __a1 char *pattern);
  51.           /* Find next file name */
  52.           long (* __asm xpr_fnext)(register __d0 long oldstate,
  53.                        register __a0 char *buffer,
  54.                        register __a1 char *pattern);
  55.           /* Return file info */
  56.           long (* __asm xpr_finfo)(register __a0 char *filename,
  57.                        register __d0 long typeofinfo);
  58.           /* Seek in a file */
  59.           long (* __asm xpr_fseek)(register __a0 long fileptr,
  60.                        register __d0 long offset,
  61.                        register __d1 long origin);
  62.           /* Number of extensions */
  63.           long     xpr_extension;
  64.           /* Initialized by Setup. */
  65.           long    *xpr_data;
  66.           /* Multiple XPR options. */
  67.           long (* __asm xpr_options)(register __d0 long n,
  68.                          register __a0
  69.                              struct xpr_option **opt);
  70.           /* Delete a file. */
  71.           long (* __asm xpr_unlink)(register __a0 char *filename);
  72.           /* Query serial device */
  73.           long (*xpr_squery)(void);
  74.           /* Get various host ptrs */
  75.           long (* __asm xpr_getptr)(register __d0 long type);
  76.           };
  77. /*
  78. *   Number of defined extensions
  79. */
  80. #define XPR_EXTENSION 4L
  81.  
  82. /*
  83. *   The functions
  84. */
  85. #ifndef LATTICE
  86. extern long XProtocolSend(),  XProtocolReceive(),
  87.         XProtocolSetup(), XProtocolCleanup();
  88. #endif
  89. /*
  90. *   Flags returned by XProtocolSetup()
  91. */
  92. #define XPRS_FAILURE    0x00000000L
  93. #define XPRS_SUCCESS    0x00000001L
  94. #define XPRS_NORECREQ    0x00000002L
  95. #define XPRS_NOSNDREQ    0x00000004L
  96. #define XPRS_HOSTMON    0x00000008L
  97. #define XPRS_USERMON    0x00000010L
  98. #define XPRS_HOSTNOWAIT 0x00000020L
  99. /*
  100. *   The update structure
  101. */
  102. struct XPR_UPDATE {    long  xpru_updatemask;
  103.             char *xpru_protocol;
  104.             char *xpru_filename;
  105.             long  xpru_filesize;
  106.             char *xpru_msg;
  107.             char *xpru_errormsg;
  108.             long  xpru_blocks;
  109.             long  xpru_blocksize;
  110.             long  xpru_bytes;
  111.             long  xpru_errors;
  112.             long  xpru_timeouts;
  113.             long  xpru_packettype;
  114.             long  xpru_packetdelay;
  115.             long  xpru_chardelay;
  116.             char *xpru_blockcheck;
  117.             char *xpru_expecttime;
  118.             char *xpru_elapsedtime;
  119.             long  xpru_datarate;
  120.             long  xpru_reserved1;
  121.             long  xpru_reserved2;
  122.             long  xpru_reserved3;
  123.             long  xpru_reserved4;
  124.             long  xpru_reserved5;
  125.            };
  126. /*
  127. *   The possible bit values for the xpru_updatemask are:
  128. */
  129. #define XPRU_PROTOCOL        0x00000001L
  130. #define XPRU_FILENAME        0x00000002L
  131. #define XPRU_FILESIZE        0x00000004L
  132. #define XPRU_MSG        0x00000008L
  133. #define XPRU_ERRORMSG        0x00000010L
  134. #define XPRU_BLOCKS        0x00000020L
  135. #define XPRU_BLOCKSIZE        0x00000040L
  136. #define XPRU_BYTES        0x00000080L
  137. #define XPRU_ERRORS        0x00000100L
  138. #define XPRU_TIMEOUTS        0x00000200L
  139. #define XPRU_PACKETTYPE     0x00000400L
  140. #define XPRU_PACKETDELAY    0x00000800L
  141. #define XPRU_CHARDELAY        0x00001000L
  142. #define XPRU_BLOCKCHECK     0x00002000L
  143. #define XPRU_EXPECTTIME     0x00004000L
  144. #define XPRU_ELAPSEDTIME    0x00008000L
  145. #define XPRU_DATARATE        0x00010000L
  146. /*
  147. *   The xpro_option structure
  148. */
  149. struct xpr_option {
  150.    char *xpro_description;    /* description of the option              */
  151.    long  xpro_type;        /* type of option                  */
  152.    char *xpro_value;        /* pointer to a buffer with the current value */
  153.    long  xpro_length;        /* buffer size                      */
  154. };
  155. /*
  156. *   Valid values for xpro_type are:
  157. */
  158. #define XPRO_BOOLEAN 1L     /* xpro_value is "yes", "no", "on" or "off"   */
  159. #define XPRO_LONG    2L     /* xpro_value is string representing a number */
  160. #define XPRO_STRING  3L     /* xpro_value is a string              */
  161. #define XPRO_HEADER  4L     /* xpro_value is ignored              */
  162. #define XPRO_COMMAND 5L     /* xpro_value is ignored              */
  163. #define XPRO_COMMPAR 6L     /* xpro_value contains command parameters     */
  164.