Expand description
§lzma-sdk-sys
Raw FFI bindings for the LZMA encoder/decoder components of LZMA-SDK (7-zip).
This crate provides low-level access to LZMA compression functionality, with support for the new optimized assembly routines on supported platforms.
§Motivation
The implementation of LZMA in LZMA-SDK (7z) generally tends to be slightly better than the one in xz-utils, at equivalent settings.
// Meshes from Interesting NPCs SE - Loose-29194-4-3-2-157834454
Tool Size Ratio Flags
----------------------------------------------------
lzma-sdk 42.24 MiB 27.71% 7z a -txz -mx=9
xz 42.73 MiB 28.03% xz -k -e -z -9In all, compression speed, size and decompression speed.
However, for library usage, historically xz-utils has been much more common; be it a more familiar API, ease of integration, or any other possible reason.
In recent years however, Igor Pavlov started adding hand-crafted assembly routines for LZMA (de)compression in 7-Zip. These, notably increase decompression speed, by as much as 30%, on supported platforms.
However LZMA-SDK with these optimizations may be non-trivial to build. This Rust crate provides bindings for the LZMA Encoding/Decoding routines of LZMA-SDK, with the possibility of using the hand-optimized assembly routines.
§Usage
Add this to your Cargo.toml:
[dependencies]
lzma-sdk-sys = "0.1.0"Basic example of compression and decompression:
use lzma_sdk_sys::*;
use std::ptr;
fn main() -> Result<(), &'static str> {
// Sample data to compress
let input = b"Hello LZMA compression!";
// Create an allocator for memory management
let alloc = Allocator::default();
// Compression
let (compressed, props) = unsafe {
// Initialize compression properties
let mut props = [0u8; LZMA_PROPS_SIZE as usize];
let mut props_size = LZMA_PROPS_SIZE as SizeT;
// Prepare output buffer
let mut compressed = vec![0u8; input.len() * 2];
let mut compressed_size = compressed.len() as SizeT;
// Create and configure encoder
let enc = LzmaEnc_Create(alloc.as_ref() as *const _);
if enc.is_null() {
return Err("Failed to create encoder");
}
let mut enc_props = CLzmaEncProps::default();
LzmaEncProps_Init(&mut enc_props);
// You can customize compression settings here, for example:
// enc_props.level = 9; // Maximum compression
// enc_props.dictSize = 1 << 20; // 1MB dictionary
if LzmaEnc_SetProps(enc, &enc_props) != SZ_OK as i32 {
return Err("Failed to set encoder properties");
}
// Perform compression
let res = LzmaEncode(
compressed.as_mut_ptr() as *mut Byte,
&mut compressed_size,
input.as_ptr() as *const Byte,
input.len() as SizeT,
&enc_props,
props.as_mut_ptr() as *mut Byte,
&mut props_size,
0,
ptr::null_mut(),
alloc.as_ref(),
alloc.as_ref(),
);
LzmaEnc_Destroy(enc, alloc.as_ref(), alloc.as_ref());
if res != SZ_OK as i32 {
return Err("Compression failed");
}
// Trim compressed buffer to actual size
compressed.truncate(compressed_size as usize);
(compressed, props)
};
// Decompression
let decompressed = unsafe {
let mut decompressed = vec![0u8; input.len()];
let mut decompressed_size = decompressed.len() as SizeT;
let mut source_len = compressed.len() as SizeT;
let mut status = ELzmaStatus::LZMA_STATUS_NOT_SPECIFIED;
let res = LzmaDecode(
decompressed.as_mut_ptr() as *mut Byte,
&mut decompressed_size,
compressed.as_ptr() as *const Byte,
&mut source_len,
props.as_ptr() as *const Byte,
LZMA_PROPS_SIZE as u32,
ELzmaFinishMode::LZMA_FINISH_END,
&mut status,
alloc.as_ref(),
);
if res != SZ_OK as i32 {
return Err("Decompression failed");
}
decompressed.truncate(decompressed_size as usize);
decompressed
};
// Verify the round-trip
assert_eq!(decompressed, input);
println!("Successfully compressed and decompressed: {:?}",
std::str::from_utf8(&decompressed).unwrap());
Ok(())
}§Features
The crate provides several configuration options through Cargo features:
§Core Features
std(default): Currently a no-op.enable-asm(default): Use hand-optimized assembly routines for improved performance (enabled by default)generate-bindings: Generates the bindings as part of build. You shouldn’t usually need to run this. (Requires clang)prefer-clang: Usesclangas the compiler for the 7z library if available on $PATH
§Threading Options
- Default: Multi-threaded operation
st: Single-threaded mode
§Additional Options
debug-build-logs: Enable detailed build configuration loggingdebug-build-script: Enable debugging of the build script (via CodeLLDB on Linux/macOS)
§Future Features
These features of the crate are set up correctly for future LZMA-SDK bindings, but are not currently used by any of the code we create bindings for.
§Core Features
external-codecs(default): Support for external codecs in 7z archive format (enabled by default)
§Additional Options
large-pages: Enable large pages support for potential performance improvementslong-paths: Support for long file paths
§Performance
When using optimized assembly routines (enable-asm feature), significant
performance improvements are achieved.
Here are benchmark results using a Ryzen 5900X, compressing and
decompressing the COPYING file from the 7z distribution:
| Operation | Size (bytes) | Time | Throughput |
|---|---|---|---|
| lzma/decompress/26530 | 26530 (0.03 MB) | 268.29 µs | 94.304 MiB/s |
| lzma/decompress/26530 (x64 ASM Optimization) | 26530 (0.03 MB) | 196.77 µs | 128.58 MiB/s |
Tested on a Ryzen 5900X
§Platform Support
The optimized assembly routines have been tested on hardware:
- i686 Linux (Clang)
- x86_64 Linux (Clang)
- i686 Linux (GCC)
- x86_64 Linux (GCC)
- i686 Windows (MSVC)
- x86_64 Windows (MSVC)
- i686 Windows (GNU)
- x86_64 Windows (GNU)
And on emulator or hypervisor:
- aarch64 Linux (Clang)
- aarch64 Linux (GCC)
- aarch64 macOS
The following fail to compile with the optimized assembly routines and are disabled in build.rs:
- x86_64 macOS (hard to diagnose, as I don’t have the hardware.)
And a few more platforms are also tested in CI. These however have not been hand checked; all I know is ‘they compile, and pass a basic sanity check’.
§Building
Build should hopefully ‘just work’ with whatever toolchain you have installed. Bindings are pre-generated, and the assembly routines are pre-compiled on the relevant platforms.
If you have clang installed and available in your $PATH, the crate will attempt to build the
7z library code with it if the prefer-clang feature is enabled.
No additional dependencies are required. Normally 7z requires you to bring your own assembler, but this crate provides precompiled assembly code, to make it easy to use just like any other Rust crate.
§Current Status
This crate currently provides bindings sufficient for LZMA Encoding/Decoding functionality.
While most of the groundwork has been laid for supporting remaining 7z features, a small amount of extra work is needed in terms of writing sanity tests around functionality using optimized assembly routines.
So for now, this crate only outputs bindings for functionality I personally am using.
§Contributing
Contributions are welcome! Please feel free to submit a Pull Request. If you’re adding new APIs, please add some basic sanity tests first to verify they work.
If you’re updating the version of LZMA-SDK, please also update the precompiled assembly code.
§Credits & License
This crate is maintained by Sewer56 for usage in sewer56-archives-nx. Licensed under the MIT License.
LZMA-SDK was written by Igor Pavlov. The LZMA encoder/decoder exposed via their bindings are public domain (see file headers).
For any other future code exposed, please see 7zip’s own licensing terms. Chances are it’s LGPL-V3.
Structs§
- Allocator
- CCritical
Section - CEvent
- CLook
ToRead2 - CLzma2
Dec - CLzma2
Enc - CLzma2
EncProps - CLzma
Dec - CLzma
Enc - CLzma
EncProps - CLzma
Props - CMatch
Finder - CMatch
Finder Mt_ - CMtSync
- CSec
ToLook - CSec
ToRead - CSemaphore
- CThread
- CThread
Next Group - IByte
In_ - IByte
Out_ - ICompress
Progress_ - ILook
InStream_ - IMatch
Finder2 - ISeek
InStream_ - ISeq
InStream_ - ISeq
OutStream_ - ISzAlloc
- __
atomic_ wide_ counter__ bindgen_ ty_ 1 - __
cancel_ jmp_ buf_ tag - __
fsid_ t - __
jmp_ buf_ tag - __
locale_ data - __
locale_ struct - __
once_ flag - __
pthread_ cleanup_ frame - __
pthread_ cond_ s - __
pthread_ internal_ list - __
pthread_ internal_ slist - __
pthread_ mutex_ s - __
pthread_ rwlock_ arch_ t - __
pthread_ unwind_ buf_ t - __
sigset_ t - _pthread_
cleanup_ buffer - cpu_
set_ t - itimerspec
- max_
align_ t - sched_
param - sigevent
- timespec
- tm
Enums§
- ELzma2
Parse Status - ELzma
Finish Mode - ELzma
Status - ESzSeek
- _bindgen_
ty_ 1 - _bindgen_
ty_ 2 - _bindgen_
ty_ 3 - _bindgen_
ty_ 4 - _bindgen_
ty_ 5 - _bindgen_
ty_ 6 - _bindgen_
ty_ 7 - _bindgen_
ty_ 8 - _bindgen_
ty_ 9 - _bindgen_
ty_ 10
Constants§
- CHAR_
PATH_ SEPARATOR - CLOCK_
BOOTTIME - CLOCK_
BOOTTIME_ ALARM - CLOCK_
MONOTONIC - CLOCK_
MONOTONIC_ COARSE - CLOCK_
MONOTONIC_ RAW - CLOCK_
PROCESS_ CPUTIME_ ID - CLOCK_
REALTIME - CLOCK_
REALTIME_ ALARM - CLOCK_
REALTIME_ COARSE - CLOCK_
TAI - CLOCK_
THREAD_ CPUTIME_ ID - E2BIG
- EACCES
- EADDRINUSE
- EADDRNOTAVAIL
- EADV
- EAFNOSUPPORT
- EAGAIN
- EALREADY
- EBADE
- EBADF
- EBADFD
- EBADMSG
- EBADR
- EBADRQC
- EBADSLT
- EBFONT
- EBUSY
- ECANCELED
- ECHILD
- ECHRNG
- ECOMM
- ECONNABORTED
- ECONNREFUSED
- ECONNRESET
- EDEADLK
- EDEADLOCK
- EDESTADDRREQ
- EDOM
- EDOTDOT
- EDQUOT
- EEXIST
- EFAULT
- EFBIG
- EHOSTDOWN
- EHOSTUNREACH
- EHWPOISON
- EIDRM
- EILSEQ
- EINPROGRESS
- EINTR
- EINVAL
- EIO
- EISCONN
- EISDIR
- EISNAM
- EKEYEXPIRED
- EKEYREJECTED
- EKEYREVOKED
- EL2HLT
- EL2NSYNC
- EL3HLT
- EL3RST
- ELIBACC
- ELIBBAD
- ELIBEXEC
- ELIBMAX
- ELIBSCN
- ELNRNG
- ELOOP
- EMEDIUMTYPE
- EMFILE
- EMLINK
- EMSGSIZE
- EMULTIHOP
- ENAMETOOLONG
- ENAVAIL
- ENETDOWN
- ENETRESET
- ENETUNREACH
- ENFILE
- ENOANO
- ENOBUFS
- ENOCSI
- ENODATA
- ENODEV
- ENOENT
- ENOEXEC
- ENOKEY
- ENOLCK
- ENOLINK
- ENOMEDIUM
- ENOMEM
- ENOMSG
- ENONET
- ENOPKG
- ENOPROTOOPT
- ENOSPC
- ENOSR
- ENOSTR
- ENOSYS
- ENOTBLK
- ENOTCONN
- ENOTDIR
- ENOTEMPTY
- ENOTNAM
- ENOTRECOVERABLE
- ENOTSOCK
- ENOTSUP
- ENOTTY
- ENOTUNIQ
- ENXIO
- EOPNOTSUPP
- EOVERFLOW
- EOWNERDEAD
- EPERM
- EPFNOSUPPORT
- EPIPE
- EPROTO
- EPROTONOSUPPORT
- EPROTOTYPE
- ERANGE
- EREMCHG
- EREMOTE
- EREMOTEIO
- ERESTART
- ERFKILL
- EROFS
- ERROR_
ALREADY_ EXISTS - ERROR_
DISK_ FULL - ERROR_
FILE_ EXISTS - ERROR_
FILE_ NOT_ FOUND - ERROR_
INVALID_ FUNCTION - ERROR_
INVALID_ PARAMETER - ERROR_
PATH_ NOT_ FOUND - ESHUTDOWN
- ESOCKTNOSUPPORT
- ESPIPE
- ESRCH
- ESRMNT
- ESTALE
- ESTRPIPE
- ETIME
- ETIMEDOUT
- ETOOMANYREFS
- ETXTBSY
- EUCLEAN
- EUNATCH
- EUSERS
- EWOULDBLOCK
- EXDEV
- EXFULL
- FILE_
ATTRIBUTE_ ARCHIVE - FILE_
ATTRIBUTE_ COMPRESSED - FILE_
ATTRIBUTE_ DEVICE - FILE_
ATTRIBUTE_ DIRECTORY - FILE_
ATTRIBUTE_ ENCRYPTED - FILE_
ATTRIBUTE_ HIDDEN - FILE_
ATTRIBUTE_ NORMAL - FILE_
ATTRIBUTE_ NOT_ CONTENT_ INDEXED - FILE_
ATTRIBUTE_ OFFLINE - FILE_
ATTRIBUTE_ READONLY - FILE_
ATTRIBUTE_ REPARSE_ POINT - FILE_
ATTRIBUTE_ SPARSE_ FILE - FILE_
ATTRIBUTE_ SYSTEM - FILE_
ATTRIBUTE_ TEMPORARY - FILE_
ATTRIBUTE_ UNIX_ EXTENSION - False
- INT8_
MAX - INT8_
MIN - INT16_
MAX - INT16_
MIN - INT32_
MAX - INT32_
MIN - INTPTR_
MAX - INTPTR_
MIN - INT_
FAST8_ MAX - INT_
FAST8_ MIN - INT_
FAST16_ MAX - INT_
FAST16_ MIN - INT_
FAST32_ MAX - INT_
FAST32_ MIN - INT_
LEAS T8_ MAX - INT_
LEAS T8_ MIN - INT_
LEAS T16_ MAX - INT_
LEAS T16_ MIN - INT_
LEAS T32_ MAX - INT_
LEAS T32_ MIN - LZMA2_
ENC_ PROPS_ BLOCK_ SIZE_ AUTO - LZMA_
PROPS_ SIZE - LZMA_
REQUIRED_ INPUT_ MAX - MY_
CPU_ NAME - MY_
CPU_ SIZEOF_ POINTER - MY_
FACILITY_ ERRNO - MY_
FACILITY_ WIN32 - MY_
FACILITY_ WRes - PTHREAD_
BARRIER_ SERIAL_ THREAD - PTHREAD_
CANCEL_ ASYNCHRONOUS - PTHREAD_
CANCEL_ DEFERRED - PTHREAD_
CANCEL_ DISABLE - PTHREAD_
CANCEL_ ENABLE - PTHREAD_
CREATE_ DETACHED - PTHREAD_
CREATE_ JOINABLE - PTHREAD_
EXPLICIT_ SCHED - PTHREAD_
INHERIT_ SCHED - PTHREAD_
MUTEX_ ADAPTIVE_ NP - PTHREAD_
MUTEX_ DEFAULT - PTHREAD_
MUTEX_ ERRORCHECK - PTHREAD_
MUTEX_ ERRORCHECK_ NP - PTHREAD_
MUTEX_ NORMAL - PTHREAD_
MUTEX_ RECURSIVE - PTHREAD_
MUTEX_ RECURSIVE_ NP - PTHREAD_
MUTEX_ ROBUST - PTHREAD_
MUTEX_ ROBUST_ NP - PTHREAD_
MUTEX_ STALLED - PTHREAD_
MUTEX_ STALLED_ NP - PTHREAD_
MUTEX_ TIMED_ NP - PTHREAD_
ONCE_ INIT - PTHREAD_
PRIO_ INHERIT - PTHREAD_
PRIO_ NONE - PTHREAD_
PRIO_ PROTECT - PTHREAD_
PROCESS_ PRIVATE - PTHREAD_
PROCESS_ SHARED - PTHREAD_
RWLOCK_ DEFAULT_ NP - PTHREAD_
RWLOCK_ PREFER_ READER_ NP - PTHREAD_
RWLOCK_ PREFER_ WRITER_ NONRECURSIVE_ NP - PTHREAD_
RWLOCK_ PREFER_ WRITER_ NP - PTHREAD_
SCOPE_ PROCESS - PTHREAD_
SCOPE_ SYSTEM - PTHREAD_
STACK_ MIN - PTRDIFF_
MAX - PTRDIFF_
MIN - SCHED_
FIFO - SCHED_
OTHER - SCHED_
RR - SIG_
ATOMIC_ MAX - SIG_
ATOMIC_ MIN - SIZE_
MAX - STRING_
PATH_ SEPARATOR - SZ_
ERROR_ ARCHIVE - SZ_
ERROR_ CRC - SZ_
ERROR_ DATA - SZ_
ERROR_ FAIL - SZ_
ERROR_ INPUT_ EOF - SZ_
ERROR_ MEM - SZ_
ERROR_ NO_ ARCHIVE - SZ_
ERROR_ OUTPUT_ EOF - SZ_
ERROR_ PARAM - SZ_
ERROR_ PROGRESS - SZ_
ERROR_ READ - SZ_
ERROR_ THREAD - SZ_
ERROR_ UNSUPPORTED - SZ_
ERROR_ WRITE - SZ_OK
- TIMER_
ABSTIME - TIME_
UTC - True
- UINT8_
MAX - UINT16_
MAX - UINT32_
MAX - UINTPTR_
MAX - UINT_
FAST8_ MAX - UINT_
FAST16_ MAX - UINT_
FAST32_ MAX - UINT_
LEAS T8_ MAX - UINT_
LEAS T16_ MAX - UINT_
LEAS T32_ MAX - WCHAR_
PATH_ SEPARATOR - WINT_
MAX - WINT_
MIN - WSTRING_
PATH_ SEPARATOR - _ATFILE_
SOURCE - _BITS_
CPU_ SET_ H - _BITS_
ENDIANNESS_ H - _BITS_
ENDIAN_ H - _BITS_
ERRNO_ H - _BITS_
PTHREADTYPES_ ARCH_ H - _BITS_
PTHREADTYPES_ COMMON_ H - _BITS_
SCHED_ H - _BITS_
SETJMP_ H - _BITS_
STDINT_ INTN_ H - _BITS_
STDINT_ LEAST_ H - _BITS_
STDINT_ UINTN_ H - _BITS_
TIME64_ H - _BITS_
TIME_ H - _BITS_
TYPESIZES_ H - _BITS_
TYPES_ H - _BITS_
TYPES_ LOCALE_ T_ H - _BITS_
TYPES_ STRUCT_ SCHED_ PARAM - _BITS_
TYPES___ LOCALE_ T_ H - _BITS_
WCHAR_ H - _DEFAULT_
SOURCE - _ERRNO_
H - _FEATURES_
H - _POSIX_
C_ SOURCE - _POSIX_
SOURCE - _PTHREAD_
H - _SCHED_
H - _STDC_
PREDEF_ H - _STDINT_
H - _STRUCT_
TIMESPEC - _SYS_
CDEFS_ H - _THREAD_
MUTEX_ INTERNAL_ H - _THREAD_
SHARED_ TYPES_ H - _TIME_H
- __
BIG_ ENDIAN - __
BYTE_ ORDER - __
CPU_ SETSIZE - __
FD_ SETSIZE - __
FLOAT_ WORD_ ORDER - __
GLIBC_ MINOR__ - __
GLIBC_ USE_ C23_ STRTOL - __
GLIBC_ USE_ DEPRECATED_ GETS - __
GLIBC_ USE_ DEPRECATED_ SCANF - __
GLIBC_ USE_ IEC_ 60559_ BFP_ EXT - __
GLIBC_ USE_ IEC_ 60559_ BFP_ EXT_ C23 - __
GLIBC_ USE_ IEC_ 60559_ EXT - __
GLIBC_ USE_ IEC_ 60559_ FUNCS_ EXT - __
GLIBC_ USE_ IEC_ 60559_ FUNCS_ EXT_ C23 - __
GLIBC_ USE_ IEC_ 60559_ TYPES_ EXT - __
GLIBC_ USE_ ISOC23 - __
GLIBC_ USE_ LIB_ EXT2 - __
GLIBC__ - __
GNU_ LIBRARY__ - __
HAVE_ GENERIC_ SELECTION - __
INO_ T_ MATCHES_ INO64_ T - __
KERNEL_ OLD_ TIMEVAL_ MATCHES_ TIMEVA L64 - __
LDOUBLE_ REDIRECTS_ TO_ FLOA T128_ ABI - __
LITTLE_ ENDIAN - __
OFF_ T_ MATCHES_ OFF64_ T - __
PDP_ ENDIAN - __
PTHREAD_ MUTEX_ HAVE_ PREV - __
RLIM_ T_ MATCHES_ RLIM64_ T - __
SIZEOF_ PTHREAD_ ATTR_ T - __
SIZEOF_ PTHREAD_ BARRIERATTR_ T - __
SIZEOF_ PTHREAD_ BARRIER_ T - __
SIZEOF_ PTHREAD_ CONDATTR_ T - __
SIZEOF_ PTHREAD_ COND_ T - __
SIZEOF_ PTHREAD_ MUTEXATTR_ T - __
SIZEOF_ PTHREAD_ MUTEX_ T - __
SIZEOF_ PTHREAD_ RWLOCKATTR_ T - __
SIZEOF_ PTHREAD_ RWLOCK_ T - __
STATFS_ MATCHES_ STATF S64 - __
STDC_ IEC_ 559_ COMPLEX__ - __
STDC_ IEC_ 559__ - __
STDC_ IEC_ 60559_ BFP__ - __
STDC_ IEC_ 60559_ COMPLEX__ - __
STDC_ ISO_ 10646__ - __
SYSCALL_ WORDSIZE - __
TIMESIZE - __
USE_ ATFILE - __
USE_ FILE_ OFFSE T64 - __
USE_ FORTIFY_ LEVEL - __
USE_ ISOC11 - __
USE_ ISOC95 - __
USE_ ISOC99 - __
USE_ LARGEFILE - __
USE_ MISC - __
USE_ POSIX - __
USE_ POSI X2 - __
USE_ POSI X199309 - __
USE_ POSI X199506 - __
USE_ POSIX_ IMPLICITLY - __
USE_ TIME_ BITS64 - __
USE_ XOPE N2K - __
USE_ XOPE N2K8 - __
WORDSIZE - __
WORDSIZE_ TIME64_ COMPA T32 - __
clock_ t_ defined - __
clockid_ t_ defined - __
glibc_ c99_ flexarr_ available - __
have_ pthread_ attr_ t - __
itimerspec_ defined - __
jmp_ buf_ tag_ defined - __
struct_ tm_ defined - __
time_ t_ defined - __
timer_ t_ defined - kEmpty
Hash Value - kMtCache
Line Dummy - k_
Prop Var_ Time Prec_ 0 - k_
Prop Var_ Time Prec_ 1ns - k_
Prop Var_ Time Prec_ 100ns - k_
Prop Var_ Time Prec_ Base - k_
Prop Var_ Time Prec_ DOS - k_
Prop Var_ Time Prec_ High Prec - k_
Prop Var_ Time Prec_ Unix
Statics§
Functions§
- Auto
Reset ⚠Event_ Create - Auto
Reset ⚠Event_ Create NotSignaled - Auto
Reset ⚠Event_ OptCreate_ And_ Reset - Bt3Zip_
Match ⚠Finder_ GetMatches - Bt3Zip_
Match ⚠Finder_ Skip - CPU_
IsSupported_ ⚠AES - CPU_
IsSupported_ ⚠AVX - CPU_
IsSupported_ ⚠AVX2 - CPU_
IsSupported_ ⚠AVX512F_ AVX512VL - CPU_
IsSupported_ ⚠CMOV - CPU_
IsSupported_ ⚠PageGB - CPU_
IsSupported_ ⚠SHA - CPU_
IsSupported_ ⚠SHA512 - CPU_
IsSupported_ ⚠SSE - CPU_
IsSupported_ ⚠SSE2 - CPU_
IsSupported_ ⚠SSE41 - CPU_
IsSupported_ ⚠SSSE3 - CPU_
IsSupported_ ⚠VAES_ AVX2 - Critical
Section_ ⚠Delete - Critical
Section_ ⚠Enter - Critical
Section_ ⚠Init - Critical
Section_ ⚠Leave - Event_
Close ⚠ - Event_
Reset ⚠ - Event_
Set ⚠ - Event_
Wait ⚠ - GetMatches
Spec1 ⚠ - GetMatches
SpecN_ ⚠2 - Hc3Zip_
Match ⚠Finder_ GetMatches - Hc3Zip_
Match ⚠Finder_ Skip - Interlocked
Decrement ⚠ - Interlocked
Increment ⚠ - Look
InStream_ ⚠Look Read - Look
InStream_ ⚠Read - Look
InStream_ ⚠Read2 - Look
InStream_ ⚠Seek To - Look
ToRead2_ ⚠CreateV Table - LzFind
Prepare ⚠ - Lzma2
Dec_ ⚠Allocate - Lzma2
Dec_ ⚠Allocate Probs - Lzma2
Dec_ ⚠Decode ToBuf - Lzma2
Dec_ ⚠Decode ToDic - Lzma2
Dec_ ⚠Init - Lzma2
Dec_ ⚠Parse - Lzma2
Decode ⚠ - Lzma2
EncProps_ ⚠Init - Lzma2
EncProps_ ⚠Normalize - Lzma2
Enc_ ⚠Create - Lzma2
Enc_ ⚠Destroy - Lzma2
Enc_ ⚠Encode2 - Lzma2
Enc_ ⚠SetData Size - Lzma2
Enc_ ⚠SetProps - Lzma2
Enc_ ⚠Write Properties - Lzma
Dec_ ⚠Allocate - Lzma
Dec_ ⚠Allocate Probs - Lzma
Dec_ ⚠Decode ToBuf - Lzma
Dec_ ⚠Decode ToDic - Lzma
Dec_ ⚠Free - Lzma
Dec_ ⚠Free Probs - Lzma
Dec_ ⚠Init - Lzma
Decode ⚠ - Lzma
EncProps_ ⚠GetDict Size - Lzma
EncProps_ ⚠Init - Lzma
EncProps_ ⚠Normalize - Lzma
Enc_ ⚠Create - Lzma
Enc_ ⚠Destroy - Lzma
Enc_ ⚠Encode - Lzma
Enc_ ⚠IsWrite EndMark - Lzma
Enc_ ⚠MemEncode - Lzma
Enc_ ⚠SetData Size - Lzma
Enc_ ⚠SetProps - Lzma
Enc_ ⚠Write Properties - Lzma
Encode ⚠ - Lzma
Props_ ⚠Decode - Manual
Reset ⚠Event_ Create - Manual
Reset ⚠Event_ Create NotSignaled - Match
Finder ⚠Mt_ Construct - Match
Finder ⚠Mt_ Create - Match
Finder ⚠Mt_ CreateV Table - Match
Finder ⚠Mt_ Destruct - Match
Finder ⚠Mt_ Init Mt - Match
Finder ⚠Mt_ Release Stream - Match
Finder_ ⚠Construct - Match
Finder_ ⚠Create - Match
Finder_ ⚠CreateV Table - Match
Finder_ ⚠Free - Match
Finder_ ⚠Init - Match
Finder_ ⚠Init_ 4 - Match
Finder_ ⚠Init_ High Hash - Match
Finder_ ⚠Init_ LowHash - Match
Finder_ ⚠Move Block - Match
Finder_ ⚠Need Move - Match
Finder_ ⚠Normalize3 - Match
Finder_ ⚠Read IfRequired - SecTo
Look_ ⚠CreateV Table - SecTo
Read_ ⚠CreateV Table - Semaphore_
Close ⚠ - Semaphore_
Create ⚠ - Semaphore_
OptCreate ⚠Init - Semaphore_
ReleaseN ⚠ - Semaphore_
Wait ⚠ - SeqIn
Stream_ ⚠Read Byte - SeqIn
Stream_ ⚠Read Max - Thread
Next ⚠Group_ GetNext - Thread
Next ⚠Group_ Init - Thread_
Close ⚠ - Thread_
Create ⚠ - Thread_
Create_ ⚠With_ Affinity - Thread_
Create_ ⚠With_ CpuSet - Thread_
Wait_ ⚠Close - __
errno_ ⚠location - __
pthread_ ⚠register_ cancel - __
pthread_ ⚠unregister_ cancel - __
pthread_ ⚠unwind_ next - __
sched_ ⚠cpualloc - __
sched_ ⚠cpucount - __
sched_ ⚠cpufree - __
sigsetjmp ⚠ - asctime⚠
- asctime_
r ⚠ - clock⚠
- clock_
getcpuclockid ⚠ - clock_
getres ⚠ - clock_
gettime ⚠ - clock_
nanosleep ⚠ - clock_
settime ⚠ - ctime⚠
- ctime_r⚠
- difftime⚠
- dysize⚠
- gmtime⚠
- gmtime_
r ⚠ - localtime⚠
- localtime_
r ⚠ - mktime⚠
- nanosleep⚠
- pthread_
atfork ⚠ - pthread_
attr_ ⚠destroy - pthread_
attr_ ⚠getdetachstate - pthread_
attr_ ⚠getguardsize - pthread_
attr_ ⚠getinheritsched - pthread_
attr_ ⚠getschedparam - pthread_
attr_ ⚠getschedpolicy - pthread_
attr_ ⚠getscope - pthread_
attr_ ⚠getstack - pthread_
attr_ ⚠getstackaddr - pthread_
attr_ ⚠getstacksize - pthread_
attr_ ⚠init - pthread_
attr_ ⚠setdetachstate - pthread_
attr_ ⚠setguardsize - pthread_
attr_ ⚠setinheritsched - pthread_
attr_ ⚠setschedparam - pthread_
attr_ ⚠setschedpolicy - pthread_
attr_ ⚠setscope - pthread_
attr_ ⚠setstack - pthread_
attr_ ⚠setstackaddr - pthread_
attr_ ⚠setstacksize - pthread_
barrier_ ⚠destroy - pthread_
barrier_ ⚠init - pthread_
barrier_ ⚠wait - pthread_
barrierattr_ ⚠destroy - pthread_
barrierattr_ ⚠getpshared - pthread_
barrierattr_ ⚠init - pthread_
barrierattr_ ⚠setpshared - pthread_
cancel ⚠ - pthread_
cond_ ⚠broadcast - pthread_
cond_ ⚠destroy - pthread_
cond_ ⚠init - pthread_
cond_ ⚠signal - pthread_
cond_ ⚠timedwait - pthread_
cond_ ⚠wait - pthread_
condattr_ ⚠destroy - pthread_
condattr_ ⚠getclock - pthread_
condattr_ ⚠getpshared - pthread_
condattr_ ⚠init - pthread_
condattr_ ⚠setclock - pthread_
condattr_ ⚠setpshared - pthread_
create ⚠ - pthread_
detach ⚠ - pthread_
equal ⚠ - pthread_
exit ⚠ - pthread_
getcpuclockid ⚠ - pthread_
getschedparam ⚠ - pthread_
getspecific ⚠ - pthread_
join ⚠ - pthread_
key_ ⚠create - pthread_
key_ ⚠delete - pthread_
mutex_ ⚠consistent - pthread_
mutex_ ⚠destroy - pthread_
mutex_ ⚠getprioceiling - pthread_
mutex_ ⚠init - pthread_
mutex_ ⚠lock - pthread_
mutex_ ⚠setprioceiling - pthread_
mutex_ ⚠timedlock - pthread_
mutex_ ⚠trylock - pthread_
mutex_ ⚠unlock - pthread_
mutexattr_ ⚠destroy - pthread_
mutexattr_ ⚠getprioceiling - pthread_
mutexattr_ ⚠getprotocol - pthread_
mutexattr_ ⚠getpshared - pthread_
mutexattr_ ⚠getrobust - pthread_
mutexattr_ ⚠gettype - pthread_
mutexattr_ ⚠init - pthread_
mutexattr_ ⚠setprioceiling - pthread_
mutexattr_ ⚠setprotocol - pthread_
mutexattr_ ⚠setpshared - pthread_
mutexattr_ ⚠setrobust - pthread_
mutexattr_ ⚠settype - pthread_
once ⚠ - pthread_
rwlock_ ⚠destroy - pthread_
rwlock_ ⚠init - pthread_
rwlock_ ⚠rdlock - pthread_
rwlock_ ⚠timedrdlock - pthread_
rwlock_ ⚠timedwrlock - pthread_
rwlock_ ⚠tryrdlock - pthread_
rwlock_ ⚠trywrlock - pthread_
rwlock_ ⚠unlock - pthread_
rwlock_ ⚠wrlock - pthread_
rwlockattr_ ⚠destroy - pthread_
rwlockattr_ ⚠getkind_ np - pthread_
rwlockattr_ ⚠getpshared - pthread_
rwlockattr_ ⚠init - pthread_
rwlockattr_ ⚠setkind_ np - pthread_
rwlockattr_ ⚠setpshared - pthread_
self ⚠ - pthread_
setcancelstate ⚠ - pthread_
setcanceltype ⚠ - pthread_
setschedparam ⚠ - pthread_
setschedprio ⚠ - pthread_
setspecific ⚠ - pthread_
spin_ ⚠destroy - pthread_
spin_ ⚠init - pthread_
spin_ ⚠lock - pthread_
spin_ ⚠trylock - pthread_
spin_ ⚠unlock - pthread_
testcancel ⚠ - sched_
get_ ⚠priority_ max - sched_
get_ ⚠priority_ min - sched_
getparam ⚠ - sched_
getscheduler ⚠ - sched_
rr_ ⚠get_ interval - sched_
setparam ⚠ - sched_
setscheduler ⚠ - sched_
yield ⚠ - strftime⚠
- strftime_
l ⚠ - time⚠
- timegm⚠
- timelocal⚠
- timer_
create ⚠ - timer_
delete ⚠ - timer_
getoverrun ⚠ - timer_
gettime ⚠ - timer_
settime ⚠ - timespec_
get ⚠ - tzset⚠
- z7_
x86_ ⚠cpuid - z7_
x86_ ⚠cpuid_ GetMax Func
Type Aliases§
- BoolInt
- Byte
- CAffinity
Mask - CAuto
Reset Event - CCpuSet
- CLzRef
- CLzma2
EncHandle - CLzma
EncHandle - CLzma
Prob - CManual
Reset Event - CMatch
Finder Mt - DWORD
- DWORD_
PTR - IByteIn
- IByte
InPtr - IByte
Out - IByte
OutPtr - ICompress
Progress - ICompress
Progress Ptr - ILook
InStream - ILook
InStream Ptr - INT
- INT32
- INT_PTR
- ISeek
InStream - ISeek
InStream Ptr - ISeq
InStream - ISeq
InStream Ptr - ISeq
OutStream - ISeq
OutStream Ptr - ISzAlloc
Ptr - Int16
- Int32
- Int64
- LONG
- LONG_
PTR - LPVOID
- Mf_
GetHeads - Mf_
GetMatches_ Func - Mf_
GetNum Available Bytes_ Func - Mf_
GetPointer ToCurrent Pos_ Func - Mf_
Init_ Func - Mf_
Mix_ Matches - Mf_
Skip_ Func - SIZE_T
- SRes
- SizeT
- THREAD_
FUNC_ RET_ TYPE - THREAD_
FUNC_ TYPE - UINT
- UINT32
- UINT_
PTR - UInt16
- UInt32
- UInt64
- ULONG
- WRes
- Z7_
void_ Function - __
blkcnt64_ t - __
blkcnt_ t - __
blksize_ t - __
caddr_ t - __
clock_ t - __
clockid_ t - __
cpu_ mask - __
daddr_ t - __dev_t
- __
fsblkcnt64_ t - __
fsblkcnt_ t - __
fsfilcnt64_ t - __
fsfilcnt_ t - __
fsword_ t - __gid_t
- __id_t
- __
ino64_ t - __ino_t
- __
int8_ t - __
int16_ t - __
int32_ t - __
int64_ t - __
int_ least8_ t - __
int_ least16_ t - __
int_ least32_ t - __
int_ least64_ t - __
intmax_ t - __
intptr_ t - __
jmp_ buf - __key_t
- __
locale_ t - __
loff_ t - __
mode_ t - __
nlink_ t - __
off64_ t - __off_t
- __pid_t
- __
pthread_ list_ t - __
pthread_ slist_ t - __
quad_ t - __
rlim64_ t - __
rlim_ t - __
sig_ atomic_ t - __
socklen_ t - __
ssize_ t - __
suseconds64_ t - __
suseconds_ t - __
syscall_ slong_ t - __
syscall_ ulong_ t - __
thrd_ t - __
time_ t - __
timer_ t - __tss_t
- __
u_ char - __u_int
- __
u_ long - __
u_ quad_ t - __
u_ short - __uid_t
- __
uint8_ t - __
uint16_ t - __
uint32_ t - __
uint64_ t - __
uint_ least8_ t - __
uint_ least16_ t - __
uint_ least32_ t - __
uint_ least64_ t - __
uintmax_ t - __
useconds_ t - clock_t
- clockid_
t - int_
fast8_ t - int_
fast16_ t - int_
fast32_ t - int_
fast64_ t - int_
least8_ t - int_
least16_ t - int_
least32_ t - int_
least64_ t - intmax_
t - locale_
t - pid_t
- pthread_
key_ t - pthread_
once_ t - pthread_
spinlock_ t - pthread_
t - time_t
- timer_t
- uint_
fast8_ t - uint_
fast16_ t - uint_
fast32_ t - uint_
fast64_ t - uint_
least8_ t - uint_
least16_ t - uint_
least32_ t - uint_
least64_ t - uintmax_
t - wchar_t