qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] pciproxy


From: Philipp Gühring
Subject: [Qemu-devel] pciproxy
Date: Mon, 13 Sep 2004 14:27:00 +0200
User-agent: KMail/1.6.2

Hi,

I updated the pciproxy patch to work against the current CVS.

Additionally I would suggest to integrate the qemu part of it in the official 
qemu, since it is clean code.

I haven´t looked a the Linux-Host part of pciproxy deeply yet, and I am 
wondering whether it would be possible to have it as a module?

Ok, here is my version of the qemu part of pciproxy, if anyone is interested:

cvs diff: Diffing .
Index: Makefile.target
===================================================================
RCS file: /cvsroot/qemu/qemu/Makefile.target,v
retrieving revision 1.40
diff -u -r1.40 Makefile.target
--- Makefile.target     24 Aug 2004 21:57:12 -0000      1.40
+++ Makefile.target     13 Sep 2004 12:20:23 -0000
@@ -240,7 +240,7 @@
 endif

 # must use static linking to avoid leaving stuff in virtual address space
-VL_OBJS=vl.o osdep.o block.o readline.o monitor.o pci.o console.o
+VL_OBJS=vl.o osdep.o block.o readline.o monitor.o pci.o console.o pciproxy.o
 VL_OBJS+=block-cow.o block-qcow.o aes.o block-vmdk.o

 ifeq ($(TARGET_ARCH), i386)
Index: configure
===================================================================
RCS file: /cvsroot/qemu/qemu/configure,v
retrieving revision 1.43
diff -u -r1.43 configure
--- configure   3 Aug 2004 21:14:23 -0000       1.43
+++ configure   13 Sep 2004 12:20:23 -0000
@@ -400,6 +400,11 @@
   echo "CONFIG_DARWIN=yes" >> $config_mak
   echo "#define CONFIG_DARWIN 1" >> $config_h
 fi
+if test -f "/usr/include/sys/io.h"; then
+  echo "#define HAVE_SYS_IO_H 1" >> $config_h
+  echo "#define HAVE_IOPL 1" >> $config_h
+  echo "#define HAVE_IOPERM 1" >> $config_h
+fi
 if test "$gdbstub" = "yes" ; then
   echo "CONFIG_GDBSTUB=yes" >> $config_mak
   echo "#define CONFIG_GDBSTUB 1" >> $config_h
Index: vl.c
===================================================================
RCS file: /cvsroot/qemu/qemu/vl.c,v
retrieving revision 1.97
diff -u -r1.97 vl.c
--- vl.c        6 Sep 2004 00:14:04 -0000       1.97
+++ vl.c        13 Sep 2004 12:20:25 -0000
@@ -99,6 +99,7 @@
 /* XXX: use a two level table to limit memory usage */
 #define MAX_IOPORTS 65536

+char *pciproxy_devpath = NULL;
 const char *bios_dir = CONFIG_QEMU_SHAREDIR;
 char phys_ram_file[1024];
 CPUState *global_env;
@@ -1566,7 +1567,7 @@
         return -1;
     }
     memset(&ifr, 0, sizeof(ifr));
-    ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
+    ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_ONE_QUEUE;
     pstrcpy(ifr.ifr_name, IFNAMSIZ, "tun%d");
     ret = ioctl(fd, TUNSETIFF, (void *) &ifr);
     if (ret != 0) {
@@ -2504,6 +2505,7 @@
            "-d item1,...    output log to %s (use -d ? for a list of log 
items)\n"
            "-hdachs c,h,s   force hard disk 0 geometry (usually qemu can 
guess it)\n"
            "-L path         set the directory for the BIOS and VGA BIOS\n"
+           "-pciproxy a:b:c proxy pci device\n"
 #ifdef USE_CODE_COPY
            "-no-code-copy   disable code copy acceleration\n"
 #endif
@@ -2578,6 +2580,7 @@
     QEMU_OPTION_L,
     QEMU_OPTION_no_code_copy,
     QEMU_OPTION_pci,
+    QEMU_OPTION_pciproxy,
     QEMU_OPTION_isa,
     QEMU_OPTION_prep,
     QEMU_OPTION_localtime,
@@ -2637,6 +2640,7 @@
     { "prep", 0, QEMU_OPTION_prep },
     { "g", 1, QEMU_OPTION_g },
 #endif
+    { "pciproxy", HAS_ARG, QEMU_OPTION_pciproxy },
     { "localtime", 0, QEMU_OPTION_localtime },
     { "isa", 0, QEMU_OPTION_isa },
     { "std-vga", 0, QEMU_OPTION_std_vga },
@@ -3040,6 +3044,9 @@
                         sizeof(serial_devices[0]), optarg);
                 serial_device_index++;
                 break;
+            case QEMU_OPTION_pciproxy:
+                pciproxy_devpath = (char *)optarg;
+                break;
             }
         }
     }
Index: vl.h
===================================================================
RCS file: /cvsroot/qemu/qemu/vl.h,v
retrieving revision 1.52
diff -u -r1.52 vl.h
--- vl.h        24 Aug 2004 21:13:40 -0000      1.52
+++ vl.h        13 Sep 2004 12:20:26 -0000
@@ -498,6 +498,10 @@
 void openpic_set_irq (openpic_t *opp, int n_IRQ, int level);
 openpic_t *openpic_init (PCIBus *bus, int *pmem_index, int nb_cpus);

+/* pciproxy.c */
+extern char *pciproxy_devpath;
+void pciproxy_add_device(char *devpath);
+
 /* vga.c */

 #define VGA_RAM_SIZE (4096 * 1024)
cvs diff: Diffing hw
Index: hw/pc.c
===================================================================
RCS file: /cvsroot/qemu/qemu/hw/pc.c,v
retrieving revision 1.27
diff -u -r1.27 pc.c
--- hw/pc.c     24 Aug 2004 21:13:40 -0000      1.27
+++ hw/pc.c     13 Sep 2004 12:20:26 -0000
@@ -441,6 +441,9 @@
     if (pci_enabled) {
         pci_bus = i440fx_init();
         piix3_init(pci_bus);
+        if ( pciproxy_devpath )
+           pciproxy_add_device(pciproxy_devpath);
+
     } else {
         pci_bus = NULL;
     }
cvs diff: Diffing linux-user
Index: linux-user/syscall.c
===================================================================
RCS file: /cvsroot/qemu/qemu/linux-user/syscall.c,v
retrieving revision 1.50
diff -u -r1.50 syscall.c
--- linux-user/syscall.c        19 Jun 2004 16:59:03 -0000      1.50
+++ linux-user/syscall.c        13 Sep 2004 12:20:28 -0000
@@ -577,7 +577,7 @@
         case SO_OOBINLINE:
         case SO_NO_CHECK:
         case SO_PRIORITY:
-        case SO_BSDCOMPAT:
+        //case SO_BSDCOMPAT:
         case SO_PASSCRED:
         case SO_TIMESTAMP:
         case SO_RCVLOWAT:






Many greetings,
Philipp Gühring




reply via email to

[Prev in Thread] Current Thread [Next in Thread]