upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / scsi / bfa / include / bfi / bfi_port.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 #ifndef __BFI_PORT_H__
18 #define __BFI_PORT_H__
19
20 #include <bfi/bfi.h>
21 #include <defs/bfa_defs_pport.h>
22
23 #pragma pack(1)
24
25 enum bfi_port_h2i {
26         BFI_PORT_H2I_ENABLE_REQ         = (1),
27         BFI_PORT_H2I_DISABLE_REQ        = (2),
28         BFI_PORT_H2I_GET_STATS_REQ      = (3),
29         BFI_PORT_H2I_CLEAR_STATS_REQ    = (4),
30 };
31
32 enum bfi_port_i2h {
33         BFI_PORT_I2H_ENABLE_RSP         = BFA_I2HM(1),
34         BFI_PORT_I2H_DISABLE_RSP        = BFA_I2HM(2),
35         BFI_PORT_I2H_GET_STATS_RSP      = BFA_I2HM(3),
36         BFI_PORT_I2H_CLEAR_STATS_RSP    = BFA_I2HM(4),
37 };
38
39 /**
40  * Generic REQ type
41  */
42 struct bfi_port_generic_req_s {
43         struct bfi_mhdr_s  mh;          /*  msg header                      */
44         u32        msgtag;              /*  msgtag for reply                */
45         u32     rsvd;
46 };
47
48 /**
49  * Generic RSP type
50  */
51 struct bfi_port_generic_rsp_s {
52         struct bfi_mhdr_s  mh;          /*  common msg header               */
53         u8         status;              /*  port enable status              */
54         u8         rsvd[3];
55         u32        msgtag;              /*  msgtag for reply                */
56 };
57
58 /**
59  * @todo
60  * BFI_PORT_H2I_ENABLE_REQ
61  */
62
63 /**
64  * @todo
65  * BFI_PORT_I2H_ENABLE_RSP
66  */
67
68 /**
69  * BFI_PORT_H2I_DISABLE_REQ
70  */
71
72 /**
73  * BFI_PORT_I2H_DISABLE_RSP
74  */
75
76 /**
77  * BFI_PORT_H2I_GET_STATS_REQ
78  */
79 struct bfi_port_get_stats_req_s {
80         struct bfi_mhdr_s  mh;          /*  common msg header               */
81         union bfi_addr_u   dma_addr;
82 };
83
84 /**
85  * BFI_PORT_I2H_GET_STATS_RSP
86  */
87
88 /**
89  * BFI_PORT_H2I_CLEAR_STATS_REQ
90  */
91
92 /**
93  * BFI_PORT_I2H_CLEAR_STATS_RSP
94  */
95
96 union bfi_port_h2i_msg_u {
97         struct bfi_mhdr_s               mh;
98         struct bfi_port_generic_req_s   enable_req;
99         struct bfi_port_generic_req_s   disable_req;
100         struct bfi_port_get_stats_req_s getstats_req;
101         struct bfi_port_generic_req_s   clearstats_req;
102 };
103
104 union bfi_port_i2h_msg_u {
105         struct bfi_mhdr_s               mh;
106         struct bfi_port_generic_rsp_s   enable_rsp;
107         struct bfi_port_generic_rsp_s   disable_rsp;
108         struct bfi_port_generic_rsp_s   getstats_rsp;
109         struct bfi_port_generic_rsp_s   clearstats_rsp;
110 };
111
112 #pragma pack()
113
114 #endif /* __BFI_PORT_H__ */
115