summaryrefslogtreecommitdiff
path: root/cpukit/posix/src/key.c (follow)
AgeCommit message (Collapse)Author
2020-04-16Canonicalize config.h includeSebastian Huber
Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
2018-12-14score: Static Objects_Information initializationSebastian Huber
Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621.
2018-12-07score: Remove Objects_Information::is_stringSebastian Huber
Use Objects_Information::name_length to store this information. Update #3621.
2018-10-29Remove RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMESSebastian Huber
Enable support for string objects names unconditionally. Add const qualifier throughout. Split _Objects_Namespace_remove() into _Objects_Namespace_remove_u32() and _Objects_Namespace_remove_string() to avoid an unnecessary dependency on _Workspace_Free(). Update #2514.
2017-08-25Include missing <limits.h>Sebastian Huber
Update #2132.
2016-04-21score: Simplify _Objects_Initialize_information()Sebastian Huber
Remove unused supports_global parameter. Convert _Objects_Initialize_information() to a macro to avoid use of RTEMS_MULTIPROCESSING define for each caller.
2016-04-14posix: Run key destructors during thread restartSebastian Huber
POSIX key destructors must be called during thread restart. Just like the POSIX cleanup handlers. This ensures that the TLS object destructors are called during thread restart for example. It is important for the global construction, which uses a thread restart to run the Init task in a clean environment. Close #2689.
2016-03-18posix: Use per-thread lookup tree for POSIX KeysSebastian Huber
Yields higher performance on SMP systems. Close #2625.
2016-02-03Optional POSIX Keys initializationSebastian Huber
Update #2408.
2015-07-01score: Freechain handler API changesSebastian Huber
Replace the extend function with an allocator since this fits better to the current use case.
2014-08-05posix: Simplify key implementationSebastian Huber
2014-08-05rbtree: Add and use RBTree_Compare_resultSebastian Huber
2014-08-05Add and use RTEMS_CONTAINER_OF()Sebastian Huber
2014-07-15rbtree: Reduce RBTree_Control sizeSebastian Huber
Remove compare function and is unique indicator from the control structure. Rename RBTree_Compare_function to RBTree_Compare. Rename rtems_rbtree_compare_function to rtems_rbtree_compare. Provide C++ compatible initializers. Add compare function and is unique indicator to _RBTree_Find(), _RBTree_Insert(), rtems_rbtree_find() and rtems_rbtree_insert(). Remove _RBTree_Is_unique() and rtems_rbtree_is_unique(). Remove compare function and is unique indicator from _RBTree_Initialize_empty() and rtems_rbtree_initialize_empty().
2014-05-06posix: Fix POSIX keys initializationSebastian Huber
Always initialize the freechain. This prevents a NULL pointer access in case no initial key value pairs are defined.
2014-04-07score: Lazy key value pair allocationSebastian Huber
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns
2014-03-07POSIX keys now enabled in all configurations.Joel Sherrill
Formerly POSIX keys were only enabled when POSIX threads were enabled. Because they are a truly safe alternative to per-task variables in an SMP system, they are being enabled in all configurations.
2013-08-08posix: Delete POSIX_Keys_Freechain typeSebastian Huber
Use the POSIX configuration value directly. Use right type early and avoid casts. Use proper unlimited objects API. Check workspace allocation. Make functions static.
2013-08-06posix: Create key implementation headerSebastian Huber
Move implementation specific parts of key.h and key.inl into new header file keyimpl.h. The key.h contains now only the application visible API.
2013-08-06Unlimited objects support for POSIX keysZhongwei Yao
This patch enables unlimited model in POSIX key manger and have a decent runtime on POSIX key searching, adding and deleting operations. Memory overhead is lower than current implementation when the size of key and key value becomes big.
2012-12-13posix: Doxygen enhancement task #4Mathew Kallada
http://www.google-melange.com/gci/task/view/google/gci2012/7955219
2012-05-11Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill
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.
2009-02-03Eliminate TRUE/FALSE.Ralf Corsepius
2008-12-172008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill
* posix/include/rtems/posix/barrier.h, posix/include/rtems/posix/cond.h, posix/include/rtems/posix/key.h, posix/include/rtems/posix/mqueue.h, posix/include/rtems/posix/mutex.h, posix/include/rtems/posix/psignal.h, posix/include/rtems/posix/pthread.h, posix/include/rtems/posix/ptimer.h, posix/include/rtems/posix/rwlock.h, posix/include/rtems/posix/semaphore.h, posix/include/rtems/posix/spinlock.h, posix/include/rtems/posix/timer.h, posix/src/cond.c, posix/src/key.c, posix/src/mqueue.c, posix/src/mutex.c, posix/src/pbarrier.c, posix/src/prwlock.c, posix/src/psignal.c, posix/src/pspin.c, posix/src/pthread.c, posix/src/pthreadinitthreads.c, posix/src/ptimer.c, posix/src/semaphore.c, sapi/src/posixapi.c: Convert POSIX manager initialization routines to directly pull parameters from configuration table.
2008-04-182008-04-18 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill
* posix/src/key.c: Include <limits.h> * posix/src/psignal.c, rtems/src/tasks.c: Do not attempt to process a NULL extension block.
2008-01-312008-01-31 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill
* posix/src/cond.c, posix/src/key.c, posix/src/mqueuenametoid.c, posix/src/mutex.c, posix/src/pbarrier.c, posix/src/prwlock.c, posix/src/pspin.c, posix/src/pthread.c, posix/src/ptimer.c, posix/src/semaphorenametoid.c: Add option for all POSIX objects whether named or unnamed to have a string name. If the API does not directly support having a name, then the user must explicitly assign it using rtems_object_set_name(). * rtems/src/rtemsobjectgetapiclassname.c: Improved testability. * score/include/rtems/score/object.h, score/src/objectgetnameasstring.c, score/src/objectnametoidstring.c, score/src/objectsetname.c: Modifications required to pass testing of recently modified object name operations. Also eliminated multiprocessing related code that was not reachable.
2007-12-172007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill
* posix/preinstall.am, posix/include/aio.h, posix/include/devctl.h, posix/include/mqueue.h, posix/include/sched.h, posix/include/semaphore.h, posix/include/rtems/posix/cancel.h, posix/include/rtems/posix/priority.h, posix/include/rtems/posix/psignal.h, posix/include/rtems/posix/threadsup.h, posix/include/rtems/posix/timer.h, posix/inline/rtems/posix/priority.inl, posix/src/barrierattrdestroy.c, posix/src/barrierattrgetpshared.c, posix/src/barrierattrinit.c, posix/src/barrierattrsetpshared.c, posix/src/cancel.c, posix/src/cancelrun.c, posix/src/cleanuppop.c, posix/src/cleanuppush.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/condwait.c, posix/src/condwaitsupp.c, posix/src/key.c, posix/src/keycreate.c, posix/src/keydelete.c, posix/src/keygetspecific.c, posix/src/keyrundestructors.c, posix/src/keysetspecific.c, posix/src/mqueue.c, posix/src/mqueueclose.c, posix/src/mqueuecreatesupp.c, posix/src/mqueuedeletesupp.c, posix/src/mqueuegetattr.c, posix/src/mqueuenametoid.c, posix/src/mqueuenotify.c, posix/src/mqueueopen.c, posix/src/mqueuereceive.c, posix/src/mqueuerecvsupp.c, posix/src/mqueuesend.c, posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.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/mutexdefaultattributes.c, posix/src/mutexdestroy.c, posix/src/mutexgetprioceiling.c, posix/src/mutexlock.c, posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c, posix/src/mutextrylock.c, posix/src/mutexunlock.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/ptimer.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/semtrywait.c, posix/src/semunlink.c, posix/src/semwait.c, posix/src/setcancelstate.c, posix/src/setcanceltype.c, posix/src/sysconf.c, posix/src/testcancel.c: Add missing copyright statements.
2004-04-16Remove stray white spaces.Ralf Corsepius
2004-03-232004-03-23 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius
* posix/include/rtems/posix/cond.h, posix/include/rtems/posix/intr.h, posix/include/rtems/posix/key.h, posix/include/rtems/posix/mqueue.h, posix/include/rtems/posix/mutex.h, posix/include/rtems/posix/pthread.h, posix/include/rtems/posix/semaphore.h, posix/include/rtems/posix/threadsup.h, posix/include/rtems/posix/timer.h, posix/src/cond.c, posix/src/intr.c, posix/src/key.c, posix/src/keycreate.c, posix/src/keydelete.c, posix/src/keygetspecific.c, posix/src/keyrundestructors.c, posix/src/keysetspecific.c, posix/src/killinfo.c, posix/src/mqueue.c, posix/src/mqueuerecvsupp.c, posix/src/mqueuesendsupp.c, posix/src/mqueuetranslatereturncode.c, posix/src/mutex.c, posix/src/posixintervaltotimespec.c, posix/src/posixtimespecsubtract.c, posix/src/psignal.c, posix/src/pthread.c, posix/src/ptimer1.c, posix/src/semaphore.c, posix/src/sysconf.c: Convert to using c99 fixed size types.
2002-07-012002-07-01 Joel Sherrill <joel@OARcorp.com>Joel Sherrill
* Mega patch merge to change the format of the object IDs to loosen the dependency between the SCORE and the various APIs. There was considerable work to simplify the object name management and it appears that the name_table field is no longer needed. This patch also includes the addition of the internal mutex which is currently only used to protect some types of allocation and deallocation. This significantly can reduce context switch latency under certain circumstances. In particular, some heap/region operations were O(n) and had dispatching disabled. This should help enormously. With this merge, the patch is not as clean as it should be. In particular, the documentation has not been modified to reflect the new object ID layout, the IDs in the test screens are not updated, and _Objects_Get_information needs to be a real routine not inlined. As part of this patch a lot of MP code for thread/proxy blocking was made conditional and cleaned up. * include/rtems/posix/key.h, src/cond.c, src/condinit.c, src/intr.c, src/key.c, src/keycreate.c, src/keydelete.c, src/killinfo.c, src/mqueue.c, src/mqueuecreatesupp.c, src/mutex.c, src/mutexinit.c, src/psignal.c, src/pthread.c, src/semaphore.c, src/semaphorecreatesupp.c: Modified as part of above.
2001-01-242001-01-24 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill
* 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-02Split key.c into multiple files.Joel Sherrill
1996-08-09merged remote object id and invalid id error cases.Joel Sherrill
1996-08-06pthread_getspecific: use local variable so references to tcb are completedJoel Sherrill
before enabling dispatching
1996-06-07key destructor is now run at correct point in pthread_exit() sequence andJoel Sherrill
should be correct for other apis as well. missing page numbers added on some references. initial attempt at sig_procmask() and pthread_sigmask().
1996-05-29comment clean upJoel Sherrill
1996-05-22These files have been modified in the initial pass at getting the portionJoel Sherrill
of the POSIX API necessary to support the GNAT runtime to initially compile. We now have verified that the specifications for the necessary routines are correct per the POSIX standards we have.
1995-10-06fixed missing CVS IDsJoel Sherrill
1995-09-26posix support initially addedJoel Sherrill