mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-08-27 17:06:01 +00:00
af7b086859
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>
27 lines
839 B
C
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 */
|