1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 /*
22  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 #ifndef	_FCOET_FC_H
26 #define	_FCOET_FC_H
27 
28 #include <sys/stmf_defines.h>
29 
30 #ifdef	__cplusplus
31 extern "C" {
32 #endif
33 
34 #ifdef	_KERNEL
35 
36 fct_status_t
37 fcoet_get_link_info(fct_local_port_t *port, fct_link_info_t *li);
38 fct_status_t fcoet_register_remote_port(fct_local_port_t *port,
39     fct_remote_port_t *rp, fct_cmd_t *login);
40 fct_status_t
41 fcoet_deregister_remote_port(fct_local_port_t *port, fct_remote_port_t *rp);
42 fct_status_t fcoet_send_cmd(fct_cmd_t *cmd);
43 fct_status_t fcoet_send_cmd_response(fct_cmd_t *cmd, uint32_t ioflags);
44 fct_status_t
45 fcoet_xfer_scsi_data(fct_cmd_t *cmd, stmf_data_buf_t *dbuf, uint32_t ioflags);
46 fct_status_t
47 fcoet_abort_cmd(struct fct_local_port *port, fct_cmd_t *cmd, uint32_t flags);
48 fct_status_t
49 fcoet_do_flogi(fct_local_port_t *port, fct_flogi_xchg_t *fx);
50 void fcoet_send_sol_flogi(fcoet_soft_state_t *ss);
51 void fcoet_send_sol_abts(fcoet_exchange_t *xch);
52 void fcoet_ctl(struct fct_local_port *port, int cmd, void *arg);
53 void fcoet_populate_hba_fru_details(struct fct_local_port *port,
54     struct fct_port_attrs *port_attrs);
55 fct_status_t fcoet_enable_port(fcoet_soft_state_t *ss);
56 fct_status_t fcoet_disable_port(fcoet_soft_state_t *ss);
57 fcoet_exchange_t *fcoet_init_sol_exchange(fct_cmd_t *cmd);
58 
59 #endif	/* _KERNEL */
60 
61 #ifdef	__cplusplus
62 }
63 #endif
64 
65 #endif /* _FCOET_FC_H */
66