pci_bridge.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * QEMU PCI bridge
  3. *
  4. * Copyright (c) 2004 Fabrice Bellard
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program; if not, write to the Free Software
  18. * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. *
  20. * split out pci bus specific stuff from pci.[hc] to pci_bridge.[hc]
  21. * Copyright (c) 2009 Isaku Yamahata <yamahata at valinux co jp>
  22. * VA Linux Systems Japan K.K.
  23. *
  24. */
  25. #ifndef QEMU_PCI_BRIDGE_H
  26. #define QEMU_PCI_BRIDGE_H
  27. #include "pci.h"
  28. int pci_bridge_ssvid_init(PCIDevice *dev, uint8_t offset,
  29. uint16_t svid, uint16_t ssid);
  30. PCIDevice *pci_bridge_get_device(PCIBus *bus);
  31. PCIBus *pci_bridge_get_sec_bus(PCIBridge *br);
  32. pcibus_t pci_bridge_get_base(const PCIDevice *bridge, uint8_t type);
  33. pcibus_t pci_bridge_get_limit(const PCIDevice *bridge, uint8_t type);
  34. void pci_bridge_write_config(PCIDevice *d,
  35. uint32_t address, uint32_t val, int len);
  36. void pci_bridge_disable_base_limit(PCIDevice *dev);
  37. void pci_bridge_reset_reg(PCIDevice *dev);
  38. void pci_bridge_reset(DeviceState *qdev);
  39. int pci_bridge_initfn(PCIDevice *pci_dev);
  40. void pci_bridge_exitfn(PCIDevice *pci_dev);
  41. /*
  42. * before qdev initialization(qdev_init()), this function sets bus_name and
  43. * map_irq callback which are necessry for pci_bridge_initfn() to
  44. * initialize bus.
  45. */
  46. void pci_bridge_map_irq(PCIBridge *br, const char* bus_name,
  47. pci_map_irq_fn map_irq);
  48. #endif /* QEMU_PCI_BRIDGE_H */
  49. /*
  50. * Local variables:
  51. * c-indent-level: 4
  52. * c-basic-offset: 4
  53. * tab-width: 8
  54. * indent-tab-mode: nil
  55. * End:
  56. */