From: Markus Armbruster <armbru@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/5] parallel: convert isa to qdev
Date: Fri, 18 Sep 2009 17:10:06 +0200 [thread overview]
Message-ID: <873a6k47ch.fsf@pike.pond.sub.org> (raw)
In-Reply-To: <1253132744-10492-6-git-send-email-kraxel@redhat.com> (Gerd Hoffmann's message of "Wed\, 16 Sep 2009 22\:25\:44 +0200")
Gerd Hoffmann <kraxel@redhat.com> writes:
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
> hw/mips_malta.c | 2 +-
> hw/parallel.c | 80 ++++++++++++++++++++++++++++++++++++++++++------------
> hw/pc.c | 3 +-
> hw/pc.h | 2 +-
> hw/sun4u.c | 3 +-
> 5 files changed, 66 insertions(+), 24 deletions(-)
>
[...]
> diff --git a/hw/parallel.c b/hw/parallel.c
> index faaaa0d..30c53a2 100644
> --- a/hw/parallel.c
> +++ b/hw/parallel.c
> @@ -78,6 +78,13 @@ struct ParallelState {
> int it_shift;
> };
>
> +typedef struct ISAParallelState {
> + ISADevice dev;
> + uint32_t iobase;
> + uint32_t isairq;
> + ParallelState state;
> +} ISAParallelState;
> +
> static void parallel_update_irq(ParallelState *s)
> {
> if (s->irq_pending)
> @@ -438,38 +445,56 @@ static void parallel_reset(void *opaque)
> s->last_read_offset = ~0U;
> }
>
> -/* If fd is zero, it means that the parallel device uses the console */
> -ParallelState *parallel_init(int base, qemu_irq irq, CharDriverState *chr)
> +static int parallel_isa_initfn(ISADevice *dev)
> {
> - ParallelState *s;
> + ISAParallelState *isa = DO_UPCAST(ISAParallelState, dev, dev);
> + ParallelState *s = &isa->state;
> uint8_t dummy;
>
> - s = qemu_mallocz(sizeof(ParallelState));
> - s->irq = irq;
> - s->chr = chr;
> + if (!s->chr) {
> + fprintf(stderr, "Can't create parallel device, empty char device\n");
> + exit(1);
> + }
> +
> + isa_init_irq(dev, &s->irq, isa->isairq);
> parallel_reset(s);
> qemu_register_reset(parallel_reset, s);
>
> - if (qemu_chr_ioctl(chr, CHR_IOCTL_PP_READ_STATUS, &dummy) == 0) {
> + if (qemu_chr_ioctl(s->chr, CHR_IOCTL_PP_READ_STATUS, &dummy) == 0) {
> s->hw_driver = 1;
> s->status = dummy;
> }
>
> if (s->hw_driver) {
> - register_ioport_write(base, 8, 1, parallel_ioport_write_hw, s);
> - register_ioport_read(base, 8, 1, parallel_ioport_read_hw, s);
> - register_ioport_write(base+4, 1, 2, parallel_ioport_eppdata_write_hw2, s);
> - register_ioport_read(base+4, 1, 2, parallel_ioport_eppdata_read_hw2, s);
> - register_ioport_write(base+4, 1, 4, parallel_ioport_eppdata_write_hw4, s);
> - register_ioport_read(base+4, 1, 4, parallel_ioport_eppdata_read_hw4, s);
> - register_ioport_write(base+0x400, 8, 1, parallel_ioport_ecp_write, s);
> - register_ioport_read(base+0x400, 8, 1, parallel_ioport_ecp_read, s);
> + register_ioport_write(isa->iobase, 8, 1, parallel_ioport_write_hw, s);
> + register_ioport_read(isa->iobase, 8, 1, parallel_ioport_read_hw, s);
> + register_ioport_write(isa->iobase+4, 1, 2, parallel_ioport_eppdata_write_hw2, s);
> + register_ioport_read(isa->iobase+4, 1, 2, parallel_ioport_eppdata_read_hw2, s);
> + register_ioport_write(isa->iobase+4, 1, 4, parallel_ioport_eppdata_write_hw4, s);
> + register_ioport_read(isa->iobase+4, 1, 4, parallel_ioport_eppdata_read_hw4, s);
> + register_ioport_write(isa->iobase+0x400, 8, 1, parallel_ioport_ecp_write, s);
> + register_ioport_read(isa->iobase+0x400, 8, 1, parallel_ioport_ecp_read, s);
> }
> else {
> - register_ioport_write(base, 8, 1, parallel_ioport_write_sw, s);
> - register_ioport_read(base, 8, 1, parallel_ioport_read_sw, s);
> + register_ioport_write(isa->iobase, 8, 1, parallel_ioport_write_sw, s);
> + register_ioport_read(isa->iobase, 8, 1, parallel_ioport_read_sw, s);
Suggest to use "int base = isa->iobase" here, to reduce line length.
Also yields a tidier diff.
> }
> - return s;
> + return 0;
> +}
> +
[...]
next prev parent reply other threads:[~2009-09-18 15:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-16 20:25 [Qemu-devel] [PATCH 0/5] isa: more qdev conversions Gerd Hoffmann
2009-09-16 20:25 ` [Qemu-devel] [PATCH 1/5] floppy: add drive properties Gerd Hoffmann
2009-09-18 14:34 ` Markus Armbruster
2009-09-16 20:25 ` [Qemu-devel] [PATCH 2/5] floppy: move dma setup + drive connect to fdctrl_init_common() Gerd Hoffmann
2009-09-18 14:48 ` Markus Armbruster
2009-09-18 14:58 ` Gerd Hoffmann
2009-09-16 20:25 ` [Qemu-devel] [PATCH 3/5] qdev: don't crash on unset drive properties Gerd Hoffmann
2009-09-16 20:25 ` [Qemu-devel] [PATCH 4/5] serial: convert isa to qdev Gerd Hoffmann
2009-09-18 15:04 ` Markus Armbruster
2009-09-18 15:18 ` Gerd Hoffmann
2009-09-16 20:25 ` [Qemu-devel] [PATCH 5/5] parallel: " Gerd Hoffmann
2009-09-18 15:10 ` Markus Armbruster [this message]
2009-09-18 15:11 ` [Qemu-devel] [PATCH 0/5] isa: more qdev conversions Markus Armbruster
-- strict thread matches above, loose matches on Subject: below --
2009-09-22 11:53 Gerd Hoffmann
2009-09-22 11:53 ` [Qemu-devel] [PATCH 5/5] parallel: convert isa to qdev Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=873a6k47ch.fsf@pike.pond.sub.org \
--to=armbru@redhat.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.