/seL4-camkes-master/projects/projects_libs/libvirtqueue/src/ |
H A D | virtqueue.c | 16 void virtqueue_init_driver(virtqueue_driver_t *vq, unsigned queue_len, vq_vring_avail_t *avail_ring, argument 23 vq->free_desc_head = 0; 24 vq->queue_len = queue_len; 25 vq->u_ring_last_seen = vq->queue_len - 1; 26 vq->avail_ring = avail_ring; 27 vq->used_ring = used_ring; 28 vq->desc_table = desc; 29 vq->notify = notify; 30 vq 37 virtqueue_init_device(virtqueue_device_t *vq, unsigned queue_len, vq_vring_avail_t *avail_ring, vq_vring_used_t *used_ring, vq_vring_desc_t *desc, void (*notify)(void), void *cookie) argument 76 vq_add_desc(virtqueue_driver_t *vq, void *buf, unsigned len, vq_flags_t flag, int prev) argument 104 vq_pop_desc(virtqueue_driver_t *vq, unsigned idx, void **buf, unsigned *len, vq_flags_t *flag) argument 121 virtqueue_add_available_buf(virtqueue_driver_t *vq, virtqueue_ring_object_t *obj, void *buf, unsigned len, vq_flags_t flag) argument 141 virtqueue_get_used_buf(virtqueue_driver_t *vq, virtqueue_ring_object_t *obj, uint32_t *len) argument 155 virtqueue_add_used_buf(virtqueue_device_t *vq, virtqueue_ring_object_t *robj, uint32_t len) argument 165 virtqueue_get_available_buf(virtqueue_device_t *vq, virtqueue_ring_object_t *robj) argument 184 virtqueue_scattered_available_size(virtqueue_device_t *vq, virtqueue_ring_object_t *robj) argument 196 virtqueue_gather_available(virtqueue_device_t *vq, virtqueue_ring_object_t *robj, void **buf, unsigned *len, vq_flags_t *flag) argument 215 virtqueue_gather_used(virtqueue_driver_t *vq, virtqueue_ring_object_t *robj, void **buf, unsigned *len, vq_flags_t *flag) argument [all...] |
/seL4-camkes-master/projects/projects_libs/libvirtqueue/include/ |
H A D | virtqueue.h | 18 #define VQ_DEV_POLL(vq) ((((vq)->a_ring_last_seen + 1) & ((vq)->queue_len - 1)) != (vq)->avail_ring->idx) 19 #define VQ_DRV_POLL(vq) ((((vq)->u_ring_last_seen + 1) & ((vq)->queue_len - 1)) != (vq)->used_ring->idx) 90 * @param vq the driver virtqueue 98 void virtqueue_init_driver(virtqueue_driver_t *vq, unsigne [all...] |
/seL4-camkes-master/projects/global-components/components/SerialServer/src/ |
H A D | server_virtqueue.c | 41 virtqueue_device_t *vq; member in struct:__anon2 58 virtqueue_device_t *vq = vq_token->vq; local 59 vq->notify(); 76 virtqueue_device_t *vq = vq_token->vq; local 79 if (camkes_virtqueue_device_scatter_copy_buffer(vq, &handle, serial_buf, buf_size) < 0) { 83 vq->notify(); 90 static void handle_virtqueue_message(virtqueue_device_t *vq, virtqueue_ring_object_t *handle, enum virtqueue_op op) argument 95 buf_size = virtqueue_scattered_available_size(vq, handl 128 handle_virtqueue_callback(virtqueue_device_t *vq, enum virtqueue_op op) argument [all...] |
/seL4-camkes-master/projects/camkes/apps/serialserver_loopback/components/Client/src/ |
H A D | client.c | 18 void handle_read_callback(virtqueue_driver_t *vq); 19 void handle_write_callback(virtqueue_driver_t *vq); 44 void handle_read_callback(virtqueue_driver_t *vq) argument 51 if (!virtqueue_get_used_buf(vq, &handle, &len)) { 59 if (camkes_virtqueue_driver_gather_copy_buffer(vq, &handle, buf, len) != 0) { 65 void handle_write_callback(virtqueue_driver_t *vq) argument 73 if (!virtqueue_get_used_buf(vq, &handle, &len)) { 77 while (camkes_virtqueue_driver_gather_buffer(vq, &handle, &buf, &len, &flags) == 0) { 79 camkes_virtqueue_buffer_free(vq, buf);
|
/seL4-camkes-master/projects/camkes-tool/libsel4camkes/src/ |
H A D | virtqueue.c | 158 int camkes_virtqueue_driver_send_buffer(virtqueue_driver_t *vq, void *buffer, size_t size) argument 160 uintptr_t base_offset = (uintptr_t)(((struct vq_buf_alloc *)vq->cookie)->buffer); 165 if (!virtqueue_add_available_buf(vq, &handle, (void *)buf_offset, size, VQ_RW)) { 172 static int chain_vq_buf(virtqueue_driver_t *vq, virtqueue_ring_object_t *handle, argument 175 struct vq_buf_alloc *allocator = vq->cookie; 178 if (!virtqueue_add_available_buf(vq, handle, (void *)offset, size, VQ_RW)) { 185 int camkes_virtqueue_driver_scatter_send_buffer(virtqueue_driver_t *vq, void *buffer, size_t size) argument 196 if (camkes_virtqueue_buffer_alloc(vq, &vq_buf, to_send)) { 203 if (chain_vq_buf(vq, &handle, vq_buf, to_send)) { 211 int camkes_virtqueue_driver_gather_copy_buffer(virtqueue_driver_t *vq, virtqueue_ring_object_ argument 231 camkes_virtqueue_device_scatter_copy_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle, void *buffer, size_t size) argument 254 camkes_virtqueue_device_gather_copy_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle, void *buffer, size_t size) argument 277 camkes_virtqueue_driver_gather_buffer(virtqueue_driver_t *vq, virtqueue_ring_object_t *handle, void **buffer, unsigned *size, vq_flags_t *flag) argument 288 camkes_virtqueue_device_gather_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle, void **buffer, unsigned *size, vq_flags_t *flag) argument [all...] |
/seL4-camkes-master/projects/camkes-tool/libsel4camkes/include/camkes/ |
H A D | virtqueue.h | 140 * @param vq the driver side virtqueue 145 int camkes_virtqueue_driver_send_buffer(virtqueue_driver_t *vq, void *buffer, size_t size); 150 * @param vq the driver side virtqueue 155 int camkes_virtqueue_driver_scatter_send_buffer(virtqueue_driver_t *vq, void *buffer, size_t size); 160 * @param vq the driver side virtqueue 166 int camkes_virtqueue_driver_gather_copy_buffer(virtqueue_driver_t *vq, virtqueue_ring_object_t *handle, 172 * @param vq the device side virtqueue 178 int camkes_virtqueue_device_scatter_copy_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle, 184 * @param vq the device side virtqueue 190 int camkes_virtqueue_device_gather_copy_buffer(virtqueue_device_t *vq, virtqueue_ring_object_ [all...] |
/seL4-camkes-master/projects/camkes/apps/cakeml_tipc/components/cakeml-filter/ |
H A D | componentScript.sml | 41 fun forward_message vq = case vq of 43 VirtQueue.VirtQueueDev _ => (case VirtQueue.device_recv vq of 45 val _ = VirtQueue.device_signal vq; 55 val _ = VirtQueue.driver_recv vq;
|
/seL4-camkes-master/projects/cakeml_libs/cakeml_libraries/libvirtqueue/ |
H A D | virtqueueScript.sml | 47 fun virtqueue_ptr vq = case vq of 152 fun poll vq = case vq of 158 fun select vqs = List.find (fn vq => poll vq = Ok 1) vqs 164 | Some vq => (f vq; select_loop f vqs)
|
/seL4-camkes-master/projects/seL4_projects_libs/libsel4vmmplatsupport/src/drivers/ |
H A D | virtio_net_emul.c | 45 vqueue_t *vq = &emul->virtq; local 47 struct vring *vring = &vq->vring[RX_QUEUE]; 53 uint16_t idx = vq->last_idx[RX_QUEUE]; 112 vq->last_idx[RX_QUEUE]++;
|