Revision db895a1e hw/char/serial.c

b/hw/char/serial.c
670 670
    qemu_irq_lower(s->irq);
671 671
}
672 672

  
673
void serial_init_core(SerialState *s)
673
void serial_realize_core(SerialState *s, Error **errp)
674 674
{
675 675
    if (!s->chr) {
676
        fprintf(stderr, "Can't create serial device, empty char device\n");
677
	exit(1);
676
        error_setg(errp, "Can't create serial device, empty char device");
677
        return;
678 678
    }
679 679

  
680 680
    s->modem_status_poll = qemu_new_timer_ns(vm_clock, (QEMUTimerCB *) serial_update_msl, s);
......
713 713
                         CharDriverState *chr, MemoryRegion *system_io)
714 714
{
715 715
    SerialState *s;
716
    Error *err = NULL;
716 717

  
717 718
    s = g_malloc0(sizeof(SerialState));
718 719

  
719 720
    s->irq = irq;
720 721
    s->baudbase = baudbase;
721 722
    s->chr = chr;
722
    serial_init_core(s);
723
    serial_realize_core(s, &err);
724
    if (err != NULL) {
725
        fprintf(stderr, "%s\n", error_get_pretty(err));
726
        error_free(err);
727
        exit(1);
728
    }
723 729

  
724 730
    vmstate_register(NULL, base, &vmstate_serial, s);
725 731

  
......
769 775
                            CharDriverState *chr, enum device_endian end)
770 776
{
771 777
    SerialState *s;
778
    Error *err = NULL;
772 779

  
773 780
    s = g_malloc0(sizeof(SerialState));
774 781

  
......
777 784
    s->baudbase = baudbase;
778 785
    s->chr = chr;
779 786

  
780
    serial_init_core(s);
787
    serial_realize_core(s, &err);
788
    if (err != NULL) {
789
        fprintf(stderr, "%s\n", error_get_pretty(err));
790
        error_free(err);
791
        exit(1);
792
    }
781 793
    vmstate_register(NULL, base, &vmstate_serial, s);
782 794

  
783 795
    memory_region_init_io(&s->io, &serial_mm_ops[end], s,

Also available in: Unified diff