diff options
Diffstat (limited to 'include/asm-sparc64/elf.h')
-rw-r--r-- | include/asm-sparc64/elf.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/include/asm-sparc64/elf.h b/include/asm-sparc64/elf.h index 69539a8ab833..303d85e2f82e 100644 --- a/include/asm-sparc64/elf.h +++ b/include/asm-sparc64/elf.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #ifdef __KERNEL__ | 10 | #ifdef __KERNEL__ |
11 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
12 | #include <asm/uaccess.h> | 12 | #include <asm/uaccess.h> |
13 | #include <asm/spitfire.h> | ||
13 | #endif | 14 | #endif |
14 | 15 | ||
15 | /* | 16 | /* |
@@ -68,6 +69,7 @@ | |||
68 | #define HWCAP_SPARC_MULDIV 8 | 69 | #define HWCAP_SPARC_MULDIV 8 |
69 | #define HWCAP_SPARC_V9 16 | 70 | #define HWCAP_SPARC_V9 16 |
70 | #define HWCAP_SPARC_ULTRA3 32 | 71 | #define HWCAP_SPARC_ULTRA3 32 |
72 | #define HWCAP_SPARC_BLKINIT 64 | ||
71 | 73 | ||
72 | /* | 74 | /* |
73 | * These are used to set parameters in the core dumps. | 75 | * These are used to set parameters in the core dumps. |
@@ -145,11 +147,21 @@ typedef struct { | |||
145 | instruction set this cpu supports. */ | 147 | instruction set this cpu supports. */ |
146 | 148 | ||
147 | /* On Ultra, we support all of the v8 capabilities. */ | 149 | /* On Ultra, we support all of the v8 capabilities. */ |
148 | #define ELF_HWCAP ((HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | \ | 150 | static inline unsigned int sparc64_elf_hwcap(void) |
149 | HWCAP_SPARC_SWAP | HWCAP_SPARC_MULDIV | \ | 151 | { |
150 | HWCAP_SPARC_V9) | \ | 152 | unsigned int cap = (HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | |
151 | ((tlb_type == cheetah || tlb_type == cheetah_plus) ? \ | 153 | HWCAP_SPARC_SWAP | HWCAP_SPARC_MULDIV | |
152 | HWCAP_SPARC_ULTRA3 : 0)) | 154 | HWCAP_SPARC_V9); |
155 | |||
156 | if (tlb_type == cheetah || tlb_type == cheetah_plus) | ||
157 | cap |= HWCAP_SPARC_ULTRA3; | ||
158 | else if (tlb_type == hypervisor) | ||
159 | cap |= HWCAP_SPARC_BLKINIT; | ||
160 | |||
161 | return cap; | ||
162 | } | ||
163 | |||
164 | #define ELF_HWCAP sparc64_elf_hwcap(); | ||
153 | 165 | ||
154 | /* This yields a string that ld.so will use to load implementation | 166 | /* This yields a string that ld.so will use to load implementation |
155 | specific libraries for optimization. This is more specific in | 167 | specific libraries for optimization. This is more specific in |