[PATCH] rtems: Add bindings for languages other than C/C++

Joel Sherrill joel at rtems.org
Thu Nov 18 18:11:18 UTC 2021


Being picky, this doesn't add bindings. It adds real bodies so other
languages have something to bind to. This is certainly needed for Ada and
there would need to be Ada code to implement the bindings.

Patch is ok otherwise

--joel

On Thu, Nov 18, 2021, 9:55 AM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> Add bindings for languages other than C/C++ for
> rtems_scheduler_get_processor() and
> rtems_scheduler_get_processor_maximum().
> ---
>  cpukit/rtems/src/schedulergetprocessor.c    | 54 +++++++++++++++++++++
>  cpukit/rtems/src/schedulergetprocessormax.c | 54 +++++++++++++++++++++
>  spec/build/cpukit/librtemscpu.yml           |  2 +
>  3 files changed, 110 insertions(+)
>  create mode 100644 cpukit/rtems/src/schedulergetprocessor.c
>  create mode 100644 cpukit/rtems/src/schedulergetprocessormax.c
>
> diff --git a/cpukit/rtems/src/schedulergetprocessor.c
> b/cpukit/rtems/src/schedulergetprocessor.c
> new file mode 100644
> index 0000000000..14fbce3c49
> --- /dev/null
> +++ b/cpukit/rtems/src/schedulergetprocessor.c
> @@ -0,0 +1,54 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +
> +/**
> + * @file
> + *
> + * @ingroup RTEMSImplClassic
> + *
> + * @brief This source file contains the implementation of
> + *   rtems_scheduler_get_processor() as a binding for languages other than
> + *   C/C++.
> + */
> +
> +/*
> + * Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
> )
> + *
> + * 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/rtems/tasks.h>
> +
> +static uint32_t _RTEMS_Scheduler_get_processor( void )
> +{
> +  return rtems_scheduler_get_processor();
> +}
> +
> +#undef rtems_scheduler_get_processor
> +
> +uint32_t rtems_scheduler_get_processor( void )
> +{
> +  return _RTEMS_Scheduler_get_processor();
> +}
> diff --git a/cpukit/rtems/src/schedulergetprocessormax.c
> b/cpukit/rtems/src/schedulergetprocessormax.c
> new file mode 100644
> index 0000000000..c14b5a4546
> --- /dev/null
> +++ b/cpukit/rtems/src/schedulergetprocessormax.c
> @@ -0,0 +1,54 @@
> +/* SPDX-License-Identifier: BSD-2-Clause */
> +
> +/**
> + * @file
> + *
> + * @ingroup RTEMSImplClassic
> + *
> + * @brief This source file contains the implementation of
> + *   rtems_scheduler_get_processor_maximum() as a binding for languages
> other
> + *   than C/C++.
> + */
> +
> +/*
> + * Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
> )
> + *
> + * 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/rtems/tasks.h>
> +
> +static uint32_t _RTEMS_Scheduler_get_processor_maximum( void )
> +{
> +  return rtems_scheduler_get_processor_maximum();
> +}
> +
> +#undef rtems_scheduler_get_processor_maximum
> +
> +uint32_t rtems_scheduler_get_processor_maximum( void )
> +{
> +  return _RTEMS_Scheduler_get_processor_maximum();
> +}
> diff --git a/spec/build/cpukit/librtemscpu.yml
> b/spec/build/cpukit/librtemscpu.yml
> index 063917b410..9e57f346c2 100644
> --- a/spec/build/cpukit/librtemscpu.yml
> +++ b/spec/build/cpukit/librtemscpu.yml
> @@ -1270,6 +1270,8 @@ source:
>  - cpukit/rtems/src/rtemstimer.c
>  - cpukit/rtems/src/scheduleraddprocessor.c
>  - cpukit/rtems/src/schedulergetmaxprio.c
> +- cpukit/rtems/src/schedulergetprocessor.c
> +- cpukit/rtems/src/schedulergetprocessormax.c
>  - cpukit/rtems/src/schedulergetprocessorset.c
>  - cpukit/rtems/src/schedulerident.c
>  - cpukit/rtems/src/scheduleridentbyprocessor.c
> --
> 2.26.2
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>


More information about the devel mailing list