28 bool last_one =
false;
32 if (
cj &&
cj->not_started == 0) {
94 ERR(
"zlib_decompress returned %08lx\n", cj2->
Status);
101 ERR(
"lzo_decompress returned %08lx\n", cj2->
Status);
108 ERR(
"zstd_decompress returned %08lx\n", cj2->
Status);
115 ERR(
"zlib_compress returned %08lx\n", cj2->
Status);
122 ERR(
"lzo_compress returned %08lx\n", cj2->
Status);
129 ERR(
"zstd_compress returned %08lx\n", cj2->
Status);
149 switch (
Vcb->superblock.csum_type) {
184 void*
out,
unsigned int outlen,
unsigned int off,
calc_job**
pcj) {
190 ERR(
"out of memory\n");
199 cj->left =
cj->not_started = 1;
244 ERR(
"out of memory\n");
252 cj->left =
cj->not_started = 1;
#define InterlockedDecrement
void blake2b(void *out, size_t outlen, const void *in, size_t inlen)
NTSTATUS zlib_compress(uint8_t *inbuf, uint32_t inlen, uint8_t *outbuf, uint32_t outlen, unsigned int level, unsigned int *space_left)
NTSTATUS zlib_decompress(uint8_t *inbuf, uint32_t inlen, uint8_t *outbuf, uint32_t outlen)
NTSTATUS zstd_decompress(uint8_t *inbuf, uint32_t inlen, uint8_t *outbuf, uint32_t outlen)
NTSTATUS lzo_decompress(uint8_t *inbuf, uint32_t inlen, uint8_t *outbuf, uint32_t outlen, uint32_t inpageoff)
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY _In_ uint8_t compression
@ calc_thread_decomp_zlib
@ calc_thread_decomp_zstd
void calc_sha256(uint8_t *hash, const void *input, size_t len)
NTSTATUS lzo_compress(uint8_t *inbuf, uint32_t inlen, uint8_t *outbuf, uint32_t outlen, unsigned int *space_left)
NTSTATUS zstd_compress(uint8_t *inbuf, uint32_t inlen, uint8_t *outbuf, uint32_t outlen, uint32_t level, unsigned int *space_left)
void do_calc_job(device_extension *Vcb, uint8_t *data, uint32_t sectors, void *csum)
NTSTATUS add_calc_job_comp(device_extension *Vcb, uint8_t compression, void *in, unsigned int inlen, void *out, unsigned int outlen, calc_job **pcj)
NTSTATUS add_calc_job_decomp(device_extension *Vcb, uint8_t compression, void *in, unsigned int inlen, void *out, unsigned int outlen, unsigned int off, calc_job **pcj)
void calc_thread_main(device_extension *Vcb, calc_job *cj)
#define STATUS_NOT_SUPPORTED
#define NT_SUCCESS(StatCode)
#define BTRFS_COMPRESSION_LZO
#define BTRFS_COMPRESSION_ZLIB
#define BTRFS_COMPRESSION_ZSTD
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define IsListEmpty(ListHead)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeReleaseSpinLock(sl, irql)
#define KeSetEvent(pEvt, foo, foo2)
#define KeAcquireSpinLock(sl, irql)
VOID NTAPI KeClearEvent(IN PKEVENT Event)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define _Function_class_(n)
NTSTATUS NTAPI PsTerminateSystemThread(IN NTSTATUS ExitStatus)
enum calc_thread_type type
VOID NTAPI KeSetSystemAffinityThread(IN KAFFINITY Affinity)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INSUFFICIENT_RESOURCES
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define ObDereferenceObject
#define ObReferenceObject
XXH_PUBLIC_API unsigned long long XXH64(const void *input, size_t len, unsigned long long seed)