Rename rtems_filesystem_location_exists_in_same_fs_instance_as() into
rtems_filesystem_location_exists_in_same_instance_as() for consistency
with other file system instance related functions.
Rename rtems_filesystem_location_is_root() into
rtems_filesystem_location_is_instance_root() to distinguish this from
the file system root directory of the current task environment.
Reject the removal of file system instance root nodes in rmdir() and
unlink() and return the EBUSY error status. File system instances can
be removed with unmount(). Remove root node special cases in IMFS,
DOSFS, and RFS.
The changes in _Thread_Dispatch() of commits
dad36c52b8 and
d4dc7c8196 introduced a severe bug which
destroys the real-time properties of RTEMS completely.
Consider the following scenario. We have three tasks L (lowest
priority), M (middle priority), and H (highest priority). Now let a
thread dispatch from M to L happen. An interrupt occurs in
_Thread_Dispatch() here:
void _Thread_Dispatch( void )
{
[...]
post_switch:
_ISR_Enable( level );
<-- INTERRUPT
<-- AFTER INTERRUPT
_Thread_Unnest_dispatch();
_API_extensions_Run_postswitch();
}
The interrupt event makes task H ready. The interrupt code will see
_Thread_Dispatch_disable_level > 0 and thus doesn't perform a
_Thread_Dispatch(). Now we return to position "AFTER INTERRUPT". This
means task L executes now although task H is ready! Task H will execute
once someone calls _Thread_Dispatch().
Formerly, mghttpd was conditional only on networking being
enabled. It uses on pthread and must also be conditional
on POSIX threads support being enabled.
The XDR library has a problem on architectures with short enums like the
default ARM EABI. Short enums means that the size of the enum type is
variable and the smallest integer type to hold all enum values will be
selected. For many enums this is char. The XDR library uses int32_t
for enum_t. There are several evil casts from an enum type to enum_t
which leads to invalid memory accesses on short enum architectures. A
workaround is to add appropriate dummy enum values.
- A typo prevents if_smc.c from being built when configured;
- The argument passed to the interrupt handler was incorrect and the
addition of support for RTEMS_INTERRUPT_SHARED exposed it;
- A "#ifdef DEBUG" is supposed to be "#if DEBUG" since 0 is supposed to
make it quiet.
The following were not used in any code:
__RTEMS_USE_TICKS_CPU_USAGE_STATISTICS__
__RTEMS_USE_TICKS_RATE_MONOTONIC_STATISTICS__
Both CPU Usage and Rate Monotonic Period Statistics are switched
to ticks resolution by configuring with __RTEMS_USE_TICKS_FOR_STATISTICS__
set to 1 on the configure command line.
The user has to explicitly enable this driver, choosing
it over the existing (and lame) CGA frame buffer driver
using USE_CIRRUS_GD5446=1 on the configure command line.
Implementation is tested to work on QEMU simulator only.
QEMU offers this hardware by default for PC platform but
it can be requested by "-vga cirrus" option for other PCI
aware systems in development/next QEMU releases as well.
Next sources have been used for driver implementation:
- RTEMS fb_vga.c - Rosimildo da Silva ( rdasilva@connecttel.com )
- Cirrus xf86 driver - used as VGA hardware setup documentation
- CL-GD5446 Technical Reference Manual, 1996, Second Edition
fb_vga.c has to be replaced by fb_cirrus.c in
rtems/c/src/lib/libbsp/i386/pc386/Makefile.am
to test the driver now. We expect to discus and include driver
section mechanism after driver testing.
Patch version 2:
- comments style updated according to Joel Sherrill review
- use static for variables and functions to compile without warnings
Signed-off-by: Alexandru-Sever Horin <alex.sever.h@gmail.com>
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
It is not so easy to use Termios for that. We already map CRNUL to CR,
thus we cannot ignore CRs. We could change the shell code to map CRNL
to a single line end, but this is more intrusive than the change here.
This code was reviewed as part of coverage analysis improvements. The
uncovered range had unclear documentation and the code itself was also
cleaned up to be easier to understand.
Author: Krzysztof Mięsowicz <krzysztof.miesowicz@gmail.com>