sdk/emulator/qemu.git
15 years agolinux-user: fix signal.c warning
aurel32 [Fri, 30 Jan 2009 20:15:32 +0000 (20:15 +0000)]
linux-user: fix signal.c warning

This patch fixes:

linux-user/signal.c:1403: warning: no previous prototype for 'do_sigreturn_v1'
linux-user/signal.c:1473: warning: no previous prototype for 'do_sigreturn_v2'
linux-user/signal.c:1511: warning: no previous prototype for 'do_rt_sigreturn_v1'
linux-user/signal.c:1552: warning: no previous prototype for 'do_rt_sigreturn_v2'

by making the appropriate functions static.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6486 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: identify running binary in /proc/self/exe
aurel32 [Fri, 30 Jan 2009 20:09:01 +0000 (20:09 +0000)]
linux-user: identify running binary in /proc/self/exe

Some applications like to test /proc/self/exe to find
out who they are. Fake the result of readlink() for
them. Use realpath() to return full path to binary
(which the links /proc/self/exe are)

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6485 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: Add generic env variable handling
aurel32 [Fri, 30 Jan 2009 19:59:17 +0000 (19:59 +0000)]
linux-user: Add generic env variable handling

Adds support for qemu to modify target process environment
variables using -E and -U commandline switches. This replaces
eventually the -drop-ld-preload flag.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6484 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Fix struct target_stat64 for 32-bit host
aurel32 [Fri, 30 Jan 2009 19:48:32 +0000 (19:48 +0000)]
target-ppc: Fix struct target_stat64 for 32-bit host

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6483 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-sh4: Fix struct target_stat64 for 64-bit host
aurel32 [Fri, 30 Jan 2009 19:48:24 +0000 (19:48 +0000)]
target-sh4: Fix struct target_stat64 for 64-bit host

Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6482 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinuw-user fix: read() and acct() on NULL arguments
aurel32 [Fri, 30 Jan 2009 19:48:17 +0000 (19:48 +0000)]
linuw-user fix: read() and acct() on NULL arguments

Returning efault in these cases is not correct. Originally
proposed by Thayne Harbaugh in 2007:
http://www.mail-archive.com/qemu-devel@nongnu.org/msg14658.html

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6481 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: don't crash with null name
aurel32 [Fri, 30 Jan 2009 19:48:07 +0000 (19:48 +0000)]
linux-user: don't crash with null name

From Thayne Harbaugh.

path() may be called with null string, don't bother trying to
remap in that case.

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6480 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: return EINVAL on incorrect sockaddr
aurel32 [Fri, 30 Jan 2009 19:47:57 +0000 (19:47 +0000)]
linux-user: return EINVAL on incorrect sockaddr

From: Lauro Ramos Venancio <lauro.venancio@gmail.com>

Fixes ltp test accept01

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6479 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: fix accept(2) with NULL peer
aurel32 [Fri, 30 Jan 2009 19:47:47 +0000 (19:47 +0000)]
linux-user: fix accept(2) with NULL peer

Based on scratchbox2 patch by Mika Westerberg

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6478 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAllow usb tablet to be used with vmware-vga hwcursor.
balrog [Thu, 29 Jan 2009 23:29:52 +0000 (23:29 +0000)]
Allow usb tablet to be used with vmware-vga hwcursor.

Assume that in absolute mode the guest cursor always follows host cursor
and there's no need to move host cursor.  This avoids a strange feedback
loop.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6477 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix absolute mode mice.
balrog [Thu, 29 Jan 2009 23:19:20 +0000 (23:19 +0000)]
Fix absolute mode mice.

width and height were never set which means that host coordinates were
divided by -1 instead of (width - 1) / 0x7fff.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6476 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agocheck SCSI read/write requests against max LBA (Rik van Riel)
aliguori [Thu, 29 Jan 2009 19:59:04 +0000 (19:59 +0000)]
check SCSI read/write requests against max LBA (Rik van Riel)

The bdrv layer uses a signed offset. Furthermore, block-raw-posix
only seeks when that offset is positive. Passing a negative offset
to block-raw-posix can result in data being written at the current
seek cursor's position.

It may be possible to exploit this to seek to the end of the disk
and extend the virtual disk by writing data to a negative sector
offset.  After a reboot, this could lead to the guest having a
larger disk than it had before.

Close the hole by sanity checking the lba against the size of the
disk.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6475 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix a typo in ext2_feature_name (Carl-Daniel Hailfinger)
aliguori [Thu, 29 Jan 2009 19:45:28 +0000 (19:45 +0000)]
Fix a typo in ext2_feature_name (Carl-Daniel Hailfinger)

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6474 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse new logging API in reset handling (Jan Kiszka)
aliguori [Thu, 29 Jan 2009 17:02:21 +0000 (17:02 +0000)]
Use new logging API in reset handling (Jan Kiszka)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6473 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMTRR support on x86, part 2 (Carl-Daniel Hailfinger)
aliguori [Thu, 29 Jan 2009 17:02:17 +0000 (17:02 +0000)]
MTRR support on x86, part 2 (Carl-Daniel Hailfinger)

Load and save MTRR state together with machine state.

Add support for the MTRRcap MSR which is used by the latest Bochs BIOS
and some operating systems.

Fix a typo in ext2_feature_name.

With this patch, MTRR emulation should be good enough to not trigger any
sanity checks in well behaved BIOS/kernel code.
Some corner cases for BIOS/firmware usage remain to be implemented, but
that can be deferred to another patch.
Also, MTRR accesses on hardware not supporting MTRRs should cause #GP.
That can be enforced by another patch as well.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6472 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDon't notify virtio devices before S_DRIVER_OK (Mark McLoughlin)
aliguori [Thu, 29 Jan 2009 17:02:13 +0000 (17:02 +0000)]
Don't notify virtio devices before S_DRIVER_OK (Mark McLoughlin)

Current Linux guests oops if the host notifies of a
config change before a driver has been bound to the
device.

It's pretty pointless for us to do notify of config
changes before status is S_DRIVER_OK anyway, so let's
just not do it.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6471 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agofix raw_aio_read\write error handling (Stefano Stabellini)
aliguori [Thu, 29 Jan 2009 17:02:08 +0000 (17:02 +0000)]
fix raw_aio_read\write error handling (Stefano Stabellini)

Currently when qemu_paio_read or qemu_paio_write return an error we call
qemu_aio_release without removing the request from the list.
I know that in the current implementation qemu_paio_write\read don't return
any error, but still the behavior is wrong, especially considering
that the implementation of these two functions is likely to change in is
the future.
This patch fixes the problem adding a raw_aio_remove function that
removes the callback from the queue and also calls qemu_aio_release.
raw_aio_remove is called by raw_aio_read, raw_aio_write and
raw_aio_cancel.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6470 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoSCSI divide capacity by s->cluster_size (Rik van Riel)
aliguori [Wed, 28 Jan 2009 21:58:29 +0000 (21:58 +0000)]
SCSI divide capacity by s->cluster_size (Rik van Riel)

Paul Brook pointed out that the number of sectors reported
by the SCSI read capacity commands needs to be divided by
s->cluster_size, because bdrv_get_geometry reports the number
of 512 byte sectors, while emulated CDROMs report 2048 byte
sectors back to the guest.

This has no consequences for emulated hard disks, which use
a cluster size of 1.

aliguori: fixed typo

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6469 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agosupport >2TB SCSI disks (Rik van Riel)
aliguori [Wed, 28 Jan 2009 21:58:25 +0000 (21:58 +0000)]
support >2TB SCSI disks (Rik van Riel)

Implement SCSI READ(16), WRITE(16) and SAI READ CAPACITY(16) commands,
so SCSI disks larger than 2TB can work with guests that support these
newer SCSI commands.

The cast to (uint64_t) is needed because otherwise gcc will use a
signed int, which gets sign extended into uint64_t lba, resulting
in bad block numbers for READ 10 and READ 16 with block numbers
larger than 2^31.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6468 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agofix signed/unsigned overflows in SCSI disk (Rik van Riel)
aliguori [Wed, 28 Jan 2009 21:58:22 +0000 (21:58 +0000)]
fix signed/unsigned overflows in SCSI disk (Rik van Riel)

Sector numbers can overflow on a virtual scsi disk of over 1TB
in size.  Qemu's bdrv_read expects an int64_t, so fix the overflow
by going to that data type.

On large disks, we clip the capacity to 2TB instead of returning
"capacity modulo 2TB".

Turn sector_count into an unsigned to prevent a signed/unsigned
overflow with SCSI transfers larger than 2TB.  We're unlikely to
ever hit this bug, but fixing it is just one line.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6467 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix qemu_malloc.
malc [Wed, 28 Jan 2009 17:16:56 +0000 (17:16 +0000)]
Fix qemu_malloc.

make {linux,bsd}-user qemu_realloc handle ptr == NULL correctly.
spotted by malc.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6466 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd Simba device ID
blueswir1 [Tue, 27 Jan 2009 19:15:31 +0000 (19:15 +0000)]
Add Simba device ID

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6465 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Fix support for images > 4 GB (Kevin Wolf)
aliguori [Tue, 27 Jan 2009 14:29:15 +0000 (14:29 +0000)]
block-vpc: Fix support for images > 4 GB (Kevin Wolf)

This patch fixes the truncation of sector offsets to 32 bits.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6464 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoCRIS: Init the feedback shiftreg used for randomizing TLB sets.
edgar_igl [Mon, 26 Jan 2009 22:21:30 +0000 (22:21 +0000)]
CRIS: Init the feedback shiftreg used for randomizing TLB sets.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6463 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoETRAX: Remove display-state argument from board init.
edgar_igl [Mon, 26 Jan 2009 21:47:27 +0000 (21:47 +0000)]
ETRAX: Remove display-state argument from board init.

Apparently this board was forgotten in the display changes.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6462 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm-x86: Remove eflags conversion into emulator format (Jan Kiszka)
aliguori [Mon, 26 Jan 2009 20:32:22 +0000 (20:32 +0000)]
kvm-x86: Remove eflags conversion into emulator format (Jan Kiszka)

It seems that the conversion of the kernel-delivered eflags state into
qemu's internal split representation was once needed in an older kvm
design (register read-back may have taken place from inside cpu_exec).
Today it is plain wrong and causes incorrect cpu state reporting (gdb,
monitor) and should also corrupt its saving (savevm, migration). Drop
the related lines.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6461 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoCheck if the i8254 timer is active before deactivating it (Alexander Graf)
aliguori [Mon, 26 Jan 2009 20:32:18 +0000 (20:32 +0000)]
Check if the i8254 timer is active before deactivating it (Alexander Graf)

The HPET emulation can disable the i8254 when the HPET is
in legacy mode, thus emulating the i8254's behavior.

But if it does, the i8254 doesn't have to be running, so
let's check to see if the timer works and not disable it
if it's not.

This fixes a segmentation fault when running Mac OS X as
guest os.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6460 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Create images (Kevin Wolf)
aliguori [Mon, 26 Jan 2009 20:27:06 +0000 (20:27 +0000)]
block-vpc: Create images (Kevin Wolf)

Add an implementation to create VHD images.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6459 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Write support (Kevin Wolf)
aliguori [Mon, 26 Jan 2009 20:27:02 +0000 (20:27 +0000)]
block-vpc: Write support (Kevin Wolf)

Add write support for VHD images.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6458 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Use the qemu block layer (Kevin Wolf)
aliguori [Mon, 26 Jan 2009 20:26:58 +0000 (20:26 +0000)]
block-vpc: Use the qemu block layer (Kevin Wolf)

Instead of accessing the file directly, use the qemu block layer.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6457 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Fix disk size (Kevin Wolf)
aliguori [Mon, 26 Jan 2009 20:26:54 +0000 (20:26 +0000)]
block-vpc: Fix disk size (Kevin Wolf)

VirtualPC bases the virtual disk size on the geometry rather than on
the size stored in the header.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6456 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Adapt header structures to official documentation (Kevin Wolf)
aliguori [Mon, 26 Jan 2009 20:26:49 +0000 (20:26 +0000)]
block-vpc: Adapt header structures to official documentation (Kevin Wolf)

The current definition of the VirtualPC headers is incomplete and partly
even wrong. This patch changes the header structs according to the
official VHD specification.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6455 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-vpc: Split up struct vpc_subheader (Kevin Wolf)
aliguori [Mon, 26 Jan 2009 20:26:46 +0000 (20:26 +0000)]
block-vpc: Split up struct vpc_subheader (Kevin Wolf)

struct vpc_subheader currently is a union of two completely different
data structures (the Hard Disk Footer and the Dynamic Disk Header).
That doesn't make too much sense, so split them up.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6454 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agox86: Issue reset on triple faults (Jan Kiszka)
aliguori [Mon, 26 Jan 2009 19:54:36 +0000 (19:54 +0000)]
x86: Issue reset on triple faults (Jan Kiszka)

As discussed a few times on this list: A triple fault causes a system
reset on x86, and some guests make use of this (e.g. 386BSD). To keep
the chance of tracing unexpected resets, log them if CPU_LOG_RESET is
set.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6453 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoLog reset events (Jan Kiszka)
aliguori [Mon, 26 Jan 2009 19:54:31 +0000 (19:54 +0000)]
Log reset events (Jan Kiszka)

Original idea&code by Kevin Wolf, split-up in two patches and added more
archs.

This patch introduces a flag to log CPU resets. Useful for tracing
unexpected resets (such as those triggered by x86 triple faults).

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6452 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRemove the advertising clause from the slirp license
aliguori [Mon, 26 Jan 2009 19:37:41 +0000 (19:37 +0000)]
Remove the advertising clause from the slirp license

According to the FSF, the 4-clause BSD license, which slirp is covered under,
is not compatible with the GPL or LGPL[1].

[1] http://www.fsf.org/licensing/licenses/index_html#GPLIncompatibleLicenses

There are three declared copyright holders in slirp that use the 4-clause
BSD license, the Regents of UC Berkley, Danny Gasparovski, and Kelly Price.
Below are the appropriate permissions to remove the advertise clause from slirp
from each party.

Special thanks go to Richard Fontana from Red Hat for contacting all of the
necessary authors to resolve this issue!

Regents of UC Berkley:
From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

July 22, 1999

To All Licensees, Distributors of Any Version of BSD:

As you know, certain of the Berkeley Software Distribution ("BSD") source
code files require that further distributions of products containing all or
portions of the software, acknowledge within their advertising materials
that such products contain software developed by UC Berkeley and its
contributors.

Specifically, the provision reads:

"     * 3. All advertising materials mentioning features or use of this software
      *    must display the following acknowledgement:
      *    This product includes software developed by the University of
      *    California, Berkeley and its contributors."

Effective immediately, licensees and distributors are no longer required to
include the acknowledgement within advertising materials.  Accordingly, the
foregoing paragraph of those BSD Unix files containing it is hereby deleted
in its entirety.

William Hoskins
Director, Office of Technology Licensing
University of California, Berkeley

Danny Gasparovski:

Subject: RE: Slirp license
Date: Thu, 8 Jan 2009 10:51:00 +1100
From: "Gasparovski, Daniel" <Daniel.Gasparovski@ato.gov.au>
To: "Richard Fontana" <rfontana@redhat.com>

Hi Richard,

I have no objection to having Slirp code in QEMU be licensed under the
3-clause BSD license.

Thanks for taking the effort to consult me about this.

Dan ...

Kelly Price:

Date: Thu, 8 Jan 2009 19:38:56 -0500
From: "Kelly Price" <strredwolf@gmail.com>
To: "Richard Fontana" <rfontana@redhat.com>
Subject: Re: Slirp license

Thanks for contacting me, Richard.  I'm glad you were able to find
Dan, as I've been "keeping the light on" for Slirp.  I have no use for
it now, and I have little time for it (now holding onto Keenspot's
Comic Genesis and having a regular US state government position). If
Dan would like to return to the project, I'd love to give it back to
him.

As for copyright, I don't own all of it.  Dan does, so I will defer to
him.  Any of my patches I will gladly license to the 3-part BSD
license.  My interest in re-licensing was because we didn't have ready
info to contact Dan.  If Dan would like to port Slirp back out of
QEMU, a lot of us 64-bit users would be grateful.

Feel free to share this email address with Dan.  I will be glad to
effect a transfer of the project to him and Mr. Bellard of the QEMU
project.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6451 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoR13 is reserved for small data area pointer by SVR4 PPC ABI
malc [Mon, 26 Jan 2009 18:21:53 +0000 (18:21 +0000)]
R13 is reserved for small data area pointer by SVR4 PPC ABI

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6450 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMTRR support on x86 (Carl-Daniel Hailfinger)
aliguori [Mon, 26 Jan 2009 17:53:04 +0000 (17:53 +0000)]
MTRR support on x86 (Carl-Daniel Hailfinger)

The current codebase ignores MTRR (Memory Type Range Register)
configuration writes and reads because Qemu does not implement caching.
All BIOS/firmware in know of for x86 do implement a mode called
Cache-as-RAM (CAR) which locks down the CPU cache lines and uses the CPU
cache like RAM before RAM is enabled. Qemu assumes RAM is accessible
from the start, but it would be nice to be able to run real
BIOS/firmware in Qemu. For that, we need CAR support and for CAR support
we have to support MTRRs.

This patch is a first step in that direction. MTRRs are MSRs supported
by all recent x86 CPUs, even old i586. Besides influencing cache, the
MTRRs can be written and read back, so discarding MTRR writes violates
the expectations of existing code out there.

An added benefit of this patch is that it fixes the following Linux
kernel error message present in recent kernels (provided the BIOS has
the recent MTRR patches applied):
 ------------[ cut here ]------------
WARNING: at arch/x86/kernel/cpu/mtrr/main.c:1500 mtrr_trim_uncached_memory+0x382/0x384()
WARNING: strange, CPU MTRRs all blank?
Modules linked in:
Supported: Yes
Pid: 0, comm: swapper Not tainted 2.6.27.7-9-default #1
 [<c0106570>] dump_trace+0x6b/0x249
 [<c01070a5>] show_trace+0x20/0x39
 [<c0343c02>] dump_stack+0x71/0x76
 [<c012acb2>] warn_slowpath+0x6f/0x90
 [<c0542f8f>] mtrr_trim_uncached_memory+0x382/0x384
 [<c053f24d>] setup_arch+0x40d/0x639
 [<c053a6ac>] start_kernel+0x6b/0x31f
 =======================
 ---[ end trace 4eaa2a86a8e2da22 ]---

Handle common x86 MTRR reads and writes, but don't act on them.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6449 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu iovec: keep track of total size, allow partial copies (Gerd Hoffman)
aliguori [Mon, 26 Jan 2009 17:17:52 +0000 (17:17 +0000)]
qemu iovec: keep track of total size, allow partial copies (Gerd Hoffman)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6448 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agobuild system: Further improve quiet mode (Jan Kiszka)
aliguori [Mon, 26 Jan 2009 17:07:46 +0000 (17:07 +0000)]
build system: Further improve quiet mode (Jan Kiszka)

Derived from Stuart Brady's patch: Show the target directory as prefix
to the current module when building in quiet mode. This helps to gain
overview of the current build progress, specifically when running
parallelized builds.

Furthermore, suppress make command echoing when entering subdirs and
replace $(subst subdir-,,$@) with $* in the related rule.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6447 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMove definition of rgb_to_pixel_dup_table (Nathan Froyd)
aliguori [Mon, 26 Jan 2009 17:07:42 +0000 (17:07 +0000)]
Move definition of rgb_to_pixel_dup_table (Nathan Froyd)

This fixes the warning:

/scratch/froydnj/qemu.git/hw/vga.c:1515: warning: redundant redeclaration of 'rgb_to_pixel_dup_table'
/scratch/froydnj/qemu.git/hw/vga.c:1248: warning: previous declaration of 'rgb_to_pixel_dup_table' was here

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6446 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd reset irq state for ps2 reboot callback (Dor Laor)
aliguori [Mon, 26 Jan 2009 15:57:52 +0000 (15:57 +0000)]
Add reset irq state for ps2 reboot callback (Dor Laor)

Should solve 100% cpu ioport poll after reboot.

Signed-off-by: Dor Laor <dor@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6445 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoHandle link status in qemu_sendv_packet() (Mark McLoughlin)
aliguori [Mon, 26 Jan 2009 15:37:44 +0000 (15:37 +0000)]
Handle link status in qemu_sendv_packet() (Mark McLoughlin)

If link is down, pretend that the packet has been successfully sent.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6444 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoEnabled building of x86_64 code on Mac OS X (Alexander Graf)
aliguori [Mon, 26 Jan 2009 15:37:40 +0000 (15:37 +0000)]
Enabled building of x86_64 code on Mac OS X (Alexander Graf)

Mac OS X 10.5 supports 64-bit userspace on an x86_64 kernel and
by default uses 32-bit userspace applications, so the detection for
the host architecture fails.

This patch enabled building of x86_64 code on x86_64 capable CPUS
with Mac OS X.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6443 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDefine PCI vendor and device IDs in pci.h (Stuart Brady)
aliguori [Mon, 26 Jan 2009 15:37:35 +0000 (15:37 +0000)]
Define PCI vendor and device IDs in pci.h (Stuart Brady)

This patch defines PCI vendor and device IDs in pci.h (matching those
from Linux's pci_ids.h), and uses those definitions where appropriate.

Change from v1:
  Introduces pci_config_set_vendor_id() / pci_config_set_device_id()
  accessors as suggested by Anthony Liguori.

Signed-off-by: Stuart Brady <stuart.brady@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6442 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovnc fixes and improvements (Stefano Stabellini)
aliguori [Mon, 26 Jan 2009 15:37:30 +0000 (15:37 +0000)]
vnc fixes and improvements (Stefano Stabellini)

this patch fixes a bug and improves the generic pixel conversion
function in vnc.c.
The bug is that when a new vnc client connects we need to reset the flag
has_WMVi but currently we don't.
The generic pixel conversion function is vnc_convert_pixel and currently
is not very efficient since uses the division and multiplication
operators.
To make it more efficient I changed to use bit shift operators instead.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6441 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse the default subsystem vendor ID for virtio devices (Mark McLoughlin)
aliguori [Mon, 26 Jan 2009 15:22:57 +0000 (15:22 +0000)]
Use the default subsystem vendor ID for virtio  devices (Mark McLoughlin)

A subsystem vendor ID of zero isn't allowed, so we use our
default ID.

Gerd points out that although the PCI subsystem vendor ID is
treated by the guest as the virtio vendor ID:

   /* we use the subsystem vendor/device id as the virtio vendor/device
    * id.  this allows us to use the same PCI vendor/device id for all
    * virtio devices and to identify the particular virtio driver by
    * the subsytem ids */
    vp_dev->vdev.id.vendor = pci_dev->subsystem_vendor;
    vp_dev->vdev.id.device = pci_dev->subsystem_device;

it looks like only the device ID is used right now:

   # grep virtio modules.alias
   alias virtio:d00000001v* virtio_net
   alias virtio:d00000002v* virtio_blk
   alias virtio:d00000003v* virtio_console
   alias virtio:d00000004v* virtio-rng
   alias virtio:d00000005v* virtio_balloon
   alias pci:v00001AF4d*sv*sd*bc*sc*i* virtio_pci
   alias virtio:d00000009v* 9pnet_virtio

so setting the subsystem vendor id to something != zero shouldn't cause
trouble.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6440 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd macro for virtio-console PCI device ID (Mark McLoughlin)
aliguori [Mon, 26 Jan 2009 15:22:46 +0000 (15:22 +0000)]
Add macro for virtio-console PCI device ID (Mark McLoughlin)

Also use the existing macro for the PCI vendor ID

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6439 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse macros for virtio-net PCI vendor/device IDs (Mark McLoughlin)
aliguori [Mon, 26 Jan 2009 15:22:41 +0000 (15:22 +0000)]
Use macros for virtio-net PCI vendor/device IDs (Mark McLoughlin)

Gerd added these macros a while back.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6438 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: always load kernel to KERNEL_LOAD_ADDR
aurel32 [Mon, 26 Jan 2009 10:22:15 +0000 (10:22 +0000)]
target-ppc: always load kernel to KERNEL_LOAD_ADDR

Linux changed its physical address location in the elf header from
0xc0000000 to 0 on 2.6.25, causing later kernels to fail booting
with the -kernel option.

This patch assures that the lowest segment in the elf binary is loaded
to KERNEL_LOAD_ADDR, which is where the firmware expects it.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6437 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd static qualifier to local functions
malc [Sun, 25 Jan 2009 10:56:51 +0000 (10:56 +0000)]
Add static qualifier to local functions

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6436 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMassage PPC version of cpu_get_real_ticks a little
malc [Sun, 25 Jan 2009 10:56:48 +0000 (10:56 +0000)]
Massage PPC version of cpu_get_real_ticks a little

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6435 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix bsd-user compile like r6412
blueswir1 [Sat, 24 Jan 2009 20:19:18 +0000 (20:19 +0000)]
Fix bsd-user compile like r6412

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6434 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agosh4: sh_pci. Register resouces both at A7 and P4.
aurel32 [Sat, 24 Jan 2009 18:21:08 +0000 (18:21 +0000)]
sh4: sh_pci. Register resouces both at A7 and P4.

Add resource registration both for P4 and A7.
This is needed because of #5935 SH4: Eliminate P4 to A7 mangling.
Additionally, {reg,iop,mem}base which is no longer used are removed.

Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6433 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoSynch code, help and docs
blueswir1 [Sat, 24 Jan 2009 18:19:25 +0000 (18:19 +0000)]
Synch code, help and docs

Rearrange code, help printout and docs so that they are in the same
(hopefully more logical) order for easier maintenance.

Add help and docs for undocumented options.

Reformat slightly for more consistent help output.

Add comments to encourage better synchronization in the future.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6432 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agosh4: r2d. Endian conversion for peripheral register initialization.
aurel32 [Sat, 24 Jan 2009 18:18:20 +0000 (18:18 +0000)]
sh4: r2d. Endian conversion for peripheral register initialization.

Add endian conversion to hw/r2d.c which lacks consideration of endian on
setting BSC registers.

Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6431 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse broadcast address for slirp dhcp replies
aurel32 [Sat, 24 Jan 2009 18:16:18 +0000 (18:16 +0000)]
Use broadcast address for slirp dhcp replies

Windows Vista drops unicast dhcp replies to its yet-unconfigured address,
so use a broadcast address.  This behaviour is allowed by the RFC.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6430 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoSupport epoch of 1980 in RTC emulation for MIPS Magnum
aurel32 [Sat, 24 Jan 2009 18:06:21 +0000 (18:06 +0000)]
Support epoch of 1980 in RTC emulation for MIPS Magnum

On the MIPS Magnum, the time that is held in the RTC's NVRAM should be
relative to midnight on 1980-01-01.  This patch adds an extra parameter
to rtc_init(), allowing different epochs to be used.  For the Magnum,
1980 is specified, and for all other machines, 2000 is specified.

I've not modified the handling of the century byte, as with an epoch of
1980 and a year of 2009, one could argue that it should hold either
0, 1, 19 or 20.  NT 3.50 on MIPS does not read the century byte.

Signed-off-by: Stuart Brady <stuart.brady@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6429 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoList virtio console device in pci-ids.txt
aurel32 [Sat, 24 Jan 2009 16:37:31 +0000 (16:37 +0000)]
List virtio console device in pci-ids.txt

As mentioned in:

  http://lists.gnu.org/archive/html/qemu-devel/2009-01/msg00907.html

pci-ids.txt needs updating to list the the virtio-console PCI device ID.

Signed-off-by: Stuart Brady <stuart.brady@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6428 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm/powerpc: extern one function for MPC85xx code use
aurel32 [Sat, 24 Jan 2009 16:35:56 +0000 (16:35 +0000)]
kvm/powerpc: extern one function for MPC85xx code use

Signed-off-by: Liu Yu <yu.liu@freescale.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6427 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoReformat quiet build
aurel32 [Sat, 24 Jan 2009 15:08:25 +0000 (15:08 +0000)]
Reformat quiet build

Indent and align the quiet build messages more like Linux - improves
readability of this great feature even more.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6426 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Add SPE register read/write using XML
aurel32 [Sat, 24 Jan 2009 15:08:17 +0000 (15:08 +0000)]
target-ppc: Add SPE register read/write using XML

Don't read/write SPEFSCR until we figure out what to do about exceptions.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6425 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Add Altivec register read/write using XML
aurel32 [Sat, 24 Jan 2009 15:08:09 +0000 (15:08 +0000)]
target-ppc: Add Altivec register read/write using XML

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6424 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Add float register read/write using XML
aurel32 [Sat, 24 Jan 2009 15:08:00 +0000 (15:08 +0000)]
target-ppc: Add float register read/write using XML

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6423 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Include gdbstub.h
aurel32 [Sat, 24 Jan 2009 15:07:50 +0000 (15:07 +0000)]
target-ppc: Include gdbstub.h

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6422 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Change core powerpc gdbstub bits to be XML-aware
aurel32 [Sat, 24 Jan 2009 15:07:42 +0000 (15:07 +0000)]
target-ppc: Change core powerpc gdbstub bits to be XML-aware

Define GDB_CORE_XML and hack things similarly to ARM so that despite the
FP registers coming in between the GPRs and some status registers,
everything works out OK no matter which kind of GDB we're communicating
with.

It matters whether we're built to target 64-bit or 32-bit cores.  I
think there are still problems if we are debugging 32-bit programs on a
built-for-64-bit QEMU (QEMU will always send 64-bit registers), but I
don't know if there's a good way around that at the time being.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6421 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Add XML files for PowerPC registers
aurel32 [Sat, 24 Jan 2009 15:07:34 +0000 (15:07 +0000)]
target-ppc: Add XML files for PowerPC registers

These files are nearly identical to the XML files provided with GDB.
The only difference is that power-{fpu,spe}.xml do not assign register
numbers; the internal QEMU machinery takes care of that.

Define gdb_xml_files for ppc targets in configure as well.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6420 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomips: limit RAM size to 256MB on malta and qemu boards
aurel32 [Sat, 24 Jan 2009 15:07:25 +0000 (15:07 +0000)]
mips: limit RAM size to 256MB on malta and qemu boards

This avoid crash when a bigger RAM size is requested (the devices are
mapped at 0x01000000).

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6419 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: change the default RAM size to 128MB like other targets
aurel32 [Sat, 24 Jan 2009 15:07:09 +0000 (15:07 +0000)]
target-ppc: change the default RAM size to 128MB like other targets

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6418 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix format warnings
malc [Sat, 24 Jan 2009 14:38:06 +0000 (14:38 +0000)]
Fix format warnings

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6417 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFloppy: Properly handle Sense Interrupt Status after FDC Reset
blueswir1 [Sat, 24 Jan 2009 12:09:52 +0000 (12:09 +0000)]
Floppy: Properly handle Sense Interrupt Status after FDC Reset

Original text below.

Attached is a patch that changes how the emulated floppy controller replies to Sense Interrupt Status commands immediately after a controller reset. The specs state that after a Reset the 82078 goes into polling mode which needs four Sense Interrupt Status commands to be issued afterwards to clear the status of each drive. Currently we always respond to Sense Interrupt Status with a SEEK END instead of POLLING. This causes a problem with the SCO Openserver installer which is expects a POLLING state after reset. This patch returns a POLLING status for four Sense Interrupt Status requests immediately after a controller reset. This approach mirrors the way Bochs handles this situation. With the attached patch applied Openserver gets further when trying to load storage drivers from the floppy disk (blocked by another issue, patch on its way). I have successfully tested the floppy drive on the following OSs after applying this patch: Windows 98, Windows XP SP2, Linux x86 (SysRescCD 1.1.3 and Ubuntu 8.10).

Justin

Changelog:

Properly handle Sense Interrupt Status after FDC Reset

Signed-off-by: Justin Chevrier <theburner1@yahoo.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6416 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix kernel_size and initrd_size sign (Francois Revol)
blueswir1 [Sat, 24 Jan 2009 12:00:23 +0000 (12:00 +0000)]
Fix kernel_size and initrd_size sign (Francois Revol)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6415 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRename sigev_signo to avoid FreeBSD problems (Juergen Lock)
blueswir1 [Sat, 24 Jan 2009 11:54:21 +0000 (11:54 +0000)]
Rename sigev_signo to avoid FreeBSD problems (Juergen Lock)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6414 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agofix endianness problem sharing the videoram buffer
malc [Fri, 23 Jan 2009 19:56:19 +0000 (19:56 +0000)]
fix endianness problem sharing the videoram buffer

[ The following text is in the "UTF-8" character set. ]

    [ Your display is set for the "koi8-r" character set.  ]

    [ Some characters may be displayed incorrectly. ]

This patch fixes vga rendering when the guest endianness differs from
the host endianness: in this case we can only share the buffer if the
bpp is 32 and we must change the pixelformat accordingly.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6413 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: add qemu_realloc() implementation to unbreak the build (Gerd Hoffman)
aliguori [Fri, 23 Jan 2009 15:02:20 +0000 (15:02 +0000)]
linux-user: add qemu_realloc() implementation to unbreak the build (Gerd Hoffman)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6412 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix NAME2/FIELD2 warnings
malc [Thu, 22 Jan 2009 22:09:55 +0000 (22:09 +0000)]
Fix NAME2/FIELD2 warnings

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6411 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoStop VM on error in virtio-blk. (Gleb Natapov)
aliguori [Thu, 22 Jan 2009 19:52:25 +0000 (19:52 +0000)]
Stop VM on error in virtio-blk. (Gleb Natapov)

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6410 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoStop VM on error in scsi-disk (Gleb Natapov)
aliguori [Thu, 22 Jan 2009 19:52:21 +0000 (19:52 +0000)]
Stop VM on error in scsi-disk (Gleb Natapov)

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6409 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu-img: info: show highest_alloc and num_free_bytes if exist (Uri Lublin)
aliguori [Thu, 22 Jan 2009 18:57:38 +0000 (18:57 +0000)]
qemu-img: info: show highest_alloc and num_free_bytes if exist (Uri Lublin)

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6408 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqcow2 format: keep 'num_free_bytes', and show it upon 'info blockstats' (Uri Lublin)
aliguori [Thu, 22 Jan 2009 18:57:34 +0000 (18:57 +0000)]
qcow2 format: keep 'num_free_bytes', and show it upon 'info blockstats' (Uri Lublin)

'num_free_bytes' is the number of non-allocated bytes below highest-allocation.
It's useful, together with the highest-allocation, to figure out how
fragmented the image is, and how likely it will run out-of-space soon.

For example when the highest allocation is high (almost end-of-disk), but
many bytes (clusters) are free, and can be re-allocated when neeeded, than
we know it's probably not going to reach end-of-disk-space soon.

Added bookkeeping to block-qcow2.c
Export it using BlockDeviceInfo
Show it upon 'info blockstats' if BlockDeviceInfo exists

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6407 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoinfo blockstats: show highest_allocated if exists (Uri Lublin)
aliguori [Thu, 22 Jan 2009 18:57:30 +0000 (18:57 +0000)]
info blockstats: show highest_allocated if exists (Uri Lublin)

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6406 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-qcow2: export highest_allocated through BlockDriverInfo and get_info() (Uri...
aliguori [Thu, 22 Jan 2009 18:57:26 +0000 (18:57 +0000)]
block-qcow2: export highest_allocated through BlockDriverInfo and get_info() (Uri Lublin)

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6405 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-qcow2: keep highest allocated byte (Uri Lublin)
aliguori [Thu, 22 Jan 2009 18:57:22 +0000 (18:57 +0000)]
block-qcow2: keep highest allocated byte (Uri Lublin)

We want to know the highest written offset for qcow2 images.
This gives a pretty good (and easy to calculate) estimation to how
much more allocation can be done for the block device.

It can be usefull for allocating more diskspace for that image
(if possible, e.g. lvm) before we run out-of-disk-space

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6404 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix warning in ide.c
aliguori [Thu, 22 Jan 2009 18:39:53 +0000 (18:39 +0000)]
Fix warning in ide.c

The vm state handler needed updating after the recent vm state change
notification refactoring.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6403 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRework vm_state_change notifiers (Jan Kiszka)
aliguori [Thu, 22 Jan 2009 17:15:29 +0000 (17:15 +0000)]
Rework vm_state_change notifiers (Jan Kiszka)

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6402 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoExtend gitignore (Jan Kiszka)
aliguori [Thu, 22 Jan 2009 17:15:25 +0000 (17:15 +0000)]
Extend gitignore (Jan Kiszka)

Exclude objects in the root directory and temporary stgit files.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6401 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoinstall man-pages as non-executables (Andre Przywara)
aliguori [Thu, 22 Jan 2009 17:15:21 +0000 (17:15 +0000)]
install man-pages as non-executables (Andre Przywara)

make install-doc omits an explicit permission mask for the man-pages. This
defaults to have the executable bits set. Adding "-m 644" (for rw-r--r--)
fixes that.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6400 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomonitor-mux: fix timestamp prefixes (Jan Kiszka)
aliguori [Thu, 22 Jan 2009 17:15:16 +0000 (17:15 +0000)]
monitor-mux: fix timestamp prefixes (Jan Kiszka)

rt_clock returns milliseconds. Fix mux'ed monitor terminal timestamps
accordingly.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6399 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoConvert IDE to directly access guest memory (Avi Kivity)
aliguori [Thu, 22 Jan 2009 16:59:28 +0000 (16:59 +0000)]
Convert IDE to directly access guest memory (Avi Kivity)

Instead of copying to a temporary buffer, map guest memory for IDE DMA
transactions.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6398 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoVectored block device API (Avi Kivity)
aliguori [Thu, 22 Jan 2009 16:59:24 +0000 (16:59 +0000)]
Vectored block device API (Avi Kivity)

Most devices that are capable of DMA are also capable of scatter-gather.
With the memory mapping API, this means that the device code needs to be
able to access discontiguous host memory regions.

For block devices, this translates to vectored I/O.  This patch implements
an aynchronous vectored interface for the qemu block devices.  At the moment
all I/O is bounced and submitted through the non-vectored API; in the future
we will convert block devices to natively support vectored I/O wherever
possible.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6397 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoI/O vector helpers (Avi Kivity)
aliguori [Thu, 22 Jan 2009 16:59:20 +0000 (16:59 +0000)]
I/O vector helpers (Avi Kivity)

In general, it is not possible to predict the size of of an I/O vector since
a contiguous guest region may map to a disconiguous host region.  Add some
helpers to manage I/O vector growth.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6396 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd map client retry notification (Avi Kivity)
aliguori [Thu, 22 Jan 2009 16:59:16 +0000 (16:59 +0000)]
Add map client retry notification (Avi Kivity)

The target memory mapping API may fail if the bounce buffer resources
are exhausted.  Add a notification mechanism to allow clients to retry
the mapping operation when resources become available again.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6395 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd target memory mapping API (Avi Kivity)
aliguori [Thu, 22 Jan 2009 16:59:11 +0000 (16:59 +0000)]
Add target memory mapping API (Avi Kivity)

Devices accessing large amounts of memory (as with DMA) will wish to obtain
a pointer to guest memory rather than access it indirectly via
cpu_physical_memory_rw().  Add a new API to convert target addresses to
host pointers.

In case the target address does not correspond to RAM, a bounce buffer is
allocated.  To prevent the guest from causing the host to allocate unbounded
amounts of bounce buffer, this memory is limited (currently to one page).

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6394 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix build with --disable-sdl
aliguori [Thu, 22 Jan 2009 16:18:33 +0000 (16:18 +0000)]
Fix build with --disable-sdl

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6393 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd BIOS fixes from KVM tree
aliguori [Wed, 21 Jan 2009 21:46:20 +0000 (21:46 +0000)]
Add BIOS fixes from KVM tree

See each patch for individual Signed-off-by's/commit logs

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6392 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix nographic mode and VNC
blueswir1 [Wed, 21 Jan 2009 19:28:13 +0000 (19:28 +0000)]
Fix nographic mode and VNC

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6391 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agore-fix screendump (Stefano Stabellini)
aliguori [Wed, 21 Jan 2009 19:18:00 +0000 (19:18 +0000)]
re-fix screendump (Stefano Stabellini)

Removing the assumption about a single graphic console made
get_graphic_console return NULL when called by vga_screen_dump.
In this case returning NULL is correct but since NULL is not handled in
qemu_console_resize it causes a segmentation fault.
Just returning immediately from qemu_console_resize is sufficient to fix the
problem.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6390 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agofix curses interface (Stefano Stabellini)
aliguori [Wed, 21 Jan 2009 18:59:12 +0000 (18:59 +0000)]
fix curses interface (Stefano Stabellini)

Hi all,
this patch fixes the curses interface: when we switch from one console
to another we need to change the displaystate width and height even
though in the curses case the backing buffer remains of the same size.
I am also putting back the call to text_console_resize in
text_console_invalidate so that resizeable text consoles can be properly
handled.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6389 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoStop VM on ENOSPC error. (Gleb Natapov)
aliguori [Wed, 21 Jan 2009 18:59:04 +0000 (18:59 +0000)]
Stop VM on ENOSPC error. (Gleb Natapov)

This version of the patch adds new option "werror" to -drive flag.
Possible values are:

report    - report errors to a guest as IO errors
ignore    - continue as if nothing happened
stop      - stop VM on any error and retry last command on resume
enospc    - stop vm on ENOSPC error and retry last command on resume
            all other errors are reported to a guest.

Default is "report" to maintain current behaviour.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6388 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdds null check for DisplayStatus (Stefano Stabellini)
aliguori [Wed, 21 Jan 2009 18:58:51 +0000 (18:58 +0000)]
Adds null check for DisplayStatus (Stefano Stabellini)

Allocate a DisplaySurface in dumb_display_init if none else does it.
The DisplaySurface will be used for the qemu monitor, serial and
parallel ports, etc.

Signed-off-by: Andrew May <acmay@acmay.homeip.net>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6387 c046a42c-6fe2-441c-8c8c-71466251a162