[Qemu-devel] Accessing process ID in QEMU
Hi, I am trying to add commands to the monitor which can enable or disable tracing in QEMU. As arguments to this command I would like to pass the process ID of the process I wish to trace. Can anybody tell me how to access the process ID from within QEMU? Basically, whenever I see an instruction executing I want to capture more details about the instruction such as the type of instruction, the process ID of the process on behalf of which this instruction is executing (other details I'm interested in is if this is a load or store, memory address, and memory value loaded/stored, etc). Can you please tell me how to figure out these details, especially the process ID. Thanks, -Shashi.
[Qemu-devel] qemu cpu-defs.h exec.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 06:43:27 Modified files: . : cpu-defs.h exec.c Log message: Infrastructure to support more than 2 MMU modes. Add example for Alpha and PowerPC hypervisor mode. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/cpu-defs.h?cvsroot=qemur1=1.19r2=1.20 http://cvs.savannah.gnu.org/viewcvs/qemu/exec.c?cvsroot=qemur1=1.90r2=1.91
[Qemu-devel] qemu/target-alpha
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 06:57:13 New directory: target-alpha CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/?cvsroot=qemu
[Qemu-devel] qemu/target-alpha cpu.h exec.h helper.c op.c op...
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 06:58:33 Added files: target-alpha : cpu.h exec.h helper.c op.c op_helper.c op_helper.h op_helper_mem.h op_mem.h op_template.h translate.c Log message: Alpha architecture emulation core. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/cpu.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/exec.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/helper.c?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/op.c?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/op_helper.c?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/op_helper.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/op_helper_mem.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/op_mem.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/op_template.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/translate.c?cvsroot=qemurev=1.1
[Qemu-devel] qemu/linux-user/alpha syscall.h syscall_nr.h te...
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 07:06:55 Added files: linux-user/alpha: syscall.h syscall_nr.h termbits.h Log message: Definitions needed for Alpha linux user-mode emulation. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/alpha/syscall.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/alpha/syscall_nr.h?cvsroot=qemurev=1.1 http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/alpha/termbits.h?cvsroot=qemurev=1.1
[Qemu-devel] qemu/linux-user elfload.c main.c syscall.c sysc...
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 07:13:51 Modified files: linux-user : elfload.c main.c syscall.c syscall_defs.h Log message: Preliminary patch for Alpha Linux user mode emulation support. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/elfload.c?cvsroot=qemur1=1.38r2=1.39 http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/main.c?cvsroot=qemur1=1.104r2=1.105 http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/syscall.c?cvsroot=qemur1=1.97r2=1.98 http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/syscall_defs.h?cvsroot=qemur1=1.30r2=1.31
[Qemu-devel] qemu cpu-all.h cpu-exec.c dis-asm.h disas.c exe...
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 07:22:49 Modified files: . : cpu-all.h cpu-exec.c dis-asm.h disas.c exec-all.h softmmu_header.h translate-all.c vl.c Log message: Integrate Alpha target in Qemu core. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/cpu-all.h?cvsroot=qemur1=1.65r2=1.66 http://cvs.savannah.gnu.org/viewcvs/qemu/cpu-exec.c?cvsroot=qemur1=1.98r2=1.99 http://cvs.savannah.gnu.org/viewcvs/qemu/dis-asm.h?cvsroot=qemur1=1.11r2=1.12 http://cvs.savannah.gnu.org/viewcvs/qemu/disas.c?cvsroot=qemur1=1.34r2=1.35 http://cvs.savannah.gnu.org/viewcvs/qemu/exec-all.h?cvsroot=qemur1=1.50r2=1.51 http://cvs.savannah.gnu.org/viewcvs/qemu/softmmu_header.h?cvsroot=qemur1=1.13r2=1.14 http://cvs.savannah.gnu.org/viewcvs/qemu/translate-all.c?cvsroot=qemur1=1.15r2=1.16 http://cvs.savannah.gnu.org/viewcvs/qemu/vl.c?cvsroot=qemur1=1.277r2=1.278
[Qemu-devel] Alpha CPU emulation
As previously proposed here, I finally commited my work on the Alpha target emulation. This target is still in very alpha state (!) and a few patches are missing to make it able to compile. I intend to submit those patches very soon but I need to make more checks not to break any other target. In the meantime, the commited code may allow some to take a look and figure out what is already done and what's missing. Most of the CPU core instructions are emulated. No exceptions are generated on floating point arithmetic. VAX floating point load and store are missing as well as the multimedia extensions. The emulation of instructions reserved for PALcode may also be very approximative. I did start to implement 2 models for PALcode support: the first approach is to emulate the PALcode (in hw/alpha_palcode.c). This makes the CPU emulation easier as we don't have to implement the IPR support details nor any PALcode reserved instructions. The other approach is to support a native PALcode. I guess most of the features missing (and harder to implement, unfortunately) are here. Please enjoy and comment ! -- J. Mayer [EMAIL PROTECTED] Never organized
Re : [Qemu-devel] [patch] use socklen_t with getsockopt()
Was incorrect before too, since it was sizeof(int) in the first place ? Sylvain - Message d'origine De : Thiemo Seufer [EMAIL PROTECTED] À : Mike Frysinger [EMAIL PROTECTED] Cc : Qemu-devel@nongnu.org Envoyé le : Dimanche, 1 Avril 2007, 20h43mn 02s Objet : Re: [Qemu-devel] [patch] use socklen_t with getsockopt() Mike Frysinger wrote: obvious fixup ... getsockopt() takes a socklen_t, not an int -mike This is incorrect. Its initial value is sizeof(val). Thiemo
[Qemu-devel] [qemu-system-arm]Help needed
Hi, I would like to build a linux kernel for an arm system and use Qemu for the simulation. What target exactly can I use ? May I use something like XXX_defconfig? I will be very interested to know how was built the arm-test-0.2 available in the Qemu website. The target doesn't really matter, I'm just interested in the process of building a linux sytem for arm and emulate it with Qemu. I've already find some hints to build a kernel for ARM but it doesn't work with Qemu. If you have any informations, don't hesitate! Thanks in advance. Regards, Maxime.
Re: [Qemu-devel] [qemu-system-arm]Help needed
The target doesn't really matter, I'm just interested in the process of building a linux sytem for arm and emulate it with Qemu. You can perhaps look here: http://www.linux-arm.org/LinuxDevTools/ScratchBoxQEMU I have not tested it myself. Laurent
Re: [Qemu-devel] [qemu-system-arm]Help needed
On Thursday 05 April 2007 10:57, Maxime Tierrie wrote: Hi, I would like to build a linux kernel for an arm system and use Qemu for the simulation. What target exactly can I use ? May I use something like XXX_defconfig? I will be very interested to know how was built the arm-test-0.2 available in the Qemu website. The target doesn't really matter, I'm just interested in the process of building a linux sytem for arm and emulate it with Qemu. From the README in that tarball: The kernel config is included in the kernel. It can be extracted from the image with linux/scripts/extract-ikconfig or accessed as /proc/config.gz on a running kenel. Paul
[Qemu-devel] qemu-img convert creates non-bootable image
Hello, I converted a vmware image to raw format but it is not bootable any more. I used qemu-img convert xyz.vmdk -f raw xyz.img Any Ideass? Halim
Re: [Qemu-devel] Accessing process ID in QEMU
I guess you're mixing some concepts. A PID is a concept from the operating system, not from the hardware, emulated or physical. What you could do, however, is experiment with user-mode emulation. Check out the QEMU documentation regarding how to use this mode. You could conceivably mess with the operating system scheduler code to emit every context switch to user-land and dump the PID of the current process to the serial port, and have QEMU trap when certain instructions are executed, and then you cross this information yourself. But that just doesn't sound right, specially considering how fast and often context switches happen. OTOH, if you know where in memory the OS stores the current PID, you could make QEMU trap on that instruction and then dump the memory location of interest. HTH, On 4/5/07, Shashidhar Mysore [EMAIL PROTECTED] wrote: Hi, I am trying to add commands to the monitor which can enable or disable tracing in QEMU. As arguments to this command I would like to pass the process ID of the process I wish to trace. Can anybody tell me how to access the process ID from within QEMU? Basically, whenever I see an instruction executing I want to capture more details about the instruction such as the type of instruction, the process ID of the process on behalf of which this instruction is executing (other details I'm interested in is if this is a load or store, memory address, and memory value loaded/stored, etc). Can you please tell me how to figure out these details, especially the process ID. Thanks, -Shashi.
[Qemu-devel] qemu/hw sun4m.c
CVSROOT:/cvsroot/qemu Module name:qemu Changes by: Blue Swirl blueswir107/04/05 17:00:23 Modified files: hw : sun4m.c Log message: Fill in real SparcStation 10 values CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/hw/sun4m.c?cvsroot=qemur1=1.30r2=1.31 _ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
Re: Re : [Qemu-devel] [patch] use socklen_t with getsockopt()
Sylvain Petreolle wrote: Was incorrect before too, since it was sizeof(int) in the first place ? The old type of val was int, so it made no different to the size. When val is of type socklen_t, it matters. -- Jamie
[Qemu-devel] Re: Detecting an assembly instruction in QEMU
Hi All, Adding another note to my previous email. Is this even possible to do what I am mentioned in my last email? (See Below) Regards, Atif On 4/3/07, Atif Hashmi [EMAIL PROTECTED] wrote: Hi All, I am inserting movl %eax, %eax instruction within the assembly code of a program and I am running the code on QEMU which is configured for i386 and is running linux-0.2.img. I want to detect this assembly instruction within the QEMU code in order to perform a specific operation e.g. when ever QEMU finds this instruction a specific function is called. Could anyone please tell me which QEMU files should I modify in order to add this functionality. I looked through almost all the C files but was unable to figure it out. I will really appreciate any help. Thanks, Atif
[Qemu-devel] Re: [PATCH][SPARC] FPU deferred trap-queue
On Tue, Apr 03, 2007 at 02:12:14AM +0200, Aurelien Jarno wrote: Hi, The current emulated SPARC FPU does not support deferred trap-queue. In such cases the STDFQ instruction should generate an fp_exception trap with the FTT field to sequence_error instead of the current illegal_instruction trap. The attached patch fixes that. It also ensures that the qne bit of the FSR register is always zero, ie that there is no deferred trap-queue pending. I have just remarked that my patch breaks the user mode. Please find attached a new one to fix this problem. Bye, Aurelien -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' [EMAIL PROTECTED] | [EMAIL PROTECTED] `-people.debian.org/~aurel32 | www.aurel32.net diff -u -d -p -r1.32 cpu.h --- qemu.orig/target-sparc/cpu.h 1 Apr 2007 15:15:36 - 1.32 +++ qemu/target-sparc/cpu.h 5 Apr 2007 17:36:19 - @@ -127,6 +127,7 @@ #define FSR_FTT_MASK (FSR_FTT2 | FSR_FTT1 | FSR_FTT0) #define FSR_FTT_IEEE_EXCP (1 14) #define FSR_FTT_UNIMPFPOP (3 14) +#define FSR_FTT_SEQ_ERROR (4 14) #define FSR_FTT_INVAL_FPR (6 14) #define FSR_FCC1 (111) @@ -239,7 +240,7 @@ typedef struct CPUSPARCState { #else #define GET_FSR32(env) (env-fsr) #define PUT_FSR32(env, val) do { uint32_t _tmp = val; \ -env-fsr = (_tmp 0xcfc1) | (env-fsr 0x000e); \ +env-fsr = (_tmp 0xcfc1dfff) | (env-fsr 0x000e); \ } while (0) #endif diff -u -d -p -r1.44 translate.c --- qemu.orig/target-sparc/translate.c 1 Apr 2007 16:23:36 - 1.44 +++ qemu/target-sparc/translate.c 5 Apr 2007 17:36:19 - @@ -2602,8 +2602,14 @@ static void disas_sparc_insn(DisasContex gen_op_stfsr(); gen_op_ldst(stf); break; +#if !defined(CONFIG_USER_ONLY) case 0x26: /* stdfq */ - goto nfpu_insn; + if (!supervisor(dc)) + goto priv_insn; + if (gen_trap_ifnofpu(dc)) + goto jmp_insn; + goto nfq_insn; +#endif case 0x27: gen_op_load_fpr_DT0(DFPREG(rd)); gen_op_ldst(stdf); @@ -2665,6 +2671,11 @@ static void disas_sparc_insn(DisasContex gen_op_exception(TT_PRIV_INSN); dc-is_br = 1; return; + nfq_insn: +save_state(dc); +gen_op_fpexception_im(FSR_FTT_SEQ_ERROR); +dc-is_br = 1; +return; #endif nfpu_insn: save_state(dc);
[Qemu-devel] [PATCH][SPARC] Doubleword alignment for floating point instructions
Hi all, According to the SPARC v8 manual, floating point instructions that operate on doublewords should be aligned. The processor should ignore the least significant bit of the register number, and may generate a trap. Very few real CPU are actually generating a trap, so the attached patch simply make the emulated CPU to ignore the smaller bit. Note that on SPARC v9, this bit is actually used as the most significant bit. Bye, Aurelien -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' [EMAIL PROTECTED] | [EMAIL PROTECTED] `-people.debian.org/~aurel32 | www.aurel32.net diff -u -d -p -r1.44 translate.c --- qemu.orig/target-sparc/translate.c 1 Apr 2007 16:23:36 - 1.44 +++ qemu/target-sparc/translate.c 5 Apr 2007 17:41:37 - @@ -90,7 +89,7 @@ enum { #ifdef TARGET_SPARC64 #define DFPREG(r) (((r 1) 6) | (r 0x1e)) #else -#define DFPREG(r) (r) +#define DFPREG(r) (r 0x1e) #endif #ifdef USE_DIRECT_JUMP
[Qemu-devel] qemu/target-sparc translate.c
CVSROOT:/cvsroot/qemu Module name:qemu Changes by: Blue Swirl blueswir107/04/05 18:09:15 Modified files: target-sparc : translate.c Log message: Fix co-processor branch and store ops (Aurelien Jarno) CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-sparc/translate.c?cvsroot=qemur1=1.44r2=1.45 _ FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
[Qemu-devel] qemu/target-sparc cpu.h translate.c
CVSROOT:/cvsroot/qemu Module name:qemu Changes by: Blue Swirl blueswir107/04/05 18:12:08 Modified files: target-sparc : cpu.h translate.c Log message: Fix stdfq op (Aurelien Jarno) CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-sparc/cpu.h?cvsroot=qemur1=1.32r2=1.33 http://cvs.savannah.gnu.org/viewcvs/qemu/target-sparc/translate.c?cvsroot=qemur1=1.45r2=1.46 _ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
[Qemu-devel] qemu Changelog qemu-tech.texi
CVSROOT:/cvsroot/qemu Module name:qemu Changes by: Blue Swirl blueswir107/04/05 18:40:23 Modified files: . : Changelog qemu-tech.texi Log message: Documentation update CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/Changelog?cvsroot=qemur1=1.133r2=1.134 http://cvs.savannah.gnu.org/viewcvs/qemu/qemu-tech.texi?cvsroot=qemur1=1.10r2=1.11 _ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
[Qemu-devel] 0.9.0 Win32 Tap inferface PPC Guest issue
I'm having an issue getting the 0.9.0 build ppc to work with tap. OpenVPN 2.09 Relevant Parameters -net nic -net tap,ifname=tap-lan 0.8.2 works quite well. I've narrowed the break to the change described here. http://lists.gnu.org/archive/html/qemu-devel/2006-08/msg00243.html Backing this out of the 0.9.0 gets tap networking working again. I'll keep investigating. Ely Soto, Flight Software Engineer Orbital Sciences Corp. Dulles, VA. [EMAIL PROTECTED] Office No. 703-406-5341 Mobile No. 703-403-7077 - Notice: This e-mail is intended solely for use of the individual or entity to which it is addressed and may contain information that is proprietary, privileged and exempt from disclosure under applicable law. If the reader is not the intended recipient or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. This communication may also contain data subject to U.S. export laws. If so, that data subject to the International Traffic in Arms Regulation cannot be disseminated, distributed or copied to foreign nationals, residing in the U.S. or abroad, absent the express prior approval of the U.S. Department of State. If you have received this communication in error, please notify the sender by reply e-mail and destroy the e-mail message and any physical copies made of the communication. Thank you.
[Qemu-devel] [PATCH][SPARC] Full implementation of IEEE exceptions
Hi, The attached patch fully implements IEEE exceptions on the SPARC target. Some more details: - Any floating point operation that does not trap should clear the ftt flags. Similary, any floating point operation that does not generate an IEEE exception should clear the cexec flags. In the patch this operation is actually done at the same place before emulating the instruction via op_clear_ieee_excp_and_FTT, and set back to the correct value in the unlikely case of a trap. - To compute the IEEE flags, and to trap if needed, every floating point instruction that can generate a trap is precedeed by a clear of the IEEE flags of the softmmu functions. After the instruction, the check_ieee_exceptions function copies the softmmu flags into the FSR flags (aexec, cexec), and if the corresponding TEM flag is set, a trap is generated. - GEN_FCMP has to set the FSR_NVC flag, and should set the ftt flags to IEEE_754_exception. - This patch also correctly implements the fcmpes and fcmped instructions by adding a sixth parameter. If this parameter is set, the comparaison generates a trap for unordered relations even if FSR_NVM is not set. Bye, Aurelien -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' [EMAIL PROTECTED] | [EMAIL PROTECTED] `-people.debian.org/~aurel32 | www.aurel32.net diff -u -d -p -r1.17 exec.h --- qemu.orig/target-sparc/exec.h 19 Mar 2007 14:47:40 - 1.17 +++ qemu/target-sparc/exec.h 5 Apr 2007 18:46:48 - @@ -61,6 +61,8 @@ void do_fsqrts(void); void do_fsqrtd(void); void do_fcmps(void); void do_fcmpd(void); +void do_fcmpes(void); +void do_fcmped(void); #ifdef TARGET_SPARC64 void do_fabsd(void); void do_fcmps_fcc1(void); @@ -69,6 +71,12 @@ void do_fcmps_fcc2(void); void do_fcmpd_fcc2(void); void do_fcmps_fcc3(void); void do_fcmpd_fcc3(void); +void do_fcmpes_fcc1(void); +void do_fcmped_fcc1(void); +void do_fcmpes_fcc2(void); +void do_fcmped_fcc2(void); +void do_fcmpes_fcc3(void); +void do_fcmped_fcc3(void); void do_popc(); void do_wrpstate(); void do_done(); @@ -79,6 +87,7 @@ void do_ldd_user(target_ulong addr); void do_ldd_raw(target_ulong addr); void do_interrupt(int intno); void raise_exception(int tt); +void check_ieee_exceptions(); void memcpy32(target_ulong *dst, const target_ulong *src); target_ulong mmu_probe(CPUState *env, target_ulong address, int mmulev); void dump_mmu(CPUState *env); diff -u -d -p -r1.27 op.c --- qemu.orig/target-sparc/op.c 1 Apr 2007 15:38:17 - 1.27 +++ qemu/target-sparc/op.c 5 Apr 2007 18:46:48 - @@ -1534,16 +1534,25 @@ void OPPROTO op_flush_T0(void) helper_flush(T0); } +void OPPROTO op_clear_ieee_excp_and_FTT(void) +{ +env-fsr = ~(FSR_FTT_MASK | FSR_CEXEC_MASK);; +} + #define F_OP(name, p) void OPPROTO op_f##name##p(void) #define F_BINOP(name) \ F_OP(name, s) \ { \ + set_float_exception_flags(0, env-fp_status); \ FT0 = float32_ ## name (FT0, FT1, env-fp_status); \ + check_ieee_exceptions();\ } \ F_OP(name, d) \ { \ + set_float_exception_flags(0, env-fp_status); \ DT0 = float64_ ## name (DT0, DT1, env-fp_status); \ + check_ieee_exceptions();\ } F_BINOP(add); @@ -1554,9 +1563,11 @@ F_BINOP(div); void OPPROTO op_fsmuld(void) { +set_float_exception_flags(0, env-fp_status); DT0 = float64_mul(float32_to_float64(FT0, env-fp_status), float32_to_float64(FT1, env-fp_status), env-fp_status); +check_ieee_exceptions(); } #define F_HELPER(name)\ @@ -1582,6 +1593,7 @@ F_OP(abs, s) } F_HELPER(cmp); +F_HELPER(cmpe); #ifdef TARGET_SPARC64 F_OP(neg, d) @@ -1623,6 +1635,37 @@ void OPPROTO op_fcmpd_fcc3(void) { do_fcmpd_fcc3(); } + +void OPPROTO op_fcmpes_fcc1(void) +{ +do_fcmpes_fcc1(); +} + +void OPPROTO op_fcmped_fcc1(void) +{ +do_fcmped_fcc1(); +} + +void OPPROTO op_fcmpes_fcc2(void) +{ +do_fcmpes_fcc2(); +} + +void OPPROTO op_fcmped_fcc2(void) +{ +do_fcmped_fcc2(); +} + +void OPPROTO op_fcmpes_fcc3(void) +{ +do_fcmpes_fcc3(); +} + +void OPPROTO op_fcmped_fcc3(void) +{ +do_fcmped_fcc3(); +} + #endif /* Integer to float conversion. */ @@ -1631,23 +1674,31 @@ F_HELPER(ito); #else F_OP(ito, s) { +set_float_exception_flags(0, env-fp_status); FT0 = int32_to_float32(*((int32_t *)FT1), env-fp_status); +check_ieee_exceptions(); } F_OP(ito, d) { +set_float_exception_flags(0, env-fp_status); DT0 = int32_to_float64(*((int32_t *)FT1), env-fp_status); +check_ieee_exceptions(); } #ifdef
Re: [Qemu-devel] 0.9.0 Win32 Tap inferface PPC Guest issue
Further details: This call functions correctly and returns true. tap-win32.c, line 534 ReleaseSemaphore(overlapped-tap_semaphore, 1, NULL) However, WaitForMultipleObjects never returns successfully to execute the callback function. vl.c, line 5859 main_loop_wait() ... ret = WaitForMultipleObjects(w-num, w-events, FALSE, timeout); if (WAIT_OBJECT_0 + 0 = ret ret = WAIT_OBJECT_0 + w-num - 1) { ... Ely Soto, Flight Software Engineer Orbital Sciences Corp. Dulles, VA. [EMAIL PROTECTED] Office No. 703-406-5341 Mobile No. 703-403-7077 - Notice: This e-mail is intended solely for use of the individual or entity to which it is addressed and may contain information that is proprietary, privileged and exempt from disclosure under applicable law. If the reader is not the intended recipient or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. This communication may also contain data subject to U.S. export laws. If so, that data subject to the International Traffic in Arms Regulation cannot be disseminated, distributed or copied to foreign nationals, residing in the U.S. or abroad, absent the express prior approval of the U.S. Department of State. If you have received this communication in error, please notify the sender by reply e-mail and destroy the e-mail message and any physical copies made of the communication. Thank you.
[Qemu-devel] ELF loader fix
It appears that the start_data is not well computed in Qemu: it's set to the end_code value, which does not follow what the Linux kernel does. Here's a patch that fix this issue. But as it may affect ARM emulated target (at least those with no MMU, as noticed in the patch), I prefer to let people that do know ARM better check what this patch may break in this case. -- J. Mayer [EMAIL PROTECTED] Never organized Index: linux-user/elfload.c === RCS file: /sources/qemu/qemu/linux-user/elfload.c,v retrieving revision 1.39 diff -u -d -d -p -r1.39 elfload.c --- linux-user/elfload.c 5 Apr 2007 07:13:51 - 1.39 +++ linux-user/elfload.c 5 Apr 2007 19:58:35 - @@ -106,6 +128,7 @@ static inline void init_thread(struct ta /* XXX: it seems that r0 is zeroed after ! */ regs-ARM_r0 = 0; /* For uClinux PIC binaries. */ +/* XXX: Linux does this only on ARM with no MMU (do we care ?) */ regs-ARM_r10 = infop-start_data; } @@ -916,7 +939,7 @@ int load_elf_binary(struct linux_binprm char * elf_interpreter; unsigned long elf_entry, interp_load_addr = 0; int status; -unsigned long start_code, end_code, end_data; +unsigned long start_code, end_code, start_data, end_data; unsigned long elf_stack; char passed_fileno[6]; @@ -977,6 +1000,7 @@ int load_elf_binary(struct linux_binprm elf_interpreter = NULL; start_code = ~0UL; end_code = 0; +start_data = 0; end_data = 0; for(i=0;i elf_ex.e_phnum; i++) { @@ -1186,6 +1210,8 @@ int load_elf_binary(struct linux_binprm k = elf_ppnt-p_vaddr; if (k start_code) start_code = k; +if (start_data k) +start_data = k; k = elf_ppnt-p_vaddr + elf_ppnt-p_filesz; if (k elf_bss) elf_bss = k; @@ -1202,7 +1228,7 @@ int load_elf_binary(struct linux_binprm elf_brk += load_bias; start_code += load_bias; end_code += load_bias; -//start_data += load_bias; +start_data += load_bias; end_data += load_bias; if (elf_interpreter) { @@ -1247,7 +1273,7 @@ int load_elf_binary(struct linux_binprm info-start_brk = info-brk = elf_brk; info-end_code = end_code; info-start_code = start_code; -info-start_data = end_code; +info-start_data = start_data; info-end_data = end_data; info-start_stack = bprm-p;
[Qemu-devel] qemu exec.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 20:08:21 Modified files: . : exec.c Log message: Temporary hack for alpha user-mode emulation. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/exec.c?cvsroot=qemur1=1.91r2=1.92
[Qemu-devel] qemu Makefile Makefile.target configure
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 20:46:02 Modified files: . : Makefile Makefile.target configure Log message: Rules needed to compile linux user-mode alpha target. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/Makefile?cvsroot=qemur1=1.115r2=1.116 http://cvs.savannah.gnu.org/viewcvs/qemu/Makefile.target?cvsroot=qemur1=1.156r2=1.157 http://cvs.savannah.gnu.org/viewcvs/qemu/configure?cvsroot=qemur1=1.136r2=1.137
Re: [Qemu-devel] 0.9.0 Win32 Tap inferface PPC Guest issue
Initially it looks like it may be some sort of timing issue. It happened to start working a bit without any code changes after I was stepping through the code. Can't reproduce that yet. Ely Soto - Notice: This e-mail is intended solely for use of the individual or entity to which it is addressed and may contain information that is proprietary, privileged and exempt from disclosure under applicable law. If the reader is not the intended recipient or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. This communication may also contain data subject to U.S. export laws. If so, that data subject to the International Traffic in Arms Regulation cannot be disseminated, distributed or copied to foreign nationals, residing in the U.S. or abroad, absent the express prior approval of the U.S. Department of State. If you have received this communication in error, please notify the sender by reply e-mail and destroy the e-mail message and any physical copies made of the communication. Thank you.
[Qemu-devel] Patch: fix helper.c with isinf on Solaris 9/Sparc
This fixes a linker error for target-i386/helper.c on Solaris 9/Sparc, as Solaris 9/Sparc does not include the isinf function or macro. Due to the use of libsunmath on Solaris 9/X86, this feature is not needed. Ben --- qemu.ORIG/target-i386/helper.c 2007-04-03 12:38:34.0 -0400 +++ qemu/target-i386/helper.c 2007-04-05 16:57:31.311064000 -0400 @@ -21,6 +21,11 @@ //#define DEBUG_PCALL +#if defined(__sparc__) (HOST_SOLARIS 10) +#include ieeefp.h +#define isinf(x) (fpclass(x) == FP_NINF || fpclass(x) == FP_PINF) +#endif + #if 0 #define raise_exception_err(a, b)\ do {\
[Qemu-devel] -vmwarevga issues
I just tried this new toy and found these things: 1. Has it been tested with xorg 7.1.0 guests? I booted http://debian.tu-bs.de/project/sidux/release/SIDUX-2007-01-200702210759-CHAOS.ISO (see http://www.sidux.com/Article116.html , it is based on debian sid and has has xorg 7.1.0) and it detected the vmware vga, but hung when trying to start X. 2. And with http://ftp.us.freesbie.org/pub/FreeSBIE/2.0.1-RELEASE/FreeSBIE-2.0.1-RELEASE.iso (see http://www.freesbie.org/ , based on FreeBSD 6.2 and using xorg 6.9.0) it worked (after editing `Driver vmware' into xorg.conf because its xorg autoconfiguration didnt know that card), but caused both the ne2kpci (ed0) and es1370 (pcm0) cards not to be detected: (from bootverbose dmesg:) ed0: RealTek 8029 port 0xfb00-0xfbff irq 11 at device 3.0 on pci0 device_attach: ed0 attach returned 2 pcm0: AudioPCI ES1370 port 0xfc00-0xfcff irq 9 at device 4.0 on pci0 pcm0: unable to map register space (both are detected and work when using the default cirrus vga.) Interestingly, the new eepro100 nic which I also tried (i82559er == fxp0, see other post) still worked... And I just tried the rtl8139 nic (re0) which also didn't work, saying: re0: couldn't map ports/memory rl0: couldn't map ports/memory (the rl driver also matches for this pci id, but would use non-C+ mode which eats more cpu.) Hope this is helpful to some :) Juergen
[Qemu-devel] Re: -vmwarevga issues
On Thu, Apr 05, 2007 at 10:13:22PM +0200, I wrote: ... 2. And with http://ftp.us.freesbie.org/pub/FreeSBIE/2.0.1-RELEASE/FreeSBIE-2.0.1-RELEASE.iso (see http://www.freesbie.org/ , based on FreeBSD 6.2 and using xorg 6.9.0) it worked (after editing `Driver vmware' into xorg.conf because its xorg autoconfiguration didnt know that card), but caused both the ne2kpci (ed0) and es1370 (pcm0) cards not to be detected: (from bootverbose dmesg:) ed0: RealTek 8029 port 0xfb00-0xfbff irq 11 at device 3.0 on pci0 device_attach: ed0 attach returned 2 pcm0: AudioPCI ES1370 port 0xfc00-0xfcff irq 9 at device 4.0 on pci0 pcm0: unable to map register space (both are detected and work when using the default cirrus vga.) Hmm I just found qemu that I had left running hang (monitor, on stdio, not responding), attaching gdb found it here: Script started on Thu Apr 5 22:29:42 2007 % gdb work/qemu-snapshot-2007-04-05_05/i386-softmmu/qemu 24677 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as i386-marcel-freebsd... Attaching to program: /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/i386-softmmu/qemu, process 24677 Reading symbols from /lib/libm.so.4...done. Loaded symbols for /lib/libm.so.4 Reading symbols from /lib/libz.so.3...done. Loaded symbols for /lib/libz.so.3 Reading symbols from /usr/local/lib/libSDL.so.11...done. Loaded symbols for /usr/local/lib/libSDL.so.11 Reading symbols from /lib/libutil.so.5...done. Loaded symbols for /lib/libutil.so.5 Reading symbols from /usr/lib/libpthread.so.2...done. warning: Unable to get location for thread creation breakpoint: generic error [New LWP 100167] Loaded symbols for /usr/lib/libpthread.so.2 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/X11R6/lib/libX11.so.6...done. Loaded symbols for /usr/X11R6/lib/libX11.so.6 Reading symbols from /usr/X11R6/lib/libXext.so.6...done. Loaded symbols for /usr/X11R6/lib/libXext.so.6 Reading symbols from /usr/X11R6/lib/libXrandr.so.2...done. Loaded symbols for /usr/X11R6/lib/libXrandr.so.2 Reading symbols from /usr/X11R6/lib/libXrender.so.1...done. Loaded symbols for /usr/X11R6/lib/libXrender.so.1 Reading symbols from /usr/local/lib/libvga.so.1...done. Loaded symbols for /usr/local/lib/libvga.so.1 Reading symbols from /usr/lib/libvgl.so.4...done. Loaded symbols for /usr/lib/libvgl.so.4 Reading symbols from /usr/local/lib/libaa.so.1...done. Loaded symbols for /usr/local/lib/libaa.so.1 Reading symbols from /usr/lib/libusbhid.so.2...done. Loaded symbols for /usr/lib/libusbhid.so.2 Reading symbols from /lib/libncurses.so.6...done. Loaded symbols for /lib/libncurses.so.6 Reading symbols from /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2...done. Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2 Reading symbols from /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2...done. Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 Reading symbols from /usr/X11R6/lib/libXcursor.so.1...done. Loaded symbols for /usr/X11R6/lib/libXcursor.so.1 Reading symbols from /usr/X11R6/lib/libXfixes.so.3...done. Loaded symbols for /usr/X11R6/lib/libXfixes.so.3 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 [Switching to LWP 100167] 0x282bf776 in memmove () from /lib/libc.so.6 (gdb) bt #0 0x282bf776 in memmove () from /lib/libc.so.6 #1 0x080afc3e in vmsvga_fifo_run (s=0x9ba71d4) at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/hw/vmware_vga.c:373 #2 0x080b029c in vmsvga_update_display (opaque=0x9ba71d4) at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/hw/vmware_vga.c:862 #3 0x08057f54 in vga_hw_update () at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/console.c:149 #4 0x080b1e30 in sdl_refresh (ds=0x8130760) at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/sdl.c:344 #5 0x08050a61 in gui_update (opaque=0x0) at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/vl.c:6146 #6 0x0804bf05 in qemu_run_timers (ptimer_head=0x81307cc, current_time=Unhandled dwarf expression opcode 0x93 ) at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/vl.c:882 #7 0x0805150d in main_loop_wait (timeout=0) at /ad4/usr/ports/emulators/qemu-devel/work/qemu-snapshot-2007-04-05_05/vl.c:6400 #8 0x0805161d in main_loop () ---Type return to continue, or q return to quit--- at
[Qemu-devel] eepro100 issues
Hi again! I also played with the new eepro100 nic and found these things: 1. i82557b seem to work with http://debian.tu-bs.de/project/sidux/release/SIDUX-2007-01-200702210759-CHAOS.ISO (see http://www.sidux.com/Article116.html , it is based on debian sid), but 2. i82551 and i82559er with the same livecd sooner or later will cause qemu to crash like this with no backtrace available: % gdb work/qemu-snapshot-2007-04-05_05/i386-softmmu/qemu qemu.core GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as i386-marcel-freebsd... Core was generated by `qemu'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libm.so.4...done. Loaded symbols for /lib/libm.so.4 Reading symbols from /lib/libz.so.3...done. Loaded symbols for /lib/libz.so.3 Reading symbols from /usr/local/lib/libSDL.so.11...done. Loaded symbols for /usr/local/lib/libSDL.so.11 Reading symbols from /lib/libutil.so.5...done. Loaded symbols for /lib/libutil.so.5 Reading symbols from /usr/lib/libpthread.so.2...done. Loaded symbols for /usr/lib/libpthread.so.2 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/X11R6/lib/libX11.so.6...done. Loaded symbols for /usr/X11R6/lib/libX11.so.6 Reading symbols from /usr/X11R6/lib/libXext.so.6...done. Loaded symbols for /usr/X11R6/lib/libXext.so.6 Reading symbols from /usr/X11R6/lib/libXrandr.so.2...done. Loaded symbols for /usr/X11R6/lib/libXrandr.so.2 Reading symbols from /usr/X11R6/lib/libXrender.so.1...done. Loaded symbols for /usr/X11R6/lib/libXrender.so.1 Reading symbols from /usr/local/lib/libvga.so.1...done. Loaded symbols for /usr/local/lib/libvga.so.1 Reading symbols from /usr/lib/libvgl.so.4...done. Loaded symbols for /usr/lib/libvgl.so.4 Reading symbols from /usr/local/lib/libaa.so.1...done. Loaded symbols for /usr/local/lib/libaa.so.1 Reading symbols from /usr/lib/libusbhid.so.2...done. Loaded symbols for /usr/lib/libusbhid.so.2 Reading symbols from /lib/libncurses.so.6...done. Loaded symbols for /lib/libncurses.so.6 Reading symbols from /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2...done. Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2 Reading symbols from /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2...done. Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 Reading symbols from /usr/X11R6/lib/libXcursor.so.1...done. Loaded symbols for /usr/X11R6/lib/libXcursor.so.1 Reading symbols from /usr/X11R6/lib/libXfixes.so.3...done. Loaded symbols for /usr/X11R6/lib/libXfixes.so.3 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x in ?? () [New LWP 100186] (gdb) q (this first occured when playing with -smb in runlevel 2 which can be mounted like this: # mount.smbfs //10.0.2.4/qemu /mnt and then dd'ing a bigger file to /dev/null, I was trying to test network throughput... but once it even crashed like that just while typing the mount command.) 3. And with http://ftp.us.freesbie.org/pub/FreeSBIE/2.0.1-RELEASE/FreeSBIE-2.0.1-RELEASE.iso (see http://www.freesbie.org/ , based on FreeBSD 6.2) i82557b and i82559er worked, but 4. i82551 attached but would not receive packets. Hope this is helpful to some :) Juergen
[Qemu-devel] qemu/target-alpha cpu.h
CVSROOT:/sources/qemu Module name:qemu Changes by: Jocelyn Mayer j_mayer 07/04/05 21:12:28 Modified files: target-alpha : cpu.h Log message: Fix alpha target compilation on 32 bits hosts. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-alpha/cpu.h?cvsroot=qemur1=1.1r2=1.2
[Qemu-devel] qemu/hw mips_malta.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:12:54 Modified files: hw : mips_malta.c Log message: Clear BEV and ERL for the fake bootloader. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/hw/mips_malta.c?cvsroot=qemur1=1.21r2=1.22
[Qemu-devel] qemu/target-mips cpu.h
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:14:23 Modified files: target-mips: cpu.h Log message: 64bit MIPS FPUs have 32 registers. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/cpu.h?cvsroot=qemur1=1.27r2=1.28
[Qemu-devel] qemu/target-mips op.c translate.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:16:25 Modified files: target-mips: op.c translate.c Log message: Fix RDHWR handling. Code formatting. Don't use *_direct versions to raise exceptions. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/op.c?cvsroot=qemur1=1.30r2=1.31 http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/translate.c?cvsroot=qemur1=1.45r2=1.46
[Qemu-devel] qemu/hw mips_timer.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:17:40 Modified files: hw : mips_timer.c Log message: Fix disabling of the Cause register for R2. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/hw/mips_timer.c?cvsroot=qemur1=1.3r2=1.4
[Qemu-devel] qemu/target-mips helper.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:18:13 Modified files: target-mips: helper.c Log message: Handle EBase properly. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/helper.c?cvsroot=qemur1=1.29r2=1.30
[Qemu-devel] qemu/target-mips op.c op_helper.c translate.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:20:05 Modified files: target-mips: op.c op_helper.c translate.c Log message: Fix rotr immediate ops, mask shift/rotate arguments to their allowed size. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/op.c?cvsroot=qemur1=1.31r2=1.32 http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/op_helper.c?cvsroot=qemur1=1.36r2=1.37 http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/translate.c?cvsroot=qemur1=1.46r2=1.47
[Qemu-devel] qemu/target-mips helper.c translate.c
CVSROOT:/sources/qemu Module name:qemu Changes by: Thiemo Seufer ths 07/04/05 23:21:37 Modified files: target-mips: helper.c translate.c Log message: fix branch delay slot cornercases. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/helper.c?cvsroot=qemur1=1.30r2=1.31 http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/translate.c?cvsroot=qemur1=1.47r2=1.48