- size = (uword) (sizeof (*f)) * batch_size;
-
- oldheap = ssvm_push_heap (fsh->ssvm_sh);
- fmem = clib_mem_alloc_aligned_at_offset (size, CLIB_CACHE_LINE_BYTES,
- 0 /* align_offset */ ,
- 0 /* os_out_of_memory */ );
- ssvm_pop_heap (oldheap);
-
- /* Out of space.. */
- if (fmem == 0)
- return -1;
-
- /* Carve fifo + chunk space */
- for (i = 0; i < batch_size; i++)
- {
- f = (svm_fifo_t *) fmem;
- memset (f, 0, sizeof (*f));
- f->next = fss->free_fifos;
- fss->free_fifos = f;
- fmem += sizeof (*f);
- }
-
- fsh_free_bytes_sub (fsh, size);
-
- return 0;