linux-stable-rt/arch/x86/kernel
Jeremy Fitzhardinge 93b1eab3d2 paravirt: refactor struct paravirt_ops into smaller pv_*_ops
This patch refactors the paravirt_ops structure into groups of
functionally related ops:

pv_info - random info, rather than function entrypoints
pv_init_ops - functions used at boot time (some for module_init too)
pv_misc_ops - lazy mode, which didn't fit well anywhere else
pv_time_ops - time-related functions
pv_cpu_ops - various privileged instruction ops
pv_irq_ops - operations for managing interrupt state
pv_apic_ops - APIC operations
pv_mmu_ops - operations for managing pagetables

There are several motivations for this:

1. Some of these ops will be general to all x86, and some will be
   i386/x86-64 specific.  This makes it easier to share common stuff
   while allowing separate implementations where needed.

2. At the moment we must export all of paravirt_ops, but modules only
   need selected parts of it.  This allows us to export on a case by case
   basis (and also choose which export license we want to apply).

3. Functional groupings make things a bit more readable.

Struct paravirt_ops is now only used as a template to generate
patch-site identifiers, and to extract function pointers for inserting
into jmp/calls when patching.  It is only instantiated when needed.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andi Kleen <ak@suse.de>
Cc: Zach Amsden <zach@vmware.com>
Cc: Avi Kivity <avi@qumranet.com>
Cc: Anthony Liguory <aliguori@us.ibm.com>
Cc: "Glauber de Oliveira Costa" <glommer@gmail.com>
Cc: Jun Nakajima <jun.nakajima@intel.com>
2007-10-16 11:51:29 -07:00
..
acpi
cpu
cpufreq
.gitignore
Makefile
Makefile_32
Makefile_64
alternative.c paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
aperture_64.c
apic_32.c
apic_64.c
apm_32.c
asm-offsets.c
asm-offsets_32.c paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
asm-offsets_64.c
audit_64.c
bootflag.c
bugs_64.c
cpuid.c
crash_32.c
crash_64.c
crash_dump_32.c
crash_dump_64.c
doublefault_32.c
e820_32.c
e820_64.c
early-quirks_64.c
early_printk.c
efi_32.c
efi_stub_32.S
entry_32.S paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
entry_64.S
genapic_64.c
genapic_flat_64.c
geode_32.c
head64.c
head_32.S
head_64.S
hpet.c
i386_ksyms_32.c
i387_32.c
i387_64.c
i8237.c
i8253.c
i8259_32.c
i8259_64.c
init_task_32.c
init_task_64.c
io_apic_32.c
io_apic_64.c
ioport_32.c
ioport_64.c
irq_32.c
irq_64.c
k8.c
kprobes_32.c
kprobes_64.c
ldt_32.c
ldt_64.c
machine_kexec_32.c
machine_kexec_64.c
mca_32.c
mce_64.c
mce_amd_64.c
mce_intel_64.c
mfgpt_32.c
microcode.c
module_32.c
module_64.c
mpparse_32.c
mpparse_64.c
msr.c
nmi_32.c
nmi_64.c
numaq_32.c
paravirt_32.c paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
pci-calgary_64.c
pci-dma_32.c
pci-dma_64.c
pci-gart_64.c
pci-nommu_64.c
pci-swiotlb_64.c
pcspeaker.c
pmtimer_64.c
process_32.c
process_64.c
ptrace_32.c
ptrace_64.c
quirks.c
reboot_32.c
reboot_64.c
reboot_fixups_32.c
relocate_kernel_32.S
relocate_kernel_64.S
scx200_32.c
setup64.c
setup_32.c
setup_64.c
sigframe_32.h
signal_32.c
signal_64.c
smp_32.c
smp_64.c
smpboot_32.c
smpboot_64.c
smpcommon_32.c
srat_32.c
stacktrace.c
summit_32.c
suspend_64.c
suspend_asm_64.S
sys_i386_32.c
sys_x86_64.c
syscall_64.c
syscall_table_32.S
sysenter_32.c
tce_64.c
time_32.c
time_64.c
topology.c
trampoline_32.S
trampoline_64.S
traps_32.c
traps_64.c
tsc_32.c
tsc_64.c
tsc_sync.c
verify_cpu_64.S
vm86_32.c
vmi_32.c paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
vmiclock_32.c
vmlinux.lds.S
vmlinux_32.lds.S
vmlinux_64.lds.S
vsmp_64.c
vsyscall-int80_32.S
vsyscall-note_32.S
vsyscall-sigreturn_32.S
vsyscall-sysenter_32.S
vsyscall_32.S
vsyscall_32.lds.S
vsyscall_64.c
x8664_ksyms_64.c