* startup/linkcmds: All SPARC executables should include
rtems_get_version_string so the monitor used can provide RTEMS
awareness based upon the version.
* user/datatypes.t: Add rtems_name. Add comment about
rtems_task_argument changing from simple unsigned thirty two bit
integer to being derived from a C99 uintptr_t in 4.8 and newer.
PR 1212/cpukit
* Makefile.am, configure.ac: Time slicing will not happen if the task
mode is changed from a non-timeslicing mode to timeslicing mode if it
is done by the executing thread (e.g. in its task body). This change
includes sp44 to demonstrate the problem and verify the correction.
* sp44/.cvsignore, sp44/Makefile.am, sp44/init.c, sp44/sp44.scn: New files.
PR 1212/cpukit
* rtems/src/taskmode.c, score/src/threadtickletimeslice.c: Time slicing
will not happen if the task mode is changed from a non-timeslicing
mode to timeslicing mode if it is done by the executing thread (e.g.
in its task body). This change includes sp44 to demonstrate the
problem and verify the correction.
PR 1265/cpukit
* score/include/rtems/score/object.h,
score/src/objectallocatebyindex.c: Rename index argument to avoid
warning when rtems.h and string.h are included at the same time by
user code.
PR 1291/cpukit
* posix/src/posixtimespecabsolutetimeout.c: New file.
* itron/inline/rtems/itron/semaphore.inl, itron/src/twai_sem.c,
posix/Makefile.am, posix/include/mqueue.h,
posix/include/rtems/posix/mqueue.h,
posix/include/rtems/posix/semaphore.h,
posix/include/rtems/posix/time.h, posix/src/condtimedwait.c,
posix/src/mqueuereceive.c, posix/src/mqueuerecvsupp.c,
posix/src/mqueuesend.c, posix/src/mqueuesendsupp.c,
posix/src/mqueuetimedreceive.c, posix/src/mqueuetimedsend.c,
posix/src/mutexfromcorestatus.c, posix/src/mutextimedlock.c,
posix/src/semaphorewaitsupp.c, posix/src/semtimedwait.c,
posix/src/semtrywait.c, posix/src/semwait.c, rtems/src/semobtain.c,
rtems/src/semtranslatereturncode.c,
score/include/rtems/score/coresem.h, score/src/coremsgseize.c,
score/src/coresemseize.c:
This patch addresses issues on implementation of the timeout on the
following POSIX services. Some of these services incorrectly took a
timeout as a relative time. Others would compute a 0 delta to timeout
if the absolute time and the current time were equal and thus
incorrectly block the caller forever. The root of the confusion is
that POSIX specifies that if the timeout is incorrect (e.g. in the
past, is now, or is numerically invalid), that it does not matter if
the call would succeed without blocking. This is in contrast to RTEMS
programming style where all errors are checked before any critical
sections are entered. This fix implemented a more uniform way of
handling POSIX absolute time timeouts.
+ pthread_cond_timedwait - could block forever
+ mq_timedreceive - used relative not absolute time
+ mq_timedsend - used relative not absolute time
+ pthread_mutex_timedlock - used relative not absolute time
+ pthread_rwlock_timedrdlock- used relative not absolute time
+ pthread_rwlock_timedwrlock- used relative not absolute time
+ sem_timedwait - could block forever
PR 1277/networking
* libnetworking/netinet/in_cksum_i386.h: Use q instead of r in
constraint for assembly language. This restricts the register choice
to the a-d registers.