| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Unify the status codes of the Classic and POSIX API to use the new enum
Status_Control. This eliminates the Thread_Control::Wait::timeout_code
field and the timeout parameter of _Thread_queue_Enqueue_critical() and
_MPCI_Send_request_packet(). It gets rid of the status code translation
tables and instead uses simple bit operations to get the status for a
particular API. This enables translation of status code constants at
compile time. Add _Thread_Wait_get_status() to avoid direct access of
thread internal data structures.
|
|
|
|
|
|
|
|
| |
Drop the multiprocessing (MP) dependent callout parameter from the
thread queue extract, dequeue, flush and unblock methods. Merge this
parameter with the lock context into new structure Thread_queue_Context.
This helps to gets rid of the conditionally compiled method call
helpers.
|
| |
|
| |
|
|
|
|
| |
Delete unused parameter.
|
|
|
|
|
| |
Uniformly use *_Get() to get an object by identifier with a lock
context.
|
|
|
|
|
|
| |
Use _Objects_Get_local() for _Semaphore_Get_interrupt_disable() to get
rid of the location parameter. Move remote object handling to semaphore
MPCI support.
|
|
|
|
|
|
| |
Rename _MRSP_Obtain() into _MRSP_Seize(). Rename _MRSP_Release() into
_MRSP_Surrender(). This avoids confusion with the ISR lock acquire and
release.
|
|
|
|
| |
Parameter was unused.
|
|
|
|
|
|
|
|
|
|
|
| |
This field was only by the monitor in non-multiprocessing
configurations. Add new field Thread_Wait_information::remote_id in
multiprocessing configurations and use it for the remote procedure call
thread queue.
Add _Thread_Wait_get_id() to obtain the object identifier for debug and
system information tools. Ensure the object layout via static asserts.
Add test cases to sptests/spthreadq01.
|
|
|
|
| |
Update #2273.
|
|
|
|
| |
Update #2273.
|
|
|
|
| |
Rename _CORE_semaphore_Seize_isr_disable() to _CORE_semaphore_Seize().
|
|
|
|
| |
Update #2273.
|
|
|
|
|
|
|
|
| |
Do not disable thread dispatching and do not acquire the Giant lock.
This makes it possible to use this object get variant for fine grained
locking.
Update #2273.
|
|
|
|
|
|
|
| |
Use ISR_lock_Context instead of ISR_Level to allow use of ISR locks for
low-level locking.
Update #2273.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add basic support for the Multiprocessor Resource Sharing Protocol
(MrsP).
The Multiprocessor Resource Sharing Protocol (MrsP) is defined in A.
Burns and A.J. Wellings, A Schedulability Compatible Multiprocessor
Resource Sharing Protocol - MrsP, Proceedings of the 25th Euromicro
Conference on Real-Time Systems (ECRTS 2013), July 2013. It is a
generalization of the Priority Ceiling Protocol to SMP systems. Each
MrsP semaphore uses a ceiling priority per scheduler instance. These
ceiling priorities can be specified with rtems_semaphore_set_priority().
A task obtaining or owning a MrsP semaphore will execute with the
ceiling priority for its scheduler instance as specified by the MrsP
semaphore object. Tasks waiting to get ownership of a MrsP semaphore
will not relinquish the processor voluntarily. In case the owner of a
MrsP semaphore gets preempted it can ask all tasks waiting for this
semaphore to help out and temporarily borrow the right to execute on one
of their assigned processors.
The help out feature is not implemented with this patch.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Move implementation specific parts of object.h and object.inl into new
header file objectimpl.h. The object.h contains now only the
application visible API.
|
|
|
|
|
| |
Move implementation specific parts of mpci.h into new header file
mpciimpl.h. The mpci.h contains now only the application visible API.
|
|
|
|
|
|
|
|
| |
Move implementation specific parts of tqdata.h, threadq.h and
threadq.inl into new header file threadqimpl.h. The threadq.h contains
now only the application visible API.
Delete tqdata.h.
|
|
|
|
|
|
| |
Move implementation specific parts of states.h and states.inl into new
header file statesimpl.h. The states.h contains now only the
application visible API.
|
| |
|
|
|
|
|
|
| |
Move implementation specific parts of attr.h and attr.inl into new
header file attrimpl.h. The attr.h contains now only the application
visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of options.h and options.inl into new
header file optionsimpl.h. The options.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Pass the executing thread as a function parameter. Obtain the executing
thread inside a thread dispatch critical section to avoid problems on
SMP.
|
|
|
|
|
|
| |
Move implementation specific parts of coresem.h and coresem.inl into new
header file coresemimpl.h. The coresem.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Pass the executing thread as a function parameter. Obtain the executing
thread inside a thread dispatch critical section to avoid problems on
SMP.
|
|
|
|
|
|
| |
Move implementation specific parts of coremutex.h and coremutex.inl into
new header file coremuteximpl.h. The coremutex.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of sem.h and sem.inl into new header
file semimpl.h. The sem.h contains now only the application visible
API.
|
|
|
|
|
| |
Provide SMP support. The ISR disable/enable is not enough to ensure
mutual exclusion for SMP configurations.
|
| |
|
|
|
|
| |
http://www.google-melange.com/gci/task/view/google/gci2012/7950206
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ftpd/ftpd.c, libcsupport/src/geteuid.c, libcsupport/src/getgroups.c,
libcsupport/src/getpgrp.c, libcsupport/src/getpid.c,
libcsupport/src/getppid.c, libcsupport/src/setpgid.c,
libcsupport/src/setsid.c, libcsupport/src/utsname.c,
libmisc/stackchk/check.c, posix/include/rtems/posix/mqueue.h,
posix/inline/rtems/posix/cond.inl,
posix/inline/rtems/posix/mqueue.inl,
posix/inline/rtems/posix/mutex.inl,
posix/inline/rtems/posix/pthread.inl,
posix/inline/rtems/posix/semaphore.inl,
posix/inline/rtems/posix/timer.inl, posix/src/alarm.c,
posix/src/barrierattrdestroy.c, posix/src/barrierattrgetpshared.c,
posix/src/barrierattrinit.c, posix/src/barrierattrsetpshared.c,
posix/src/cleanuppop.c, posix/src/cleanuppush.c,
posix/src/clockgetcpuclockid.c, posix/src/clockgetenableattr.c,
posix/src/clockgetres.c, posix/src/clockgettime.c,
posix/src/clocksetenableattr.c, posix/src/clocksettime.c,
posix/src/cond.c, posix/src/condattrdestroy.c,
posix/src/condattrgetpshared.c, posix/src/condattrinit.c,
posix/src/condattrsetpshared.c, posix/src/condbroadcast.c,
posix/src/conddefaultattributes.c, posix/src/conddestroy.c,
posix/src/condinit.c, posix/src/condsignal.c,
posix/src/condsignalsupp.c, posix/src/condtimedwait.c,
posix/src/condwait.c, posix/src/condwaitsupp.c,
posix/src/keygetspecific.c, posix/src/keyrundestructors.c,
posix/src/keysetspecific.c, posix/src/mprotect.c, posix/src/mqueue.c,
posix/src/mqueuecreatesupp.c, posix/src/mqueuedeletesupp.c,
posix/src/mqueuegetattr.c, posix/src/mqueuenotify.c,
posix/src/mqueuereceive.c, posix/src/mqueuesend.c,
posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
posix/src/mqueuetimedreceive.c, posix/src/mqueuetimedsend.c,
posix/src/mqueuetranslatereturncode.c, posix/src/mqueueunlink.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/mutexdestroy.c, posix/src/mutexgetprioceiling.c,
posix/src/mutexinit.c, posix/src/mutexlock.c,
posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c,
posix/src/mutextimedlock.c, posix/src/mutextrylock.c,
posix/src/mutexunlock.c, posix/src/nanosleep.c, posix/src/psignal.c,
posix/src/psignalchecksignal.c,
posix/src/psignalclearprocesssignals.c,
posix/src/psignalclearsignals.c,
posix/src/psignalsetprocesssignals.c,
posix/src/psignalunblockthread.c, posix/src/pthreadinitthreads.c,
posix/src/rwlockattrdestroy.c, posix/src/rwlockattrgetpshared.c,
posix/src/rwlockattrinit.c, posix/src/rwlockattrsetpshared.c,
posix/src/semaphore.c, posix/src/semaphoredeletesupp.c,
posix/src/semaphorenametoid.c, posix/src/semaphorewaitsupp.c,
posix/src/semclose.c, posix/src/semdestroy.c,
posix/src/semgetvalue.c, posix/src/seminit.c, posix/src/semopen.c,
posix/src/sempost.c, posix/src/semtimedwait.c,
posix/src/semtrywait.c, posix/src/semunlink.c, posix/src/semwait.c,
posix/src/sysconf.c, posix/src/testcancel.c, posix/src/ualarm.c,
rtems/src/clockgetuptime.c, rtems/src/clockset.c,
rtems/src/clocksetnsecshandler.c, rtems/src/clocktick.c,
rtems/src/clocktodtoseconds.c, rtems/src/clocktodvalidate.c,
rtems/src/dpmem.c, rtems/src/dpmemcreate.c, rtems/src/dpmemdelete.c,
rtems/src/dpmemexternal2internal.c, rtems/src/dpmemident.c,
rtems/src/dpmeminternal2external.c, rtems/src/event.c,
rtems/src/eventmp.c, rtems/src/eventreceive.c,
rtems/src/eventseize.c, rtems/src/eventsend.c,
rtems/src/eventsurrender.c, rtems/src/eventtimeout.c, rtems/src/mp.c,
rtems/src/msg.c, rtems/src/msgmp.c, rtems/src/msgqallocate.c,
rtems/src/msgqbroadcast.c, rtems/src/msgqcreate.c,
rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
rtems/src/msgqgetnumberpending.c, rtems/src/msgqident.c,
rtems/src/msgqreceive.c, rtems/src/msgqtranslatereturncode.c,
rtems/src/msgqurgent.c, rtems/src/part.c, rtems/src/partcreate.c,
rtems/src/partdelete.c, rtems/src/partgetbuffer.c,
rtems/src/partident.c, rtems/src/partmp.c,
rtems/src/partreturnbuffer.c, rtems/src/ratemon.c,
rtems/src/ratemoncancel.c, rtems/src/ratemoncreate.c,
rtems/src/ratemondelete.c, rtems/src/ratemongetstatistics.c,
rtems/src/ratemongetstatus.c, rtems/src/ratemonident.c,
rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
rtems/src/ratemontimeout.c, rtems/src/region.c,
rtems/src/regioncreate.c, rtems/src/regiondelete.c,
rtems/src/regionextend.c, rtems/src/regiongetfreeinfo.c,
rtems/src/regiongetinfo.c, rtems/src/regiongetsegment.c,
rtems/src/regiongetsegmentsize.c, rtems/src/regionident.c,
rtems/src/regionmp.c, rtems/src/regionprocessqueue.c,
rtems/src/regionresizesegment.c, rtems/src/regionreturnsegment.c,
rtems/src/rtemsobjectgetclassicname.c, rtems/src/rtemstimer.c,
rtems/src/sem.c, rtems/src/semcreate.c, rtems/src/semdelete.c,
rtems/src/semflush.c, rtems/src/semident.c, rtems/src/semmp.c,
rtems/src/semobtain.c, rtems/src/semrelease.c,
rtems/src/semtranslatereturncode.c, rtems/src/signal.c,
rtems/src/signalcatch.c, rtems/src/signalmp.c,
rtems/src/signalsend.c, rtems/src/taskcreate.c,
rtems/src/taskdelete.c, rtems/src/taskgetnote.c,
rtems/src/taskident.c, rtems/src/taskinitusers.c,
rtems/src/taskissuspended.c, rtems/src/taskmp.c,
rtems/src/taskrestart.c, rtems/src/taskresume.c, rtems/src/tasks.c,
rtems/src/tasksetnote.c, rtems/src/tasksetpriority.c,
rtems/src/taskstart.c, rtems/src/tasksuspend.c,
rtems/src/taskwakeafter.c, rtems/src/taskwakewhen.c,
rtems/src/timercancel.c, rtems/src/timercreate.c,
rtems/src/timerdelete.c, rtems/src/timerfireafter.c,
rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
rtems/src/timerident.c, rtems/src/timerreset.c,
rtems/src/timerserverfireafter.c, rtems/src/timerserverfirewhen.c,
sapi/src/debug.c, sapi/src/extension.c, sapi/src/posixapi.c,
sapi/src/rtemsapi.c, score/src/apiext.c, score/src/chain.c,
score/src/corebarrier.c, score/src/corebarrierrelease.c,
score/src/corebarrierwait.c, score/src/coremsgbroadcast.c,
score/src/coremsgclose.c, score/src/coremsgflush.c,
score/src/coremsgflushsupp.c, score/src/coremsgflushwait.c,
score/src/coremsginsert.c, score/src/coremsgseize.c,
score/src/coremsgsubmit.c, score/src/coremutex.c,
score/src/coremutexflush.c, score/src/coremutexseize.c,
score/src/corerwlock.c, score/src/corerwlockobtainread.c,
score/src/corerwlockobtainwrite.c, score/src/corerwlockrelease.c,
score/src/coresem.c, score/src/coresemflush.c,
score/src/coresemsurrender.c, score/src/corespinlock.c,
score/src/corespinlockrelease.c, score/src/corespinlockwait.c,
score/src/coretod.c, score/src/coretodset.c,
score/src/coretodtickle.c, score/src/heap.c, score/src/interr.c,
score/src/mpci.c, score/src/objectallocate.c,
score/src/objectextendinformation.c, score/src/objectfree.c,
score/src/objectget.c, score/src/objectgetisr.c,
score/src/objectgetnext.c, score/src/objectgetnoprotection.c,
score/src/objectinitializeinformation.c, score/src/objectmp.c,
score/src/objectnametoid.c, score/src/objectnametoidstring.c,
score/src/objectshrinkinformation.c, score/src/rbtree.c,
score/src/threaddelayended.c, score/src/threadhandler.c,
score/src/threadinitialize.c, score/src/threadloadenv.c,
score/src/threadmp.c, score/src/threadq.c,
score/src/threadqdequeue.c, score/src/threadqdequeuefifo.c,
score/src/threadqdequeuepriority.c, score/src/threadqenqueue.c,
score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c,
score/src/threadqextract.c, score/src/threadqextractfifo.c,
score/src/threadqextractpriority.c,
score/src/threadqextractwithproxy.c, score/src/threadqfirst.c,
score/src/threadqfirstfifo.c, score/src/threadqfirstpriority.c,
score/src/threadqflush.c, score/src/threadqrequeue.c,
score/src/threadstackallocate.c, score/src/threadstartmultitasking.c,
score/src/watchdog.c, score/src/watchdogadjust.c,
score/src/watchdoginsert.c, score/src/watchdogremove.c,
score/src/watchdogtickle.c: Remove /*PAGE markers which were
interpreted by a long dead print script.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtems/include/rtems/rtems/sem.h, rtems/src/semobtain.c:
Changed option set type to rtems_option.
* score/src/objectgetinfo.c: Check return value of
_Objects_API_maximum_class().
* libmisc/monitor/mon-mpci.c, libmisc/monitor/monitor.h,
rtems/include/rtems/rtems/message.h, rtems/src/msgmp.c,
rtems/src/msgqallocate.c, rtems/src/msgqbroadcast.c,
rtems/src/msgqcreate.c, rtems/src/msgqreceive.c, rtems/src/msgqsend.c,
rtems/src/msgqurgent.c, score/include/rtems/score/coremsg.h,
score/include/rtems/score/mpci.h, score/include/rtems/score/thread.h,
score/inline/rtems/score/coremsg.inl, score/src/coremsg.c,
score/src/coremsgbroadcast.c, score/src/coremsgseize.c,
score/src/coremsgsubmit.c:
Removed parameters of _Message_queue_Allocate(). Changed option set
type to rtems_option. Changed type of maximum message and packet size
to size_t. Changed the input buffer type for message send functions to
"const void *". Changed the pointer to the second return argument in
the thread wait information to a union. This union can contain a
pointer to an immutable or a mutable object. This is somewhat fragile.
An alternative would be to add a third pointer for immutable objects,
but this would increase the structure size.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtems/src/barrierdelete.c, rtems/src/barrierrelease.c,
rtems/src/barriertranslatereturncode.c, rtems/src/barrierwait.c,
rtems/src/clockget.c, rtems/src/dpmemdelete.c,
rtems/src/dpmemexternal2internal.c,
rtems/src/dpmeminternal2external.c, rtems/src/eventsend.c,
rtems/src/eventtimeout.c, rtems/src/msgqbroadcast.c,
rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
rtems/src/msgqgetnumberpending.c, rtems/src/msgqreceive.c,
rtems/src/msgqsend.c, rtems/src/msgqurgent.c, rtems/src/partdelete.c,
rtems/src/partgetbuffer.c, rtems/src/partreturnbuffer.c,
rtems/src/ratemoncancel.c, rtems/src/ratemondelete.c,
rtems/src/ratemongetstatistics.c, rtems/src/ratemongetstatus.c,
rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
rtems/src/ratemontimeout.c, rtems/src/semdelete.c,
rtems/src/semflush.c, rtems/src/semobtain.c, rtems/src/semrelease.c,
rtems/src/semtranslatereturncode.c, rtems/src/signalsend.c,
rtems/src/taskdelete.c, rtems/src/taskgetnote.c,
rtems/src/taskissuspended.c, rtems/src/taskrestart.c,
rtems/src/taskresume.c, rtems/src/tasksetnote.c,
rtems/src/tasksetpriority.c, rtems/src/taskstart.c,
rtems/src/tasksuspend.c, rtems/src/taskvariableadd.c,
rtems/src/taskvariabledelete.c, rtems/src/taskvariableget.c,
rtems/src/timercancel.c, rtems/src/timerdelete.c,
rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
rtems/src/timerreset.c, rtems/src/timerserverfireafter.c,
rtems/src/timerserverfirewhen.c: Restructured all code with
the switch (location) pattern so that OBJECTS_LOCAL is first
and we can fall into it and the OBJECTS_ERROR case breaks
to a return RTEMS_INVALID_ID. This eliminates the return
RTEMS_INTERNAL_ERROR at the bottom of each of these files which
was unreachable and untestable code. This resulted in a code
savings of approximately 20 bytes per file on the SPARC/ERC32.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/include/rtems/posix/mutex.h,
posix/include/rtems/posix/semaphore.h, posix/src/cancel.c,
posix/src/conddestroy.c, posix/src/condsignalsupp.c,
posix/src/condwaitsupp.c, posix/src/keydelete.c,
posix/src/keygetspecific.c, posix/src/keysetspecific.c,
posix/src/mqueueclose.c, posix/src/mqueuegetattr.c,
posix/src/mqueuenotify.c, posix/src/mqueuerecvsupp.c,
posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
posix/src/mqueuetranslatereturncode.c, posix/src/mutexdestroy.c,
posix/src/mutexgetprioceiling.c, posix/src/mutexinit.c,
posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c,
posix/src/mutexunlock.c, posix/src/pbarrierdestroy.c,
posix/src/pbarriertranslatereturncode.c, posix/src/pbarrierwait.c,
posix/src/prwlockdestroy.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/pspindestroy.c,
posix/src/pspinlock.c, posix/src/pspinlocktranslatereturncode.c,
posix/src/pspintrylock.c, posix/src/pspinunlock.c,
posix/src/pthreaddetach.c, posix/src/pthreadequal.c,
posix/src/pthreadgetschedparam.c, posix/src/pthreadjoin.c,
posix/src/pthreadkill.c, posix/src/pthreadsetschedparam.c,
posix/src/ptimer1.c, posix/src/semaphorewaitsupp.c,
posix/src/semclose.c, posix/src/semdestroy.c,
posix/src/semgetvalue.c, posix/src/sempost.c, posix/src/types.c,
rtems/src/msgqtranslatereturncode.c, rtems/src/semobtain.c,
rtems/src/timerfireafter.c, score/include/rtems/system.h,
score/include/rtems/score/corebarrier.h,
score/include/rtems/score/coremsg.h,
score/include/rtems/score/coremutex.h,
score/include/rtems/score/coresem.h: 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/src/mutextranslatereturncode.c,
posix/src/semaphoretranslatereturncode.c: New files.
* posix/src/mutexfromcorestatus.c: Removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/src/can_wup.c, itron/src/chg_pri.c, itron/src/del_mbf.c,
itron/src/del_mbx.c, itron/src/del_sem.c, itron/src/del_tsk.c,
itron/src/frsm_tsk.c, itron/src/ref_mbf.c, itron/src/ref_mbx.c,
itron/src/ref_sem.c, itron/src/ref_tsk.c, itron/src/rel_wai.c,
itron/src/rsm_tsk.c, itron/src/sig_sem.c, itron/src/snd_mbx.c,
itron/src/sta_tsk.c, itron/src/sus_tsk.c, itron/src/ter_tsk.c,
itron/src/trcv_mbf.c, itron/src/trcv_mbx.c, itron/src/tsnd_mbf.c,
itron/src/twai_sem.c, posix/src/cancel.c, posix/src/conddestroy.c,
posix/src/condinit.c, posix/src/condsignalsupp.c,
posix/src/condwaitsupp.c, posix/src/keydelete.c,
posix/src/keygetspecific.c, posix/src/keysetspecific.c,
posix/src/mqueueclose.c, posix/src/mqueuegetattr.c,
posix/src/mqueuenotify.c, posix/src/mqueuerecvsupp.c,
posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
posix/src/mutexdestroy.c, posix/src/mutexgetprioceiling.c,
posix/src/mutexinit.c, posix/src/mutexlocksupp.c,
posix/src/mutexsetprioceiling.c, posix/src/mutexunlock.c,
posix/src/pbarrierdestroy.c, posix/src/pbarrierwait.c,
posix/src/prwlockdestroy.c, posix/src/prwlockrdlock.c,
posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c,
posix/src/prwlocktryrdlock.c, posix/src/prwlocktrywrlock.c,
posix/src/prwlockunlock.c, posix/src/prwlockwrlock.c,
posix/src/pspindestroy.c, posix/src/pspinlock.c,
posix/src/pspintrylock.c, posix/src/pspinunlock.c,
posix/src/pthreaddetach.c, posix/src/pthreadequal.c,
posix/src/pthreadgetschedparam.c, posix/src/pthreadjoin.c,
posix/src/pthreadkill.c, posix/src/pthreadsetschedparam.c,
posix/src/ptimer1.c, posix/src/semaphorewaitsupp.c,
posix/src/semclose.c, posix/src/semdestroy.c,
posix/src/semgetvalue.c, posix/src/sempost.c, posix/src/types.c,
rtems/src/barrierdelete.c, rtems/src/barrierrelease.c,
rtems/src/barrierwait.c, rtems/src/dpmemdelete.c,
rtems/src/dpmemexternal2internal.c,
rtems/src/dpmeminternal2external.c, rtems/src/eventsend.c,
rtems/src/eventtimeout.c, rtems/src/msgqbroadcast.c,
rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
rtems/src/msgqgetnumberpending.c, rtems/src/msgqreceive.c,
rtems/src/msgqsend.c, rtems/src/msgqurgent.c, rtems/src/partdelete.c,
rtems/src/partgetbuffer.c, rtems/src/partreturnbuffer.c,
rtems/src/ratemoncancel.c, rtems/src/ratemondelete.c,
rtems/src/ratemongetstatistics.c, rtems/src/ratemongetstatus.c,
rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
rtems/src/ratemontimeout.c, rtems/src/regiondelete.c,
rtems/src/regionextend.c, rtems/src/regiongetfreeinfo.c,
rtems/src/regiongetinfo.c, rtems/src/regiongetsegment.c,
rtems/src/regiongetsegmentsize.c, rtems/src/regionresizesegment.c,
rtems/src/regionreturnsegment.c, rtems/src/semdelete.c,
rtems/src/semflush.c, rtems/src/semobtain.c, rtems/src/semrelease.c,
rtems/src/signalsend.c, rtems/src/taskdelete.c,
rtems/src/taskgetnote.c, rtems/src/taskissuspended.c,
rtems/src/taskrestart.c, rtems/src/taskresume.c,
rtems/src/tasksetnote.c, rtems/src/tasksetpriority.c,
rtems/src/taskstart.c, rtems/src/tasksuspend.c,
rtems/src/taskvariableadd.c, rtems/src/taskvariabledelete.c,
rtems/src/taskvariableget.c, rtems/src/timercancel.c,
rtems/src/timerdelete.c, rtems/src/timerfireafter.c,
rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
rtems/src/timerreset.c, rtems/src/timerserverfireafter.c,
rtems/src/timerserverfirewhen.c, sapi/src/extensiondelete.c,
score/include/rtems/score/object.h, score/src/corerwlocktimeout.c,
score/src/mpci.c, score/src/objectgetnameasstring.c,
score/src/threaddelayended.c, score/src/threadqtimeout.c: When
multiprocessing is disabled, do not even allow the constant
OBJECTS_REMOTE to appear in the source. Even at -O2, the presence of
a case OBJECTS_REMOTE in each id->pointer _Objects_Get switch results
in the generation of binary code which can NOT be reached.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtems/include/rtems.h,
rtems/include/rtems/rtems/asr.h,
rtems/include/rtems/rtems/attr.h,
rtems/include/rtems/rtems/clock.h,
rtems/include/rtems/rtems/config.h,
rtems/include/rtems/rtems/dpmem.h,
rtems/include/rtems/rtems/eventset.h,
rtems/include/rtems/rtems/message.h,
rtems/include/rtems/rtems/modes.h,
rtems/include/rtems/rtems/msgmp.h,
rtems/include/rtems/rtems/options.h,
rtems/include/rtems/rtems/part.h,
rtems/include/rtems/rtems/ratemon.h,
rtems/include/rtems/rtems/region.h,
rtems/include/rtems/rtems/regionmp.h,
rtems/include/rtems/rtems/sem.h,
rtems/include/rtems/rtems/support.h,
rtems/include/rtems/rtems/taskmp.h,
rtems/include/rtems/rtems/tasks.h,
rtems/include/rtems/rtems/timer.h,
rtems/inline/rtems/rtems/part.inl,
rtems/inline/rtems/rtems/region.inl,
rtems/macros/rtems/rtems/part.inl,
rtems/src/attr.c,
rtems/src/dpmem.c,
rtems/src/dpmemcreate.c,
rtems/src/dpmemexternal2internal.c,
rtems/src/dpmeminternal2external.c,
rtems/src/eventseize.c,
rtems/src/msg.c,
rtems/src/msgmp.c,
rtems/src/msgqallocate.c,
rtems/src/msgqbroadcast.c,
rtems/src/msgqcreate.c,
rtems/src/msgqflush.c,
rtems/src/msgqgetnumberpending.c,
rtems/src/msgqident.c,
rtems/src/msgqreceive.c,
rtems/src/msgqsend.c,
rtems/src/msgqsubmit.c,
rtems/src/msgqtranslatereturncode.c,
rtems/src/msgqurgent.c,
rtems/src/part.c,
rtems/src/partcreate.c,
rtems/src/partident.c,
rtems/src/partmp.c,
rtems/src/ratemon.c,
rtems/src/region.c,
rtems/src/regioncreate.c,
rtems/src/regionextend.c,
rtems/src/regiongetsegment.c,
rtems/src/regiongetsegmentsize.c,
rtems/src/regionmp.c,
rtems/src/regionreturnsegment.c,
rtems/src/rtemstimer.c,
rtems/src/sem.c,
rtems/src/semcreate.c,
rtems/src/semident.c,
rtems/src/semmp.c,
rtems/src/semobtain.c,
rtems/src/semtranslatereturncode.c,
rtems/src/taskcreate.c,
rtems/src/taskgetnote.c,
rtems/src/taskident.c,
rtems/src/taskinitusers.c,
rtems/src/taskmp.c,
rtems/src/taskrestart.c,
rtems/src/tasks.c,
rtems/src/tasksetnote.c,
rtems/src/taskstart.c,
rtems/src/timerserver.c: Convert to using c99 fixed size types.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/rtems.h, include/rtems/rtems/asr.h,
include/rtems/rtems/attr.h, include/rtems/rtems/cache.h,
include/rtems/rtems/clock.h, include/rtems/rtems/config.h,
include/rtems/rtems/dpmem.h, include/rtems/rtems/event.h,
include/rtems/rtems/eventmp.h, include/rtems/rtems/eventset.h,
include/rtems/rtems/intr.h, include/rtems/rtems/message.h,
include/rtems/rtems/modes.h, include/rtems/rtems/mp.h,
include/rtems/rtems/msgmp.h, include/rtems/rtems/options.h,
include/rtems/rtems/part.h, include/rtems/rtems/partmp.h,
include/rtems/rtems/ratemon.h, include/rtems/rtems/region.h,
include/rtems/rtems/regionmp.h, include/rtems/rtems/rtemsapi.h,
include/rtems/rtems/sem.h, include/rtems/rtems/semmp.h,
include/rtems/rtems/signal.h, include/rtems/rtems/signalmp.h,
include/rtems/rtems/status.h, include/rtems/rtems/support.h,
include/rtems/rtems/taskmp.h, include/rtems/rtems/tasks.h,
include/rtems/rtems/timer.h, include/rtems/rtems/types.h,
inline/rtems/rtems/asr.inl, inline/rtems/rtems/attr.inl,
inline/rtems/rtems/dpmem.inl, inline/rtems/rtems/event.inl,
inline/rtems/rtems/eventset.inl, inline/rtems/rtems/message.inl,
inline/rtems/rtems/modes.inl, inline/rtems/rtems/options.inl,
inline/rtems/rtems/part.inl, inline/rtems/rtems/ratemon.inl,
inline/rtems/rtems/region.inl, inline/rtems/rtems/sem.inl,
inline/rtems/rtems/status.inl, inline/rtems/rtems/support.inl,
inline/rtems/rtems/tasks.inl, inline/rtems/rtems/timer.inl,
macros/rtems/rtems/asr.inl, macros/rtems/rtems/attr.inl,
macros/rtems/rtems/dpmem.inl, macros/rtems/rtems/event.inl,
macros/rtems/rtems/eventset.inl, macros/rtems/rtems/message.inl,
macros/rtems/rtems/modes.inl, macros/rtems/rtems/options.inl,
macros/rtems/rtems/part.inl, macros/rtems/rtems/ratemon.inl,
macros/rtems/rtems/region.inl, macros/rtems/rtems/sem.inl,
macros/rtems/rtems/status.inl, macros/rtems/rtems/support.inl,
macros/rtems/rtems/tasks.inl, macros/rtems/rtems/timer.inl,
src/attr.c, src/clockget.c, src/clockset.c, src/clocktick.c,
src/dpmem.c, src/dpmemcreate.c, src/dpmemdelete.c,
src/dpmemexternal2internal.c, src/dpmemident.c,
src/dpmeminternal2external.c, src/event.c, src/eventmp.c,
src/eventreceive.c, src/eventseize.c, src/eventsend.c,
src/eventsurrender.c, src/eventtimeout.c, src/intr.c, src/intrbody.c,
src/intrcatch.c, src/mp.c, src/msg.c, src/msgmp.c,
src/msgqallocate.c, src/msgqbroadcast.c, src/msgqcreate.c,
src/msgqdelete.c, src/msgqflush.c, src/msgqgetnumberpending.c,
src/msgqident.c, src/msgqreceive.c, src/msgqsend.c, src/msgqsubmit.c,
src/msgqtranslatereturncode.c, src/msgqurgent.c, src/part.c,
src/partcreate.c, src/partdelete.c, src/partgetbuffer.c,
src/partident.c, src/partmp.c, src/partreturnbuffer.c, src/ratemon.c,
src/ratemoncancel.c, src/ratemoncreate.c, src/ratemondelete.c,
src/ratemongetstatus.c, src/ratemonident.c, src/ratemonperiod.c,
src/ratemontimeout.c, src/region.c, src/regioncreate.c,
src/regiondelete.c, src/regionextend.c, src/regiongetinfo.c,
src/regiongetsegment.c, src/regiongetsegmentsize.c,
src/regionident.c, src/regionmp.c, src/regionreturnsegment.c,
src/rtclock.c, src/rtemsidtoname.c, src/rtemstimer.c, src/sem.c,
src/semcreate.c, src/semdelete.c, src/semflush.c, src/semident.c,
src/semmp.c, src/semobtain.c, src/semrelease.c,
src/semtranslatereturncode.c, src/signal.c, src/signalcatch.c,
src/signalmp.c, src/signalsend.c, src/taskcreate.c, src/taskdelete.c,
src/taskgetnote.c, src/taskident.c, src/taskinitusers.c,
src/taskissuspended.c, src/taskmode.c, src/taskmp.c,
src/taskrestart.c, src/taskresume.c, src/tasks.c, src/tasksetnote.c,
src/tasksetpriority.c, src/taskstart.c, src/tasksuspend.c,
src/taskvariableadd.c, src/taskvariabledelete.c,
src/taskvariableget.c, src/taskwakeafter.c, src/taskwakewhen.c,
src/timercancel.c, src/timercreate.c, src/timerdelete.c,
src/timerfireafter.c, src/timerfirewhen.c, src/timergetinfo.c,
src/timerident.c, src/timerreset.c, src/timerserver.c,
src/timerserverfireafter.c, src/timerserverfirewhen.c: URL for
license changed.
|
|
|
|
|
| |
semaphore/mutex can be obtained immediately, this cuts execution time
by 50%.
|