linux/drivers/crypto/marvell/octeontx/otx_cptvf.h

/* SPDX-License-Identifier: GPL-2.0
 * Marvell OcteonTX CPT driver
 *
 * Copyright (C) 2019 Marvell International Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef __OTX_CPTVF_H
#define __OTX_CPTVF_H

#include <linux/list.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include "otx_cpt_common.h"
#include "otx_cptvf_reqmgr.h"

/* Flags to indicate the features supported */
#define OTX_CPT_FLAG_DEVICE_READY
#define otx_cpt_device_ready(cpt)
/* Default command queue length */
#define OTX_CPT_CMD_QLEN
#define OTX_CPT_CMD_QCHUNK_SIZE
#define OTX_CPT_NUM_QS_PER_VF

struct otx_cpt_cmd_chunk {};

struct otx_cpt_cmd_queue {};

struct otx_cpt_cmd_qinfo {};

struct otx_cpt_pending_qinfo {};

#define for_each_pending_queue(qinfo, q, i)

struct otx_cptvf_wqe {};

struct otx_cptvf_wqe_info {};

struct otx_cptvf {};

int otx_cptvf_send_vf_up(struct otx_cptvf *cptvf);
int otx_cptvf_send_vf_down(struct otx_cptvf *cptvf);
int otx_cptvf_send_vf_to_grp_msg(struct otx_cptvf *cptvf, int group);
int otx_cptvf_send_vf_priority_msg(struct otx_cptvf *cptvf);
int otx_cptvf_send_vq_size_msg(struct otx_cptvf *cptvf);
int otx_cptvf_check_pf_ready(struct otx_cptvf *cptvf);
void otx_cptvf_handle_mbox_intr(struct otx_cptvf *cptvf);
void otx_cptvf_write_vq_doorbell(struct otx_cptvf *cptvf, u32 val);

#endif /* __OTX_CPTVF_H */