lzo_sys/
lib.rs

1#![no_std]
2
3//! Raw bindings to the [LZO compression library](http://www.oberhumer.com/opensource/lzo/).
4//!
5//! Building requires `cmake`.
6
7pub mod lzo1;
8pub mod lzo1a;
9pub mod lzo1b;
10pub mod lzo1c;
11pub mod lzo1f;
12pub mod lzo1x;
13pub mod lzo1y;
14pub mod lzo1z;
15pub mod lzo2a;
16pub mod lzo_asm;
17pub mod lzoconf;
18
19macro_rules! lzo_func_decl {
20    ($name:ident) => {
21        pub fn $name(
22            src: *const core::ffi::c_uchar,
23            src_len: usize,
24            dst: *mut core::ffi::c_uchar,
25            dst_len: *mut usize,
26            wrkmem: *mut core::ffi::c_void,
27        ) -> core::ffi::c_int;
28    };
29}
30
31use lzo_func_decl;
32
33macro_rules! lzo_compress_level_func_decl {
34    ($name:ident) => {
35        pub fn $name(
36            src: *const core::ffi::c_uchar,
37            src_len: usize,
38            dst: *mut core::ffi::c_uchar,
39            dst_len: *mut usize,
40            wrkmem: *mut core::ffi::c_void,
41            compression_level: core::ffi::c_int,
42        ) -> core::ffi::c_int;
43    };
44}
45
46use lzo_compress_level_func_decl;
47
48macro_rules! lzo_999_func_decls {
49    ($unsafe_name:ident, $level_name:ident, $safe_name:ident) => {
50        pub fn $unsafe_name(
51            src: *const core::ffi::c_uchar,
52            src_len: usize,
53            dst: *mut core::ffi::c_uchar,
54            dst_len: *mut usize,
55            wrkmem: *mut core::ffi::c_void,
56            dict: *const core::ffi::c_uchar,
57            dict_len: usize,
58        ) -> core::ffi::c_int;
59
60        pub fn $level_name(
61            src: *const core::ffi::c_uchar,
62            src_len: usize,
63            dst: *mut core::ffi::c_uchar,
64            dst_len: *mut usize,
65            wrkmem: *mut core::ffi::c_void,
66            dict: *const core::ffi::c_uchar,
67            dict_len: usize,
68            cb: *mut crate::lzoconf::lzo_callback_t,
69            compression_level: core::ffi::c_int,
70        ) -> core::ffi::c_int;
71
72        pub fn $safe_name(
73            src: *const core::ffi::c_uchar,
74            src_len: usize,
75            dst: *mut core::ffi::c_uchar,
76            dst_len: *mut usize,
77            wrkmem: *mut core::ffi::c_void,
78            dict: *const core::ffi::c_uchar,
79            dict_len: usize,
80        ) -> core::ffi::c_int;
81    };
82}
83
84use lzo_999_func_decls;
85
86macro_rules! lzo_optimize_func_decl {
87    ($name:ident) => {
88        pub fn $name(
89            src: *mut core::ffi::c_uchar,
90            src_len: usize,
91            dst: *mut core::ffi::c_uchar,
92            dst_len: *mut usize,
93            wrkmem: *mut core::ffi::c_void,
94        ) -> core::ffi::c_int;
95    };
96}
97
98use lzo_optimize_func_decl;