summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/chain.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-05-20Update company nameSebastian Huber1-1/+1
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2022-09-19Do not use RTEMS_INLINE_ROUTINESebastian Huber1-32/+32
Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
2022-03-25cpukit/include/sys: Change license to BSD-2.Joel Sherrill1-3/+22
Updates #3053.
2020-12-02sapi: Canonicalize @defgroup and @file commentsSebastian Huber1-4/+8
Adjust group identifier and names to be in line with a common pattern. Use common phrases for the group and file brief descriptions. Update #3706.
2020-10-14Remove *_Is_null() inline functionsSebastian Huber1-1/+1
Simply compare the values against NULL.
2019-04-02doxygen: Restructured cpukit/include/rtems/rtemsAndreas Dachsberger1-1/+1
Update #3706.
2018-01-25Remove make preinstallChris Johns1-0/+0
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2016-09-06score: Add missing const qualifiersSebastian Huber1-4/+4
2016-07-22score: Add debug support to chainsSebastian Huber1-0/+15
This helps to detect * double insert, append, prepend errors, and * get from empty chain errors.
2016-04-06score: Delete _Chain_Append()Sebastian Huber1-10/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Get()Sebastian Huber1-9/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Extract()Sebastian Huber1-9/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Insert()Sebastian Huber1-10/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Get_with_empty_check()Sebastian Huber1-10/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Prepend_with_empty_check()Sebastian Huber1-10/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Append_with_empty_check()Sebastian Huber1-10/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Prepend()Sebastian Huber1-10/+0
This function is not used in the score. Update #2555.
2015-11-05sapi: Add rtems_chain_get_first_unprotected()Sebastian Huber1-0/+10
Close #2459.
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns1-1/+1
2014-03-11sapi: Use one SMP lock for all chainsSebastian Huber1-83/+39
This partially reverts commit 1215fd4d9426a59d568560e9a485628560363133. In order to support profiling of SMP locks and provide a future compatible SMP locks API it is necessary to add an SMP lock destroy function. Since the commit above adds an SMP lock to each chain control we would have to add a rtems_chain_destroy() function as well. This complicates the chain usage dramatically. Thus revert the patch above. A global SMP lock for all chains is used to implement the protected chain operations. Advantages: * The SAPI chain API is now identical on SMP and non-SMP configurations. * The size of the chain control is reduced and is then equal to the Score chains. * The protected chain operations work correctly on SMP. Disadvantage: * Applications using many different chains and the protected operations may notice lock contention. The chain control size drop is a huge benefit (SAPI chain controls are 66% larger than the Score chain controls). The only disadvantage is not really a problem since these applications can use specific interrupt locks and unprotected chain operations to avoid this issue.
2013-08-30sapi: SMP support for chainsSebastian Huber1-31/+134
Add ISR lock to chain control for proper SMP protection. Replace rtems_chain_extract() with rtems_chain_explicit_extract() and rtems_chain_insert() with rtems_chain_explicit_insert() on SMP configurations. Use rtems_chain_explicit_extract() and rtems_chain_explicit_insert() to provide SMP support.
2013-08-27score: Add and use CHAIN_INITIALIZER_ONE_NODE().Sebastian Huber1-0/+16
Add and use CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN(), RTEMS_CHAIN_INITIALIZER_ONE_NODE() and RTEMS_CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN().
2013-07-22sapi: Merge chain implementation into one fileSebastian Huber1-9/+643
2013-07-22score: Create chain implementation headerSebastian Huber1-2/+1
Move implementation specific parts of chain.h and chain.inl into new header file chainimpl.h. The chain.h contains now only the application visible API.
2013-01-10cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill1-4/+2
This is the result of a sed script which converts all uses of @{ into a consistent form.
2013-01-08sapi: Doxygen Clean Up Task #1Alex Ivanov1-5/+3
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.
2010-08-242010-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber1-12/+87
PR 1673/cpukit * sapi/src/chainappendnotify.c, sapi/src/chaingetnotify.c, sapi/src/chaingetwait.c, sapi/src/chainprependnotify.c: New files. * sapi/Makefile.am: Reflect changes above. * sapi/include/rtems/chain.h: Declare rtems_chain_append_with_notification(), rtems_chain_prepend_with_notification(), rtems_chain_get_with_notification(), and rtems_chain_get_with_wait(). * sapi/inline/rtems/chain.inl: Define rtems_chain_append_with_empty_check(), rtems_chain_prepend_with_empty_check(), and rtems_chain_get_with_empty_check().
2010-08-202010-08-16 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius1-3/+3
* sapi/include/rtems/chain.h: Move extern "C".
2009-11-30Added defines for initialization of empty chains.Thomas Doerfler1-0/+11
2009-11-29Whitespace removal.Ralf Corsepius1-1/+1
2008-07-032008-07-03 Chris Johns <chrisj@rtems.org>Chris Johns1-0/+54
* cpukit/libcsupport/include/chain.h: Removed. Use the SAPI interface that is supported. * cpukit/libcsupport/Makefile.am, cpukit/libcsupport/preinstall.am: Remove chain.h header references. * cpukit/sapi/include/rtems/chain.h, cpukit/sapi/inline/rtems/chain.inl: New. A supported chains interface. * cpukit/sapi/Makefile.am, cpukit/sapi/preinstall.am: Updated to include the new chains interface. * cpukit/libfs/src/imfs/imfs.h, cpukit/libfs/src/imfs/imfs_creat.c, cpukit/libfs/src/imfs/imfs_debug.c, cpukit/libfs/src/imfs/imfs_directory.c, cpukit/libfs/src/imfs/imfs_fsunmount.c, cpukit/libfs/src/imfs/imfs_getchild.c, cpukit/libfs/src/imfs/imfs_load_tar.c, cpukit/libfs/src/imfs/imfs_rmnod.c, cpukit/libfs/src/imfs/memfile.c, cpukit/libfs/src/nfsclient/src/nfs.c, cpukit/libcsupport/include/rtems/libio.h, cpukit/libcsupport/src/malloc_deferred.c, cpukit/libcsupport/src/mount.c, cpukit/libcsupport/src/privateenv.c, cpukit/libcsupport/src/unmount.c: Change to the new chains interface. * cpukit/libcsupport/src/malloc_boundary.c: Remove warning.