• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/bfa/include/bfi/
1/*
2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
3 * All rights reserved
4 * www.brocade.com
5 *
6 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License (GPL) Version 2 as
10 * published by the Free Software Foundation
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * General Public License for more details.
16 */
17
18#ifndef __BFI_RPORT_H__
19#define __BFI_RPORT_H__
20
21#include <bfi/bfi.h>
22
23#pragma pack(1)
24
25enum bfi_rport_h2i_msgs {
26	BFI_RPORT_H2I_CREATE_REQ = 1,
27	BFI_RPORT_H2I_DELETE_REQ = 2,
28	BFI_RPORT_H2I_SET_SPEED_REQ  = 3,
29};
30
31enum bfi_rport_i2h_msgs {
32	BFI_RPORT_I2H_CREATE_RSP = BFA_I2HM(1),
33	BFI_RPORT_I2H_DELETE_RSP = BFA_I2HM(2),
34	BFI_RPORT_I2H_QOS_SCN    = BFA_I2HM(3),
35};
36
37struct bfi_rport_create_req_s {
38	struct bfi_mhdr_s  mh;		/*  common msg header		*/
39	u16        bfa_handle;	/*  host rport handle		*/
40	u16        max_frmsz;	/*  max rcv pdu size		*/
41	u32        pid:24,		/*  remote port ID		*/
42			lp_tag:8;	/*  local port tag		*/
43	u32        local_pid:24,	/*  local port ID		*/
44			cisc:8;
45	u8         fc_class;	/*  supported FC classes	*/
46	u8         vf_en;		/*  virtual fabric enable	*/
47	u16        vf_id;		/*  virtual fabric ID		*/
48};
49
50struct bfi_rport_create_rsp_s {
51	struct bfi_mhdr_s  mh;		/*  common msg header		*/
52	u8         status;		/*  rport creation status	*/
53	u8         rsvd[3];
54	u16        bfa_handle;	/*  host rport handle		*/
55	u16        fw_handle;	/*  firmware rport handle	*/
56	struct bfa_rport_qos_attr_s qos_attr;  /* QoS Attributes */
57};
58
59struct bfa_rport_speed_req_s {
60	struct bfi_mhdr_s  mh;		/*  common msg header		*/
61	u16        fw_handle;	/*  firmware rport handle	*/
62	u8		speed;		/*! rport's speed via RPSC  */
63	u8		rsvd;
64};
65
66struct bfi_rport_delete_req_s {
67	struct bfi_mhdr_s  mh;		/*  common msg header		*/
68	u16        fw_handle;	/*  firmware rport handle	*/
69	u16        rsvd;
70};
71
72struct bfi_rport_delete_rsp_s {
73	struct bfi_mhdr_s  mh;		/*  common msg header		*/
74	u16        bfa_handle;	/*  host rport handle		*/
75	u8         status;		/*  rport deletion status	*/
76	u8         rsvd;
77};
78
79struct bfi_rport_qos_scn_s {
80	struct bfi_mhdr_s  mh;		/*  common msg header		*/
81	u16        bfa_handle;	/*  host rport handle		*/
82	u16        rsvd;
83	struct bfa_rport_qos_attr_s old_qos_attr;  /* Old QoS Attributes */
84	struct bfa_rport_qos_attr_s new_qos_attr;  /* New QoS Attributes */
85};
86
87union bfi_rport_h2i_msg_u {
88	struct bfi_msg_s 		*msg;
89	struct bfi_rport_create_req_s	*create_req;
90	struct bfi_rport_delete_req_s	*delete_req;
91	struct bfi_rport_speed_req_s	*speed_req;
92};
93
94union bfi_rport_i2h_msg_u {
95	struct bfi_msg_s 		*msg;
96	struct bfi_rport_create_rsp_s	*create_rsp;
97	struct bfi_rport_delete_rsp_s	*delete_rsp;
98	struct bfi_rport_qos_scn_s	*qos_scn_evt;
99};
100
101#pragma pack()
102
103#endif /* __BFI_RPORT_H__ */
104