From b04b76c6a0c87ffc9670d356e793108411ce355a Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 7 Jun 2016 21:36:48 +0200 Subject: score: Simplify priority bit map implementation The priority bit map can deal with a maximum of 256 priority values ranging from 0 to 255. Consistently use an unsigned int for computation, due to the usual integer promotion rules. Make Priority_bit_map_Word definition architecture-independent and define it to uint16_t. This was already the case for all architectures except PowerPC. Adjust the PowerPC bitmap support accordingly. --- cpukit/score/cpu/powerpc/rtems/score/cpu.h | 3 ++- cpukit/score/cpu/powerpc/rtems/score/types.h | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'cpukit/score/cpu/powerpc/rtems') diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h index beb5127d8f..7a0fa23dcf 100644 --- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h @@ -981,6 +981,7 @@ void _CPU_Context_Initialize( { \ __asm__ volatile ("cntlzw %0, %1" : "=r" ((_output)), "=r" ((_value)) : \ "1" ((_value))); \ + (_output) = (_output) - 16; \ } /* end of Bitfield handler macros */ @@ -992,7 +993,7 @@ void _CPU_Context_Initialize( */ #define _CPU_Priority_Mask( _bit_number ) \ - ( 0x80000000 >> (_bit_number) ) + ( 0x8000u >> (_bit_number) ) /* * This routine translates the bit numbers returned by diff --git a/cpukit/score/cpu/powerpc/rtems/score/types.h b/cpukit/score/cpu/powerpc/rtems/score/types.h index f36038fe09..cdab30234d 100644 --- a/cpukit/score/cpu/powerpc/rtems/score/types.h +++ b/cpukit/score/cpu/powerpc/rtems/score/types.h @@ -51,7 +51,6 @@ extern "C" { /** Type that can store a 32-bit integer or a pointer. */ typedef uintptr_t CPU_Uint32ptr; -typedef uint32_t Priority_bit_map_Word; typedef void ppc_isr; #ifdef __cplusplus -- cgit v1.2.3