Commit Graph

20 Commits

Author SHA1 Message Date
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Sebastian Huber
ae88aa7927 sapi: Use one SMP lock for all chains
This partially reverts commit 1215fd4d94.

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.
2014-03-11 10:58:09 +01:00
Sebastian Huber
1215fd4d94 sapi: SMP support for chains
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-30 11:16:28 +02:00
Sebastian Huber
23de794d15 score: Add and use CHAIN_INITIALIZER_ONE_NODE().
Add and use CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN(),
RTEMS_CHAIN_INITIALIZER_ONE_NODE() and
RTEMS_CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN().
2013-08-27 10:48:16 +02:00
Sebastian Huber
ec978d97e0 score: Add _Chain_Insert_ordered_unprotected() 2013-06-14 16:26:06 +02:00
Sebastian Huber
cbd07e4ce0 score: Add rtems_chain_node_count_unprotected() 2012-12-21 15:40:27 +01:00
Joel Sherrill
3c8eda77b9 sptests - Eliminate missing prototype warnings 2012-05-31 10:06:16 -05:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
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.
2012-05-11 08:44:13 -05:00
Gedare Bloom
b431b6635d 2011-11-26 Gedare Bloom <gedare@rtems.org>
PR 1964
	* spchain/init.c, spchain/spchain.scn: Add testcases for chain is first
	and last
2011-11-26 18:07:52 +00:00
Joel Sherrill
9e15e9bfba 2011-07-24 Joel Sherrill <joel.sherrill@oarcorp.com>
* sp04/tswitch.c, sp07/task1.c, sp07/task2.c, sp09/screen07.c,
	sp11/task1.c, sp11/task2.c, sp12/pridrv.c, sp12/pritask.c,
	sp13/task1.c, sp14/asr.c, sp14/task1.c, sp19/first.c, sp19/fptask.c,
	sp19/inttest.h, sp19/task1.c, sp20/task1.c, sp25/task1.c,
	sp26/task1.c, sp28/init.c, sp29/init.c, sp31/task1.c, sp32/init.c,
	sp33/init.c, sp34/changepri.c, sp36/strict_order_mut.c, sp37/init.c,
	sp43/init.c, sp44/init.c, sp48/init.c, sp54/init.c, sp59/init.c,
	sp65/init.c, sp68/init.c, spchain/init.c, spclockget/init.c,
	spfatal03/testcase.h, spfatal07/testcase.h, spfatal_support/init.c:
	Do not line length exceed 80 columns.
2011-07-24 22:10:20 +00:00
Joel Sherrill
9d5f6005b5 2011-03-08 Joel Sherrill <joel.sherrilL@OARcorp.com>
* spchain/init.c: Improve coverage testing.
2011-03-09 00:38:56 +00:00
Ralf Corsepius
7d3f9c646a Add HAVE_CONFIG_H. 2011-02-22 07:37:03 +00:00
Sebastian Huber
719f4dd492 2010-11-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
* spchain/init.c: Added test case.
2010-11-26 12:55:22 +00:00
Sebastian Huber
fb01c02230 2010-11-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
* spchain/init.c, spchain/spchain.scn: More test cases.
2010-11-25 12:38:57 +00:00
Joel Sherrill
4cdce0e45a 2010-10-25 Joel Sherrill <joel.sherrill@oarcorp.com>
* spchain/init.c: Attempt to improve coverage.
2010-10-26 04:22:55 +00:00
Sebastian Huber
ae78019467 2010-10-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
* spchain/init.c, spwatchdog/task1.c: Do not violate chain API.
2010-10-25 07:29:27 +00:00
Sebastian Huber
469e71d720 2010-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
* spchain/init.c, spchain/spchain.doc, spchain/spchain.scn: New test
	cases.
2010-08-24 15:01:04 +00:00
Ralf Corsepius
b1274bd94c Whitespace removal. 2009-11-30 03:33:25 +00:00
Joel Sherrill
84b7a96833 2009-07-02 Joel Sherrill <joel.sherrill@OARcorp.com>
* spchain/init.c, spchain/spchain.scn: Clean up test.
2009-07-02 15:24:37 +00:00
Joel Sherrill
37cff02c38 2009-07-01 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, configure.ac: Add new test to cover bodies of some chain
	routines whose bodies are not used by RTEMS itself.
	* spchain/.cvsignore, spchain/Makefile.am, spchain/init.c,
	spchain/spchain.doc, spchain/spchain.scn: New files.
2009-07-01 19:49:08 +00:00