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