1// Copyright 2016 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#pragma once 6 7#include <zircon/types.h> 8 9#include "xhci.h" 10 11typedef struct xhci xhci_t; 12 13typedef void (*xhci_transfer_complete_cb)(zx_status_t result, void* data); 14 15zx_status_t xhci_queue_transfer(xhci_t* xhci, usb_request_t* req); 16int xhci_control_request(xhci_t* xhci, uint32_t slot_id, uint8_t request_type, uint8_t request, 17 uint16_t value, uint16_t index, void* data, uint16_t length); 18zx_status_t xhci_get_descriptor(xhci_t* xhci, uint32_t slot_id, uint8_t type, uint16_t value, 19 uint16_t index, void* data, uint16_t length); 20void xhci_handle_transfer_event(xhci_t* xhci, xhci_trb_t* trb); 21 22zx_status_t xhci_reset_endpoint(xhci_t* xhci, uint32_t slot_id, uint8_t ep_address); 23zx_status_t xhci_cancel_transfers(xhci_t* xhci, uint32_t slot_id, uint32_t ep_index); 24