diff options
Diffstat (limited to 'kexec')
-rw-r--r-- | kexec/arch/ia64/Makefile | 1 | ||||
-rw-r--r-- | kexec/arch/ia64/kexec-iomem.c | 23 |
2 files changed, 24 insertions, 0 deletions
diff --git a/kexec/arch/ia64/Makefile b/kexec/arch/ia64/Makefile index 9aacb4b..a8a94fe 100644 --- a/kexec/arch/ia64/Makefile +++ b/kexec/arch/ia64/Makefile @@ -1,6 +1,7 @@ # # kexec ia64 (linux booting linux) # +KEXEC_C_SRCS+= kexec/arch/ia64/kexec-iomem.c KEXEC_C_SRCS+= kexec/arch/ia64/kexec-ia64.c KEXEC_C_SRCS+= kexec/arch/ia64/kexec-elf-ia64.c KEXEC_C_SRCS+= kexec/arch/ia64/kexec-elf-rel-ia64.c diff --git a/kexec/arch/ia64/kexec-iomem.c b/kexec/arch/ia64/kexec-iomem.c new file mode 100644 index 0000000..97f7730 --- /dev/null +++ b/kexec/arch/ia64/kexec-iomem.c @@ -0,0 +1,23 @@ +#include <stdint.h> +#include <stdio.h> +#include "../../kexec.h" +#include "../../crashdump.h" + +static const char proc_iomem_str[]= "/proc/iomem"; +static const char proc_iomem_machine_str[]= "/proc/iomem_machine"; + +/* + * On IA64 XEN the EFI tables are virtualised. + * For this reason on such systems /proc/iomem_machine is provided, + * which is based on the hypervisor's (machine's) EFI tables. + * If Xen is in use, then /proc/iomem is used for memory regions relating + * to the currently running dom0 kernel, and /proc/iomem_machine is used + * for regions relating to the machine itself or the hypervisor. + * If Xen is not in used, then /proc/iomem is always used. + */ +const char *proc_iomem(int machine) +{ + if (machine && xen_present()) + return proc_iomem_machine_str; + return proc_iomem_str; +} |