[PATCH 2/6] score: Add _Thread_MP_Extract_proxy()

Gedare Bloom gedare at rtems.org
Sat Nov 20 16:52:40 UTC 2021


On Mon, Nov 15, 2021 at 10:09 AM Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
>
> 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.
> ---
>  cpukit/include/rtems/score/objectdata.h    |  2 +-
>  cpukit/include/rtems/score/threadmp.h      | 13 ++++++
>  cpukit/include/rtems/score/threadqimpl.h   | 18 ---------
>  cpukit/posix/src/psignalunblockthread.c    | 16 +++++---
>  cpukit/score/src/threadqextractwithproxy.c | 46 +++++++++++-----------
>  cpukit/score/src/threadrestart.c           | 17 +++++---
>  spec/build/cpukit/librtemscpu.yml          |  1 -
>  spec/build/cpukit/objmpci.yml              |  1 +
>  8 files changed, 60 insertions(+), 54 deletions(-)
>
> diff --git a/cpukit/include/rtems/score/objectdata.h b/cpukit/include/rtems/score/objectdata.h
> index 149498df9c..c7fb33ca5b 100644
> --- a/cpukit/include/rtems/score/objectdata.h
> +++ b/cpukit/include/rtems/score/objectdata.h
> @@ -286,7 +286,7 @@ struct Objects_Information {
>
>  #if defined(RTEMS_MULTIPROCESSING)
>    /**
> -   * @brief This method is used by _Thread_queue_Extract_with_proxy().
> +   * @brief This method is used by _Thread_MP_Extract_proxy().
>     *
>     * This member is statically initialized and read-only.
>     */
> diff --git a/cpukit/include/rtems/score/threadmp.h b/cpukit/include/rtems/score/threadmp.h
> index 6cc68e6320..81a22e665e 100644
> --- a/cpukit/include/rtems/score/threadmp.h
> +++ b/cpukit/include/rtems/score/threadmp.h
> @@ -97,6 +97,19 @@ Thread_Control *_Thread_MP_Find_proxy (
>  #define _Thread_MP_Is_receive(_the_thread) \
>    ((_the_thread) == _MPCI_Receive_server_tcb)
>
> +/**
> + * @brief Extracts the proxy of the thread if necessary.
> + *
> + * This routine ensures that if there is a proxy for this thread on another
> + * node, it is also dealt with. A proxy is a data data that is on the thread
'data data' already existed / was copy-pasted, feel free to clean-up later


More information about the devel mailing list