diff options
author | Avi Kivity <avi@qumranet.com> | 2006-12-11 11:24:07 +0000 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2006-12-11 11:24:07 +0000 |
commit | dd757edc6ef80aa47fcedf6af40cbe44808e0d7e (patch) | |
tree | ae49458a083a979eb5d59f9577e3a54b8c3b45f6 | |
parent | dd5f8255f4ecf32f3ed3c3fd30977f01ebe8b495 (diff) |
kvm: kernel release: merge from trunkkvm-6
Merged revisions 3954-3956,3970-3972,3975,3977,3981,3983,3990-3991,3997,4000-4001,4005-4008,4011-4012,4015,4017-4019,4022-4023,4025-4027,4033,4040-4045,4047-4051,4053-4058 via svnmerge from
svn://cleopatra.q/svn/kvm/kvm/trunk
........
r4058 | avi | 2006-12-11 13:23:15 +0200 (Mon, 11 Dec 2006) | 4 lines
kvm: qemu: convert dos line endings to unix line endings
ugh
........
-rw-r--r-- | Makefile.target | 6 | ||||
-rw-r--r-- | hw/hypercall.c | 182 |
2 files changed, 94 insertions, 94 deletions
diff --git a/Makefile.target b/Makefile.target index 296ea63b1..3e1d07333 100644 --- a/Makefile.target +++ b/Makefile.target @@ -340,10 +340,10 @@ VL_OBJS+= scsi-disk.o cdrom.o lsi53c895a.o VL_OBJS+= usb.o usb-hub.o usb-linux.o usb-hid.o usb-ohci.o usb-msd.o # PCI network cards -VL_OBJS+= ne2000.o rtl8139.o pcnet.o
-
+VL_OBJS+= ne2000.o rtl8139.o pcnet.o + # PCI Hypercall -VL_OBJS+= hypercall.o
+VL_OBJS+= hypercall.o ifeq ($(TARGET_BASE_ARCH), i386) # Hardware support diff --git a/hw/hypercall.c b/hw/hypercall.c index c59a2e7bf..11e3a321a 100644 --- a/hw/hypercall.c +++ b/hw/hypercall.c @@ -1,91 +1,91 @@ -/*
- * QEMU-KVM Hypercall emulation
- *
- * Copyright (c) 2003-2004 Fabrice Bellard
- * Copyright (c) 2006 Qumranet
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-#include "vl.h"
-
-typedef struct HypercallState {
- uint8_t cmd;
- uint32_t start;
- uint32_t stop;
-} HypercallState;
-
-static void hp_ioport_write(void *opaque, uint32_t addr, uint32_t val)
-{
- //printf("hp_ioport_write, val=0x%x\n", val);
-}
-
-static uint32_t hp_ioport_read(void *opaque, uint32_t addr)
-{
- //printf("hp_ioport_read\n");
- return 0;
-}
-
-/***********************************************************/
-/* PCI Hypercall definitions */
-
-typedef struct PCIHypercallState {
- PCIDevice dev;
- HypercallState hp;
-} PCIHypercallState;
-
-static void hp_map(PCIDevice *pci_dev, int region_num,
- uint32_t addr, uint32_t size, int type)
-{
- PCIHypercallState *d = (PCIHypercallState *)pci_dev;
- HypercallState *s = &d->hp;
-
- register_ioport_write(addr, 16, 1, hp_ioport_write, s);
- register_ioport_read(addr, 16, 1, hp_ioport_read, s);
-
-}
-
-void pci_hypercall_init(PCIBus *bus)
-{
- PCIHypercallState *d;
-
- uint8_t *pci_conf;
-
- //printf("pci_hypercall_init\n");
-
- d = (PCIHypercallState *)pci_register_device(bus,
- "HPNAME", sizeof(PCIHypercallState),
- -1,
- NULL, NULL);
-
- pci_conf = d->dev.config;
- pci_conf[0x00] = 0x02; // Qumranet vendor ID 0x5002
- pci_conf[0x01] = 0x50;
- pci_conf[0x02] = 0x58; // Qumranet DeviceID 0x2258
- pci_conf[0x03] = 0x22;
-
- pci_conf[0x09] = 0x00; // ProgIf
- pci_conf[0x0a] = 0x00; // SubClass
- pci_conf[0x0b] = 0x05; // BaseClass
-
- pci_conf[0x0e] = 0x00; // header_type
- pci_conf[0x3d] = 0x00; // interrupt pin 0
-
- pci_register_io_region(&d->dev, 0, 0x100,
- PCI_ADDRESS_SPACE_IO, hp_map);
-}
+/* + * QEMU-KVM Hypercall emulation + * + * Copyright (c) 2003-2004 Fabrice Bellard + * Copyright (c) 2006 Qumranet + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include "vl.h" + +typedef struct HypercallState { + uint8_t cmd; + uint32_t start; + uint32_t stop; +} HypercallState; + +static void hp_ioport_write(void *opaque, uint32_t addr, uint32_t val) +{ + //printf("hp_ioport_write, val=0x%x\n", val); +} + +static uint32_t hp_ioport_read(void *opaque, uint32_t addr) +{ + //printf("hp_ioport_read\n"); + return 0; +} + +/***********************************************************/ +/* PCI Hypercall definitions */ + +typedef struct PCIHypercallState { + PCIDevice dev; + HypercallState hp; +} PCIHypercallState; + +static void hp_map(PCIDevice *pci_dev, int region_num, + uint32_t addr, uint32_t size, int type) +{ + PCIHypercallState *d = (PCIHypercallState *)pci_dev; + HypercallState *s = &d->hp; + + register_ioport_write(addr, 16, 1, hp_ioport_write, s); + register_ioport_read(addr, 16, 1, hp_ioport_read, s); + +} + +void pci_hypercall_init(PCIBus *bus) +{ + PCIHypercallState *d; + + uint8_t *pci_conf; + + //printf("pci_hypercall_init\n"); + + d = (PCIHypercallState *)pci_register_device(bus, + "HPNAME", sizeof(PCIHypercallState), + -1, + NULL, NULL); + + pci_conf = d->dev.config; + pci_conf[0x00] = 0x02; // Qumranet vendor ID 0x5002 + pci_conf[0x01] = 0x50; + pci_conf[0x02] = 0x58; // Qumranet DeviceID 0x2258 + pci_conf[0x03] = 0x22; + + pci_conf[0x09] = 0x00; // ProgIf + pci_conf[0x0a] = 0x00; // SubClass + pci_conf[0x0b] = 0x05; // BaseClass + + pci_conf[0x0e] = 0x00; // header_type + pci_conf[0x3d] = 0x00; // interrupt pin 0 + + pci_register_io_region(&d->dev, 0, 0x100, + PCI_ADDRESS_SPACE_IO, hp_map); +} |