1848c7085STyrel Datwyler /* SPDX-License-Identifier: GPL-2.0-or-later */ 2848c7085STyrel Datwyler 3848c7085STyrel Datwyler /* 4848c7085STyrel Datwyler * ibmvfc-nvme.h -- IBM Power Virtual Fibre Channel NVMeoF HBA driver 5848c7085STyrel Datwyler * 6848c7085STyrel Datwyler * Written By: Tyrel Datwyler <tyreld@linux.ibm.com>, IBM Corporation 7848c7085STyrel Datwyler * 8848c7085STyrel Datwyler * Copyright (C) IBM Corporation, 2026 9848c7085STyrel Datwyler */ 10848c7085STyrel Datwyler 11848c7085STyrel Datwyler #ifndef _IBMVFC_NVME_H 12848c7085STyrel Datwyler #define _IBMVFC_NVME_H 13848c7085STyrel Datwyler 1413b7fdf3STyrel Datwyler #include <scsi/fc/fc_fs.h> 1513b7fdf3STyrel Datwyler #include <scsi/fc/fc_els.h> 16848c7085STyrel Datwyler #include <linux/nvme-fc-driver.h> 17*7088e1c8STyrel Datwyler #include <linux/nvme.h> 18*7088e1c8STyrel Datwyler #include <linux/nvme-fc.h> 19848c7085STyrel Datwyler 20848c7085STyrel Datwyler #include "ibmvfc.h" 21848c7085STyrel Datwyler 22848c7085STyrel Datwyler #define IBMVFC_NVME 0 23848c7085STyrel Datwyler #define IBMVFC_NVME_HW_QUEUES 8 24848c7085STyrel Datwyler #define IBMVFC_MAX_NVME_QUEUES 16 25848c7085STyrel Datwyler #define IBMVFC_NVME_CHANNELS 8 26848c7085STyrel Datwyler 27*7088e1c8STyrel Datwyler #define IBMVFC_FC4_LS_TIMEOUT 15 28*7088e1c8STyrel Datwyler #define IBMVFC_FC4_LS_CANCEL_TIMEOUT 45 29*7088e1c8STyrel Datwyler #define IBMVFC_FC4_LS_PLUS_CANCEL_TIMEOUT \ 30*7088e1c8STyrel Datwyler (IBMVFC_FC4_LS_TIMEOUT + IBMVFC_FC4_LS_CANCEL_TIMEOUT) 31*7088e1c8STyrel Datwyler 3228ec8670STyrel Datwyler extern unsigned int ibmvfc_debug; 3328ec8670STyrel Datwyler 34848c7085STyrel Datwyler struct ibmvfc_host; 35848c7085STyrel Datwyler struct ibmvfc_target; 36*7088e1c8STyrel Datwyler struct ibmvfc_queue; 37848c7085STyrel Datwyler 3886e49535STyrel Datwyler struct ibmvfc_nvme_qhandle { 3986e49535STyrel Datwyler unsigned int qidx; 4086e49535STyrel Datwyler u16 cpu_id; 4186e49535STyrel Datwyler unsigned long index; 4286e49535STyrel Datwyler struct ibmvfc_queue *queue; 4386e49535STyrel Datwyler }; 4486e49535STyrel Datwyler 45848c7085STyrel Datwyler int ibmvfc_nvme_register_remoteport(struct ibmvfc_target *tgt); 46848c7085STyrel Datwyler void ibmvfc_nvme_unregister_remoteport(struct ibmvfc_target *tgt); 47848c7085STyrel Datwyler int ibmvfc_nvme_register(struct ibmvfc_host *vhost); 48848c7085STyrel Datwyler void ibmvfc_nvme_unregister(struct ibmvfc_host *vhost); 49848c7085STyrel Datwyler #endif 50