Lines Matching defs:buffer

26 					 struct ef4_tx_buffer *buffer)
38 buffer->dma_addr = page_buf->dma_addr + offset;
39 buffer->unmap_len = 0;
44 struct ef4_tx_buffer *buffer, size_t len)
48 return ef4_tx_get_copy_buffer(tx_queue, buffer);
52 struct ef4_tx_buffer *buffer,
56 if (buffer->unmap_len) {
58 dma_addr_t unmap_addr = buffer->dma_addr - buffer->dma_offset;
59 if (buffer->flags & EF4_TX_BUF_MAP_SINGLE)
60 dma_unmap_single(dma_dev, unmap_addr, buffer->unmap_len,
63 dma_unmap_page(dma_dev, unmap_addr, buffer->unmap_len,
65 buffer->unmap_len = 0;
68 if (buffer->flags & EF4_TX_BUF_SKB) {
70 (*bytes_compl) += buffer->skb->len;
71 dev_consume_skb_any((struct sk_buff *)buffer->skb);
77 buffer->len = 0;
78 buffer->flags = 0;
153 struct ef4_tx_buffer *buffer;
159 buffer = ef4_tx_queue_get_insert_buffer(tx_queue);
161 copy_buffer = ef4_tx_get_copy_buffer(tx_queue, buffer);
169 buffer->len = min_len;
171 buffer->len = copy_len;
174 buffer->skb = skb;
175 buffer->flags = EF4_TX_BUF_SKB;
186 struct ef4_tx_buffer *buffer;
191 buffer = ef4_tx_queue_get_insert_buffer(tx_queue);
194 buffer->len = dma_len;
195 buffer->dma_addr = dma_addr;
196 buffer->flags = EF4_TX_BUF_CONT;
202 return buffer;
231 struct ef4_tx_buffer *buffer;
234 buffer = ef4_tx_map_chunk(tx_queue, dma_addr, len);
239 buffer->flags = EF4_TX_BUF_CONT | dma_flags;
240 buffer->unmap_len = unmap_len;
241 buffer->dma_offset = buffer->dma_addr - unmap_addr;
244 /* Store SKB details with the final buffer for
247 buffer->skb = skb;
248 buffer->flags = EF4_TX_BUF_SKB | dma_flags;
271 struct ef4_tx_buffer *buffer;
276 buffer = __ef4_tx_queue_get_insert_buffer(tx_queue);
277 ef4_dequeue_buffer(tx_queue, buffer, NULL, NULL);
282 * Add a socket buffer to a TX queue
284 * This maps all fragments of a socket buffer for DMA and adds them to
286 * the number of fragments in the socket buffer.
367 struct ef4_tx_buffer *buffer = &tx_queue->buffer[read_ptr];
369 if (!(buffer->flags & EF4_TX_BUF_OPTION) &&
370 unlikely(buffer->len == 0)) {
378 ef4_dequeue_buffer(tx_queue, buffer, pkts_compl, bytes_compl);
461 if (!tx_queue->buffer) {
555 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer),
557 if (!tx_queue->buffer)
578 kfree(tx_queue->buffer);
579 tx_queue->buffer = NULL;
609 struct ef4_tx_buffer *buffer;
614 if (!tx_queue->buffer)
620 buffer = &tx_queue->buffer[tx_queue->read_count & tx_queue->ptr_mask];
621 ef4_dequeue_buffer(tx_queue, buffer, &pkts_compl, &bytes_compl);
633 if (!tx_queue->buffer)
648 kfree(tx_queue->buffer);
649 tx_queue->buffer = NULL;