diff options
Diffstat (limited to 'arch/arm/include/asm/efi.h')
-rw-r--r-- | arch/arm/include/asm/efi.h | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/arch/arm/include/asm/efi.h b/arch/arm/include/asm/efi.h index e0eea72deb87..a708fa1f0905 100644 --- a/arch/arm/include/asm/efi.h +++ b/arch/arm/include/asm/efi.h | |||
@@ -17,34 +17,28 @@ | |||
17 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
18 | #include <asm/mmu_context.h> | 18 | #include <asm/mmu_context.h> |
19 | #include <asm/pgtable.h> | 19 | #include <asm/pgtable.h> |
20 | #include <asm/ptrace.h> | ||
20 | 21 | ||
21 | #ifdef CONFIG_EFI | 22 | #ifdef CONFIG_EFI |
22 | void efi_init(void); | 23 | void efi_init(void); |
23 | 24 | ||
24 | int efi_create_mapping(struct mm_struct *mm, efi_memory_desc_t *md); | 25 | int efi_create_mapping(struct mm_struct *mm, efi_memory_desc_t *md); |
26 | int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md); | ||
25 | 27 | ||
26 | #define efi_call_virt(f, ...) \ | 28 | #define arch_efi_call_virt_setup() efi_virtmap_load() |
27 | ({ \ | 29 | #define arch_efi_call_virt_teardown() efi_virtmap_unload() |
28 | efi_##f##_t *__f; \ | ||
29 | efi_status_t __s; \ | ||
30 | \ | ||
31 | efi_virtmap_load(); \ | ||
32 | __f = efi.systab->runtime->f; \ | ||
33 | __s = __f(__VA_ARGS__); \ | ||
34 | efi_virtmap_unload(); \ | ||
35 | __s; \ | ||
36 | }) | ||
37 | 30 | ||
38 | #define __efi_call_virt(f, ...) \ | 31 | #define arch_efi_call_virt(f, args...) \ |
39 | ({ \ | 32 | ({ \ |
40 | efi_##f##_t *__f; \ | 33 | efi_##f##_t *__f; \ |
41 | \ | ||
42 | efi_virtmap_load(); \ | ||
43 | __f = efi.systab->runtime->f; \ | 34 | __f = efi.systab->runtime->f; \ |
44 | __f(__VA_ARGS__); \ | 35 | __f(args); \ |
45 | efi_virtmap_unload(); \ | ||
46 | }) | 36 | }) |
47 | 37 | ||
38 | #define ARCH_EFI_IRQ_FLAGS_MASK \ | ||
39 | (PSR_J_BIT | PSR_E_BIT | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT | \ | ||
40 | PSR_T_BIT | MODE_MASK) | ||
41 | |||
48 | static inline void efi_set_pgd(struct mm_struct *mm) | 42 | static inline void efi_set_pgd(struct mm_struct *mm) |
49 | { | 43 | { |
50 | check_and_switch_context(mm, NULL); | 44 | check_and_switch_context(mm, NULL); |
@@ -59,7 +53,16 @@ void efi_virtmap_unload(void); | |||
59 | 53 | ||
60 | /* arch specific definitions used by the stub code */ | 54 | /* arch specific definitions used by the stub code */ |
61 | 55 | ||
62 | #define efi_call_early(f, ...) sys_table_arg->boottime->f(__VA_ARGS__) | 56 | #define efi_call_early(f, ...) sys_table_arg->boottime->f(__VA_ARGS__) |
57 | #define __efi_call_early(f, ...) f(__VA_ARGS__) | ||
58 | #define efi_is_64bit() (false) | ||
59 | |||
60 | struct screen_info *alloc_screen_info(efi_system_table_t *sys_table_arg); | ||
61 | void free_screen_info(efi_system_table_t *sys_table, struct screen_info *si); | ||
62 | |||
63 | static inline void efifb_setup_from_dmi(struct screen_info *si, const char *opt) | ||
64 | { | ||
65 | } | ||
63 | 66 | ||
64 | /* | 67 | /* |
65 | * A reasonable upper bound for the uncompressed kernel size is 32 MBytes, | 68 | * A reasonable upper bound for the uncompressed kernel size is 32 MBytes, |