linux/drivers/scsi/qla2xxx/qla_nvme.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * QLogic Fibre Channel HBA Driver
 * Copyright (c)  2003-2017 QLogic Corporation
 */
#ifndef __QLA_NVME_H
#define __QLA_NVME_H

#include <uapi/scsi/fc/fc_fs.h>
#include <uapi/scsi/fc/fc_els.h>
#include <linux/nvme-fc-driver.h>

#include "qla_def.h"
#include "qla_dsd.h"

#define MIN_NVME_HW_QUEUES
#define DEF_NVME_HW_QUEUES

#define NVME_ATIO_CMD_OFF
#define NVME_FIRST_PACKET_CMDLEN
#define Q2T_NVME_NUM_TAGS
#define QLA_MAX_FC_SEGMENTS

struct qla_nvme_unsol_ctx;
struct scsi_qla_host;
struct qla_hw_data;
struct req_que;
struct srb;

struct nvme_private {};

struct qla_nvme_rport {};

#define COMMAND_NVME
struct cmd_nvme {};

#define PURLS_MSLEEP_INTERVAL
#define PURLS_RETRY_COUNT

#define PT_LS4_REQUEST
struct pt_ls4_request {};

#define PT_LS4_UNSOL
struct pt_ls4_rx_unsol {};

/*
 * Global functions prototype in qla_nvme.c source file.
 */
int qla_nvme_register_hba(struct scsi_qla_host *);
int  qla_nvme_register_remote(struct scsi_qla_host *, struct fc_port *);
void qla_nvme_delete(struct scsi_qla_host *);
void qla24xx_nvme_ls4_iocb(struct scsi_qla_host *, struct pt_ls4_request *,
    struct req_que *);
void qla24xx_async_gffid_sp_done(struct srb *sp, int);
#endif