xref: /openbmc/linux/drivers/scsi/be2iscsi/be_iscsi.h (revision 6e9ef509)
16e9ef509SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2942b7654SJitendra Bhivare /*
30172dc65SJitendra Bhivare  * Copyright 2017 Broadcom. All Rights Reserved.
4942b7654SJitendra Bhivare  * The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
56733b39aSJayamohan Kallickal  *
66733b39aSJayamohan Kallickal  * Contact Information:
760f36e04SJitendra Bhivare  * linux-drivers@broadcom.com
86733b39aSJayamohan Kallickal  */
96733b39aSJayamohan Kallickal 
106733b39aSJayamohan Kallickal #ifndef _BE_ISCSI_
116733b39aSJayamohan Kallickal #define _BE_ISCSI_
126733b39aSJayamohan Kallickal 
136733b39aSJayamohan Kallickal #include "be_main.h"
146733b39aSJayamohan Kallickal #include "be_mgmt.h"
156733b39aSJayamohan Kallickal 
1696b48b92SJitendra Bhivare void beiscsi_iface_create_default(struct beiscsi_hba *phba);
170e43895eSMike Christie 
1896b48b92SJitendra Bhivare void beiscsi_iface_destroy_default(struct beiscsi_hba *phba);
190e43895eSMike Christie 
2096b48b92SJitendra Bhivare int beiscsi_iface_get_param(struct iscsi_iface *iface,
210e43895eSMike Christie 			     enum iscsi_param_type param_type,
220e43895eSMike Christie 			     int param, char *buf);
230e43895eSMike Christie 
2496b48b92SJitendra Bhivare int beiscsi_iface_set_param(struct Scsi_Host *shost,
250e43895eSMike Christie 			     void *data, uint32_t count);
266733b39aSJayamohan Kallickal 
2796b48b92SJitendra Bhivare umode_t beiscsi_attr_is_visible(int param_type, int param);
283128c6c7SMike Christie 
296733b39aSJayamohan Kallickal void beiscsi_offload_connection(struct beiscsi_conn *beiscsi_conn,
306733b39aSJayamohan Kallickal 				struct beiscsi_offload_params *params);
316733b39aSJayamohan Kallickal 
326733b39aSJayamohan Kallickal void beiscsi_offload_iscsi(struct beiscsi_hba *phba, struct iscsi_conn *conn,
336733b39aSJayamohan Kallickal 			   struct beiscsi_conn *beiscsi_conn,
346733b39aSJayamohan Kallickal 			   unsigned int fw_handle);
356733b39aSJayamohan Kallickal 
366733b39aSJayamohan Kallickal struct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep,
376733b39aSJayamohan Kallickal 						 uint16_t cmds_max,
386733b39aSJayamohan Kallickal 						 uint16_t qdepth,
396733b39aSJayamohan Kallickal 						 uint32_t initial_cmdsn);
406733b39aSJayamohan Kallickal 
416733b39aSJayamohan Kallickal void beiscsi_session_destroy(struct iscsi_cls_session *cls_session);
426733b39aSJayamohan Kallickal 
43480195c2SJitendra Bhivare void beiscsi_session_fail(struct iscsi_cls_session *cls_session);
44480195c2SJitendra Bhivare 
456733b39aSJayamohan Kallickal struct iscsi_cls_conn *beiscsi_conn_create(struct iscsi_cls_session
466733b39aSJayamohan Kallickal 					   *cls_session, uint32_t cid);
476733b39aSJayamohan Kallickal 
486733b39aSJayamohan Kallickal int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
496733b39aSJayamohan Kallickal 		      struct iscsi_cls_conn *cls_conn,
506733b39aSJayamohan Kallickal 		      uint64_t transport_fd, int is_leading);
516733b39aSJayamohan Kallickal 
52c7f7fd5bSMike Christie int beiscsi_ep_get_param(struct iscsi_endpoint *ep, enum iscsi_param param,
53c7f7fd5bSMike Christie 			 char *buf);
546733b39aSJayamohan Kallickal 
556733b39aSJayamohan Kallickal int beiscsi_get_host_param(struct Scsi_Host *shost,
566733b39aSJayamohan Kallickal 			   enum iscsi_host_param param, char *buf);
576733b39aSJayamohan Kallickal 
58c7acc5b8SJayamohan Kallickal int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba);
59c7acc5b8SJayamohan Kallickal 
606733b39aSJayamohan Kallickal int beiscsi_set_param(struct iscsi_cls_conn *cls_conn,
616733b39aSJayamohan Kallickal 		      enum iscsi_param param, char *buf, int buflen);
626733b39aSJayamohan Kallickal 
636733b39aSJayamohan Kallickal int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn);
646733b39aSJayamohan Kallickal 
656733b39aSJayamohan Kallickal struct iscsi_endpoint *beiscsi_ep_connect(struct Scsi_Host *shost,
666733b39aSJayamohan Kallickal 					  struct sockaddr *dst_addr,
676733b39aSJayamohan Kallickal 					  int non_blocking);
686733b39aSJayamohan Kallickal 
696733b39aSJayamohan Kallickal int beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms);
706733b39aSJayamohan Kallickal 
716733b39aSJayamohan Kallickal void beiscsi_ep_disconnect(struct iscsi_endpoint *ep);
726733b39aSJayamohan Kallickal 
736733b39aSJayamohan Kallickal void beiscsi_conn_get_stats(struct iscsi_cls_conn *cls_conn,
746733b39aSJayamohan Kallickal 			    struct iscsi_stats *stats);
756733b39aSJayamohan Kallickal 
766733b39aSJayamohan Kallickal #endif
77