14fa9c49fSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 256cf2635SRahul Lakkireddy /* 356cf2635SRahul Lakkireddy * Copyright (C) 2018 Chelsio Communications. All rights reserved. 456cf2635SRahul Lakkireddy */ 556cf2635SRahul Lakkireddy 656cf2635SRahul Lakkireddy #ifndef __CUDBG_ZLIB_H__ 756cf2635SRahul Lakkireddy #define __CUDBG_ZLIB_H__ 856cf2635SRahul Lakkireddy 991c1953dSRahul Lakkireddy #include <linux/zlib.h> 1091c1953dSRahul Lakkireddy 1191c1953dSRahul Lakkireddy #define CUDBG_ZLIB_COMPRESS_ID 17 1291c1953dSRahul Lakkireddy #define CUDBG_ZLIB_WIN_BITS 12 1391c1953dSRahul Lakkireddy #define CUDBG_ZLIB_MEM_LVL 4 1491c1953dSRahul Lakkireddy 1591c1953dSRahul Lakkireddy struct cudbg_compress_hdr { 1691c1953dSRahul Lakkireddy u32 compress_id; 1791c1953dSRahul Lakkireddy u64 decompress_size; 1891c1953dSRahul Lakkireddy u64 compress_size; 1991c1953dSRahul Lakkireddy u64 rsvd[32]; 2091c1953dSRahul Lakkireddy }; 2191c1953dSRahul Lakkireddy cudbg_get_workspace_size(void)2291c1953dSRahul Lakkireddystatic inline int cudbg_get_workspace_size(void) 2391c1953dSRahul Lakkireddy { 2491c1953dSRahul Lakkireddy return zlib_deflate_workspacesize(CUDBG_ZLIB_WIN_BITS, 2591c1953dSRahul Lakkireddy CUDBG_ZLIB_MEM_LVL); 2691c1953dSRahul Lakkireddy } 2791c1953dSRahul Lakkireddy 2891c1953dSRahul Lakkireddy int cudbg_compress_buff(struct cudbg_init *pdbg_init, 2991c1953dSRahul Lakkireddy struct cudbg_buffer *pin_buff, 3091c1953dSRahul Lakkireddy struct cudbg_buffer *pout_buff); 3156cf2635SRahul Lakkireddy #endif /* __CUDBG_ZLIB_H__ */ 32