1 // SPDX-License-Identifier: Zlib
2 /* dfltcc.c - SystemZ DEFLATE CONVERSION CALL support. */
4 #include <linux/export.h>
5 #include <linux/module.h>
6 #include "dfltcc_util.h"
15 return NULL
; /* Successful completion */
18 return NULL
; /* Ignore for pre-boot decompressor */
20 sprintf(buf
, "Operation-Ending-Supplemental Code is 0x%.2X", oesc
);
31 struct dfltcc_state
*dfltcc_state
=
32 (struct dfltcc_state
*)((char *)strm
->state
+ size
);
33 struct dfltcc_qaf_param
*param
=
34 (struct dfltcc_qaf_param
*)&dfltcc_state
->param
;
36 /* Initialize available functions */
37 if (is_dfltcc_enabled()) {
38 dfltcc(DFLTCC_QAF
, param
, NULL
, NULL
, NULL
, NULL
, NULL
);
39 memmove(&dfltcc_state
->af
, param
, sizeof(dfltcc_state
->af
));
41 memset(&dfltcc_state
->af
, 0, sizeof(dfltcc_state
->af
));
43 /* Initialize parameter block */
44 memset(&dfltcc_state
->param
, 0, sizeof(dfltcc_state
->param
));
45 dfltcc_state
->param
.nt
= 1;
47 /* Initialize tuning parameters */
48 if (zlib_dfltcc_support
== ZLIB_DFLTCC_FULL_DEBUG
)
49 dfltcc_state
->level_mask
= DFLTCC_LEVEL_MASK_DEBUG
;
51 dfltcc_state
->level_mask
= DFLTCC_LEVEL_MASK
;
52 dfltcc_state
->block_size
= DFLTCC_BLOCK_SIZE
;
53 dfltcc_state
->block_threshold
= DFLTCC_FIRST_FHT_BLOCK_SIZE
;
54 dfltcc_state
->dht_threshold
= DFLTCC_DHT_MIN_SAMPLE_SIZE
;
55 dfltcc_state
->param
.ribm
= DFLTCC_RIBM
;
57 EXPORT_SYMBOL(dfltcc_reset
);
59 MODULE_LICENSE("GPL");