home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 1 / Mecomp-CD.iso / amiga / librarys / xprascii.library / source / xproto.h < prev   
Encoding:
C/C++ Source or Header  |  1995-10-09  |  5.0 KB  |  116 lines

  1. /** xproto.h
  2. *
  3. *   Include file for External Protocol Handling
  4. *
  5. **/
  6. /*
  7. *   The structure
  8. */
  9. struct XPR_IO {
  10.                 STRPTR   xpr_filename;
  11.                   LONG (* __asm xpr_fopen)(register __a0 STRPTR,register __a1 STRPTR);
  12.                   LONG (* __asm xpr_fclose)(register __a0 struct Buffer *);
  13.                   LONG (* __asm xpr_fread)(register __a0 APTR,register __d0 LONG,register __d1 LONG,register __a1 struct Buffer *);
  14.                   LONG (* __asm xpr_fwrite)(register __a0 APTR,register __d0 LONG,register __d1 LONG,register __a1 struct Buffer *);
  15.                  ULONG (* __asm xpr_sread)(register __a0 APTR,register __d0 LONG,register __d1 ULONG);
  16.                   LONG (* __asm xpr_swrite)(register __a0 APTR,register __d0 LONG);
  17.                   LONG (* __asm xpr_sflush)(VOID);
  18.                   LONG (* __asm xpr_update)(register __a0 struct XPR_UPDATE *);
  19.                   LONG (* __asm xpr_chkabort)(VOID);
  20.                   LONG (* __asm xpr_chkmisc)(VOID);
  21.                   LONG (* __asm xpr_gets)(register __a0 STRPTR,register __a1 STRPTR);
  22.                   LONG (* __asm xpr_setserial)(register __d0 LONG);
  23.                   LONG (* __asm xpr_ffirst)(register __a0 STRPTR,register __a1 STRPTR);
  24.                   LONG (* __asm xpr_fnext)(register __d0 LONG,register __a0 STRPTR,register __a1 STRPTR);
  25.                   LONG (* __asm xpr_finfo)(register __a0 STRPTR,register __d0 LONG);
  26.                   LONG (* __asm xpr_fseek)(register __a0 struct Buffer *,register __d0 LONG,register __d1 LONG);
  27.                   LONG   xpr_extension;
  28.                   LONG  *xpr_data;
  29.                  ULONG (* __asm xpr_options)(register __d0 LONG,register __a0 struct xpr_option **);
  30.                   LONG (* __asm xpr_unlink)(register __a0 STRPTR);
  31.                   LONG (* __asm xpr_squery)(VOID);
  32.                   LONG (* __asm xpr_getptr)(register __d0 LONG);
  33.               };
  34.  
  35.  
  36. /*
  37. *   Number of defined extensions
  38. */
  39. #define XPR_EXTENSION 4L
  40.  
  41. /*
  42. *   Flags returned by XProtocolSetup()
  43. */
  44. #define XPRS_FAILURE    0x00000000L
  45. #define XPRS_SUCCESS    0x00000001L
  46. #define XPRS_NORECREQ   0x00000002L
  47. #define XPRS_NOSNDREQ   0x00000004L
  48. #define XPRS_HOSTMON    0x00000008L
  49. #define XPRS_USERMON    0x00000010L
  50. #define XPRS_HOSTNOWAIT 0x00000020L
  51. /*
  52. *   The update structure
  53. */
  54. struct XPR_UPDATE {     ULONG  xpru_updatemask;
  55.                         STRPTR xpru_protocol;
  56.                         STRPTR xpru_filename;
  57.                         LONG   xpru_filesize;
  58.                         STRPTR xpru_msg;
  59.                         STRPTR xpru_errormsg;
  60.                         LONG   xpru_blocks;
  61.                         LONG   xpru_blocksize;
  62.                         LONG   xpru_bytes;
  63.                         LONG   xpru_errors;
  64.                         LONG   xpru_timeouts;
  65.                         LONG   xpru_packettype;
  66.                         LONG   xpru_packetdelay;
  67.                         LONG   xpru_chardelay;
  68.                         STRPTR xpru_blockcheck;
  69.                         STRPTR xpru_expecttime;
  70.                         STRPTR xpru_elapsedtime;
  71.                         LONG   xpru_datarate;
  72.                         LONG   xpru_reserved1;
  73.                         LONG   xpru_reserved2;
  74.                         LONG   xpru_reserved3;
  75.                         LONG   xpru_reserved4;
  76.                         LONG   xpru_reserved5;
  77.                    };
  78. /*
  79. *   The possible bit values for the xpru_updatemask are:
  80. */
  81. #define XPRU_PROTOCOL           0x00000001L
  82. #define XPRU_FILENAME           0x00000002L
  83. #define XPRU_FILESIZE           0x00000004L
  84. #define XPRU_MSG                0x00000008L
  85. #define XPRU_ERRORMSG           0x00000010L
  86. #define XPRU_BLOCKS             0x00000020L
  87. #define XPRU_BLOCKSIZE          0x00000040L
  88. #define XPRU_BYTES              0x00000080L
  89. #define XPRU_ERRORS             0x00000100L
  90. #define XPRU_TIMEOUTS           0x00000200L
  91. #define XPRU_PACKETTYPE         0x00000400L
  92. #define XPRU_PACKETDELAY        0x00000800L
  93. #define XPRU_CHARDELAY          0x00001000L
  94. #define XPRU_BLOCKCHECK         0x00002000L
  95. #define XPRU_EXPECTTIME         0x00004000L
  96. #define XPRU_ELAPSEDTIME        0x00008000L
  97. #define XPRU_DATARATE           0x00010000L
  98. /*
  99. *   The xpro_option structure
  100. */
  101. struct xpr_option {
  102.    STRPTR xpro_description;      /* description of the option                  */
  103.    LONG   xpro_type;             /* type of option                             */
  104.    STRPTR xpro_value;            /* pointer to a buffer with the current value */
  105.    LONG   xpro_length;           /* buffer size                                */
  106. };
  107. /*
  108. *   Valid values for xpro_type are:
  109. */
  110. #define XPRO_BOOLEAN 1L         /* xpro_value is "yes", "no", "on" or "off"   */
  111. #define XPRO_LONG    2L         /* xpro_value is string representing a number */
  112. #define XPRO_STRING  3L         /* xpro_value is a string                     */
  113. #define XPRO_HEADER  4L         /* xpro_value is ignored                      */
  114. #define XPRO_COMMAND 5L         /* xpro_value is ignored                      */
  115. #define XPRO_COMMPAR 6L         /* xpro_value contains command parameters     */
  116.