xref: /openbmc/linux/drivers/scsi/be2iscsi/be_iscsi.h (revision c7acc5b8)
16733b39aSJayamohan Kallickal /**
2d2eeb1acSJayamohan Kallickal  * Copyright (C) 2005 - 2010 ServerEngines
36733b39aSJayamohan Kallickal  * All rights reserved.
46733b39aSJayamohan Kallickal  *
56733b39aSJayamohan Kallickal  * This program is free software; you can redistribute it and/or
66733b39aSJayamohan Kallickal  * modify it under the terms of the GNU General Public License version 2
76733b39aSJayamohan Kallickal  * as published by the Free Software Foundation.  The full GNU General
86733b39aSJayamohan Kallickal  * Public License is included in this distribution in the file called COPYING.
96733b39aSJayamohan Kallickal  *
106733b39aSJayamohan Kallickal  * Written by: Jayamohan Kallickal (jayamohank@serverengines.com)
116733b39aSJayamohan Kallickal  *
126733b39aSJayamohan Kallickal  * Contact Information:
136733b39aSJayamohan Kallickal  * linux-drivers@serverengines.com
146733b39aSJayamohan Kallickal  *
156733b39aSJayamohan Kallickal  * ServerEngines
166733b39aSJayamohan Kallickal  * 209 N. Fair Oaks Ave
176733b39aSJayamohan Kallickal  * Sunnyvale, CA 94085
186733b39aSJayamohan Kallickal  *
196733b39aSJayamohan Kallickal  */
206733b39aSJayamohan Kallickal 
216733b39aSJayamohan Kallickal #ifndef _BE_ISCSI_
226733b39aSJayamohan Kallickal #define _BE_ISCSI_
236733b39aSJayamohan Kallickal 
246733b39aSJayamohan Kallickal #include "be_main.h"
256733b39aSJayamohan Kallickal #include "be_mgmt.h"
266733b39aSJayamohan Kallickal 
276733b39aSJayamohan Kallickal #define BE2_IPV4  0x1
286733b39aSJayamohan Kallickal #define BE2_IPV6  0x10
296733b39aSJayamohan Kallickal 
306733b39aSJayamohan Kallickal void beiscsi_offload_connection(struct beiscsi_conn *beiscsi_conn,
316733b39aSJayamohan Kallickal 				struct beiscsi_offload_params *params);
326733b39aSJayamohan Kallickal 
336733b39aSJayamohan Kallickal void beiscsi_offload_iscsi(struct beiscsi_hba *phba, struct iscsi_conn *conn,
346733b39aSJayamohan Kallickal 			   struct beiscsi_conn *beiscsi_conn,
356733b39aSJayamohan Kallickal 			   unsigned int fw_handle);
366733b39aSJayamohan Kallickal 
376733b39aSJayamohan Kallickal struct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep,
386733b39aSJayamohan Kallickal 						 uint16_t cmds_max,
396733b39aSJayamohan Kallickal 						 uint16_t qdepth,
406733b39aSJayamohan Kallickal 						 uint32_t initial_cmdsn);
416733b39aSJayamohan Kallickal 
426733b39aSJayamohan Kallickal void beiscsi_session_destroy(struct iscsi_cls_session *cls_session);
436733b39aSJayamohan Kallickal 
446733b39aSJayamohan Kallickal struct iscsi_cls_conn *beiscsi_conn_create(struct iscsi_cls_session
456733b39aSJayamohan Kallickal 					   *cls_session, uint32_t cid);
466733b39aSJayamohan Kallickal 
476733b39aSJayamohan Kallickal int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
486733b39aSJayamohan Kallickal 		      struct iscsi_cls_conn *cls_conn,
496733b39aSJayamohan Kallickal 		      uint64_t transport_fd, int is_leading);
506733b39aSJayamohan Kallickal 
516733b39aSJayamohan Kallickal int beiscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
526733b39aSJayamohan Kallickal 			   enum iscsi_param param, char *buf);
536733b39aSJayamohan Kallickal 
546733b39aSJayamohan Kallickal int beiscsi_get_host_param(struct Scsi_Host *shost,
556733b39aSJayamohan Kallickal 			   enum iscsi_host_param param, char *buf);
566733b39aSJayamohan Kallickal 
57c7acc5b8SJayamohan Kallickal int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba);
58c7acc5b8SJayamohan Kallickal 
596733b39aSJayamohan Kallickal int beiscsi_set_param(struct iscsi_cls_conn *cls_conn,
606733b39aSJayamohan Kallickal 		      enum iscsi_param param, char *buf, int buflen);
616733b39aSJayamohan Kallickal 
626733b39aSJayamohan Kallickal int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn);
636733b39aSJayamohan Kallickal 
646733b39aSJayamohan Kallickal struct iscsi_endpoint *beiscsi_ep_connect(struct Scsi_Host *shost,
656733b39aSJayamohan Kallickal 					  struct sockaddr *dst_addr,
666733b39aSJayamohan Kallickal 					  int non_blocking);
676733b39aSJayamohan Kallickal 
686733b39aSJayamohan Kallickal int beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms);
696733b39aSJayamohan Kallickal 
706733b39aSJayamohan Kallickal void beiscsi_ep_disconnect(struct iscsi_endpoint *ep);
716733b39aSJayamohan Kallickal 
726733b39aSJayamohan Kallickal void beiscsi_conn_get_stats(struct iscsi_cls_conn *cls_conn,
736733b39aSJayamohan Kallickal 			    struct iscsi_stats *stats);
746733b39aSJayamohan Kallickal 
756733b39aSJayamohan Kallickal #endif
76