upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / scsi / bfa / include / bfi / bfi_rport.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_RPORT_H__
19 #define __BFI_RPORT_H__
20
21 #include <bfi/bfi.h>
22
23 #pragma pack(1)
24
25 enum 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
31 enum 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
37 struct 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
50 struct 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
59 struct 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
66 struct 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
72 struct 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
79 struct 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
87 union 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
94 union 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