diff options
Diffstat (limited to 'drivers/net/xen-netback/common.h')
-rw-r--r-- | drivers/net/xen-netback/common.h | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h index c47794b9d42f..ae413a2cbee7 100644 --- a/drivers/net/xen-netback/common.h +++ b/drivers/net/xen-netback/common.h | |||
@@ -143,12 +143,7 @@ struct xenvif { | |||
143 | char rx_irq_name[IFNAMSIZ+4]; /* DEVNAME-rx */ | 143 | char rx_irq_name[IFNAMSIZ+4]; /* DEVNAME-rx */ |
144 | struct xen_netif_rx_back_ring rx; | 144 | struct xen_netif_rx_back_ring rx; |
145 | struct sk_buff_head rx_queue; | 145 | struct sk_buff_head rx_queue; |
146 | 146 | RING_IDX rx_last_skb_slots; | |
147 | /* Allow xenvif_start_xmit() to peek ahead in the rx request | ||
148 | * ring. This is a prediction of what rx_req_cons will be | ||
149 | * once all queued skbs are put on the ring. | ||
150 | */ | ||
151 | RING_IDX rx_req_cons_peek; | ||
152 | 147 | ||
153 | /* This array is allocated seperately as it is large */ | 148 | /* This array is allocated seperately as it is large */ |
154 | struct gnttab_copy *grant_copy_op; | 149 | struct gnttab_copy *grant_copy_op; |
@@ -205,8 +200,6 @@ void xenvif_xenbus_fini(void); | |||
205 | 200 | ||
206 | int xenvif_schedulable(struct xenvif *vif); | 201 | int xenvif_schedulable(struct xenvif *vif); |
207 | 202 | ||
208 | int xenvif_rx_ring_full(struct xenvif *vif); | ||
209 | |||
210 | int xenvif_must_stop_queue(struct xenvif *vif); | 203 | int xenvif_must_stop_queue(struct xenvif *vif); |
211 | 204 | ||
212 | /* (Un)Map communication rings. */ | 205 | /* (Un)Map communication rings. */ |
@@ -218,21 +211,20 @@ int xenvif_map_frontend_rings(struct xenvif *vif, | |||
218 | /* Check for SKBs from frontend and schedule backend processing */ | 211 | /* Check for SKBs from frontend and schedule backend processing */ |
219 | void xenvif_check_rx_xenvif(struct xenvif *vif); | 212 | void xenvif_check_rx_xenvif(struct xenvif *vif); |
220 | 213 | ||
221 | /* Queue an SKB for transmission to the frontend */ | ||
222 | void xenvif_queue_tx_skb(struct xenvif *vif, struct sk_buff *skb); | ||
223 | /* Notify xenvif that ring now has space to send an skb to the frontend */ | ||
224 | void xenvif_notify_tx_completion(struct xenvif *vif); | ||
225 | |||
226 | /* Prevent the device from generating any further traffic. */ | 214 | /* Prevent the device from generating any further traffic. */ |
227 | void xenvif_carrier_off(struct xenvif *vif); | 215 | void xenvif_carrier_off(struct xenvif *vif); |
228 | 216 | ||
229 | /* Returns number of ring slots required to send an skb to the frontend */ | ||
230 | unsigned int xenvif_count_skb_slots(struct xenvif *vif, struct sk_buff *skb); | ||
231 | |||
232 | int xenvif_tx_action(struct xenvif *vif, int budget); | 217 | int xenvif_tx_action(struct xenvif *vif, int budget); |
233 | void xenvif_rx_action(struct xenvif *vif); | ||
234 | 218 | ||
235 | int xenvif_kthread(void *data); | 219 | int xenvif_kthread(void *data); |
220 | void xenvif_kick_thread(struct xenvif *vif); | ||
221 | |||
222 | /* Determine whether the needed number of slots (req) are available, | ||
223 | * and set req_event if not. | ||
224 | */ | ||
225 | bool xenvif_rx_ring_slots_available(struct xenvif *vif, int needed); | ||
226 | |||
227 | void xenvif_stop_queue(struct xenvif *vif); | ||
236 | 228 | ||
237 | extern bool separate_tx_rx_irq; | 229 | extern bool separate_tx_rx_irq; |
238 | 230 | ||