xref: /freebsd-src/sys/opencrypto/deflate.h (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
1091d81d1SSam Leffler /* $OpenBSD: deflate.h,v 1.3 2002/03/14 01:26:51 millert Exp $ */
2091d81d1SSam Leffler 
360727d8bSWarner Losh /*-
4091d81d1SSam Leffler  * Copyright (c) 2001 Jean-Jacques Bernard-Gundol (jj@wabbitt.org)
5091d81d1SSam Leffler  *
6091d81d1SSam Leffler  * Redistribution and use in source and binary forms, with or without
7091d81d1SSam Leffler  * modification, are permitted provided that the following conditions
8091d81d1SSam Leffler  * are met:
9091d81d1SSam Leffler  *
10091d81d1SSam Leffler  * 1. Redistributions of source code must retain the above copyright
11091d81d1SSam Leffler  *   notice, this list of conditions and the following disclaimer.
12091d81d1SSam Leffler  * 2. Redistributions in binary form must reproduce the above copyright
13091d81d1SSam Leffler  *   notice, this list of conditions and the following disclaimer in the
14091d81d1SSam Leffler  *   documentation and/or other materials provided with the distribution.
15091d81d1SSam Leffler  * 3. The name of the author may not be used to endorse or promote products
16091d81d1SSam Leffler  *   derived from this software without specific prior written permission.
17091d81d1SSam Leffler  *
18091d81d1SSam Leffler  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19091d81d1SSam Leffler  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20091d81d1SSam Leffler  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21091d81d1SSam Leffler  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22091d81d1SSam Leffler  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23091d81d1SSam Leffler  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24091d81d1SSam Leffler  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25091d81d1SSam Leffler  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26091d81d1SSam Leffler  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27091d81d1SSam Leffler  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28091d81d1SSam Leffler  */
29091d81d1SSam Leffler 
30091d81d1SSam Leffler /*
31091d81d1SSam Leffler  * Definition for the wrapper around the deflate compression
32091d81d1SSam Leffler  * algorithm used in /sys/crypto
33091d81d1SSam Leffler  */
34091d81d1SSam Leffler 
35091d81d1SSam Leffler #ifndef _CRYPTO_DEFLATE_H_
36091d81d1SSam Leffler #define _CRYPTO_DEFLATE_H_
37091d81d1SSam Leffler 
38091d81d1SSam Leffler #define Z_METHOD	8
39091d81d1SSam Leffler #define Z_MEMLEVEL	8
40091d81d1SSam Leffler #define MINCOMP		2	/* won't be used, but must be defined */
41091d81d1SSam Leffler #define ZBUF		10
42091d81d1SSam Leffler 
43*d3d79e96SJohn Baldwin uint32_t deflate_global(uint8_t *, uint32_t, int, uint8_t **);
44091d81d1SSam Leffler 
456f443becSBjoern A. Zeeb /*
466f443becSBjoern A. Zeeb  * We are going to use a combined allocation to hold the metadata
476f443becSBjoern A. Zeeb  * from the struct immediately followed by the real application data.
486f443becSBjoern A. Zeeb  */
49091d81d1SSam Leffler struct deflate_buf {
506f443becSBjoern A. Zeeb 	struct deflate_buf *next;
516f443becSBjoern A. Zeeb 	uint32_t size;
526f443becSBjoern A. Zeeb 	uint8_t data[];
53091d81d1SSam Leffler };
54091d81d1SSam Leffler 
55091d81d1SSam Leffler #endif /* _CRYPTO_DEFLATE_H_ */
56