1 // SPDX-License-Identifier: Zlib
2 /* dfltcc.c - SystemZ DEFLATE CONVERSION CALL support. */
4 #include <linux/zutil.h>
5 #include "dfltcc_util.h"
14 return NULL
; /* Successful completion */
17 return NULL
; /* Ignore for pre-boot decompressor */
19 sprintf(buf
, "Operation-Ending-Supplemental Code is 0x%.2X", oesc
);
30 struct dfltcc_state
*dfltcc_state
=
31 (struct dfltcc_state
*)((char *)strm
->state
+ size
);
32 struct dfltcc_qaf_param
*param
=
33 (struct dfltcc_qaf_param
*)&dfltcc_state
->param
;
35 /* Initialize available functions */
36 if (is_dfltcc_enabled()) {
37 dfltcc(DFLTCC_QAF
, param
, NULL
, NULL
, NULL
, NULL
, NULL
);
38 memmove(&dfltcc_state
->af
, param
, sizeof(dfltcc_state
->af
));
40 memset(&dfltcc_state
->af
, 0, sizeof(dfltcc_state
->af
));
42 /* Initialize parameter block */
43 memset(&dfltcc_state
->param
, 0, sizeof(dfltcc_state
->param
));
44 dfltcc_state
->param
.nt
= 1;
46 /* Initialize tuning parameters */
47 if (zlib_dfltcc_support
== ZLIB_DFLTCC_FULL_DEBUG
)
48 dfltcc_state
->level_mask
= DFLTCC_LEVEL_MASK_DEBUG
;
50 dfltcc_state
->level_mask
= DFLTCC_LEVEL_MASK
;
51 dfltcc_state
->block_size
= DFLTCC_BLOCK_SIZE
;
52 dfltcc_state
->block_threshold
= DFLTCC_FIRST_FHT_BLOCK_SIZE
;
53 dfltcc_state
->dht_threshold
= DFLTCC_DHT_MIN_SAMPLE_SIZE
;
54 dfltcc_state
->param
.ribm
= DFLTCC_RIBM
;