[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v2 1/9] hw/core: Add interface to allocate a
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH RFC v2 1/9] hw/core: Add interface to allocate and free a single IRQ |
Date: |
Wed, 2 Oct 2013 15:50:47 +0300 |
On Wed, Oct 02, 2013 at 03:41:26PM +0300, Marcel Apfelbaum wrote:
> qemu_allocate_irq returns a single qemu_irq.
> The interface allows to specify an interrupt number.
>
> qemu_free_irq frees it.
>
> Signed-off-by: Marcel Apfelbaum <address@hidden>
> ---
> hw/core/irq.c | 16 ++++++++++++++++
> include/hw/irq.h | 7 +++++++
> 2 files changed, 23 insertions(+)
>
> diff --git a/hw/core/irq.c b/hw/core/irq.c
> index 2078542..03c8cb3 100644
> --- a/hw/core/irq.c
> +++ b/hw/core/irq.c
> @@ -68,6 +68,17 @@ qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler,
> void *opaque, int n)
> return qemu_extend_irqs(NULL, 0, handler, opaque, n);
> }
>
> +qemu_irq qemu_allocate_irq(qemu_irq_handler handler, void *opaque, int n)
> +{
> + struct IRQState *irq;
> +
> + irq = g_new(struct IRQState, 1);
> + irq->handler = handler;
> + irq->opaque = opaque;
> + irq->n = n;
> +
> + return irq;
> +}
>
> void qemu_free_irqs(qemu_irq *s)
> {
> @@ -75,6 +86,11 @@ void qemu_free_irqs(qemu_irq *s)
> g_free(s);
> }
>
> +void qemu_free_irq(qemu_irq irq)
> +{
> + g_free(irq);
> +}
> +
> static void qemu_notirq(void *opaque, int line, int level)
> {
> struct IRQState *irq = opaque;
> diff --git a/include/hw/irq.h b/include/hw/irq.h
> index 610e6b7..f560dea 100644
> --- a/include/hw/irq.h
> +++ b/include/hw/irq.h
> @@ -30,6 +30,12 @@ static inline void qemu_irq_pulse(qemu_irq irq)
> */
> qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n);
>
> +/*
> + * Allocates a single IRQ. The irq is assigned with a handler, an opaque
> + * data and the interrupt number
Add period at end of line :)
no need to repost for this.
> + */
> +qemu_irq qemu_allocate_irq(qemu_irq_handler handler, void *opaque, int n);
> +
> /* Extends an Array of IRQs. Old IRQs have their handlers and opaque data
> * preserved. New IRQs are assigned the argument handler and opaque data.
> */
> @@ -37,6 +43,7 @@ qemu_irq *qemu_extend_irqs(qemu_irq *old, int n_old,
> qemu_irq_handler handler,
> void *opaque, int n);
>
> void qemu_free_irqs(qemu_irq *s);
> +void qemu_free_irq(qemu_irq irq);
>
> /* Returns a new IRQ with opposite polarity. */
> qemu_irq qemu_irq_invert(qemu_irq irq);
> --
> 1.8.3.1
- [Qemu-devel] [PATCH RFC v2 0/9] hw/pci: set irq without selecting INTx pin, Marcel Apfelbaum, 2013/10/02
- [Qemu-devel] [PATCH RFC v2 1/9] hw/core: Add interface to allocate and free a single IRQ, Marcel Apfelbaum, 2013/10/02
- Re: [Qemu-devel] [PATCH RFC v2 1/9] hw/core: Add interface to allocate and free a single IRQ,
Michael S. Tsirkin <=
- [Qemu-devel] [PATCH RFC v2 2/9] hw/pci: add pci wrappers for allocating and asserting irqs, Marcel Apfelbaum, 2013/10/02
- [Qemu-devel] [PATCH RFC v2 3/9] hw/pci-bridge: set PCI_INTERRUPT_PIN register before shpc init, Marcel Apfelbaum, 2013/10/02
- [Qemu-devel] [PATCH RFC v2 4/9] hw/vmxnet3: set interrupts using pci irq wrappers, Marcel Apfelbaum, 2013/10/02
- [Qemu-devel] [PATCH RFC v2 5/9] hw/vfio: set interrupts using pci irq wrappers, Marcel Apfelbaum, 2013/10/02