[Qemu-devel] Problems with Modifying "TranslationBlock"

2007-09-02 Thread [EMAIL PROTECTED]
Hi, everybody,

I have encountered an odd problem. I want to mark the "TranslationBlock" when 
the code running on guest-os is a 'call' one or a 'ret' one. So I add some 
member variables in "TranslationBlock" of "exec-all.h". Just like the 
following: 


typedef struct TranslationBlock {

target_ulong pc;   /* simulated PC corresponding to this block (EIP + CS 
base) */
..
struct TranslationBlock *jmp_first;
int is_call;// I add this if the translation block is a 
'call' block
int is_ret; // I add this if the translation block is a 'ret' 
block
}

Moreover, I add some codes in "Translation.c" to mark the current block 'call' 
or 'ret'.

Although the code I add seems work well, the result is not correct. Moreover, 
if I add the member variables before 'pc' in TranslationBlock, qemu does not 
even work. 

So can anyone help me?  Thanks a lot in advance.

Kevin






Re: [Qemu-devel] Current CVS build errors on RH9

2007-09-02 Thread Alexander Voropay

"Mulyadi Santosa" <[EMAIL PROTECTED]> wrote:


/home/wine/qemu/vl.c:59:24: linux/hpet.h: No such file or directory
/home/wine/qemu/vl.c: In function `hpet_start_timer':
/home/wine/qemu/vl.c:1222: storage size of `info' isn't known
/home/wine/qemu/vl.c:1230: `HPET_IRQFREQ' undeclared (first use in 
this function)
Got that messages too when I try to rebuild the CVS version about 3-4 
days ago on my RH9 box. IMHO the reason is: no tg_kill syscall and hpet 
exists on RH 9. However, I successfully build the same CVS version on 
FC2.


The same problem exists on the RedHat RHEL 4 (deriviated from the FC 3).

--
-=AV=-

***
Это сообщение и любые вложения являются конфиденциальными и предназначенными 
исключительно для адресатов.
Любое неуполномоченное использование или распространение запрещено.
Сообщения могут быть изменены. Компания Orange Business Services не несёт 
ответственности за изменение или фальсификацию
сообщений. Если Вы не являетесь получателем данного сообщения, пожалуйста сообщите об этом отправителю 
и удалите это сообщение.

***
This message and any attachments (the "message") are confidential and intended solely for the addressees. 
Any unauthorised use or dissemination is prohibited.

Messages are susceptible to alteration. Orange Business Services shall not be 
liable for the message if altered, changed or
falsified. If you are not the intended addressee of this message, please cancel it immediately and inform 
the sender.

***




[Qemu-devel] [PATCH] Patches from PyQemu project

2007-09-02 Thread Maria Zabolotnaya
Please see previous message for general PyQemu project description. Here are
the patches developed during the project:

1-qemu-override-mtype.patch
Add -mtype command line option to let override ARM MTYPE passed to the
kernel (useful for initial testing, prototyping, and debugging of new
machine).

2-qemu-mplugin.patch
Add -mplugin switch to allow loading of shared library and registering a
machine declared in it.

3-qemu-build-so.patch
Build QEMU as a shared library.

4-qemu-no-statics.patch
Remove static declaration from some QEMU symbols, so they were exported from
shared library.

5-qemu-gccxml-friendly.patch
This is auxiliary patch to make QEMY header C++ friendly, which is required
by gccxml, which in turn is required by ctypes utility h2xml to
automatically generate Python interface files from C headers.

6-qemu-extra-sdstate-accessors.patch
Few extra accessors for SDState structure (as was required to develop
emulation of ASIC3 SD controller). Alternative approach would be to make the
structure itself public.



Best regards,
Maria Zabolotnaya.
Index: vl.c
===
RCS file: /sources/qemu/qemu/vl.c,v
retrieving revision 1.323
diff -u -r1.323 vl.c
--- vl.c	29 Jul 2007 17:57:25 -	1.323
+++ vl.c	19 Aug 2007 01:31:31 -
@@ -196,6 +197,7 @@
 const char *option_rom[MAX_OPTION_ROMS];
 int nb_option_roms;
 int semihosting_enabled = 0;
+int override_mtype = 0;
 int autostart = 1;
 #ifdef TARGET_ARM
 int old_param = 0;
@@ -6590,6 +6592,9 @@
"\n"
"Standard options:\n"
"-M machine  select emulated machine (-M ? for list)\n"
+#ifdef TARGET_ARM
+   "-mtype machid   set ARM machine type for generic machines\n"
+#endif
"-cpu cpuselect CPU (-cpu ? for list)\n"
"-fda/-fdb file  use 'file' as floppy disk 0/1 image\n"
"-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n"
@@ -6805,6 +6811,7 @@
 QEMU_OPTION_name,
 QEMU_OPTION_prom_env,
 QEMU_OPTION_old_param,
+QEMU_OPTION_mtype,
 };
 
 typedef struct QEMUOption {
@@ -6901,6 +6909,7 @@
 { "option-rom", HAS_ARG, QEMU_OPTION_option_rom },
 #if defined(TARGET_ARM) || defined(TARGET_M68K)
 { "semihosting", 0, QEMU_OPTION_semihosting },
+{ "mtype", HAS_ARG, QEMU_OPTION_mtype },
 #endif
 { "name", HAS_ARG, QEMU_OPTION_name },
 #if defined(TARGET_SPARC)
@@ -7684,6 +7694,12 @@
 nb_prom_envs++;
 break;
 #endif
+case QEMU_OPTION_mtype:
+{
+const char *p = optarg;
+override_mtype = strtol(p, (char **)&p, 0);
+}
+break;
 #ifdef TARGET_ARM
 case QEMU_OPTION_old_param:
 old_param = 1;
Index: vl.h
===
RCS file: /sources/qemu/qemu/vl.h,v
retrieving revision 1.260
diff -u -r1.260 vl.h
--- vl.h	16 Aug 2007 19:56:27 -	1.260
+++ vl.h	19 Aug 2007 01:31:31 -
@@ -171,6 +171,8 @@
 extern const char *option_rom[MAX_OPTION_ROMS];
 extern int nb_option_roms;
 
+extern int override_mtype;
+
 #ifdef TARGET_SPARC
 #define MAX_PROM_ENVS 128
 extern const char *prom_envs[MAX_PROM_ENVS];
Index: hw/arm_boot.c
===
RCS file: /sources/qemu/qemu/hw/arm_boot.c,v
retrieving revision 1.8
diff -u -r1.8 arm_boot.c
--- hw/arm_boot.c	27 Jul 2007 22:08:46 -	1.8
+++ hw/arm_boot.c	19 Aug 2007 01:31:31 -
@@ -169,6 +169,8 @@
 env->kernel_filename = kernel_filename;
 env->kernel_cmdline = kernel_cmdline;
 env->initrd_filename = initrd_filename;
+if (override_mtype)
+board_id = override_mtype;
 env->board_id = board_id;
 env->loader_start = loader_start;
 qemu_register_reset(main_cpu_reset, env);
Index: osdep.h
===
RCS file: /sources/qemu/qemu/osdep.h,v
retrieving revision 1.10
diff -u -r1.10 osdep.h
--- osdep.h	7 Jun 2007 23:09:47 -	1.10
+++ osdep.h	19 Aug 2007 01:31:30 -
@@ -28,4 +28,14 @@
 #define qemu_gettimeofday(tp) gettimeofday(tp, NULL);
 #endif /* !_WIN32 */
 
+#ifdef _WIN32
+#define qemu_dlopen(name, flags) LoadLibrary(name)
+#define qemu_dlsym(handle, name) ((void*)GetProcAddress(handle, name))
+#define qemu_dlerror() "DLL load error"
+#else
+#define qemu_dlopen(name, flags) dlopen(name, flags)
+#define qemu_dlsym(handle, name) dlsym(handle, name)
+#define qemu_dlerror() dlerror()
+#endif /* !_WIN32 */
+
 #endif
Index: vl.c
===
RCS file: /sources/qemu/qemu/vl.c,v
retrieving revision 1.323
diff -u -r1.323 vl.c
--- vl.c	29 Jul 2007 17:57:25 -	1.323
+++ vl.c	19 Aug 2007 01:31:31 -
@@ -42,6 +42,7 @@
 #include 
 #include 
 #include 
+#include 
 #ifdef _BSD
 #include 
 #ifndef __APPLE__
@@ -6712,6 +6713,7 @@
 #ifdef TARG

[Qemu-devel] [ANN] PyQemu 1.0 (and machine plugin patches)

2007-09-02 Thread Maria Zabolotnaya
Hello,

My name is Maria Zabolotnaya, I am a Google Summer of Code student from
Handhelds.org organization. This summer I worked on a project to create new
ARM machine emulations using the Python programming language. I am glad to
announce that the work is complete and results are available in the form of
Python bindings for QEMU (PyQemu) and set of auxiliary patches to QEMU
source code.

The release 1.0 is available at this time at
http://handhelds.org/~pfalcon/gsoc/ . It includes:
1. Python bindings for QEMU developed using ctypes Python module (native
Python FFI (Foreign Function Interface), no C glue code is required; part of
standard library since Python 2.5, available as add-on module for earlier
versions).
2. Support for building QEMU as a shared library as required by ctypes to
use it.
3. Patches to export more symbols and accessors from QEMU shared library.
4. Patch to allow to override ARM machine type from command line.
5. Patch to allow to load machine definitions from external shared libraries
(plugins).
6. Samples of machine plugins (C).
7. Basic emulation of HTC ASIC3 peripheral controller, used in the number of
Compaq/HP/HTC ARM PDAs (iPAQ h3900, iPAQ h4000, iPAQ hx4700, HTC Universal,
etc.), written in Python.
8. Emulation of HP iPAQ h4000 PDA (main PDA features): screen, touchscreen,
buttons, SD controller - written in Python.

The archive (pyqemu-1.0.tar.gz) contains all materials above together with
README describing how to make it run. For iPAQ h4000 emulation, sample
kernel/userspace images are available in images-h4000.tar.bz2.

This project was developed under auspices of Handhelds org to facilitate
development of emulations of PDA hardware to help with kernel porting and
debugging on those handhelds. I hope that it will be useful for this
purpose, but its scope is wider and may interest other parties and open new
uses for the QEMU emulator.


I would like to thank following parties:

Google, Inc.for the amazing GSoC program
Handhelds.org for letting me to be a student on their behalf
Paul Sokolovsky, my mentor, for guiding me through this work
Andrzej Zaborowski on whose work on PXA/PDA, etc. emulation this work is
largely based
QEMU project for the best emulation platform ever

Best regards,
Maria Zabolotnaya.


Re: [Qemu-devel] sparc32 networking working?

2007-09-02 Thread Ronald

Robert Reif schreef:

I'm trying to use sparc32 on linux i686 RH9 and am unable to
to get this working with current CVS.  My old scripts that
didn't set any networking options no longer work.  When
running a debian sparc netinst cd the setup finds a dhcp
connection but is unable to connect to the internet.

Adding -user to the command line causes it to output this:
Invalid vlan (0) with no nics

Adding -nic lance to the command line cause it to output this:
qemu-system-sparc: invalid option -- '-nic'

Any idea on what to do next.  If I remember correctly, the
last time I tried this (a few months ago) I was able to successfully
do a debian network install.






Did you try bridging to a non-virtual network? I had some problems too 
when I did not use an alternative network setup.





[Qemu-devel] sparc32 networking working?

2007-09-02 Thread Robert Reif

I'm trying to use sparc32 on linux i686 RH9 and am unable to
to get this working with current CVS.  My old scripts that
didn't set any networking options no longer work.  When
running a debian sparc netinst cd the setup finds a dhcp
connection but is unable to connect to the internet.

Adding -user to the command line causes it to output this:
Invalid vlan (0) with no nics

Adding -nic lance to the command line cause it to output this:
qemu-system-sparc: invalid option -- '-nic'

Any idea on what to do next.  If I remember correctly, the
last time I tried this (a few months ago) I was able to successfully
do a debian network install.





Re: [Qemu-devel] Re: e1000 emulation

2007-09-02 Thread Mulyadi Santosa

Hi Dan...!

How are you doing?

Okay, just a few notes:

 * Sorry for sending this rather badly written patch, I have loads of 
   other stuff at the moment. I hope that it serves as a ground for 
   further development, though.
  

I appreciate your work here, congratulations!

regards,

Mulyadi




Re: [Qemu-devel] Current CVS build errors on RH9

2007-09-02 Thread Mulyadi Santosa

Hi


/home/wine/qemu/linux-user/syscall.c: In function `sys_tgkill':
/home/wine/qemu/linux-user/syscall.c:170: `__NR_tgkill' undeclared 
(first use in this function)
/home/wine/qemu/linux-user/syscall.c:170: (Each undeclared identifier 
is reported only once
/home/wine/qemu/linux-user/syscall.c:170: for each function it appears 
in.)




/home/wine/qemu/vl.c:59:24: linux/hpet.h: No such file or directory
/home/wine/qemu/vl.c: In function `hpet_start_timer':
/home/wine/qemu/vl.c:1222: storage size of `info' isn't known
/home/wine/qemu/vl.c:1230: `HPET_IRQFREQ' undeclared (first use in 
this function)
Got that messages too when I try to rebuild the CVS version about 3-4 
days ago on my RH9 box. IMHO the reason is: no tg_kill syscall and hpet 
exists on RH 9. However, I successfully build the same CVS version on 
FC2. So, either we need to make the ./configure script detect such 
occassion and put the relevant ifdefs here and there, or we completely 
don't support those old distributions.


Anybody wants to share his/her thoughts about it?

regards,

Mulyadi