1b3a29fd5SIsaku Yamahata /* 211d6ddedSAlon Levy * PCI stubs for platforms that don't support pci bus. 3b3a29fd5SIsaku Yamahata * 4b3a29fd5SIsaku Yamahata * Copyright (c) 2010 Isaku Yamahata <yamahata at valinux co jp> 5b3a29fd5SIsaku Yamahata * VA Linux Systems Japan K.K. 6b3a29fd5SIsaku Yamahata * 7b3a29fd5SIsaku Yamahata * This program is free software; you can redistribute it and/or modify 8b3a29fd5SIsaku Yamahata * it under the terms of the GNU General Public License as published by 9b3a29fd5SIsaku Yamahata * the Free Software Foundation; either version 2 of the License, or 10b3a29fd5SIsaku Yamahata * (at your option) any later version. 11b3a29fd5SIsaku Yamahata * 12b3a29fd5SIsaku Yamahata * This program is distributed in the hope that it will be useful, 13b3a29fd5SIsaku Yamahata * but WITHOUT ANY WARRANTY; without even the implied warranty of 14b3a29fd5SIsaku Yamahata * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15b3a29fd5SIsaku Yamahata * GNU General Public License for more details. 16b3a29fd5SIsaku Yamahata * 17b3a29fd5SIsaku Yamahata * You should have received a copy of the GNU General Public License along 18b3a29fd5SIsaku Yamahata * with this program; if not, see <http://www.gnu.org/licenses/>. 19b3a29fd5SIsaku Yamahata */ 20b3a29fd5SIsaku Yamahata 2197d5408fSPeter Maydell #include "qemu/osdep.h" 229c17d615SPaolo Bonzini #include "sysemu/sysemu.h" 2383c9089eSPaolo Bonzini #include "monitor/monitor.h" 24e688df6bSMarkus Armbruster #include "qapi/error.h" 25112ed241SMarkus Armbruster #include "qapi/qapi-commands-misc.h" 26cc7a8ea7SMarkus Armbruster #include "qapi/qmp/qerror.h" 27c759b24fSMichael S. Tsirkin #include "hw/pci/pci.h" 2866767562SPhilippe Mathieu-Daudé #include "hw/pci/msi.h" 29*ec5ce147SPaolo Bonzini #include "hw/pci/msix.h" 3066767562SPhilippe Mathieu-Daudé 3166767562SPhilippe Mathieu-Daudé bool msi_nonbroken; 3288c725c7SCornelia Huck bool pci_available; 3379627472SLuiz Capitulino 3479627472SLuiz Capitulino PciInfoList *qmp_query_pci(Error **errp) 3579627472SLuiz Capitulino { 36c6bd8c70SMarkus Armbruster error_setg(errp, QERR_UNSUPPORTED); 3779627472SLuiz Capitulino return NULL; 3879627472SLuiz Capitulino } 39b3a29fd5SIsaku Yamahata 4004e00c92SMarkus Armbruster void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict) 41b3a29fd5SIsaku Yamahata { 42b3a29fd5SIsaku Yamahata monitor_printf(mon, "PCI devices not supported\n"); 43b3a29fd5SIsaku Yamahata } 4488c725c7SCornelia Huck 4588c725c7SCornelia Huck /* kvm-all wants this */ 4688c725c7SCornelia Huck MSIMessage pci_get_msi_message(PCIDevice *dev, int vector) 4788c725c7SCornelia Huck { 4888c725c7SCornelia Huck g_assert(false); 4988c725c7SCornelia Huck return (MSIMessage){}; 5088c725c7SCornelia Huck } 5188c725c7SCornelia Huck 5288c725c7SCornelia Huck uint16_t pci_requester_id(PCIDevice *dev) 5388c725c7SCornelia Huck { 5488c725c7SCornelia Huck g_assert(false); 5588c725c7SCornelia Huck return 0; 5688c725c7SCornelia Huck } 57d9e36515SThomas Huth 58d9e36515SThomas Huth /* Required by ahci.c */ 59d9e36515SThomas Huth bool msi_enabled(const PCIDevice *dev) 60d9e36515SThomas Huth { 61d9e36515SThomas Huth return false; 62d9e36515SThomas Huth } 63d9e36515SThomas Huth 64d9e36515SThomas Huth void msi_notify(PCIDevice *dev, unsigned int vector) 65d9e36515SThomas Huth { 66d9e36515SThomas Huth g_assert_not_reached(); 67d9e36515SThomas Huth } 68*ec5ce147SPaolo Bonzini 69*ec5ce147SPaolo Bonzini /* Required by target/i386/kvm.c */ 70*ec5ce147SPaolo Bonzini bool msi_is_masked(const PCIDevice *dev, unsigned vector) 71*ec5ce147SPaolo Bonzini { 72*ec5ce147SPaolo Bonzini g_assert_not_reached(); 73*ec5ce147SPaolo Bonzini } 74*ec5ce147SPaolo Bonzini 75*ec5ce147SPaolo Bonzini MSIMessage msi_get_message(PCIDevice *dev, unsigned int vector) 76*ec5ce147SPaolo Bonzini { 77*ec5ce147SPaolo Bonzini g_assert_not_reached(); 78*ec5ce147SPaolo Bonzini } 79*ec5ce147SPaolo Bonzini 80*ec5ce147SPaolo Bonzini int msix_enabled(PCIDevice *dev) 81*ec5ce147SPaolo Bonzini { 82*ec5ce147SPaolo Bonzini return false; 83*ec5ce147SPaolo Bonzini } 84*ec5ce147SPaolo Bonzini 85*ec5ce147SPaolo Bonzini bool msix_is_masked(PCIDevice *dev, unsigned vector) 86*ec5ce147SPaolo Bonzini { 87*ec5ce147SPaolo Bonzini g_assert_not_reached(); 88*ec5ce147SPaolo Bonzini } 89*ec5ce147SPaolo Bonzini 90*ec5ce147SPaolo Bonzini MSIMessage msix_get_message(PCIDevice *dev, unsigned int vector) 91*ec5ce147SPaolo Bonzini { 92*ec5ce147SPaolo Bonzini g_assert_not_reached(); 93*ec5ce147SPaolo Bonzini } 94