📄 zftape-compress.h
字号:
#ifndef _ZFTAPE_COMPRESS_H#define _ZFTAPE_COMPRESS_H/* * Copyright (c) 1994-1997 Claus-Justus Heine This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * * $Source: /homes/cvs/ftape-stacked/ftape/compressor/zftape-compress.h,v $ * $Revision: 1.1 $ * $Date: 1997/10/05 19:12:32 $ * * This file contains macros and definitions for zftape's * builtin compression code. * */#include "../zftape/zftape-buffers.h"#include "../zftape/zftape-vtbl.h"#include "../compressor/lzrw3.h"/* CMPR_WRK_MEM_SIZE gives the size of the compression wrk_mem *//* I got these out of lzrw3.c */#define U(X) ((__u32) X)#define SIZE_P_BYTE (U(sizeof(__u8 *)))#define ALIGNMENT_FUDGE (U(16))#define CMPR_WRK_MEM_SIZE (U(4096)*(SIZE_P_BYTE) + ALIGNMENT_FUDGE)/* the maximum number of bytes the size of the "compressed" data can * exceed the uncompressed data. As it is quite useless to compress * data twice it is sometimes the case that it is more efficient to * copy a block of data but to feed it to the "compression" * algorithm. In this case there are some flag bytes or the like * proceding the "compressed" data. THAT MUST NOT BE THE CASE for the * algorithm we use for this driver. Instead, the high bit 15 of * compressed_size: * * compressed_size = ftape_compress() * * must be set in such a case. * * Nevertheless, it might also be as for lzrw3 that there is an * "intermediate" overrun that exceeds the amount of the compressed * data that is actually produced. During the algorithm we need in the * worst case MAX_CMP_GROUP bytes more than the input-size. */#define MAX_CMP_GROUP (2+16*2) /* from lzrw3.c */#define CMPR_OVERRUN MAX_CMP_GROUP /* during compression *//****************************************************/#define CMPR_BUFFER_SIZE (MAX_BLOCK_SIZE + CMPR_OVERRUN)/* the compression map stores the byte offset compressed blocks within * the current volume for catridges with format code 2,3 and 5 * (and old versions of zftape) and the offset measured in kilobytes for * format code 4 and 6. This gives us a possible max. size of a * compressed volume of 1024*4GIG which should be enough. */typedef __u32 CmprMap;/* globals *//* exported functions */#endif /* _ZFTAPE_COMPRESS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -