On Mon, Aug 06, 2012 at 03:27:04PM +0100, Stefano Stabellini wrote:
- Basic hypervisor.h and interface.h definitions.
- Skeleton enlighten.c, set xen_start_info to an empty struct.
- Make xen_initial_domain dependent on the SIF_PRIVILIGED_BIT.
The new code only compiles when CONFIG_XEN is set, that is going to be added to arch/arm/Kconfig in patch #11 "xen/arm: introduce CONFIG_XEN on ARM".
You can add my Ack, but do one change pls:
+/* XXX: Move pvclock definitions some place arch independent */
Just use 'TODO'
+struct pvclock_vcpu_time_info {
- u32 version;
- u32 pad0;
- u64 tsc_timestamp;
- u64 system_time;
- u32 tsc_to_system_mul;
- s8 tsc_shift;
- u8 flags;
- u8 pad[2];
+} __attribute__((__packed__)); /* 32 bytes */
+struct pvclock_wall_clock {
- u32 version;
- u32 sec;
- u32 nsec;
+} __attribute__((__packed__));
Mention the size and why it is OK to have it be a weird size while the one above is nicely padded.
+#endif
+#endif /* _ASM_ARM_XEN_INTERFACE_H */ diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile new file mode 100644 index 0000000..0bad594 --- /dev/null +++ b/arch/arm/xen/Makefile @@ -0,0 +1 @@ +obj-y := enlighten.o diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c new file mode 100644 index 0000000..d27c2a6 --- /dev/null +++ b/arch/arm/xen/enlighten.c @@ -0,0 +1,35 @@ +#include <xen/xen.h> +#include <xen/interface/xen.h> +#include <xen/interface/memory.h> +#include <xen/platform_pci.h> +#include <asm/xen/hypervisor.h> +#include <asm/xen/hypercall.h> +#include <linux/module.h>
+struct start_info _xen_start_info; +struct start_info *xen_start_info = &_xen_start_info; +EXPORT_SYMBOL_GPL(xen_start_info);
+enum xen_domain_type xen_domain_type = XEN_NATIVE; +EXPORT_SYMBOL_GPL(xen_domain_type);
+struct shared_info xen_dummy_shared_info; +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
+DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
+/* XXX: to be removed */
s/XXX/TODO/ here, and mention pls why it needs to be removed.
+__read_mostly int xen_have_vector_callback; +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+int xen_platform_pci_unplug = XEN_UNPLUG_ALL; +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);