diff options
Diffstat (limited to 'drivers/scsi/fcoe/fcoe.h')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/drivers/scsi/fcoe/fcoe.h b/drivers/scsi/fcoe/fcoe.h new file mode 100644 index 000000000000..917aae886897 --- /dev/null +++ b/drivers/scsi/fcoe/fcoe.h | |||
@@ -0,0 +1,75 @@ | |||
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 | #define FCOE_WORD_TO_BYTE 4 | ||
30 | |||
31 | #define FCOE_VERSION "0.1" | ||
32 | #define FCOE_NAME "fcoe" | ||
33 | #define FCOE_VENDOR "Open-FCoE.org" | ||
34 | |||
35 | #define FCOE_MAX_LUN 255 | ||
36 | #define FCOE_MAX_FCP_TARGET 256 | ||
37 | |||
38 | #define FCOE_MAX_OUTSTANDING_COMMANDS 1024 | ||
39 | |||
40 | #define FCOE_MIN_XID 0x0001 /* the min xid supported by fcoe_sw */ | ||
41 | #define FCOE_MAX_XID 0x07ef /* the max xid supported by fcoe_sw */ | ||
42 | |||
43 | /* | ||
44 | * this percpu struct for fcoe | ||
45 | */ | ||
46 | struct fcoe_percpu_s { | ||
47 | struct task_struct *thread; | ||
48 | struct sk_buff_head fcoe_rx_list; | ||
49 | struct page *crc_eof_page; | ||
50 | int crc_eof_offset; | ||
51 | }; | ||
52 | |||
53 | /* | ||
54 | * the fcoe sw transport private data | ||
55 | */ | ||
56 | struct fcoe_softc { | ||
57 | struct list_head list; | ||
58 | struct net_device *real_dev; | ||
59 | struct net_device *phys_dev; /* device with ethtool_ops */ | ||
60 | struct packet_type fcoe_packet_type; | ||
61 | struct packet_type fip_packet_type; | ||
62 | struct sk_buff_head fcoe_pending_queue; | ||
63 | u8 fcoe_pending_queue_active; | ||
64 | struct fcoe_ctlr ctlr; | ||
65 | }; | ||
66 | |||
67 | #define fcoe_from_ctlr(fc) container_of(fc, struct fcoe_softc, ctlr) | ||
68 | |||
69 | static inline struct net_device *fcoe_netdev( | ||
70 | const struct fc_lport *lp) | ||
71 | { | ||
72 | return ((struct fcoe_softc *)lport_priv(lp))->real_dev; | ||
73 | } | ||
74 | |||
75 | #endif /* _FCOE_H_ */ | ||