Lines Matching defs:buffer
34 * buffer's worth of packets (for UDP we can only have at most one
35 * socket buffer's worth outstanding). This combined with the fact
154 * Special buffer handling
161 * Initialise a special buffer
163 * This will define a buffer (previously allocated via
164 * ef4_alloc_special_buffer()) in the buffer table, allowing
168 ef4_init_special_buffer(struct ef4_nic *efx, struct ef4_special_buffer *buffer)
175 EF4_BUG_ON_PARANOID(!buffer->buf.addr);
177 /* Write buffer descriptors to NIC */
178 for (i = 0; i < buffer->entries; i++) {
179 index = buffer->index + i;
180 dma_addr = buffer->buf.dma_addr + (i * EF4_BUF_SIZE);
182 "mapping special buffer %d at %llx\n",
192 /* Unmaps a buffer and clears the buffer table entries */
194 ef4_fini_special_buffer(struct ef4_nic *efx, struct ef4_special_buffer *buffer)
197 unsigned int start = buffer->index;
198 unsigned int end = (buffer->index + buffer->entries - 1);
200 if (!buffer->entries)
204 buffer->index, buffer->index + buffer->entries - 1);
215 * Allocate a new special buffer
217 * This allocates memory for a new buffer, clears it and allocates a
218 * new buffer ID range. It does not write into the buffer table.
224 struct ef4_special_buffer *buffer,
229 if (ef4_nic_alloc_buffer(efx, &buffer->buf, len, GFP_KERNEL))
231 buffer->entries = len / EF4_BUF_SIZE;
232 BUG_ON(buffer->buf.dma_addr & (EF4_BUF_SIZE - 1));
234 /* Select new buffer ID */
235 buffer->index = efx->next_buffer_table;
236 efx->next_buffer_table += buffer->entries;
240 "(virt %p phys %llx)\n", buffer->index,
241 buffer->index + buffer->entries - 1,
242 (u64)buffer->buf.dma_addr, len,
243 buffer->buf.addr, (u64)virt_to_phys(buffer->buf.addr));
249 ef4_free_special_buffer(struct ef4_nic *efx, struct ef4_special_buffer *buffer)
251 if (!buffer->buf.addr)
256 "(virt %p phys %llx)\n", buffer->index,
257 buffer->index + buffer->entries - 1,
258 (u64)buffer->buf.dma_addr, buffer->buf.len,
259 buffer->buf.addr, (u64)virt_to_phys(buffer->buf.addr));
261 ef4_nic_free_buffer(efx, &buffer->buf);
262 buffer->entries = 0;
308 struct ef4_tx_buffer *buffer;
319 buffer = &tx_queue->buffer[write_ptr];
323 EF4_BUG_ON_PARANOID(buffer->flags & EF4_TX_BUF_OPTION);
329 buffer->flags & EF4_TX_BUF_CONT,
330 FSF_AZ_TX_KER_BYTE_COUNT, buffer->len,
332 FSF_AZ_TX_KER_BUF_ADDR, buffer->dma_addr);
1326 /* Allocate buffer table entries for event queue */
1347 /* Pin event queue buffer */
1647 /* Account for the buffer table entries backing the datapath channels