|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH RFC 2/6] x86/ioapic: add a raw field to RTE struct
On 21.04.2022 15:21, Roger Pau Monne wrote:
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Once seeing the purpose (in a later patch, I suppose) I certainly
don't mind. We do have a couple of literal initializers, though (see
e.g. the top of ioapic_guest_write()). Do those still compile fine
(warning free) even with old gcc?
Jan
> --- a/xen/arch/x86/include/asm/io_apic.h
> +++ b/xen/arch/x86/include/asm/io_apic.h
> @@ -89,35 +89,38 @@ enum ioapic_irq_destination_types {
> };
>
> struct IO_APIC_route_entry {
> - unsigned int vector:8;
> - unsigned int delivery_mode:3; /*
> - * 000: FIXED
> - * 001: lowest prio
> - * 111: ExtINT
> - */
> - unsigned int dest_mode:1; /* 0: physical, 1: logical */
> - unsigned int delivery_status:1;
> - unsigned int polarity:1; /* 0: low, 1: high */
> - unsigned int irr:1;
> - unsigned int trigger:1; /* 0: edge, 1: level */
> - unsigned int mask:1; /* 0: enabled, 1: disabled */
> - unsigned int __reserved_2:15;
> -
> union {
> struct {
> - unsigned int __reserved_1:24;
> - unsigned int physical_dest:4;
> - unsigned int __reserved_2:4;
> - } physical;
> -
> - struct {
> - unsigned int __reserved_1:24;
> - unsigned int logical_dest:8;
> - } logical;
> -
> - /* used when Interrupt Remapping with EIM is enabled */
> - unsigned int dest32;
> - } dest;
> + unsigned int vector:8;
> + unsigned int delivery_mode:3; /*
> + * 000: FIXED
> + * 001: lowest prio
> + * 111: ExtINT
> + */
> + unsigned int dest_mode:1; /* 0: physical, 1: logical */
> + unsigned int delivery_status:1;
> + unsigned int polarity:1; /* 0: low, 1: high */
> + unsigned int irr:1;
> + unsigned int trigger:1; /* 0: edge, 1: level */
> + unsigned int mask:1; /* 0: enabled, 1: disabled */
> + unsigned int __reserved_2:15;
> +
> + union {
> + struct {
> + unsigned int __reserved_1:24;
> + unsigned int physical_dest:4;
> + unsigned int __reserved_2:4;
> + } physical;
> +
> + struct {
> + unsigned int __reserved_1:24;
> + unsigned int logical_dest:8;
> + } logical;
> + unsigned int dest32;
> + } dest;
> + };
> + uint64_t raw;
> + };
> };
>
> /*
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |