Home
last modified time | relevance | path

Searched refs:ring (Results 1 – 25 of 69) sorted by relevance

123

/openbmc/qemu/hw/net/rocker/
H A Drocker_desc.c40 DescRing *ring; member
58 PCIDevice *dev = PCI_DEVICE(info->ring->r); in desc_get_buf()
74 PCIDevice *dev = PCI_DEVICE(info->ring->r); in desc_set_buf()
91 return info->ring; in desc_get_ring()
94 int desc_ring_index(DescRing *ring) in desc_ring_index() argument
96 return ring->index; in desc_ring_index()
99 static bool desc_ring_empty(DescRing *ring) in desc_ring_empty() argument
101 return ring->head == ring->tail; in desc_ring_empty()
104 bool desc_ring_set_base_addr(DescRing *ring, uint64_t base_addr) in desc_ring_set_base_addr() argument
108 ") not 8-byte aligned\n", ring->index, base_addr); in desc_ring_set_base_addr()
[all …]
H A Drocker_desc.h30 int desc_ring_index(DescRing *ring);
31 bool desc_ring_set_base_addr(DescRing *ring, uint64_t base_addr);
32 uint64_t desc_ring_get_base_addr(DescRing *ring);
33 bool desc_ring_set_size(DescRing *ring, uint32_t size);
34 uint32_t desc_ring_get_size(DescRing *ring);
35 bool desc_ring_set_head(DescRing *ring, uint32_t new);
36 uint32_t desc_ring_get_head(DescRing *ring);
37 uint32_t desc_ring_get_tail(DescRing *ring);
38 void desc_ring_set_ctrl(DescRing *ring, uint32_t val);
39 bool desc_ring_ret_credits(DescRing *ring, uint32_t credits);
[all …]
H A Drocker.c138 DescRing *ring) in rocker_get_pport_by_tx_ring() argument
140 return (desc_ring_index(ring) - 2) / 2 + 1; in rocker_get_pport_by_tx_ring()
475 DescRing *ring = r->rings[ROCKER_RING_EVENT]; in rocker_event_link_changed() local
476 DescInfo *info = desc_ring_fetch_desc(ring); in rocker_event_link_changed()
516 if (desc_ring_post_desc(ring, err)) { in rocker_event_link_changed()
526 DescRing *ring = r->rings[ROCKER_RING_EVENT]; in rocker_event_mac_vlan_seen() local
544 info = desc_ring_fetch_desc(ring); in rocker_event_mac_vlan_seen()
579 if (desc_ring_post_desc(ring, err)) { in rocker_event_mac_vlan_seen()
597 DescRing *ring = rocker_get_rx_ring_by_pport(r, pport); in rx_produce() local
598 DescInfo *info = desc_ring_fetch_desc(ring); in rx_produce()
[all …]
/openbmc/u-boot/drivers/usb/host/
H A Dxhci-ring.c35 static int last_trb(struct xhci_ctrl *ctrl, struct xhci_ring *ring, in last_trb() argument
38 if (ring == ctrl->event_ring) in last_trb()
55 struct xhci_ring *ring, in last_trb_on_last_seg() argument
59 if (ring == ctrl->event_ring) in last_trb_on_last_seg()
61 (seg->next == ring->first_seg)); in last_trb_on_last_seg()
88 static void inc_enq(struct xhci_ctrl *ctrl, struct xhci_ring *ring, in inc_enq() argument
94 chain = le32_to_cpu(ring->enqueue->generic.field[3]) & TRB_CHAIN; in inc_enq()
95 next = ++(ring->enqueue); in inc_enq()
101 while (last_trb(ctrl, ring, ring->enq_seg, next)) { in inc_enq()
102 if (ring != ctrl->event_ring) { in inc_enq()
[all …]
H A Dxhci-mem.c78 static void xhci_ring_free(struct xhci_ring *ring) in xhci_ring_free() argument
83 BUG_ON(!ring); in xhci_ring_free()
85 first_seg = ring->first_seg; in xhci_ring_free()
94 free(ring); in xhci_ring_free()
152 if (virt_dev->eps[i].ring) in xhci_free_virt_devices()
153 xhci_ring_free(virt_dev->eps[i].ring); in xhci_free_virt_devices()
245 static void xhci_initialize_ring_info(struct xhci_ring *ring) in xhci_initialize_ring_info() argument
250 ring->enqueue = ring->first_seg->trbs; in xhci_initialize_ring_info()
251 ring->enq_seg = ring->first_seg; in xhci_initialize_ring_info()
252 ring->dequeue = ring->enqueue; in xhci_initialize_ring_info()
[all …]
/openbmc/qemu/hw/usb/
H A Dhost-libusb.c139 USBHostIsoRing *ring; member
534 QTAILQ_REMOVE(&xfer->ring->inflight, xfer, next); in usb_host_req_complete_iso()
535 if (QTAILQ_EMPTY(&xfer->ring->inflight)) { in usb_host_req_complete_iso()
536 USBHostDevice *s = xfer->ring->host; in usb_host_req_complete_iso()
537 trace_usb_host_iso_stop(s->bus_num, s->addr, xfer->ring->ep->nr); in usb_host_req_complete_iso()
539 if (xfer->ring->ep->pid == USB_TOKEN_IN) { in usb_host_req_complete_iso()
540 QTAILQ_INSERT_TAIL(&xfer->ring->copy, xfer, next); in usb_host_req_complete_iso()
541 usb_wakeup(xfer->ring->ep, 0); in usb_host_req_complete_iso()
543 QTAILQ_INSERT_TAIL(&xfer->ring->unused, xfer, next); in usb_host_req_complete_iso()
549 USBHostIsoRing *ring = g_new0(USBHostIsoRing, 1); in usb_host_iso_alloc() local
[all …]
H A Dhcd-xhci.c268 XHCIRing ring; member
276 XHCIRing ring; member
684 static void xhci_ring_init(XHCIState *xhci, XHCIRing *ring, in xhci_ring_init() argument
687 ring->dequeue = base; in xhci_ring_init()
688 ring->ccs = 1; in xhci_ring_init()
691 static TRBType xhci_ring_fetch(XHCIState *xhci, XHCIRing *ring, XHCITRB *trb, in xhci_ring_fetch() argument
698 if (dma_memory_read(xhci->as, ring->dequeue, trb, TRB_SIZE, in xhci_ring_fetch()
704 trb->addr = ring->dequeue; in xhci_ring_fetch()
705 trb->ccs = ring->ccs; in xhci_ring_fetch()
710 trace_usb_xhci_fetch_trb(ring->dequeue, trb_name(trb), in xhci_ring_fetch()
[all …]
H A Dxen-usb.c589 struct usbif_conn_back_ring *ring = &usbif->conn_ring; in usbback_hotplug_notify() local
600 if ((RING_SIZE(ring) - ring->rsp_prod_pvt - ring->req_cons) == 0) { in usbback_hotplug_notify()
608 RING_COPY_REQUEST(ring, ring->req_cons, &req); in usbback_hotplug_notify()
609 ring->req_cons++; in usbback_hotplug_notify()
610 ring->sring->req_event = ring->req_cons + 1; in usbback_hotplug_notify()
612 res = RING_GET_RESPONSE(ring, ring->rsp_prod_pvt); in usbback_hotplug_notify()
616 ring->rsp_prod_pvt++; in usbback_hotplug_notify()
617 RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(ring, notify); in usbback_hotplug_notify()
/openbmc/qemu/docs/specs/
H A Dvmw_pvscsi-spec.rst37 Request ring (``struct PVSCSIRingReqDesc *req_ring``)
38 ring for OS to device requests
40 Completion ring (``struct PVSCSIRingCmpDesc *cmp_ring``)
41 ring for device request completions
43 Message ring (``struct PVSCSIRingMsgDesc *msg_ring``)
44 ring for messages from device. This ring is optional and the
55 Completion interrupts (completion ring notifications):
60 Message interrupts (message ring notifications):
96 b. Flush request ring using ``PVSCSI_REG_OFFSET_KICK_NON_RW_IO``
102 a. Fill next free request ring descriptor
H A Drocker.rst128 0 Command descriptor ring completion
129 1 Event descriptor ring completion
132 4-255 Tx and Rx descriptor ring completion
151 are enabled or any commands are issued on the command ring.
160 set of control registers to manage a descriptor ring. The descriptor rings are
167 ring, and hardware will set this bit when the descriptor is complete.
169 Descriptor ring sizes must be a power of 2 and range from 2 to 64K entries.
171 packed within ring. Each descriptor in each ring must also be aligned on an 8
172 byte boundary. Each descriptor ring will have these registers::
182 Where x is descriptor ring index::
[all …]
/openbmc/qemu/include/hw/ppc/
H A Dxive.h363 static inline uint32_t xive_tctx_word2(uint8_t *ring) in xive_tctx_word2() argument
365 return *((uint32_t *) &ring[TM_WORD2]); in xive_tctx_word2()
368 bool xive_ring_valid(XiveTCTX *tctx, uint8_t ring);
369 bool xive_nsr_indicates_exception(uint8_t ring, uint8_t nsr);
370 bool xive_nsr_indicates_group_exception(uint8_t ring, uint8_t nsr);
371 uint8_t xive_nsr_exception_ring(uint8_t ring, uint8_t nsr);
430 uint8_t ring; member
562 static inline uint8_t *xive_tctx_signal_regs(XiveTCTX *tctx, uint8_t ring) in xive_tctx_signal_regs() argument
572 if (ring == TM_QW2_HV_POOL) { in xive_tctx_signal_regs()
574 ring = TM_QW3_HV_PHYS; in xive_tctx_signal_regs()
[all …]
/openbmc/qemu/include/standard-headers/linux/
H A Dvirtio_ring.h115 __virtio16 ring[]; member
132 vring_used_elem_t ring[]; member
194 #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num])
195 #define vring_avail_event(vr) (*(__virtio16 *)&(vr)->used->ring[(vr)->num])
203 vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16) in vring_init()
/openbmc/qemu/hw/intc/
H A Dxive.c28 bool xive_ring_valid(XiveTCTX *tctx, uint8_t ring) in xive_ring_valid() argument
32 for (cur_ring = ring; cur_ring <= TM_QW3_HV_PHYS; in xive_ring_valid()
41 bool xive_nsr_indicates_exception(uint8_t ring, uint8_t nsr) in xive_nsr_indicates_exception() argument
43 switch (ring) { in xive_nsr_indicates_exception()
54 bool xive_nsr_indicates_group_exception(uint8_t ring, uint8_t nsr) in xive_nsr_indicates_group_exception() argument
57 g_assert(xive_nsr_indicates_exception(ring, nsr)); in xive_nsr_indicates_group_exception()
63 uint8_t xive_nsr_exception_ring(uint8_t ring, uint8_t nsr) in xive_nsr_exception_ring() argument
66 if ((ring == TM_QW3_HV_PHYS) || (ring == TM_QW2_HV_POOL)) { in xive_nsr_exception_ring()
78 return ring; in xive_nsr_exception_ring()
81 static qemu_irq xive_tctx_output(XiveTCTX *tctx, uint8_t ring) in xive_tctx_output() argument
[all …]
/openbmc/u-boot/include/
H A Dvirtio_ring.h61 __virtio16 ring[]; member
74 struct vring_used_elem ring[]; member
125 #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num])
126 #define vring_avail_event(vr) (*(__virtio16 *)&(vr)->used->ring[(vr)->num])
134 vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + in vring_init()
/openbmc/qemu/util/
H A Dfdmon-io_uring.c9 * ring) is shared between the kernel and userspace. This allows
37 * io_uring calls the submission queue the "sq ring" and the completion queue
38 * the "cq ring". Ring entries are called "sqe" and "cqe", respectively.
55 FDMON_IO_URING_ENTRIES = 128, /* sq/cq ring size */
86 struct io_uring *ring = &ctx->fdmon_io_uring; in get_sqe()
87 struct io_uring_sqe *sqe = io_uring_get_sqe(ring); in get_sqe()
96 ret = io_uring_submit(ring); in get_sqe()
100 sqe = io_uring_get_sqe(ring);
105 /* Atomically enqueue an AioHandler for sq ring submission */ in enqueue()
116 /* Dequeue an AioHandler for sq ring submissio in dequeue()
82 struct io_uring *ring = &ctx->fdmon_io_uring; get_sqe() local
257 struct io_uring *ring = &ctx->fdmon_io_uring; process_cq_ring() local
[all...]
/openbmc/qemu/include/hw/xen/interface/io/
H A Dconsole.h15 #define MASK_XENCONS_IDX(idx, ring) ((idx) & (sizeof(ring)-1)) argument
H A Dring.h52 (__RD32(((_sz) - offsetof(struct _s##_sring, ring)) / \
53 sizeof(((struct _s##_sring *)0)->ring[0])))
58 (__RD32(((_sz) - (long)(_s)->ring + (long)(_s)) / sizeof((_s)->ring[0])))
113 union __name##_sring_entry ring[1]; /* variable-length */ \
233 (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].req))
236 (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].rsp))
/openbmc/qemu/block/
H A Dlinux-aio.c146 struct aio_ring *ring = (struct aio_ring *)ctx; in io_getevents_peek() local
147 unsigned int head = ring->head, tail = ring->tail; in io_getevents_peek()
150 nr = tail >= head ? tail - head : ring->nr - head; in io_getevents_peek()
151 *events = ring->io_events + head; in io_getevents_peek()
168 struct aio_ring *ring = (struct aio_ring *)ctx; in io_getevents_commit() local
171 ring->head = (ring->head + nr) % ring->nr; in io_getevents_commit()
/openbmc/qemu/hw/display/
H A Dqxl.c408 QXLReleaseRing *ring; in init_qxl_ram() local
424 ring = &d->ram->release_ring; in init_qxl_ram()
425 prod = ring->prod & SPICE_RING_INDEX_MASK(ring); in init_qxl_ram()
426 assert(prod < ARRAY_SIZE(ring->items)); in init_qxl_ram()
427 ring->items[prod].el = 0; in init_qxl_ram()
630 QXLCommandRing *ring; in interface_get_command() local
655 ring = &qxl->ram->cmd_ring; in interface_get_command()
656 if (qxl->guest_bug || SPICE_RING_IS_EMPTY(ring)) { in interface_get_command()
659 SPICE_RING_CONS_ITEM(qxl, ring, cmd); in interface_get_command()
666 SPICE_RING_POP(ring, notify); in interface_get_command()
[all …]
/openbmc/qemu/pc-bios/s390-ccw/
H A Dvirtio-net.c110 len = rxvq->used->ring[rx_last_idx % rxvq->num].len - sizeof(VirtioNetHdr); in recv()
115 id = rxvq->used->ring[rx_last_idx % rxvq->num].id % rxvq->num; in recv()
134 rxvq->avail->ring[rxvq->avail->idx % rxvq->num] = id; in recv()
/openbmc/u-boot/drivers/usb/musb-new/
H A Dmusb_host.h32 struct list_head ring; /* of musb_qh */ member
59 return list_entry(q->next, struct musb_qh, ring); in first_qh()
/openbmc/u-boot/drivers/virtio/
H A Dvirtio_ring.c81 vq->vring.avail->ring[avail] = cpu_to_virtio16(vq->vdev, head); in virtqueue_add()
175 i = virtio32_to_cpu(vq->vdev, vq->vring.used->ring[last_used].id); in virtqueue_get_buf()
178 vq->vring.used->ring[last_used].len); in virtqueue_get_buf()
348 i, vq->vring.avail->ring[i]); in virtqueue_dump()
356 vq->vring.used->ring[i].id, vq->vring.used->ring[i].len); in virtqueue_dump()
/openbmc/qemu/hw/virtio/
H A Dvhost-vdpa.c1021 struct vhost_vring_state *ring) in vhost_vdpa_set_dev_vring_base() argument
1025 trace_vhost_vdpa_set_dev_vring_base(dev, ring->index, ring->num, in vhost_vdpa_set_dev_vring_base()
1027 return vhost_vdpa_call(dev, VHOST_SET_VRING_BASE, ring); in vhost_vdpa_set_dev_vring_base()
1450 struct vhost_vring_state *ring) in vhost_vdpa_set_vring_num() argument
1452 trace_vhost_vdpa_set_vring_num(dev, ring->index, ring->num); in vhost_vdpa_set_vring_num()
1453 return vhost_vdpa_call(dev, VHOST_SET_VRING_NUM, ring); in vhost_vdpa_set_vring_num()
1457 struct vhost_vring_state *ring) in vhost_vdpa_set_vring_base() argument
1469 return vhost_vdpa_set_dev_vring_base(dev, ring); in vhost_vdpa_set_vring_base()
1473 struct vhost_vring_state *ring) in vhost_vdpa_get_vring_base() argument
1479 ring->num = virtio_queue_get_last_avail_idx(dev->vdev, ring->index); in vhost_vdpa_get_vring_base()
[all …]
H A Dvhost-shadow-virtqueue.c229 avail->ring[avail_idx] = cpu_to_le16(*head); in vhost_svq_add_split()
251 *(uint16_t *)(&svq->vring.used->ring[svq->vring.num])); in vhost_svq_kick()
408 uint16_t *used_event = (uint16_t *)&svq->vring.avail->ring[svq->vring.num]; in vhost_svq_enable_notification()
455 used_elem.id = le32_to_cpu(used->ring[last_used].id); in vhost_svq_get_buf()
456 used_elem.len = le32_to_cpu(used->ring[last_used].len); in vhost_svq_get_buf()
631 size_t avail_size = offsetof(vring_avail_t, ring[svq->vring.num]) + in vhost_svq_driver_area_size()
639 size_t used_size = offsetof(vring_used_t, ring[svq->vring.num]) + in vhost_svq_device_area_size()
/openbmc/qemu/target/xtensa/
H A Dmmu_helper.c480 unsigned ring = get_ring(env, entry[wi][ei].asid); in xtensa_tlb_lookup() local
481 if (ring < 4) { in xtensa_tlb_lookup()
489 *pring = ring; in xtensa_tlb_lookup()
541 uint8_t ring; in HELPER() local
542 int res = xtensa_tlb_lookup(env, v, dtlb, &wi, &ei, &ring); in HELPER()
546 if (ring >= xtensa_get_ring(env)) { in HELPER()
745 static unsigned mpu_attr_to_access(uint32_t attr, unsigned ring) in mpu_attr_to_access() argument
777 rv = access[ring != 0][(attr & XTENSA_MPU_ACC_RIGHTS_MASK) >> in mpu_attr_to_access()
815 uint8_t ring; in get_physical_addr_mmu() local
820 int ret = xtensa_tlb_lookup(env, vaddr, dtlb, &wi, &ei, &ring); in get_physical_addr_mmu()
[all …]

123