Lzh.h
上传用户:jinandeyu
上传日期:2007-01-05
资源大小:620k
文件大小:3k
源码类别:

远程控制编程

开发平台:

WINDOWS

  1. /*  Back Orifice 2000 - Remote Administration Suite
  2.     Copyright (C) 1999, Cult Of The Dead Cow
  3.     This program is free software; you can redistribute it and/or modify
  4.     it under the terms of the GNU General Public License as published by
  5.     the Free Software Foundation; either version 2 of the License, or
  6.     (at your option) any later version.
  7.     This program is distributed in the hope that it will be useful,
  8.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.     GNU General Public License for more details.
  11.     You should have received a copy of the GNU General Public License
  12.     along with this program; if not, write to the Free Software
  13.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14. The author of this program may be contacted at dildog@l0pht.com. */
  15. #ifndef LZH_H
  16. #define LZH_H
  17. #define far
  18. typedef unsigned char  uchar;   /*  8 bits or more */
  19. typedef unsigned int   uint;    /* 16 bits or more */
  20. typedef unsigned short ushort;  /* 16 bits or more */
  21. typedef unsigned long  ulong;   /* 32 bits or more */
  22. #ifndef CHAR_BIT
  23.     #define CHAR_BIT            8
  24. #endif
  25. #ifndef UCHAR_MAX
  26.     #define UCHAR_MAX           255
  27. #endif
  28. #define BITBUFTYPE ushort
  29. #define BITBUFSIZ (CHAR_BIT * sizeof (BITBUFTYPE))
  30. #define DICBIT    13                              /* 12(-lh4-) or 13(-lh5-) */
  31. #define DICSIZ (1U << DICBIT)
  32. #define MAXMATCH 256                              /* formerly F (not more than UCHAR_MAX + 1) */
  33. #define THRESHOLD  3                              /* choose optimal value */
  34. #define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD) /* alphabet = {0, 1, 2, ..., NC - 1} */
  35. #define CBIT 9                                    /* $lfloor log_2 NC rfloor + 1$ */
  36. #define CODE_BIT  16                              /* codeword length */
  37. #define MAX_HASH_VAL (3 * DICSIZ + (DICSIZ / 512 + 1) * UCHAR_MAX)
  38. typedef void far * void_far_pointer;
  39. typedef int (*type_fnc_read) (void far *data, int n);
  40. typedef int (*type_fnc_write) (void far *data, int n);
  41. typedef void_far_pointer (*type_fnc_malloc) (unsigned n);
  42. typedef void (*type_fnc_free) (void far *p);
  43. int lzh_freeze (type_fnc_read   pfnc_read,
  44.                 type_fnc_write  pfnc_write,
  45. type_fnc_malloc pfnc_malloc,
  46. type_fnc_free   pfnc_free);
  47. int lzh_melt (type_fnc_read   pfnc_read,
  48.               type_fnc_write  pfnc_write,
  49.       type_fnc_malloc pfnc_malloc,
  50.       type_fnc_free   pfnc_free,
  51.       ulong origsize);
  52. #endif /* ifndef LZH_H */