1 | // SPDX-License-Identifier: Zlib |
2 | /* dfltcc.c - SystemZ DEFLATE CONVERSION CALL support. */ |
3 | |
4 | #include <linux/export.h> |
5 | #include <linux/module.h> |
6 | #include "dfltcc_util.h" |
7 | #include "dfltcc.h" |
8 | |
9 | char *oesc_msg( |
10 | char *buf, |
11 | int oesc |
12 | ) |
13 | { |
14 | if (oesc == 0x00) |
15 | return NULL; /* Successful completion */ |
16 | else { |
17 | #ifdef STATIC |
18 | return NULL; /* Ignore for pre-boot decompressor */ |
19 | #else |
20 | sprintf(buf, fmt: "Operation-Ending-Supplemental Code is 0x%.2X" , oesc); |
21 | return buf; |
22 | #endif |
23 | } |
24 | } |
25 | |
26 | void dfltcc_reset_state(struct dfltcc_state *dfltcc_state) { |
27 | /* Initialize available functions */ |
28 | if (is_dfltcc_enabled()) { |
29 | dfltcc(DFLTCC_QAF, param: &dfltcc_state->param, NULL, NULL, NULL, NULL, NULL); |
30 | memmove(&dfltcc_state->af, &dfltcc_state->param, sizeof(dfltcc_state->af)); |
31 | } else |
32 | memset(&dfltcc_state->af, 0, sizeof(dfltcc_state->af)); |
33 | |
34 | /* Initialize parameter block */ |
35 | memset(&dfltcc_state->param, 0, sizeof(dfltcc_state->param)); |
36 | dfltcc_state->param.nt = 1; |
37 | dfltcc_state->param.ribm = DFLTCC_RIBM; |
38 | } |
39 | |
40 | MODULE_LICENSE("GPL" ); |
41 | |