ia64/xen-unstable

view xen/include/xen/kexec.h @ 19800:78962f85c562

IOMMU: Add two generic functions to vendor neutral interface

Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 19 08:41:50 2009 +0100 (2009-06-19)
parents 390ef36eb596
children
line source
1 #ifndef __XEN_KEXEC_H__
2 #define __XEN_KEXEC_H__
4 #include <public/kexec.h>
5 #include <asm/percpu.h>
6 #include <xen/elfcore.h>
8 typedef struct xen_kexec_reserve {
9 unsigned long size;
10 unsigned long start;
11 } xen_kexec_reserve_t;
13 extern xen_kexec_reserve_t kexec_crash_area;
15 /* We have space for 4 images to support atomic update
16 * of images. This is important for CRASH images since
17 * a panic can happen at any time...
18 */
20 #define KEXEC_IMAGE_DEFAULT_BASE 0
21 #define KEXEC_IMAGE_CRASH_BASE 2
22 #define KEXEC_IMAGE_NR 4
24 int machine_kexec_load(int type, int slot, xen_kexec_image_t *image);
25 void machine_kexec_unload(int type, int slot, xen_kexec_image_t *image);
26 void machine_kexec_reserved(xen_kexec_reserve_t *reservation);
27 void machine_reboot_kexec(xen_kexec_image_t *image);
28 void machine_kexec(xen_kexec_image_t *image);
29 void kexec_crash(void);
30 void kexec_disable_iosapic(void);
31 void kexec_crash_save_cpu(void);
32 crash_xen_info_t *kexec_crash_save_info(void);
33 void machine_crash_shutdown(void);
34 int machine_kexec_get(xen_kexec_range_t *range);
36 /* vmcoreinfo stuff */
37 #define VMCOREINFO_BYTES (4096)
38 #define VMCOREINFO_NOTE_NAME "VMCOREINFO_XEN"
39 void arch_crash_save_vmcoreinfo(void);
40 void vmcoreinfo_append_str(const char *fmt, ...)
41 __attribute__ ((format (printf, 1, 2)));
42 #define VMCOREINFO_PAGESIZE(value) \
43 vmcoreinfo_append_str("PAGESIZE=%ld\n", value)
44 #define VMCOREINFO_SYMBOL(name) \
45 vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned long)&name)
46 #define VMCOREINFO_SYMBOL_ALIAS(alias, name) \
47 vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #alias, (unsigned long)&name)
48 #define VMCOREINFO_STRUCT_SIZE(name) \
49 vmcoreinfo_append_str("SIZE(%s)=%zu\n", #name, sizeof(struct name))
50 #define VMCOREINFO_OFFSET(name, field) \
51 vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \
52 (unsigned long)offsetof(struct name, field))
53 #define VMCOREINFO_OFFSET_ALIAS(name, field, alias) \
54 vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #alias, \
55 (unsigned long)offsetof(struct name, field))
57 #endif /* __XEN_KEXEC_H__ */
59 /*
60 * Local variables:
61 * mode: C
62 * c-set-style: "BSD"
63 * c-basic-offset: 4
64 * tab-width: 4
65 * indent-tabs-mode: nil
66 * End:
67 */