score: Remove PRIORITY_PSEUDO_ISR thread priority

The uniprocessor schedulers had some special case logic for the
PRIORITY_PSEUDO_ISR priority.  Tasks with a priority of PRIORITY_PSEUDO_ISR
were allowed to preempt a not preemptible task.  If other higher priority task
are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible
task, then the other tasks run before the not preemptible task.  This made the
RTEMS_NO_PREEMPT mode ineffective.

Remove the PRIORITY_PSEUDO_ISR special case logic.  This simplifies the
uniprocessor schedulers.  Move the uniprocessor-specific scheduler support to
the new header file <rtems/score/scheduleruniimpl.h>.

Close #2365.
This commit is contained in:
Sebastian Huber
2022-07-15 09:16:04 +02:00
parent 0a1d2d7814
commit 7fe6d60bf0
26 changed files with 295 additions and 204 deletions

View File

@@ -396,6 +396,7 @@ install:
- cpukit/include/rtems/score/schedulersmp.h
- cpukit/include/rtems/score/schedulersmpimpl.h
- cpukit/include/rtems/score/schedulerstrongapa.h
- cpukit/include/rtems/score/scheduleruniimpl.h
- cpukit/include/rtems/score/semaphoreimpl.h
- cpukit/include/rtems/score/smp.h
- cpukit/include/rtems/score/smpbarrier.h