11bdd6c0eSSue Gleeson /* 21bdd6c0eSSue Gleeson * CDDL HEADER START 31bdd6c0eSSue Gleeson * 41bdd6c0eSSue Gleeson * The contents of this file are subject to the terms of the 51bdd6c0eSSue Gleeson * Common Development and Distribution License (the "License"). 61bdd6c0eSSue Gleeson * You may not use this file except in compliance with the License. 71bdd6c0eSSue Gleeson * 81bdd6c0eSSue Gleeson * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 91bdd6c0eSSue Gleeson * or http://www.opensolaris.org/os/licensing. 101bdd6c0eSSue Gleeson * See the License for the specific language governing permissions 111bdd6c0eSSue Gleeson * and limitations under the License. 121bdd6c0eSSue Gleeson * 131bdd6c0eSSue Gleeson * When distributing Covered Code, include this CDDL HEADER in each 141bdd6c0eSSue Gleeson * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 151bdd6c0eSSue Gleeson * If applicable, add the following below this CDDL HEADER, with the 161bdd6c0eSSue Gleeson * fields enclosed by brackets "[]" replaced with your own identifying 171bdd6c0eSSue Gleeson * information: Portions Copyright [yyyy] [name of copyright owner] 181bdd6c0eSSue Gleeson * 191bdd6c0eSSue Gleeson * CDDL HEADER END 201bdd6c0eSSue Gleeson */ 211bdd6c0eSSue Gleeson 221bdd6c0eSSue Gleeson /* 23*c3a558e7SSue Gleeson * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. 241bdd6c0eSSue Gleeson */ 251bdd6c0eSSue Gleeson 261bdd6c0eSSue Gleeson #ifndef _SRPT_STP_H 271bdd6c0eSSue Gleeson #define _SRPT_STP_H 281bdd6c0eSSue Gleeson 291bdd6c0eSSue Gleeson /* 301bdd6c0eSSue Gleeson * Prototypes and data structures providing the SRP SCSI 311bdd6c0eSSue Gleeson * target port COMSTAR port provider function. 321bdd6c0eSSue Gleeson */ 331bdd6c0eSSue Gleeson 341bdd6c0eSSue Gleeson #ifdef __cplusplus 351bdd6c0eSSue Gleeson extern "C" { 361bdd6c0eSSue Gleeson #endif 371bdd6c0eSSue Gleeson 381bdd6c0eSSue Gleeson /* 391bdd6c0eSSue Gleeson * Prototypes 401bdd6c0eSSue Gleeson */ 411bdd6c0eSSue Gleeson int srpt_stp_start_srp(srpt_target_port_t *tgt); 421bdd6c0eSSue Gleeson void srpt_stp_stop_srp(srpt_target_port_t *tgt); 431bdd6c0eSSue Gleeson srpt_target_port_t *srpt_stp_alloc_port(srpt_ioc_t *ioc, ib_guid_t guid); 441bdd6c0eSSue Gleeson stmf_status_t srpt_stp_free_port(srpt_target_port_t *tgt); 45*c3a558e7SSue Gleeson stmf_status_t srpt_stp_destroy_port(srpt_target_port_t *tgt); 461bdd6c0eSSue Gleeson 471bdd6c0eSSue Gleeson srpt_session_t *srpt_stp_alloc_session(srpt_target_port_t *tgt, 48191c289bSCharles Ting uint8_t *i_id, uint8_t *t_id, uint8_t port, 49191c289bSCharles Ting char *local_gid, char *remote_gid); 501bdd6c0eSSue Gleeson void srpt_stp_free_session(srpt_session_t *session); 511bdd6c0eSSue Gleeson 521bdd6c0eSSue Gleeson srpt_channel_t *srpt_stp_login(srpt_target_port_t *tgt, 531bdd6c0eSSue Gleeson srp_login_req_t *login, srp_login_rsp_t *login_rsp, 54191c289bSCharles Ting srp_login_rej_t *login_rej, uint8_t login_port, 55191c289bSCharles Ting char *local_gid, char *remote_gid); 561bdd6c0eSSue Gleeson 571bdd6c0eSSue Gleeson void srpt_stp_logout(srpt_channel_t *ch); 581bdd6c0eSSue Gleeson 591bdd6c0eSSue Gleeson stmf_status_t srpt_stp_send_status(struct scsi_task *task, 601bdd6c0eSSue Gleeson uint32_t ioflags); 611bdd6c0eSSue Gleeson 621bdd6c0eSSue Gleeson ibt_status_t srpt_stp_send_response(srpt_iu_t *iu, uint8_t scsi_status, 631bdd6c0eSSue Gleeson uint8_t flags, uint32_t resid, uint16_t sense_length, 641bdd6c0eSSue Gleeson uint8_t *sense_data, uint_t fence); 651bdd6c0eSSue Gleeson ibt_status_t srpt_stp_send_mgmt_response(srpt_iu_t *iu, uint8_t srp_rsp, 661bdd6c0eSSue Gleeson uint_t fence); 671bdd6c0eSSue Gleeson void srpt_stp_add_task(srpt_session_t *session, srpt_iu_t *iu); 681bdd6c0eSSue Gleeson void srpt_stp_remove_task(srpt_session_t *session, srpt_iu_t *iu); 691bdd6c0eSSue Gleeson 701bdd6c0eSSue Gleeson uint64_t srpt_stp_u8array2u64(uint8_t *array); 711bdd6c0eSSue Gleeson 721bdd6c0eSSue Gleeson #ifdef __cplusplus 731bdd6c0eSSue Gleeson } 741bdd6c0eSSue Gleeson #endif 751bdd6c0eSSue Gleeson 761bdd6c0eSSue Gleeson #endif /* _SRPT_STP_H */ 77