[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