blob: 616245f704f91fe6b231fdea263384b304477dd1 [file]
/*
* Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <virtqueue.h>
#include <camkes/io.h>
#include <camkes/virtqueue.h>
struct vq_buf_alloc {
void *buffer;
unsigned len;
unsigned block_size;
unsigned free_list_size;
unsigned *free_list;
unsigned head;
};
struct vq_buf_alloc *init_vq_allocator(void *mem_pool, unsigned len, size_t block_size);
int camkes_virtqueue_driver_init_common(virtqueue_driver_t *driver, volatile void *buffer, unsigned queue_len,
size_t buffer_size, void (*notify)(void), size_t block_size);
int camkes_virtqueue_device_init_common(virtqueue_device_t *device, volatile void *buffer, unsigned queue_len,
void (*notify)(void));