Files
rtems/c
Joel Sherrill 16a9ee1d06 Bug report from Jiri Gaisler <jgais@ws.estec.esa.nl>:
> > I think I have found a bug in src/exec/scor/sparc/cpu/erc32.h in:
> >
> > #define ERC32_Disable_interrupt( _source, _previous ) \
> >   do { \
> >     unsigned32 _level; \
> >     unsigned32 _mask = 1 << (_source); \
> >     \
> >     sparc_disable_interrupts( _level ); \
> >       (_previous) = ERC32_MEC.Interrupt_Mask; \
> >       ERC32_MEC.Interrupt_Mask = _previous | _mask; \
> >     sparc_enable_interrupts( _level ); \
> >     (_previous) &= ~_mask; \                  <- IS THIS CORRECT...?
> >   } while (0)
> >
> > The previous interrupt mask is returned after first clearing the
> > bit to be disabled, regardless whether the bit was set before or
> > not. If the bit was set (interrupt masked), subsequent call to
> > ERC32_Restore_interrupt() will enable the interrupt even though
> > it was supposed to be masked. This is indeed what happens in
> > DEBUG_puts when polled console I/O is used. In my opinion, the
> > last statement in the macro should be removed - what is your opinion?
>
> I think the "~" shouldn't be there.  I recall that the intent of that line
> is to only return the state of the interrupts you were concerned with.
> Removing the line returns entire state.  Given that the value returned
> shuold only be used in conjunction with the map, I suppose either removing
> the ~ or the entire line is correct?   I can go either way.  Just let me
> know which you think is more correct and the source will change. :)

Hmmm, just removing the '~' should be OK. DEBUG_puts() seems to be the
only user of ERC32_Restore_interrupt() anyway ...
1999-01-13 14:13:47 +00:00
..
1998-10-26 15:46:09 +00:00

#
#  $Id$
#

This is the top level of the RTEMS directory structure.  The following
is a description of the files and directories in this directory:

  Makefile.in
    The top-level Make command file used to build the C implementation
    of RTEMS.  [RTEMS assumes the use of GNU make.]

  README
    This file.

  REQUIRES
    A list of the other tools which are assumed to be installed
    before RTEMS is built.

  SUPPORT
    Information on third-party support for RTEMS.

  build-tools
    This directory contains the source for various utilities
    needed to build RTEMS.

  make
    Make command files "included" from those in the source distribution.
    [RTEMS assumes the use of GNU make.]

  patches
    This directory contains patches for this release of RTEMS.

  src
    This directory contains the source code for the C
    implementation of RTEMS as well as the test suites, sample
    applications, Board Support Packages, Device Drivers, and
    support libraries.