home *** CD-ROM | disk | FTP | other *** search
/ ANews 1 / AnewsCD01.iso / Indispensables / Compression / xad / Developer / Include / ASM / libraries / xadmaster.i
Text File  |  1999-08-09  |  19KB  |  479 lines

  1.     IFND    LIBRARIES_XADMASTER_I
  2. LIBRARIES_XADMASTER_I    SET    1
  3.  
  4. *
  5. *    $VER: xadmaster.i 2.2 (17.07.1999)
  6. *    xadmaster.library defines and structures
  7. *
  8. *    Copyright © 1998-1999 by Dirk Stöcker
  9. *    All Rights Reserved.
  10. *
  11.  
  12.     IFND    EXEC_LIBRARIES_I
  13.     INCLUDE    "exec/libraries.i"
  14.     ENDC
  15.  
  16.     IFND    UTILITY_TAGITEM_I
  17.     INCLUDE    "utility/tagitem.i"
  18.     ENDC
  19.  
  20. * NOTE: The structures do not have size labels, as they have no fixed
  21. * size. You always need to call xadAllocObject to get them
  22.  
  23. *************************************************************************
  24. *                                                *
  25. *    library base structure                        *
  26. *                                                *
  27. *************************************************************************
  28.  
  29.     STRUCTURE xadMasterBase,LIB_SIZE
  30.     APTR    xmb_SysBase
  31.     APTR    xmb_DOSBase
  32.     APTR    xmb_UtilityBase
  33.     ULONG    xmb_RecogSize        * read only
  34.  
  35. *************************************************************************
  36. *                                                *
  37. *    tag-function call flags                               *
  38. *                                                *
  39. *************************************************************************
  40.  
  41. * input tags for xadGetInfo, only one can be specified per call
  42. XAD_INSIZE        EQU    (TAG_USER+001) * input data size
  43. XAD_INFILENAME        EQU    (TAG_USER+002)
  44. XAD_INFILEHANDLE    EQU    (TAG_USER+003)
  45. XAD_INMEMORY        EQU    (TAG_USER+004)
  46. XAD_INHOOK        EQU    (TAG_USER+005)
  47. XAD_INSPLITTED        EQU    (TAG_USER+006) * (V2)
  48.  
  49. * output tags, only one can be specified per call, xadXXXXUnArc
  50. XAD_OUTSIZE        EQU    (TAG_USER+010) * output data size
  51. XAD_OUTFILENAME        EQU    (TAG_USER+011)
  52. XAD_OUTFILEHANDLE    EQU    (TAG_USER+012)
  53. XAD_OUTMEMORY        EQU    (TAG_USER+013)
  54. XAD_OUTHOOK        EQU    (TAG_USER+014)
  55. XAD_OUTDEVICE        EQU    (TAG_USER+015) * for disk archives only
  56.  
  57. * object allocation tags for xadAllocObjectA
  58. XAD_OBJNAMESIZE        EQU    (TAG_USER+020) * XADOBJ_FILEINFO, size of needed name space
  59. XAD_OBJCOMMENTSIZE    EQU    (TAG_USER+021) * XADOBJ_FILEINFO, size of needed comment space
  60. XAD_OBJPRIVINFOSIZE    EQU    (TAG_USER+022) * XADOBJ_FILEINFO & XADOBJ_DISKINFO, self use size
  61. XAD_OBJBLOCKENTRIES    EQU    (TAG_USER+023) * XADOBJ_DISKINFO, number of needed entries
  62.  
  63. * tags for xadGetInfo, xadFileUnArc and xadDiskUnArc
  64. XAD_NOEXTERN        EQU    (TAG_USER+050) * do not use extern clients
  65. XAD_PASSWORD        EQU    (TAG_USER+051) * password when needed
  66. XAD_ENTRYNUMBER        EQU    (TAG_USER+052) * number of wanted entry
  67. XAD_PROGRESSHOOK    EQU    (TAG_USER+053) * the progress hook
  68. XAD_OVERWRITE        EQU    (TAG_USER+054) * overwrite file ?
  69. XAD_MAKEDIRECTORY    EQU    (TAG_USER+055) * create directory tree
  70. XAD_IGNOREGEOMETRY    EQU    (TAG_USER+056) * ignore drive geometry ?
  71. XAD_LOWCYLINDER        EQU    (TAG_USER+057) * lowest cylinder
  72. XAD_HIGHCYLINDER    EQU    (TAG_USER+058) * highest cylinder
  73. XAD_VERIFY        EQU    (TAG_USER+059) * verify for disk hook
  74.  
  75. * input tags for xadConvertDates, only one can be passed
  76. XAD_DATEUNIX        EQU    (TAG_USER+070) * unix date variable
  77. XAD_DATEAMIGA        EQU    (TAG_USER+071) * amiga date variable
  78. XAD_DATEDATESTAMP    EQU    (TAG_USER+072) * struct DateStamp
  79. XAD_DATEXADDATE        EQU    (TAG_USER+073) * struct xadDate
  80. XAD_DATECLOCKDATA    EQU    (TAG_USER+074) * struct ClockData
  81. XAD_DATECURRENTTIME    EQU    (TAG_USER+075) * input is system time
  82. XAD_DATEMSDOS        EQU    (TAG_USER+076) * MS-DOS packed format (V2)
  83.  
  84. * output tags, there can be specified multiple tags for one call
  85. XAD_GETDATEUNIX     EQU    (TAG_USER+080) * unix date variable
  86. XAD_GETDATEAMIGA    EQU    (TAG_USER+081) * amiga date variable
  87. XAD_GETDATEDATESTAMP    EQU    (TAG_USER+082) * struct DateStamp
  88. XAD_GETDATEXADDATE    EQU    (TAG_USER+083) * struct xadDate
  89. XAD_GETDATECLOCKDATA    EQU    (TAG_USER+084) * struct ClockData
  90. XAD_GETDATEMSDOS    EQU    (TAG_USER+086) * MS-DOS packed format (V2)
  91.  
  92. * following tags need locale.library to be installed
  93. XAD_MAKEGMTDATE        EQU    (TAG_USER+090) * make local to GMT time
  94. XAD_MAKELOCALDATE    EQU    (TAG_USER+091) * make GMT to local time
  95.  
  96. *************************************************************************
  97. *                                                *
  98. *    objects for xadAllocObjectA                           *
  99. *                                                *
  100. *************************************************************************
  101.  
  102. XADOBJ_ARCHIVEINFO    EQU    $0001 * struct xadArchiveInfo
  103. XADOBJ_FILEINFO        EQU    $0002 * struct xadFileInfo
  104. XADOBJ_DISKINFO        EQU    $0003 * struct xadDiskInfo
  105. XADOBJ_HOOKPARAM    EQU    $0004 * struct HookParam
  106. XADOBJ_DEVICEINFO    EQU    $0005 * struct xadDeviceInfo
  107. XADOBJ_PROGRESSINFO    EQU    $0006 * struct xadProgressInfo
  108. XADOBJ_TEXTINFO        EQU    $0007 * struct xadTextInfo
  109. XADOBJ_SPLITFILE    EQU    $0008 * struct xadSplitFile
  110.  
  111. * result type of xadAllocVec
  112. XADOBJ_MEMBLOCK        EQu    $0100 * memory of requested size and type
  113.  
  114. *************************************************************************
  115. *                                                *
  116. *    modes for xadCalcCRC126 and xadCalcCRC32                *
  117. *                                                *
  118. *************************************************************************
  119.  
  120. XADCRC16_ID1        EQU    $A001
  121. XADCRC32_ID1        EQU    $EDB88320
  122.  
  123. *************************************************************************
  124. *                                                *
  125. *    hook related stuff                                *
  126. *                                                *
  127. *************************************************************************
  128.  
  129. XADHC_READ    EQU    1    * read data into buffer
  130. XADHC_WRITE    EQU    2    * write buffer data to file/memory
  131. XADHC_SEEK    EQU    3    * seek in file
  132. XADHC_INIT    EQU    4    * initialize the hook
  133. XADHC_FREE    EQU    5    * end up hook work, free stuff
  134. XADHC_ABORT    EQU    6    * an error occured, delete partial stuff
  135. XADHC_FULLSIZE    EQU    7    * complete input size is needed
  136.  
  137.     STRUCTURE xadHookParam,0
  138.       ULONG    xhp_Command
  139.     ULONG    xhp_CommandData
  140.     APTR    xhp_BufferPtr
  141.       LONG    xhp_BufferSize
  142.       LONG    xhp_DataPos    * current seek position
  143.       APTR    xhp_PrivatePtr
  144.  
  145. * xadHookAccess commands
  146. XADAC_READ        EQU    10    * get data
  147. XADAC_WRITE        EQU    11    * write data
  148. XADAC_COPY        EQU    12    * copy input to ouput
  149. XADAC_INPUTSEEK        EQU    13    * seek in input file
  150. XADAC_OUTPUTSEEK    EQU    14    * seek in output file
  151.  
  152. *************************************************************************
  153. *                                                *
  154. *    support structures                              *
  155. *                                                *
  156. *************************************************************************
  157.  
  158. * Own date structure to cover all possible dates in a human friendly
  159. * format. xadConvertDates may be used to convert between different date
  160. * structures and variables.
  161.     STRUCTURE xadDate,0
  162.       ULONG     xd_Micros    * values 0 to 999999
  163.       LONG      xd_Year         * values 1 to 2147483648
  164.       UBYTE     xd_Month    * values 1 to 12
  165.       UBYTE     xd_WeekDay    * values 1 to 7
  166.       UBYTE     xd_Day        * values 1 to 31
  167.       UBYTE     xd_Hour        * values 0 to 23
  168.       UBYTE     xd_Minute    * values 0 to 60
  169.       UBYTE     xd_Second    * values 0 to 60
  170.       LABEL     xadDate_SIZE
  171.  
  172. XADDAY_MONDAY        EQU    1    * monday is the first day and
  173. XADDAY_TUESDAY        EQU    2
  174. XADDAY_WEDNESDAY    EQU    3
  175. XADDAY_THURSDAY        EQU    4
  176. XADDAY_FRIDAY        EQU    5
  177. XADDAY_SATURDAY     EQU    6
  178. XADDAY_SUNDAY        EQU    7    * sunday the last day of a week
  179.  
  180.     STRUCTURE xadDeviceInfo,0    * for XAD_OUTDEVICE tag
  181.     APTR    xdi_DeviceName    * name of device
  182.     ULONG    xdi_Unit    * unit of device
  183.     APTR    xdi_DOSName    * instead of Device+Unit, dos name without ':'
  184.  
  185.     STRUCTURE xadSplitFile,0    * for XAD_INSPLITTED
  186.       APTR    xsf_Next
  187.     ULONG    xsf_Type    * XAD_INFILENAME, XAD_INFILEHANDLE, XAD_INMEMORY, XAD_INHOOK
  188.     ULONG    xsf_Size    * necessary for XAD_INMEMORY, useful for others
  189.     ULONG    xsf_Data    * FileName, Filehandle, Hookpointer or Memory
  190.  
  191. *************************************************************************
  192. *                                                *
  193. *    information structures                              *
  194. *                                                *
  195. *************************************************************************
  196.  
  197.     STRUCTURE xadArchiveInfo,0
  198.       APTR    xai_Client      * pointer to unarchiving client
  199.     APTR    xai_PrivateClient * private client data
  200.     APTR    xai_Password      * password for crypted archives
  201.     ULONG    xai_Flags        * read only XADAIF_ flags
  202.     ULONG    xai_LowCyl       * lowest cylinder to unarchive
  203.     ULONG    xai_HighCyl      * highest cylinder to unarchive
  204.     ULONG    xai_InPos        * input position, read only
  205.     ULONG    xai_InSize       * input size, read only
  206.     ULONG    xai_OutPos       * output position, read only
  207.     ULONG    xai_OutSize      * output file size, read only
  208.     APTR    xai_FileInfo      * data pointer for file arcs
  209.     APTR    xai_DiskInfo      * data pointer for disk arcs
  210.     APTR    xai_CurFile      * data pointer for current file arc
  211.     APTR    xai_CurDisk      * data pointer for current disk arc
  212.       LONG    xai_LastError      * last error, when XADAIF_FILECORRUPT (V2)
  213.     APTR    xai_MultiVolume      * array of start offsets from parts (V2)
  214.  
  215. * This structure is nearly complete private to either xadmaster or its
  216. * clients. An application program may access for reading only xai_Client,
  217. * xai_Flags, xai_FileInfo and xai_DiskInfo. For xai_Flags only XADAIF_CRYPTED
  218. * is useful. All the other stuff is private and should not be accessed!
  219.  
  220.     BITDEF XADAI,CRYPTED,0        * archive entries are encrypted
  221.     BITDEF XADAI,FILECORRUPT,1    * file is corrupt, but valid entries are in the list
  222.     BITDEF XADAI,FILEARCHIVE,2    * unarchive file entry
  223.     BITDEF XADAI,DISKARCHIVE,3    * unarchive disk entry
  224.     BITDEF XADAI,OVERWRITE,4    * overwrite the file
  225.     BITDEF XADAI,MAKEDIRECTORY,5    * create directory when missing
  226.     BITDEF XADAI,IGNOREGEOMETRY,6    * ignore drive geometry
  227.     BITDEF XADAI,VERIFY,7        * verify is turned on for disk hook
  228.  
  229.     STRUCTURE xadFileInfo,0
  230.     APTR    xfi_Next
  231.     ULONG    xfi_EntryNumber    * number of entry, starts with 1
  232.     APTR    xfi_EntryInfo      * additional archiver text
  233.     APTR    xfi_PrivateInfo    * client private, see XAD_OBJPRIVINFOSIZE
  234.     ULONG    xfi_Flags          * see XADFIF_xxx defines
  235.     APTR    xfi_FileName       * see XAD_OBJNAMESIZE tag
  236.     APTR    xfi_Comment        * see XAD_OBJCOMMENTSIZE tag
  237.     ULONG      xfi_Protection     * OS 3 bits (including multiuser)
  238.     ULONG    xfi_OwnerUID       * user ID
  239.     ULONG    xfi_OwnerGID       * group ID
  240.     APTR    xfi_UserName       * user name
  241.     APTR    xfi_GroupName      * group name
  242.     ULONG   xfi_Size           * size of this file
  243.     ULONG    xfi_GroupCrSize    * crunched size of group
  244.     ULONG    xfi_CrunchSize     * crunched size
  245.     APTR    xfi_LinkName       * name and path of link
  246.     STRUCT    xfi_Date,xadDate_SIZE
  247.  
  248.     BITDEF XADFI,CRYPTED,0        * entry is crypted
  249.     BITDEF XADFI,DIRECTORY,1    * entry is a directory
  250.     BITDEF XADFI,LINK,2        * entry is a link
  251.     BITDEF XADFI,INFOTEXT,3        * file is an information text
  252.     BITDEF XADFI,GROUPED,4        * file is in a crunch group
  253.     BITDEF XADFI,ENDOFGROUP,5    * crunch group ends here
  254.     BITDEF XADFI,NODATE,6        * no date supported, current date is set
  255.  
  256. * NOTE: the texts passed with that structure must not always be printable.
  257. * Although the clients should add an additional (not counted) zero at the text
  258. * end, the whole file may contain other unprintable stuff (e.g. for DMS).
  259. * So when printing this texts do it on a byte for byte base including
  260. * printability checks.
  261.  
  262.     STRUCT xadTextInfo,0
  263.     APTR    xti_Next
  264.     ULONG    xti_Size    * maybe zero - no text - e.g. when crypted
  265.     APTR    xti_Text    * and there is no password in xadGetInfo()
  266.     ULONG    xti_Flags    * see XADTIF_xxx defines
  267.  
  268.     BITDEF    XADTI,CRYPTED,0    * entry is empty, as data was crypted
  269.     BITDEF    XADTI,BANNER,1    * text is a banner
  270.     BITDEF    XADTI,FILEDIZ,2    * text is a file description
  271.  
  272.     STRUCT xadDiskInfo,0
  273.     APTR    xdi_Next
  274.     ULONG    xdi_EntryNumber      * number of entry, starts with 1
  275.     APTR    xdi_EntryInfo        * additional archiver text
  276.     APTR    xdi_PrivateInfo      * client private, see XAD_OBJPRIVINFOSIZE
  277.     ULONG    xdi_Flags         * see XADDIF_xxx defines
  278.     ULONG    xdi_SectorSize
  279.     ULONG    xdi_TotalSectors    * see devices/trackdisk.h
  280.     ULONG    xdi_Cylinders        * to find out what these
  281.     ULONG    xdi_CylSectors          * fields mean, they are equal
  282.     ULONG    xdi_Heads          * to struct DriveGeometry
  283.     ULONG    xdi_TrackSectors
  284.     ULONG    xdi_LowCyl           * lowest cylinder stored
  285.     ULONG    xdi_HighCyl          * highest cylinder stored
  286.     ULONG    xdi_BlockInfoSize    * number of BlockInfo entries
  287.     APTR    xdi_BlockInfo        * see XADBIF_xxx defines and XAD_OBJBLOCKENTRIES tag
  288.     APTR    xdi_TextInfo        * linked list with info texts
  289.  
  290. * BlockInfo points to a UBYTE field for every track from first sector of
  291. * lowest cylinder to last sector of highest cylinder. When not used,
  292. * pointer must be 0. Do not use it, when there are no entries!
  293. * This is just for information. The applications still asks the client
  294. * to unarchive whole cylinders and not archived blocks are cleared for
  295. * unarchiving.
  296.     BITDEF XADDI,CRYPTED,0        * entry is crypted
  297.  
  298. * Some of the crunchers do not store all necessary information, so it
  299. * may be needed to guess some of them. Set the following flags in that case
  300. * and geometry check will ignore these fields.
  301.     BITDEF XADDI,GUESSCYLINDERS,7      * cylinder number is guessed
  302.     BITDEF XADDI,GUESSCYLSECTORS,8      * cylsectors is guessed
  303.     BITDEF XADDI,GUESSHEADS,9      * number of heads is guessed
  304.     BITDEF XADDI,GUESSTRACKSECTORS,10 * tracksectors is guessed
  305.     BITDEF XADDI,GUESSLOWCYL,11      * lowcyl is guessed
  306.     BITDEF XADDI,GUESSHIGHCYL,12      * highcyl is guessed
  307.  
  308. * If it is impossible to set some of the fields, you not to set some of
  309. * these flags. NOTE: XADDIB_NOCYLINDERS is really important, as this turns
  310. * of usage of lowcyl and highcyl keywords. When you have cylinder information,
  311. * you should not use these and instead use guess flags and calculate
  312. * possible values for the missing fields.
  313.     BITDEF XADDI,NOCYLINDERS,15    * cylinder number is not set
  314.     BITDEF XADDI,NOCYLSECTORS,16    * cylsectors is not set
  315.     BITDEF XADDI,NOHEADS,17        * number of heads is not set
  316.     BITDEF XADDI,NOTRACKSECTORS,18    * tracksectors is not set
  317.     BITDEF XADDI,NOLOWCYL,19    * lowcyl is not set
  318.     BITDEF XADDI,NOHIGHCYL,20    * highcyl is not set
  319.  
  320. * defines for BlockInfo
  321.     BITDEF XADBI,CLEARED,0    * this block was cleared for archiving
  322.     BITDEF XADBI,UNUSED,1    * this block was not archived
  323.  
  324. *************************************************************************
  325. *                                                *
  326. *    progress report stuff                              *
  327. *                                                *
  328. *************************************************************************
  329.  
  330.     STRUCTURE xadProgressInfo,0
  331.     ULONG    xpi_Mode    * work modus
  332.     APTR    xpi_Client    * the client doing the work
  333.     APTR    xpi_DiskInfo    * current diskinfo, for disks
  334.     APTR    xpi_FileInfo    * current info for files
  335.     ULONG    xpi_CurrentSize    * current filesize
  336.     ULONG    xpi_LowCyl    * for disks only
  337.     ULONG    xpi_HighCyl    * for disks only
  338.     ULONG    xpi_Status    * see XADPIF flags
  339.     LONG    xpi_Error    * any of the error codes
  340.     APTR    xpi_FileName    * name of file to overwrite (V2)
  341.     APTR    xpi_NewName    * new name buffer, passed by hook (V2)
  342. * NOTE: For disks CurrentSize is Sector*SectorSize, where SectorSize can
  343. * be found in xadDiskInfo structure. So you may output the sector value.
  344.  
  345. * different progress modes
  346. XADPMODE_ASK        EQU    1
  347. XADPMODE_PROGRESS    EQU    2
  348. XADPMODE_END        EQU    3
  349. XADPMODE_ERROR        EQU    4
  350.  
  351. * flags for progress hook and ProgressInfo status field
  352.     BITDEF XADPI,OVERWRITE,0    * overwrite the file
  353.     BITDEF XADPI,MAKEDIRECTORY,1    * create the directory
  354.     BITDEF XADPI,IGNOREGEOMETRY,2    * ignore drive geometry
  355.     BITDEF XADPI,RENAME,10        * rename the file (V2)
  356.     BITDEF XADPI,OK,16        * all ok, proceed
  357.     BITDEF XADPI,SKIP,17        * skip file
  358.  
  359. *************************************************************************
  360. *                                                *
  361. *    errors                                       *
  362. *                                                *
  363. *************************************************************************
  364.  
  365. XADERR_OK        EQU    $0000 * no error
  366. XADERR_UNKNOWN        EQU    $0001 * unknown error
  367. XADERR_INPUT        EQU    $0002 * input data buffers border exceeded
  368. XADERR_OUTPUT        EQU    $0003 * output data buffers border exceeded
  369. XADERR_BADPARAMS    EQU    $0004 * function called with illegal parameters
  370. XADERR_NOMEMORY        EQU    $0005 * not enough memory available
  371. XADERR_ILLEGALDATA    EQU    $0006 * data is corrupted
  372. XADERR_NOTSUPPORTED    EQU    $0007 * command is not supported
  373. XADERR_RESOURCE        EQU    $0008 * required resource missing
  374. XADERR_DECRUNCH        EQU    $0009 * error on decrunching
  375. XADERR_FILETYPE        EQU    $000A * unknown file type
  376. XADERR_OPENFILE        EQU    $000B * opening file failed
  377. XADERR_SKIP        EQU    $000C * file, disk has been skipped
  378. XADERR_BREAK        EQU    $000D * user break in progress hook
  379. XADERR_FILEEXISTS    EQU    $000E * file already exists
  380. XADERR_PASSWORD        EQU    $000F * missing or wrong password
  381. XADERR_MAKEDIR        EQU    $0010 * could not create directory
  382. XADERR_CHECKSUM        EQU    $0011 * wrong checksum
  383. XADERR_VERIFY        EQU    $0012 * verify failed (disk hook)
  384. XADERR_GEOMETRY        EQU    $0013 * wrong drive geometry
  385. XADERR_DATAFORMAT    EQU    $0014 * unknown data format
  386.  
  387. *************************************************************************
  388. *                                                *
  389. *    client related stuff                           *
  390. *                                                *
  391. *************************************************************************
  392.  
  393.     STRUCTURE xadForeman,0
  394.     ULONG    xfm_Security    * should be XADFOREMAN_SECURITY
  395.     ULONG    xfm_ID              * must be XADFOREMAN_ID
  396.     UWORD    xfm_Version     * set to XADFOREMAN_VERSION
  397.     UWORD    xfm_Reserved
  398.     APTR    xfm_VersString  * pointer to $VER: string
  399.     APTR    xfm_FirstClient * pointer to first client
  400.     LABEL    xadForman_SIZE
  401.  
  402. XADFOREMAN_SECURITY    EQU    $70FF4E75 * MOVEQ #-1,D0 and RTS
  403. XADFOREMAN_ID        EQU    $58414446 * 'XADF' identification ID
  404. XADFOREMAN_VERSION    EQU    1
  405.  
  406.     STRUCTURE xadClient,0
  407.     APTR    xc_Next
  408.     UWORD    xc_Version    * set to XADCLIENT_VERSION
  409.     UWORD    xc_MasterVersion
  410.     UWORD    xc_ClientVersion
  411.     UWORD    xc_ClientRevision
  412.     ULONG    xc_RecogSize    * needed size to recog the type
  413.     ULONG    xc_Flags    * see XADCF_xxx defines
  414.     ULONG    xc_Identifier    * ID of internal clients
  415.     APTR    xc_ArchiverName
  416.     APTR    xc_RecogData
  417.     APTR    xc_GetInfo
  418.     APTR    xc_UnArchive
  419.     APTR    xc_Free
  420.     LABEL    xadClient_SIZE
  421.  
  422. * xc_RecogData returns 1 when recognized and 0 when not, all the others
  423. * return 0 when ok and XADERR values on error. xc_FinishUnArc has no
  424. * return value.
  425.  
  426. * function interface
  427. * ASM(BOOL) xc_RecogData(REG(d0, ULONG size), REG(a0, STRPTR data),
  428. *        REG(a6, struct xadMasterBase *xadMasterBase))
  429. * ASM(LONG) xc_GetInfo(REG(a0, struct xadArchiveInfo *ai),
  430. *        REG(a6, struct xadMasterBase *xadMasterBase))
  431. * ASM(LONG) xc_UnArchive(REG(a0, struct xadArchiveInfo *ai),
  432. *        REG(a6, struct xadMasterBase *xadMasterBase))
  433. * ASM(void) xc_Free(REG(a0, struct xadArchiveInfo *ai),
  434. *        REG(a6, struct xadMasterBase *xadMasterBase))
  435.  
  436. XADCLIENT_VERSION    EQU    1
  437.  
  438.     BITDEF XADC,FILEARCHIVER,0    * archiver is a file archiver
  439.     BITDEF XADC,DISKARCHIVER,1    * archiver is a disk archiver
  440.     BITDEF XADC,EXTERN,2        * external client, set by xadmaster
  441.     BITDEF XADC,FREETEXTINFO,28    * master frees xadTextInfo structures (V2)
  442.     BITDEF XADC,FREETEXTINFOTEXT,29    * master frees xadTExtInfo text block (V2)
  443.     BITDEF XADC,FREEFILEINFO,30    * master frees xadFileInfo structures (V2)
  444.     BITDEF XADC,FREEDISKINFO,31    * master frees xadDiskInfo structures (V2)
  445.  
  446. *************************************************************************
  447. *                                                *
  448. *    client ID's                                   *
  449. *                                                *
  450. *************************************************************************
  451.  
  452. * If an external client has set the xc_Identifier field, the internal
  453. * client is replaced.
  454.  
  455. * disk archivers start with 1000
  456. XADCID_XMASH            EQU    1000
  457. XADCID_SUPERDUPER3        EQU    1001
  458. XADCID_XDISK            EQU    1002
  459. XADCID_PACKDEV            EQU    1003
  460. XADCID_ZOOM            EQU    1004
  461. XADCID_ZOOM5            EQU    1005
  462.  
  463. * file archivers start with 5000
  464. XADCID_TAR            EQU    5000
  465. XADCID_SDSSFX            EQU    5001
  466. XADCID_LZX            EQU    5002
  467. XADCID_MXMSIMPLEARC        EQU    5003
  468. XADCID_LHPAK            EQU    5004
  469. XADCID_AMIGAPLUSUNPACK        EQU    5005
  470. XADCID_AMIPACK            EQU    5006
  471. XADCID_LHA            EQU    5007
  472. XADCID_LHASFX            EQU    5008
  473.  
  474. * mixed archivers start with 9000
  475. XADCID_DMS            EQU    9000
  476. XADCID_DMSSFX            EQU    9001
  477.  
  478.     ENDC    ; LIBRARIES_XADMASTER_I
  479.