| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Directly use "static inline" which is available in C99 and later. This brings
the RTEMS implementation closer to standard C.
Close #3935.
|
|
|
|
| |
Updates #3053.
|
|
|
|
|
|
|
| |
Move _Thread_queue_Extract() since this function is not used by the core
services (threads, semaphores, mutexes, message queues).
Update #4546.
|
|
|
|
|
|
|
|
| |
Remove _Thread_queue_Extract_with_proxy() and move the proxy extraction
to _Thread_MP_Extract_proxy(). Move similar code blocks of the previous
caller of _Thread_queue_Extract_with_proxy() to helper functions.
Update #4546.
|
|
|
|
|
|
| |
Replace the boolen return value with the new enum
Thread_queue_Deadlock_status. This improves the code readability.
Improve documentation. Shorten function names.
|
| |
|
|
|
|
|
|
| |
In _Thread_queue_Flush_critical(), update the priority of the thread
queue owner only if necessary. The scheduler update priority operation
could be expensive.
|
|
|
|
|
| |
This function was only used in one place. Replace it with a call to
_Thread_queue_Resume().
|
|
|
|
|
| |
The _Thread_queue_First_locked() was only used in one place. Move the code of
this inline function to this place.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to ensure FIFO fairness across schedulers, the thread queue
surrender operation must be used to dequeue a thread from the thread
queue. The thread queue extract operation is intended for timeouts.
Add _Thread_queue_Resume() which may be used to make extracted or
surrendered threads ready again.
Remove the now unused _Thread_queue_Extract_critical() function.
Close #4509.
|
|
|
|
|
|
|
|
|
|
|
| |
The priority queues in clustered scheduling configurations use a per
scheduler priority queue rotation to ensure FIFO fairness across
schedulers. This mechanism is implemented in the thread queue surrender
operation. Unfortunately some semaphore and message queue directives
used wrongly the thread queue extract operation. Fix this through the
use of _Thread_queue_Surrender().
Update #4358.
|
|
|
|
|
|
|
| |
Set Thread_queue_Context::timeout_absolute in
_Thread_queue_Context_set_timeout_argument() to avoid using it uninitialized.
The bug was introduced by a89ecaa1a94d49ddae7753d6b83923e9d2a00486.
|
|
|
|
|
|
|
| |
Add Thread_queue_Context::timeout_absolute to specify an absolute or
relative timeout. This avoid having to get the current time twice for
timeouts relative to the current time. It moves also functionality to
common code.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Last use was removed by:
commit 54550e048d3a49435912797d2024f80671e93267
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date: Fri May 13 08:16:30 2016 +0200
posix: Rework pthread_join()
Rework pthread_join() to use _Thread_Join().
|
|
|
|
|
|
| |
Use common phrases for the file brief descriptions.
Update #3706.
|
|
|
|
| |
Update #3706.
|
|
|
|
| |
Update #3706
|
|
|
|
|
|
| |
This makes the @file documentation independent of the actual file name.
Update #3707.
|
|
|
|
|
|
|
|
|
| |
In standard C pointer operands are not allowed in integer constant
expressions. Avoid a static assertion based on an array typedef since
this could lead to warnings ("variably modified 'x' at file scope" and
"typedef 'x' locally defined but not used");
This implementation requires unique messages.
|
|
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
|