Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / drivers / scsi / bfa / include / bfi / bfi_lport.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_LPORT_H__
19 #define __BFI_LPORT_H__
20
21 #include <bfi/bfi.h>
22
23 #pragma pack(1)
24
25 enum bfi_lport_h2i_msgs {
26         BFI_LPORT_H2I_CREATE_REQ = 1,
27         BFI_LPORT_H2I_DELETE_REQ = 2,
28 };
29
30 enum bfi_lport_i2h_msgs {
31         BFI_LPORT_I2H_CREATE_RSP = BFA_I2HM(1),
32         BFI_LPORT_I2H_DELETE_RSP = BFA_I2HM(2),
33         BFI_LPORT_I2H_ONLINE      = BFA_I2HM(3),
34         BFI_LPORT_I2H_OFFLINE     = BFA_I2HM(4),
35 };
36
37 #define BFI_LPORT_MAX_SYNNAME   64
38
39 enum bfi_lport_role_e {
40         BFI_LPORT_ROLE_FCPIM    = 1,
41         BFI_LPORT_ROLE_FCPTM    = 2,
42         BFI_LPORT_ROLE_IPFC     = 4,
43 };
44
45 struct bfi_lport_create_req_s {
46         bfi_mhdr_t      mh;             /*  common msg header           */
47         u16     fabric_fwhdl;   /*  parent fabric instance      */
48         u8              roles;          /*  lport FC-4 roles            */
49         u8              rsvd;
50         wwn_t           pwwn;           /*  port name                   */
51         wwn_t           nwwn;           /*  node name                   */
52         u8              symname[BFI_LPORT_MAX_SYNNAME];
53 };
54
55 struct bfi_lport_create_rsp_s {
56         bfi_mhdr_t      mh;             /*  common msg header           */
57         u8         status;              /*  lport creation status       */
58         u8         rsvd[3];
59 };
60
61 struct bfi_lport_delete_req_s {
62         bfi_mhdr_t      mh;             /*  common msg header           */
63         u16        fw_handle;   /*  firmware lport handle       */
64         u16        rsvd;
65 };
66
67 struct bfi_lport_delete_rsp_s {
68         bfi_mhdr_t      mh;             /*  common msg header           */
69         u16        bfa_handle;  /*  host lport handle           */
70         u8         status;              /*  lport deletion status       */
71         u8         rsvd;
72 };
73
74 union bfi_lport_h2i_msg_u {
75         bfi_msg_t               *msg;
76         struct bfi_lport_create_req_s   *create_req;
77         struct bfi_lport_delete_req_s   *delete_req;
78 };
79
80 union bfi_lport_i2h_msg_u {
81         bfi_msg_t               *msg;
82         struct bfi_lport_create_rsp_s   *create_rsp;
83         struct bfi_lport_delete_rsp_s   *delete_rsp;
84 };
85
86 #pragma pack()
87
88 #endif /* __BFI_LPORT_H__ */
89