]> git.saurik.com Git - apple/xnu.git/blob - bsd/dev/random/YarrowCoreLib/src/comp.h
356557005d5db95b81ae9f9ccff1e5aafba27df5
[apple/xnu.git] / bsd / dev / random / YarrowCoreLib / src / comp.h
1 /*
2 * Copyright (c) 1999, 2000-2001 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_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. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24 /*
25 File: comp.h
26
27 Contains: Glue between core prng code to the Zlib library.
28
29 Written by: Counterpane, Inc.
30
31 Copyright: (c) 2000 by Apple Computer, Inc., all rights reserved.
32
33 Change History (most recent first):
34
35 02/10/99 dpm Created, based on Counterpane source.
36
37 */
38 /* comp.h
39
40 Header for the compression routines added to the Counterpane PRNG.
41 */
42
43 #ifndef __YARROW_COMP_H__
44 #define __YARROW_COMP_H__
45
46 #include "smf.h"
47
48 /*
49 * Kernel version does NULL compression....
50 */
51 #define YARROW_KERNEL
52
53 #ifdef YARROW_KERNEL
54 /*
55 * Shrink this down to almost nothing to simplify kernel port;
56 * with additional hacking on prng.c, this could go away entirely
57 */
58 typedef char COMP_CTX;
59
60 /* and define some type3s normally picked up from zlib */
61 typedef unsigned char Bytef;
62 typedef unsigned uInt;
63
64 #else
65
66 #include "zlib.h"
67
68 /* Top level compression context */
69 typedef struct{
70 MMPTR buf;
71 uInt spaceused;
72 } COMP_CTX;
73 #endif /* YARROW_KERNEL */
74
75 typedef enum comp_error_status {
76 COMP_SUCCESS = 0,
77 COMP_ERR_NULL_POINTER,
78 COMP_ERR_LOW_MEMORY,
79 COMP_ERR_LIB
80 } comp_error_status;
81
82 /* Exported functions from compress.c */
83 comp_error_status comp_init(COMP_CTX* ctx);
84 comp_error_status comp_add_data(COMP_CTX* ctx,Bytef* inp,uInt inplen);
85 comp_error_status comp_end(COMP_CTX* ctx);
86 comp_error_status comp_get_ratio(COMP_CTX* ctx,float* out);
87
88 #endif