diff options
| author | Richard Henderson <rth@kanga.twiddle.home> | 2004-04-02 19:43:31 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-02 19:43:31 -0800 |
| commit | 77afcd086ba4003282f3d40820c24826ff24b2aa (patch) | |
| tree | b3c1a4c32137369bc1edcec02db1572a20abc2ca /include | |
| parent | aa8c926585fbff7f109c3d6d98b6261213f6d8f3 (diff) | |
[ALPHA] Detect and export cache shapes to userland.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-alpha/elf.h | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/include/asm-alpha/elf.h b/include/asm-alpha/elf.h index df5aad88a5f2..b8f13146ee0c 100644 --- a/include/asm-alpha/elf.h +++ b/include/asm-alpha/elf.h @@ -137,10 +137,44 @@ extern int dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task); : amask (AMASK_CIX) ? "ev6" : "ev67"); \ }) +/* Reserve these numbers for any future use of a VDSO. */ +#if 0 +#define AT_SYSINFO 32 +#define AT_SYSINFO_EHDR 33 +#endif + +/* More complete cache descriptions than AT_[DIU]CACHEBSIZE. If the + value is -1, then the cache doesn't exist. Otherwise: + + bit 0-3: Cache set-associativity; 0 means fully associative. + bit 4-7: Log2 of cacheline size. + bit 8-31: Size of the entire cache >> 8. + bit 32-63: Reserved. +*/ + +#define AT_L1I_CACHESHAPE 34 +#define AT_L1D_CACHESHAPE 35 +#define AT_L2_CACHESHAPE 36 +#define AT_L3_CACHESHAPE 37 + #ifdef __KERNEL__ + #define SET_PERSONALITY(EX, IBCS2) \ set_personality(((EX).e_flags & EF_ALPHA_32BIT) \ ? PER_LINUX_32BIT : (IBCS2) ? PER_SVR4 : PER_LINUX) -#endif -#endif +extern int alpha_l1i_cacheshape; +extern int alpha_l1d_cacheshape; +extern int alpha_l2_cacheshape; +extern int alpha_l3_cacheshape; + +#define ARCH_DLINFO \ + do { \ + NEW_AUX_ENT(AT_L1I_CACHESHAPE, alpha_l1i_cacheshape); \ + NEW_AUX_ENT(AT_L1D_CACHESHAPE, alpha_l1d_cacheshape); \ + NEW_AUX_ENT(AT_L2_CACHESHAPE, alpha_l2_cacheshape); \ + NEW_AUX_ENT(AT_L3_CACHESHAPE, alpha_l3_cacheshape); \ + } while (0) + +#endif /* __KERNEL__ */ +#endif /* __ASM_ALPHA_ELF_H */ |
