linux/include/linux/qed/qed_iscsi_if.h

/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
/* QLogic qed NIC Driver
 * Copyright (c) 2015-2017  QLogic Corporation
 * Copyright (c) 2019-2020 Marvell International Ltd.
 */

#ifndef _QED_ISCSI_IF_H
#define _QED_ISCSI_IF_H
#include <linux/types.h>
#include <linux/qed/qed_if.h>

iscsi_event_cb_t;
struct qed_iscsi_stats {};

struct qed_dev_iscsi_info {};

struct qed_iscsi_id_params {};

struct qed_iscsi_params_offload {};

struct qed_iscsi_params_update {};

#define MAX_TID_BLOCKS_ISCSI
struct qed_iscsi_tid {};

struct qed_iscsi_cb_ops {};

/**
 * struct qed_iscsi_ops - qed iSCSI operations.
 * @common:		common operations pointer
 * @ll2:		light L2 operations pointer
 * @fill_dev_info:	fills iSCSI specific information
 *			@param cdev
 *			@param info
 *			@return 0 on success, otherwise error value.
 * @register_ops:	register iscsi operations
 *			@param cdev
 *			@param ops - specified using qed_iscsi_cb_ops
 *			@param cookie - driver private
 * @start:		iscsi in FW
 *			@param cdev
 *			@param tasks - qed will fill information about tasks
 *			return 0 on success, otherwise error value.
 * @stop:		iscsi in FW
 *			@param cdev
 *			return 0 on success, otherwise error value.
 * @acquire_conn:	acquire a new iscsi connection
 *			@param cdev
 *			@param handle - qed will fill handle that should be
 *				used henceforth as identifier of the
 *				connection.
 *			@param p_doorbell - qed will fill the address of the
 *				doorbell.
 *			@return 0 on success, otherwise error value.
 * @release_conn:	release a previously acquired iscsi connection
 *			@param cdev
 *			@param handle - the connection handle.
 *			@return 0 on success, otherwise error value.
 * @offload_conn:	configures an offloaded connection
 *			@param cdev
 *			@param handle - the connection handle.
 *			@param conn_info - the configuration to use for the
 *				offload.
 *			@return 0 on success, otherwise error value.
 * @update_conn:	updates an offloaded connection
 *			@param cdev
 *			@param handle - the connection handle.
 *			@param conn_info - the configuration to use for the
 *				offload.
 *			@return 0 on success, otherwise error value.
 * @destroy_conn:	stops an offloaded connection
 *			@param cdev
 *			@param handle - the connection handle.
 *			@return 0 on success, otherwise error value.
 * @clear_sq:		clear all task in sq
 *			@param cdev
 *			@param handle - the connection handle.
 *			@return 0 on success, otherwise error value.
 * @get_stats:		iSCSI related statistics
 *			@param cdev
 *			@param stats - pointer to struck that would be filled
 *				we stats
 *			@return 0 on success, error otherwise.
 * @change_mac:		Change MAC of interface
 *			@param cdev
 *			@param handle - the connection handle.
 *			@param mac - new MAC to configure.
 *			@return 0 on success, otherwise error value.
 */
struct qed_iscsi_ops {};

const struct qed_iscsi_ops *qed_get_iscsi_ops(void);
void qed_put_iscsi_ops(void);
#endif