Files
Matt Evans af7b086859 kvm tools: Split x86 arch-specific bits into x86/
Create a new arch-specific subdirectory to contain architecture-specific code
and includes.

The Makefile now adds various arch-specific objects based on detected
architecture.  That aside, this patch should only contain code moves.  These
include:

- x86-specific kvm_cpu setup, kernel loading, memory setup etc. now in
  x86/kvm{-cpu}.c
- BIOS now lives in x86/bios/
- ioport setup
- KVM extensions are asserted in arch-specific kvm.c now, so each architecture
  can manage its own dependencies.
- Various architecture-specific #defines are moved into $(ARCH)/include/kvm{-cpu}.h
  such as struct kvm_cpu, KVM_NR_CPUS, KVM_32BIT_GAP_SIZE.

Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
2015-06-01 16:39:49 +01:00

27 lines
839 B
C

#ifndef KVM__INTERRUPT_H
#define KVM__INTERRUPT_H
#include <linux/types.h>
#include "kvm/bios.h"
#include "kvm/bios-export.h"
struct real_intr_desc {
u16 offset;
u16 segment;
} __attribute__((packed));
#define REAL_SEGMENT_SHIFT 4
#define REAL_SEGMENT(addr) ((addr) >> REAL_SEGMENT_SHIFT)
#define REAL_OFFSET(addr) ((addr) & ((1 << REAL_SEGMENT_SHIFT) - 1))
#define REAL_INTR_SIZE (REAL_INTR_VECTORS * sizeof(struct real_intr_desc))
struct interrupt_table {
struct real_intr_desc entries[REAL_INTR_VECTORS];
};
void interrupt_table__copy(struct interrupt_table *itable, void *dst, unsigned int size);
void interrupt_table__setup(struct interrupt_table *itable, struct real_intr_desc *entry);
void interrupt_table__set(struct interrupt_table *itable, struct real_intr_desc *entry, unsigned int num);
#endif /* KVM__INTERRUPT_H */