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