Commit 0e058a8a6aab56565677dc3a7f994b0c8f191a48
1 parent
2d72c572
Virtio-console conversion
Signed-off-by: Paul Brook <paul@codesourcery.com>
Showing
4 changed files
with
17 additions
and
24 deletions
hw/pc.c
... | ... | @@ -33,7 +33,6 @@ |
33 | 33 | #include "boards.h" |
34 | 34 | #include "monitor.h" |
35 | 35 | #include "fw_cfg.h" |
36 | -#include "virtio-console.h" | |
37 | 36 | #include "hpet_emul.h" |
38 | 37 | #include "watchdog.h" |
39 | 38 | #include "smbios.h" |
... | ... | @@ -1147,8 +1146,9 @@ static void pc_init1(ram_addr_t ram_size, |
1147 | 1146 | /* Add virtio console devices */ |
1148 | 1147 | if (pci_enabled) { |
1149 | 1148 | for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) { |
1150 | - if (virtcon_hds[i]) | |
1151 | - virtio_console_init(pci_bus, virtcon_hds[i]); | |
1149 | + if (virtcon_hds[i]) { | |
1150 | + pci_create_simple(pci_bus, -1, "virtio-console"); | |
1151 | + } | |
1152 | 1152 | } |
1153 | 1153 | } |
1154 | 1154 | } | ... | ... |
hw/ppc440_bamboo.c
... | ... | @@ -16,7 +16,6 @@ |
16 | 16 | #include "net.h" |
17 | 17 | #include "hw.h" |
18 | 18 | #include "pci.h" |
19 | -#include "virtio-console.h" | |
20 | 19 | #include "boards.h" |
21 | 20 | #include "sysemu.h" |
22 | 21 | #include "ppc440.h" |
... | ... | @@ -118,8 +117,9 @@ static void bamboo_init(ram_addr_t ram_size, |
118 | 117 | |
119 | 118 | /* Add virtio console devices */ |
120 | 119 | for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) { |
121 | - if (virtcon_hds[i]) | |
122 | - virtio_console_init(pcibus, virtcon_hds[i]); | |
120 | + if (virtcon_hds[i]) { | |
121 | + pci_create_simple(pcibus, -1, "virtio-console"); | |
122 | + } | |
123 | 123 | } |
124 | 124 | |
125 | 125 | /* Register network interfaces. */ | ... | ... |
hw/virtio-console.c
... | ... | @@ -123,35 +123,31 @@ static int virtio_console_load(QEMUFile *f, void *opaque, int version_id) |
123 | 123 | return 0; |
124 | 124 | } |
125 | 125 | |
126 | -void *virtio_console_init(PCIBus *bus, CharDriverState *chr) | |
126 | +static void virtio_console_init(PCIDevice *pci_dev) | |
127 | 127 | { |
128 | 128 | VirtIOConsole *s; |
129 | - PCIDevice *d; | |
130 | - | |
131 | - d = pci_register_device(bus, "virtio-console", sizeof(VirtIOConsole), | |
132 | - -1, NULL, NULL); | |
133 | - if (!d) | |
134 | - return NULL; | |
135 | - | |
136 | - s = (VirtIOConsole *)virtio_init_pci(d, "virtio-console", | |
129 | + s = (VirtIOConsole *)virtio_init_pci(pci_dev, "virtio-console", | |
137 | 130 | PCI_VENDOR_ID_REDHAT_QUMRANET, |
138 | 131 | PCI_DEVICE_ID_VIRTIO_CONSOLE, |
139 | 132 | PCI_VENDOR_ID_REDHAT_QUMRANET, |
140 | 133 | VIRTIO_ID_CONSOLE, |
141 | 134 | PCI_CLASS_DISPLAY_OTHER, 0x00, |
142 | 135 | 0); |
143 | - if (s == NULL) | |
144 | - return NULL; | |
145 | - | |
146 | 136 | s->vdev.get_features = virtio_console_get_features; |
147 | 137 | |
148 | 138 | s->ivq = virtio_add_queue(&s->vdev, 128, virtio_console_handle_input); |
149 | 139 | s->dvq = virtio_add_queue(&s->vdev, 128, virtio_console_handle_output); |
150 | 140 | |
151 | - s->chr = chr; | |
152 | - qemu_chr_add_handlers(chr, vcon_can_read, vcon_read, vcon_event, s); | |
141 | + s->chr = qdev_init_chardev(&pci_dev->qdev); | |
142 | + qemu_chr_add_handlers(s->chr, vcon_can_read, vcon_read, vcon_event, s); | |
153 | 143 | |
154 | 144 | register_savevm("virtio-console", -1, 1, virtio_console_save, virtio_console_load, s); |
145 | +} | |
155 | 146 | |
156 | - return &s->vdev; | |
147 | +static void virtio_console_register_devices(void) | |
148 | +{ | |
149 | + pci_qdev_register("virtio-console", sizeof(VirtIOConsole), | |
150 | + virtio_console_init); | |
157 | 151 | } |
152 | + | |
153 | +device_init(virtio_console_register_devices) | ... | ... |