|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/2] vhpet: add support for level triggered interrupts
>>> On 30.03.18 at 14:36, <roger.pau@xxxxxxxxxx> wrote:
> Level triggered interrupts are not an optional feature of HPET, and
> must be implemented in order to comply with the HPET specification.
>
> Implement them by adding a callback to the timer which sets the
> interrupt bit in the general interrupt status register. Further
> interrupts (in case of periodic mode) will not be injected until the
> bit is cleared.
>
> In order to reset the interrupts when the status bit is clear Xen must
> also detect accesses to such register.
s/detect/handle/ and s/such/the status/ ?
> --- a/xen/arch/x86/hvm/hpet.c
> +++ b/xen/arch/x86/hvm/hpet.c
> @@ -220,6 +220,17 @@ static void hpet_stop_timer(HPETState *h, unsigned int
> tn,
> hpet_get_comparator(h, tn, guest_time);
> }
>
> +static void hpet_timer_fired(struct vcpu *v, void *data)
No need for the hpet_ prefix when the function is static.
> +{
> + unsigned int tn = (unsigned int)data;
Most gcc versions I'm aware of will warn about casts between
pointers and integers of different size - the cast needs to be to
unsigned long (while the variable type can remain as is). Oddly
enough you go through unsigned long when casting in the other
direction.
> @@ -360,6 +377,19 @@ static int hpet_write(
> }
> break;
>
> + case HPET_STATUS:
> + /* write 1 to clear. */
> + while (new_val)
Missing blanks.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |