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 */