Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _ASM_ARM_MODULE_H |
| 2 | #define _ASM_ARM_MODULE_H |
| 3 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 4 | #define Elf_Shdr Elf32_Shdr |
| 5 | #define Elf_Sym Elf32_Sym |
| 6 | #define Elf_Ehdr Elf32_Ehdr |
| 7 | |
Catalin Marinas | 2e1926e | 2009-02-11 13:09:54 +0100 | [diff] [blame] | 8 | struct unwind_table; |
| 9 | |
Catalin Marinas | 2e1926e | 2009-02-11 13:09:54 +0100 | [diff] [blame] | 10 | #ifdef CONFIG_ARM_UNWIND |
Phil Carmody | e5f7772 | 2010-08-19 15:16:37 +0100 | [diff] [blame] | 11 | enum { |
| 12 | ARM_SEC_INIT, |
| 13 | ARM_SEC_DEVINIT, |
| 14 | ARM_SEC_CORE, |
Phil Carmody | 09e56a2 | 2010-08-19 15:19:04 +0100 | [diff] [blame] | 15 | ARM_SEC_EXIT, |
| 16 | ARM_SEC_DEVEXIT, |
Phil Carmody | e5f7772 | 2010-08-19 15:16:37 +0100 | [diff] [blame] | 17 | ARM_SEC_MAX, |
| 18 | }; |
Phil Carmody | e5f7772 | 2010-08-19 15:16:37 +0100 | [diff] [blame] | 19 | #endif |
Catalin Marinas | 2e1926e | 2009-02-11 13:09:54 +0100 | [diff] [blame] | 20 | |
Russell King | 8931360 | 2010-11-12 13:02:46 +0000 | [diff] [blame] | 21 | struct mod_arch_specific { |
| 22 | #ifdef CONFIG_ARM_UNWIND |
| 23 | struct unwind_table *unwind[ARM_SEC_MAX]; |
| 24 | #endif |
| 25 | }; |
| 26 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 | /* |
Russell King | dc21af9 | 2011-01-04 19:09:43 +0000 | [diff] [blame] | 28 | * Add the ARM architecture version to the version magic string |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | */ |
Russell King | dc21af9 | 2011-01-04 19:09:43 +0000 | [diff] [blame] | 30 | #define MODULE_ARCH_VERMAGIC_ARMVSN "ARMv" __stringify(__LINUX_ARM_ARCH__) " " |
| 31 | |
| 32 | /* Add __virt_to_phys patching state as well */ |
| 33 | #ifdef CONFIG_ARM_PATCH_PHYS_VIRT |
| 34 | #define MODULE_ARCH_VERMAGIC_P2V "p2v8 " |
| 35 | #else |
| 36 | #define MODULE_ARCH_VERMAGIC_P2V "" |
| 37 | #endif |
| 38 | |
Dave Martin | 80f0aad | 2011-02-25 17:54:52 +0100 | [diff] [blame] | 39 | /* Add instruction set architecture tag to distinguish ARM/Thumb kernels */ |
| 40 | #ifdef CONFIG_THUMB2_KERNEL |
| 41 | #define MODULE_ARCH_VERMAGIC_ARMTHUMB "thumb2 " |
| 42 | #else |
| 43 | #define MODULE_ARCH_VERMAGIC_ARMTHUMB "" |
| 44 | #endif |
| 45 | |
Russell King | dc21af9 | 2011-01-04 19:09:43 +0000 | [diff] [blame] | 46 | #define MODULE_ARCH_VERMAGIC \ |
| 47 | MODULE_ARCH_VERMAGIC_ARMVSN \ |
Dave Martin | 80f0aad | 2011-02-25 17:54:52 +0100 | [diff] [blame] | 48 | MODULE_ARCH_VERMAGIC_ARMTHUMB \ |
Russell King | dc21af9 | 2011-01-04 19:09:43 +0000 | [diff] [blame] | 49 | MODULE_ARCH_VERMAGIC_P2V |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 50 | |
| 51 | #endif /* _ASM_ARM_MODULE_H */ |