[PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Aug 26 08:11:42 UTC 2014


On 25/08/14 19:29, Joel Sherrill wrote:
>
> On 8/25/2014 11:44 AM, Sebastian Huber wrote:
>> On 08/25/2014 05:04 PM, Joel Sherrill wrote:
>>> On 8/25/2014 5:10 AM, Sebastian Huber wrote:
>>>> On 25/08/14 11:45, Daniel Cederman wrote:
>>>>> ---
>>>>>     cpukit/score/cpu/sparc/rtems/score/cpu.h |    2 ++
>>>>>     1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h
>>>>> index 9c38b55..d4c2ef0 100644
>>>>> --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h
>>>>> +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h
>>>>> @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( "g6" );
>>>>>
>>>>>       void _CPU_SMP_Send_interrupt( uint32_t target_processor_index );
>>>>>
>>>>> +  #if defined(__leon__)
>>>>>       void _BSP_Start_multitasking( Context_Control *heir )
>>>>>         RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
>>>>>       #define _CPU_Start_multitasking _BSP_Start_multitasking
>>>>> +  #endif
>>>> In case it is LEON specific, then it should have a LEON specific name.
>>>>
>>> What's the overall rationale?
>> If its mandated by the CPU port, e.g. all the stuff defined by
>> no_cpu/cpu.h, then it should be _CPU_*.  In case all BSPs of a CPU port
>> must implement a CPU port function, then it is _BSP_*.  In case only
>> certain multilib variants implement it specifically, then they should
>> have an appropriate multilib specific prefix, e.g. _LEON3_* or
>> _ARMV7M_*.  Does this make sense?  Maybe we should add this stuff to the
>> CPU supplement.
>>
> Yeah. I get this part and we do need better rules but what's the issue
> with this
> one method? The ifdef made it look like only the leon flavor of RTEMS and no
> others even had this method.
>

Actually after one night of sleep I think it makes no sense.  Now I think its 
better that all the CPU port functions should start with _CPU_*, so it is 
easier to find them and set breakpoints.

I also think that this

#define _CPU_Start_multitasking

should be changed to something like

#define CPU_HAS_DEDICATED_START_MULTITASKING (TRUE | FALSE)

to be in line with all the other CPU port variants, e.g. 
CPU_HAS_SOFTWARE_INTERRUPT_STACK etc.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list