• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/bfa/include/bfi/
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_PPORT_H__
18#define __BFI_PPORT_H__
19
20#include <bfi/bfi.h>
21#include <defs/bfa_defs_pport.h>
22
23#pragma pack(1)
24
25enum bfi_fcport_h2i {
26	BFI_FCPORT_H2I_ENABLE_REQ		= (1),
27	BFI_FCPORT_H2I_DISABLE_REQ		= (2),
28	BFI_FCPORT_H2I_SET_SVC_PARAMS_REQ	= (3),
29	BFI_FCPORT_H2I_STATS_GET_REQ		= (4),
30	BFI_FCPORT_H2I_STATS_CLEAR_REQ		= (5),
31};
32
33enum bfi_fcport_i2h {
34	BFI_FCPORT_I2H_ENABLE_RSP		= BFA_I2HM(1),
35	BFI_FCPORT_I2H_DISABLE_RSP		= BFA_I2HM(2),
36	BFI_FCPORT_I2H_SET_SVC_PARAMS_RSP	= BFA_I2HM(3),
37	BFI_FCPORT_I2H_STATS_GET_RSP		= BFA_I2HM(4),
38	BFI_FCPORT_I2H_STATS_CLEAR_RSP		= BFA_I2HM(5),
39	BFI_FCPORT_I2H_EVENT			= BFA_I2HM(6),
40};
41
42/**
43 * Generic REQ type
44 */
45struct bfi_fcport_req_s {
46	struct bfi_mhdr_s  mh;		/*  msg header			    */
47	u32	   msgtag;	/*  msgtag for reply		    */
48};
49
50/**
51 * Generic RSP type
52 */
53struct bfi_fcport_rsp_s {
54	struct bfi_mhdr_s  mh;		/*  common msg header		    */
55	u8		   status;	/*  port enable status		    */
56	u8		   rsvd[3];
57	u32	   msgtag;	/*  msgtag for reply		    */
58};
59
60/**
61 * BFI_FCPORT_H2I_ENABLE_REQ
62 */
63struct bfi_fcport_enable_req_s {
64	struct bfi_mhdr_s  mh;		/*  msg header			    */
65	u32	   rsvd1;
66	wwn_t		   nwwn;	/*  node wwn of physical port	    */
67	wwn_t		   pwwn;	/*  port wwn of physical port	    */
68	struct bfa_pport_cfg_s port_cfg; /*  port configuration	    */
69	union bfi_addr_u   stats_dma_addr; /*  DMA address for stats	    */
70	u32	   msgtag;	/*  msgtag for reply		    */
71	u32	   rsvd2;
72};
73
74/**
75 * BFI_FCPORT_H2I_SET_SVC_PARAMS_REQ
76 */
77struct bfi_fcport_set_svc_params_req_s {
78	struct bfi_mhdr_s  mh;		/*  msg header */
79	u16	   tx_bbcredit;	/*  Tx credits */
80	u16	   rsvd;
81};
82
83/**
84 * BFI_FCPORT_I2H_EVENT
85 */
86struct bfi_fcport_event_s {
87	struct bfi_mhdr_s 	mh;	/*  common msg header */
88	struct bfa_pport_link_s	link_state;
89};
90
91/**
92 * fcport H2I message
93 */
94union bfi_fcport_h2i_msg_u {
95	struct bfi_mhdr_s			*mhdr;
96	struct bfi_fcport_enable_req_s		*penable;
97	struct bfi_fcport_req_s			*pdisable;
98	struct bfi_fcport_set_svc_params_req_s	*psetsvcparams;
99	struct bfi_fcport_req_s			*pstatsget;
100	struct bfi_fcport_req_s			*pstatsclear;
101};
102
103/**
104 * fcport I2H message
105 */
106union bfi_fcport_i2h_msg_u {
107	struct bfi_msg_s			*msg;
108	struct bfi_fcport_rsp_s			*penable_rsp;
109	struct bfi_fcport_rsp_s			*pdisable_rsp;
110	struct bfi_fcport_rsp_s			*psetsvcparams_rsp;
111	struct bfi_fcport_rsp_s			*pstatsget_rsp;
112	struct bfi_fcport_rsp_s			*pstatsclear_rsp;
113	struct bfi_fcport_event_s		*event;
114};
115
116#pragma pack()
117
118#endif /* __BFI_PPORT_H__ */
119