1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson/*
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * CDDL HEADER START
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson *
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * The contents of this file are subject to the terms of the
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * Common Development and Distribution License (the "License").
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * You may not use this file except in compliance with the License.
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson *
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * or http://www.opensolaris.org/os/licensing.
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * See the License for the specific language governing permissions
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * and limitations under the License.
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson *
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * When distributing Covered Code, include this CDDL HEADER in each
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * If applicable, add the following below this CDDL HEADER, with the
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * fields enclosed by brackets "[]" replaced with your own identifying
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * information: Portions Copyright [yyyy] [name of copyright owner]
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson *
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * CDDL HEADER END
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson */
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson/*
c3a558e7c77127215b010652905be7916ec5a080Sue Gleeson * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson */
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#ifndef _SRPT_IOC_H
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#define _SRPT_IOC_H
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson/*
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * Prototypes and data structures specific to I/O Controller
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson * operation.
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson */
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#ifdef __cplusplus
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonextern "C" {
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#endif
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#include "srpt_impl.h"
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonint srpt_ioc_attach();
c3a558e7c77127215b010652905be7916ec5a080Sue Gleesonvoid srpt_ioc_attach_hca(ib_guid_t hca_guid, boolean_t checked);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonvoid srpt_ioc_detach();
c3a558e7c77127215b010652905be7916ec5a080Sue Gleesonvoid srpt_ioc_detach_hca(ib_guid_t hca_guid);
c3a558e7c77127215b010652905be7916ec5a080Sue Gleesonvoid srpt_ioc_update(void);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonvoid srpt_ioc_init_profile(srpt_ioc_t *ioc);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonibt_status_t srpt_ioc_svc_bind(srpt_target_port_t *tgt, uint_t portnum);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonvoid srpt_ioc_svc_unbind(srpt_target_port_t *tgt, uint_t portnum);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonvoid srpt_ioc_svc_unbind_all(srpt_target_port_t *tgt);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonsrpt_ioc_t *srpt_ioc_get_locked(ib_guid_t guid);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonsrpt_ioc_t *srpt_ioc_get(ib_guid_t guid);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonibt_status_t srpt_ioc_post_recv_iu(srpt_ioc_t *ioc, srpt_iu_t *iu);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonvoid srpt_ioc_repost_recv_iu(srpt_ioc_t *ioc, srpt_iu_t *iu);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonstmf_data_buf_t *srpt_ioc_ds_alloc_dbuf(struct scsi_task *task,
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson uint32_t size, uint32_t *pminsize, uint32_t flags);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleesonvoid srpt_ioc_ds_free_dbuf(struct stmf_dbuf_store *ds,
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson stmf_data_buf_t *dbuf);
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#ifdef __cplusplus
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson}
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#endif
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson
1bdd6c0e3710e91cb1f31aa78de33cb638494480Sue Gleeson#endif /* _SRPT_IOC_H */