1/* 2 * Copyright (c) 1999, 2000-2001 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. The rights granted to you under the License 10 * may not be used to create, or enable the creation or redistribution of, 11 * unlawful or unlicensed copies of an Apple operating system, or to 12 * circumvent, violate, or enable the circumvention or violation of, any 13 * terms of an Apple operating system software license agreement. 14 * 15 * Please obtain a copy of the License at 16 * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 * 18 * The Original Code and all software distributed under the License are 19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 * Please see the License for the specific language governing rights and 24 * limitations under the License. 25 * 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 */ 28 29/* 30 File: comp.h 31 32 Contains: Glue between core prng code to the Zlib library. 33 34 Written by: Counterpane, Inc. 35 36 Copyright: (c) 2000 by Apple Computer, Inc., all rights reserved. 37 38 Change History (most recent first): 39 40 02/10/99 dpm Created, based on Counterpane source. 41 42*/ 43/* comp.h 44 45 Header for the compression routines added to the Counterpane PRNG. 46*/ 47 48#ifndef __YARROW_COMP_H__ 49#define __YARROW_COMP_H__ 50 51#include "smf.h" 52 53/* 54 * Kernel version does NULL compression.... 55 */ 56#define YARROW_KERNEL 57 58#ifdef YARROW_KERNEL 59/* 60 * Shrink this down to almost nothing to simplify kernel port; 61 * with additional hacking on prng.c, this could go away entirely 62 */ 63typedef char COMP_CTX; 64 65/* and define some type3s normally picked up from zlib */ 66typedef unsigned char Bytef; 67typedef unsigned uInt; 68 69#else 70 71#include "zlib.h" 72 73/* Top level compression context */ 74typedef struct{ 75 MMPTR buf; 76 uInt spaceused; 77} COMP_CTX; 78#endif /* YARROW_KERNEL */ 79 80typedef enum comp_error_status { 81 COMP_SUCCESS = 0, 82 COMP_ERR_NULL_POINTER, 83 COMP_ERR_LOW_MEMORY, 84 COMP_ERR_LIB 85} comp_error_status; 86 87/* Exported functions from compress.c */ 88comp_error_status comp_init(COMP_CTX* ctx); 89comp_error_status comp_add_data(COMP_CTX* ctx,Bytef* inp,uInt inplen); 90comp_error_status comp_end(COMP_CTX* ctx); 91comp_error_status comp_get_ratio(COMP_CTX* ctx,float* out); 92 93#endif 94