xref: /qemu/hw/pci/pci-stub.c (revision ec5ce147)
1315a1350SMichael S. Tsirkin /*
2315a1350SMichael S. Tsirkin  * PCI stubs for platforms that don't support pci bus.
3315a1350SMichael S. Tsirkin  *
4315a1350SMichael S. Tsirkin  * Copyright (c) 2010 Isaku Yamahata <yamahata at valinux co jp>
5315a1350SMichael S. Tsirkin  *                    VA Linux Systems Japan K.K.
6315a1350SMichael S. Tsirkin  *
7315a1350SMichael S. Tsirkin  * This program is free software; you can redistribute it and/or modify
8315a1350SMichael S. Tsirkin  * it under the terms of the GNU General Public License as published by
9315a1350SMichael S. Tsirkin  * the Free Software Foundation; either version 2 of the License, or
10315a1350SMichael S. Tsirkin  * (at your option) any later version.
11315a1350SMichael S. Tsirkin  *
12315a1350SMichael S. Tsirkin  * This program is distributed in the hope that it will be useful,
13315a1350SMichael S. Tsirkin  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14315a1350SMichael S. Tsirkin  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15315a1350SMichael S. Tsirkin  * GNU General Public License for more details.
16315a1350SMichael S. Tsirkin  *
17315a1350SMichael S. Tsirkin  * You should have received a copy of the GNU General Public License along
18315a1350SMichael S. Tsirkin  * with this program; if not, see <http://www.gnu.org/licenses/>.
19315a1350SMichael S. Tsirkin  */
20315a1350SMichael S. Tsirkin 
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;
33315a1350SMichael S. Tsirkin 
34315a1350SMichael S. Tsirkin PciInfoList *qmp_query_pci(Error **errp)
35315a1350SMichael S. Tsirkin {
36c6bd8c70SMarkus Armbruster     error_setg(errp, QERR_UNSUPPORTED);
37315a1350SMichael S. Tsirkin     return NULL;
38315a1350SMichael S. Tsirkin }
39315a1350SMichael S. Tsirkin 
4004e00c92SMarkus Armbruster void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
41315a1350SMichael S. Tsirkin {
42315a1350SMichael S. Tsirkin     monitor_printf(mon, "PCI devices not supported\n");
43315a1350SMichael S. Tsirkin }
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