PR 1359/cpukit
* libcsupport/src/libio.c: rtems_libio_allocate:
rtems_libio_iop_freelist incorrectly zeroed on semaphore error. Now
checks error and does not modify anything until sure it has created
semaphore.
* libcsupport/src/gxx_wrappers.c, posix/include/mqueue.h,
posix/include/rtems/posix/semaphore.h,
posix/inline/rtems/posix/barrier.inl,
posix/inline/rtems/posix/key.inl,
posix/inline/rtems/posix/mqueue.inl,
posix/inline/rtems/posix/rwlock.inl,
posix/inline/rtems/posix/semaphore.inl,
posix/inline/rtems/posix/spinlock.inl,
posix/inline/rtems/posix/timer.inl, posix/src/condget.c,
posix/src/mqueuenametoid.c, posix/src/mutexget.c,
posix/src/semaphorenametoid.c, posix/src/semopen.c,
sapi/src/itronapi.c, sapi/src/posixapi.c: Make changes necessary for
all tests to run on SPARC with 16-bit Ids. This required ensuring
that all POSIX and compilering binding code makes a distinction
between the public Id type (e.g. pthread_t, etc.) and the RTEMS
Object_Id type. All POSIX Object Get routines should not take the
POSIX Id type as the argument. Sixteen bit RTEMS Ids should be placed
into the 32-bits reserved by the POSIX API type in a uniform manner
now. This removed all assumptions that the external Id types in POSIX
and ITRON are the same as the internal Object Id type.
* libcsupport/src/__times.c, posix/src/adjtime.c,
posix/src/clockgetres.c, posix/src/sysconf.c,
rtems/src/clockgettickspersecond.c, rtems/src/clockgettod.c,
rtems/src/clockset.c, rtems/src/clocktodvalidate.c,
score/src/timespecfromticks.c, score/src/timespectoticks.c,
score/src/ts64toticks.c: More case converted to use configuration
table entry not _TOD_Microseconds_per_tick.
* libcsupport/src/realloc.c, rtems/include/rtems/rtems/region.h,
rtems/src/regioncreate.c, rtems/src/regionextend.c,
rtems/src/regiongetsegment.c, rtems/src/regiongetsegmentsize.c,
rtems/src/regionmp.c, rtems/src/regionresizesegment.c,
sapi/include/rtems/config.h, score/include/rtems/score/heap.h,
score/include/rtems/score/protectedheap.h, score/src/heap.c,
score/src/heapallocate.c, score/src/heapallocatealigned.c,
score/src/heapextend.c, score/src/heapresizeblock.c,
score/src/heapsizeofuserarea.c, score/src/pheapallocate.c,
score/src/pheapallocatealigned.c, score/src/pheapextend.c,
score/src/pheapgetblocksize.c, score/src/pheapresizeblock.c: Change
sizes of heap/region and allocated objects in heap to intptr_t so
they can be larger than a single allocatable object (e.g. size_t).
* libcsupport/src/__times.c, libmisc/cpuuse/cpuusagereport.c,
libmisc/cpuuse/cpuusagereset.c, posix/src/clockgettime.c,
posix/src/pthread.c, posix/src/timersettime.c,
rtems/include/rtems/rtems/ratemon.h,
rtems/src/clockgetsecondssinceepoch.c, rtems/src/clockgetuptime.c,
rtems/src/ratemongetstatus.c, rtems/src/ratemonperiod.c,
rtems/src/ratemonreportstatistics.c, rtems/src/taskwakewhen.c,
rtems/src/timerfirewhen.c, rtems/src/timerserver.c,
rtems/src/timerserverfirewhen.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/score/thread.h,
score/include/rtems/score/tod.h, score/src/coretod.c,
score/src/coretodget.c, score/src/coretodgetuptime.c,
score/src/coretodset.c, score/src/coretodtickle.c,
score/src/threaddispatch.c, score/src/threadinitialize.c: Add
SuperCore handler Timestamp to provide an opaque class for the
representation and manipulation of uptime, time of day, and the
difference between two timestamps. By using SuperCore Timestamp, it
is clear which methods and APIs really have to be struct timespec and
which can be in an optimized native format.
* score/include/rtems/score/timestamp.h,
score/src/coretodgetuptimetimespec.c: New files.
* libcsupport/Makefile.am, posix/Makefile.am: Comment out including
files which contain routines which are now provided by the newlib
posix subdirectory. Document a few which come from the unix directory.
* libcsupport/src/newlibc_exit.c, score/src/threadhandler.c: Do not
think about running init/fini on AVR. We do not know what mechanism
it uses but this is not it.
* libcsupport/src/printk.c: Addresses can be larger than integers
so use long for %p formats.
* score/inline/rtems/score/address.inl: Offsets can be positive or
negative, so use int32_t. Also do math with intptr_t since there
are cases where the number of bits in an address do not equal the
number of bits in an integer.
* score/inline/rtems/score/heap.inl: Offsets can be positive or
negative, so use int32_t.
* libcsupport/src/malloc_statistics_helpers.c,
libcsupport/src/realloc.c, rtems/include/rtems/rtems/region.h,
rtems/include/rtems/rtems/support.h,
rtems/src/regiongetsegmentsize.c, rtems/src/regionresizesegment.c,
rtems/src/workspace.c, sapi/include/confdefs.h,
score/include/rtems/score/heap.h,
score/include/rtems/score/protectedheap.h,
score/include/rtems/score/wkspace.h, score/src/heap.c,
score/src/heapallocate.c, score/src/heapallocatealigned.c,
score/src/heapextend.c, score/src/heapresizeblock.c,
score/src/heapsizeofuserarea.c, score/src/pheapgetblocksize.c,
score/src/wkspace.c: Change size_t to ssize_t on all Heap, Workspace
and Region calls. On 16-bit architectures, size_t can be 16-bits
which would limit sizes to 64K.
* include/rtems/bspIo.h, libcsupport/Makefile.am: Add genchark() for
polled debug input from the same device as printk().
* libcsupport/src/getchark.c: New file.
* libcsupport/src/free.c, libcsupport/src/malloc.c,
libcsupport/src/malloc_initialize.c, libcsupport/src/malloc_p.h,
libcsupport/src/malloc_sbrk_helpers.c,
libcsupport/src/malloc_statistics_helpers.c,
libcsupport/src/malloc_walk.c, libcsupport/src/mallocfreespace.c,
libcsupport/src/mallocinfo.c, libcsupport/src/realloc.c,
libcsupport/src/rtems_memalign.c, sapi/include/confdefs.h,
score/inline/rtems/score/thread.inl: Add support for optionally
having a unified work area. In other words, the RTEMS Workspace and C
Program Heap are the same pool of memory.
* Makefile.am, preinstall.am, libcsupport/Makefile.am,
libcsupport/include/rtems/libcsupport.h,
libcsupport/include/rtems/libio.h, libcsupport/src/base_fs.c,
libcsupport/src/libio_init.c, libcsupport/src/newlibc_exit.c,
libcsupport/src/newlibc_init.c, libcsupport/src/sync.c,
libfs/Makefile.am, libfs/src/imfs/deviceio.c,
sapi/include/confdefs.h: Merge GSOC project code to add simple device
only filesystem (devfs), optionally completely drop out filesystem,
and to clean up disabling newlib reentrancy support. This dropped 17K
from the minimum.exe for sparc/sis and arm/rtl22xx_t now has a 15K
code space.
* libcsupport/src/__usrenv.c, libcsupport/src/newlibc_reent.c,
libfs/src/devfs/devclose.c, libfs/src/devfs/devfs.h,
libfs/src/devfs/devfs_eval.c, libfs/src/devfs/devfs_init.c,
libfs/src/devfs/devfs_mknod.c, libfs/src/devfs/devfs_node_type.c,
libfs/src/devfs/devfs_show.c, libfs/src/devfs/devioctl.c,
libfs/src/devfs/devopen.c, libfs/src/devfs/devread.c,
libfs/src/devfs/devstat.c, libfs/src/devfs/devwrite.c,
libfs/src/imfs/deviceerrno.c: New files.
* libcsupport/src/newlibc.c: Removed.
* libcsupport/include/clockdrv.h: The Shared Memory Driver no longer
requires the special IOCTL in Clock_control. This was a hack which
has existed since before the Classic API Timer Manager was
implemented. All implementations of and references to Clock_control
were removed.
* libcsupport/Makefile.am, libcsupport/src/newlibc.c: Split libc_init()
into a separate file to avoid linkage dependencies on newlibc.c which
in turn pulls in fclose() and other C library methods.
* libcsupport/src/newlibc_init.c: New file.
* libcsupport/src/_rename_r.c: Fixed return code bug. Add a check
to see if the 'to' path was a directory and removed the directory.
* libmisc/Makefile.am, libmisc/shell/shellconfig.h: Added the mv command.
* libmisc/shell/main_mv.c, libmisc/shell/pathnames-mv.h: New.
PR 537/bsps
* libcsupport/include/rtems/libcsupport.h, libcsupport/src/newlibc.c,
libcsupport/src/no_libc.c, libcsupport/src/unixlibc.c: Eliminate
vestiges of ticks_per_timeslice controlling newlib reentrancy. The
parameter was ignored in libc_init().