Commit Graph

20 Commits

Author SHA1 Message Date
Sebastian Huber
27bfcd88f7 score: Delete _CPU_Context_Fp_start()
Since the FP area pointer is passed by reference in
_CPU_Context_Initialize_fp() the optional FP area adjustment via
_CPU_Context_Fp_start() is superfluous.  It is also wrong with respect
to memory management, e.g. pointer passed to _Workspace_Free() may be
not the one returned by _Workspace_Allocate().

Close #1400.
2017-01-26 07:31:09 +01:00
Sebastian Huber
4aa23c9641 Remove CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN
Use de-facto standard BYTE_ORDER instead.

Close #2803.
2017-01-24 08:39:22 +01:00
Sebastian Huber
84e6f15c82 score: Robust thread dispatch
On SMP configurations, it is a fatal error to call blocking operating
system with interrupts disabled, since this prevents delivery of
inter-processor interrupts. This could lead to executing threads which
are not allowed to execute resulting in undefined behaviour.

The ARM Cortex-M port has a similar problem, since the interrupt state
is not a part of the thread context.

Update #2811.
2016-11-23 12:52:06 +01:00
Sebastian Huber
408609f6b9 score: Add _ISR_Is_enabled()
In contrast to _ISR_Get_level() the _ISR_Is_enabled() function evaluates
a level parameter and returns a boolean value.

Update #2811.
2016-11-18 07:30:35 +01:00
Sebastian Huber
141e16d225 rtems: Conditionally define rtems_interrupt_frame
Update #2808.
2016-11-18 07:30:32 +01:00
Sebastian Huber
82d30a310c score: Move CPU_PER_CPU_CONTROL_SIZE
Move CPU_PER_CPU_CONTROL_SIZE and the optional CPU_Per_CPU_control to
<rtems/score/cpuimpl.h> to hide it from <rtems.h>.
2016-11-18 07:30:32 +01:00
Sebastian Huber
acc6d9bf37 score: Remove obsolete defines
The thread dispatch inline option is no longer used.
2016-11-18 07:30:31 +01:00
Sebastian Huber
df63fbd1ac score: Add <rtems/score/cpuimpl.h>
The aim of this file is to encapsulate CPU port implementation details.
This helps to hide implementation details from <rtems.h> which
indirectly includes <rtems/score/cpu.h>.
2016-11-07 07:39:41 +01:00
Sebastian Huber
9149c87ec7 score: Fix C/C++ compatibility issue
Only use CPU_Per_CPU_control if it contains at least one filed.  In GNU
C empty structures have a size of zero.  In C++ structures have a
non-zero size.  In case CPU_PER_CPU_CONTROL_SIZE is defined to zero,
then this structure is not used anymore.
2016-09-23 06:57:03 +02:00
Sebastian Huber
b04b76c6a0 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.
2016-06-08 15:48:03 +02:00
Sebastian Huber
18e29faf98 score: Delete CPU_USE_GENERIC_BITFIELD_DATA
Rename __log2table into _Bitfield_Leading_zeros since it acually returns
the count of leading zeros of an 8-bit integer.  The value for zero is a
bit odd.  Provide it unconditionally.
2016-06-08 15:48:03 +02:00
Sebastian Huber
ec5d7f92fd score: Delete dead copy and paste code 2016-06-08 15:48:02 +02:00
Sebastian Huber
decff899ec score: Add CPU_MAXIMUM_PROCESSORS
Maximum number of processors of all systems supported by this CPU port.
2016-03-04 13:36:08 +01:00
Sebastian Huber
ac13ffd155 epiphany: Delete unused SMP functions 2016-02-18 06:06:09 +01:00
Sebastian Huber
af3847a82a epiphany: Delete superfluous _CPU_Null_fp_context
Update #2559.
2016-02-17 09:15:01 +01:00
Sebastian Huber
a8865f8b41 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.
2016-01-26 09:07:30 +01:00
Sebastian Huber
01b32d44a4 score: Delete obsolete CPU_TIMESTAMP_* defines
Update #2271.
2016-01-25 12:05:10 +01:00
Sebastian Huber
143696acbd basedefs.h: Add and use RTEMS_NO_RETURN 2015-10-26 09:13:19 +01:00
Sebastian Huber
6959e663e4 epiphany: Delete CPU_UNROLL_ENQUEUE_PRIORITY 2015-10-07 09:13:23 +02:00
Hesham ALMatary
66a5000d78 cpukit: Add Epiphany architecture port v4 2015-05-21 16:03:34 -04:00