| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Do not hide network file systems if RTEMS_NETWORKING is not defined,
since they may be provided by the LibBSD.
|
| |
|
| |
|
|
|
|
|
|
| |
In case the CPU architecture provides no specialized
_CPU_Bitfield_Find_first_bit() macro, then use the __builtin_clz()
builtin in case __GNUC__ is defined.
|
|
|
|
| |
Turn _Bitfield_Find_first_bit() macro into an inline function.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
Remove superfluous includes. Use one attribute compare for each
semaphore variant. Text size drops by 10% on PowerPC due to this.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Classic binary semaphores without a locking protocol
(RTEMS_BINARY_SEMAPHORE) could be released by everyone, e.g. in contrast
to the POSIX mutexes (all variants) or the Classic binary semphores with
priority inheritance or ceiling, there was no owner check in the release
path.
This behaviour was a bit unexpected and not documented. Add an owner
check to the release path. Update sptests/sp42 accordingly.
This change has nothing to do with the simple binary semaphores
(RTEMS_SIMPLE_BINARY_SEMAPHORE) which have no owner at all.
Update #2725
|
|
|
|
| |
Close #2729.
|
|
|
|
| |
Close #2728.
|
|
|
|
| |
Close #2727.
|
|
|
|
| |
Close #1452.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support creating directories for files with a path depth greater than 1. Some
tar files can have files with a path depth greater than 1 and no directory
entry in the tar file to create a directory.
Support overwriting existing files and directories failing in a similar
way to tar on common hosts. If a file is replaced with a file delete the
file and create a new file. If a directory replaces a file remove the file
and create the directory. If a file replaces a directory remove the directory,
and if the directory is not empty and cannot be removed report an error. If a
directory alreday exists do nothing leaving the contents untouched.
The untar code now shares the common header parsing and initial processing
with the actual writes still separate. No changes to the IMFS have been made.
Updates #2415.
Closes #2207.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The approach with the generation number was broken. The load/store of
the current lock, the thread queue and the thread queue operations were not
properly synchronized. Under certain conditions on a PowerPC T4240 old
thread queue operations operated on a new thread queue (NULL pointer).
|
|
|
|
|
|
|
|
|
| |
A read-modify-write operation is necessary to read the last value
written.
See for example C11 standard or Power ISA 2.07, Book II: Power ISA
Virtual Environment Architecture, Section 1.6.3 Memory Coherence
Required [Category: Memory Coherence] and Section 1.7.3 Atomic Update.
|
|
|
|
|
| |
Demonstrate that a read-modify-write atomic operation may be necessary
on some archtitectures to observe the latest value written.
|
|
|
|
| |
Update #2723.
|
| |
|
|
|
|
| |
We must use vfprintf().
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Move MrsP semaphore operations to a less prominent location. Fix field
name.
|
|
|
|
|
| |
Provide dedicated seize and surrender methods for inherit priority
mutexes. This eliminates CORE_mutex_Attributes.
|
|
|
|
|
| |
Rework seize and surrender methods to use CORE_ceiling_mutex_Control.
This eliminates CORE_mutex_Disciplines.
|
|
|
|
|
|
|
|
| |
Add CORE_recursive_mutex_Control and CORE_ceiling_mutex_Control to avoid
the run-time evaluation of attributes to figure out how a particular
mutex methods should behave. Start with the no protocol variants. This
eliminates the CORE_MUTEX_DISCIPLINES_FIFO and
CORE_MUTEX_DISCIPLINES_PRIORITY disciplines.
|
| |
|
|
|
|
| |
Avoid use of internal mutex methods for pthread_mutex_setprioceiling().
|
|
|
|
| |
Avoid use of internal mutex methods for condition variables.
|
| |
|
|
|
|
|
| |
Due to the unified status codes, we can now use a common flush and
destroy method for semaphore and mutex variants.
|
|
|
|
|
| |
Due to the unified status codes, we can now use a common flush method
for semaphore and mutex variants.
|
|
|
|
|
| |
Remove superfluous support for simple binary semaphores. With this we
can get rid of the CORE_MUTEX_NESTING_BLOCKS variant.
|
| |
|
| |
|
|
|
|
|
|
| |
Replace the ISR lock in MRSP_Control with a thread queue. This
simplifies the Classic semaphore implementation. Only the lock part of
the thread queue is used.
|
|
|
|
|
|
|
|
|
|
|
| |
Move the safety check performed by
_CORE_mutex_Check_dispatch_for_seize() out of the performance critical
path and generalize it. Blocking on a thread queue with an unexpected
thread dispatch disabled level is illegal in all system states.
Add the expected thread dispatch disable level (which may be 1 or 2
depending on the operation) to Thread_queue_Context and use it in
_Thread_queue_Enqueue_critical().
|
|
|
|
|
|
| |
Add _Thread_queue_Context_set_MP_callout() to simplify
_Thread_queue_Context_initialize(). This makes it possible to more
easily add additional fields to Thread_queue_Context.
|
|
|
|
|
|
| |
Adjust thread queue layout according to Newlib. This makes it possible
to use the same implementation for <sys/lock.h> and CORE mutexes in the
future.
|
| |
|
| |
|