]> Git Repo - qemu.git/log
qemu.git
10 years agoblock/parallels: implement incorrect close detection
Denis V. Lunev [Tue, 28 Apr 2015 07:46:53 +0000 (10:46 +0300)]
block/parallels: implement incorrect close detection

The software driver must set inuse field in Parallels header to
0x746F6E59 when the image is opened in read-write mode. The presence of
this magic in the header on open forces image consistency check.

There is an unfortunate trick here. We can not check for inuse in
parallels_check as this will happen too late. It is possible to do
that for simple check, but during the fix this would always report
an error as the image was opened in BDRV_O_RDWR mode. Thus we save
the flag in BDRVParallelsState for this.

On the other hand, nothing should be done to clear inuse in
parallels_check. Generic close will do the job right.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: implement parallels_check method of block driver
Denis V. Lunev [Tue, 28 Apr 2015 07:46:52 +0000 (10:46 +0300)]
block/parallels: implement parallels_check method of block driver

The check is very simple at the moment. It calculates necessary stats
and fix only the following errors:
- space leak at the end of the image. This would happens due to
  preallocation
- clusters outside the image are zeroed. Nothing else could be done here

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: move parallels_open/probe to the very end of the file
Denis V. Lunev [Tue, 28 Apr 2015 07:46:51 +0000 (10:46 +0300)]
block/parallels: move parallels_open/probe to the very end of the file

This will help to avoid forward declarations for upcoming parallels_check

Some very obvious formatting fixes were made to the moved code to make
checkpatch happy.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: read parallels image header and BAT into single buffer
Denis V. Lunev [Tue, 28 Apr 2015 07:46:50 +0000 (10:46 +0300)]
block/parallels: read parallels image header and BAT into single buffer

This metadata cache would allow to properly batch BAT updates to disk
in next patches. These updates will be properly aligned to avoid
read-modify-write transactions on block level.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: keep BAT bitmap data in little endian in memory
Denis V. Lunev [Tue, 28 Apr 2015 07:46:49 +0000 (10:46 +0300)]
block/parallels: keep BAT bitmap data in little endian in memory

This will allow to use this data as buffer to BAT update directly
without any intermediate buffers.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: create bat2sect helper
Denis V. Lunev [Tue, 28 Apr 2015 07:46:48 +0000 (10:46 +0300)]
block/parallels: create bat2sect helper

deduplicate copy/paste arithmetcs

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: rename catalog_ names to bat_
Denis V. Lunev [Tue, 28 Apr 2015 07:46:47 +0000 (10:46 +0300)]
block/parallels: rename catalog_ names to bat_

BAT means 'block allocation table'. Thus this name is clean and shorter
on writing.

Some obvious formatting fixes in the old code were made to make checkpatch
happy.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoparallels: change copyright information in the image header
Denis V. Lunev [Tue, 28 Apr 2015 07:46:46 +0000 (10:46 +0300)]
parallels: change copyright information in the image header

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoiotests, parallels: test for newly created parallels image via qemu-img
Denis V. Lunev [Tue, 28 Apr 2015 07:46:45 +0000 (10:46 +0300)]
iotests, parallels: test for newly created parallels image via qemu-img

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: support parallels image creation
Denis V. Lunev [Tue, 28 Apr 2015 07:46:44 +0000 (10:46 +0300)]
block/parallels: support parallels image creation

Do not even care to create WithoutFreeSpace image, it is obsolete.
Always create WithouFreSpacExt one.

The code also does not spend a lot of efforts to fill cylinders and
heads fields, they are not used actually in a real life neither in
QEMU nor in Parallels products.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoiotests, parallels: test for write into Parallels image
Denis V. Lunev [Tue, 28 Apr 2015 07:46:43 +0000 (10:46 +0300)]
iotests, parallels: test for write into Parallels image

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: _co_writev callback for Parallels format
Denis V. Lunev [Tue, 28 Apr 2015 07:46:42 +0000 (10:46 +0300)]
block/parallels: _co_writev callback for Parallels format

Support write on Parallels images. The code is almost the same as one
in the previous patch implemented scatter-gather IO for read.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Roman Kagan <[email protected]>
CC: Kevin Wolf <[email protected]>
CC: Stefan Hajnoczi <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: mark parallels format driver as zero inited
Denis V. Lunev [Tue, 28 Apr 2015 07:46:41 +0000 (10:46 +0300)]
block/parallels: mark parallels format driver as zero inited

From the guest point of view unallocated blocks are zeroed.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Roman Kagan <[email protected]>
CC: Kevin Wolf <[email protected]>
CC: Stefan Hajnoczi <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: replace magic constants 4, 64 with proper sizeofs
Denis V. Lunev [Tue, 28 Apr 2015 07:46:40 +0000 (10:46 +0300)]
block/parallels: replace magic constants 4, 64 with proper sizeofs

simple purification..

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: provide _co_readv routine for parallels format driver
Denis V. Lunev [Tue, 28 Apr 2015 07:46:39 +0000 (10:46 +0300)]
block/parallels: provide _co_readv routine for parallels format driver

Main approach is taken from qcow2_co_readv.

The patch drops coroutine lock for the duration of IO operation and
peforms normal scatter-gather IO using standard QEMU backend.

The patch also adds comment about locking considerations in the driver.

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Signed-off-by: Roman Kagan <[email protected]>
Message-id: 1430207220[email protected]
CC: Roman Kagan <[email protected]>
CC: Kevin Wolf <[email protected]>
CC: Stefan Hajnoczi <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: add get_block_status
Roman Kagan [Tue, 28 Apr 2015 07:46:38 +0000 (10:46 +0300)]
block/parallels: add get_block_status

Implement VFS method for get_block_status to Parallels format driver.

qemu_co_mutex_lock is not necessary yet (the driver is read-only) but
will be necessary very soon when write will be supported.

Signed-off-by: Roman Kagan <[email protected]>
Reviewed-by: Denis V. Lunev <[email protected]>
Signed-off-by: Denis V. Lunev <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
CC: Stefan Hajnoczi <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: read up to cluster end in one go
Roman Kagan [Tue, 28 Apr 2015 07:46:37 +0000 (10:46 +0300)]
block/parallels: read up to cluster end in one go

Teach parallels_read() to do reads in coarser granularity than just a
single sector: if requested, read up to the cluster end in one go.

Signed-off-by: Roman Kagan <[email protected]>
Reviewed-by: Denis V. Lunev <[email protected]>
Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: switch to bdrv_read
Roman Kagan [Tue, 28 Apr 2015 07:46:36 +0000 (10:46 +0300)]
block/parallels: switch to bdrv_read

Switch the .bdrv_read method implementation from using bdrv_pread() to
bdrv_read() on the underlying file, since the latter is subject to i/o
throttling while the former is not.

Besides, since bdrv_read() operates in sectors rather than bytes, adjust
the helper functions to do so too.

Signed-off-by: Roman Kagan <[email protected]>
Reviewed-by: Denis V. Lunev <[email protected]>
Signed-off-by: Denis V. Lunev <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
CC: Stefan Hajnoczi <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoblock/parallels: rename parallels_header to ParallelsHeader
Denis V. Lunev [Tue, 28 Apr 2015 07:46:35 +0000 (10:46 +0300)]
block/parallels: rename parallels_header to ParallelsHeader

this follows QEMU coding convention

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoiotests, parallels: quote TEST_IMG in 076 test to be path-safe
Denis V. Lunev [Tue, 28 Apr 2015 07:46:34 +0000 (10:46 +0300)]
iotests, parallels: quote TEST_IMG in 076 test to be path-safe

suggested by Jeff Cody

Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Roman Kagan <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: 1430207220[email protected]
CC: Kevin Wolf <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/kraxel/tags/pull-vnc-20150520-1' into staging
Peter Maydell [Thu, 21 May 2015 08:07:19 +0000 (09:07 +0100)]
Merge remote-tracking branch 'remotes/kraxel/tags/pull-vnc-20150520-1' into staging

vnc: misc fixes.

# gpg: Signature made Wed May 20 09:32:45 2015 BST using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"

* remotes/kraxel/tags/pull-vnc-20150520-1:
  qemu-sockets: Report explicit error if unlink fails
  vnc: Tweak error when init fails
  vnc: Don't assert if opening unix socket fails
  ui: remove check for failure of qemu_acl_init()
  Strip brackets from vnc host

Signed-off-by: Peter Maydell <[email protected]>
10 years agoqemu-sockets: Report explicit error if unlink fails
Cole Robinson [Tue, 5 May 2015 15:07:19 +0000 (11:07 -0400)]
qemu-sockets: Report explicit error if unlink fails

Consider this case:

$ ls -ld ~/root-owned/
drwx--x--x. 2 root root 4096 Apr 29 12:55 /home/crobinso/root-owned/
$ ls -l ~/root-owned/foo.sock
-rwxrwxrwx. 1 crobinso crobinso 0 Apr 29 12:55 /home/crobinso/root-owned/foo.sock

$ qemu-system-x86_64 -vnc unix:~/root-owned/foo.sock
qemu-system-x86_64: -vnc unix:/home/crobinso/root-owned/foo.sock: Failed to start VNC server: Failed to bind socket to /home/crobinso/root-owned/foo.sock: Address already in use

...which is techinically true, but the real error is that we failed to
unlink. So report it.

This may seem pathological but it's a real possibility via libvirt.

Signed-off-by: Cole Robinson <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agovnc: Tweak error when init fails
Cole Robinson [Tue, 5 May 2015 15:07:18 +0000 (11:07 -0400)]
vnc: Tweak error when init fails

Before:
qemu-system-x86_64: -display vnc=unix:/root/foo.sock: Failed to start VNC server on `(null)': Failed to bind socket to /root/foo.sock: Permission denied

After:
qemu-system-x86_64: -display vnc=unix:/root/foo.sock: Failed to start VNC server: Failed to bind socket to /root/foo.sock: Permission denied

Rather than tweak the string possibly show unix: value as well,
just drop the explicit display reporting. We already get the cli
string in the error message, that should be sufficient.

Signed-off-by: Cole Robinson <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agovnc: Don't assert if opening unix socket fails
Cole Robinson [Tue, 5 May 2015 15:07:17 +0000 (11:07 -0400)]
vnc: Don't assert if opening unix socket fails

Reproducer:

$ qemu-system-x86_64 -display vnc=unix:/root/i-cant-access-you.sock
qemu-system-x86_64: iohandler.c:60: qemu_set_fd_handler2: Assertion `fd >= 0' failed.
Aborted (core dumped)

Signed-off-by: Cole Robinson <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agoui: remove check for failure of qemu_acl_init()
Daniel P. Berrange [Fri, 1 May 2015 10:44:46 +0000 (11:44 +0100)]
ui: remove check for failure of qemu_acl_init()

The qemu_acl_init() function has long since stopped being able
to return NULL, since g_malloc will abort on OOM. As such the
checks for NULL were unreachable code.

Signed-off-by: Daniel P. Berrange <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agoStrip brackets from vnc host
Ján Tomko [Mon, 27 Apr 2015 15:03:14 +0000 (17:03 +0200)]
Strip brackets from vnc host

Commit v2.2.0-1530-ge556032 vnc: switch to inet_listen_opts
bypassed the use of inet_parse in inet_listen, making literal
IPv6 addresses enclosed in brackets fail:

qemu-kvm: -vnc [::1]:0: Failed to start VNC server on `(null)': address
resolution failed for [::1]:5900: Name or service not known

Strip the brackets to make it work again.

Signed-off-by: Ján Tomko <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/kraxel/tags/pull-serial-20150519-1' into staging
Peter Maydell [Tue, 19 May 2015 13:10:33 +0000 (14:10 +0100)]
Merge remote-tracking branch 'remotes/kraxel/tags/pull-serial-20150519-1' into staging

serial: fix multi-pci card error cleanup.

# gpg: Signature made Tue May 19 11:47:29 2015 BST using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"

* remotes/kraxel/tags/pull-serial-20150519-1:
  serial: fix multi-pci card error cleanup.

Signed-off-by: Peter Maydell <[email protected]>
10 years agoserial: fix multi-pci card error cleanup.
Gerd Hoffmann [Wed, 6 May 2015 10:58:19 +0000 (12:58 +0200)]
serial: fix multi-pci card error cleanup.

Put the number of serial ports into a local variable in
multi_serial_pci_realize, then increment the port count
(pci->ports) as we initialize the serial port cores.

Now pci->ports always holds the number of successfully
initialized ports and we can use multi_serial_pci_exit
to properly cleanup the already initialized bits in case
of a init failure.

https://bugzilla.redhat.com/show_bug.cgi?id=970551

Signed-off-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Paolo Bonzini <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/kraxel/tags/pull-vga-20150519-1' into staging
Peter Maydell [Tue, 19 May 2015 10:47:03 +0000 (11:47 +0100)]
Merge remote-tracking branch 'remotes/kraxel/tags/pull-vga-20150519-1' into staging

hw/display: qomify vga cards

# gpg: Signature made Tue May 19 11:23:09 2015 BST using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"

* remotes/kraxel/tags/pull-vga-20150519-1:
  vga-pci: QOMify
  qxl: QOMify
  cirrus_vga: QOMify

Signed-off-by: Peter Maydell <[email protected]>
10 years agovga-pci: QOMify
Gonglei [Tue, 12 May 2015 09:27:08 +0000 (17:27 +0800)]
vga-pci: QOMify

Signed-off-by: Gonglei <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agoqxl: QOMify
Gonglei [Tue, 12 May 2015 09:27:10 +0000 (17:27 +0800)]
qxl: QOMify

Signed-off-by: Gonglei <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agocirrus_vga: QOMify
Gonglei [Tue, 12 May 2015 09:27:09 +0000 (17:27 +0800)]
cirrus_vga: QOMify

QOMify pci-cirrus-vga like isa-cirrus-vga device.

Signed-off-by: Gonglei <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-cocoa-20150519' into staging
Peter Maydell [Tue, 19 May 2015 09:25:59 +0000 (10:25 +0100)]
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-cocoa-20150519' into staging

cocoa queue:
 * fix various issues with full screen in the OSX UI
 * set an icon for our binary file
 * add entries to the View menu for QEMU consoles
 * fix various warnings that are produced when building on 10.10
   (largely deprecated interfaces)

# gpg: Signature made Tue May 19 09:17:23 2015 BST using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <[email protected]>"

* remotes/pmaydell/tags/pull-cocoa-20150519:
  ui/cocoa: Add console items to the View menu
  ui/cocoa: Avoid deprecated NSOKButton/NSCancelButton constants
  ui/cocoa: Don't use NSWindow useOptimizedDrawing on OSX 10.10 and up
  ui/cocoa: Declare that QemuCocoaAppController implements NSApplicationDelegate
  ui/cocoa: openPanelDidEnd returnCode should be NSInteger, not int
  ui/cocoa: Remove compatibility ifdefs for OSX 10.4
  ui/cocoa: Drop tests for CGImageCreateWithImageInRect support
  Makefile.target: set icon for binary file on Mac OS X
  ui/cocoa: Make -full-screen option work on Mac OS X
  ui/cocoa: Fix several full screen issues on Mac OS X

Signed-off-by: Peter Maydell <[email protected]>
10 years agoui/cocoa: Add console items to the View menu
Programmingkid [Tue, 19 May 2015 08:11:18 +0000 (09:11 +0100)]
ui/cocoa: Add console items to the View menu

Add any console that is available to the current emulator as a
menu item under the View menu.

Signed-off-by: John Arbuckle <[email protected]>
[PMM: Adjusted to apply after zoom-to-fit menu item was added;
 create the View menu at the same time as all the others, and only
 add the dynamically-determined items to it later]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoui/cocoa: Avoid deprecated NSOKButton/NSCancelButton constants
Peter Maydell [Tue, 19 May 2015 08:11:18 +0000 (09:11 +0100)]
ui/cocoa: Avoid deprecated NSOKButton/NSCancelButton constants

In OSX 10.10, the NSOKButton and NSCancelButton constants are deprecated
and provoke compiler warnings. Avoid them by using the
NSFileHandlingPanelCancelButton and NSFileHandlingPanelOKButton constants
instead. These are the documented correct constants for the 10.6-and-up
beginSheetModalForWindow API we use. We also use the same method for
the pre-10.6 compatibility code path, but conveniently the constant
values are the same and the constant names have been present since 10.0.
Preferring the constant names that match the non-legacy API makes more
sense anyway.

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1431296361[email protected]

10 years agoui/cocoa: Don't use NSWindow useOptimizedDrawing on OSX 10.10 and up
Peter Maydell [Tue, 19 May 2015 08:11:18 +0000 (09:11 +0100)]
ui/cocoa: Don't use NSWindow useOptimizedDrawing on OSX 10.10 and up

Starting in OSX 10.10, NSWindow useOptimizedDrawing is deprecated, so
don't use it there.

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1431296361[email protected]

10 years agoui/cocoa: Declare that QemuCocoaAppController implements NSApplicationDelegate
Peter Maydell [Tue, 19 May 2015 08:11:18 +0000 (09:11 +0100)]
ui/cocoa: Declare that QemuCocoaAppController implements NSApplicationDelegate

Our class QemuCocoaAppController implements the NSApplicationDelegate
interface, and we pass an object of this class to [NSApp setDelegate].
However, we weren't declaring in the class definition that we implemented
this interface; in OSX 10.10 this provokes the following (slighly
misleading) warning:
ui/cocoa.m:1031:24: warning: sending 'QemuCocoaAppController *' to parameter of
      incompatible type 'id<NSFileManagerDelegate>'
    [NSApp setDelegate:appController];
                       ^~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSFileManager.h:109:47:
note: passing argument to parameter 'delegate' here
@property (assign) id <NSFileManagerDelegate> delegate NS_AVAILABLE(10_5,
2_0);
                                              ^

Annoyingly, this interface wasn't formally defined until OSX 10.6, so we
have to surround the relevant part of the @interface line with an ifdef.

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1431296361[email protected]

10 years agoui/cocoa: openPanelDidEnd returnCode should be NSInteger, not int
Peter Maydell [Tue, 19 May 2015 08:11:18 +0000 (09:11 +0100)]
ui/cocoa: openPanelDidEnd returnCode should be NSInteger, not int

The type for openPanelDidEnd's returnCode argument should be NSInteger,
not int. This only matters for the OSX 10.5 code path where we pass
the method directly to an OSX function to call.

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1431296361[email protected]

10 years agoui/cocoa: Remove compatibility ifdefs for OSX 10.4
Peter Maydell [Tue, 19 May 2015 08:11:17 +0000 (09:11 +0100)]
ui/cocoa: Remove compatibility ifdefs for OSX 10.4

Remove compatibility ifdefs that work around OSX 10.4 not providing
various typedefs and functions.

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1431296361[email protected]

10 years agoui/cocoa: Drop tests for CGImageCreateWithImageInRect support
Peter Maydell [Tue, 19 May 2015 08:11:17 +0000 (09:11 +0100)]
ui/cocoa: Drop tests for CGImageCreateWithImageInRect support

The code that tries to test at both compiletime and runtime
for whether CGImageCreateWithImageInRect is supported provokes
a compile warning on OSX 10.3:

ui/cocoa.m:378:13: warning: comparison of function 'CGImageCreateWithImageInRect'
      equal to a null pointer is always false[-Wtautological-pointer-compare]
        if (CGImageCreateWithImageInRect == NULL) { // test if "CGImageCreateWithImageInRect" is
supported on host at runtime
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~

The simplest way to deal with this is just to drop this code,
since we don't in practice support OSX 10.4 anyway. (10.5 was
released in 2007 and is the last PPC version, so is the earliest
we really need to continue to support at all.)

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 1431296361[email protected]

10 years agoMakefile.target: set icon for binary file on Mac OS X
Programmingkid [Tue, 19 May 2015 08:11:17 +0000 (09:11 +0100)]
Makefile.target: set icon for binary file on Mac OS X

Implements setting the icon for the binary file in Mac OS X.

Signed-off-by: John Arbuckle <[email protected]>
[PMM: tweaked makefile to use $@ and quiet-command]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoui/cocoa: Make -full-screen option work on Mac OS X
Programmingkid [Tue, 19 May 2015 08:11:17 +0000 (09:11 +0100)]
ui/cocoa: Make -full-screen option work on Mac OS X

This patch makes the -full-screen option actually instruct QEMU to
enter fullscreen at startup, on Mac OS X.

Signed-off-by: John Arbuckle <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
10 years agoui/cocoa: Fix several full screen issues on Mac OS X
Programmingkid [Tue, 19 May 2015 08:11:17 +0000 (09:11 +0100)]
ui/cocoa: Fix several full screen issues on Mac OS X

This patch makes several changes:
- Minimizes distorted full screen display by respecting aspect
ratios.
- Makes full screen mode available on Mac OS 10.7 and higher.
- Allows user to decide if video should be stretched to fill the
screen, using a menu item called "Zoom To Fit".
- Hides the normalWindow so it won't show up in full screen mode.
- Allows user to exit full screen mode.

Signed-off-by: John Arbuckle <[email protected]>
[PMM: minor whitespace tweaks, remove incorrectly duplicated
 use of 'f' menu accelerator key]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20150518-3' into...
Peter Maydell [Mon, 18 May 2015 19:23:16 +0000 (20:23 +0100)]
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20150518-3' into staging

target-arm:
 * New board model: xlnx-ep108
 * Some more preparation for AArch64 EL2/EL3
 * Fix bugs in access checking for generic counter registers
 * Remove a stray '+' sign

# gpg: Signature made Mon May 18 20:13:05 2015 BST using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <[email protected]>"

* remotes/pmaydell/tags/pull-target-arm-20150518-3: (21 commits)
  target-arm: Remove unneeded '+'
  target-arm: Correct accessfn for CNTV_TVAL_EL0
  target-arm: Correct accessfn for CNTP_{CT}VAL_EL0
  target-arm: Add WFx syndrome function
  target-arm: Add EL3 and EL2 TCR checking
  target-arm: Add TTBR regime function and use
  linux-user/arm: Correct TARGET_NR_timerfd to TARGET_NR_timerfd_create
  arm: xlnx-ep108: Add bootloading
  arm: xlnx-ep108: Add external RAM
  arm: Add xlnx-ep108 machine
  arm: xlnx-zynqmp: Add UART support
  char: cadence_uart: Split state struct and type into header
  char: cadence_uart: Clean up variable names
  arm: xlnx-zynqmp: Add GEM support
  net: cadence_gem: Split state struct and type into header
  net: cadence_gem: Clean up variable names
  arm: xlnx-zynqmp: Connect CPU Timers to GIC
  arm: xlnx-zynqmp: Add GIC
  arm: Introduce Xilinx ZynqMP SoC
  target-arm: cpu64: Add support for Cortex-A53
  ...

Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: Remove unneeded '+'
Edgar E. Iglesias [Wed, 13 May 2015 06:52:28 +0000 (16:52 +1000)]
target-arm: Remove unneeded '+'

Signed-off-by: Edgar E. Iglesias <[email protected]>
Reviewed-by: Alex BennĂ©e <[email protected]>
Message-id: 1431499963[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: Correct accessfn for CNTV_TVAL_EL0
Edgar E. Iglesias [Wed, 13 May 2015 06:52:27 +0000 (16:52 +1000)]
target-arm: Correct accessfn for CNTV_TVAL_EL0

Signed-off-by: Edgar E. Iglesias <[email protected]>
Message-id: 1431499963[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: Correct accessfn for CNTP_{CT}VAL_EL0
Edgar E. Iglesias [Wed, 13 May 2015 06:52:26 +0000 (16:52 +1000)]
target-arm: Correct accessfn for CNTP_{CT}VAL_EL0

Signed-off-by: Edgar E. Iglesias <[email protected]>
Message-id: 1431499963[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: Add WFx syndrome function
Greg Bellows [Wed, 22 Apr 2015 17:09:20 +0000 (12:09 -0500)]
target-arm: Add WFx syndrome function

Adds a utility function for creating a WFx exception syndrome

Signed-off-by: Greg Bellows <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Acked-by: Edgar E. Iglesias <[email protected]>
Message-id: 1429722561[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: Add EL3 and EL2 TCR checking
Greg Bellows [Wed, 22 Apr 2015 17:09:19 +0000 (12:09 -0500)]
target-arm: Add EL3 and EL2 TCR checking

Updated get_phys_addr_lpae to check the appropriate TTBCR/TCR depending on the
current EL. Support includes using the different TCR format as well as checks to
insure TTBR1 is not used when in EL2 or EL3.

Signed-off-by: Greg Bellows <[email protected]>
Acked-by: Edgar E. Iglesias <[email protected]>
Message-id: 1429722561[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: Add TTBR regime function and use
Greg Bellows [Wed, 22 Apr 2015 17:09:18 +0000 (12:09 -0500)]
target-arm: Add TTBR regime function and use

Add a utility function for choosing the correct TTBR system register based on
the specified MMU index. Add use of function on physical address lookup.

Signed-off-by: Greg Bellows <[email protected]>
Acked-by: Edgar E. Iglesias <[email protected]>
Message-id: 1429722561[email protected]
[PMM: fixed regime_ttbr() return type to be uint64_t]
Signed-off-by: Peter Maydell <[email protected]>
10 years agolinux-user/arm: Correct TARGET_NR_timerfd to TARGET_NR_timerfd_create
Timothy Baldwin [Wed, 8 Apr 2015 20:40:52 +0000 (21:40 +0100)]
linux-user/arm: Correct TARGET_NR_timerfd to TARGET_NR_timerfd_create

Misspelled system call name in macro was causing timerfd_create not
to be supported for the ARM target.

Signed-off-by: Timothy Edward Baldwin <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: xlnx-ep108: Add bootloading
Peter Crosthwaite [Fri, 15 May 2015 02:23:30 +0000 (19:23 -0700)]
arm: xlnx-ep108: Add bootloading

Add bootloader support using standard ARM bootloader.

Reviewed-by: Alistair Francis <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: b829abaf2b70d02b28e79301553cbd74afc416a1.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: xlnx-ep108: Add external RAM
Peter Crosthwaite [Fri, 15 May 2015 02:23:27 +0000 (19:23 -0700)]
arm: xlnx-ep108: Add external RAM

Zynq MPSoC supports external DDR RAM. Add a RAM at 0 to the model.

Reviewed-by: Alistair Francis <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 2c25e2a4198402a6477aef2975d5df7c415dd341.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: Add xlnx-ep108 machine
Peter Crosthwaite [Fri, 15 May 2015 02:23:24 +0000 (19:23 -0700)]
arm: Add xlnx-ep108 machine

Add a machine model for the Xilinx ZynqMP SoC EP108 board.

Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 3896b34c862f370dc0679e4428bf3848d1f9f83c.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: xlnx-zynqmp: Add UART support
Peter Crosthwaite [Fri, 15 May 2015 02:23:21 +0000 (19:23 -0700)]
arm: xlnx-zynqmp: Add UART support

There are 2x Cadence UARTs in Zynq MP. Add them.

Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: e30795536f77599fabc1052278d846ccd52322e2.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agochar: cadence_uart: Split state struct and type into header
Peter Crosthwaite [Fri, 15 May 2015 02:23:18 +0000 (19:23 -0700)]
char: cadence_uart: Split state struct and type into header

Create a new header for Cadence UART to allow using the device with
modern SoC programming conventions. The state struct needs to be
visible to embed the device in SoC containers.

Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 46a0fbd45b6b205f54c4a8c778deb75c77f8abdf.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agochar: cadence_uart: Clean up variable names
Peter Crosthwaite [Fri, 15 May 2015 02:23:15 +0000 (19:23 -0700)]
char: cadence_uart: Clean up variable names

Clean up some variable names in preparation for migrating the state struct
and type cast macro to a public header. The acronym "UART" on it's own is
not specific enough to be used in a more global namespace so preface with
"cadence". Fix the capitalisation of "uart" in the state type while touching
the typename. Preface macros used by the state struct itself with CADENCE_UART
so they don't conflict in namespace either.

Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 3812b7426c338beae9e082557f3524a99310ddc6.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: xlnx-zynqmp: Add GEM support
Peter Crosthwaite [Fri, 15 May 2015 02:23:12 +0000 (19:23 -0700)]
arm: xlnx-zynqmp: Add GEM support

There are 4x Cadence GEMs in ZynqMP. Add them.

Reviewed-by: Peter Maydell <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 7d3e68e5495d145255f0ee567046415e3a26d67e.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agonet: cadence_gem: Split state struct and type into header
Peter Crosthwaite [Fri, 15 May 2015 02:23:09 +0000 (19:23 -0700)]
net: cadence_gem: Split state struct and type into header

Create a new header for Cadence GEM to allow using the device with
modern SoC programming conventions. The state struct needs to be
visible to embed the device in SoC containers.

Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: a98b5df6440c5bff8f813a26bb53ce1cfefb4c4c.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agonet: cadence_gem: Clean up variable names
Peter Crosthwaite [Fri, 15 May 2015 02:23:07 +0000 (19:23 -0700)]
net: cadence_gem: Clean up variable names

Cleanup some variable names in preparation for migrating the state
struct and type cast macro to a public header. The acronym "GEM" on
its own is not specific enough to be used in a more global namespace
so preface with "cadence". Fix the capitalisation of "gem" in the
state type while touching the typename. Also preface the GEM_MAXREG
macro as this will need to migrate to public header.

Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Alex BennĂ©e <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Tested-by: Alistair Francis <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 8e2b0687b3a7b7a3fde5ba2f3bee6f3b911e84ef.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: xlnx-zynqmp: Connect CPU Timers to GIC
Peter Crosthwaite [Fri, 15 May 2015 02:23:04 +0000 (19:23 -0700)]
arm: xlnx-zynqmp: Connect CPU Timers to GIC

Connect the GPIO outputs from the individual CPUs for the timers to the
GIC.

Tested-by: Alistair Francis <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: a7866a4f0c903c91fa3034210b4d2879aa4bfcb9.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: xlnx-zynqmp: Add GIC
Peter Crosthwaite [Fri, 15 May 2015 02:23:01 +0000 (19:23 -0700)]
arm: xlnx-zynqmp: Add GIC

Add the GIC and connect IRQ outputs to the CPUs. The GIC regions are
under-decoded through a 64k address region so implement aliases
accordingly.

Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 5853189965728d676106d9e94e76b9bb87981cb5.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoarm: Introduce Xilinx ZynqMP SoC
Peter Crosthwaite [Fri, 15 May 2015 02:22:58 +0000 (19:22 -0700)]
arm: Introduce Xilinx ZynqMP SoC

With quad Cortex-A53 CPUs.

Use SMC PSCI, with the standard policy of secondaries starting in
power-off.

Tested-by: Alistair Francis <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: a16202a6c7b79e446e5289d38cb18d2ee4b897a0.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: cpu64: Add support for Cortex-A53
Peter Crosthwaite [Fri, 15 May 2015 02:22:55 +0000 (19:22 -0700)]
target-arm: cpu64: Add support for Cortex-A53

Add the ARM Cortex-A53 processor definition. Similar to A57, but with
different L1 I cache policy, phys addr size and different cache
geometries. The cache sizes is implementation configurable, but use
these values (from Xilinx Zynq MPSoC) as a default until cache size
configurability is added.

Acked-by: Edgar E. Iglesias <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: db439ff834cf0431bc192b05272a3b28fe2045d0.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agotarget-arm: cpu64: generalise name of A57 regs
Peter Crosthwaite [Fri, 15 May 2015 02:22:52 +0000 (19:22 -0700)]
target-arm: cpu64: generalise name of A57 regs

Rename some A57 CP register variables in preparation for support for
Cortex A53. Use "a57_a53" to describe the shareable features. Some of
the CP15 registers (such as ACTLR) are specific to implementation, but
we currently just RAZ them so continue with that as the policy for both
A57 and A53 processors under a shared definition.

Reviewed-by: Edgar E. Iglesias <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Crosthwaite <[email protected]>
Message-id: 5a5f957994677d91435190b3be1cefa6f657e274.1431381507[email protected]
Signed-off-by: Peter Maydell <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-05-15' into staging
Peter Maydell [Fri, 15 May 2015 16:51:20 +0000 (17:51 +0100)]
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-05-15' into staging

qapi: Fix qapi mangling of downstream names, and more

# gpg: Signature made Fri May 15 17:41:31 2015 BST using RSA key ID EB918653
# gpg: Good signature from "Markus Armbruster <[email protected]>"
# gpg:                 aka "Markus Armbruster <[email protected]>"

* remotes/armbru/tags/pull-qapi-2015-05-15: (26 commits)
  qapi: Inline gen_command_decl_prologue(), gen_command_def_prologue()
  qapi: Drop pointless flush() before close()
  qapi: Factor open_output(), close_output() out of generators
  qapi: Turn generators' mandatory option -i into an argument
  qapi: Fix generators to report command line errors decently
  qapi: Factor parse_command_line() out of the generators
  qapi: qapi-commands.py option --type is unused, drop it
  qapi: qapi-event.py option -b does nothing, drop it
  tests: Add missing dependencies on $(qapi-py)
  qapi: Support downstream events and commands
  qapi: Support downstream alternates
  qapi: Support downstream flat unions
  qapi: Support downstream simple unions
  qapi: Support downstream structs
  qapi: Support downstream enums
  qapi: Make c_type() consistently convert qapi names
  qapi: Tidy c_type() logic
  qapi: Move camel_to_upper(), c_enum_const() to closely related code
  qapi: Use c_enum_const() in generate_alternate_qtypes()
  qapi: Simplify c_enum_const()
  ...

Signed-off-by: Peter Maydell <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/rth/tags/pull-tcg-20150514' into staging
Peter Maydell [Fri, 15 May 2015 15:02:08 +0000 (16:02 +0100)]
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20150514' into staging

Per-memop alignment

# gpg: Signature made Thu May 14 20:17:27 2015 BST using RSA key ID 4DD0279B
# gpg: Good signature from "Richard Henderson <[email protected]>"
# gpg:                 aka "Richard Henderson <[email protected]>"
# gpg:                 aka "Richard Henderson <[email protected]>"

* remotes/rth/tags/pull-tcg-20150514:
  tcg: Add MO_ALIGN, MO_UNALN
  tcg: Push merged memop+mmu_idx parameter to softmmu routines
  tcg: Merge memop and mmu_idx parameters to qemu_ld/st

Signed-off-by: Peter Maydell <[email protected]>
10 years agotcg: Add MO_ALIGN, MO_UNALN
Richard Henderson [Wed, 13 May 2015 18:25:20 +0000 (11:25 -0700)]
tcg: Add MO_ALIGN, MO_UNALN

These modifiers control, on a per-memory-op basis, whether
unaligned memory accesses are allowed.  The default setting
reflects the target's definition of ALIGNED_ONLY.

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg: Push merged memop+mmu_idx parameter to softmmu routines
Richard Henderson [Wed, 13 May 2015 16:10:33 +0000 (09:10 -0700)]
tcg: Push merged memop+mmu_idx parameter to softmmu routines

The extra information is not yet used but it is now available.
This requires minor changes through all of the tcg backends.

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
10 years agotcg: Merge memop and mmu_idx parameters to qemu_ld/st
Richard Henderson [Tue, 12 May 2015 18:51:44 +0000 (11:51 -0700)]
tcg: Merge memop and mmu_idx parameters to qemu_ld/st

At the tcg opcode level, not at the tcg-op.h generator level.
This requires minor changes through all of the tcg backends,
but none of the cpu translators.

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
10 years agoqapi: Inline gen_command_decl_prologue(), gen_command_def_prologue()
Markus Armbruster [Thu, 2 Apr 2015 12:52:55 +0000 (14:52 +0200)]
qapi: Inline gen_command_decl_prologue(), gen_command_def_prologue()

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: Drop pointless flush() before close()
Markus Armbruster [Thu, 2 Apr 2015 12:49:29 +0000 (14:49 +0200)]
qapi: Drop pointless flush() before close()

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: Factor open_output(), close_output() out of generators
Markus Armbruster [Thu, 2 Apr 2015 12:46:39 +0000 (14:46 +0200)]
qapi: Factor open_output(), close_output() out of generators

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: Turn generators' mandatory option -i into an argument
Markus Armbruster [Thu, 2 Apr 2015 11:32:16 +0000 (13:32 +0200)]
qapi: Turn generators' mandatory option -i into an argument

Mandatory option is silly, and the error handling is missing: the
programs crash when -i isn't supplied.  Make it an argument, and check
it properly.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: Fix generators to report command line errors decently
Markus Armbruster [Thu, 2 Apr 2015 11:17:34 +0000 (13:17 +0200)]
qapi: Fix generators to report command line errors decently

Report to stderr, prefix with the program name.  Also reject
extra arguments.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: Factor parse_command_line() out of the generators
Markus Armbruster [Thu, 2 Apr 2015 11:12:21 +0000 (13:12 +0200)]
qapi: Factor parse_command_line() out of the generators

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: qapi-commands.py option --type is unused, drop it
Markus Armbruster [Thu, 2 Apr 2015 09:41:22 +0000 (11:41 +0200)]
qapi: qapi-commands.py option --type is unused, drop it

Anything but --type sync (which is the default) suppresses output
entirely, which makes no sense.

Dates back to the initial commit c17d990.  Commit message says
"Currently only generators for synchronous qapi/qmp functions are
supported", so maybe output other than "synchronous qapi/qmp" was
planned at the time, to be selected with --type.

Should other kinds of output ever materialize, we can put the option
back.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: qapi-event.py option -b does nothing, drop it
Markus Armbruster [Thu, 2 Apr 2015 09:40:21 +0000 (11:40 +0200)]
qapi: qapi-event.py option -b does nothing, drop it

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agotests: Add missing dependencies on $(qapi-py)
Markus Armbruster [Thu, 2 Apr 2015 11:38:48 +0000 (13:38 +0200)]
tests: Add missing dependencies on $(qapi-py)

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
10 years agoqapi: Support downstream events and commands
Eric Blake [Thu, 14 May 2015 12:51:01 +0000 (06:51 -0600)]
qapi: Support downstream events and commands

Enhance the testsuite to cover downstream events and commands.
Events worked without more tweaks, but commands needed a few final
updates in the generator to mangle names in the appropriate places.
In making those tweaks, it was easier to drop type_visitor() and
inline its actions instead.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Support downstream alternates
Eric Blake [Thu, 14 May 2015 12:51:00 +0000 (06:51 -0600)]
qapi: Support downstream alternates

Enhance the testsuite to cover downstream alternates, including
whether the branch name or type is downstream.  Update the
generator to mangle alternate names in the appropriate places.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Support downstream flat unions
Eric Blake [Thu, 14 May 2015 12:50:59 +0000 (06:50 -0600)]
qapi: Support downstream flat unions

Enhance the testsuite to cover downstream flat unions, including
the base type, discriminator name and type, and branch name and
type.  Update the generator to mangle the union names in the
appropriate places.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Support downstream simple unions
Eric Blake [Thu, 14 May 2015 12:50:58 +0000 (06:50 -0600)]
qapi: Support downstream simple unions

Enhance the testsuite to cover downstream simple unions, including
when a union branch is a downstream name.  Update the generator to
mangle the union names in the appropriate places.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Support downstream structs
Eric Blake [Thu, 14 May 2015 12:50:57 +0000 (06:50 -0600)]
qapi: Support downstream structs

Enhance the testsuite to cover downstream structs, including struct
members and base structs.  Update the generator to mangle the
struct names in the appropriate places.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Support downstream enums
Eric Blake [Thu, 14 May 2015 12:50:56 +0000 (06:50 -0600)]
qapi: Support downstream enums

Enhance the testsuite to cover a downstream enum type and enum
string.  Update the generator to mangle the enum name in the
appropriate places.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Make c_type() consistently convert qapi names
Eric Blake [Thu, 14 May 2015 12:50:55 +0000 (06:50 -0600)]
qapi: Make c_type() consistently convert qapi names

Continuing the string of cleanups for supporting downstream names
containing '.', this patch focuses on ensuring c_type() can
handle a downstream name.  This patch alone does not fix the
places where generator output should be calling this function
but was open-coding things instead, but it gets us a step closer.

In particular, the changes to c_list_type() and type_name() mean
that type_name(FOO) now handles the case when FOO contains '.',
'-', or is a ticklish identifier other than a builtin (builtins
are exempted because ['int'] must remain mapped to 'intList' and
not 'q_intList').  Meanwhile, ['unix'] now maps to 'q_unixList'
rather than 'unixList', to match the fact that 'unix' is ticklish;
however, our naming conventions state that complex types should
start with a capital, so no type name following conventions will
ever have the 'q_' prepended.

Likewise, changes to c_type() mean that c_type(FOO) properly
handles an enum or complex type FOO with '.' or '-' in the
name, or is a ticklish identifier (again, a ticklish identifier
as a type name violates conventions).

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Tidy c_type() logic
Eric Blake [Thu, 14 May 2015 12:50:54 +0000 (06:50 -0600)]
qapi: Tidy c_type() logic

c_type() is designed to be called on both string names and on
array designations, so 'name' is a bit misleading because it
operates on more than strings.  Also, no caller ever passes
an empty string.  Finally, + notation is a bit nicer to read
than '%s' % value for string concatenation.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Move camel_to_upper(), c_enum_const() to closely related code
Markus Armbruster [Thu, 14 May 2015 12:50:53 +0000 (06:50 -0600)]
qapi: Move camel_to_upper(), c_enum_const() to closely related code

Signed-off-by: Markus Armbruster <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
10 years agoqapi: Use c_enum_const() in generate_alternate_qtypes()
Markus Armbruster [Thu, 14 May 2015 12:50:52 +0000 (06:50 -0600)]
qapi: Use c_enum_const() in generate_alternate_qtypes()

Missed in commit b0b5819.

Signed-off-by: Markus Armbruster <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
10 years agoqapi: Simplify c_enum_const()
Markus Armbruster [Thu, 14 May 2015 12:50:51 +0000 (06:50 -0600)]
qapi: Simplify c_enum_const()

Signed-off-by: Markus Armbruster <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
10 years agoqapi: Rename generate_enum_full_value() to c_enum_const()
Markus Armbruster [Thu, 14 May 2015 12:50:50 +0000 (06:50 -0600)]
qapi: Rename generate_enum_full_value() to c_enum_const()

Signed-off-by: Markus Armbruster <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
10 years agoqapi: Rename _generate_enum_string() to camel_to_upper()
Markus Armbruster [Thu, 14 May 2015 12:50:49 +0000 (06:50 -0600)]
qapi: Rename _generate_enum_string() to camel_to_upper()

Signed-off-by: Markus Armbruster <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
10 years agoqapi: Rename identical c_fun()/c_var() into c_name()
Eric Blake [Thu, 14 May 2015 12:50:48 +0000 (06:50 -0600)]
qapi: Rename identical c_fun()/c_var() into c_name()

Now that the two functions are identical, we only need one of them,
and we might as well give it a more descriptive name.  Basically,
the function serves as the translation from a QAPI name into a
(portion of a) C identifier, without regards to whether it is a
variable or function name.

Signed-off-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqapi: Fix C identifiers generated for names containing '.'
Markus Armbruster [Thu, 14 May 2015 12:50:47 +0000 (06:50 -0600)]
qapi: Fix C identifiers generated for names containing '.'

c_fun() maps '.' to '_', c_var() doesn't.  Nothing prevents '.' in
QAPI names that get passed to c_var().

Which QAPI names get passed to c_fun(), to c_var(), or to both is not
obvious.  Names of command parameters and struct type members get
passed to c_var().

c_var() strips a leading '*', but this cannot happen.  c_fun()
doesn't.

Fix c_var() to work exactly like c_fun().

Perhaps they should be replaced by a single mapping function.

Signed-off-by: Markus Armbruster <[email protected]>
[add 'import string']
Signed-off-by: Eric Blake <[email protected]>
Reviewed-by: Alberto Garcia <[email protected]>
10 years agodoc: fix qmp event type
Michael S. Tsirkin [Mon, 11 May 2015 15:17:49 +0000 (17:17 +0200)]
doc: fix qmp event type

Event name for hot unplug errors was wrong.
Make doc match code.

Cc: Zhu Guihua <[email protected]>
Reported-by: Eric Blake <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoqmp: Add qom_path field to query-cpus command
Eduardo Habkost [Fri, 8 May 2015 19:04:22 +0000 (16:04 -0300)]
qmp: Add qom_path field to query-cpus command

This will allow clients to query additional information directly using
qom-get on the CPU objects.

Reviewed-by: David Gibson <[email protected]>
Reviewed-by: Andreas Färber <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/agraf/tags/signed-s390-for-upstream' into staging
Peter Maydell [Wed, 13 May 2015 15:06:07 +0000 (16:06 +0100)]
Merge remote-tracking branch 'remotes/agraf/tags/signed-s390-for-upstream' into staging

Patch queue for s390 - 2015-05-13

A few TCG fixes for the s390x target. Nothing special, but with these
applied I can run most of the SLE12 binaries in Linux-user emulation.

# gpg: Signature made Wed May 13 13:49:25 2015 BST using RSA key ID 03FEDC60
# gpg: Good signature from "Alexander Graf <[email protected]>"
# gpg:                 aka "Alexander Graf <[email protected]>"

* remotes/agraf/tags/signed-s390-for-upstream:
  s390x: Add interlocked access facility 1 instructions
  s390x: Add some documentation in opcode list
  s390x: Fix stoc direction

Signed-off-by: Peter Maydell <[email protected]>
10 years agoMerge remote-tracking branch 'remotes/jnsnow/tags/ide-cve-pull-request' into staging
Peter Maydell [Wed, 13 May 2015 12:57:44 +0000 (13:57 +0100)]
Merge remote-tracking branch 'remotes/jnsnow/tags/ide-cve-pull-request' into staging

# gpg: Signature made Wed May 13 12:52:19 2015 BST using RSA key ID AAFC390E
# gpg: Good signature from "John Snow (John Huston) <[email protected]>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: FAEB 9711 A12C F475 812F  18F2 88A9 064D 1835 61EB
#      Subkey fingerprint: F9B7 ABDB BCAC DF95 BE76  CBD0 7DEF 8106 AAFC 390E

* remotes/jnsnow/tags/ide-cve-pull-request:
  fdc: force the fifo access to be in bounds of the allocated buffer

Signed-off-by: Peter Maydell <[email protected]>
10 years agos390x: Add interlocked access facility 1 instructions
Alexander Graf [Fri, 8 May 2015 01:07:53 +0000 (03:07 +0200)]
s390x: Add interlocked access facility 1 instructions

We're currently missing all instructions defined by the "interlocked-access
facility 1" which is part of zEC12. This patch implements all of them except
for LPD and LPDG.

Signed-off-by: Alexander Graf <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
10 years agos390x: Add some documentation in opcode list
Alexander Graf [Fri, 8 May 2015 01:06:41 +0000 (03:06 +0200)]
s390x: Add some documentation in opcode list

I find it really hard to grasp what each field in the opcode list means.
Slowly walking through its semantics myself, I figured I'd write a small
summary at the top of the file to make life easier for me and whoever
looks at the file next.

Signed-off-by: Alexander Graf <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
This page took 0.090449 seconds and 4 git commands to generate.