2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang/*
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * CDDL HEADER START
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang *
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * The contents of this file are subject to the terms of the
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * Common Development and Distribution License (the "License").
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * You may not use this file except in compliance with the License.
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang *
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * or http://www.opensolaris.org/os/licensing.
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * See the License for the specific language governing permissions
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * and limitations under the License.
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang *
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * When distributing Covered Code, include this CDDL HEADER in each
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * If applicable, add the following below this CDDL HEADER, with the
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * fields enclosed by brackets "[]" replaced with your own identifying
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * information: Portions Copyright [yyyy] [name of copyright owner]
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang *
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * CDDL HEADER END
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang */
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang/*
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang * Use is subject to license terms.
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang */
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#ifndef _FCOET_FC_H
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#define _FCOET_FC_H
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#include <sys/stmf_defines.h>
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#ifdef __cplusplus
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangextern "C" {
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#endif
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#ifdef _KERNEL
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfcoet_get_link_info(fct_local_port_t *port, fct_link_info_t *li);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t fcoet_register_remote_port(fct_local_port_t *port,
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang fct_remote_port_t *rp, fct_cmd_t *login);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfcoet_deregister_remote_port(fct_local_port_t *port, fct_remote_port_t *rp);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t fcoet_send_cmd(fct_cmd_t *cmd);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t fcoet_send_cmd_response(fct_cmd_t *cmd, uint32_t ioflags);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfcoet_xfer_scsi_data(fct_cmd_t *cmd, stmf_data_buf_t *dbuf, uint32_t ioflags);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfcoet_abort_cmd(struct fct_local_port *port, fct_cmd_t *cmd, uint32_t flags);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfcoet_do_flogi(fct_local_port_t *port, fct_flogi_xchg_t *fx);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangvoid fcoet_send_sol_flogi(fcoet_soft_state_t *ss);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangvoid fcoet_send_sol_abts(fcoet_exchange_t *xch);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangvoid fcoet_ctl(struct fct_local_port *port, int cmd, void *arg);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangvoid fcoet_populate_hba_fru_details(struct fct_local_port *port,
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang struct fct_port_attrs *port_attrs);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t fcoet_enable_port(fcoet_soft_state_t *ss);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfct_status_t fcoet_disable_port(fcoet_soft_state_t *ss);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wangfcoet_exchange_t *fcoet_init_sol_exchange(fct_cmd_t *cmd);
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#endif /* _KERNEL */
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#ifdef __cplusplus
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang}
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#endif
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang
2a8164df8a5f42c8a00f10c67d7bc84f80ae9c41Zhong Wang#endif /* _FCOET_FC_H */