1 #ifndef XPK_XPKSUB_H 2 #define XPK_XPKSUB_H 3 4 /* 5 ** $VER: xpk/xpksub.h 4.10 (05.04.97) by SDI 6 ** 7 ** (C) Copyright 1991-1996 by 8 ** Urban Dominik Mueller, Bryan Ford, 9 ** Christian Schneider, Christian von Roques, 10 ** Dirk Stöcker 11 ** All Rights Reserved 12 */ 13 14 #ifndef XPK_XPK_H 15 #include <xpk/xpk.h> 16 #endif 17 18 /************************************************************************** 19 * 20 * The XpkInfo structure 21 * 22 */ 23 24 /* Sublibs return this structure to xpkmaster when asked nicely 25 * This is version 1 of XpkInfo. It's not #define'd because we don't want 26 * it changing automatically with recompiles - you've got to actually update 27 * your code when it changes. */ 28 struct XpkInfo { 29 UWORD xi_XpkInfoVersion ; /* Version number of this structure */ 30 UWORD xi_LibVersion ; /* The version of this sublibrary */ 31 UWORD xi_MasterVersion ; /* The required master lib version */ 32 UWORD xi_ModesVersion ; /* Version number of mode descriptors */ 33 STRPTR xi_Name ; /* Brief name of the packer, 20 char max */ 34 STRPTR xi_LongName ; /* Full name of the packer 30 char max */ 35 STRPTR xi_Description ; /* Short packer desc., 70 char max */ 36 ULONG xi_ID ; /* ID the packer goes by (XPK format) */ 37 ULONG xi_Flags ; /* Defined below */ 38 ULONG xi_MaxPkInChunk ; /* Max input chunk size for packing */ 39 ULONG xi_MinPkInChunk ; /* Min input chunk size for packing */ 40 ULONG xi_DefPkInChunk ; /* Default packing chunk size */ 41 STRPTR xi_PackMsg ; /* Packing message, present tense */ 42 STRPTR xi_UnpackMsg ; /* Unpacking message, present tense */ 43 STRPTR xi_PackedMsg ; /* Packing message, past tense */ 44 STRPTR xi_UnpackedMsg ; /* Unpacking message, past tense */ 45 UWORD xi_DefMode ; /* Default mode number */ 46 UWORD xi_Pad ; /* for future use */ 47 struct XpkMode *xi_ModeDesc; /* List of individual descriptors */ 48 ULONG xi_Reserved[6] ; /* Future expansion - set to zero */ 49 }__attribute__((packed)); 50 51 /* defines for Flags: see xpk.h, XPKIF_xxxxx */ 52 53 /************************************************************************** 54 * 55 * The XpkSubParams structure 56 * 57 */ 58 59 struct XpkSubParams { 60 APTR xsp_InBuf ; /* The input data */ 61 ULONG xsp_InLen ; /* The number of bytes to pack */ 62 APTR xsp_OutBuf ; /* The output buffer */ 63 ULONG xsp_OutBufLen ; /* The length of the output buf */ 64 ULONG xsp_OutLen ; /* Number of bytes written */ 65 ULONG xsp_Flags ; /* Flags for master/sub comm. */ 66 ULONG xsp_Number ; /* The number of this chunk */ 67 ULONG xsp_Mode ; /* The packing mode to use */ 68 STRPTR xsp_Password ; /* The password to use */ 69 UWORD xsp_LibVersion ; /* SublibVersion used to pack */ 70 UWORD xsp_Pad ; /* Reserved; don't use */ 71 ULONG xsp_Arg[3] ; /* Reserved; don't use */ 72 ULONG xsp_Sub[4] ; /* Sublib private data */ 73 }__attribute__((packed)); 74 75 /* 76 * xsp_LibVersion is the version number of the sublibrary used to pack 77 * this chunk. It can be used to create backwards compatible sublibraries 78 * with a totally different fileformat. 79 */ 80 81 #define XSF_STEPDOWN 1 /* May reduce pack eff. to save mem */ 82 #define XSF_PREVCHUNK 2 /* Previous chunk available on unpack */ 83 84 #endif /* XPK_XPKSUB_H */