* sapi/include/confdefs.h: When you disabled newlib reentrancy, it
still reserved memory for the reentrancy structure. This is about 1K
per task. On psim, we now reserve only 1936 bytes and only 240 remain
after all allocations. Further analysis will be required to narrow
that down. In addition, the new constant CONFIGURE_CONFDEFS_DEBUG can
be defined and the structure named Configuration_Memory_Debug will be
instantiated. This structure contains many of the component values
that go into the memory reservation computation. This is helpful when
tracking down problems.
* sapi/include/confdefs.h: The math in the _Configure_Object_RAM macro
was always adding heap overhead even when the number of objects
configured was zero and we would not do an allocation. This resulted
in an over estimation of the amount of Workspace required (~2K on
minimum.exe on PowerPC).
* cpukit/sapi/include/confdefs.h: Add missing quote to string to
remove warning.
* cpukit/score/cpu/m68k/rtems/score/m68k.h: Add the default
priority level for large memory Coldfires.
* posix/include/rtems/posix/pthread.h, posix/src/pthread.c,
posix/src/pthreadcreate.c, rtems/include/rtems.h, rtems/src/attr.c,
sapi/include/confdefs.h, sapi/include/rtems/config.h,
score/inline/rtems/score/stack.inl, score/src/isr.c,
score/src/mpci.c, score/src/threadcreateidle.c,
score/src/threadinitialize.c, score/src/threadstackallocate.c: Add
ability for application to configure minimum stack size. Add
RTEMS_CONFIGURED_MINIMUM_STACK_SIZE constant so user can clearly
indicate they want the configured as opposed to the recommended
minimum stack size.
* cpu_asm.S: Add Coldfire FPU support.
* rtems/score/m68k.h: Change the Coldfire CPU defines to be based
on the instruction set. Add Tiny RTEMS support to the small memory
model RTEMS processors.
* rtems/score/cpu.h: Handle the new Tiny RTEMS support.
* libcsupport/src/__times.c, libmisc/cpuuse/cpuusagereport.c,
libmisc/cpuuse/cpuusagereset.c, libmisc/monitor/mon-task.c,
rtems/include/rtems/rtems/ratemon.h, rtems/src/ratemongetstatus.c,
rtems/src/ratemonperiod.c, score/include/rtems/score/thread.h,
score/src/threaddispatch.c, score/src/threadinitialize.c,
score/src/threadtickletimeslice.c: Add typedefs for cpu usage and
period timing statistics. Also renamed related variables and
structure members so they are the same whether you are using
nanosecond (e.g. struct timespec) or ticks (e.g. uint32_t)
granularity. This lays the groundwork for future cleanup.
* sapi/include/confdefs.h: Rework to be more accurate on allocation. In
particular, there was a report from that Matthew Riek that memory was
being reserved twice for the IDLE task. This was covering up other
places that under allocated memory. Before I was done, I had reworked
the file to be easier to read, maintain and be more accurate.
* posix/src/psignal.c: Do not allocate any memory for queued signals if
the configuration parameter is 0. Before we would end up with an
allocation of 0 which rounded up and wasted some memory when POSIX
was configured.
* itron/include/rtems/itron/task.h, itron/src/task.c: ITRON currently
has no functional data in the user extension data area structure so
this disables the definition, allocation and deallocation of that
structure. If we ever have to add data to it, then it will be easy to
reenable.
* rtems/score/cpu.h: Add CPU_SIMPLE_VECTORED_INTERRUPTS porting
parameter to indicate that the port uses the Simple Vectored
Interrupt model or the Programmable Interrupt Controller Model. The
PIC model is implemented primarily in the BSP and it is responsible
for all memory allocation.
* score/src/objectgetinfo.c, score/src/objectidtoname.c,
score/src/threadget.c: Make sure the pointer to the API object table
is valid before derefencing it.
* rtems/score/cpu.h: Use a constant for CPU_STACK_MINIMUM_SIZE so it
can be used in cpp expressions. Using sizeof() requires actually
compiling the file.
* libfs/src/nfsclient/src/nfs.c:BUGFIX: must not attempt to
release node if rtems_filesystem_evaluate_path() fails
in nfs_eval_link() since pathloc contains no valid node.
* libmisc/shell/shell_getchar.c: Minor change so dropping connection
while at prompt results in shell logging out and connection still
being available.
reduce size of data area.
IMFS: Fixed creation of symbolic links to avoid a compiler warning.
DOSFS: Use LibBlock instead of read() to read the boot record.
* libnetworking/netinet/ip_output.c: when fragmenting
multicast packets M_MCAST must be set on all fragments.
This was fixed in FreeBSD ip_output.c 1.82 on 1998/8/23 !
(see my email to rtems-users from 2008/5/15).
* itron/include/rtems/itron/task.h, itron/src/del_tsk.c,
itron/src/exd_tsk.c, itron/src/task.c,
posix/include/rtems/posix/threadsup.h, posix/src/cancel.c,
posix/src/cancelrun.c, posix/src/pthread.c, posix/src/pthreadexit.c,
posix/src/setcancelstate.c, posix/src/setcanceltype.c,
posix/src/testcancel.c, rtems/src/taskdelete.c,
score/inline/rtems/score/object.inl, score/src/objectclose.c,
score/src/threadclose.c: Make all task delete/exit/cancel routines
follow the same critical section pattern. Also ensure that POSIX
cancelation routines are run at thread exit.
* libcsupport/Makefile.am, libcsupport/preinstall.am,
libcsupport/include/rtems/termiostypes.h: Move termios helper
routines from libchip to libcsupport. Add routine which makes it easy
for a termios device driver to inform termios of its default baud
rate. This avoids inconsistencies in later termios settings changes.
* score/src/threadchangepriority.c: Just in case the transient
state was set when we entered, ensure that it is still set when
we exit.
* score/src/threadclose.c: When a thread is being deleted, it should
go into the dormant state -- not the transient state.
* sapi/include/rtems/init.h, sapi/src/exinit.c: Refactored and renamed
initialization routines to rtems_initialize_data_structures,
rtems_initialize_before_drivers, rtems_initialize_device_drivers, and
rtems_initialize_start_multitasking. This opened the sequence up so
that bootcard() could provide a more robust and flexible framework
which is easier to explain and understand. This also lays the
groundwork for sharing the division of available memory between the
RTEMS workspace and heap and the C library initialization across all
BSPs.