1 // Copyright 2018 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 <ddk/device.h> 8 #include <ddk/protocol/usb/hci.h> 9 10 typedef struct usb_device usb_device_t; 11 12 // Represents a USB bus, which manages all devices for a USB host controller 13 typedef struct usb_bus { 14 zx_device_t* zxdev; 15 zx_device_t* hci_zxdev; 16 usb_hci_protocol_t hci; 17 18 // top-level USB devices, indexed by device_id 19 usb_device_t** devices; 20 size_t max_device_count; 21 } usb_bus_t; 22