* libcsupport/src/privateenv.c, libmisc/cpuuse/cpuusagereport.c,
posix/Makefile.am, posix/include/rtems/posix/key.h,
posix/src/keycreate.c, posix/src/keydelete.c,
score/src/iterateoverthreads.c: Since removing ITRON, the loop over
all APIs for tasks has a path that cannot be reached. Either modify
the code or mark tests for NULL as RTEMS_DEBUG.
* posix/src/keyfreememory.c: New file.
* posix/Makefile.am, posix/src/clockgetres.c: Add clockgetres.c to set
of clock and delayt methods built when POSIX threads are disabled.
Ensure it builds when POSIX is disabled.
* libcsupport/Makefile.am, posix/Makefile.am, rtems/Makefile.am,
sapi/Makefile.am, score/Makefile.am,
score/include/rtems/score/heap.h: HEAP_BLOCK_USED_OVERHEAD was under
by one uint32_t. This showed up in the unlimited and heapwalk tests
on ARM targets.
* posix/Makefile.am, posix/src/mutex.c, posix/src/mutexinit.c: Add
initial support for the pthread mutex type attribute added by UNIX98.
It can be normal, recursive, errorcheck or default.
* posix/src/mutexattrgettype.c, posix/src/mutexattrsettype.c: New files.
* posix/Makefile.am, posix/include/rtems/posix/priority.h,
posix/include/rtems/posix/pthread.h,
posix/inline/rtems/posix/priority.inl, posix/src/killinfo.c,
posix/src/pthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadsetschedparam.c: Various modifications to improve
binary code coverage analysis. Some of these are to mark code as
debug only. Some are to break conditional expressions into multiple
lines. Some are to move inline methods that are not time critical
into subroutines to make them easier to test. Inlining them multiple
times means that their logic paths are spread across multiple
methods. This explodes the test cases required.
* posix/src/psxpriorityisvalid.c, posix/src/psxtransschedparam.c: New files.
* itron/src/chg_pri.c, itron/src/cre_tsk.c, itron/src/rot_rdq.c,
posix/Makefile.am, posix/include/rtems/posix/mutex.h,
posix/include/rtems/posix/priority.h, posix/src/mutex.c,
score/include/rtems/score/priority.h: Run all tests successfully with
maxixum number of priorities as 16 instead of 256. This was done by
temporarily modifying the score priority.h maximum. This allowed
testing of all API code to ensure that it worked properly with a
reduced number of priorities. Most modifications were to switch from
hard-coded maximum to using the SuperCore variable based upon
configured number.
* posix/src/mutexdefaultattributes.c: Removed.
* posix/Makefile.am, posix/include/rtems/posix/psignal.h: Add stubs for
gettimer() and setitimer().
* posix/src/getitimer.c, posix/src/setitimer.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.
* posix/Makefile.am, posix/include/rtems/posix/cond.h,
posix/include/rtems/posix/mutex.h, posix/inline/rtems/posix/cond.inl,
posix/inline/rtems/posix/mutex.inl: Do not include POSIX Mutex or
Condition Variable object get helpers because they are more
complicated than the norm. They can implicitly perform a create. They
cross the line as being too complex and large to inline since they
negatively impact size and binary test coverage.
* posix/src/condget.c, posix/src/mutexget.c: New files.
* Makefile.am, configure.ac, posix/Makefile.am, wrapup/Makefile.am:
Move Ada support code that is untestable from the Standard RTEMS Test
Suite into its own directory. All code in score, posix, rtems, and
sapi should be testable by the Standard RTEMS Test Suites. It was
buried under POSIX before so this should be a clearer location
anyway.
* libgnat/.cvsignore, libgnat/Makefile.am, libgnat/ada_intrsupp.c,
libgnat/adasupp.c: New files.
* posix/src/ada_intrsupp.c, posix/src/adasupp.c: Removed.
* posix/Makefile.am: Restructed to move the
OBJECTS_LOCAL case to the top of the switch statement and
eliminate the fall-through return of POSIX_BOTTOM_REACHED. These
changes produced simplier assembly code and allowed for complete
test coverage. Also applied some consistency to the functions
that translate the core status codes to POSIX status codes.
* posix/Makefile.am, posix/include/rtems/posix/time.h,
posix/src/adjtime.c, posix/src/alarm.c, posix/src/clockgetres.c,
posix/src/condtimedwait.c, posix/src/mqueuetimedreceive.c,
posix/src/mqueuetimedsend.c, posix/src/mutextimedlock.c,
posix/src/nanosleep.c, posix/src/posixtimespecabsolutetimeout.c,
posix/src/pthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadsetschedparam.c, posix/src/ptimer1.c,
posix/src/sched.c, posix/src/semtimedwait.c,
posix/src/sigtimedwait.c, posix/src/ualarm.c,
rtems/src/clocktodtoseconds.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c,
score/src/coretodget.c, score/src/coretodgetuptime.c,
score/src/coretodset.c, score/src/coretodtickle.c: Provide timespec
manipulation routines in the SuperCore. Use them everywhere possible.
This lead to significant cleanup in the API routines and eliminated
some of the same code from the POSIX API. At this point, the
SuperCore keeps time in POSIX timespec format properly from 1970. You
just cannot set it before 1988 in keeping with RTEMS traditional
behavior.
* score/include/rtems/score/timespec.h, score/src/timespecaddto.c,
score/src/timespecfromticks.c, score/src/timespecisvalid.c,
score/src/timespeclessthan.c, score/src/timespecsubtract.c,
score/src/timespectoticks.c: New files.
* posix/src/posixintervaltotimespec.c,
posix/src/posixtimespecsubtract.c,
posix/src/posixtimespectointerval.c: Removed.