[oe-commits] org.oe.dev qemu: add missing files

mickeyl commit openembedded-commits at lists.openembedded.org
Fri Oct 20 13:24:40 UTC 2006


qemu: add missing files

Author: mickeyl at openembedded.org
Branch: org.openembedded.dev
Revision: ec665a2227c0b81f567aec855a2e84ae2eb437a8
ViewMTN: http://monotone.openembedded.org/revision.psp?id=ec665a2227c0b81f567aec855a2e84ae2eb437a8
Files:
1
packages/qemu/files/compiler.patch
packages/qemu/files/nodocs_cvs.patch
packages/qemu/files/qemu-pci-irq-sharing.patch
packages/qemu/files/qemu-sdl-cursor.patch
packages/qemu/files/qemu-usb-wacom-0.8.2.patch
packages/qemu/files/qemu-usb-wacom-buttons.patch
packages/qemu/files/qemu-usb-wacom-pressure.patch
packages/qemu/files/qemu-usb-wacom.patch
packages/qemu/files/qemu-x-no-sdl.patch
Diffs:

#
# mt diff -r365d8f133c3f7699978ee00c41919fac8d53bd47 -rec665a2227c0b81f567aec855a2e84ae2eb437a8
#
# 
# 
# add_file "packages/qemu/files/compiler.patch"
#  content [47e8eadc1a9de14f01a1824c91e9eee270bc9e64]
# 
# add_file "packages/qemu/files/nodocs_cvs.patch"
#  content [e8292449525296b116013eaae0f6905b550a59d8]
# 
# add_file "packages/qemu/files/qemu-pci-irq-sharing.patch"
#  content [234a490aa2ef6a935b53006c03d8782d835109d8]
# 
# add_file "packages/qemu/files/qemu-sdl-cursor.patch"
#  content [84513ecb2cfd8c6807eb09fb42e947fafe9db3d8]
# 
# add_file "packages/qemu/files/qemu-usb-wacom-0.8.2.patch"
#  content [537feabac0d5cc9932fea07d59e87b03945ea3ee]
# 
# add_file "packages/qemu/files/qemu-usb-wacom-buttons.patch"
#  content [cef94e9a2fa9a99e108554f23952f79305808d17]
# 
# add_file "packages/qemu/files/qemu-usb-wacom-pressure.patch"
#  content [70c06cdfdbd7a9e6a82eba2bd1c69266c14700cf]
# 
# add_file "packages/qemu/files/qemu-usb-wacom.patch"
#  content [00e4406f82acc325e5353d90068500730307fc9a]
# 
# add_file "packages/qemu/files/qemu-x-no-sdl.patch"
#  content [17e07e9569394341650ceef73a91ac96d2e3ae69]
# 
============================================================
--- packages/qemu/files/compiler.patch	47e8eadc1a9de14f01a1824c91e9eee270bc9e64
+++ packages/qemu/files/compiler.patch	47e8eadc1a9de14f01a1824c91e9eee270bc9e64
@@ -0,0 +1,10 @@
+--- qemu/usb-linux.c~	2006-07-19 19:06:15.000000000 +0100
++++ qemu/usb-linux.c	2006-10-02 12:49:00.000000000 +0100
+@@ -26,7 +26,6 @@
+ #if defined(__linux__)
+ #include <dirent.h>
+ #include <sys/ioctl.h>
+-#include <linux/compiler.h>
+ #include <linux/usbdevice_fs.h>
+ #include <linux/version.h>
+ 
============================================================
--- packages/qemu/files/nodocs_cvs.patch	e8292449525296b116013eaae0f6905b550a59d8
+++ packages/qemu/files/nodocs_cvs.patch	e8292449525296b116013eaae0f6905b550a59d8
@@ -0,0 +1,44 @@
+Index: qemu/Makefile
+===================================================================
+--- qemu.orig/Makefile	2006-04-18 11:11:37.000000000 +0100
++++ qemu/Makefile	2006-04-18 11:14:34.000000000 +0100
+@@ -11,7 +11,7 @@
+ ifdef CONFIG_STATIC
+ LDFLAGS+=-static
+ endif
+-DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
++DOCS=
+ 
+ all: dyngen$(EXESUF) $(TOOLS) $(DOCS)
+ 	for d in $(TARGET_DIRS); do \
+@@ -51,11 +51,11 @@
+ 			video.x proll.elf linux_boot.bin; do \
+ 		$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
+ 	done
+-	mkdir -p "$(DESTDIR)$(docdir)"
+-	$(INSTALL) -m 644 qemu-doc.html  qemu-tech.html "$(DESTDIR)$(docdir)"
++#	mkdir -p "$(DESTDIR)$(docdir)"
++#	$(INSTALL) -m 644 qemu-doc.html  qemu-tech.html "$(DESTDIR)$(docdir)"
+ ifndef CONFIG_WIN32
+-	mkdir -p "$(DESTDIR)$(mandir)/man1"
+-	$(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
++#	mkdir -p "$(DESTDIR)$(mandir)/man1"
++#	$(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
+ 	mkdir -p "$(DESTDIR)$(datadir)/keymaps"
+ 	for x in $(KEYMAPS); do \
+ 		$(INSTALL) -m 644 $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
+@@ -122,10 +122,10 @@
+ 	$(datadir)/ppc_rom.bin \
+ 	$(datadir)/video.x \
+ 	$(datadir)/proll.elf \
+-	$(datadir)/linux_boot.bin \
+-	$(docdir)/qemu-doc.html \
+-	$(docdir)/qemu-tech.html \
+-	$(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
++	$(datadir)/linux_boot.bin
++#	$(docdir)/qemu-doc.html \
++#	$(docdir)/qemu-tech.html \
++#	$(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
+ 
+ ifneq ($(wildcard .depend),)
+ include .depend
============================================================
--- packages/qemu/files/qemu-pci-irq-sharing.patch	234a490aa2ef6a935b53006c03d8782d835109d8
+++ packages/qemu/files/qemu-pci-irq-sharing.patch	234a490aa2ef6a935b53006c03d8782d835109d8
@@ -0,0 +1,52 @@
+diff -pNaur qemu-cvs-ts-orig/hw/pci.c qemu-cvs-ts/hw/pci.c
+--- qemu-cvs-ts-orig/hw/pci.c	2006-08-17 10:46:34.000000000 +0000
++++ qemu-cvs-ts/hw/pci.c	2006-09-23 17:02:41.000000000 +0000
+@@ -34,6 +34,7 @@ struct PCIBus {
+     SetIRQFunc *low_set_irq;
+     void *irq_opaque;
+     PCIDevice *devices[256];
++    int irq_count[4];
+ };
+ 
+ static void pci_update_mappings(PCIDevice *d);
+@@ -49,6 +50,7 @@ PCIBus *pci_register_bus(pci_set_irq_fn 
+     bus->set_irq = set_irq;
+     bus->irq_opaque = pic;
+     bus->devfn_min = devfn_min;
++    memset(bus->irq_count, 0, sizeof(bus->irq_count));
+     first_bus = bus;
+     return bus;
+ }
+@@ -100,6 +102,7 @@ PCIDevice *pci_register_device(PCIBus *b
+     pci_dev->bus = bus;
+     pci_dev->devfn = devfn;
+     pstrcpy(pci_dev->name, sizeof(pci_dev->name), name);
++    memset(pci_dev->irq_state, 0, sizeof(pci_dev->irq_state));
+ 
+     if (!config_read)
+         config_read = pci_default_read_config;
+@@ -404,7 +407,10 @@ uint32_t pci_data_read(void *opaque, uin
+ void pci_set_irq(PCIDevice *pci_dev, int irq_num, int level)
+ {
+     PCIBus *bus = pci_dev->bus;
+-    bus->set_irq(pci_dev, bus->irq_opaque, irq_num, level);
++    bus->irq_count[irq_num] += level - pci_dev->irq_state[irq_num];
++    pci_dev->irq_state[irq_num] = level;
++    bus->set_irq(pci_dev, bus->irq_opaque,
++                 irq_num, !!bus->irq_count[irq_num]);
+ }
+ 
+ /***********************************************************/
+diff -pNaur qemu-cvs-ts-orig/vl.h qemu-cvs-ts/vl.h
+--- qemu-cvs-ts-orig/vl.h	2006-09-18 01:15:29.000000000 +0000
++++ qemu-cvs-ts/vl.h	2006-09-23 17:15:21.000000000 +0000
+@@ -733,6 +733,9 @@ struct PCIDevice {
+     PCIConfigWriteFunc *config_write;
+     /* ??? This is a PC-specific hack, and should be removed.  */
+     int irq_index;
++
++    /* remember last irq levels */
++    int irq_state[4];
+ };
+ 
+ PCIDevice *pci_register_device(PCIBus *bus, const char *name,
============================================================
--- packages/qemu/files/qemu-sdl-cursor.patch	84513ecb2cfd8c6807eb09fb42e947fafe9db3d8
+++ packages/qemu/files/qemu-sdl-cursor.patch	84513ecb2cfd8c6807eb09fb42e947fafe9db3d8
@@ -0,0 +1,13 @@
+Index: qemu/sdl.c
+===================================================================
+--- qemu.orig/sdl.c	2006-10-02 17:06:12.000000000 +0100
++++ qemu/sdl.c	2006-10-02 17:06:59.000000000 +0100
+@@ -287,7 +287,7 @@
+ {
+     if (kbd_mouse_is_absolute()) {
+         SDL_ShowCursor(1);
+-        SDL_SetCursor(sdl_cursor_hidden);
++        /* SDL_SetCursor(sdl_cursor_hidden); */
+     } else {
+         SDL_ShowCursor(0);
+     }
============================================================
--- packages/qemu/files/qemu-usb-wacom-0.8.2.patch	537feabac0d5cc9932fea07d59e87b03945ea3ee
+++ packages/qemu/files/qemu-usb-wacom-0.8.2.patch	537feabac0d5cc9932fea07d59e87b03945ea3ee
@@ -0,0 +1,445 @@
+diff -pNaur qemu-cvs-ts-orig/hw/usb-wacom.c qemu-cvs-ts/hw/usb-wacom.c
+--- qemu-cvs-ts-orig/hw/usb-wacom.c	1970-01-01 01:00:00.000000000 +0100
++++ qemu-cvs-ts/hw/usb-wacom.c	2006-09-22 20:44:26.000000000 +0200
+@@ -0,0 +1,408 @@
++/*
++ * Wacom PenPartner USB tablet emulation.
++ *
++ * Copyright (c) 2006 Openedhand Ltd.
++ *
++ * Author: Andrzej Zaborowski <balrog at zabor.org>
++ *
++ * Based on hw/usb-hid.c:
++ * Copyright (c) 2005 Fabrice Bellard
++ *
++ * 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"
++
++/* Interface requests */
++#define WACOM_GET_REPORT	0x2101
++#define WACOM_SET_REPORT	0x2109
++
++/* HID interface requests */
++#define HID_GET_REPORT		0xa101
++#define HID_GET_IDLE		0xa102
++#define HID_GET_PROTOCOL	0xa103
++#define HID_SET_IDLE		0x210a
++#define HID_SET_PROTOCOL	0x210b
++
++#define WACOM_MODE_HID		1
++#define WACOM_MODE_WACOM	2
++
++typedef struct USBWacomState {
++    USBDevice dev;
++    int dx, dy, dz, buttons_state;
++    int x, y;
++    int mouse_grabbed;
++    int mode;
++} USBWacomState;
++
++static const uint8_t qemu_wacom_dev_descriptor[] = {
++    0x12,	/*  u8 bLength; */
++    0x01,	/*  u8 bDescriptorType; Device */
++    0x10, 0x10,	/*  u16 bcdUSB; v1.10 */
++
++    0x00,	/*  u8  bDeviceClass; */
++    0x00,	/*  u8  bDeviceSubClass; */
++    0x00,	/*  u8  bDeviceProtocol; [ low/full speeds only ] */
++    0x08,	/*  u8  bMaxPacketSize0; 8 Bytes */
++
++    0x6a, 0x05,	/*  u16 idVendor; */
++    0x00, 0x00,	/*  u16 idProduct; */
++    0x10, 0x42,	/*  u16 bcdDevice */
++
++    0x01,	/*  u8  iManufacturer; */
++    0x02,	/*  u8  iProduct; */
++    0x00,	/*  u8  iSerialNumber; */
++    0x01,	/*  u8  bNumConfigurations; */
++};
++
++static const uint8_t qemu_wacom_config_descriptor[] = {
++    /* one configuration */
++    0x09,	/*  u8  bLength; */
++    0x02,	/*  u8  bDescriptorType; Configuration */
++    0x22, 0x00,	/*  u16 wTotalLength; */
++    0x01,	/*  u8  bNumInterfaces; (1) */
++    0x01,	/*  u8  bConfigurationValue; */
++    0x00,	/*  u8  iConfiguration; */
++    0x80,	/*  u8  bmAttributes; 
++				 Bit 7: must be set,
++				     6: Self-powered,
++				     5: Remote wakeup,
++				     4..0: resvd */
++    40,		/*  u8  MaxPower; */
++
++    /* one interface */
++    0x09,	/*  u8  if_bLength; */
++    0x04,	/*  u8  if_bDescriptorType; Interface */
++    0x00,	/*  u8  if_bInterfaceNumber; */
++    0x00,	/*  u8  if_bAlternateSetting; */
++    0x01,	/*  u8  if_bNumEndpoints; */
++    0x03,	/*  u8  if_bInterfaceClass; HID */
++    0x01,	/*  u8  if_bInterfaceSubClass; Boot */
++    0x02,	/*  u8  if_bInterfaceProtocol; [usb1.1 or single tt] */
++    0x00,	/*  u8  if_iInterface; */
++
++    /* HID descriptor */
++    0x09,	/*  u8  bLength; */
++    0x21,	/*  u8  bDescriptorType; */
++    0x01, 0x10,	/*  u16 HID_class */
++    0x00,	/*  u8  country_code */
++    0x01,	/*  u8  num_descriptors */
++    0x22,	/*  u8  type; Report */
++    0x6e, 0x00,	/*  u16 len */
++
++    /* one endpoint (status change endpoint) */
++    0x07,	/*  u8  ep_bLength; */
++    0x05,	/*  u8  ep_bDescriptorType; Endpoint */
++    0x81,	/*  u8  ep_bEndpointAddress; IN Endpoint 1 */
++    0x03,	/*  u8  ep_bmAttributes; Interrupt */
++    0x08, 0x00,	/*  u16 ep_wMaxPacketSize; */
++    0x0a,	/*  u8  ep_bInterval; */
++};
++
++static void usb_mouse_event(void *opaque,
++                            int dx1, int dy1, int dz1, int buttons_state)
++{
++    USBWacomState *s = opaque;
++
++    s->dx += dx1;
++    s->dy += dy1;
++    s->dz += dz1;
++    s->buttons_state = buttons_state;
++}
++
++static void usb_wacom_event(void *opaque,
++                            int x, int y, int dz, int buttons_state)
++{
++    USBWacomState *s = opaque;
++
++    s->x = x;
++    s->y = y;
++    s->dz += dz;
++    s->buttons_state = buttons_state;
++}
++
++static inline int int_clamp(int val, int vmin, int vmax)
++{
++    if (val < vmin)
++        return vmin;
++    else if (val > vmax)
++        return vmax;
++    else
++        return val;
++}
++
++static int usb_mouse_poll(USBWacomState *s, uint8_t *buf, int len)
++{
++    int dx, dy, dz, b, l;
++
++    if (!s->mouse_grabbed) {
++        qemu_add_mouse_event_handler(usb_mouse_event, s, 1);
++        s->mouse_grabbed = 1;
++    }
++
++    dx = int_clamp(s->dx, -128, 127);
++    dy = int_clamp(s->dy, -128, 127);
++    dz = int_clamp(s->dz, -128, 127);
++
++    s->dx -= dx;
++    s->dy -= dy;
++    s->dz -= dz;
++
++    b = 0;
++    if (s->buttons_state & MOUSE_EVENT_LBUTTON)
++        b |= 0x01;
++    if (s->buttons_state & MOUSE_EVENT_RBUTTON)
++        b |= 0x02;
++    if (s->buttons_state & MOUSE_EVENT_MBUTTON)
++        b |= 0x04;
++
++    buf[0] = b;
++    buf[1] = dx;
++    buf[2] = dy;
++    l = 3;
++    if (len >= 4) {
++        buf[3] = dz;
++        l = 4;
++    }
++    return l;
++}
++
++static int usb_wacom_poll(USBWacomState *s, uint8_t *buf, int len)
++{
++    int b;
++
++    if (!s->mouse_grabbed) {
++        qemu_add_mouse_event_handler(usb_wacom_event, s, 1);
++        s->mouse_grabbed = 1;
++    }
++
++    b = 0;
++    if (s->buttons_state & MOUSE_EVENT_LBUTTON)
++        b |= 0x01;
++    if (s->buttons_state & MOUSE_EVENT_RBUTTON)
++        b |= 0x02;
++    if (s->buttons_state & MOUSE_EVENT_MBUTTON)
++        b |= 0x04;
++
++    if (len < 7)
++        return 0;
++
++    buf[0] = s->mode;
++    buf[1] = s->x & 0xff;
++    buf[2] = s->x >> 8;
++    buf[3] = s->y & 0xff;
++    buf[4] = s->y >> 8;
++    if (b) {
++        buf[5] = 0x40;
++        buf[6] = 0;
++    } else {
++        buf[5] = 0x00;
++        buf[6] = (unsigned char) -120;
++    }
++
++    return 7;
++}
++
++static void usb_wacom_handle_reset(USBDevice *dev)
++{
++    USBWacomState *s = (USBWacomState *) dev;
++
++    s->dx = 0;
++    s->dy = 0;
++    s->dz = 0;
++    s->x = 0;
++    s->y = 0;
++    s->buttons_state = 0;
++    s->mode = WACOM_MODE_HID;
++}
++
++static int usb_wacom_handle_control(USBDevice *dev, int request, int value,
++                                    int index, int length, uint8_t *data)
++{
++    USBWacomState *s = (USBWacomState *) dev;
++    int ret = 0;
++
++    switch (request) {
++    case DeviceRequest | USB_REQ_GET_STATUS:
++        data[0] = (1 << USB_DEVICE_SELF_POWERED) |
++            (dev->remote_wakeup << USB_DEVICE_REMOTE_WAKEUP);
++        data[1] = 0x00;
++        ret = 2;
++        break;
++    case DeviceOutRequest | USB_REQ_CLEAR_FEATURE:
++        if (value == USB_DEVICE_REMOTE_WAKEUP) {
++            dev->remote_wakeup = 0;
++        } else {
++            goto fail;
++        }
++        ret = 0;
++        break;
++    case DeviceOutRequest | USB_REQ_SET_FEATURE:
++        if (value == USB_DEVICE_REMOTE_WAKEUP) {
++            dev->remote_wakeup = 1;
++        } else {
++            goto fail;
++        }
++        ret = 0;
++        break;
++    case DeviceOutRequest | USB_REQ_SET_ADDRESS:
++        dev->addr = value;
++        ret = 0;
++        break;
++    case DeviceRequest | USB_REQ_GET_DESCRIPTOR:
++        switch (value >> 8) {
++        case USB_DT_DEVICE:
++            memcpy(data, qemu_wacom_dev_descriptor, 
++                   sizeof(qemu_wacom_dev_descriptor));
++            ret = sizeof(qemu_wacom_dev_descriptor);
++            break;
++        case USB_DT_CONFIG:
++       	    memcpy(data, qemu_wacom_config_descriptor, 
++                   sizeof(qemu_wacom_config_descriptor));
++            ret = sizeof(qemu_wacom_config_descriptor);
++            break;
++        case USB_DT_STRING:
++            switch (value & 0xff) {
++            case 0:
++                /* language ids */
++                data[0] = 4;
++                data[1] = 3;
++                data[2] = 0x09;
++                data[3] = 0x04;
++                ret = 4;
++                break;
++            case 1:
++                /* serial number */
++                ret = set_usb_string(data, "1");
++                break;
++            case 2:
++		ret = set_usb_string(data, "Wacom PenPartner");
++                break;
++            case 3:
++                /* vendor description */
++                ret = set_usb_string(data, "QEMU " QEMU_VERSION);
++                break;
++            case 4:
++                ret = set_usb_string(data, "Wacom Tablet");
++                break;
++            case 5:
++                ret = set_usb_string(data, "Endpoint1 Interrupt Pipe");
++                break;
++            default:
++                goto fail;
++            }
++            break;
++        default:
++            goto fail;
++        }
++        break;
++    case DeviceRequest | USB_REQ_GET_CONFIGURATION:
++        data[0] = 1;
++        ret = 1;
++        break;
++    case DeviceOutRequest | USB_REQ_SET_CONFIGURATION:
++        %s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list