[PATCH 3/4] score: Add _Assert_Thread_dispatching_repressed()

Gedare Bloom gedare at rtems.org
Fri Jul 26 12:59:05 UTC 2013


Does dispatch_repressed == dispatch_disabled || isr_disabled ?

Is there a real difference between repressed and disabled?

On Fri, Jul 26, 2013 at 8:48 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
> ---
>  cpukit/score/Makefile.am                           |    1 +
>  cpukit/score/include/rtems/score/assert.h          |   12 ++++++++
>  .../score/src/assertthreaddispatchingrepressed.c   |   28 ++++++++++++++++++++
>  3 files changed, 41 insertions(+), 0 deletions(-)
>  create mode 100644 cpukit/score/src/assertthreaddispatchingrepressed.c
>
> diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am
> index b623732..67d4b5e 100644
> --- a/cpukit/score/Makefile.am
> +++ b/cpukit/score/Makefile.am
> @@ -316,6 +316,7 @@ libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \
>      src/chainextract.c src/chainget.c src/chaininsert.c \
>      src/chainappendempty.c src/chainprependempty.c src/chaingetempty.c \
>      src/chainnodecount.c \
> +    src/assertthreaddispatchingrepressed.c \
>      src/interr.c src/isr.c src/wkspace.c src/wkstringduplicate.c
>
>  EXTRA_DIST = src/Unlimited.txt
> diff --git a/cpukit/score/include/rtems/score/assert.h b/cpukit/score/include/rtems/score/assert.h
> index 205515d..174676e 100644
> --- a/cpukit/score/include/rtems/score/assert.h
> +++ b/cpukit/score/include/rtems/score/assert.h
> @@ -38,6 +38,18 @@ extern "C" {
>    #define _Assert( _e ) ( ( void ) 0 )
>  #endif
>
> +/**
> + * @brief Asserts that thread dispatching is repressed.
> + *
> + * Thread dispatching can be repressed via _Thread_Disable_dispatch() or
> + * _ISR_Disable().
> + */
> +#if defined( RTEMS_DEBUG )
> +  void _Assert_Thread_dispatching_repressed( void );
> +#else
> +  #define _Assert_Thread_dispatching_repressed() ( ( void ) 0 )
> +#endif
> +
>  #ifdef __cplusplus
>  }
>  #endif /* __cplusplus */
> diff --git a/cpukit/score/src/assertthreaddispatchingrepressed.c b/cpukit/score/src/assertthreaddispatchingrepressed.c
> new file mode 100644
> index 0000000..44907f6
> --- /dev/null
> +++ b/cpukit/score/src/assertthreaddispatchingrepressed.c
> @@ -0,0 +1,28 @@
> +/*
> + * Copyright (c) 2013 embedded brains GmbH.  All rights reserved.
> + *
> + *  embedded brains GmbH
> + *  Dornierstr. 4
> + *  82178 Puchheim
> + *  Germany
> + *  <rtems at embedded-brains.de>
> + *
> + * The license and distribution terms for this file may be
> + * found in the file LICENSE in this distribution or at
> + * http://www.rtems.com/license/LICENSE.
> + */
> +
> +#if HAVE_CONFIG_H
> +  #include "config.h"
> +#endif
> +
> +#include <rtems/score/assert.h>
> +#include <rtems/score/isr.h>
> +#include <rtems/score/threaddispatch.h>
> +
> +#if defined( RTEMS_DEBUG )
> +  void _Assert_Thread_dispatching_repressed( void )
> +  {
> +    _Assert( !_Thread_Dispatch_is_enabled() || _ISR_Get_level() != 0 );
> +  }
> +#endif
> --
> 1.7.7
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel



More information about the devel mailing list