diff options
author | Vasu Dev <vasu.dev@intel.com> | 2009-03-17 14:42:24 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-04-03 10:23:06 -0400 |
commit | fdd78027fd472351783fb6110a72d991c1a07402 (patch) | |
tree | 47b4ba0804601873cb15a739a1f5c91e46660655 /include/scsi | |
parent | 5e80f7f7c87990ffe7856a0d35a94ea52b8f4c59 (diff) |
[SCSI] fcoe: cleans up libfcoe.h and adds fcoe.h for fcoe module
Removes no where used several inline functions prefixed with skb_*
and be16_to_cpu.
Moves fcoe module specific func prototypes to fcoe.c from libfcoe.h,
moved only need for build.
Adds fcoe module header file fcoe.h and then moves fcoe module
specific fcoe_percpu_s and fcoe_softc to fcoe.h from libfcoe.h.
Moves all defines from fcoe.c to fcoe.h since now fcoe module
has its own header file fcoe.h.
[jejb: removed EXPORT_SYMBOL_GPL(fcoe_fc_crc) which caused a section mismatch]
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/libfcoe.h | 120 |
1 files changed, 2 insertions, 118 deletions
diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h index e99633cefd37..d07ebe688403 100644 --- a/include/scsi/libfcoe.h +++ b/include/scsi/libfcoe.h | |||
@@ -25,124 +25,8 @@ | |||
25 | #include <scsi/fc/fc_fcoe.h> | 25 | #include <scsi/fc/fc_fcoe.h> |
26 | #include <scsi/libfc.h> | 26 | #include <scsi/libfc.h> |
27 | 27 | ||
28 | /* | ||
29 | * this percpu struct for fcoe | ||
30 | */ | ||
31 | struct fcoe_percpu_s { | ||
32 | struct task_struct *thread; | ||
33 | struct sk_buff_head fcoe_rx_list; | ||
34 | struct page *crc_eof_page; | ||
35 | int crc_eof_offset; | ||
36 | }; | ||
37 | |||
38 | /* | ||
39 | * the fcoe sw transport private data | ||
40 | */ | ||
41 | struct fcoe_softc { | ||
42 | struct list_head list; | ||
43 | struct fc_lport *lp; | ||
44 | struct net_device *real_dev; | ||
45 | struct net_device *phys_dev; /* device with ethtool_ops */ | ||
46 | struct packet_type fcoe_packet_type; | ||
47 | struct sk_buff_head fcoe_pending_queue; | ||
48 | u8 fcoe_pending_queue_active; | ||
49 | |||
50 | u8 dest_addr[ETH_ALEN]; | ||
51 | u8 ctl_src_addr[ETH_ALEN]; | ||
52 | u8 data_src_addr[ETH_ALEN]; | ||
53 | /* | ||
54 | * fcoe protocol address learning related stuff | ||
55 | */ | ||
56 | u16 flogi_oxid; | ||
57 | u8 flogi_progress; | ||
58 | u8 address_mode; | ||
59 | }; | ||
60 | |||
61 | static inline struct net_device *fcoe_netdev( | ||
62 | const struct fc_lport *lp) | ||
63 | { | ||
64 | return ((struct fcoe_softc *)lport_priv(lp))->real_dev; | ||
65 | } | ||
66 | |||
67 | static inline struct fcoe_hdr *skb_fcoe_header(const struct sk_buff *skb) | ||
68 | { | ||
69 | return (struct fcoe_hdr *)skb_network_header(skb); | ||
70 | } | ||
71 | |||
72 | static inline int skb_fcoe_offset(const struct sk_buff *skb) | ||
73 | { | ||
74 | return skb_network_offset(skb); | ||
75 | } | ||
76 | |||
77 | static inline struct fc_frame_header *skb_fc_header(const struct sk_buff *skb) | ||
78 | { | ||
79 | return (struct fc_frame_header *)skb_transport_header(skb); | ||
80 | } | ||
81 | |||
82 | static inline int skb_fc_offset(const struct sk_buff *skb) | ||
83 | { | ||
84 | return skb_transport_offset(skb); | ||
85 | } | ||
86 | |||
87 | static inline void skb_reset_fc_header(struct sk_buff *skb) | ||
88 | { | ||
89 | skb_reset_network_header(skb); | ||
90 | skb_set_transport_header(skb, skb_network_offset(skb) + | ||
91 | sizeof(struct fcoe_hdr)); | ||
92 | } | ||
93 | |||
94 | static inline bool skb_fc_is_data(const struct sk_buff *skb) | ||
95 | { | ||
96 | return skb_fc_header(skb)->fh_r_ctl == FC_RCTL_DD_SOL_DATA; | ||
97 | } | ||
98 | |||
99 | static inline bool skb_fc_is_cmd(const struct sk_buff *skb) | ||
100 | { | ||
101 | return skb_fc_header(skb)->fh_r_ctl == FC_RCTL_DD_UNSOL_CMD; | ||
102 | } | ||
103 | |||
104 | static inline bool skb_fc_has_exthdr(const struct sk_buff *skb) | ||
105 | { | ||
106 | return (skb_fc_header(skb)->fh_r_ctl == FC_RCTL_VFTH) || | ||
107 | (skb_fc_header(skb)->fh_r_ctl == FC_RCTL_IFRH) || | ||
108 | (skb_fc_header(skb)->fh_r_ctl == FC_RCTL_ENCH); | ||
109 | } | ||
110 | |||
111 | static inline bool skb_fc_is_roff(const struct sk_buff *skb) | ||
112 | { | ||
113 | return skb_fc_header(skb)->fh_f_ctl[2] & FC_FC_REL_OFF; | ||
114 | } | ||
115 | |||
116 | static inline u16 skb_fc_oxid(const struct sk_buff *skb) | ||
117 | { | ||
118 | return be16_to_cpu(skb_fc_header(skb)->fh_ox_id); | ||
119 | } | ||
120 | |||
121 | static inline u16 skb_fc_rxid(const struct sk_buff *skb) | ||
122 | { | ||
123 | return be16_to_cpu(skb_fc_header(skb)->fh_rx_id); | ||
124 | } | ||
125 | |||
126 | /* libfcoe funcs */ | 28 | /* libfcoe funcs */ |
127 | int fcoe_reset(struct Scsi_Host *shost); | 29 | u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int); |
128 | u64 fcoe_wwn_from_mac(unsigned char mac[MAX_ADDR_LEN], | ||
129 | unsigned int scheme, unsigned int port); | ||
130 | |||
131 | u32 fcoe_fc_crc(struct fc_frame *fp); | ||
132 | int fcoe_xmit(struct fc_lport *, struct fc_frame *); | ||
133 | int fcoe_rcv(struct sk_buff *, struct net_device *, | ||
134 | struct packet_type *, struct net_device *); | ||
135 | |||
136 | int fcoe_percpu_receive_thread(void *arg); | ||
137 | void fcoe_clean_pending_queue(struct fc_lport *lp); | ||
138 | void fcoe_percpu_clean(struct fc_lport *lp); | ||
139 | void fcoe_watchdog(ulong vp); | ||
140 | int fcoe_link_ok(struct fc_lport *lp); | ||
141 | |||
142 | struct fc_lport *fcoe_hostlist_lookup(const struct net_device *); | ||
143 | int fcoe_hostlist_add(const struct fc_lport *); | ||
144 | int fcoe_hostlist_remove(const struct fc_lport *); | ||
145 | |||
146 | struct Scsi_Host *fcoe_host_alloc(struct scsi_host_template *, int); | ||
147 | int fcoe_libfc_config(struct fc_lport *, struct libfc_function_template *); | 30 | int fcoe_libfc_config(struct fc_lport *, struct libfc_function_template *); |
31 | |||
148 | #endif /* _LIBFCOE_H */ | 32 | #endif /* _LIBFCOE_H */ |