forked from Imagelibrary/rtems
joel@OARcorp.com wrote: > > Chris, > > sp09 fails on the rtems_port_delete(0) call. This is supposed to give an > invalid id error. I can't find any changes other than the unlimited > objects patch which would have tripped this so would appreciate it if you > could look into it. I suspect that this is a side-effect of the unlimited > objects patch. > It is me. > > Basically, there are 0 ports configured in sp09. The test ends up > dereferecing NULL in local_table[0] and comes up with a non-NULL invalid > pointer. > The issue is not actually allocating a local_table for an object type which has a maximum value of 0. I cannot remember the exact workings of the id values and the local_table. I might have changed the nature from the pre-unlimited change. As you know the id's are an interesting game where performance is most important. > > I know the problem could be solved by adding a check for index == 0. But > I hate to slow this path down. I think you may have changed the way the > object information structure gets initialized. > ---- CVS log ---- This change lets the unlimited and sp09 tests run on the posix Linux BSP. A static local variable `null_local_table' has been added. This variable is always set to NULL. The `**local_table' element of the information structure is set to point to this variable earily in the initialisation. If the object type has more than 0 elements the `local_table' element is updated. All object types which have 0 elements reference `null_local_table'. This change fixes the problem sp09 found yet does not add any extra processing to the critical `_Objects_Get_local_object' function. ---- CVS log ----
#
# $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.