Hi On Thu, Aug 31, 2017 at 7:20 AM Thomas Huth <[email protected]> wrote:
> On 31.08.2017 05:53, Philippe Mathieu-Daudé wrote: > > Suggested-by: Peter Maydell <[email protected]> > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > > --- > > include/hw/char/serial.h | 1 + > > hw/char/serial.c | 13 +++++++++++++ > > 2 files changed, 14 insertions(+) > > > > diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h > > index c4daf11a14..96bccb39e1 100644 > > --- a/include/hw/char/serial.h > > +++ b/include/hw/char/serial.h > > @@ -93,6 +93,7 @@ SerialState *serial_mm_init(MemoryRegion > *address_space, > > hwaddr base, int it_shift, > > qemu_irq irq, int baudbase, > > Chardev *chr, enum device_endian end); > > +Chardev *serial_chr_nonnull(Chardev *chr); > > Why do you need the prototype? Please make the function static if > possible (otherwise please add some rationale in the patch description). > It's being used from other units in following patches > > /* serial-isa.c */ > > #define TYPE_ISA_SERIAL "isa-serial" > > diff --git a/hw/char/serial.c b/hw/char/serial.c > > index 9aec6c60d8..7a100db107 100644 > > --- a/hw/char/serial.c > > +++ b/hw/char/serial.c > > @@ -1025,6 +1025,19 @@ static const MemoryRegionOps serial_mm_ops[3] = { > > }, > > }; > > > > +Chardev *serial_chr_nonnull(Chardev *chr) > > +{ > > + static int serial_id; > > + char *label; > > + > > + label = g_strdup_printf("discarding-serial%d", serial_id++); > > + chr = qemu_chr_new(label, "null"); > > That looks wrong - you're ignoring the input parameter and always open > the "null" device? Shouldn't there be a "if (chr) return chr;" in front > of this? > I think its missing too. The function name and usage isn't obvious. I would rather see the caller use "chr ?: serial_chr_null()" rather than "serial_chr_nonnull(chr)". -- Marc-André Lureau
