summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/apimutexunlock.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-09-27score: Unify CORE mutex seize/surrenderSebastian Huber1-0/+1
Use the Thread_Control::resource_count for the no protocol mutexes. Merge the no protocol and priority inherit CORE mutex seize/surrender operations.
2016-09-08score: Introduce Thread_queue_Lock_contextSebastian Huber1-1/+1
Introduce Thread_queue_Lock_context to contain the context necessary for thread queue lock and thread wait lock acquire/release operations to reduce the Thread_Control size.
2016-05-30score: Rework CORE inherit priority mutexSebastian Huber1-2/+6
Provide dedicated seize and surrender methods for inherit priority mutexes. This eliminates CORE_mutex_Attributes.
2016-05-30score: Add _Thread_queue_Context_set_MP_callout()Sebastian Huber1-1/+1
Add _Thread_queue_Context_set_MP_callout() to simplify _Thread_queue_Context_initialize(). This makes it possible to more easily add additional fields to Thread_queue_Context.
2016-05-25score: Move thread queue MP callout to contextSebastian Huber1-9/+6
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.
2016-05-25score: Get rid of mp_id parameterSebastian Huber1-1/+0
Get rid of the mp_id parameter used for some thread queue methods. Use THREAD_QUEUE_QUEUE_TO_OBJECT() instead.
2016-05-20score: Add Thread_Change_life()Sebastian Huber1-6/+5
Add _Thread_Change_life_locked() as a general function to alter the thread life state. Use it to implement _Thread_Set_life_protection() as a first step. Update #2555. Update #2626.
2016-04-06score: Rework MP thread queue callout supportSebastian Huber1-1/+1
The thread queue implementation was heavily reworked to support SMP. This broke the multiprocessing support of the thread queues. This is fixed by this patch. A thread proxy is unblocked due to three reasons 1) timeout, 2) request satisfaction, and 3) extraction. In case 1) no MPCI message must be sent. This is ensured via the _Thread_queue_MP_callout_do_nothing() callout set during _Thread_MP_Allocate_proxy(). In case 2) and 3) an MPCI message must be sent. In case we interrupt the blocking operation during _Thread_queue_Enqueue_critical(), then this message must be sent by the blocking thread. For this the new fields Thread_Proxy_control::thread_queue_callout and Thread_Proxy_control::thread_queue_id are used. Delete the individual API MP callout types and use Thread_queue_MP_callout throughout. This type is only defined in multiprocessing configurations. Prefix the multiprocessing parameters with mp_ to ease code review. Multiprocessing specific parameters are optional due to use of a similar macro pattern. There is no overhead for non-multiprocessing configurations.
2015-05-19score: Fine grained locking for mutexesSebastian Huber1-7/+10
Update #2273.
2014-03-31score: Use thread life protection for API mutexesSebastian Huber1-10/+16
This prevents that asynchronous thread deletion can lead to an unusable allocator or once mutex.
2014-03-31score: Relax Giant lock usage for API mutexesSebastian Huber1-4/+1
It is no longer necessary to protect the workspace allocations with the Giant lock due to the thread life cycle re-implementation.
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns1-1/+1
2013-07-22score: Include missing header filesSebastian Huber1-0/+1
2012-12-01score misc: Score misc: Clean up Doxygen #10 (GCI 2012)Christopher Kerl1-0/+8
This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7983216
2012-05-11Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill1-2/+0
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.
2011-08-022011-08-02 Jennifer.Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett1-1/+4
PR 1872 * score/src/apimutexlock.c, score/src/apimutexunlock.c: Added smp support to apimutex.
2007-11-092007-11-09 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-12/+8
* score/src/apimutexlock.c, score/src/apimutexunlock.c: Functions were in opposite files. Whoops!
2007-11-092007-11-09 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-11/+14
* sapi/src/exinit.c, score/Makefile.am, score/include/rtems/score/apimutex.h: API Mutex calls should never have been inlined. Inlining them lead to many inlined copies of core mutex lock. This lead to over 2K savings in the SPARC/ERC32 minimum.exe. * score/src/apimutex.c, score/src/apimutexallocate.c, score/src/apimutexlock.c, score/src/apimutexunlock.c: New files.
2007-05-032007-05-03 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-15/+13
* ChangeLog, libcsupport/src/malloc.c, libcsupport/src/mallocfreespace.c, sapi/include/confdefs.h, score/Makefile.am, score/preinstall.am: malloc never blocks so the Region Manager is quite heavy for implementing this. This patch implements the C Program Heap directly in terms of the new Protected Heap handler. This handler is a direct use of a SuperCore Heap in conjunction with the Allocator Mutex used internally by RTEMS. This saves 3184 bytes on most SPARC test executables. * score/include/rtems/score/protectedheap.h, score/src/pheapallocate.c, score/src/pheapallocatealigned.c, score/src/pheapextend.c, score/src/pheapfree.c, score/src/pheapgetblocksize.c, score/src/pheapgetfreeinfo.c, score/src/pheapgetinfo.c, score/src/pheapinit.c, score/src/pheapresizeblock.c, score/src/pheapwalk.c: New files.
2007-04-172007-04-17 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-10/+10
* 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.
2004-04-15Remove unnecessary white spaces.Ralf Corsepius1-1/+1
2004-04-012004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius1-1/+1
* libblock/include/rtems/bdbuf.h: Include <rtems/chain.h> instead of <chain.h>. * libblock/include/rtems/ide_part_table.h: Include <rtems/chain.h> instead of <chain.h>. * libcsupport/src/malloc.c: Include <rtems/chain.h> instead of <chain.h>. * libcsupport/src/mount.c: Include <rtems/chain.h> instead of <chain.h>. * libcsupport/src/unmount.c: Include <rtems/chain.h> instead of <chain.h>. * libfs/src/imfs/imfs.h: Include <rtems/chain.h> instead of <chain.h>. * libfs/src/imfs/imfs_directory.c: Include <rtems/chain.h> instead of <chain.h>. * libfs/src/imfs/imfs_load_tar.c: Include <rtems/chain.h> instead of <chain.h>. * sapi/include/confdefs.h: Include <rtems/clockdrv.h> instead of <clockdrv.h>. * sapi/include/confdefs.h: Include <rtems/console.h> instead of <console.h>. * libfs/src/imfs/imfs_load_tar.c: Include <rtems/imfs.h> instead of <imfs.h>. * libmisc/shell/cmds.c: Include <rtems/imfs.h> instead of <imfs.h>. * libmisc/fsmount/fsmount.c: Include <rtems/imfs.h> instead of <imfs.h>. * sapi/include/confdefs.h: Include <rtems/imfs.h> instead of <imfs.h>. * itron/src/can_wup.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/chg_pri.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/cre_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/cre_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/cre_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/cre_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/del_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/del_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/del_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/del_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/dis_dsp.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ena_dsp.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/eventflags.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/exd_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ext_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/fmempool.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/frsm_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/get_tid.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/itronintr.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/itronsem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/itrontime.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/mbox.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/mboxtranslatereturncode.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/msgbuffer.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/msgbuffertranslatereturncode.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/network.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/port.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/prcv_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/prcv_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/preq_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/psnd_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/rcv_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/rcv_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ref_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ref_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ref_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ref_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/rel_wai.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/rot_rdq.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/rsm_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/sig_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/slp_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/snd_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/snd_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/sta_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/sus_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/sysmgmt.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/task.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/ter_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/trcv_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/trcv_mbx.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/tslp_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/tsnd_mbf.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/twai_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/vmempool.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/wai_sem.c: Include <rtems/itron.h> instead of <itron.h>. * itron/src/wup_tsk.c: Include <rtems/itron.h> instead of <itron.h>. * sapi/include/rtems/config.h: Include <rtems/itron.h> instead of <itron.h>. * sapi/include/confdefs.h: Include <rtems/itron.h> instead of <itron.h>. * sapi/src/itronapi.c: Include <rtems/itron.h> instead of <itron.h>. * sapi/include/confdefs.h: Include <rtems/rtc.h> instead of <rtc.h>. * sapi/include/confdefs.h: Include <rtems/timerdrv.h> instead of <timerdrv.h>.
2003-09-042003-09-04 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+1
* include/itron.h, include/itronsys/eventflags.h, include/itronsys/fmempool.h, include/itronsys/intr.h, include/itronsys/mbox.h, include/itronsys/msgbuffer.h, include/itronsys/network.h, include/itronsys/port.h, include/itronsys/semaphore.h, include/itronsys/status.h, include/itronsys/sysmgmt.h, include/itronsys/task.h, include/itronsys/time.h, include/itronsys/types.h, include/itronsys/vmempool.h, include/rtems/itron/config.h, include/rtems/itron/eventflags.h, include/rtems/itron/fmempool.h, include/rtems/itron/intr.h, include/rtems/itron/itronapi.h, include/rtems/itron/mbox.h, include/rtems/itron/msgbuffer.h, include/rtems/itron/network.h, include/rtems/itron/object.h, include/rtems/itron/port.h, include/rtems/itron/semaphore.h, include/rtems/itron/sysmgmt.h, include/rtems/itron/task.h, include/rtems/itron/time.h, include/rtems/itron/vmempool.h, inline/rtems/itron/eventflags.inl, inline/rtems/itron/fmempool.inl, inline/rtems/itron/intr.inl, inline/rtems/itron/mbox.inl, inline/rtems/itron/msgbuffer.inl, inline/rtems/itron/network.inl, inline/rtems/itron/port.inl, inline/rtems/itron/semaphore.inl, inline/rtems/itron/sysmgmt.inl, inline/rtems/itron/task.inl, inline/rtems/itron/time.inl, inline/rtems/itron/vmempool.inl, macros/rtems/itron/eventflags.inl, macros/rtems/itron/fmempool.inl, macros/rtems/itron/intr.inl, macros/rtems/itron/mbox.inl, macros/rtems/itron/msgbuffer.inl, macros/rtems/itron/network.inl, macros/rtems/itron/port.inl, macros/rtems/itron/semaphore.inl, macros/rtems/itron/sysmgmt.inl, macros/rtems/itron/task.inl, macros/rtems/itron/time.inl, macros/rtems/itron/vmempool.inl, src/can_wup.c, src/chg_pri.c, src/cre_mbf.c, src/cre_mbx.c, src/cre_sem.c, src/cre_tsk.c, src/del_mbf.c, src/del_mbx.c, src/del_sem.c, src/del_tsk.c, src/dis_dsp.c, src/ena_dsp.c, src/eventflags.c, src/exd_tsk.c, src/ext_tsk.c, src/fmempool.c, src/frsm_tsk.c, src/get_tid.c, src/itronintr.c, src/itronsem.c, src/itrontime.c, src/mbox.c, src/mboxtranslatereturncode.c, src/msgbuffer.c, src/msgbuffertranslatereturncode.c, src/network.c, src/port.c, src/prcv_mbf.c, src/prcv_mbx.c, src/preq_sem.c, src/psnd_mbf.c, src/rcv_mbf.c, src/rcv_mbx.c, src/ref_mbf.c, src/ref_mbx.c, src/ref_sem.c, src/ref_tsk.c, src/rel_wai.c, src/rot_rdq.c, src/rsm_tsk.c, src/sig_sem.c, src/slp_tsk.c, src/snd_mbf.c, src/snd_mbx.c, src/sta_tsk.c, src/sus_tsk.c, src/sysmgmt.c, src/task.c, src/ter_tsk.c, src/trcv_mbf.c, src/trcv_mbx.c, src/tslp_tsk.c, src/tsnd_mbf.c, src/twai_sem.c, src/vmempool.c, src/wai_sem.c, src/wup_tsk.c: URL for license changed.
2001-01-242001-01-24 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-0/+4
* configure.in: Add src/config.h * src/Makefile.am: Add INCLUDES += -I. to pickup config.h * src/.cvsignore: Add config.h and stamp-h * src/*.c: Add config.h support.
1999-11-17+ Updated copyright information.Jennifer Averett1-0/+3
1999-11-17Updated Mailbox Manager submitted and split into multiple files.Joel Sherrill1-8/+7
1999-11-15Split ITRON Message Buffer Manager into multiple files.Joel Sherrill1-8/+9
1999-11-15Split ITRON semaphore manager into multiple files.Joel Sherrill1-11/+9
1999-11-10Committed modifications from ITRON Task and Task Dependendent SynchronizationJoel Sherrill1-1/+1
Working Group. Included are tests.
1999-11-09This patch adds the basic framework for the ITRON 3.0 API implementationJoel Sherrill1-0/+28
for RTEMS.