hw/misc/trace-events | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Use types that are defined by QEMU in trace events caused build failures
for the UST trace backend:
In file included from trace-ust-all.c:13:0:
trace-ust-all.h:11844:206: error: unknown type name ‘hwaddr’
It only knows about C built-in types, and any types that are pulled in
from includs of qemu-common.h and lttng/tracepoint.h. This does not
include the 'hwaddr' type, so replace it with a uint64_t which is what
exec/hwaddr.h defines 'hwaddr' as. This fixes the build failure
introduced by
commit 9eb8040c2d2b38e1a40bb6129b1b668fa178fcab
Author: Peter Maydell <peter.maydell@linaro.org>
Date: Fri Mar 2 10:45:39 2018 +0000
hw/misc/tz-ppc: Model TrustZone peripheral protection controller
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
For future work it might be good to have tracetool whitelist the
permitted data types that can be safely used in trace events...
hw/misc/trace-events | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/misc/trace-events b/hw/misc/trace-events
index eb5ffcc0a8..b0cc047289 100644
--- a/hw/misc/trace-events
+++ b/hw/misc/trace-events
@@ -92,8 +92,8 @@ tz_ppc_cfg_sec_resp(int level) "TZ PPC: cfg_sec_resp = %d"
tz_ppc_irq_enable(int level) "TZ PPC: int_enable = %d"
tz_ppc_irq_clear(int level) "TZ PPC: int_clear = %d"
tz_ppc_update_irq(int level) "TZ PPC: setting irq line to %d"
-tz_ppc_read_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked"
-tz_ppc_write_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked"
+tz_ppc_read_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked"
+tz_ppc_write_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked"
# hw/misc/iotkit-secctl.c
iotkit_secctl_s_read(uint32_t offset, uint64_t data, unsigned size) "IoTKit SecCtl S regs read: offset 0x%x data 0x%" PRIx64 " size %u"
--
2.14.3
On 6 March 2018 at 13:24, Daniel P. Berrangé <berrange@redhat.com> wrote: > Use types that are defined by QEMU in trace events caused build failures > for the UST trace backend: > > In file included from trace-ust-all.c:13:0: > trace-ust-all.h:11844:206: error: unknown type name ‘hwaddr’ > > It only knows about C built-in types, and any types that are pulled in > from includs of qemu-common.h and lttng/tracepoint.h. This does not > include the 'hwaddr' type, so replace it with a uint64_t which is what > exec/hwaddr.h defines 'hwaddr' as. This fixes the build failure > introduced by > > commit 9eb8040c2d2b38e1a40bb6129b1b668fa178fcab > Author: Peter Maydell <peter.maydell@linaro.org> > Date: Fri Mar 2 10:45:39 2018 +0000 > > hw/misc/tz-ppc: Model TrustZone peripheral protection controller > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- Oops. > --- a/hw/misc/trace-events > +++ b/hw/misc/trace-events > @@ -92,8 +92,8 @@ tz_ppc_cfg_sec_resp(int level) "TZ PPC: cfg_sec_resp = %d" > tz_ppc_irq_enable(int level) "TZ PPC: int_enable = %d" > tz_ppc_irq_clear(int level) "TZ PPC: int_clear = %d" > tz_ppc_update_irq(int level) "TZ PPC: setting irq line to %d" > -tz_ppc_read_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked" > -tz_ppc_write_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked" > +tz_ppc_read_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked" > +tz_ppc_write_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked" If the type isn't "hwaddr" then HWADDR_PRIx is the wrong format string macro -- those should change to PRIx64. thanks -- PMM
On Tue, Mar 06, 2018 at 01:33:42PM +0000, Peter Maydell wrote: > On 6 March 2018 at 13:24, Daniel P. Berrangé <berrange@redhat.com> wrote: > > Use types that are defined by QEMU in trace events caused build failures > > for the UST trace backend: > > > > In file included from trace-ust-all.c:13:0: > > trace-ust-all.h:11844:206: error: unknown type name ‘hwaddr’ > > > > It only knows about C built-in types, and any types that are pulled in > > from includs of qemu-common.h and lttng/tracepoint.h. This does not > > include the 'hwaddr' type, so replace it with a uint64_t which is what > > exec/hwaddr.h defines 'hwaddr' as. This fixes the build failure > > introduced by > > > > commit 9eb8040c2d2b38e1a40bb6129b1b668fa178fcab > > Author: Peter Maydell <peter.maydell@linaro.org> > > Date: Fri Mar 2 10:45:39 2018 +0000 > > > > hw/misc/tz-ppc: Model TrustZone peripheral protection controller > > > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > > --- > > Oops. > > > --- a/hw/misc/trace-events > > +++ b/hw/misc/trace-events > > @@ -92,8 +92,8 @@ tz_ppc_cfg_sec_resp(int level) "TZ PPC: cfg_sec_resp = %d" > > tz_ppc_irq_enable(int level) "TZ PPC: int_enable = %d" > > tz_ppc_irq_clear(int level) "TZ PPC: int_clear = %d" > > tz_ppc_update_irq(int level) "TZ PPC: setting irq line to %d" > > -tz_ppc_read_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked" > > -tz_ppc_write_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked" > > +tz_ppc_read_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked" > > +tz_ppc_write_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked" > > > If the type isn't "hwaddr" then HWADDR_PRIx is the wrong > format string macro -- those should change to PRIx64. Eeek, that HWADDR_PRIx macro is used throughout this file, sometimes even with uint32_t as the arg ! Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 6 March 2018 at 13:38, Daniel P. Berrangé <berrange@redhat.com> wrote: > On Tue, Mar 06, 2018 at 01:33:42PM +0000, Peter Maydell wrote: >> If the type isn't "hwaddr" then HWADDR_PRIx is the wrong >> format string macro -- those should change to PRIx64. > > Eeek, that HWADDR_PRIx macro is used throughout this file, sometimes > even with uint32_t as the arg ! Mmm, it's used where PRIx64 should be, but I think only for uint64_t arguments; I can't see a uint32_t one. hw/ide/trace-events also has a couple of HWADDR_PRIx uses. thanks -- PMM
On 06/03/18 13:24, Daniel P. Berrangé wrote: > Use types that are defined by QEMU in trace events caused build failures > for the UST trace backend: > > In file included from trace-ust-all.c:13:0: > trace-ust-all.h:11844:206: error: unknown type name ‘hwaddr’ > > It only knows about C built-in types, and any types that are pulled in > from includs of qemu-common.h and lttng/tracepoint.h. This does not > include the 'hwaddr' type, so replace it with a uint64_t which is what > exec/hwaddr.h defines 'hwaddr' as. This fixes the build failure > introduced by > > commit 9eb8040c2d2b38e1a40bb6129b1b668fa178fcab > Author: Peter Maydell <peter.maydell@linaro.org> > Date: Fri Mar 2 10:45:39 2018 +0000 > > hw/misc/tz-ppc: Model TrustZone peripheral protection controller > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > > For future work it might be good to have tracetool whitelist the > permitted data types that can be safely used in trace events... > > hw/misc/trace-events | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/misc/trace-events b/hw/misc/trace-events > index eb5ffcc0a8..b0cc047289 100644 > --- a/hw/misc/trace-events > +++ b/hw/misc/trace-events > @@ -92,8 +92,8 @@ tz_ppc_cfg_sec_resp(int level) "TZ PPC: cfg_sec_resp = %d" > tz_ppc_irq_enable(int level) "TZ PPC: int_enable = %d" > tz_ppc_irq_clear(int level) "TZ PPC: int_clear = %d" > tz_ppc_update_irq(int level) "TZ PPC: setting irq line to %d" > -tz_ppc_read_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked" > -tz_ppc_write_blocked(int n, hwaddr offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked" > +tz_ppc_read_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " read (secure %d user %d) blocked" > +tz_ppc_write_blocked(int n, uint64_t offset, bool secure, bool user) "TZ PPC: port %d offset 0x%" HWADDR_PRIx " write (secure %d user %d) blocked" > > # hw/misc/iotkit-secctl.c > iotkit_secctl_s_read(uint32_t offset, uint64_t data, unsigned size) "IoTKit SecCtl S regs read: offset 0x%x data 0x%" PRIx64 " size %u" > Hi Daniel, IIRC last time I made this mistake I also had to change HWADDR_PRIx to PRIx64 in the format strings because one of my pull requests failed when trying to use HWADDR_PRIx in one of the non-QEMU tracing tools. ATB, Mark.
© 2016 - 2025 Red Hat, Inc.