Lines Matching defs:vring_packed
1909 static void vring_free_packed(struct vring_virtqueue_packed *vring_packed,
1913 if (vring_packed->vring.desc)
1914 vring_free_queue(vdev, vring_packed->ring_size_in_bytes,
1915 vring_packed->vring.desc,
1916 vring_packed->ring_dma_addr,
1919 if (vring_packed->vring.driver)
1920 vring_free_queue(vdev, vring_packed->event_size_in_bytes,
1921 vring_packed->vring.driver,
1922 vring_packed->driver_event_dma_addr,
1925 if (vring_packed->vring.device)
1926 vring_free_queue(vdev, vring_packed->event_size_in_bytes,
1927 vring_packed->vring.device,
1928 vring_packed->device_event_dma_addr,
1931 kfree(vring_packed->desc_state);
1932 kfree(vring_packed->desc_extra);
1935 static int vring_alloc_queue_packed(struct vring_virtqueue_packed *vring_packed,
1953 vring_packed->vring.desc = ring;
1954 vring_packed->ring_dma_addr = ring_dma_addr;
1955 vring_packed->ring_size_in_bytes = ring_size_in_bytes;
1966 vring_packed->vring.driver = driver;
1967 vring_packed->event_size_in_bytes = event_size_in_bytes;
1968 vring_packed->driver_event_dma_addr = driver_event_dma_addr;
1977 vring_packed->vring.device = device;
1978 vring_packed->device_event_dma_addr = device_event_dma_addr;
1980 vring_packed->vring.num = num;
1985 vring_free_packed(vring_packed, vdev, dma_dev);
1989 static int vring_alloc_state_extra_packed(struct vring_virtqueue_packed *vring_packed)
1993 u32 num = vring_packed->vring.num;
2005 vring_packed->desc_state = state;
2006 vring_packed->desc_extra = extra;
2016 static void virtqueue_vring_init_packed(struct vring_virtqueue_packed *vring_packed,
2019 vring_packed->next_avail_idx = 0;
2020 vring_packed->avail_wrap_counter = 1;
2021 vring_packed->event_flags_shadow = 0;
2022 vring_packed->avail_used_flags = 1 << VRING_PACKED_DESC_F_AVAIL;
2026 vring_packed->event_flags_shadow = VRING_PACKED_EVENT_FLAG_DISABLE;
2027 vring_packed->vring.driver->flags =
2028 cpu_to_le16(vring_packed->event_flags_shadow);
2033 struct vring_virtqueue_packed *vring_packed)
2035 vq->packed = *vring_packed;
2066 struct vring_virtqueue_packed vring_packed = {};
2070 if (vring_alloc_queue_packed(&vring_packed, vdev, num, dma_dev))
2103 err = vring_alloc_state_extra_packed(&vring_packed);
2107 virtqueue_vring_init_packed(&vring_packed, !!callback);
2110 virtqueue_vring_attach_packed(vq, &vring_packed);
2120 vring_free_packed(&vring_packed, vdev, dma_dev);
2127 struct vring_virtqueue_packed vring_packed = {};
2132 if (vring_alloc_queue_packed(&vring_packed, vdev, num, vring_dma_dev(vq)))
2135 err = vring_alloc_state_extra_packed(&vring_packed);
2141 virtqueue_vring_init_packed(&vring_packed, !!vq->vq.callback);
2143 virtqueue_init(vq, vring_packed.vring.num);
2144 virtqueue_vring_attach_packed(vq, &vring_packed);
2149 vring_free_packed(&vring_packed, vdev, vring_dma_dev(vq));