cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dfltcc.c (1676B)


      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
      9char *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, "Operation-Ending-Supplemental Code is 0x%.2X", oesc);
     21        return buf;
     22#endif
     23    }
     24}
     25
     26void dfltcc_reset(
     27    z_streamp strm,
     28    uInt size
     29)
     30{
     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;
     35
     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));
     40    } else
     41        memset(&dfltcc_state->af, 0, sizeof(dfltcc_state->af));
     42
     43    /* Initialize parameter block */
     44    memset(&dfltcc_state->param, 0, sizeof(dfltcc_state->param));
     45    dfltcc_state->param.nt = 1;
     46
     47    /* Initialize tuning parameters */
     48    if (zlib_dfltcc_support == ZLIB_DFLTCC_FULL_DEBUG)
     49        dfltcc_state->level_mask = DFLTCC_LEVEL_MASK_DEBUG;
     50    else
     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;
     56}
     57EXPORT_SYMBOL(dfltcc_reset);
     58
     59MODULE_LICENSE("GPL");