summaryrefslogtreecommitdiffstats
path: root/sbin/hastd/hast_compression.h
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2011-03-06 23:09:33 +0000
committerpjd <pjd@FreeBSD.org>2011-03-06 23:09:33 +0000
commit337b50efa895f3694fae9eeac35a3abd16181e75 (patch)
tree89777d06274aeb1f7f06b2647305a98d160268c9 /sbin/hastd/hast_compression.h
parent8697092f0ef00a8c8c15e4c26574e6fbfce848a2 (diff)
downloadFreeBSD-src-337b50efa895f3694fae9eeac35a3abd16181e75.zip
FreeBSD-src-337b50efa895f3694fae9eeac35a3abd16181e75.tar.gz
Allow to compress on-the-wire data using two algorithms:
- HOLE - it simply turns all-zero blocks into few bytes header; it is extremely fast, so it is turned on by default; it is mostly intended to speed up initial synchronization where we expect many zeros; - LZF - very fast algorithm by Marc Alexander Lehmann, which shows very decent compression ratio and has BSD license. MFC after: 2 weeks
Diffstat (limited to 'sbin/hastd/hast_compression.h')
-rw-r--r--sbin/hastd/hast_compression.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/sbin/hastd/hast_compression.h b/sbin/hastd/hast_compression.h
new file mode 100644
index 0000000..eabdfb2
--- /dev/null
+++ b/sbin/hastd/hast_compression.h
@@ -0,0 +1,44 @@
+/*-
+ * Copyright (c) 2011 Pawel Jakub Dawidek <pawel@dawidek.net>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _HAST_COMPRESSION_H_
+#define _HAST_COMPRESSION_H_
+
+#include <stdlib.h> /* size_t */
+
+#include <hast.h>
+#include <nv.h>
+
+const char *compression_name(int num);
+
+int compression_send(const struct hast_resource *res, struct nv *nv,
+ void **datap, size_t *sizep, bool *freedatap);
+int compression_recv(const struct hast_resource *res, struct nv *nv,
+ void **datap, size_t *sizep, bool *freedatap);
+
+#endif /* !_HAST_COMPRESSION_H_ */
OpenPOWER on IntegriCloud