sutkcomp.h
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:6k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. /* TS = none */
  2. /*
  3. **  SUTKCOMP.H  --  internal header for compression module for Setup Toolkit.
  4. */
  5. #include  "os2types.h"
  6. #include  "retcodes.h"
  7. /* The compressed file header format can be found in docheader.doc. */
  8. #define  cbMagic        8
  9. #define  rgbMagicValue  "KWAJx88xf0x27xd1"
  10. /* bit masks for accessing flags in rgfsFlags[] */
  11. #define  bmAnotherUsFlag   0x8000
  12. /* First Bank of FsFlags */
  13. #define  bmSrcLength       0x0001
  14. #define  bmChecksum        0x0002
  15. #define  bmArgs            0x0004
  16. #define  bmBaseName        0x0008
  17. #define  bmExtension       0x0010
  18. #define  bmText            0x0020
  19. #ifdef EAS
  20. #define  bmEAs             0x0040
  21. #endif /* EAS */
  22.   /* global header info variables */
  23. extern  SHORT   vwAlgType;
  24. extern  LONG    vlcbSrcLength;
  25. extern  BOOL    vfChecksum;
  26. extern  USHORT  vusChecksum;
  27. extern  USHORT  vcbArgs;
  28. extern  BYTE *  vrgbArgs;
  29. extern  CHAR    vszBaseName[9];
  30. extern  CHAR    vszExtension[4];
  31. extern  SZ      vszText;
  32. extern  USHORT  vcbText;
  33. #ifdef EAS
  34. extern  CHAR    far *vfrgbEAs;
  35. extern  CHAR    *vrgbEAs;
  36. extern  USHORT  vuscbEAs;
  37. #endif /* EAS */
  38.   /* other global variables needed in toolkit layer */
  39. extern  LONG    vlibChecksum;               /* patch location of usChecksum */
  40. extern  LONG    vlibSrcLength;              /* patch location of lcbSrclength */
  41. /*
  42. **  File I/O macros.
  43. **  FWriteXX returns TRUE if it works, FALSE on errors.
  44. **    (Note:  fh == -1 is not considered an error in FWriteXX; it always
  45. **    returns TRUE.  This happens when just calculating a length.)
  46. */
  47. #define EOF  (-1)
  48. extern  BYTE  _bWrite;
  49. #define FWriteByte(fh, b) 
  50.       ((BOOL)((fh == -1) ? TRUE : (_bWrite = b, write(fh, &_bWrite, 1) == 1)))
  51. #define FWriteNBytes(fh, rgb, n) 
  52.       ((BOOL)((fh == -1) ? TRUE : (write(fh, rgb, n) == (int)n)))
  53. #define FWriteUs(fh, us) 
  54.       ((BOOL)(FWriteByte(fh, (BYTE)us) && FWriteByte(fh, (BYTE)(us >> 8))))
  55. #define FWriteUl(fh,ul) 
  56.       ((BOOL)(FWriteByte(fh, (BYTE)ul) && FWriteByte(fh, (BYTE)(ul >> 8)) 
  57.       && FWriteByte(fh, (BYTE)(ul >> 16)) && FWriteByte(fh,(BYTE) (ul >> 24))))
  58. /***** EXTERN PROCS *****/
  59.   /* routines from sutkcomp.c */
  60. extern  SHORT   far  WReadHeaderInfo(int fhSrc);
  61. extern  SHORT   far  CbWriteFileHeader(int fhDest);
  62. extern  BOOL    far  FFreeHeaderInfo(void);
  63. extern  BOOL         FReadNBytes(int fh, BYTE *pb, int n);
  64. extern  BOOL         FReadUs(int fh, USHORT *pw);
  65. extern  BOOL         FReadUl(int fh, ULONG *pul);
  66. extern  BOOL         FPatchUs(int fh, LONG lib, USHORT us);
  67. extern  BOOL         FPatchUl(int fh, LONG lib, ULONG ul);
  68. extern  USHORT       CbReadFar(int fh, BYTE far * fp, USHORT cb);
  69. #define FReadByte(fh, pb)  FReadNBytes(fh, pb, 1)
  70.   /* routines from compress.c */
  71. extern  LONG    far  LcbCompressToFile(SHORT wAlgType, int fhSrc, int fhDest,
  72.                            LONG lcbDestMax);
  73. extern  LONG    far  LcbCalculateCompressedLength(SHORT wAlgType, int fhSrc,
  74.                            LONG lcbDestMax);
  75.   /* routines from decomp.c */
  76. extern  LONG    far  LcbDecompFile(int fhSrc, int fhDest, LONG lcbDestMax,
  77.                            LONG libStart, BOOL fHeaderAlreadyRead,
  78.                            BYTE far * fpbBuf, LONG lcbBuf, PFNWFROMW pfn,
  79.                            int cProgTicks, PFNWFROMW pfnYield);
  80. extern  LONG    far  LcbDecompressToFile(int fhSrc, int fhDest, LONG lcbDestMax,
  81.                            LONG libStart, BOOL fHeaderAlreadyRead);
  82. extern  LONG    far  LcbDecompressToBuffer(int fhSrc, BYTE far * fpbBuf,
  83.                            LONG lcbBuf, LONG libStart, BOOL fHeaderAlreadyRead);
  84. extern  LONG    far  LcbCalculateDecompressedLength(int fhSrc,
  85.                            BOOL fHeaderAlreadyRead);
  86.   /* routines from zk1zk1comp.c */
  87. extern  LONG    Lcb_ZK1_CompressToFile(int fhSrc, int fhDest,
  88.                            LONG lcbDestMax);
  89.   /* routines from zk1zk1deco.c */
  90. extern  LONG    Lcb_ZK1_DecompressToFile(int fhSrc, int fhDest, LONG lcbDestMax,
  91.                            LONG libStart);
  92. extern  LONG    Lcb_ZK1_DecompressToBuffer(int fhSrc, BYTE far * fpbBuf,
  93.                            LONG lcbBuf, LONG libStart);
  94.   /* routines from zk1zk1share.c */
  95. extern  void    WriteOutBuff(BYTE bToAdd);
  96. extern  BOOL    FAllocateGlobals(LONG lcbDestMax, BOOL fCompressing);
  97. extern  void    FreeGlobals(void);
  98. extern  USHORT  ReadByte(int fh);
  99.   /* routines from jjj1jjj1comp.c */
  100. extern  LONG    Lcb_JJJ1_CompressToFile(int fhSrc, int fhDest,
  101.                            LONG lcbDestMax);
  102.   /* routines from jjj1jjj1deco.c */
  103. extern  LONG    Lcb_JJJ1_DecompressToFile(int fhSrc, int fhDest,
  104.                            LONG lcbDestMax, LONG libStart,
  105.                            BYTE far * fpbBuf, LONG lcbBuf);
  106. extern  LONG    Lcb_JJJ1_DecompressToBuffer(int fhSrc, BYTE far * fpbBuf,
  107.                            LONG lcbBuf, LONG libStart);
  108.   /* routines from nc_xor1nc_xor1.c */
  109. extern  LONG    Lcb_NC_XOR1_StraightCopy(int fhSrc, int fhDest, LONG lcbDestMax,
  110.                            BYTE far * fpbBufDest, LONG libStart, BOOL fXor);
  111.   /* Buffered Read/Write Stuff */
  112. #define WriteByte(b) 
  113.         if (fpbOutBufCur < fpbOutBufEnd) *fpbOutBufCur++=b; else WriteOutBuff(b);
  114. #define WriteUs(us) 
  115.         WriteByte((BYTE)us); WriteByte((BYTE)us >> sizeof(BYTE))
  116. #define WriteUl(ul) 
  117.         WriteByte((BYTE)ul); 
  118.         WriteByte((BYTE)ul >> sizeof(BYTE));  
  119.         WriteByte((BYTE)ul >> (2 * sizeof(BYTE))); 
  120.         WriteByte((BYTE)ul >> (3 * sizeof(BYTE)))
  121. extern  BOOL        fDestFull;
  122. extern  BOOL        fWriteError;
  123. extern  BYTE far *  fpbBufDest;
  124. extern  int         fhSrcGlobal;
  125. extern  LONG        lcbDest;
  126. extern  LONG        lcbDestStop;
  127. extern  LONG        lcbSkipOut;
  128. extern  int         fhDestGlobal;
  129. extern  BYTE far *  fpbOutBuf;
  130. extern  BYTE far *  fpbOutBufCur;
  131. extern  BYTE far *  fpbOutBufEnd;
  132. extern  BYTE far *  fpbInBuf;
  133. extern  BYTE far *  fpbInBufCur;
  134. extern  BYTE far *  fpbInBufEnd;
  135. extern  BOOL  FAllocateReadWriteGlobals(LONG lcbDestMax);
  136. extern  void  FreeReadWriteGlobals(void);