18ddab8ddSSai Pavan Boddu /* 28ddab8ddSSai Pavan Boddu * USB xHCI controller emulation 38ddab8ddSSai Pavan Boddu * 48ddab8ddSSai Pavan Boddu * Copyright (c) 2011 Securiforest 58ddab8ddSSai Pavan Boddu * Date: 2011-05-11 ; Author: Hector Martin <hector@marcansoft.com> 68ddab8ddSSai Pavan Boddu * Based on usb-ohci.c, emulates Renesas NEC USB 3.0 78ddab8ddSSai Pavan Boddu * Date: 2020-01-1; Author: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com> 88ddab8ddSSai Pavan Boddu * PCI hooks are moved from XHCIState to XHCIPciState 98ddab8ddSSai Pavan Boddu * 108ddab8ddSSai Pavan Boddu * This library is free software; you can redistribute it and/or 118ddab8ddSSai Pavan Boddu * modify it under the terms of the GNU Lesser General Public 128ddab8ddSSai Pavan Boddu * License as published by the Free Software Foundation; either 13bee41971SChetan Pant * version 2.1 of the License, or (at your option) any later version. 148ddab8ddSSai Pavan Boddu * 158ddab8ddSSai Pavan Boddu * This library is distributed in the hope that it will be useful, 168ddab8ddSSai Pavan Boddu * but WITHOUT ANY WARRANTY; without even the implied warranty of 178ddab8ddSSai Pavan Boddu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 188ddab8ddSSai Pavan Boddu * Lesser General Public License for more details. 198ddab8ddSSai Pavan Boddu * 208ddab8ddSSai Pavan Boddu * You should have received a copy of the GNU Lesser General Public 218ddab8ddSSai Pavan Boddu * License along with this library; if not, see <http://www.gnu.org/licenses/>. 228ddab8ddSSai Pavan Boddu */ 238ddab8ddSSai Pavan Boddu 248ddab8ddSSai Pavan Boddu #ifndef HW_USB_HCD_XHCI_PCI_H 258ddab8ddSSai Pavan Boddu #define HW_USB_HCD_XHCI_PCI_H 268ddab8ddSSai Pavan Boddu 27*edf5ca5dSMarkus Armbruster #include "hw/pci/pci_device.h" 288ddab8ddSSai Pavan Boddu #include "hw/usb.h" 298ddab8ddSSai Pavan Boddu #include "hcd-xhci.h" 308ddab8ddSSai Pavan Boddu 318ddab8ddSSai Pavan Boddu #define TYPE_XHCI_PCI "pci-xhci" 328ddab8ddSSai Pavan Boddu #define XHCI_PCI(obj) \ 338ddab8ddSSai Pavan Boddu OBJECT_CHECK(XHCIPciState, (obj), TYPE_XHCI_PCI) 348ddab8ddSSai Pavan Boddu 358ddab8ddSSai Pavan Boddu 368ddab8ddSSai Pavan Boddu typedef struct XHCIPciState { 378ddab8ddSSai Pavan Boddu /*< private >*/ 388ddab8ddSSai Pavan Boddu PCIDevice parent_obj; 398ddab8ddSSai Pavan Boddu /*< public >*/ 408ddab8ddSSai Pavan Boddu XHCIState xhci; 418ddab8ddSSai Pavan Boddu OnOffAuto msi; 428ddab8ddSSai Pavan Boddu OnOffAuto msix; 438ddab8ddSSai Pavan Boddu } XHCIPciState; 448ddab8ddSSai Pavan Boddu 458ddab8ddSSai Pavan Boddu #endif 46