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