blob: e245b6ed08756c980c9c6c2c23fe8d2bfbda927d [file] [edit]
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* ibmvfc-nvme.h -- IBM Power Virtual Fibre Channel NVMeoF HBA driver
*
* Written By: Tyrel Datwyler <tyreld@linux.ibm.com>, IBM Corporation
*
* Copyright (C) IBM Corporation, 2026
*/
#ifndef _IBMVFC_NVME_H
#define _IBMVFC_NVME_H
#include <scsi/fc/fc_fs.h>
#include <scsi/fc/fc_els.h>
#include <linux/nvme-fc-driver.h>
#include <linux/nvme.h>
#include <linux/nvme-fc.h>
#include "ibmvfc.h"
#define IBMVFC_NVME 0
#define IBMVFC_NVME_HW_QUEUES 8
#define IBMVFC_MAX_NVME_QUEUES 16
#define IBMVFC_NVME_CHANNELS 8
#define IBMVFC_FC4_LS_TIMEOUT 15
#define IBMVFC_FC4_LS_CANCEL_TIMEOUT 45
#define IBMVFC_FC4_LS_PLUS_CANCEL_TIMEOUT \
(IBMVFC_FC4_LS_TIMEOUT + IBMVFC_FC4_LS_CANCEL_TIMEOUT)
extern unsigned int ibmvfc_debug;
struct ibmvfc_host;
struct ibmvfc_target;
struct ibmvfc_queue;
struct ibmvfc_nvme_qhandle {
unsigned int qidx;
u16 cpu_id;
unsigned long index;
struct ibmvfc_queue *queue;
};
int ibmvfc_nvme_register_remoteport(struct ibmvfc_target *tgt);
void ibmvfc_nvme_unregister_remoteport(struct ibmvfc_target *tgt);
int ibmvfc_nvme_register(struct ibmvfc_host *vhost);
void ibmvfc_nvme_unregister(struct ibmvfc_host *vhost);
#endif