xhci_trb
memset(endpoint->trbs, 0, sizeof(xhci_trb) * XHCI_ENDPOINT_RING_SIZE);
(trbCount * sizeof(xhci_trb))) < B_OK) {
(descriptor->trb_count * sizeof(xhci_trb)));
&device->trb_addr, sizeof(xhci_trb) * (XHCI_MAX_ENDPOINTS - 1)
+ id * XHCI_ENDPOINT_RING_SIZE * sizeof(xhci_trb);
sizeof(xhci_trb) * XHCI_ENDPOINT_RING_SIZE);
phys_addr_t addr = endpoint->trb_addr + (eventdata * sizeof(xhci_trb));
+ (descriptor->trb_used - 1) * sizeof(xhci_trb));
endpoint->trb_addr + link * sizeof(struct xhci_trb),
XHCI::QueueCommand(xhci_trb* trb)
fCmdAddr = fErst->rs_addr + (XHCI_MAX_EVENTS + i) * sizeof(xhci_trb);
XHCI::HandleCmdComplete(xhci_trb* trb)
XHCI::HandleTransferComplete(xhci_trb* trb)
&& (source - endpoint->trb_addr) < (XHCI_ENDPOINT_RING_SIZE * sizeof(xhci_trb))) {
const int64 offset = (source - endpoint->trb_addr) / sizeof(xhci_trb);
int64 offset = (source - td->trb_addr) / sizeof(xhci_trb);
XHCI::DumpRing(xhci_trb *trbs, uint32 size)
XHCI::DoCommand(xhci_trb* trb)
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
xhci_trb trb;
uint64 addr = fErst->rs_addr + i * sizeof(xhci_trb);
(XHCI_MAX_COMMANDS + XHCI_MAX_EVENTS) * sizeof(xhci_trb)
memset(fErst, 0, (XHCI_MAX_COMMANDS + XHCI_MAX_EVENTS) * sizeof(xhci_trb)
fEventRing = (xhci_trb *)addr;
addr += XHCI_MAX_EVENTS * sizeof(xhci_trb);
fCmdRing = (xhci_trb *)addr;
* sizeof(xhci_trb);
void DumpRing(xhci_trb *trb, uint32 size);
void QueueCommand(xhci_trb *trb);
void HandleCmdComplete(xhci_trb *trb);
void HandleTransferComplete(xhci_trb *trb);
status_t DoCommand(xhci_trb *trb);
xhci_trb * fEventRing;
xhci_trb * fCmdRing;
xhci_trb* trbs;
xhci_trb* trbs; // [XHCI_ENDPOINT_RING_SIZE]
struct xhci_trb *trbs; // [XHCI_MAX_ENDPOINTS - 1][XHCI_ENDPOINT_RING_SIZE]