Branch/Call/Jump conversion filters.
More...
|
#define | LZMA_FILTER_X86 LZMA_VLI_C(0x04) |
| Filter for x86 binaries.
|
|
#define | LZMA_FILTER_POWERPC LZMA_VLI_C(0x05) |
| Filter for Big endian PowerPC binaries.
|
|
#define | LZMA_FILTER_IA64 LZMA_VLI_C(0x06) |
| Filter for IA-64 (Itanium) binaries.
|
|
#define | LZMA_FILTER_ARM LZMA_VLI_C(0x07) |
| Filter for ARM binaries.
|
|
#define | LZMA_FILTER_ARMTHUMB LZMA_VLI_C(0x08) |
| Filter for ARM-Thumb binaries.
|
|
#define | LZMA_FILTER_SPARC LZMA_VLI_C(0x09) |
| Filter for SPARC binaries.
|
|
#define | LZMA_FILTER_ARM64 LZMA_VLI_C(0x0A) |
| Filter for ARM64 binaries.
|
|
#define | LZMA_FILTER_RISCV LZMA_VLI_C(0x0B) |
| Filter for RISC-V binaries.
|
|
|
size_t | lzma_bcj_arm64_encode (uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow |
| Raw ARM64 BCJ encoder.
|
|
size_t | lzma_bcj_arm64_decode (uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow |
| Raw ARM64 BCJ decoder.
|
|
size_t | lzma_bcj_riscv_encode (uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow |
| Raw RISC-V BCJ encoder.
|
|
size_t | lzma_bcj_riscv_decode (uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow |
| Raw RISC-V BCJ decoder.
|
|
size_t | lzma_bcj_x86_encode (uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow |
| Raw x86 BCJ encoder.
|
|
size_t | lzma_bcj_x86_decode (uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow |
| Raw x86 BCJ decoder.
|
|
Branch/Call/Jump conversion filters.
- Note
- Never include this file directly. Use <lzma.h> instead.
◆ lzma_bcj_arm64_encode()
size_t lzma_bcj_arm64_encode |
( |
uint32_t | start_offset, |
|
|
uint8_t * | buf, |
|
|
size_t | size ) |
|
extern |
Raw ARM64 BCJ encoder.
This is for special use cases only.
- Parameters
-
start_offset | The lowest 32 bits of the offset in the executable being filtered. For the ARM64 filter, this must be a multiple of four. For the very best results, this should also be in sync with 4096-byte page boundaries in the executable due to how ARM64's ADRP instruction works. |
buf | Buffer to be filtered in place |
size | Size of the buffer |
- Returns
- Number of bytes that were processed in
buf
. This is at most size
. With the ARM64 filter, the return value is always a multiple of 4, and at most 3 bytes are left unfiltered.
- Since
- 5.7.1alpha
◆ lzma_bcj_arm64_decode()
size_t lzma_bcj_arm64_decode |
( |
uint32_t | start_offset, |
|
|
uint8_t * | buf, |
|
|
size_t | size ) |
|
extern |
◆ lzma_bcj_riscv_encode()
size_t lzma_bcj_riscv_encode |
( |
uint32_t | start_offset, |
|
|
uint8_t * | buf, |
|
|
size_t | size ) |
|
extern |
Raw RISC-V BCJ encoder.
This is for special use cases only.
- Parameters
-
start_offset | The lowest 32 bits of the offset in the executable being filtered. For the RISC-V filter, this must be a multiple of 2. |
buf | Buffer to be filtered in place |
size | Size of the buffer |
- Returns
- Number of bytes that were processed in
buf
. This is at most size
. With the RISC-V filter, the return value is always a multiple of 2, and at most 7 bytes are left unfiltered.
- Since
- 5.7.1alpha
◆ lzma_bcj_riscv_decode()
size_t lzma_bcj_riscv_decode |
( |
uint32_t | start_offset, |
|
|
uint8_t * | buf, |
|
|
size_t | size ) |
|
extern |
◆ lzma_bcj_x86_encode()
size_t lzma_bcj_x86_encode |
( |
uint32_t | start_offset, |
|
|
uint8_t * | buf, |
|
|
size_t | size ) |
|
extern |
Raw x86 BCJ encoder.
This is for special use cases only.
- Parameters
-
start_offset | The lowest 32 bits of the offset in the executable being filtered. For the x86 filter, all values are valid. |
buf | Buffer to be filtered in place |
size | Size of the buffer |
- Returns
- Number of bytes that were processed in
buf
. This is at most size
. For the x86 filter, the return value is always a multiple of 1, and at most 4 bytes are left unfiltered.
- Since
- 5.7.1alpha
◆ lzma_bcj_x86_decode()
size_t lzma_bcj_x86_decode |
( |
uint32_t | start_offset, |
|
|
uint8_t * | buf, |
|
|
size_t | size ) |
|
extern |