Lines Matching defs:buffer
38 * buffer's worth of packets (for UDP we can only have at most one
39 * socket buffer's worth outstanding). This combined with the fact
158 * Special buffer handling
165 * Initialise a special buffer
167 * This will define a buffer (previously allocated via
168 * efx_alloc_special_buffer()) in the buffer table, allowing
172 efx_init_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer)
179 EFX_WARN_ON_PARANOID(!buffer->buf.addr);
181 /* Write buffer descriptors to NIC */
182 for (i = 0; i < buffer->entries; i++) {
183 index = buffer->index + i;
184 dma_addr = buffer->buf.dma_addr + (i * EFX_BUF_SIZE);
186 "mapping special buffer %d at %llx\n",
196 /* Unmaps a buffer and clears the buffer table entries */
198 efx_fini_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer)
201 unsigned int start = buffer->index;
202 unsigned int end = (buffer->index + buffer->entries - 1);
204 if (!buffer->entries)
208 buffer->index, buffer->index + buffer->entries - 1);
219 * Allocate a new special buffer
221 * This allocates memory for a new buffer, clears it and allocates a
222 * new buffer ID range. It does not write into the buffer table.
228 struct efx_special_buffer *buffer,
236 if (efx_siena_alloc_buffer(efx, &buffer->buf, len, GFP_KERNEL))
238 buffer->entries = len / EFX_BUF_SIZE;
239 BUG_ON(buffer->buf.dma_addr & (EFX_BUF_SIZE - 1));
241 /* Select new buffer ID */
242 buffer->index = efx->next_buffer_table;
243 efx->next_buffer_table += buffer->entries;
251 "(virt %p phys %llx)\n", buffer->index,
252 buffer->index + buffer->entries - 1,
253 (u64)buffer->buf.dma_addr, len,
254 buffer->buf.addr, (u64)virt_to_phys(buffer->buf.addr));
260 efx_free_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer)
262 if (!buffer->buf.addr)
267 "(virt %p phys %llx)\n", buffer->index,
268 buffer->index + buffer->entries - 1,
269 (u64)buffer->buf.dma_addr, buffer->buf.len,
270 buffer->buf.addr, (u64)virt_to_phys(buffer->buf.addr));
272 efx_siena_free_buffer(efx, &buffer->buf);
273 buffer->entries = 0;
319 struct efx_tx_buffer *buffer;
330 buffer = &tx_queue->buffer[write_ptr];
334 EFX_WARN_ON_ONCE_PARANOID(buffer->flags & EFX_TX_BUF_OPTION);
340 buffer->flags & EFX_TX_BUF_CONT,
341 FSF_AZ_TX_KER_BYTE_COUNT, buffer->len,
343 FSF_AZ_TX_KER_BUF_ADDR, buffer->dma_addr);
1336 /* Allocate buffer table entries for event queue */
1363 /* Pin event queue buffer */
1684 /* Account for the buffer table entries backing the datapath channels