Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / net / ethernet / brocade / bna / bfi_cna.h
1 /*
2  * Linux network driver for QLogic BR-series Converged Network Adapter.
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License (GPL) Version 2 as
6  * published by the Free Software Foundation
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  * General Public License for more details.
12  */
13 /*
14  * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
15  * Copyright (c) 2014-2015 QLogic Corporation
16  * All rights reserved
17  * www.qlogic.com
18  */
19 #ifndef __BFI_CNA_H__
20 #define __BFI_CNA_H__
21
22 #include "bfi.h"
23 #include "bfa_defs_cna.h"
24
25 #pragma pack(1)
26
27 enum bfi_port_h2i {
28         BFI_PORT_H2I_ENABLE_REQ         = (1),
29         BFI_PORT_H2I_DISABLE_REQ        = (2),
30         BFI_PORT_H2I_GET_STATS_REQ      = (3),
31         BFI_PORT_H2I_CLEAR_STATS_REQ    = (4),
32 };
33
34 enum bfi_port_i2h {
35         BFI_PORT_I2H_ENABLE_RSP         = BFA_I2HM(1),
36         BFI_PORT_I2H_DISABLE_RSP        = BFA_I2HM(2),
37         BFI_PORT_I2H_GET_STATS_RSP      = BFA_I2HM(3),
38         BFI_PORT_I2H_CLEAR_STATS_RSP    = BFA_I2HM(4),
39 };
40
41 /* Generic REQ type */
42 struct bfi_port_generic_req {
43         struct bfi_mhdr mh;             /*!< msg header                     */
44         u32     msgtag;         /*!< msgtag for reply               */
45         u32     rsvd;
46 };
47
48 /* Generic RSP type */
49 struct bfi_port_generic_rsp {
50         struct bfi_mhdr mh;             /*!< common msg header              */
51         u8              status;         /*!< port enable status             */
52         u8              rsvd[3];
53         u32     msgtag;         /*!< msgtag for reply               */
54 };
55
56 /* BFI_PORT_H2I_GET_STATS_REQ */
57 struct bfi_port_get_stats_req {
58         struct bfi_mhdr mh;             /*!< common msg header              */
59         union bfi_addr_u   dma_addr;
60 };
61
62 union bfi_port_h2i_msg_u {
63         struct bfi_mhdr mh;
64         struct bfi_port_generic_req enable_req;
65         struct bfi_port_generic_req disable_req;
66         struct bfi_port_get_stats_req getstats_req;
67         struct bfi_port_generic_req clearstats_req;
68 };
69
70 union bfi_port_i2h_msg_u {
71         struct bfi_mhdr mh;
72         struct bfi_port_generic_rsp enable_rsp;
73         struct bfi_port_generic_rsp disable_rsp;
74         struct bfi_port_generic_rsp getstats_rsp;
75         struct bfi_port_generic_rsp clearstats_rsp;
76 };
77
78 /* @brief Mailbox commands from host to (DCBX/LLDP) firmware */
79 enum bfi_cee_h2i_msgs {
80         BFI_CEE_H2I_GET_CFG_REQ = 1,
81         BFI_CEE_H2I_RESET_STATS = 2,
82         BFI_CEE_H2I_GET_STATS_REQ = 3,
83 };
84
85 /* @brief Mailbox reply and AEN messages from DCBX/LLDP firmware to host */
86 enum bfi_cee_i2h_msgs {
87         BFI_CEE_I2H_GET_CFG_RSP = BFA_I2HM(1),
88         BFI_CEE_I2H_RESET_STATS_RSP = BFA_I2HM(2),
89         BFI_CEE_I2H_GET_STATS_RSP = BFA_I2HM(3),
90 };
91
92 /* Data structures */
93
94 /*
95  * @brief H2I command structure for resetting the stats.
96  * BFI_CEE_H2I_RESET_STATS
97  */
98 struct bfi_lldp_reset_stats {
99         struct bfi_mhdr mh;
100 };
101
102 /*
103  * @brief H2I command structure for resetting the stats.
104  * BFI_CEE_H2I_RESET_STATS
105  */
106 struct bfi_cee_reset_stats {
107         struct bfi_mhdr mh;
108 };
109
110 /*
111  * @brief  get configuration  command from host
112  * BFI_CEE_H2I_GET_CFG_REQ
113  */
114 struct bfi_cee_get_req {
115         struct bfi_mhdr mh;
116         union bfi_addr_u   dma_addr;
117 };
118
119 /*
120  * @brief reply message from firmware
121  * BFI_CEE_I2H_GET_CFG_RSP
122  */
123 struct bfi_cee_get_rsp {
124         struct bfi_mhdr mh;
125         u8                      cmd_status;
126         u8                      rsvd[3];
127 };
128
129 /*
130  * @brief  get configuration  command from host
131  * BFI_CEE_H2I_GET_STATS_REQ
132  */
133 struct bfi_cee_stats_req {
134         struct bfi_mhdr mh;
135         union bfi_addr_u   dma_addr;
136 };
137
138 /*
139  * @brief reply message from firmware
140  * BFI_CEE_I2H_GET_STATS_RSP
141  */
142 struct bfi_cee_stats_rsp {
143         struct bfi_mhdr mh;
144         u8                      cmd_status;
145         u8                      rsvd[3];
146 };
147
148 /* @brief mailbox command structures from host to firmware */
149 union bfi_cee_h2i_msg_u {
150         struct bfi_mhdr mh;
151         struct bfi_cee_get_req get_req;
152         struct bfi_cee_stats_req stats_req;
153 };
154
155 /* @brief mailbox message structures from firmware to host      */
156 union bfi_cee_i2h_msg_u {
157         struct bfi_mhdr mh;
158         struct bfi_cee_get_rsp get_rsp;
159         struct bfi_cee_stats_rsp stats_rsp;
160 };
161
162 #pragma pack()
163
164 #endif /* __BFI_CNA_H__ */