[Xen-devel] [PATCH v4 13/43] misc: remove duplicated includes

2017-12-14 Thread Philippe Mathieu-Daudé
exec: housekeeping (funny since 02d0e095031) applied using ./scripts/clean-includes Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Peter Maydell Acked-by: Cornelia Huck Reviewed-by: Anthony PERARD --- accel/tcg/translate-all.c | 1 - exec.c | 3

[Xen-devel] [PATCH v4 24/43] misc: remove old i386 dependency

2017-12-14 Thread Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth Reviewed-by: Anthony PERARD --- hw/audio/pcspk.c| 1 - hw/i386/xen/xen_platform.c | 1 - hw/isa/vt82c686.c | 1 - hw/misc/ivshmem.c | 1 - hw/misc/sga.c

Re: [Xen-devel] [Qemu-devel] [PATCH 2/3] machine: Eliminate unnecessary stringify() usage

2019-01-08 Thread Philippe Mathieu-Daudé
> .driver = "fw_cfg_mem", > .property = "x-file-slots", > - .value= stringify(0x10), > +.value= "0x10", [...] Lovely. Reviewed-by: Philippe Mathieu-Daudé ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [Qemu-devel] [PATCH 3/3] machine: Use shorter format for GlobalProperty arrays

2019-01-08 Thread Philippe Mathieu-Daudé
On 1/7/19 8:30 PM, Eduardo Habkost wrote: > Instead of verbose arrays with 4 lines for each entry, make each > entry take only one line. This makes long arrays that couldn't > fit in the screen become short and readable. And we'll thank you for the next git diff :) __

[Xen-devel] [PATCH] xen: Fix format string

2019-01-16 Thread Philippe Mathieu-Daudé
format=] xen_device_backend_printf(xendev, "sectors", "%lu", ^ blk_getlength(conf->blk) / conf->logical_block_size); blk_getlength() returns an

Re: [Xen-devel] [PATCH] hw/block/xen: use proper format string for printing sectors

2019-01-16 Thread Philippe Mathieu-Daudé
ng on the host architecture >> which causes builds like the debian-armhf-cross build to fail. Use the >> correct PRi64 format string. >> >> Signed-off-by: Alex Bennée > > This does the same thing as "xen: Fix format string" from Philippe, but this > vari

Re: [Xen-devel] [Qemu-devel] [PATCH] configure: Don't add Xen's libs to LDFLAGS

2019-01-21 Thread Philippe Mathieu-Daudé
ags $xen_pc)" > libs_softmmu="$($pkg_config --libs $xen_pc) $libs_softmmu" > -LDFLAGS="$($pkg_config --libs $xen_pc) $LDFLAGS" >else > > xen_libs="-lxenstore -lxenctrl -lxenguest" > Reviewed-by: Philippe Mathieu-Daudé ___

Re: [Xen-devel] [Qemu-devel] [PATCH v6 00/26] Invert Endian bit in SPARCv9 MMU TTE

2019-08-07 Thread Philippe Mathieu-Daudé
On 8/7/19 10:23 AM, tony.ngu...@bt.com wrote: [...] > v3: > - Like v1, the entire TCGMemOp enum is now MemOp. > - MemOp target dependant attributes are conditional upon NEED_CPU_H > > v4: > - Added Paolo Bonzini as include/exec/memop.h maintainer > > v5: > - Improved commit messages to clarify ho

Re: [Xen-devel] [Qemu-devel] [PATCH v6 00/26] Invert Endian bit in SPARCv9 MMU TTE

2019-08-07 Thread Philippe Mathieu-Daudé
On 8/7/19 2:41 PM, tony.ngu...@bt.com wrote: > On 8/7/19 8:37 PM, Philippe Mathieu-Daudé wrote: > >> I'm confused I think I already reviewed various patches of your previous > ​> series but don't see my Reviewed-by tags.​> > Apologies Philippe! I am the con

Re: [Xen-devel] [Qemu-devel] [PATCH v7 00/42] Invert Endian bit in SPARCv9 MMU TTE

2019-08-16 Thread Philippe Mathieu-Daudé
Hi Tony, On 8/16/19 8:28 AM, tony.ngu...@bt.com wrote: > This patchset implements the IE (Invert Endian) bit in SPARCv9 MMU TTE. > > v7: [...] > - Re-declared many native endian devices as little or big endian. This is why > v7 has +16 patches. Why are you doing that? What is the rational? An

Re: [Xen-devel] [Qemu-devel] [PATCH v7 24/42] hw/isa: Declare device little or big endian

2019-08-16 Thread Philippe Mathieu-Daudé
On 8/16/19 9:34 AM, tony.ngu...@bt.com wrote: > For each device declared with DEVICE_NATIVE_ENDIAN, find the set of > targets from the set of target/hw/*/device.o. > > If the set of targets are all little or all big endian, re-declare > the device endianness as DEVICE_LITTLE_ENDIAN or DEVICE_BIG_E

Re: [Xen-devel] [Qemu-devel] [PATCH v7 25/42] hw/misc: Declare device little or big endian

2019-08-16 Thread Philippe Mathieu-Daudé
On 8/16/19 9:34 AM, tony.ngu...@bt.com wrote: > For each device declared with DEVICE_NATIVE_ENDIAN, find the set of > targets from the set of target/hw/*/device.o. > > If the set of targets are all little or all big endian, re-declare > the device endianness as DEVICE_LITTLE_ENDIAN or DEVICE_BIG_E

Re: [Xen-devel] [Qemu-devel] [PATCH v7 27/42] hw/pci-host: Declare device little or big endian

2019-08-16 Thread Philippe Mathieu-Daudé
On 8/16/19 9:35 AM, tony.ngu...@bt.com wrote: > For each device declared with DEVICE_NATIVE_ENDIAN, find the set of > targets from the set of target/hw/*/device.o. > > If the set of targets are all little or all big endian, re-declare > the device endianness as DEVICE_LITTLE_ENDIAN or DEVICE_BIG_E

Re: [Xen-devel] [Qemu-devel] [PATCH v7 11/42] memory: Access MemoryRegion with MemOp

2019-08-18 Thread Philippe Mathieu-Daudé
On 8/16/19 9:30 AM, tony.ngu...@bt.com wrote: > Convert memory_region_dispatch_{read|write} operand "unsigned size" > into a "MemOp op". > > Signed-off-by: Tony Nguyen > Reviewed-by: Richard Henderson > --- >  include/exec/memop.h  | 20 ++-- >  include/exec/memory.h |  9 +---

Re: [Xen-devel] [Qemu-devel] [PATCH 1/3] dataplane/xen-block: remove dead code

2019-02-15 Thread Philippe Mathieu-Daudé
On 2/15/19 5:25 PM, Paul Durrant wrote: > The if() statement is clearly bogus (dead code which should have been > cleaned up when grant mapping was removed). "... was removed in 06454c24ad)." > > Spotted by Coverity: CID 1398635 > > While in the neighbourhood, add a missing 'fall through' annot

[Xen-devel] [PATCH v3 03/25] chardev/wctablet: Use unsigned type to hold unsigned value

2019-02-19 Thread Philippe Mathieu-Daudé
TabletChardev::query is an array of uint8_t. Use the same type to hold it (this also silent a -Wsign-conversion warning in the trace function). Signed-off-by: Philippe Mathieu-Daudé --- chardev/trace-events | 2 +- chardev/wctablet.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions

[Xen-devel] [PATCH v3 01/25] chardev: Simplify IOWatchPoll::fd_can_read as a GSourceFunc

2019-02-19 Thread Philippe Mathieu-Daudé
IOWatchPoll::fd_can_read() really is a GSourceFunc type, it simply returns a boolean value. Update the backends to return a boolean, whether there is data to read from the source or not. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daudé --- chardev/char-fd.c | 4

[Xen-devel] [PATCH v3 00/25] chardev: Convert qemu_chr_write() to take a size_t argument

2019-02-19 Thread Philippe Mathieu-Daudé
https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg02396.html v1: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg02200.html (from Prasad J Pandit) Changes requested by Paolo: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg02294.html Please review, Phil. Philippe Mathieu-Daud

[Xen-devel] [PATCH v3 02/25] chardev: Assert IOCanReadHandler can not be negative

2019-02-19 Thread Philippe Mathieu-Daudé
The backend should not return a negative length to read. We will later change the prototype of IOCanReadHandler to return an unsigned length. Meanwhile make sure the return length is positive. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daudé --- chardev/char.c | 5 - 1

[Xen-devel] [PATCH v3 04/25] chardev: Let qemu_chr_be_can_write() return a size_t types

2019-02-19 Thread Philippe Mathieu-Daudé
In the previous commit we added an assert to be sure than qemu_chr_be_can_write() will never return a negative value. We can now change its prototype to return a size_t. Adapt the backends accordingly. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daudé --- chardev/baum.c

[Xen-devel] [PATCH v3 06/25] gdbstub: Use size_t to hold GDBState::last_packet_len

2019-02-19 Thread Philippe Mathieu-Daudé
sense to use size_t to hold last_packet_len values. Signed-off-by: Philippe Mathieu-Daudé --- gdbstub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdbstub.c b/gdbstub.c index 76eca3bb7e..69340d7cd1 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -323,7 +323,7 @@ typedef st

[Xen-devel] [PATCH v3 05/25] gdbstub: Use size_t for strlen() return value

2019-02-19 Thread Philippe Mathieu-Daudé
Since strlen() returns an unsigned value, it is pointless to convert it to a signed one. Use size_t to hold its return value. Signed-off-by: Philippe Mathieu-Daudé --- gdbstub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdbstub.c b/gdbstub.c index bc774ae992

[Xen-devel] [PATCH v3 07/25] gdbstub: Let put_buffer() use size_t

2019-02-19 Thread Philippe Mathieu-Daudé
All callers provide a size_t argument, we can safely use size_t for this function. Signed-off-by: Philippe Mathieu-Daudé --- gdbstub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 69340d7cd1..860e9bb7c7 100644 --- a/gdbstub.c +++ b

[Xen-devel] [PATCH v3 08/25] ui/gtk: Remove pointless cast

2019-02-19 Thread Philippe Mathieu-Daudé
The 'size' value is of type 'guint' which is already unsigned. Remove the useless cast. Signed-off-by: Philippe Mathieu-Daudé --- ui/gtk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/gtk.c b/ui/gtk.c index 949b143e4e..b5879fdece 100644 --- a/ui/

[Xen-devel] [PATCH v3 12/25] xen: Let buffer_append() return the size consumed

2019-02-19 Thread Philippe Mathieu-Daudé
The buffer.size and buffer.consumed fields are only updated within the buffer_append() body. We can simply let buffer_append() return the difference (the buffer consumed). Signed-off-by: Philippe Mathieu-Daudé --- hw/char/xen_console.c | 13 - 1 file changed, 8 insertions(+), 5

[Xen-devel] [RFC PATCH v3 13/25] xen: Let buffer_append() return a size_t

2019-02-19 Thread Philippe Mathieu-Daudé
To the Xen team: this is not trivial to me to demonstrate this assertion can never happen, but then the whole series is justified and I can convert qemu_chr_fe_write() to use size_t argument. Can you help me here? Signed-off-by: Philippe Mathieu-Daudé --- hw/char/xen_console.c | 1 + 1 file

[Xen-devel] [PATCH v3 09/25] vhost-user: Express sizeof with size_t

2019-02-19 Thread Philippe Mathieu-Daudé
VHOST_USER_HDR_SIZE uses offsetof(), thus is an expression of type size_t. Update the format string accordingly. Signed-off-by: Philippe Mathieu-Daudé --- hw/virtio/vhost-user.c | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/hw/virtio/vhost-user.c b/hw/virtio

[Xen-devel] [PATCH v3 15/25] spapr-vty: Let vty_putchars() use size_t

2019-02-19 Thread Philippe Mathieu-Daudé
Both callers (h_put_term_char and rtas_display_character) use an unsigned value. Signed-off-by: Philippe Mathieu-Daudé --- hw/char/spapr_vty.c| 2 +- include/hw/ppc/spapr_vio.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/char/spapr_vty.c b/hw/char

[Xen-devel] [PATCH v3 10/25] usb-redir: Verify usbredirparser_write get called with positive count

2019-02-19 Thread Philippe Mathieu-Daudé
The usbredirparser_write handler should never be called with a negative size payload, return an error if this is not the case. Now that we are sure the 'count' value is positive, make it obvious by casting it to a size_t. Signed-off-by: Philippe Mathieu-Daudé --- hw/usb/redirect.c | 6

[Xen-devel] [PATCH v3 14/25] virtio-serial: Let VirtIOSerialPortClass::have_data() use size_t

2019-02-19 Thread Philippe Mathieu-Daudé
Both callers in hw/char/virtio-serial-bus.c provide unsigned values, even the trace event display an unsigned value. Convert the have_data() handler to take an unsigned value. Signed-off-by: Philippe Mathieu-Daudé --- It is funny/scary that there are big comments about how to treat errors to set

[Xen-devel] [PATCH v3 16/25] tpm: Use size_t to hold sizes

2019-02-19 Thread Philippe Mathieu-Daudé
Avoid to use a signed type to hold an unsigned value. Signed-off-by: Philippe Mathieu-Daudé --- hw/tpm/tpm_emulator.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/tpm/tpm_emulator.c b/hw/tpm/tpm_emulator.c index 70f4b10284..931e56f6ed 100644 --- a/hw/tpm

[Xen-devel] [PATCH v3 17/25] net/filter-mirror: Use size_t

2019-02-19 Thread Philippe Mathieu-Daudé
Since iov_size() returns a size_t, no need to use a signed type. Signed-off-by: Philippe Mathieu-Daudé --- net/filter-mirror.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 3a61cf21e8..97b52d0544 100644 --- a/net/filter

[Xen-devel] [PATCH v3 11/25] xen: Let xencons_send() take a 'size' argument

2019-02-19 Thread Philippe Mathieu-Daudé
The single caller of xencons_send(), con_event() already use the difference 'con->buffer.size - con->buffer.consumed'. Deduplicate by passing the difference as an argument. Signed-off-by: Philippe Mathieu-Daudé --- hw/char/xen_console.c | 12 +++- 1 file changed, 7

[Xen-devel] [PATCH v3 19/25] s390/ebcdic: Use size_t to iterate over arrays

2019-02-19 Thread Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé --- include/hw/s390x/ebcdic.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/hw/s390x/ebcdic.h b/include/hw/s390x/ebcdic.h index 69a04cab62..d89174e113 100644 --- a/include/hw/s390x/ebcdic.h +++ b/include/hw/s390x

[Xen-devel] [PATCH v3 20/25] s390x/sclp: Use a const variable to improve readability

2019-02-19 Thread Philippe Mathieu-Daudé
We will reuse this variable in the next patch. Signed-off-by: Philippe Mathieu-Daudé --- hw/char/sclpconsole-lm.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index dbc91a1e5b..49543e2c83 100644 --- a/hw/char

[Xen-devel] [PATCH v3 21/25] s390x/sclp: Use size_t in process_mdb()

2019-02-19 Thread Philippe Mathieu-Daudé
Since it is unlikely we have sizeof(mdbo->mto.message) < 0, we can convert this variable to an unsigned type. Signed-off-by: Philippe Mathieu-Daudé --- hw/char/sclpconsole-lm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpc

[Xen-devel] [PATCH v3 18/25] s390x/3270: Let insert_IAC_escape_char() use size_t

2019-02-19 Thread Philippe Mathieu-Daudé
This function takes size_t argument and return a size_t. Signed-off-by: Philippe Mathieu-Daudé --- hw/char/terminal3270.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c index 35b079d5c4..1cb48a3c6f 100644 --- a/hw/char

[Xen-devel] [PATCH v3 24/25] chardev: Let qemu_chr_fe_write[_all] use size_t type argument

2019-02-19 Thread Philippe Mathieu-Daudé
as size_t to make explicit this value is unsigned. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daudé --- chardev/char-fe.c | 4 ++-- chardev/char-mux.c| 3 ++- include/chardev/char-fe.h | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a

[Xen-devel] [PATCH v3 25/25] chardev: Let qemu_chr_write[_all] use size_t

2019-02-19 Thread Philippe Mathieu-Daudé
We now know all callers use a size_t argument. We can convert qemu_chr_write() and qemu_chr_write_all() to use a size_t argument. Signed-off-by: Philippe Mathieu-Daudé --- chardev/char.c | 8 include/chardev/char.h | 2 +- include/sysemu/replay.h | 2 +- replay/replay-char.c

[Xen-devel] [PATCH v3 22/25] s390x/sclp: Let write_console_data() take a size_t

2019-02-19 Thread Philippe Mathieu-Daudé
Since all callers provide an unsigned value, we can safely use a size_t argument. Signed-off-by: Philippe Mathieu-Daudé --- hw/char/sclpconsole-lm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index 48c76d863e

[Xen-devel] [PATCH v3 23/25] hw/ipmi: Assert outlen > outpos

2019-02-19 Thread Philippe Mathieu-Daudé
we know outlen != 0. We can then add an assertion on 'outlen > outpos', which will helps the next patch to safely convert 'outlen - outpos' as an unsigned type (size_t). Make this assertion explicit by casting 'outlen - outpos' size_t. Signed-off-by: Philippe Mat

Re: [Xen-devel] [PATCH v3 02/25] chardev: Assert IOCanReadHandler can not be negative

2019-02-20 Thread Philippe Mathieu-Daudé
On 2/20/19 11:03 AM, Marc-André Lureau wrote: > Hi > > On Wed, Feb 20, 2019 at 2:03 AM Philippe Mathieu-Daudé > wrote: >> >> The backend should not return a negative length to read. >> We will later change the prototype of IOCanReadHandler to return an >> unsi

Re: [Xen-devel] [PATCH v3 04/25] chardev: Let qemu_chr_be_can_write() return a size_t types

2019-02-20 Thread Philippe Mathieu-Daudé
On 2/20/19 11:40 AM, Marc-André Lureau wrote: > Hi > > On Wed, Feb 20, 2019 at 2:04 AM Philippe Mathieu-Daudé > wrote: >> >> In the previous commit we added an assert to be sure than >> qemu_chr_be_can_write() will never return a negative value. >> We can

Re: [Xen-devel] [Qemu-devel] [PATCH v3 25/25] chardev: Let qemu_chr_write[_all] use size_t

2019-02-20 Thread Philippe Mathieu-Daudé
On 2/20/19 11:42 AM, Marc-André Lureau wrote: > Hi > > On Wed, Feb 20, 2019 at 11:39 AM Daniel P. Berrangé > wrote: >> >> On Wed, Feb 20, 2019 at 02:02:32AM +0100, Philippe Mathieu-Daudé wrote: >> >>> diff --git a/include/chardev/char.h b/include/chardev/

Re: [Xen-devel] [PATCH v3 19/25] s390/ebcdic: Use size_t to iterate over arrays

2019-02-20 Thread Philippe Mathieu-Daudé
On 2/20/19 10:40 AM, Cornelia Huck wrote: > On Wed, 20 Feb 2019 02:02:26 +0100 > Philippe Mathieu-Daudé wrote: > >> Signed-off-by: Philippe Mathieu-Daudé >> --- >> include/hw/s390x/ebcdic.h | 8 >> 1 file changed, 4 insertions(+), 4 deletions(-) &g

Re: [Xen-devel] [PATCH v3 02/25] chardev: Assert IOCanReadHandler can not be negative

2019-02-21 Thread Philippe Mathieu-Daudé
On 2/20/19 12:13 PM, Philippe Mathieu-Daudé wrote: > On 2/20/19 11:03 AM, Marc-André Lureau wrote: >> Hi >> >> On Wed, Feb 20, 2019 at 2:03 AM Philippe Mathieu-Daudé >> wrote: >>> >>> The backend should not return a negative length to re

Re: [Xen-devel] [PATCH v3 20/25] s390x/sclp: Use a const variable to improve readability

2019-03-08 Thread Philippe Mathieu-Daudé
On 2/20/19 11:53 AM, Cornelia Huck wrote: > On Wed, 20 Feb 2019 02:02:27 +0100 > Philippe Mathieu-Daudé wrote: > >> We will reuse this variable in the next patch. >> >> Signed-off-by: Philippe Mathieu-Daudé >> --- >> hw/char/sclpconsole-lm.c | 7 ---

Re: [Xen-devel] [Qemu-devel] Maintainers, please tell us how to boot your machines!

2019-03-21 Thread Philippe Mathieu-Daudé
Le mar. 19 mars 2019 19:40, Markus Armbruster a écrit : > Markus Armbruster writes: > > > Dear board code maintainers, > > > > This is a (rather late) follow-up to the last QEMU summit. Minutes[*]: > > > > * Deprecating unmaintained features (devices, targets, backends) in QEMU > > > >QEMU

Re: [edk2-devel] [PATCH v2 00/31] Specific platform to run OVMF in Xen PVH and HVM guests

2019-04-09 Thread Philippe Mathieu-Daudé
On 4/9/19 10:09 AM, Laszlo Ersek wrote: > On 04/08/19 17:50, Laszlo Ersek wrote: >> On 04/08/19 16:23, Anthony PERARD wrote: >>> Patch series available in this git branch: >>> https://xenbits.xen.org/git-http/people/aperard/ovmf.git >>> br.platform-xen-pvh-v2 >>> >>> Hi, >>> >>> I've started to cr

Re: [edk2-devel] [PATCH 2/4] OvmfPkg/License.txt: refresh the MIT license text and include the SPDX ID

2019-04-11 Thread Philippe Mathieu-Daudé
On 4/10/19 2:58 PM, Laszlo Ersek wrote: > Refresh the MIT license text from , > and add "SPDX-License-Identifier: MIT" for easier parsing by machines. > > This follows the tree-wide adoption of "SPDX-License-Identifier"s, made > for

[Xen-devel] [PATCH-for-5.0 v3 2/6] hw/pci-host/i440fx: Extract PCII440FXState to "hw/pci-host/i440fx.h"

2019-12-09 Thread Philippe Mathieu-Daudé
Make the PCII440FXState structure public, so it can be used out of this source file. This will allow us to extract the IGD Passthrough Host Bridge, which is a children of the TYPE_I440FX_PCI_DEVICE. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/pci-host/i440fx.h | 19

[Xen-devel] [PATCH-for-5.0 v3 4/6] hw/pci-host/i440fx: Use definitions instead of magic values

2019-12-09 Thread Philippe Mathieu-Daudé
Use definitions from "hw/pci/pci_regs.h". This also helps when using git-grep. Signed-off-by: Philippe Mathieu-Daudé --- hw/pci-host/i440fx.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index

[Xen-devel] [PATCH-for-5.0 v3 1/6] hw/pci-host/i440fx: Correct the header description

2019-12-09 Thread Philippe Mathieu-Daudé
Missed during the refactor in commits 14a026dd58 and 0f25d865a, this file is now only about the i440FX chipset. Signed-off-by: Philippe Mathieu-Daudé --- hw/pci-host/i440fx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index

[Xen-devel] [PATCH-for-5.0 v3 5/6] hw/pci-host/i440fx: Extract the IGD passthrough host bridge device

2019-12-09 Thread Philippe Mathieu-Daudé
We can use a i440FX without the IGD passthrough host bridge. Extract it into a new file, 'hw/pci-host/igd_pt.c'. Signed-off-by: Philippe Mathieu-Daudé --- v3: - Rename as 'xen_igd_pt.c' (Alex Williamson) - Add an entry in MAINTAINERS::Xen --- hw/pci-host

[Xen-devel] [PATCH-for-5.0 v3 3/6] hw/pci-host/i440fx: Use size_t to iterate over ARRAY_SIZE()

2019-12-09 Thread Philippe Mathieu-Daudé
We don't enforce the -Wsign-conversion CPPFLAG, but it doesn't hurt to avoid this warning: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion] Signed-off-by: Philippe Mathieu-Daudé --- hw/pci-ho

[Xen-devel] [PATCH-for-5.0 v3 0/6] hw/pci-host: Add Kconfig selector for IGD PCIe pass-through

2019-12-09 Thread Philippe Mathieu-Daudé
Mathieu-Daudé (6): hw/pci-host/i440fx: Correct the header description hw/pci-host/i440fx: Extract PCII440FXState to "hw/pci-host/i440fx.h" hw/pci-host/i440fx: Use size_t to iterate over ARRAY_SIZE() hw/pci-host/i440fx: Use definitions instead of magic values hw/pci-host/i440fx: Extra

[Xen-devel] [PATCH-for-5.0 v3 6/6] hw/pci-host: Add Kconfig entry to select the IGD Passthrough Host Bridge

2019-12-09 Thread Philippe Mathieu-Daudé
Add the XEN_IGD_PASSTHROUGH Kconfig option. Xen build has that option selected by default. Non-Xen builds now have to select this feature manually. Signed-off-by: Philippe Mathieu-Daudé --- v3: Only default with Xen (Alex Williamson) I did not used 'depends on XEN' as suggested b

Re: [Xen-devel] [PATCH-for-5.0 v3 6/6] hw/pci-host: Add Kconfig entry to select the IGD Passthrough Host Bridge

2019-12-09 Thread Philippe Mathieu-Daudé
On 12/9/19 11:42 AM, Paolo Bonzini wrote: On 09/12/19 11:10, Durrant, Paul wrote: Signed-off-by: Philippe Mathieu-Daudé --- v3: Only default with Xen (Alex Williamson) I did not used 'depends on XEN' as suggested by Alex but 'default y if XEN', so one can build XEN witho

[Xen-devel] [PATCH 01/12] hw/i386/pc: Convert DPRINTF() to trace events

2019-12-13 Thread Philippe Mathieu-Daudé
Convert the deprecated DPRINTF() macro to trace events. Signed-off-by: Philippe Mathieu-Daudé --- v2: rename pc_pic -> x86_pic --- hw/i386/pc.c | 19 +-- hw/i386/trace-events | 6 ++ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/hw/i386/pc.c b

[Xen-devel] [PATCH 00/12] hw/i386/pc: Move PC-machine specific declarations to 'pc_internal.h'

2019-12-13 Thread Philippe Mathieu-Daudé
msg664760.html [2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg664765.html Philippe Mathieu-Daudé (12): hw/i386/pc: Convert DPRINTF() to trace events hw/i386/pc: Move kvm_i8259_init() declaration to sysemu/kvm.h hw/i386/pc: Remove obsolete pc_pci_device_init() declaration hw/i38

[Xen-devel] [PATCH 02/12] hw/i386/pc: Move kvm_i8259_init() declaration to sysemu/kvm.h

2019-12-13 Thread Philippe Mathieu-Daudé
Move the KVM-related call to "sysemu/kvm.h". Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/pc.h | 1 - include/sysemu/kvm.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 1f86eba3f9..9866dfbd60 10

[Xen-devel] [PATCH 04/12] hw/i386/pc: Remove obsolete cpu_set_smm_t typedef

2019-12-13 Thread Philippe Mathieu-Daudé
In commit f809c6051 we replaced the use of cpu_set_smm_t callbacks by using a Notifier to modify the MemoryRegion. This prototype is now not used anymore, we can safely remove it. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/pc.h | 2 -- 1 file changed, 2 deletions(-) diff --git a

[Xen-devel] [PATCH 05/12] hw/i386/ich9: Remove unused include

2019-12-13 Thread Philippe Mathieu-Daudé
The "pcie_host.h" header is used by devices providing a PCI-e bus, usually North Bridges. The ICH9 is a South Bridge. Since we don't need this header, do not include it. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/ich9.h | 1 - 1 file changed, 1 deletion(-) diff

[Xen-devel] [PATCH 03/12] hw/i386/pc: Remove obsolete pc_pci_device_init() declaration

2019-12-13 Thread Philippe Mathieu-Daudé
In commit 1454509726 we removed the pc_pci_device_init() deprecated function and its calls, but we forgot to remove its prototype. Do that now. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/pc.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/hw/i386/pc.h b/include/hw

[Xen-devel] [PATCH 06/12] hw/i386/ich9: Move unnecessary "pci_bridge.h" include

2019-12-13 Thread Philippe Mathieu-Daudé
While the ICH9 chipset is a 'South Bridge', it is not a PCI bridge. Nothing in "hw/i386/ich9.h" requires definitions from "pci_bridge.h" so move its inclusion where it is required. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/ich9.h| 1 - hw/i386/a

[Xen-devel] [PATCH 07/12] hw/ide/piix: Remove superfluous DEVICE() cast

2019-12-13 Thread Philippe Mathieu-Daudé
Commit 02a9594b4f0 already converted 'dev' to DeviceState. Since the cast is superfluous, remove it. Signed-off-by: Philippe Mathieu-Daudé --- hw/ide/piix.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/ide/piix.c b/hw/ide/piix.c index db313dd3b1..ffeff4e

[Xen-devel] [PATCH 09/12] hw/intc/ioapic: Make ioapic_print_redtbl() static

2019-12-13 Thread Philippe Mathieu-Daudé
Since commit 0c8465440 the ioapic_print_redtbl() function is not used outside of ioapic_common.c, make it static, and remove its prototype declaration in "ioapic_internal.h". Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/ioapic_internal.h | 1 - hw/intc/ioapic_common.c

[Xen-devel] [PATCH 10/12] hw/i386/pc: Rename allocate_cpu_irq from 'pc' to 'x86_machine'

2019-12-13 Thread Philippe Mathieu-Daudé
All the X86 machines use an interrupt controller. Rename the function to something more generic. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/pc.h | 2 +- hw/i386/microvm.c| 2 +- hw/i386/pc.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a

[Xen-devel] [PATCH 11/12] hw/i386/pc: Move x86_machine_allocate_cpu_irq() to 'hw/i386/x86.c'

2019-12-13 Thread Philippe Mathieu-Daudé
Keep 'pc.c' for PC-machine specific code, and use 'x86.c' for code used by all the X86-based machines. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/pc.h | 1 - include/hw/i386/x86.h | 2 ++ hw/i386/pc.c | 27 --- hw/i38

[Xen-devel] [PATCH 08/12] hw/ide/piix: Use ARRAY_SIZE() instead of magic numbers

2019-12-13 Thread Philippe Mathieu-Daudé
Using magic numbers is dangerous because the structures PCIIDEState might be modified and this source file consuming the "ide/pci.h" header would be out of sync, eventually accessing out of bound array members. Use the ARRAY_SIZE() to keep the source file sync. Signed-off-by: Philip

[Xen-devel] [PATCH 12/12] hw/i386/pc: Move PC-machine specific declarations to 'pc_internal.h'

2019-12-13 Thread Philippe Mathieu-Daudé
the name to explicit this header is restricted to the X86 architecture. Other architecture can not access it. Signed-off-by: Philippe Mathieu-Daudé --- Maybe name it 'pc_machine.h'? --- hw/i386/pc_internal.h | 144 +

Re: [Xen-devel] [PATCH 12/12] hw/i386/pc: Move PC-machine specific declarations to 'pc_internal.h'

2019-12-13 Thread Philippe Mathieu-Daudé
On 12/13/19 5:17 PM, Philippe Mathieu-Daudé wrote: Historically, QEMU started with only one X86 machine: the PC. The 'hw/i386/pc.h' header was used to store all X86 and PC declarations. Since we have now multiple machines based on the X86 architecture, move the PC-specific declaration

Re: [Xen-devel] [PATCH 12/12] hw/i386/pc: Move PC-machine specific declarations to 'pc_internal.h'

2019-12-16 Thread Philippe Mathieu-Daudé
On 12/15/19 10:58 AM, Michael S. Tsirkin wrote: On Fri, Dec 13, 2019 at 05:47:28PM +0100, Philippe Mathieu-Daudé wrote: On 12/13/19 5:17 PM, Philippe Mathieu-Daudé wrote: Historically, QEMU started with only one X86 machine: the PC. The 'hw/i386/pc.h' header was used to store all

Re: [Xen-devel] [PATCH 12/12] hw/i386/pc: Move PC-machine specific declarations to 'pc_internal.h'

2019-12-16 Thread Philippe Mathieu-Daudé
On 12/16/19 4:41 PM, Paolo Bonzini wrote: On 16/12/19 16:37, Philippe Mathieu-Daudé wrote: On 12/15/19 10:58 AM, Michael S. Tsirkin wrote: On Fri, Dec 13, 2019 at 05:47:28PM +0100, Philippe Mathieu-Daudé wrote: On 12/13/19 5:17 PM, Philippe Mathieu-Daudé wrote: Historically, QEMU started

[Xen-devel] [PATCH 00/20] hw: Clean up hw/i386 headers (and few alpha/hppa)

2019-10-14 Thread Philippe Mathieu-Daudé
ot; I had to fix them too. Eventually I'll succeed at removing hw/i386/ dependency on non-X86 platforms (Quest I started 2 years ago...). Regards, Phil. Philippe Mathieu-Daudé (20): vl: Add missing "hw/boards.h" include hw/southbridge/ich9: Removed unused headers hw/input/pc

[Xen-devel] [PATCH 01/20] vl: Add missing "hw/boards.h" include

2019-10-14 Thread Philippe Mathieu-Daudé
_usb(current_machine)) { ^ vl.c:1283:10: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes] vl.c:1283:22: error: use of undeclared identifier 'current_machine' if (!machine_usb(current_machine)) { ^ Signed-off-by: Philippe Mat

[Xen-devel] [PATCH 02/20] hw/southbridge/ich9: Removed unused headers

2019-10-14 Thread Philippe Mathieu-Daudé
The ICH9 chipset is not X86/PC specific. These files don't use anything declared by the "hw/i386/pc.h" or "hw/i386/ioapic.h" headers. Remove them. Signed-off-by: Philippe Mathieu-Daudé --- hw/acpi/ich9.c | 1 - hw/isa/lpc_ich9.c | 2 -- include/hw/i

[Xen-devel] [PATCH 03/20] hw/input/pckbd: Remove unused "hw/i386/pc.h" header

2019-10-14 Thread Philippe Mathieu-Daudé
The keyboard controller model don't need anything from "hw/i386/pc.h". Remove it. Signed-off-by: Philippe Mathieu-Daudé --- hw/input/pckbd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c index f0acfd86f7..2f09f780ba 100644 --- a/hw/input/p

[Xen-devel] [PATCH 04/20] hw/i386/ioapic_internal: Remove unused "hw/i386/ioapic.h" header

2019-10-14 Thread Philippe Mathieu-Daudé
The "ioapic_internal.h" does not use anything from "hw/i386/ioapic.h", remove it. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/ioapic_internal.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/hw/i386/ioapic_internal.h b/include/hw/i386/ioa

[Xen-devel] [PATCH 05/20] hw/timer: Remove unused "ui/console.h" header

2019-10-14 Thread Philippe Mathieu-Daudé
The timer models don't need anything from "ui/console.h". Remove it. Signed-off-by: Philippe Mathieu-Daudé --- hw/timer/hpet.c | 1 - hw/timer/twl92230.c | 1 - 2 files changed, 2 deletions(-) diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c index 1ddae4e7d7..4772cccfe3 100644

[Xen-devel] [PATCH 06/20] hw/usb/dev-storage: Remove unused "ui/console.h" header

2019-10-14 Thread Philippe Mathieu-Daudé
The USB models related to storage don't need anything from "ui/console.h". Remove it. Signed-off-by: Philippe Mathieu-Daudé --- hw/usb/dev-storage.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c index 8545193488..a2ff52d3e5 1006

[Xen-devel] [PATCH 08/20] hw/xen/xen_pt_load_rom: Remove unused includes

2019-10-14 Thread Philippe Mathieu-Daudé
xen_pt_load_rom.c does not use any of these includes, remove them. Signed-off-by: Philippe Mathieu-Daudé --- hw/xen/xen_pt_load_rom.c | 4 1 file changed, 4 deletions(-) diff --git a/hw/xen/xen_pt_load_rom.c b/hw/xen/xen_pt_load_rom.c index 307a5c93e2..a50a80837e 100644 --- a/hw/xen

[Xen-devel] [PATCH 07/20] hw/i386/intel_iommu: Remove unused includes

2019-10-14 Thread Philippe Mathieu-Daudé
intel_iommu.h does not use any of these includes, remove them. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/i386/intel_iommu.h | 4 1 file changed, 4 deletions(-) diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index 66b931e526..a1c4afcda5 100644 --- a

[Xen-devel] [PATCH 09/20] hw/alpha/alpha_sys: Remove unused "hw/ide.h" header

2019-10-14 Thread Philippe Mathieu-Daudé
alpha_sys.h does not use anything from the "hw/ide.h" header. Remove it. Signed-off-by: Philippe Mathieu-Daudé --- hw/alpha/alpha_sys.h | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h index 4e127a6de8..9991535c0d 100644 --- a/hw/alpha/a

[Xen-devel] [PATCH 10/20] hw/alpha/dp264: Include "net/net.h"

2019-10-14 Thread Philippe Mathieu-Daudé
hw/alpha/dp264.c:90:30: error: use of undeclared identifier 'nd_table' pci_nic_init_nofail(&nd_table[i], pci_bus, "e1000", NULL); ^ Signed-off-by: Philippe Mathieu-Daudé --- hw/alpha/dp264.c | 1 + 1 file changed, 1 insertion(+) d

[Xen-devel] [PATCH 11/20] hw/hppa/machine: Include "net/net.h"

2019-10-14 Thread Philippe Mathieu-Daudé
hw/hppa/machine.c:127:30: error: use of undeclared identifier 'nd_table' pci_nic_init_nofail(&nd_table[i], pci_bus, "e1000", NULL); ^ Signed-off-by: Philippe Mathieu-Daudé --- hw/hppa/machine.c | 1 + 1 file changed, 1 inserti

[Xen-devel] [PATCH 12/20] hw/acpi/cpu_hotplug: Include "hw/pci/pci.h"

2019-10-14 Thread Philippe Mathieu-Daudé
function-declaration] MemoryRegion *parent = pci_address_space_io(PCI_DEVICE(gpe_cpu->device)); ^ Signed-off-by: Philippe Mathieu-Daudé --- hw/acpi/cpu_hotplug.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hot

[Xen-devel] [PATCH 13/20] hw/timer/hpet: Include "exec/address-spaces.h"

2019-10-14 Thread Philippe Mathieu-Daudé
space_memory, timer->fsb >> 32, ^~~~~~~~ Signed-off-by: Philippe Mathieu-Daudé --- hw/timer/hpet.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c index 4772cccfe3..6589d63ebb 100644 --- a/hw/timer/hpet.c +++

[Xen-devel] [PATCH 14/20] hw/pci-host/q35: Include "qemu/range.h"

2019-10-14 Thread Philippe Mathieu-Daudé
(aka 'struct Range') Range pci_hole; ^ include/qemu/typedefs.h:116:16: note: forward declaration of 'struct Range' typedef struct Range Range; ^ Signed-off-by: Philippe Mathieu-Daudé --- include/hw/pci-host/q35.h | 1 + 1 file changed, 1 insertion(

[Xen-devel] [PATCH 15/20] hw/i2c/smbus_ich9: Include "qemu/range.h"

2019-10-14 Thread Philippe Mathieu-Daudé
eclaration] if (range_covers_byte(address, len, ICH9_SMB_HOSTC)) { ^ Signed-off-by: Philippe Mathieu-Daudé --- hw/i2c/smbus_ich9.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c index fd50fb851a..48f1ff4191 100644 --- a/hw/i2c/smbus

[Xen-devel] [PATCH 16/20] hw/pci-host/piix: Include "qemu/range.h"

2019-10-14 Thread Philippe Mathieu-Daudé
declaration of function 'range_is_empty' is invalid in C99 [-Werror,-Wimplicit-function-declaration] val64 = range_is_empty(&s->pci_hole) ? 0 : range_lob(&s->pci_hole); ^ Signed-off-by: Philippe Mathieu-Daudé --- hw/pci-host/piix.c | 1 + 1 file

[Xen-devel] [PATCH 17/20] hw/acpi: Include "hw/mem/nvdimm.h"

2019-10-14 Thread Philippe Mathieu-Daudé
[-Werror,-Wimplicit-function-declaration] nvdimm_acpi_plug_cb(hotplug_dev, dev); ^ Signed-off-by: Philippe Mathieu-Daudé --- hw/acpi/ich9.c | 1 + hw/acpi/piix4.c | 1 + 2 files changed, 2 insertions(+) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index fdd0a6c79e..4e74284b65 100644 -

[Xen-devel] [PATCH 18/20] hw/i386: Include "hw/mem/nvdimm.h"

2019-10-14 Thread Philippe Mathieu-Daudé
implicit-function-declaration] nvdimm_init_acpi_state(machine->nvdimms_state, system_io, ^ hw/i386/pc_q35.c:332:9: error: implicit declaration of function 'nvdimm_init_acpi_state' is invalid in C99 [-Werror,-Wimplicit-function-declaration] nvdimm_init_acpi_state(m

[Xen-devel] [PATCH 19/20] hw/pci-host/q35: Remove unused includes

2019-10-14 Thread Philippe Mathieu-Daudé
Only q35.c requires declarations from "hw/i386/pc.h", move it there. Remove all the includes not used by "q35.h". Signed-off-by: Philippe Mathieu-Daudé --- hw/pci-host/q35.c | 1 + include/hw/pci-host/q35.h | 7 --- 2 files changed, 1 insertion(+), 7 deletions

[Xen-devel] [PATCH 20/20] hw/i386/pc: Clean up includes

2019-10-14 Thread Philippe Mathieu-Daudé
Add 3 headers that were missing: - "hw/hotplug.h" PCMachineState::acpi_dev is of type HotplugHandler - "qemu/notify.h" PCMachineState::machine_done is of type Notifier - "qapi/qapi-types-common.h" PCMachineState::vmport/smm is of type OnOffAuto Si

[Xen-devel] [PATCH 01/32] hw/i386: Remove obsolete LoadStateHandler::load_state_old handlers

2019-10-15 Thread Philippe Mathieu-Daudé
not versioned, so there is no migration compatibility issue removing this handler. Suggested-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daudé --- hw/acpi/piix4.c | 40 - hw/intc/apic_common.c | 49 - hw/pci

[Xen-devel] [PATCH 00/32] hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge

2019-10-15 Thread Philippe Mathieu-Daudé
add a i8259 interrupt controller as specified in datasheet piix4: rename PIIX4 object to piix4-isa piix4: convert reset function to QOM piix4: add a i8257 dma controller as specified in datasheet piix4: add a i8254 pit controller as specified in datasheet Philippe Mathieu-Daudé (23): hw/i38

[Xen-devel] [PATCH 03/32] mc146818rtc: move structure to header file

2019-10-15 Thread Philippe Mathieu-Daudé
From: Hervé Poussineau We are now able to embed a timer in another object. Acked-by: Michael S. Tsirkin Acked-by: Paolo Bonzini Signed-off-by: Hervé Poussineau Message-Id: <20171216090228.28505-4-hpous...@reactos.org> Signed-off-by: Philippe Mathieu-Daudé --- hw/timer/mc14681

[Xen-devel] [PATCH 04/32] mc146818rtc: Move RTC_ISA_IRQ definition

2019-10-15 Thread Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé The ISA default number for the RTC devices is not related to its registers neither. Move this definition to "hw/timer/mc146818rtc.h". Signed-off-by: Philippe Mathieu-Daudé --- include/hw/timer/mc146818rtc.h | 2 ++ include/hw/timer/mc146818rtc_

[Xen-devel] [PATCH 05/32] mc146818rtc: Include "mc146818rtc_regs.h" directly in mc146818rtc.c

2019-10-15 Thread Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé Devices/boards wanting to use the MC146818 RTC don't need the knowledge its internal registers. Move the "mc146818rtc_regs.h" inclusion to mc146818rtc.c where it is required. We can not move this file from include/hw/timer/ to hw/timer/ for local in

  1   2   3   4   5   6   7   8   9   10   >