diff options
Diffstat (limited to 'drivers/scsi/fcoe/fcoe.h')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/drivers/scsi/fcoe/fcoe.h b/drivers/scsi/fcoe/fcoe.h new file mode 100644 index 000000000000..4a9611f5a589 --- /dev/null +++ b/drivers/scsi/fcoe/fcoe.h | |||
@@ -0,0 +1,86 @@ | |||
1 | /* | ||
2 | * Copyright(c) 2009 Intel Corporation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it | ||
5 | * under the terms and conditions of the GNU General Public License, | ||
6 | * version 2, as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
11 | * more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License along with | ||
14 | * this program; if not, write to the Free Software Foundation, Inc., | ||
15 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. | ||
16 | * | ||
17 | * Maintained at www.Open-FCoE.org | ||
18 | */ | ||
19 | |||
20 | #ifndef _FCOE_H_ | ||
21 | #define _FCOE_H_ | ||
22 | |||
23 | #include <linux/skbuff.h> | ||
24 | #include <linux/kthread.h> | ||
25 | |||
26 | #define FCOE_MAX_QUEUE_DEPTH 256 | ||
27 | #define FCOE_LOW_QUEUE_DEPTH 32 | ||
28 | |||
29 | /* destination address mode */ | ||
30 | #define FCOE_GW_ADDR_MODE 0x00 | ||
31 | #define FCOE_FCOUI_ADDR_MODE 0x01 | ||
32 | |||
33 | #define FCOE_WORD_TO_BYTE 4 | ||
34 | |||
35 | #define FCOE_VERSION "0.1" | ||
36 | #define FCOE_NAME "fcoe" | ||
37 | #define FCOE_VENDOR "Open-FCoE.org" | ||
38 | |||
39 | #define FCOE_MAX_LUN 255 | ||
40 | #define FCOE_MAX_FCP_TARGET 256 | ||
41 | |||
42 | #define FCOE_MAX_OUTSTANDING_COMMANDS 1024 | ||
43 | |||
44 | #define FCOE_MIN_XID 0x0001 /* the min xid supported by fcoe_sw */ | ||
45 | #define FCOE_MAX_XID 0x07ef /* the max xid supported by fcoe_sw */ | ||
46 | |||
47 | /* | ||
48 | * this percpu struct for fcoe | ||
49 | */ | ||
50 | struct fcoe_percpu_s { | ||
51 | struct task_struct *thread; | ||
52 | struct sk_buff_head fcoe_rx_list; | ||
53 | struct page *crc_eof_page; | ||
54 | int crc_eof_offset; | ||
55 | }; | ||
56 | |||
57 | /* | ||
58 | * the fcoe sw transport private data | ||
59 | */ | ||
60 | struct fcoe_softc { | ||
61 | struct list_head list; | ||
62 | struct fc_lport *lp; | ||
63 | struct net_device *real_dev; | ||
64 | struct net_device *phys_dev; /* device with ethtool_ops */ | ||
65 | struct packet_type fcoe_packet_type; | ||
66 | struct sk_buff_head fcoe_pending_queue; | ||
67 | u8 fcoe_pending_queue_active; | ||
68 | |||
69 | u8 dest_addr[ETH_ALEN]; | ||
70 | u8 ctl_src_addr[ETH_ALEN]; | ||
71 | u8 data_src_addr[ETH_ALEN]; | ||
72 | /* | ||
73 | * fcoe protocol address learning related stuff | ||
74 | */ | ||
75 | u16 flogi_oxid; | ||
76 | u8 flogi_progress; | ||
77 | u8 address_mode; | ||
78 | }; | ||
79 | |||
80 | static inline struct net_device *fcoe_netdev( | ||
81 | const struct fc_lport *lp) | ||
82 | { | ||
83 | return ((struct fcoe_softc *)lport_priv(lp))->real_dev; | ||
84 | } | ||
85 | |||
86 | #endif /* _FCOE_H_ */ | ||