On Sat, Nov 09, 2019 at 03:56:21PM +0000, Peter Maydell wrote: > On Fri, 8 Nov 2019 at 19:48, Palmer Dabbelt <[email protected]> wrote: > > > > This new helper function encodes the idiom used by the ARM virt board to > > set a string array. I don't currently have a working ARM userspace, so I > > haven't tested > > this, but I made the helper function because I wanted to use it for the > > RISC-V virt board where I have tested it. > > > > Signed-off-by: Palmer Dabbelt <[email protected]> > > --- > > hw/arm/virt.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > > index d4bedc2607..4dc00f54d5 100644 > > --- a/hw/arm/virt.c > > +++ b/hw/arm/virt.c > > @@ -304,9 +304,8 @@ static void fdt_add_timer_nodes(const VirtMachineState > > *vms) > > > > armcpu = ARM_CPU(qemu_get_cpu(0)); > > if (arm_feature(&armcpu->env, ARM_FEATURE_V8)) { > > - const char compat[] = "arm,armv8-timer\0arm,armv7-timer"; > > - qemu_fdt_setprop(vms->fdt, "/timer", "compatible", > > - compat, sizeof(compat)); > > + qemu_fdt_setprop_strings(vms->fdt, "/timer", "compatible", > > + "arm,armv8-timer\0arm,armv7-timer\0"); > > } else { > > > This seems to be changing the property we put in -- in > the old code it is 'foo\0bar\0', but in the new code > there will end up being two \0 at the end: 'foo\0bar\0\0'.
In fact it's not because the setprop_strings() helper just uses the
\0\0 to detect the end, but truncates what it actually puts into the
dtb at the first \0. But I agree this is confusing enough not to
really be an improvement over the original version.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
