1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2018 Chelsio Communications. All rights reserved. 4 */ 5 6 #ifndef __CUDBG_ZLIB_H__ 7 #define __CUDBG_ZLIB_H__ 8 9 #include <linux/zlib.h> 10 11 #define CUDBG_ZLIB_COMPRESS_ID 17 12 #define CUDBG_ZLIB_WIN_BITS 12 13 #define CUDBG_ZLIB_MEM_LVL 4 14 15 struct cudbg_compress_hdr { 16 u32 compress_id; 17 u64 decompress_size; 18 u64 compress_size; 19 u64 rsvd[32]; 20 }; 21 22 static inline int cudbg_get_workspace_size(void) 23 { 24 return zlib_deflate_workspacesize(CUDBG_ZLIB_WIN_BITS, 25 CUDBG_ZLIB_MEM_LVL); 26 } 27 28 int cudbg_compress_buff(struct cudbg_init *pdbg_init, 29 struct cudbg_buffer *pin_buff, 30 struct cudbg_buffer *pout_buff); 31 #endif /* __CUDBG_ZLIB_H__ */ 32