1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright 2017 Broadcom. All Rights Reserved. 4*4882a593Smuzhiyun * The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Contact Information: 7*4882a593Smuzhiyun * linux-drivers@broadcom.com 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef _BE_ISCSI_ 11*4882a593Smuzhiyun #define _BE_ISCSI_ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #include "be_main.h" 14*4882a593Smuzhiyun #include "be_mgmt.h" 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun void beiscsi_iface_create_default(struct beiscsi_hba *phba); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun void beiscsi_iface_destroy_default(struct beiscsi_hba *phba); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun int beiscsi_iface_get_param(struct iscsi_iface *iface, 21*4882a593Smuzhiyun enum iscsi_param_type param_type, 22*4882a593Smuzhiyun int param, char *buf); 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun int beiscsi_iface_set_param(struct Scsi_Host *shost, 25*4882a593Smuzhiyun void *data, uint32_t count); 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun umode_t beiscsi_attr_is_visible(int param_type, int param); 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun void beiscsi_offload_connection(struct beiscsi_conn *beiscsi_conn, 30*4882a593Smuzhiyun struct beiscsi_offload_params *params); 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun void beiscsi_offload_iscsi(struct beiscsi_hba *phba, struct iscsi_conn *conn, 33*4882a593Smuzhiyun struct beiscsi_conn *beiscsi_conn, 34*4882a593Smuzhiyun unsigned int fw_handle); 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun struct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep, 37*4882a593Smuzhiyun uint16_t cmds_max, 38*4882a593Smuzhiyun uint16_t qdepth, 39*4882a593Smuzhiyun uint32_t initial_cmdsn); 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun void beiscsi_session_destroy(struct iscsi_cls_session *cls_session); 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun void beiscsi_session_fail(struct iscsi_cls_session *cls_session); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun struct iscsi_cls_conn *beiscsi_conn_create(struct iscsi_cls_session 46*4882a593Smuzhiyun *cls_session, uint32_t cid); 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun int beiscsi_conn_bind(struct iscsi_cls_session *cls_session, 49*4882a593Smuzhiyun struct iscsi_cls_conn *cls_conn, 50*4882a593Smuzhiyun uint64_t transport_fd, int is_leading); 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun int beiscsi_ep_get_param(struct iscsi_endpoint *ep, enum iscsi_param param, 53*4882a593Smuzhiyun char *buf); 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun int beiscsi_get_host_param(struct Scsi_Host *shost, 56*4882a593Smuzhiyun enum iscsi_host_param param, char *buf); 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba); 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun int beiscsi_set_param(struct iscsi_cls_conn *cls_conn, 61*4882a593Smuzhiyun enum iscsi_param param, char *buf, int buflen); 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn); 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun struct iscsi_endpoint *beiscsi_ep_connect(struct Scsi_Host *shost, 66*4882a593Smuzhiyun struct sockaddr *dst_addr, 67*4882a593Smuzhiyun int non_blocking); 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun int beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms); 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun void beiscsi_ep_disconnect(struct iscsi_endpoint *ep); 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun void beiscsi_conn_get_stats(struct iscsi_cls_conn *cls_conn, 74*4882a593Smuzhiyun struct iscsi_stats *stats); 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun #endif 77