Age | Commit message (Collapse) | Author |
|
PR 1482
* posix/src/ptimer1.c: Exit dispatching critical section.
|
|
PR 1297/cpukit
* posix/src/prwlockinit.c: Fix NULL attribute pointer handling.
|
|
PR 1291/cpukit
* itron/inline/rtems/itron/semaphore.inl, itron/src/twai_sem.c,
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/mutextimedlock.c, posix/src/mutextranslatereturncode.c,
posix/src/posixtimespecabsolutetimeout.c,
posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c,
posix/src/semaphoretranslatereturncode.c,
posix/src/semaphorewaitsupp.c, posix/src/semtimedwait.c,
posix/src/semtrywait.c, posix/src/semwait.c,
posix/src/sigtimedwait.c, posix/src/timersettime.c,
posix/src/ualarm.c, rtems/src/semobtain.c,
rtems/src/semtranslatereturncode.c,
score/include/rtems/score/coremutex.h,
score/include/rtems/score/coresem.h, 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
|
|
* posix/Makefile.am: Remove these. They were proposed but never
standardized.
* posix/src/pthreadgetcputime.c, posix/src/pthreadsetcputime.c: Removed.
|
|
* posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c,
rtems/include/rtems/rtems/barrier.h,
score/src/corerwlockobtainread.c, score/src/corerwlockobtainwrite.c,
score/src/corerwlockrelease.c: Fixed several implementation errors.
|
|
PR 1266/cpukit
* posix/src/keycreate.c, posix/src/keyrundestructors.c: Use API instead
of class for key indexing.
|
|
Miscellaneous changes made after a review against the POSIX spec.
* posix/src/pbarrierinit.c, posix/src/prwlockinit.c: If the caller
passes a NULL in the attributes parameter, default attributes are used.
* posix/src/prwlockdestroy.c: If there is at least one thread
waiting, do not allow deletion.
* posix/src/prwlockwrlock.c: Corrected parameter passed to the core
operation used to obtain a RWLock for writing.
* posix/src/pspinlocktranslatereturncode.c,
score/include/rtems/score/corespinlock.h,
score/src/corespinlockrelease.c: If the current thread is not the
holder of the lock, do not allow an unlock and return EPERM.
* score/src/corerwlockobtainwrite.c: Corrected to use the operation
for queueing with a timeout handler.
|
|
* posix/src/semaphorecreatesupp.c: Fixed warning.
|
|
PR 1261/cpukit
* posix/src/semaphorecreatesupp.c: Initialize all fields during
semaphore creation.
|
|
PR 1260/cpukit
* posix/src/pthread.c: Get initial signals blocked from creating
thread not from ourselves.
|
|
* posix/Makefile.am: Always build nanosleep.
|
|
* itron/Makefile.am, itron/src/eventflags.c, itron/src/fmempool.c,
itron/src/itronintr.c, itron/src/itrontime.c, itron/src/network.c,
itron/src/port.c, itron/src/sysmgmt.c, itron/src/task.c,
itron/src/vmempool.c, posix/Makefile.am, posix/src/pthread.c,
rtems/src/taskinitusers.c, rtems/src/tasks.c,
sapi/include/confdefs.h, sapi/src/io.c: Various modification to
reduce executable size. Most were refactoring of files. Split ITRON
API files. Implemented mechanism to avoid initialization task/thread
loop being linked in when that style of task initialization was not
being used.
* itron/src/acp_por.c, itron/src/act_cyc.c, itron/src/cal_por.c,
itron/src/chg_iXX.c, itron/src/clr_flg.c, itron/src/cre_flg.c,
itron/src/cre_mpf.c, itron/src/cre_mpl.c, itron/src/cre_por.c,
itron/src/def_alm.c, itron/src/def_cyc.c, itron/src/def_exc.c,
itron/src/def_int.c, itron/src/def_svc.c, itron/src/del_flg.c,
itron/src/del_mpf.c, itron/src/del_mpl.c, itron/src/del_por.c,
itron/src/dis_int.c, itron/src/dly_tsk.c, itron/src/ena_int.c,
itron/src/fwd_por.c, itron/src/get_blf.c, itron/src/get_blk.c,
itron/src/get_tim.c, itron/src/get_ver.c, itron/src/itroninittasks.c,
itron/src/loc_cpu.c, itron/src/nget_nod.c, itron/src/nget_ver.c,
itron/src/nrea_dat.c, itron/src/nwri_dat.c, itron/src/pacp_por.c,
itron/src/pcal_por.c, itron/src/pget_blf.c, itron/src/pget_blk.c,
itron/src/pol_flg.c, itron/src/ref_alm.c, itron/src/ref_cfg.c,
itron/src/ref_cyc.c, itron/src/ref_flg.c, itron/src/ref_iXX.c,
itron/src/ref_mpf.c, itron/src/ref_mpl.c, itron/src/ref_por.c,
itron/src/ref_sys.c, itron/src/rel_blf.c, itron/src/rel_blk.c,
itron/src/ret_int.c, itron/src/ret_tmr.c, itron/src/ret_wup.c,
itron/src/rpl_rdv.c, itron/src/set_flg.c, itron/src/set_tim.c,
itron/src/tacp_por.c, itron/src/tcal_por.c, itron/src/tget_blf.c,
itron/src/tget_blk.c, itron/src/twai_flg.c, itron/src/unl_cpu.c,
itron/src/wai_flg.c, posix/src/pthreadinitthreads.c: New files.
|
|
* posix/src/usleep.c, libcsupport/src/readlink.c:
Update API to SUSv3.
|
|
|
|
* posix/Makefile.am: Unconditionally build src/sleep.c,
src/usleep.c.
|
|
|
|
|
|
|
|
|
|
|
|
* posix/src/nanosleep.c: Include rtems/score/timespec.h instead of
rtems/posix/time.h.
|
|
* posix/Makefile.am: Fix formatting.
|
|
* 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.
|
|
* posix/Makefile.am, score/src/objectgetnoprotection.c: Eliminate some
dead code.
* posix/src/time.c: Removed.
|
|
* posix/include/rtems/posix/timer.h, posix/src/alarm.c,
posix/src/posixtimespectointerval.c, posix/src/ptimer1.c,
posix/src/sysconf.c, posix/src/ualarm.c, rtems/src/clockget.c,
rtems/src/clocktodvalidate.c, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c: Eliminate
TOD_Ticks_per_second variable.
|
|
* itron/src/itrontime.c, libcsupport/src/__gettod.c,
posix/include/rtems/posix/time.h, posix/include/rtems/posix/timer.h,
posix/src/clockgettime.c, posix/src/clocksettime.c,
posix/src/nanosleep.c, posix/src/posixtimespecsubtract.c,
posix/src/posixtimespectointerval.c, posix/src/ptimer1.c,
posix/src/sleep.c, rtems/Makefile.am,
rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/timer.h,
rtems/include/rtems/rtems/types.h, rtems/src/clockget.c,
rtems/src/clockset.c, rtems/src/clocktodtoseconds.c,
rtems/src/clocktodvalidate.c, rtems/src/taskwakewhen.c,
score/Makefile.am, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c,
score/src/coretodset.c: Convert from Classic API style TOD_Control as
fundamental time structure to POSIX struct timespec. Add
clock_get_uptime().
* rtems/src/clockgetuptime.c, score/src/coretodget.c,
score/src/coretodgetuptime.c: New files.
* score/src/coretodtickle.c, score/src/coretodtoseconds.c,
score/src/coretodvalidate.c: Removed.
|
|
PR 1231/cpukit
* posix/src/adasupp.c, posix/src/clockgetcpuclockid.c,
posix/src/clockgetenableattr.c, posix/src/clockgetres.c,
posix/src/clockgettime.c, posix/src/clocksetenableattr.c,
posix/src/mutex.c, posix/src/mutexattrdestroy.c,
posix/src/mutexattrgetprioceiling.c,
posix/src/mutexattrgetprotocol.c, posix/src/mutexattrgetpshared.c,
posix/src/mutexattrinit.c, posix/src/mutexattrsetprioceiling.c,
posix/src/mutexattrsetprotocol.c, posix/src/mutexattrsetpshared.c,
posix/src/mutexdefaultattributes.c, posix/src/mutexdestroy.c,
posix/src/mutexgetprioceiling.c, posix/src/mutexlock.c,
posix/src/mutexlocksupp.c, posix/src/mutexmp.c,
posix/src/mutexsetprioceiling.c, posix/src/mutextimedlock.c,
posix/src/mutextrylock.c, posix/src/mutexunlock.c,
posix/src/nanosleep.c, posix/src/posixintervaltotimespec.c,
posix/src/posixtimespecsubtract.c,
posix/src/posixtimespectointerval.c,
posix/src/psignalclearprocesssignals.c,
posix/src/psignalclearsignals.c,
posix/src/psignalsetprocesssignals.c,
posix/src/psignalunblockthread.c, posix/src/ptimer.c,
posix/src/ptimer1.c, posix/src/sched.c, posix/src/time.c: Remove
unneeded includes of assert.h
|
|
PR 1221/cpukit
* posix/src/pthreadequal.c: Fix critical section nesting.
|
|
|
|
|
|
* posix/src/sysconf.c: Add support for _SC_PAGESIZE (PR 1215).
|
|
* posix/src/mqueuesendsupp.c: Remove cast to make broken const cast
visible.
|
|
|
|
|
|
|
|
* posix/include/aio.h: s/aoi_lio_opcode/aio_lio_opcode/
(BZ 1203).
|
|
* posix/src/prwlockunlock.c, rtems/Makefile.am,
rtems/src/barrierrelease.c, rtems/src/barrierwait.c,
score/src/corerwlockobtainread.c, score/src/corerwlockrelease.c:
Complete implementation of barrier as the rest of the test code is
now implemented. Also add blocking code to rwlock.
|
|
* posix/src/semtimedwait.c: Used wrong constant for blocking with bad
timeout value.
|
|
* posix/src/semtimedwait.c: Reverse accidentally included
semtimedwait.c.
|
|
* posix/src/keygetspecific.c, posix/src/keysetspecific.c,
posix/src/semtimedwait.c: Correct indexing of key data to use api and
index NOT class and index. Class is always 1.
|
|
* posix/Makefile.am: Add file missed in previous commit.
* posix/src/posixtimespecabsolutetimeout.c: New file.
|
|
|
|
* libcsupport/src/termios.c, posix/Makefile.am, posix/preinstall.am,
posix/include/rtems/posix/config.h, posix/include/rtems/posix/time.h,
sapi/src/posixapi.c, score/Makefile.am, score/preinstall.am,
score/include/rtems/score/corerwlock.h,
score/include/rtems/score/threadq.h,
score/src/corerwlockobtainread.c, score/src/threadqenqueue.c,
score/src/threadqtimeout.c: Adding POSIX barriers, POSIX spinlocks,
and partial implementation of POSIX rwlocks.
* posix/include/rtems/posix/barrier.h,
posix/include/rtems/posix/rwlock.h,
posix/include/rtems/posix/spinlock.h,
posix/inline/rtems/posix/barrier.inl,
posix/inline/rtems/posix/rwlock.inl,
posix/inline/rtems/posix/spinlock.inl,
posix/src/barrierattrdestroy.c, posix/src/barrierattrgetpshared.c,
posix/src/barrierattrinit.c, posix/src/barrierattrsetpshared.c,
posix/src/pbarrier.c, posix/src/pbarrierdestroy.c,
posix/src/pbarrierinit.c, posix/src/pbarriertranslatereturncode.c,
posix/src/pbarrierwait.c, posix/src/prwlock.c,
posix/src/prwlockdestroy.c, posix/src/prwlockinit.c,
posix/src/prwlockrdlock.c, posix/src/prwlocktimedrdlock.c,
posix/src/prwlocktimedwrlock.c,
posix/src/prwlocktranslatereturncode.c, posix/src/prwlocktryrdlock.c,
posix/src/prwlocktrywrlock.c, posix/src/prwlockunlock.c,
posix/src/prwlockwrlock.c, posix/src/pspin.c,
posix/src/pspindestroy.c, posix/src/pspininit.c,
posix/src/pspinlock.c, posix/src/pspinlocktranslatereturncode.c,
posix/src/pspintrylock.c, posix/src/pspinunlock.c,
posix/src/rwlockattrdestroy.c, posix/src/rwlockattrgetpshared.c,
posix/src/rwlockattrinit.c, posix/src/rwlockattrsetpshared.c: New files.
|
|
PR 841/rtems
* itron/inline/rtems/itron/semaphore.inl, itron/src/twai_sem.c,
posix/include/rtems/posix/semaphore.h,
posix/inline/rtems/posix/semaphore.inl,
posix/src/semaphorewaitsupp.c, posix/src/semtimedwait.c,
posix/src/semwait.c, rtems/src/semobtain.c,
rtems/src/semtranslatereturncode.c,
score/include/rtems/score/coresem.h, score/src/coresemseize.c: Make
sem_timedwait more conformant to Open Group specification.
|
|
* configure.ac, itron/Makefile.am, itron/preinstall.am,
posix/Makefile.am, posix/preinstall.am, rtems/Makefile.am,
rtems/preinstall.am, sapi/Makefile.am, sapi/preinstall.am,
score/Makefile.am, score/preinstall.am, score/include/rtems/system.h,
score/include/rtems/score/chain.h,
score/include/rtems/score/thread.h, score/src/chain.c,
score/src/coremutexseize.c, score/src/threadget.c: Remove all macro
implementations and use only the static inline. Static inline
functions are now well supported so there is no reason for duplicate
maintenance.
* itron/macros/rtems/itron/eventflags.inl,
itron/macros/rtems/itron/fmempool.inl,
itron/macros/rtems/itron/intr.inl, itron/macros/rtems/itron/mbox.inl,
itron/macros/rtems/itron/msgbuffer.inl,
itron/macros/rtems/itron/network.inl,
itron/macros/rtems/itron/port.inl,
itron/macros/rtems/itron/semaphore.inl,
itron/macros/rtems/itron/sysmgmt.inl,
itron/macros/rtems/itron/task.inl, itron/macros/rtems/itron/time.inl,
itron/macros/rtems/itron/vmempool.inl,
posix/macros/rtems/posix/cond.inl, posix/macros/rtems/posix/key.inl,
posix/macros/rtems/posix/mqueue.inl,
posix/macros/rtems/posix/mutex.inl,
posix/macros/rtems/posix/priority.inl,
posix/macros/rtems/posix/pthread.inl,
posix/macros/rtems/posix/semaphore.inl,
posix/macros/rtems/posix/timer.inl, rtems/macros/rtems/rtems/asr.inl,
rtems/macros/rtems/rtems/attr.inl,
rtems/macros/rtems/rtems/barrier.inl,
rtems/macros/rtems/rtems/dpmem.inl,
rtems/macros/rtems/rtems/event.inl,
rtems/macros/rtems/rtems/eventset.inl,
rtems/macros/rtems/rtems/message.inl,
rtems/macros/rtems/rtems/modes.inl,
rtems/macros/rtems/rtems/options.inl,
rtems/macros/rtems/rtems/part.inl,
rtems/macros/rtems/rtems/ratemon.inl,
rtems/macros/rtems/rtems/region.inl,
rtems/macros/rtems/rtems/sem.inl,
rtems/macros/rtems/rtems/status.inl,
rtems/macros/rtems/rtems/support.inl,
rtems/macros/rtems/rtems/tasks.inl,
rtems/macros/rtems/rtems/timer.inl, sapi/macros/rtems/extension.inl,
score/macros/README, score/macros/rtems/score/address.inl,
score/macros/rtems/score/chain.inl,
score/macros/rtems/score/corebarrier.inl,
score/macros/rtems/score/coremsg.inl,
score/macros/rtems/score/coremutex.inl,
score/macros/rtems/score/corerwlock.inl,
score/macros/rtems/score/coresem.inl,
score/macros/rtems/score/corespinlock.inl,
score/macros/rtems/score/heap.inl, score/macros/rtems/score/isr.inl,
score/macros/rtems/score/mppkt.inl,
score/macros/rtems/score/object.inl,
score/macros/rtems/score/objectmp.inl,
score/macros/rtems/score/priority.inl,
score/macros/rtems/score/stack.inl,
score/macros/rtems/score/states.inl,
score/macros/rtems/score/sysstate.inl,
score/macros/rtems/score/thread.inl,
score/macros/rtems/score/threadmp.inl,
score/macros/rtems/score/tod.inl,
score/macros/rtems/score/tqdata.inl,
score/macros/rtems/score/userext.inl,
score/macros/rtems/score/watchdog.inl,
score/macros/rtems/score/wkspace.inl: Removed.
|
|
|
|
Add missing #include <limits.h>.
|
|
|
|
* posix/Makefile.am, posix/preinstall.am,
posix/include/rtems/posix/timer.h, posix/src/ptimer.c,
posix/src/ptimer1.c, sapi/src/posixapi.c,
score/include/rtems/score/object.h:
|
|
* itron/src/trcv_mbf.c, posix/src/semopen.c,
rtems/src/taskvariableadd.c, score/macros/rtems/score/heap.inl: Fix
warnings.
|