linux/drivers/crypto/intel/iaa/iaa_crypto.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2021 Intel Corporation. All rights rsvd. */

#ifndef __IAA_CRYPTO_H__
#define __IAA_CRYPTO_H__

#include <linux/crypto.h>
#include <linux/idxd.h>
#include <uapi/linux/idxd.h>

#define IDXD_SUBDRIVER_NAME

#define IAA_DECOMP_ENABLE
#define IAA_DECOMP_FLUSH_OUTPUT
#define IAA_DECOMP_CHECK_FOR_EOB
#define IAA_DECOMP_STOP_ON_EOB
#define IAA_DECOMP_SUPPRESS_OUTPUT

#define IAA_COMP_FLUSH_OUTPUT
#define IAA_COMP_APPEND_EOB

#define IAA_COMPLETION_TIMEOUT

#define IAA_ANALYTICS_ERROR
#define IAA_ERROR_DECOMP_BUF_OVERFLOW
#define IAA_ERROR_COMP_BUF_OVERFLOW
#define IAA_ERROR_WATCHDOG_EXPIRED

#define IAA_COMP_MODES_MAX

#define FIXED_HDR
#define FIXED_HDR_SIZE

#define IAA_COMP_FLAGS

#define IAA_DECOMP_FLAGS

/* Representation of IAA workqueue */
struct iaa_wq {};

struct iaa_device_compression_mode {};

/* Representation of IAA device with wqs, populated by probe */
struct iaa_device {};

struct wq_table_entry {};

#define IAA_AECS_ALIGN

/*
 * Analytics Engine Configuration and State (AECS) contains parameters and
 * internal state of the analytics engine.
 */
struct aecs_comp_table_record {} __packed;

int iaa_aecs_init_fixed(void);
void iaa_aecs_cleanup_fixed(void);

iaa_dev_comp_init_fn_t;
iaa_dev_comp_free_fn_t;

struct iaa_compression_mode {};

int add_iaa_compression_mode(const char *name,
			     const u32 *ll_table,
			     int ll_table_size,
			     const u32 *d_table,
			     int d_table_size,
			     iaa_dev_comp_init_fn_t init,
			     iaa_dev_comp_free_fn_t free);

void remove_iaa_compression_mode(const char *name);

enum iaa_mode {};

struct iaa_compression_ctx {};

extern struct list_head iaa_devices;
extern struct mutex iaa_devices_lock;

#endif