upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / scsi / bfa / include / bfi / bfi_lps.h
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_LPS_H__
19 #define __BFI_LPS_H__
20
21 #include <bfi/bfi.h>
22
23 #pragma pack(1)
24
25 enum bfi_lps_h2i_msgs {
26         BFI_LPS_H2I_LOGIN_REQ   = 1,
27         BFI_LPS_H2I_LOGOUT_REQ  = 2,
28 };
29
30 enum bfi_lps_i2h_msgs {
31         BFI_LPS_H2I_LOGIN_RSP   = BFA_I2HM(1),
32         BFI_LPS_H2I_LOGOUT_RSP  = BFA_I2HM(2),
33         BFI_LPS_H2I_CVL_EVENT   = BFA_I2HM(3),
34 };
35
36 struct bfi_lps_login_req_s {
37         struct bfi_mhdr_s  mh;          /*  common msg header           */
38         u8              lp_tag;
39         u8              alpa;
40         u16     pdu_size;
41         wwn_t           pwwn;
42         wwn_t           nwwn;
43         u8              fdisc;
44         u8              auth_en;
45         u8              rsvd[2];
46 };
47
48 struct bfi_lps_login_rsp_s {
49         struct bfi_mhdr_s  mh;          /*  common msg header           */
50         u8              lp_tag;
51         u8              status;
52         u8              lsrjt_rsn;
53         u8              lsrjt_expl;
54         wwn_t           port_name;
55         wwn_t           node_name;
56         u16     bb_credit;
57         u8              f_port;
58         u8              npiv_en;
59         u32     lp_pid:24;
60         u32     auth_req:8;
61         mac_t           lp_mac;
62         mac_t           fcf_mac;
63         u8              ext_status;
64         u8      brcd_switch;/*  attached peer is brcd switch    */
65 };
66
67 struct bfi_lps_logout_req_s {
68         struct bfi_mhdr_s  mh;          /*  common msg header           */
69         u8              lp_tag;
70         u8              rsvd[3];
71         wwn_t           port_name;
72 };
73
74 struct bfi_lps_logout_rsp_s {
75         struct bfi_mhdr_s  mh;          /*  common msg header           */
76         u8              lp_tag;
77         u8              status;
78         u8              rsvd[2];
79 };
80
81 struct bfi_lps_cvl_event_s {
82         struct bfi_mhdr_s  mh;      /* common msg header      */
83         u8              lp_tag;
84         u8              rsvd[3];
85 };
86
87 union bfi_lps_h2i_msg_u {
88         struct bfi_mhdr_s               *msg;
89         struct bfi_lps_login_req_s      *login_req;
90         struct bfi_lps_logout_req_s     *logout_req;
91 };
92
93 union bfi_lps_i2h_msg_u {
94         struct bfi_msg_s                *msg;
95         struct bfi_lps_login_rsp_s      *login_rsp;
96         struct bfi_lps_logout_rsp_s     *logout_rsp;
97         struct bfi_lps_cvl_event_s      *cvl_event;
98 };
99
100 #pragma pack()
101
102 #endif /* __BFI_LPS_H__ */
103
104