From dd757edc6ef80aa47fcedf6af40cbe44808e0d7e Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Mon, 11 Dec 2006 11:24:07 +0000 Subject: kvm: kernel release: merge from trunk 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 ........ --- Makefile.target | 6 +- 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); +} -- cgit v1.2.3