[PATCH 2/5] score: Split wkspace.c

Joel Sherrill joel at rtems.org
Tue Nov 30 13:49:16 UTC 2021


On Mon, Nov 29, 2021, 4:29 AM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> Splitting the file avoids unnecessary link-time dependencies.
>

How? What were they? All bsps compile and link with the per item options so
what tripped the dependency? Adding that to the log message would be
appreciated


---
>  cpukit/score/src/wkspace.c         | 15 ---------
>  cpukit/score/src/wkspaceallocate.c | 47 +++++++++++++++++++++++++++
>  cpukit/score/src/wkspacefree.c     | 51 ++++++++++++++++++++++++++++++
>  spec/build/cpukit/librtemscpu.yml  |  2 ++
>  4 files changed, 100 insertions(+), 15 deletions(-)
>  create mode 100644 cpukit/score/src/wkspaceallocate.c
>  create mode 100644 cpukit/score/src/wkspacefree.c
>
> diff --git a/cpukit/score/src/wkspace.c b/cpukit/score/src/wkspace.c
> index e4ba753435..7930a1fdc1 100644
> --- a/cpukit/score/src/wkspace.c
> +++ b/cpukit/score/src/wkspace.c
> @@ -13,7 +13,6 @@
>
>  /*
>   * Copyright (C) 2012, 2020 embedded brains GmbH (
> http://www.embedded-brains.de)
> - * Copyright (C) 1989, 2008 On-Line Applications Research Corporation
> (OAR)
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
> @@ -126,17 +125,3 @@ void _Workspace_Handler_initialization(
>
>    _Heap_Protection_set_delayed_free_fraction( &_Workspace_Area, 1 );
>  }
> -
> -void *_Workspace_Allocate( size_t size )
> -{
> -  return _Heap_Allocate( &_Workspace_Area, size );
> -}
> -
> -void _Workspace_Free( void *block )
> -{
> -  bool ok;
> -
> -  ok = _Heap_Free( &_Workspace_Area, block );
> -  _Assert( ok );
> -  (void) ok;
> -}
> diff --git a/cpukit/score/src/wkspaceallocate.c
> b/cpukit/score/src/wkspaceallocate.c
> new file mode 100644
> index 0000000000..40a4d35eb1
> --- /dev/null
> +++ b/cpukit/score/src/wkspaceallocate.c
> @@ -0,0 +1,47 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +
> +/**
> + * @file
> + *
> + * @ingroup RTEMSScoreWorkspace
> + *
> + * @brief This source file contains the implementation of
> + *   _Workspace_Allocate().
> + */
> +
> +/*
> + * Copyright (C) 1989, 2008 On-Line Applications Research Corporation
> (OAR)
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
> THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
> BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <rtems/score/wkspace.h>
> +#include <rtems/score/heapimpl.h>
> +
> +void *_Workspace_Allocate( size_t size )
> +{
> +  return _Heap_Allocate( &_Workspace_Area, size );
> +}
> diff --git a/cpukit/score/src/wkspacefree.c
> b/cpukit/score/src/wkspacefree.c
> new file mode 100644
> index 0000000000..c09a9ee0c1
> --- /dev/null
> +++ b/cpukit/score/src/wkspacefree.c
> @@ -0,0 +1,51 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +
> +/**
> + * @file
> + *
> + * @ingroup RTEMSScoreWorkspace
> + *
> + * @brief This source file contains the implementation of
> _Workspace_Free().
> + */
> +
> +/*
> + * Copyright (C) 1989, 2008 On-Line Applications Research Corporation
> (OAR)
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
> THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
> BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <rtems/score/wkspace.h>
> +#include <rtems/score/assert.h>
> +#include <rtems/score/heapimpl.h>
> +
> +void _Workspace_Free( void *block )
> +{
> +  bool ok;
> +
> +  ok = _Heap_Free( &_Workspace_Area, block );
> +  _Assert( ok );
> +  (void) ok;
> +}
> diff --git a/spec/build/cpukit/librtemscpu.yml
> b/spec/build/cpukit/librtemscpu.yml
> index 111b6867ed..b6b3a09c2b 100644
> --- a/spec/build/cpukit/librtemscpu.yml
> +++ b/spec/build/cpukit/librtemscpu.yml
> @@ -1599,7 +1599,9 @@ source:
>  - cpukit/score/src/watchdogtick.c
>  - cpukit/score/src/watchdogtickssinceboot.c
>  - cpukit/score/src/watchdogtimeslicedefault.c
> +- cpukit/score/src/wkspaceallocate.c
>  - cpukit/score/src/wkspace.c
> +- cpukit/score/src/wkspacefree.c
>  - cpukit/score/src/wkspaceisunifieddefault.c
>  - cpukit/score/src/wkspacemallocinitdefault.c
>  - cpukit/score/src/wkspacemallocinitunified.c
> --
> 2.31.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>


More information about the devel mailing list