| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This is the very simple implementation specified by the Open Group
for implementations with 1:1 kernel thread to user thread mappings.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_getconcurrency.html
updates #2680.
|
|
|
|
|
|
|
|
|
|
| |
POSIX key destructors must be called during thread restart. Just like
the POSIX cleanup handlers. This ensures that the TLS object
destructors are called during thread restart for example. It is
important for the global construction, which uses a thread restart to
run the Init task in a clean environment.
Close #2689.
|
|
|
|
|
|
| |
rcsid is defined, but not used. So discard it.
Signed-off-by: Peng Fan <van.freenix@gmail.com>
|
| |
|
|
|
|
|
|
| |
Apparently killinfo() is not defined by POSIX, glibc or FreeBSD. Rename
killinfo() to _POSIX_signals_Send() to cleary mark it as an internal
function.
|
|
|
|
| |
Works also with previous Newlib versions.
|
| |
|
| |
|
| |
|
|
|
|
| |
Use Heap_Statistics::used_blocks instead.
|
|
|
|
|
| |
Get region and lock allocator in _Region_Get_and_lock() in case the
region exists and unlock it in _Region_Unlock().
|
|
|
|
|
|
|
| |
This functions supports only local objects. Thus, drop the location
parameter which was unused by all callers.
Remove superfluous includes from Classic Region implementation.
|
| |
|
|
|
|
|
| |
The heap protection enabled by RTEMS_DEBUG offers the same functionality
and more.
|
|
|
|
| |
Update #2555.
|
|
|
|
| |
Update #2555.
|
| |
|
|
|
|
|
|
| |
Drop superfluous <stdlib.h> include from <rtems/diskdevs.h> since this
leads to conflicts with the latest Newlib in case this header file is
used in the FreeBSD kernel space, e.g. for USB mass storage support.
|
|
|
|
|
| |
Newlib provides now a declration for random() in <stdlib.h>. This
confilicts with the define in <rtems/rtems_bsdnet_internal.h>.
|
| |
|
|
|
|
|
| |
Call _Malloc_Process_deferred_frees() owning the allocator lock to
prevent deletion of the executing thread while doing the deferred frees.
|
| |
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
Use an ISR lock to protect the partition state changes.
Update #2555.
|
|
|
|
|
|
|
| |
Use a red-black tree to lookup active global objects by identifier or
name.
Update #2555.
|
|
|
|
| |
Update #2555.
|
| |
|
|
|
|
|
|
| |
Do not save and restore the thread wait information. This is
superfluous and may overwrite thread wait information updates due to
interrupts leading to system corruption.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The thread queue implementation was heavily reworked to support SMP.
This broke the multiprocessing support of the thread queues. This is
fixed by this patch.
A thread proxy is unblocked due to three reasons
1) timeout,
2) request satisfaction, and
3) extraction.
In case 1) no MPCI message must be sent. This is ensured via the
_Thread_queue_MP_callout_do_nothing() callout set during
_Thread_MP_Allocate_proxy().
In case 2) and 3) an MPCI message must be sent. In case we interrupt
the blocking operation during _Thread_queue_Enqueue_critical(), then
this message must be sent by the blocking thread. For this the new
fields Thread_Proxy_control::thread_queue_callout and
Thread_Proxy_control::thread_queue_id are used.
Delete the individual API MP callout types and use
Thread_queue_MP_callout throughout. This type is only defined in
multiprocessing configurations. Prefix the multiprocessing parameters
with mp_ to ease code review. Multiprocessing specific parameters are
optional due to use of a similar macro pattern. There is no overhead
for non-multiprocessing configurations.
|
|
|
|
|
| |
Also set the thread wait return code for thread proxies since this
causes no harm.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change _Thread_queue_Flush() into a macro that invokes
_Thread_queue_Do_flush() with the parameter set defined by
RTEMS_MULTIPROCESSING. For multiprocessing configurations add the
object identifier to avoid direct use of the thread wait information.
Use mp_ prefix for multiprocessing related parameters.
Rename Thread_queue_Flush_callout to Thread_queue_MP_callout since this
type will be re-used later for other operations as well.
|
|
|
|
|
|
| |
We must update the wait flags under protection of the current thread
lock, otherwise a _Thread_Timeout() running on another processor may
interfere.
|
|
|
|
| |
MP support was not implemented.
|
|
|
|
|
|
|
|
|
|
|
| |
This field was only by the monitor in non-multiprocessing
configurations. Add new field Thread_Wait_information::remote_id in
multiprocessing configurations and use it for the remote procedure call
thread queue.
Add _Thread_Wait_get_id() to obtain the object identifier for debug and
system information tools. Ensure the object layout via static asserts.
Add test cases to sptests/spthreadq01.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Use unprotected chain operation in _User_extensions_Remove_set() since
the caller must own the object allocator lock.
Update #2555.
|
|
|
|
|
|
|
|
|
|
|
| |
These were in libcsupport for historical reasons and the placement
no longer made sense.
As part of this move, some of the files were placed under subdirectories
which reflect their installed location.
Thank you git for allowing us to move files. Years of CVS resulted
in files being somewhere they no longer belonged.
|
|
|
|
|
| |
Change parameters of the objects thread queue extract callout to avoid a
cast and explicit use of the thread wait information.
|
| |
|
|
|
|
|
| |
No need to add an assert due to the fatal error parameter passed to
_Objects_MP_Allocate_and_open().
|