Lines Matching defs:buffer
37 * buffer's worth of packets (for UDP we can only have at most one
38 * socket buffer's worth outstanding). This combined with the fact
157 * Special buffer handling
164 * Initialise a special buffer
166 * This will define a buffer (previously allocated via
167 * efx_alloc_special_buffer()) in the buffer table, allowing
171 efx_init_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer)
178 EFX_WARN_ON_PARANOID(!buffer->buf.addr);
180 /* Write buffer descriptors to NIC */
181 for (i = 0; i < buffer->entries; i++) {
182 index = buffer->index + i;
183 dma_addr = buffer->buf.dma_addr + (i * EFX_BUF_SIZE);
185 "mapping special buffer %d at %llx\n",
195 /* Unmaps a buffer and clears the buffer table entries */
197 efx_fini_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer)
200 unsigned int start = buffer->index;
201 unsigned int end = (buffer->index + buffer->entries - 1);
203 if (!buffer->entries)
207 buffer->index, buffer->index + buffer->entries - 1);
218 * Allocate a new special buffer
220 * This allocates memory for a new buffer, clears it and allocates a
221 * new buffer ID range. It does not write into the buffer table.
227 struct efx_special_buffer *buffer,
235 if (efx_nic_alloc_buffer(efx, &buffer->buf, len, GFP_KERNEL))
237 buffer->entries = len / EFX_BUF_SIZE;
238 BUG_ON(buffer->buf.dma_addr & (EFX_BUF_SIZE - 1));
240 /* Select new buffer ID */
241 buffer->index = efx->next_buffer_table;
242 efx->next_buffer_table += buffer->entries;
250 "(virt %p phys %llx)\n", buffer->index,
251 buffer->index + buffer->entries - 1,
252 (u64)buffer->buf.dma_addr, len,
253 buffer->buf.addr, (u64)virt_to_phys(buffer->buf.addr));
259 efx_free_special_buffer(struct efx_nic *efx, struct efx_special_buffer *buffer)
261 if (!buffer->buf.addr)
266 "(virt %p phys %llx)\n", buffer->index,
267 buffer->index + buffer->entries - 1,
268 (u64)buffer->buf.dma_addr, buffer->buf.len,
269 buffer->buf.addr, (u64)virt_to_phys(buffer->buf.addr));
271 efx_nic_free_buffer(efx, &buffer->buf);
272 buffer->entries = 0;
318 struct efx_tx_buffer *buffer;
329 buffer = &tx_queue->buffer[write_ptr];
333 EFX_WARN_ON_ONCE_PARANOID(buffer->flags & EFX_TX_BUF_OPTION);
339 buffer->flags & EFX_TX_BUF_CONT,
340 FSF_AZ_TX_KER_BYTE_COUNT, buffer->len,
342 FSF_AZ_TX_KER_BUF_ADDR, buffer->dma_addr);
1334 /* Allocate buffer table entries for event queue */
1361 /* Pin event queue buffer */
1678 /* Account for the buffer table entries backing the datapath channels