Hello community,
here is the log from the commit of package qemu
checked in at Fri Jan 18 00:39:34 CET 2008.
--------
--- qemu/qemu.changes 2007-12-10 14:30:00.000000000 +0100
+++ /mounts/work_src_done/STABLE/qemu/qemu.changes 2008-01-17 16:32:55.000000000 +0100
@@ -1,0 +2,22 @@
+Thu Jan 17 15:19:54 CET 2008 - uli@suse.de
+
+- update -> 0.9.1
+ - TFTP booting from host directory (Anthony Liguori, Erwan Velu)
+ - Tap device emulation for Solaris (Sittichai Palanisong)
+ - Monitor multiplexing to several I/O channels (Jason Wessel)
+ - ds1225y nvram support (Herve Poussineau)
+ - CPU model selection support (J. Mayer, Paul Brook, Herve Poussineau)
+ - Several Sparc fixes (Aurelien Jarno, Blue Swirl, Robert Reif)
+ - MIPS 64-bit FPU support (Thiemo Seufer)
+ - Xscale PDA emulation (Andrzej Zaborowski)
+ - ColdFire system emulation (Paul Brook)
+ - Improved SH4 support (Magnus Damm)
+ - MIPS64 support (Aurelien Jarno, Thiemo Seufer)
+ - Preliminary Alpha guest support (J. Mayer)
+ - Gumstix boards: connex and verdex emulation (Thorsten Zitterell)
+ - Intel mainstone II board emulation (Armin Kuster)
+ - VMware SVGA II graphics card support (Andrzej Zaborowski)
+- revert s390-dis.c to last GPLv2 version
+- reenabled qemu-system-ppcemb
+
+-------------------------------------------------------------------
Old:
----
qemu-0.9.0.cvs.tar.bz2
New:
----
qemu-0.9.1.tar.bz2
qemu-s390dis-license.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qemu.spec ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:53.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:53.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package qemu (Version 0.9.0.cvs)
+# spec file for package qemu (Version 0.9.1)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@@ -16,8 +16,8 @@
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
Group: System/Emulators/PC
Summary: Universal CPU emulator
-Version: 0.9.0.cvs
-Release: 57
+Version: 0.9.1
+Release: 1
Source: %name-%version.tar.bz2
#Patch400: qemu-0.7.0-gcc4-dot-syms.patch
#Patch401: qemu-0.8.0-gcc4-hacks.patch
@@ -57,6 +57,7 @@
Patch71: qemu-s390.patch
Patch82: qemu-cvs-svm2.patch
Patch83: qemu-cvs-ppcspe.patch
+Patch84: qemu-s390dis-license.patch
Source200: kvm_bios.bin
Source201: zx-rom.bin
Source202: COPYING.zx-rom
@@ -118,7 +119,7 @@
Fabrice Bellard
%prep
-%setup -n qemu -q -a601
+%setup -q -a601
#%patch400 -p1
#%patch401 -p1
#%patch402 -p1
@@ -159,6 +160,7 @@
%patch68 -p1
%endif
%patch83
+%patch84
%if 1
cd gcc-3.3.5
%patch600
@@ -266,7 +268,6 @@
--static --disable-gcc-check \
--extra-cflags="$QEMU_OPT_FLAGS"
make %{?jobs:-j%{jobs}}
-mv ppc64abi32-linux-user/qemu-ppc64 ppc64abi32-linux-user/qemu-ppc64abi32
make qemu-img
%install
@@ -312,9 +313,28 @@
%endif
%changelog
-* Mon Dec 10 2007 - uli@suse.de
+* Thu Jan 17 2008 uli@suse.de
+- update -> 0.9.1
+ - TFTP booting from host directory (Anthony Liguori, Erwan Velu)
+ - Tap device emulation for Solaris (Sittichai Palanisong)
+ - Monitor multiplexing to several I/O channels (Jason Wessel)
+ - ds1225y nvram support (Herve Poussineau)
+ - CPU model selection support (J. Mayer, Paul Brook, Herve Poussineau)
+ - Several Sparc fixes (Aurelien Jarno, Blue Swirl, Robert Reif)
+ - MIPS 64-bit FPU support (Thiemo Seufer)
+ - Xscale PDA emulation (Andrzej Zaborowski)
+ - ColdFire system emulation (Paul Brook)
+ - Improved SH4 support (Magnus Damm)
+ - MIPS64 support (Aurelien Jarno, Thiemo Seufer)
+ - Preliminary Alpha guest support (J. Mayer)
+ - Gumstix boards: connex and verdex emulation (Thorsten Zitterell)
+ - Intel mainstone II board emulation (Armin Kuster)
+ - VMware SVGA II graphics card support (Andrzej Zaborowski)
+- revert s390-dis.c to last GPLv2 version
+- reenabled qemu-system-ppcemb
+* Mon Dec 10 2007 uli@suse.de
- fixed open() usage with O_CREAT
-* Tue Nov 13 2007 - uli@suse.de
+* Tue Nov 13 2007 uli@suse.de
- update -> current CVS:
- Read-only support for Parallels disk images (Alex Beregszaszi)
- CRIS emulation (Edgar E. Iglesias)
@@ -323,30 +343,30 @@
- Strace for Linux userland emulation (Stuart Anderson, Thayne Harbaugh)
- OMAP310 MPU emulation plus Palm T|E machine (Andrzej Zaborowski)
- ARM v6, v7, NEON SIMD and SMP emulation (Paul Brook/CodeSourcery)
-* Fri Oct 12 2007 - ro@suse.de
+* Fri Oct 12 2007 ro@suse.de
- hack to fix build: undef DEBUG_BLOCK for now
-* Fri Sep 28 2007 - agraf@suse.de
+* Fri Sep 28 2007 agraf@suse.de
- fix SVM support (Alexander Graf)
-* Thu Sep 13 2007 - agraf@suse.de
+* Thu Sep 13 2007 agraf@suse.de
- add SVM emulation support (Alexander Graf)
- fix a misassumption in the s390 fix (uli)
- allow more IDE power management (Ben Guthro)
- log any I/O error and perform automatic read retry for CDrom (Ben Guthro)
- fix Coherent guest support (Jan Jezabek)
- fix several Darwin guest issues (Filip Navara)
-* Mon Aug 20 2007 - agraf@suse.de
+* Mon Aug 20 2007 agraf@suse.de
- fix ATAPI bug when using libata (Brandon Philips) (#291775)
-* Sat Aug 11 2007 - olh@suse.de
+* Sat Aug 11 2007 olh@suse.de
- disable only SNDRV_SB_CSP_IOCTL_LOAD_CODE for _IOC_SIZEBITS < 14
-* Thu Aug 09 2007 - olh@suse.de
+* Thu Aug 09 2007 olh@suse.de
- disable some alsa SB ioctl declarations
-* Mon Aug 06 2007 - olh@suse.de
+* Mon Aug 06 2007 olh@suse.de
- remove inclusion of linux/compiler.h
-* Mon Jul 30 2007 - uli@suse.de
+* Mon Jul 30 2007 uli@suse.de
- fixed for S/390
-* Tue Jul 10 2007 - schwab@suse.de
+* Tue Jul 10 2007 schwab@suse.de
- Add (incomplete) m68k emulation.
-* Mon Jul 09 2007 - agraf@suse.de
+* Mon Jul 09 2007 agraf@suse.de
- included alsa support in qemu-user
- update to current cvs
- TFTP booting from host directory (Anthony Liguori, Erwan Velu)
@@ -362,14 +382,14 @@
- MIPS64 support (Aurelien Jarno, Thiemo Seufer)
- Preliminary Alpha guest support (J. Mayer)
- IPC fixes
-* Wed Jun 20 2007 - agraf@suse.de
+* Wed Jun 20 2007 agraf@suse.de
- applied proper fix for x86_64 and the MAP_32BIT flag
-* Wed Jun 20 2007 - uli@suse.de
+* Wed Jun 20 2007 uli@suse.de
- added secfixes (bug #252519)
-* Thu Jun 14 2007 - agraf@suse.de
+* Thu Jun 14 2007 agraf@suse.de
- made wine work (set FS register to 0 on init)
- suppressed robust_list warnings
-* Wed Jun 13 2007 - agraf@suse.de
+* Wed Jun 13 2007 agraf@suse.de
- made flash player 9 work on ppc
- fixed FUTEX_WAKE_OP on machines where endianness differs
- made mmap on x86_64 use the MAP_32BIT flag
@@ -377,7 +397,7 @@
- removed an annoying debug message for forking
- implemented sched_getaffinity syscall
- fixed configure call so it takes gcc3 again
-* Wed Jun 13 2007 - uli@suse.de
+* Wed Jun 13 2007 uli@suse.de
- support "vga=" parameter (Pascal Terjan)
- direct jump support for x86-64 (Gwenole Beauchesne)
- fix chaining of CPU instances (Gwenole Beauchesne)
@@ -386,7 +406,7 @@
- KVM support
- Z80/ZX Spectrum emulation (Stuart Brady)
- GCC4 support postponed (breaks x86-64 on i386)
-* Mon Jun 11 2007 - agraf@suse.de
+* Mon Jun 11 2007 agraf@suse.de
- implemented TLS support on i386 so qemu-user can be used to run
with current libc versions (partly done by David Woodhouse,
fixed by Alexander Graf)
@@ -395,11 +415,11 @@
- disable AF_NETLINK in qemu-user (endianness problems)
- applied fast path mangling patch from Kirill A. Shutemov
- applied strace patch for debugging (by Stuart R. Anderson)
-* Wed Apr 04 2007 - agraf@suse.de
+* Wed Apr 04 2007 agraf@suse.de
- fixed initrd loading on x86
-* Thu Mar 29 2007 - ro@suse.de
+* Thu Mar 29 2007 ro@suse.de
- added bison to BuildRequires
-* Tue Feb 20 2007 - uli@suse.de
+* Tue Feb 20 2007 uli@suse.de
- added better fix by Robert Schiele (bug #241950)
- update -> 0.9.0
- Support for relative paths in backing files for disk images
@@ -417,18 +437,18 @@
- Mouse relative offset VNC extension (Anthony Liguori)
- PXE boot support (Anthony Liguori)
- '-daemonize' option (Anthony Liguori)
-* Tue Feb 06 2007 - uli@suse.de
+* Tue Feb 06 2007 uli@suse.de
- added fix by Robert Schiele to work without usbdevfs
(bug #241950)
-* Fri Feb 02 2007 - ro@suse.de
+* Fri Feb 02 2007 ro@suse.de
- remove -fstack-protector from CFLAGS
-* Fri Oct 27 2006 - schwab@suse.de
+* Fri Oct 27 2006 schwab@suse.de
- Fix char signedness.
-* Mon Sep 11 2006 - uli@suse.de
+* Mon Sep 11 2006 uli@suse.de
- re-added ARM FPE patch
- fixed SPARC on PPC
- install missing openbios-sparc32
-* Sat Sep 09 2006 - dmueller@suse.de
+* Sat Sep 09 2006 dmueller@suse.de
- update to 0.8.2:
- ACPI support
- PC VGA BIOS fixes
@@ -443,39 +463,39 @@
- Workaround for win32 SMP hosts
- Support for AMD Flash memories (Jocelyn Mayer)
- Audio capture to WAV files support (malc)
-* Tue May 30 2006 - uli@suse.de
+* Tue May 30 2006 uli@suse.de
- fixed to build on PPC with new glibc
-* Mon May 29 2006 - uli@suse.de
+* Mon May 29 2006 uli@suse.de
- fixed to build with new kernel headers
-* Wed Mar 08 2006 - uli@suse.de
+* Wed Mar 08 2006 uli@suse.de
- split giant patch
- added NWFPE glue code fix
-* Tue Mar 07 2006 - schwab@suse.de
+* Tue Mar 07 2006 schwab@suse.de
- More fixes for ia64 port.
-* Mon Mar 06 2006 - schwab@suse.de
+* Mon Mar 06 2006 schwab@suse.de
- Remove obsolete hunk from ia64 patch.
-* Wed Jan 25 2006 - mls@suse.de
+* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
-* Tue Dec 20 2005 - uli@suse.de
+* Tue Dec 20 2005 uli@suse.de
- update -> 0.8.0
-* Thu Dec 08 2005 - uli@suse.de
+* Thu Dec 08 2005 uli@suse.de
- update to current CVS (MIPS userspace, ARM system, SMP, USB,
NX, VLAN, serial, parallel, ES1370, ALSA backend)
- build i386 and AMD64 emus with kqemu support if possible
- install missing PPC video driver, SPARC boot ROM
- install missing keymaps
-* Mon Nov 07 2005 - uli@suse.de
+* Mon Nov 07 2005 uli@suse.de
- updated linker scripts for new binutils release
-* Sat Sep 17 2005 - dmueller@suse.de
+* Sat Sep 17 2005 dmueller@suse.de
- update to 0.7.2
-* Mon Aug 15 2005 - schwab@suse.de
+* Mon Aug 15 2005 schwab@suse.de
- Don't package /emul/ia32-linux on ia64.
-* Mon Aug 15 2005 - schwab@suse.de
+* Mon Aug 15 2005 schwab@suse.de
- Fix compilation on ia64.
-* Mon Aug 01 2005 - uli@suse.de
+* Mon Aug 01 2005 uli@suse.de
- update -> 0.7.1
- enabled x86_64-system
-* Mon Jul 11 2005 - uli@suse.de
+* Mon Jul 11 2005 uli@suse.de
- update -> CVS (MIPS emulation)
- build with throwaway GCC3 (still no GCC4-compatible QEMU in
sight)
@@ -486,36 +506,36 @@
- disabled qemu-fast (broken and deprecated)
- disabled i386-user on x86_64 (useless)
- build with %%jobs
-* Wed Jun 01 2005 - ro@suse.de
+* Wed Jun 01 2005 ro@suse.de
- update to 0.7.0, still no success with gcc-4
-* Thu Jan 27 2005 - uli@suse.de
+* Thu Jan 27 2005 uli@suse.de
- baselibs-x86 link is unnecessary on x86/AMD64
- two ARM emulation fixes (RRX operand fix by Paul Brook, shifter
carry fix by me)
- SDL 1.2.8 can be linked statically -> enabled qemu-fast
-* Mon Nov 29 2004 - uli@suse.de
+* Mon Nov 29 2004 uli@suse.de
- update -> 0.6.1
- build softmmu binaries on s390 (still doesn't work though)
- pack /emul/ia32-linux directory and symlink from /usr/share/qemu
so it's possible to use the IA64 baselibs-x86 packages
-* Wed Sep 15 2004 - uli@suse.de
+* Wed Sep 15 2004 uli@suse.de
- removed unnecessary dependency on private glibc symbol
(bug #44864)
-* Fri Aug 06 2004 - uli@suse.de
+* Fri Aug 06 2004 uli@suse.de
- update -> 0.6.0 (fixes for several OSs, improvements in emulated
hardware (IDE, PCI, network, VGA, APM, PowerMac), minor fixes,
tool for conversion of VMware images)
-* Tue May 11 2004 - uli@suse.de
+* Tue May 11 2004 uli@suse.de
- update -> 0.5.5 (contains ARM, utime() fixes and several others)
- make uname() return target machine name (fixes config.guess,
rpm etc.)
- fake sigaltstack() (fixes m4)
- enabled x86-64
-* Wed May 05 2004 - uli@suse.de
+* Wed May 05 2004 uli@suse.de
- fixed ARM emulation bug
-* Wed Apr 28 2004 - uli@suse.de
+* Wed Apr 28 2004 uli@suse.de
- build with -fno-unit-at-a-time (fixes PPC system emulator)
-* Wed Apr 28 2004 - uli@suse.de
+* Wed Apr 28 2004 uli@suse.de
- update -> 0.5.4 (runs Linux/PPC, several fixes)
-* Mon Apr 19 2004 - uli@suse.de
+* Mon Apr 19 2004 uli@suse.de
- initial package
++++++ qemu-0.7.1-armfpaex.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:54.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:54.000000000 +0100
@@ -1,6 +1,6 @@
--- linux-user/main.c
+++ linux-user/main.c
-@@ -339,18 +339,54 @@
+@@ -377,19 +377,55 @@
{
TaskState *ts = env->opaque;
uint32_t opcode;
@@ -8,7 +8,8 @@
/* we handle the FPU emulation here, as Linux */
/* we get the opcode */
- opcode = tget32(env->regs[15]);
+ /* FIXME - what to do if get_user() fails? */
+ get_user_u32(opcode, env->regs[15]);
- if (EmulateAll(opcode, &ts->fpa, env) == 0) {
+ if ((rc=EmulateAll(opcode, &ts->fpa, env)) == 0) {
++++++ qemu-0.9.0.cvs.tar.bz2 -> qemu-0.9.1.tar.bz2 ++++++
++++ 56228 lines of diff (skipped)
++++++ qemu-cvs-futex.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -19,7 +19,7 @@
#include
#include
#include
-@@ -2715,6 +2718,91 @@
+@@ -2715,6 +2718,92 @@
unlock_user_struct(target_ts, target_addr, 1);
}
@@ -79,7 +79,7 @@
+ break;
+ default:
+ gemu_log("qemu: Unsupported futex op %d\n", op);
-+ return -ENOSYS;
++ return -TARGET_ENOSYS;
+ }
+ if (op == FUTEX_WAKE_OP) {
+ /* Need to munge the secondary operation (val3) */
@@ -90,11 +90,12 @@
+ int oparg = (val3 >> 12) & 0xfff;
+ int cmparg = val3 & 0xfff;
+ int shift = val3 & (FUTEX_OP_OPARG_SHIFT << 28);
-+ int oldval = tget32(uaddr2);
++ int oldval; if(get_user_u32(oldval, uaddr2))
++ return -TARGET_EFAULT;
+ if (shift)
+ oparg = 1 << oparg;
+
-+ tput32(uaddr2,futex_op(oldval, op2, oparg));
++ put_user_u32(uaddr2,futex_op(oldval, op2, oparg));
+ retval = syscall(__NR_futex, g2h(uaddr), FUTEX_WAKE, val, 0, 0, 0);
+ if(futex_cmp(oldval, cmp, cmparg)) {
+ retval = syscall(__NR_futex, g2h(uaddr2), FUTEX_WAKE, val2, 0, 0, 0);
@@ -111,7 +112,7 @@
/* do_syscall() should always have a single exit point at the end so
that actions, such as logging of syscall results, can be performed.
All errnos that do_syscall() returns must be -TARGET_<errcode>. */
-@@ -5116,6 +5204,11 @@
+@@ -5116,6 +5205,11 @@
}
#endif
++++++ qemu-cvs-gettimeofday.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -2,11 +2,12 @@
================================================================================
--- qemu/linux-user/syscall.c
+++ qemu/linux-user/syscall.c
-@@ -3895,6 +3895,7 @@
+@@ -3895,6 +3895,8 @@
case TARGET_NR_gettimeofday:
{
struct timeval tv;
-+ target_to_host_timeval(&tv, arg1);
++ if(copy_from_user_timeval(&tv, arg1))
++ goto efault;
ret = get_errno(gettimeofday(&tv, NULL));
if (!is_error(ret)) {
host_to_target_timeval(arg1, &tv);
++++++ qemu-cvs-mmap-amd64.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -1,7 +1,7 @@
Index: qemu/linux-user/mmap.c
================================================================================
---- qemu/linux-user/mmap.c
-+++ qemu/linux-user/mmap.c
+--- qemu-0.9.1/linux-user/mmap.c
++++ qemu-0.9.1/linux-user/mmap.c
@@ -27,6 +27,10 @@
#include "qemu.h"
@@ -22,25 +22,7 @@
if (p == MAP_FAILED)
return -1;
prot1 = prot;
-@@ -251,7 +255,7 @@
- host_len = HOST_PAGE_ALIGN(host_len + qemu_host_page_size
- - qemu_real_host_page_size);
- p = mmap(real_start ? g2h(real_start) : NULL,
-- host_len, prot, flags, fd, host_offset);
-+ host_len, prot, flags | MAP_32BIT, fd, host_offset);
- if (p == MAP_FAILED)
- return -1;
-
-@@ -277,7 +281,7 @@
- } else {
- /* if not fixed, no need to do anything */
- void *p = mmap(real_start ? g2h(real_start) : NULL,
-- host_len, prot, flags, fd, host_offset);
-+ host_len, prot, flags | MAP_32BIT, fd, host_offset);
- if (p == MAP_FAILED)
- return -1;
- /* update start so that it points to the file position at 'offset' */
-@@ -434,7 +438,7 @@
+@@ -422,7 +426,7 @@
unsigned long host_addr;
/* XXX: use 5 args syscall */
++++++ qemu-cvs-noppcemb.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -1,13 +1,13 @@
Index: qemu-0.9.0/configure
================================================================================
---- qemu/configure
-+++ qemu/configure
-@@ -506,7 +506,7 @@
+--- qemu-0.9.1/configure
++++ qemu-0.9.1/configure
+@@ -526,7 +526,7 @@
if test -z "$target_list" ; then
# these targets are portable
if [ "$softmmu" = "yes" ] ; then
-- target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu z80-softmmu"
-+ target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu z80-softmmu"
+- target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu"
++ target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu z80-softmmu"
fi
# the following are Linux specific
if [ "$linux_user" = "yes" ] ; then
++++++ qemu-cvs-tls.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -1,18 +1,7 @@
Index: qemu.bkp/linux-user/main.c
================================================================================
---- qemu/linux-user/main.c
-+++ qemu/linux-user/main.c
-@@ -156,7 +156,7 @@
- p[1] = tswapl(e2);
- }
-
--uint64_t gdt_table[6];
-+uint64_t gdt_table[9];
- uint64_t idt_table[256];
-
- /* only dpl matters as we do only user space emulation */
---- qemu/linux-user/syscall.c
-+++ qemu/linux-user/syscall.c
+--- qemu-0.9.1/linux-user/syscall.c
++++ qemu-0.9.1/linux-user/syscall.c
@@ -159,6 +159,7 @@
#define __NR_sys_tkill __NR_tkill
#define __NR_sys_unlinkat __NR_unlinkat
@@ -31,88 +20,7 @@
#ifdef __NR_exit_group
_syscall1(int,exit_group,int,error_code)
#endif
-@@ -2249,6 +2253,80 @@
- return ret;
- }
-
-+int do_set_thread_area(CPUX86State *env, abi_ulong ptr)
-+{
-+ uint64_t *gdt_table = g2h(env->gdt.base);
-+ struct target_modify_ldt_ldt_s ldt_info;
-+ struct target_modify_ldt_ldt_s *target_ldt_info;
-+ int seg_32bit, contents, read_exec_only, limit_in_pages;
-+ int seg_not_present, useable;
-+ uint32_t *lp, entry_1, entry_2;
-+ int i;
-+
-+ lock_user_struct(VERIFY_WRITE, target_ldt_info, ptr, 1);
-+ ldt_info.entry_number = tswap32(target_ldt_info->entry_number);
-+ ldt_info.base_addr = tswapl(target_ldt_info->base_addr);
-+ ldt_info.limit = tswap32(target_ldt_info->limit);
-+ ldt_info.flags = tswap32(target_ldt_info->flags);
-+ if (ldt_info.entry_number == -1) {
-+ for (i=6; i<8; i++)
-+ if (gdt_table[i] == 0) {
-+ ldt_info.entry_number = i;
-+ target_ldt_info->entry_number = tswap32(i);
-+ break;
-+ }
-+ }
-+ unlock_user_struct(target_ldt_info, ptr, 0);
-+
-+ if (ldt_info.entry_number < 6 || ldt_info.entry_number > 8)
-+ return -EINVAL;
-+ seg_32bit = ldt_info.flags & 1;
-+ contents = (ldt_info.flags >> 1) & 3;
-+ read_exec_only = (ldt_info.flags >> 3) & 1;
-+ limit_in_pages = (ldt_info.flags >> 4) & 1;
-+ seg_not_present = (ldt_info.flags >> 5) & 1;
-+ useable = (ldt_info.flags >> 6) & 1;
-+
-+ if (contents == 3) {
-+ if (seg_not_present == 0)
-+ return -EINVAL;
-+ }
-+
-+ /* NOTE: same code as Linux kernel */
-+ /* Allow LDTs to be cleared by the user. */
-+ if (ldt_info.base_addr == 0 && ldt_info.limit == 0) {
-+ if ((contents == 0 &&
-+ read_exec_only == 1 &&
-+ seg_32bit == 0 &&
-+ limit_in_pages == 0 &&
-+ seg_not_present == 1 &&
-+ useable == 0 )) {
-+ entry_1 = 0;
-+ entry_2 = 0;
-+ goto install;
-+ }
-+ }
-+
-+ entry_1 = ((ldt_info.base_addr & 0x0000ffff) << 16) |
-+ (ldt_info.limit & 0x0ffff);
-+ entry_2 = (ldt_info.base_addr & 0xff000000) |
-+ ((ldt_info.base_addr & 0x00ff0000) >> 16) |
-+ (ldt_info.limit & 0xf0000) |
-+ ((read_exec_only ^ 1) << 9) |
-+ (contents << 10) |
-+ ((seg_not_present ^ 1) << 15) |
-+ (seg_32bit << 22) |
-+ (limit_in_pages << 23) |
-+ (useable << 20) |
-+ 0x7000;
-+
-+ /* Install the new entry ... */
-+install:
-+ lp = (uint32_t *)(gdt_table + ldt_info.entry_number);
-+ lp[0] = tswap32(entry_1);
-+ lp[1] = tswap32(entry_2);
-+ return 0;
-+}
- #endif /* defined(TARGET_I386) */
-
- /* this stack is the equivalent of the kernel stack associated with a
-@@ -2265,15 +2343,20 @@
+@@ -2705,15 +2783,20 @@
/* do_fork() Must return host values and target errnos (unlike most
do_*() functions). */
@@ -134,7 +42,7 @@
memset(ts, 0, sizeof(TaskState));
new_stack = ts->stack;
ts->used = 1;
-@@ -2285,6 +2368,27 @@
+@@ -2725,6 +2808,27 @@
#if defined(TARGET_I386)
if (!newsp)
newsp = env->regs[R_ESP];
@@ -162,7 +70,7 @@
new_env->regs[R_ESP] = newsp;
new_env->regs[R_EAX] = 0;
#elif defined(TARGET_ARM)
-@@ -2342,15 +2446,27 @@
+@@ -2782,15 +2886,27 @@
#endif
new_env->opaque = ts;
#ifdef __ia64__
@@ -182,20 +90,20 @@
+ /* Store child thread ID at location parent_tidptr in parent and child memory.
+ Currently this is only done in client memory */
+ if(flags & CLONE_PARENT_SETTID) {
-+ tput32(parent_tidptr, parent_tid);
++ put_user_u32(parent_tidptr, parent_tid);
+ }
+
+ /* Store child thread ID at location child_tidptr in child memory. */
+ if(flags & CLONE_CHILD_SETTID) {
+ if(ret==0) { /* only in client memory for fork() */
-+ tput32(child_tidptr, gettid());
++ put_user_u32(child_tidptr, gettid());
+ } else if(flags & CLONE_VM) { /* real threads need it too */
-+ tput32(child_tidptr, ret);
++ put_user_u32(child_tidptr, ret);
+ }
}
return ret;
}
-@@ -2623,7 +2739,7 @@
+@@ -3073,7 +3189,7 @@
_mcleanup();
#endif
gdb_exit(cpu_env, arg1);
@@ -204,7 +112,7 @@
_exit(arg1);
ret = 0; /* avoid warning */
break;
-@@ -2671,7 +2787,7 @@
+@@ -3115,7 +3231,7 @@
ret = do_brk(arg1);
break;
case TARGET_NR_fork:
@@ -213,7 +121,7 @@
break;
#ifdef TARGET_NR_waitpid
case TARGET_NR_waitpid:
-@@ -4020,7 +4136,7 @@
+@@ -4477,7 +4593,7 @@
ret = get_errno(fsync(arg1));
break;
case TARGET_NR_clone:
@@ -222,7 +130,7 @@
break;
#ifdef __NR_exit_group
/* new thread calls */
-@@ -4419,7 +4535,7 @@
+@@ -4897,7 +5013,7 @@
#endif
#ifdef TARGET_NR_vfork
case TARGET_NR_vfork:
@@ -231,25 +139,3 @@
break;
#endif
#ifdef TARGET_NR_ugetrlimit
-@@ -4957,13 +5073,17 @@
- #ifdef TARGET_NR_set_thread_area
- case TARGET_NR_set_thread_area:
- #ifdef TARGET_MIPS
-- ((CPUMIPSState *) cpu_env)->tls_value = arg1;
-- ret = 0;
-- break;
-+ ((CPUMIPSState *) cpu_env)->tls_value = arg1;
-+ ret = 0;
-+#else
-+#ifdef TARGET_I386
-+ ret = get_errno(do_set_thread_area(cpu_env, arg1));
- #else
-- goto unimplemented_nowarn;
-+ goto unimplemented_nowarn;
- #endif
- #endif
-+ break;
-+#endif
- #ifdef TARGET_NR_get_thread_area
- case TARGET_NR_get_thread_area:
- goto unimplemented_nowarn;
++++++ qemu-s390dis-license.patch ++++++
--- ./s390-dis.c 2007-08-01 15:11:55.000000000 +0200
+++ ./s390-dis.c 2005-08-22 21:27:46.000000000 +0200
@@ -1,23 +1,23 @@
/* s390-dis.c -- Disassemble S390 instructions
- Copyright 2000, 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- This file is part of the GNU opcodes library.
+ This file is part of GDB, GAS and the GNU binutils.
- This library is free software; you can redistribute it and/or modify
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
- It is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this file; see the file COPYING. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#include
#include "ansidecl.h"
@@ -399,23 +399,23 @@
/* s390-opc.c -- S390 opcode list
- Copyright 2000, 2001, 2003, 2007 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- This file is part of the GNU opcodes library.
+ This file is part of GDB, GAS, and the GNU binutils.
- This library is free software; you can redistribute it and/or modify
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
- It is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this file; see the file COPYING. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#include
#include "ansidecl.h"
++++++ qemu-s390.patch ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -1,6 +1,6 @@
---- qemu/Makefile.target
-+++ qemu/Makefile.target
-@@ -396,6 +396,9 @@
+--- qemu-0.9.1/Makefile.target
++++ qemu-0.9.1/Makefile.target
+@@ -390,6 +390,9 @@
ifeq ($(findstring z80, $(TARGET_ARCH) $(ARCH)),z80)
LIBOBJS+=z80-dis.o
endif
@@ -10,9 +10,9 @@
ifdef CONFIG_GDBSTUB
OBJS+=gdbstub.o
---- qemu/dis-asm.h
-+++ qemu/dis-asm.h
-@@ -388,6 +388,7 @@
+--- qemu-0.9.1/dis-asm.h
++++ qemu-0.9.1/dis-asm.h
+@@ -396,6 +396,7 @@
extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_crisv32 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_z80 PARAMS ((bfd_vma, disassemble_info*));
@@ -20,21 +20,8 @@
#if 0
/* Fetch the disassembler for a given BFD, if that support is available. */
---- qemu/dyngen.c
-+++ qemu/dyngen.c
-@@ -1495,8 +1495,8 @@
- p = (void *)(p_end - 2);
- if (p == p_start)
- error("empty code for %s", name);
-- if (get16((uint16_t *)p) != 0x07fe && get16((uint16_t *)p) != 0x07f4)
-- error("br %%r14 expected at the end of %s", name);
-+ if ((get16((uint16_t *)p) & 0xfff0) != 0x07f0)
-+ error("br %%rX expected at the end of %s", name);
- copy_size = p - p_start;
- }
- #elif defined(HOST_ALPHA)
---- qemu/target-i386/translate.c
-+++ qemu/target-i386/translate.c
+--- qemu-0.9.1/target-i386/translate.c
++++ qemu-0.9.1/target-i386/translate.c
@@ -1795,7 +1795,11 @@
case CC_OP_SUBW:
case CC_OP_SUBL:
++++++ qemu-z80.diff ++++++
--- /var/tmp/diff_new_pack.K21843/_old 2008-01-18 00:36:58.000000000 +0100
+++ /var/tmp/diff_new_pack.K21843/_new 2008-01-18 00:36:58.000000000 +0100
@@ -1,6 +1,6 @@
---- qemu/Makefile
-+++ qemu/Makefile
-@@ -73,7 +73,7 @@
+--- qemu-0.9.1/Makefile
++++ qemu-0.9.1/Makefile
+@@ -179,7 +179,7 @@
mkdir -p "$(DESTDIR)$(datadir)"
for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
video.x openbios-sparc32 pxe-ne2k_pci.bin \
@@ -9,9 +9,9 @@
$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
done
ifndef CONFIG_WIN32
---- qemu/Makefile.target
-+++ qemu/Makefile.target
-@@ -348,6 +348,13 @@
+--- qemu-0.9.1/Makefile.target
++++ qemu-0.9.1/Makefile.target
+@@ -342,6 +342,13 @@
endif
endif
@@ -25,7 +25,7 @@
# NOTE: the disassembler code is only needed for debugging
LIBOBJS+=disas.o
ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386)
-@@ -383,6 +390,9 @@
+@@ -377,6 +384,9 @@
ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390)
LIBOBJS+=s390-dis.o
endif
@@ -35,9 +35,9 @@
ifdef CONFIG_GDBSTUB
OBJS+=gdbstub.o
-@@ -531,6 +541,10 @@
+@@ -512,6 +522,10 @@
VL_OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
- VL_OBJS+= m68k-semi.o
+ VL_OBJS+= m68k-semi.o dummy_m68k.o
endif
+ifeq ($(TARGET_BASE_ARCH), z80)
+VL_OBJS+= zx_spectrum.o zx_ula.o dma.o $(AUDIODRV)
@@ -46,7 +46,7 @@
ifdef CONFIG_GDBSTUB
VL_OBJS+=gdbstub.o
endif
-@@ -641,9 +655,15 @@
+@@ -608,9 +622,15 @@
helper.o: helper.c
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
else
@@ -62,7 +62,7 @@
cpu-exec.o: cpu-exec.c
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
-@@ -667,6 +687,9 @@
+@@ -634,6 +654,9 @@
ifneq ($(PROGS),)
$(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)"
endif
@@ -72,8 +72,8 @@
ifneq ($(wildcard .depend),)
include .depend
---- qemu/configure
-+++ qemu/configure
+--- qemu-0.9.1/configure
++++ qemu-0.9.1/configure
@@ -89,6 +89,7 @@
dsound="no"
coreaudio="no"
@@ -82,7 +82,7 @@
fmod="no"
fmod_lib=""
fmod_inc=""
-@@ -264,6 +265,8 @@
+@@ -270,6 +271,8 @@
;;
--disable-vnc-tls) vnc_tls="no"
;;
@@ -91,7 +91,7 @@
--enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
;;
--disable-slirp) slirp="no"
-@@ -387,6 +390,7 @@
+@@ -407,6 +410,7 @@
echo " --enable-fmod enable FMOD audio driver"
echo " --enable-dsound enable DirectSound audio driver"
echo " --disable-vnc-tls disable TLS encryption for VNC server"
@@ -99,16 +99,7 @@
echo " --enable-system enable all system emulation targets"
echo " --disable-system disable all system emulation targets"
echo " --enable-linux-user enable all linux usermode emulation targets"
-@@ -502,7 +506,7 @@
- if test -z "$target_list" ; then
- # these targets are portable
- if [ "$softmmu" = "yes" ] ; then
-- target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu"
-+ target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu z80-softmmu"
- fi
- # the following are Linux specific
- if [ "$linux_user" = "yes" ] ; then
-@@ -718,6 +722,7 @@
+@@ -739,6 +743,7 @@
if test -n "$sparc_cpu"; then
echo "Target Sparc Arch $sparc_cpu"
fi
@@ -116,7 +107,7 @@
echo "kqemu support $kqemu"
echo "Documentation $build_docs"
[ ! -z "$uname_release" ] && \
-@@ -896,6 +901,10 @@
+@@ -917,6 +922,10 @@
echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
echo "#define CONFIG_VNC_TLS 1" >> $config_h
fi
@@ -127,7 +118,7 @@
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
-@@ -1109,6 +1118,11 @@
+@@ -1146,6 +1155,11 @@
echo "TARGET_ARCH=alpha" >> $config_mak
echo "#define TARGET_ARCH \"alpha\"" >> $config_h
echo "#define TARGET_ALPHA 1" >> $config_h
@@ -139,9 +130,9 @@
else
echo "Unsupported target CPU"
exit 1
---- qemu/cpu-exec.c
-+++ qemu/cpu-exec.c
-@@ -214,6 +214,10 @@
+--- qemu-0.9.1/cpu-exec.c
++++ qemu-0.9.1/cpu-exec.c
+@@ -261,6 +261,10 @@
flags = 0;
cs_base = 0;
pc = env->pc;
@@ -152,7 +143,7 @@
#else
#error unsupported CPU
#endif
-@@ -290,6 +294,15 @@
+@@ -331,6 +335,15 @@
#elif defined(TARGET_SH4)
#elif defined(TARGET_CRIS)
/* XXXXX */
@@ -168,9 +159,9 @@
#else
#error unsupported target CPU
#endif
-@@ -541,6 +554,13 @@
- env->exception_index = env->pending_vector;
+@@ -573,6 +586,13 @@
do_interrupt(1);
+ BREAK_CHAIN;
}
+#elif defined(TARGET_Z80)
+ if (interrupt_request & CPU_INTERRUPT_HARD) {
@@ -182,7 +173,7 @@
#endif
/* Don't use the cached interupt_request value,
do_interrupt may have updated the EXITTB flag. */
-@@ -590,6 +610,8 @@
+@@ -618,6 +638,8 @@
cpu_dump_state(env, logfile, fprintf, 0);
#elif defined(TARGET_CRIS)
cpu_dump_state(env, logfile, fprintf, 0);
@@ -191,7 +182,7 @@
#else
#error unsupported target CPU
#endif
-@@ -785,6 +807,9 @@
+@@ -722,6 +744,9 @@
#elif defined(TARGET_ALPHA)
#elif defined(TARGET_CRIS)
/* XXXXX */
@@ -201,9 +192,9 @@
#else
#error unsupported target CPU
#endif
---- qemu/dis-asm.h
-+++ qemu/dis-asm.h
-@@ -387,6 +387,7 @@
+--- qemu-0.9.1/dis-asm.h
++++ qemu-0.9.1/dis-asm.h
+@@ -395,6 +395,7 @@
extern int print_insn_alpha PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_crisv32 PARAMS ((bfd_vma, disassemble_info*));
@@ -211,8 +202,8 @@
#if 0
/* Fetch the disassembler for a given BFD, if that support is available. */
---- qemu/disas.c
-+++ qemu/disas.c
+--- qemu-0.9.1/disas.c
++++ qemu-0.9.1/disas.c
@@ -208,6 +208,8 @@
#elif defined(TARGET_CRIS)
disasm_info.mach = bfd_mach_cris_v32;
@@ -222,9 +213,9 @@
#else
fprintf(out, "0x" TARGET_FMT_lx
": Asm output not supported on this arch\n", code);
---- qemu/exec-all.h
-+++ qemu/exec-all.h
-@@ -82,7 +82,7 @@
+--- qemu-0.9.1/exec-all.h
++++ qemu-0.9.1/exec-all.h
+@@ -52,7 +52,7 @@
typedef void (GenOpFunc2)(long, long);
typedef void (GenOpFunc3)(long, long, long);
@@ -233,9 +224,9 @@
void optimize_flags_init(void);
---- qemu/exec.c
-+++ qemu/exec.c
-@@ -709,6 +709,9 @@
+--- qemu-0.9.1/exec.c
++++ qemu-0.9.1/exec.c
+@@ -731,6 +731,9 @@
current_flags |= (env->eflags & (IOPL_MASK | TF_MASK | VM_MASK));
current_cs_base = (target_ulong)env->segs[R_CS].base;
current_pc = current_cs_base + env->eip;
@@ -245,9 +236,9 @@
#else
#error unsupported CPU
#endif
---- qemu/gdbstub.c
-+++ qemu/gdbstub.c
-@@ -853,6 +853,34 @@
+--- qemu-0.9.1/gdbstub.c
++++ qemu-0.9.1/gdbstub.c
+@@ -856,6 +856,34 @@
for (i = 0; i < 16; i++) LOAD(env->regs[i]);
LOAD (env->pc);
}
@@ -282,9 +273,21 @@
#else
static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)
{
---- qemu/hw/zx_spectrum.c
-+++ qemu/hw/zx_spectrum.c
-@@ -0,0 +1,303 @@
+--- qemu-0.9.1/hw/boards.h
++++ qemu-0.9.1/hw/boards.h
+@@ -26,6 +26,9 @@
+ extern QEMUMachine pc_machine;
+ extern QEMUMachine isapc_machine;
+
++/* z80.c */
++extern QEMUMachine z80pc_machine;
++
+ /* ppc.c */
+ extern QEMUMachine prep_machine;
+ extern QEMUMachine core99_machine;
+--- qemu-0.9.1/hw/zx_spectrum.c
++++ qemu-0.9.1/hw/zx_spectrum.c
+@@ -0,0 +1,308 @@
+/*
+ * QEMU ZX Spectrum Emulator
+ *
@@ -309,7 +312,12 @@
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
-+#include "vl.h"
++#include "hw.h"
++#include "console.h"
++#include "sysemu.h"
++#include "qemu-timer.h"
++#include "zx_ula.h"
++#include "boards.h"
+#ifdef CONFIG_LIBSPECTRUM
+#include
+#endif
@@ -467,7 +475,7 @@
+ CPUState *env;
+
+ /* init CPUs */
-+ env = cpu_init();
++ env = cpu_init("z80");
+ zx_env = env; // XXX
+ register_savevm("cpu", 0, 4, cpu_save, cpu_load, env);
+ qemu_register_reset(main_cpu_reset, env);
@@ -588,9 +596,9 @@
+ "Z80 Machine",
+ zx_spectrum_init,
+};
---- qemu/hw/zx_ula.c
-+++ qemu/hw/zx_ula.c
-@@ -0,0 +1,355 @@
+--- qemu-0.9.1/hw/zx_ula.c
++++ qemu-0.9.1/hw/zx_ula.c
+@@ -0,0 +1,357 @@
+/*
+ * QEMU ZX Spectrum Video Emulation.
+ *
@@ -616,7 +624,9 @@
+ * THE SOFTWARE.
+ */
+
-+#include "vl.h"
++#include "hw.h"
++#include "console.h"
++#include "zx_ula.h"
+
+typedef struct {
+ DisplayState *ds;
@@ -946,8 +956,15 @@
+ /* ZX Spectrum ULA */
+ register_ioport_write(0, 0x10000, 1, io_spectrum_write, s);
+}
---- qemu/target-z80/cpu.h
-+++ qemu/target-z80/cpu.h
+--- qemu-0.9.1/hw/zx_ula.h
++++ qemu-0.9.1/hw/zx_ula.h
+@@ -0,0 +1,4 @@
++/* zx_ula.c */
++void zx_ula_init(DisplayState *ds, uint8_t *zx_screen_base,
++ unsigned long zx_ram_offset);
++void zx_set_flash_dirty(void);
+--- qemu-0.9.1/target-z80/cpu.h
++++ qemu-0.9.1/target-z80/cpu.h
@@ -0,0 +1,252 @@
+/*
+ * Z80 virtual CPU header
@@ -1152,7 +1169,7 @@
+ struct APICState *apic_state;
+} CPUZ80State;
+
-+CPUZ80State *cpu_z80_init(void);
++CPUZ80State *cpu_z80_init(const char* cpu_model);
+int cpu_z80_exec(CPUZ80State *s);
+void cpu_z80_close(CPUZ80State *s);
+int cpu_get_pic_interrupt(CPUZ80State *s);
@@ -1201,8 +1218,8 @@
+#include "cpu-all.h"
+
+#endif /* CPU_Z80_H */
---- qemu/target-z80/exec.h
-+++ qemu/target-z80/exec.h
+--- qemu-0.9.1/target-z80/exec.h
++++ qemu-0.9.1/target-z80/exec.h
@@ -0,0 +1,372 @@
+/*
+ * Z80 execution defines
@@ -1576,8 +1593,8 @@
+ }
+ return EXCP_HALTED;
+}
---- qemu/target-z80/helper.c
-+++ qemu/target-z80/helper.c
+--- qemu-0.9.1/target-z80/helper.c
++++ qemu-0.9.1/target-z80/helper.c
@@ -0,0 +1,281 @@
+/*
+ * Z80 helpers
@@ -1860,8 +1877,8 @@
+ fl & 0x01 ? 'C' : '-',
+ env->imode, env->iff1, env->iff2, env->regs[R_I], env->regs[R_R]);
+}
---- qemu/target-z80/helper2.c
-+++ qemu/target-z80/helper2.c
+--- qemu-0.9.1/target-z80/helper2.c
++++ qemu-0.9.1/target-z80/helper2.c
@@ -0,0 +1,170 @@
+/*
+ * Z80 helpers (without register variable usage)
@@ -1896,7 +1913,7 @@
+
+//#define DEBUG_MMU
+
-+CPUZ80State *cpu_z80_init(void)
++CPUZ80State *cpu_z80_init(const char* cpu_model)
+{
+ CPUZ80State *env;
+ static int inited;
@@ -2033,8 +2050,8 @@
+ paddr = (pte & TARGET_PAGE_MASK) + page_offset;
+ return paddr;
+}
---- qemu/target-z80/op.c
-+++ qemu/target-z80/op.c
+--- qemu-0.9.1/target-z80/op.c
++++ qemu-0.9.1/target-z80/op.c
@@ -0,0 +1,1175 @@
+/*
+ * Z80 micro operations
@@ -3211,8 +3228,8 @@
+{
+ cpu_unlock();
+}
---- qemu/target-z80/opreg_template.h
-+++ qemu/target-z80/opreg_template.h
+--- qemu-0.9.1/target-z80/opreg_template.h
++++ qemu-0.9.1/target-z80/opreg_template.h
@@ -0,0 +1,74 @@
+/*
+ * Z80 micro operations (templates for various register related
@@ -3288,8 +3305,8 @@
+{
+ REG = (uint16_t)T1;
+}
---- qemu/target-z80/opreg_template2.h
-+++ qemu/target-z80/opreg_template2.h
+--- qemu-0.9.1/target-z80/opreg_template2.h
++++ qemu-0.9.1/target-z80/opreg_template2.h
@@ -0,0 +1,63 @@
+/*
+ * Z80 micro operations (templates for various register related
@@ -3354,8 +3371,8 @@
+ REGHIGH = (uint16_t)(T1 >> 8);
+ REGLOW = (uint16_t)T1;
+}
---- qemu/target-z80/ops_mem.h
-+++ qemu/target-z80/ops_mem.h
+--- qemu-0.9.1/target-z80/ops_mem.h
++++ qemu-0.9.1/target-z80/ops_mem.h
@@ -0,0 +1,59 @@
+void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T0_A0)(void)
+{
@@ -3416,8 +3433,8 @@
+}
+
+#undef MEMSUFFIX
---- qemu/target-z80/translate.c
-+++ qemu/target-z80/translate.c
+--- qemu-0.9.1/target-z80/translate.c
++++ qemu-0.9.1/target-z80/translate.c
@@ -0,0 +1,1600 @@
+/*
+ * Z80 translation
@@ -5019,9 +5036,9 @@
+ return gen_intermediate_code_internal(env, tb, 1);
+}
+
---- qemu/vl.c
-+++ qemu/vl.c
-@@ -6253,6 +6253,19 @@
+--- qemu-0.9.1/vl.c
++++ qemu-0.9.1/vl.c
+@@ -6750,6 +6750,19 @@
return 0;
}
@@ -5040,9 +5057,9 @@
+
#else
- #warning No CPU save/restore functions
-@@ -7420,6 +7433,8 @@
- qemu_register_machine(&an5206_machine);
+ //#warning No CPU save/restore functions
+@@ -7924,6 +7937,8 @@
+ qemu_register_machine(&dummy_m68k_machine);
#elif defined(TARGET_CRIS)
qemu_register_machine(&bareetraxfs_machine);
+#elif defined(TARGET_Z80)
@@ -5050,32 +5067,8 @@
#else
#error unsupported CPU
#endif
---- qemu/vl.h
-+++ qemu/vl.h
-@@ -967,6 +967,11 @@
- void pci_vmsvga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
- unsigned long vga_ram_offset, int vga_ram_size);
-
-+/* zx_ula.c */
-+void zx_ula_init(DisplayState *ds, uint8_t *zx_screen_base,
-+ unsigned long zx_ram_offset);
-+void zx_set_flash_dirty(void);
-+
- /* sdl.c */
- void sdl_display_init(DisplayState *ds, int full_screen, int no_frame);
-
-@@ -1175,6 +1180,9 @@
- extern QEMUMachine isapc_machine;
- extern int fd_bootchk;
-
-+/* z80.c??? */
-+extern QEMUMachine z80pc_machine;
-+
- void ioport_set_a20(int enable);
- int ioport_get_a20(void);
-
---- qemu/z80-dis.c
-+++ qemu/z80-dis.c
+--- qemu-0.9.1/z80-dis.c
++++ qemu-0.9.1/z80-dis.c
@@ -0,0 +1,621 @@
+/* Print Z80 and R800 instructions
+ Copyright 2005 Free Software Foundation, Inc.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org