162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 2017 Broadcom. All Rights Reserved. 462306a36Sopenharmony_ci * The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Contact Information: 762306a36Sopenharmony_ci * linux-drivers@broadcom.com 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef _BE_ISCSI_ 1162306a36Sopenharmony_ci#define _BE_ISCSI_ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include "be_main.h" 1462306a36Sopenharmony_ci#include "be_mgmt.h" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_civoid beiscsi_iface_create_default(struct beiscsi_hba *phba); 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_civoid beiscsi_iface_destroy_default(struct beiscsi_hba *phba); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciint beiscsi_iface_get_param(struct iscsi_iface *iface, 2162306a36Sopenharmony_ci enum iscsi_param_type param_type, 2262306a36Sopenharmony_ci int param, char *buf); 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciint beiscsi_iface_set_param(struct Scsi_Host *shost, 2562306a36Sopenharmony_ci void *data, uint32_t count); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciumode_t beiscsi_attr_is_visible(int param_type, int param); 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_civoid beiscsi_offload_connection(struct beiscsi_conn *beiscsi_conn, 3062306a36Sopenharmony_ci struct beiscsi_offload_params *params); 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_civoid beiscsi_offload_iscsi(struct beiscsi_hba *phba, struct iscsi_conn *conn, 3362306a36Sopenharmony_ci struct beiscsi_conn *beiscsi_conn, 3462306a36Sopenharmony_ci unsigned int fw_handle); 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_cistruct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep, 3762306a36Sopenharmony_ci uint16_t cmds_max, 3862306a36Sopenharmony_ci uint16_t qdepth, 3962306a36Sopenharmony_ci uint32_t initial_cmdsn); 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_civoid beiscsi_session_destroy(struct iscsi_cls_session *cls_session); 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_civoid beiscsi_session_fail(struct iscsi_cls_session *cls_session); 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_cistruct iscsi_cls_conn *beiscsi_conn_create(struct iscsi_cls_session 4662306a36Sopenharmony_ci *cls_session, uint32_t cid); 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciint beiscsi_conn_bind(struct iscsi_cls_session *cls_session, 4962306a36Sopenharmony_ci struct iscsi_cls_conn *cls_conn, 5062306a36Sopenharmony_ci uint64_t transport_fd, int is_leading); 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciint beiscsi_ep_get_param(struct iscsi_endpoint *ep, enum iscsi_param param, 5362306a36Sopenharmony_ci char *buf); 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciint beiscsi_get_host_param(struct Scsi_Host *shost, 5662306a36Sopenharmony_ci enum iscsi_host_param param, char *buf); 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciint beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba); 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciint beiscsi_set_param(struct iscsi_cls_conn *cls_conn, 6162306a36Sopenharmony_ci enum iscsi_param param, char *buf, int buflen); 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciint beiscsi_conn_start(struct iscsi_cls_conn *cls_conn); 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_cistruct iscsi_endpoint *beiscsi_ep_connect(struct Scsi_Host *shost, 6662306a36Sopenharmony_ci struct sockaddr *dst_addr, 6762306a36Sopenharmony_ci int non_blocking); 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciint beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms); 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_civoid beiscsi_ep_disconnect(struct iscsi_endpoint *ep); 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_civoid beiscsi_conn_get_stats(struct iscsi_cls_conn *cls_conn, 7462306a36Sopenharmony_ci struct iscsi_stats *stats); 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci#endif 77