| Vasu Dev | fdd7802 | 2009-03-17 11:42:24 -0700 | [diff] [blame] | 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 |  | 
| Vasu Dev | fdd7802 | 2009-03-17 11:42:24 -0700 | [diff] [blame] | 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; | 
| Vasu Dev | fdd7802 | 2009-03-17 11:42:24 -0700 | [diff] [blame] | 58 | struct net_device *real_dev; | 
|  | 59 | struct net_device *phys_dev;		/* device with ethtool_ops */ | 
|  | 60 | struct packet_type  fcoe_packet_type; | 
| Joe Eykholt | 97c8389 | 2009-03-17 11:42:40 -0700 | [diff] [blame] | 61 | struct packet_type  fip_packet_type; | 
| Vasu Dev | fdd7802 | 2009-03-17 11:42:24 -0700 | [diff] [blame] | 62 | struct sk_buff_head fcoe_pending_queue; | 
|  | 63 | u8	fcoe_pending_queue_active; | 
| Joe Eykholt | 97c8389 | 2009-03-17 11:42:40 -0700 | [diff] [blame] | 64 | struct fcoe_ctlr ctlr; | 
| Vasu Dev | fdd7802 | 2009-03-17 11:42:24 -0700 | [diff] [blame] | 65 | }; | 
|  | 66 |  | 
| Joe Eykholt | 97c8389 | 2009-03-17 11:42:40 -0700 | [diff] [blame] | 67 | #define fcoe_from_ctlr(fc) container_of(fc, struct fcoe_softc, ctlr) | 
|  | 68 |  | 
| Vasu Dev | fdd7802 | 2009-03-17 11:42:24 -0700 | [diff] [blame] | 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_ */ |