Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.   Copyright (c) 1990-2008 Info-ZIP.  All rights reserved.
  3.  
  4.   See the accompanying file LICENSE, version 2000-Apr-09 or later
  5.   (the contents of which are also included in zip.h) for terms of use.
  6.   If, for some reason, all these files are missing, the Info-ZIP license
  7.   also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
  8. */
  9. /* crc32.h -- compute the CRC-32 of a data stream
  10.  * Copyright (C) 1995 Mark Adler
  11.  * For conditions of distribution and use, see copyright notice in zlib.h
  12.  */
  13.  
  14. #ifndef __crc32_h
  15. #define __crc32_h       /* identifies this source module */
  16.  
  17. /* This header should be read AFTER zip.h resp. unzip.h
  18.  * (the latter with UNZIP_INTERNAL defined...).
  19.  */
  20.  
  21. #ifndef OF
  22. #  define OF(a) a
  23. #endif
  24. #ifndef ZCONST
  25. #  define ZCONST const
  26. #endif
  27.  
  28. #ifdef DYNALLOC_CRCTAB
  29.    void     free_crc_table  OF((void));
  30. #endif
  31. #ifndef USE_ZLIB
  32.    ZCONST ulg near *get_crc_table  OF((void));
  33. #endif
  34. #if (defined(USE_ZLIB) || defined(CRC_TABLE_ONLY))
  35. #  ifdef IZ_CRC_BE_OPTIMIZ
  36. #    undef IZ_CRC_BE_OPTIMIZ
  37. #  endif
  38. #else /* !(USE_ZLIB || CRC_TABLE_ONLY) */
  39.    ulg      crc32           OF((ulg crc, ZCONST uch *buf, extent len));
  40. #endif /* ?(USE_ZLIB || CRC_TABLE_ONLY) */
  41.  
  42. #ifndef CRC_32_TAB
  43. #  define CRC_32_TAB     crc_32_tab
  44. #endif
  45.  
  46. #ifdef CRC32
  47. #  undef CRC32
  48. #endif
  49. #ifdef IZ_CRC_BE_OPTIMIZ
  50. #  define CRC32UPD(c, crctab) (crctab[((c) >> 24)] ^ ((c) << 8))
  51. #  define CRC32(c, b, crctab) (crctab[(((int)(c) >> 24) ^ (b))] ^ ((c) << 8))
  52. #  define REV_BE(w) (((w)>>24)+(((w)>>8)&0xff00)+ \
  53.                     (((w)&0xff00)<<8)+(((w)&0xff)<<24))
  54. #else
  55. #  define CRC32UPD(c, crctab) (crctab[((int)(c)) & 0xff] ^ ((c) >> 8))
  56. #  define CRC32(c, b, crctab) (crctab[((int)(c) ^ (b)) & 0xff] ^ ((c) >> 8))
  57. #  define REV_BE(w) w
  58. #endif
  59.  
  60. #endif /* !__crc32_h */
  61.