Searched refs:ring (Results 1 - 13 of 13) sorted by relevance

/fuchsia/zircon/system/dev/usb/xhci/
H A Dxhci-trb.c10 zx_status_t xhci_transfer_ring_init(xhci_transfer_ring_t* ring, zx_handle_t bti_handle, int count) { argument
11 zx_status_t status = io_buffer_init(&ring->buffer, bti_handle,
16 ring->start = io_buffer_virt(&ring->buffer);
17 ring->current = ring->start;
18 ring->dequeue_ptr = ring->start;
19 ring->full = false;
20 ring
29 xhci_transfer_ring_free(xhci_transfer_ring_t* ring) argument
34 xhci_transfer_ring_free_trbs(xhci_transfer_ring_t* ring) argument
53 xhci_event_ring_init(xhci_event_ring_t* ring, zx_handle_t bti_handle, erst_entry_t* erst_array, int count) argument
71 xhci_event_ring_free(xhci_event_ring_t* ring) argument
93 xhci_read_trb_ptr(xhci_transfer_ring_t* ring, xhci_trb_t* trb) argument
100 xhci_get_next_trb(xhci_transfer_ring_t* ring, xhci_trb_t* trb) argument
109 xhci_increment_ring(xhci_transfer_ring_t* ring) argument
138 xhci_set_dequeue_ptr(xhci_transfer_ring_t* ring, xhci_trb_t* new_ptr) argument
143 xhci_transfer_ring_phys_to_trb(xhci_transfer_ring_t* ring, zx_paddr_t phys) argument
[all...]
H A Dxhci-trb.h12 // used for both command ring and transfer rings
19 // (not used for command ring)
20 size_t size; // number of TRBs in ring
23 // an empty and full ring state
37 void xhci_transfer_ring_free(xhci_transfer_ring_t* ring);
38 size_t xhci_transfer_ring_free_trbs(xhci_transfer_ring_t* ring);
41 void xhci_event_ring_free(xhci_event_ring_t* ring);
45 void* xhci_read_trb_ptr(xhci_transfer_ring_t* ring, xhci_trb_t* trb);
46 xhci_trb_t* xhci_get_next_trb(xhci_transfer_ring_t* ring, xhci_trb_t* trb);
47 void xhci_increment_ring(xhci_transfer_ring_t* ring);
53 xhci_transfer_ring_start_phys(xhci_transfer_ring_t* ring) argument
57 xhci_transfer_ring_current_phys(xhci_transfer_ring_t* ring) argument
61 xhci_event_ring_start_phys(xhci_event_ring_t* ring) argument
65 xhci_event_ring_current_phys(xhci_event_ring_t* ring) argument
[all...]
H A Dxhci-transfer-common.h24 void xhci_print_trb(xhci_transfer_ring_t* ring, xhci_trb_t* trb);
30 // Queues TRBs on the given transfer ring for the Data stage of a USB transfer.
32 // there is space available on the transfer ring.
36 zx_status_t xhci_queue_data_trbs(xhci_transfer_ring_t* ring, xhci_transfer_state_t* state,
H A Dxhci-transfer-common.c10 void xhci_print_trb(xhci_transfer_ring_t* ring, xhci_trb_t* trb) { argument
11 int index = trb - ring->start;
13 uint64_t paddr = io_buffer_phys(&ring->buffer) + index * sizeof(xhci_trb_t);
42 // to avoid consecutive event data TRBs on a transfer ring.
50 zx_status_t xhci_queue_data_trbs(xhci_transfer_ring_t* ring, xhci_transfer_state_t* state, argument
54 size_t free_trbs = xhci_transfer_ring_free_trbs(ring);
61 xhci_trb_t* trb = ring->current;
96 if (driver_get_log_flags() & DDK_LOG_SPEW) xhci_print_trb(ring, trb);
97 xhci_increment_ring(ring);
121 xhci_trb_t* trb = ring
[all...]
H A Dxdc-transfer.c40 xhci_transfer_ring_t* ring = &ep->transfer_ring; variable
49 zx_status_t status = xhci_queue_data_trbs(ring, &ep->transfer_state, req,
55 // If we get here, then we are ready to ring the doorbell.
56 // Save the ring position so we can update the ring dequeue ptr once the transfer completes.
57 req->context = (void *)ring->current;
63 // Schedules any queued requests on the endpoint's transfer ring, until we fill our
64 // transfer ring or have no more requests.
121 // up the transfer ring.
154 xhci_transfer_ring_t* ring local
197 xhci_transfer_ring_t* ring = &ep->transfer_ring; local
[all...]
H A Dxhci-transfer.c20 // This resets the transfer ring's dequeue pointer just past the last completed transfer.
104 // move transfer ring's dequeue pointer passed the failed transaction
166 xhci_transfer_ring_t* ring = &ep->transfer_ring; local
189 xhci_trb_t* trb = ring->current;
207 if (driver_get_log_flags() & DDK_LOG_SPEW) xhci_print_trb(ring, trb);
208 xhci_increment_ring(ring);
220 xhci_transfer_ring_t* ring = &ep->transfer_ring; local
263 zx_status_t status = xhci_queue_data_trbs(ring, state, req, interrupter_target, isochronous);
275 xhci_trb_t* trb = ring->current;
285 if (driver_get_log_flags() & DDK_LOG_SPEW) xhci_print_trb(ring, tr
595 xhci_transfer_ring_t* ring = &ep->transfer_ring; local
[all...]
/fuchsia/zircon/system/ulib/virtio/include/virtio/
H A Dvirtio_ring.h58 * at the end of the avail ring. Host should ignore the avail->flags field. */
60 * at the end of the used ring. Guest should ignore the used->flags field. */
63 /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */
78 uint16_t ring[]; member in struct:vring_avail
92 struct vring_used_elem ring[]; member in struct:vring_used
99 uint16_t free_list; /* head of a free list of descriptors per ring. 0xffff is NULL */
111 /* The standard layout for the ring is a continuous chunk of memory which looks
119 * // A ring of available descriptor heads with free-running index.
128 * // A ring of used descriptor heads with free-running index.
143 /* We publish the used event index at the end of the available ring, an
[all...]
/fuchsia/zircon/kernel/arch/x86/include/arch/x86/
H A Ddescriptor.h63 uint8_t present, uint8_t ring, uint8_t sys,
/fuchsia/zircon/system/dev/bus/virtio/
H A Dring.h57 struct vring_used_elem* used_elem = &ring_.used->ring[i & ring_.num_mask];
H A Drules.mk19 $(LOCAL_DIR)/ring.cpp \
H A Dconsole.cpp20 zx_status_t QueueTransfer(Ring* ring, uintptr_t phys, uint32_t len, bool write) { argument
22 vring_desc* desc = ring->AllocDescChain(1, &index);
25 zxlogf(ERROR, "Failed to find free descriptor for the virtio ring\n");
33 ring->SubmitChain(index);
155 // put all descriptors in the virtio ring available list
H A Dring.cpp5 #include "ring.h"
49 // make sure the count is available in this ring
52 zxlogf(ERROR, "ring init count too big for hardware %u > %u\n", count, max_ring_size);
56 // allocate a ring
69 /* initialize the ring */
79 /* register the ring with the device */
136 avail->ring[avail->idx & ring_.num_mask] = desc_index;
/fuchsia/zircon/kernel/arch/x86/
H A Ddescriptor.cpp80 uint8_t present, uint8_t ring, uint8_t sys,
117 entry.dpl = ring & 0x03; // descriptor privilege level
79 set_global_desc_64(seg_sel_t sel, uint64_t base, uint32_t limit, uint8_t present, uint8_t ring, uint8_t sys, uint8_t type, uint8_t gran, uint8_t bits) argument

Completed in 110 milliseconds