[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [PATCH 02/17] x86: add io_apic_ops to allow interception
* Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote: > From: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx> > > Xen dom0 needs to paravirtualize IO operations to the IO APIC, so add > a io_apic_ops for it to intercept. Do this as ops structure because > there's at least some chance that another paravirtualized environment > may want to intercept these. > > [Impact: indirect IO APIC access via io_apic_ops] > Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx> > --- > arch/x86/include/asm/io_apic.h | 9 +++++++ > arch/x86/kernel/apic/io_apic.c | 50 +++++++++++++++++++++++++++++++++++++-- > 2 files changed, 56 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h > index 9d826e4..8cbfe73 100644 > --- a/arch/x86/include/asm/io_apic.h > +++ b/arch/x86/include/asm/io_apic.h > @@ -21,6 +21,15 @@ > #define IO_APIC_REDIR_LEVEL_TRIGGER (1 << 15) > #define IO_APIC_REDIR_MASKED (1 << 16) > > +struct io_apic_ops { > + void (*init)(void); > + unsigned int (*read)(unsigned int apic, unsigned int reg); > + void (*write)(unsigned int apic, unsigned int reg, unsigned int value); > + void (*modify)(unsigned int apic, unsigned int reg, unsigned int value); > +}; > + > +void __init set_io_apic_ops(const struct io_apic_ops *); ok, could you please turn the whole IO-APIC code into a driver framework? I.e. all IO-APIC calls outside of arch/x86/kernel/apic/io_apic.c should be to some io_apic-> method. The advantage will be a proper abstraction for all IO-APIC details - not just a minimalistic one for Xen's need. Also, please name it 'struct io_apic' - similar to the 'struct apic' naming we have for the local APIC driver structure. Thanks, Ingo _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |