From a8865f8b415788c4e9bb7f68e38d41aec0e485db Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 25 Jan 2016 10:20:28 +0100 Subject: score: Introduce CPU_CACHE_LINE_BYTES Add CPU_CACHE_LINE_BYTES for the maximum cache line size in bytes. The actual processor may use no cache or a smaller cache line size. --- cpukit/score/cpu/no_cpu/rtems/score/cpu.h | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'cpukit/score/cpu/no_cpu') diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h index ab81e649ef..67a725c09d 100644 --- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h +++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h @@ -310,6 +310,13 @@ extern "C" { */ #define CPU_STACK_GROWS_UP TRUE +/** + * The maximum cache line size in bytes. + * + * The actual processor may use no cache or a smaller cache line size. + */ +#define CPU_CACHE_LINE_BYTES 32 + /** * The following is the variable attribute used to force alignment * of critical RTEMS structures. On some processors it may make @@ -317,23 +324,11 @@ extern "C" { * the minimum requirements of the compiler in order to have as * much of the critical data area as possible in a cache line. * - * The placement of this macro in the declaration of the variables - * is based on the syntactically requirements of the GNU C - * "__attribute__" extension. For example with GNU C, use - * the following to force a structures to a 32 byte boundary. - * - * __attribute__ ((aligned (32))) - * - * NOTE: Currently only the Priority Bit Map table uses this feature. - * To benefit from using this, the data must be heavily - * used so it will stay in the cache and used frequently enough - * in the executive to justify turning this on. - * * Port Specific Information: * * XXX document implementation including references if appropriate */ -#define CPU_STRUCTURE_ALIGNMENT +#define CPU_STRUCTURE_ALIGNMENT RTEMS_ALIGNED( CPU_CACHE_LINE_BYTES ) /** * @defgroup CPUEndian Processor Dependent Endianness Support -- cgit v1.2.3