All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] - make qemu serial summagraphics settings a bit more fluid
@ 2006-05-18 18:50 Ben Thomas
  0 siblings, 0 replies; only message in thread
From: Ben Thomas @ 2006-05-18 18:50 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 740 bytes --]

Changeset 9967 made the qemu serial line Summagraphics support a little
more flexible with respect to the COM line chosen.  This patch
furthers that effort by removing the COM2 restriction.  This patch
allows a "-summa n" command line option to qemu to specify which, if
any, COM port should be using the Summagraphics protocols.

Signed-off-by: Ben Thomas (ben@virtualiron.com)

-- 
------------------------------------------------------------------------
Ben Thomas                                         Virtual Iron Software
bthomas@virtualiron.com                            Tower 1, Floor 2
978-849-1214                                       900 Chelmsford Street
                                                    Lowell, MA 01851

[-- Attachment #2: summa.patch --]
[-- Type: text/x-patch, Size: 3672 bytes --]

diff -r 48c0f5489d44 tools/ioemu/hw/pc.c
--- a/tools/ioemu/hw/pc.c	Thu May 18 11:39:03 2006 +0100
+++ b/tools/ioemu/hw/pc.c	Thu May 18 14:46:20 2006 -0400
@@ -537,7 +537,7 @@ void pc_init(uint64_t ram_size, int vga_
     for(i = 0; i < MAX_SERIAL_PORTS; i++) {
         if (serial_hds[i]) {
             sp = serial_init(serial_io[i], serial_irq[i], serial_hds[i]);
-            if (i == SUMMA_PORT)
+            if (serial_summa[i])
 		summa_init(sp, serial_hds[i]);
         }
     }
diff -r 48c0f5489d44 tools/ioemu/vl.c
--- a/tools/ioemu/vl.c	Thu May 18 11:39:03 2006 +0100
+++ b/tools/ioemu/vl.c	Thu May 18 14:46:20 2006 -0400
@@ -146,6 +146,7 @@ int repeat_key = 1;
 int repeat_key = 1;
 TextConsole *vga_console;
 CharDriverState *serial_hds[MAX_SERIAL_PORTS];
+int serial_summa[MAX_SERIAL_PORTS];
 int xc_handle;
 time_t timeoffset = 0;
 
@@ -2244,6 +2245,7 @@ void help(void)
            "Debug/Expert options:\n"
            "-monitor dev    redirect the monitor to char device 'dev'\n"
            "-serial dev     redirect the serial port to char device 'dev'\n"
+	   "-summa n        set serial line COMn to be a Summagraphics tablet"
            "-S              freeze CPU at startup (use 'c' to start execution)\n"
            "-s              wait gdb connection to port %d\n"
            "-p port         ioreq port for xen\n"
@@ -2349,6 +2351,7 @@ enum {
     QEMU_OPTION_monitor,
     QEMU_OPTION_domainname,
     QEMU_OPTION_serial,
+    QEMU_OPTION_summa,
     QEMU_OPTION_timeoffset,
     QEMU_OPTION_loadvm,
     QEMU_OPTION_full_screen,
@@ -2425,6 +2428,7 @@ const QEMUOption qemu_options[] = {
     { "domain-name", 1, QEMU_OPTION_domainname },
     { "timeoffset", HAS_ARG, QEMU_OPTION_timeoffset },
     { "serial", 1, QEMU_OPTION_serial },
+    { "summa", 1, QEMU_OPTION_summa },
     { "loadvm", HAS_ARG, QEMU_OPTION_loadvm },
     { "full-screen", 0, QEMU_OPTION_full_screen },
 
@@ -2554,6 +2558,7 @@ int main(int argc, char **argv)
     char monitor_device[128];
     char serial_devices[MAX_SERIAL_PORTS][128];
     int serial_device_index;
+    int summa_index;
     char qemu_dm_logfilename[64];
     const char *loadvm = NULL;
     unsigned long nr_pages, *page_array;
@@ -2588,9 +2593,11 @@ int main(int argc, char **argv)
     pstrcpy(monitor_device, sizeof(monitor_device), "vc");
 
     pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "vc");
-    pstrcpy(serial_devices[1], sizeof(serial_devices[1]), "null");
-    for(i = 2; i < MAX_SERIAL_PORTS; i++)
+    serial_summa[0] = 0;
+    for(i = 1; i < MAX_SERIAL_PORTS; i++) {
         serial_devices[i][0] = '\0';
+	serial_summa[i] = 0;
+    }
     serial_device_index = 0;
 
     nb_tun_fds = 0;
@@ -2931,6 +2938,15 @@ int main(int argc, char **argv)
                         sizeof(serial_devices[0]), optarg);
                 serial_device_index++;
                 break;
+            case QEMU_OPTION_summa:
+	        summa_index = atoi(optarg);
+	        if ( (summa_index <= 0) || (summa_index > MAX_SERIAL_PORTS) ) {
+		    fprintf(stderr, "qemu: summa index out of range\n");
+		    exit(1);
+	        }
+	        serial_summa[i-1] = 1;
+	        break;
+
             case QEMU_OPTION_loadvm:
                 loadvm = optarg;
                 break;
diff -r 48c0f5489d44 tools/ioemu/vl.h
--- a/tools/ioemu/vl.h	Thu May 18 11:39:03 2006 +0100
+++ b/tools/ioemu/vl.h	Thu May 18 14:46:20 2006 -0400
@@ -238,9 +238,9 @@ void console_select(unsigned int index);
 /* serial ports */
 
 #define MAX_SERIAL_PORTS 4
-#define SUMMA_PORT	1
 
 extern CharDriverState *serial_hds[MAX_SERIAL_PORTS];
+extern serial_summa[MAX_SERIAL_PORTS];
 
 /* network redirectors support */
 

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-05-18 18:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-18 18:50 [PATCH] - make qemu serial summagraphics settings a bit more fluid Ben Thomas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.