Commit Graph

99 Commits

Author SHA1 Message Date
Sebastian Huber
beab7329fc score: Introduce scheduler nodes
Rename scheduler per-thread information into scheduler nodes using
Scheduler_Node as the base type.  Use inheritance for specialized
schedulers.

Move the scheduler specific states from the thread control block into
the scheduler node structure.

Validate the SMP scheduler node state transitions in case RTEMS_DEBUG is
defined.
2014-05-14 14:46:19 +02:00
Sebastian Huber
e1598a616d score: Static scheduler configuration
Do not allocate the scheduler control structures from the workspace.
This is a preparation step for configuration of clustered/partitioned
schedulers on SMP.
2014-04-15 08:37:11 +02:00
Sebastian Huber
263f4becea score: Statically initialize IO manager
This simplifies the RTEMS initialization and helps to avoid a memory
overhead.  The workspace demands of the IO manager were not included in
the <rtems/confdefs.h> workspace size estimate.  This is also fixed as a
side-effect.

Update documentation and move "Specifying Application Defined Device
Driver Table" to the section end.  This sub-section is not that
important for the user.  Mentioning this at the beginning may lead to
confusion.
2014-04-10 12:37:40 +02:00
Sebastian Huber
e785fbaae5 score: Delete _Thread_Ticks_per_timeslice
Use the Configuration instead.
2014-04-07 14:51:31 +02:00
Sebastian Huber
4744584698 score: Delete _Thread_Maximum_extensions
Use the Configuration instead.
2014-04-07 14:51:31 +02:00
Sebastian Huber
494c2e3002 score: Move priority bit map to scheduler instance
Delete global variables _Priority_Major_bit_map and _Priority_Bit_map.
This makes it possible to use multiple priority scheduler instances for
example with clustered/partitioned scheduling on SMP.
2014-04-03 11:13:26 +02:00
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Sebastian Huber
514705d2f1 score: Delete _Thread_BSP_context
Do not return to BSP context in the exit() shutdown path.  This makes it
possible to re-use the initialization stack.  It can be used for the
interrupt stack for example.  On targets with a small RAM this is a
considerable benefit.

This change eliminates also some special cases and simplifies the code.

Delete _Thread_Set_global_exit_status(),
_Thread_Get_global_exit_status() and _Thread_Stop_multitasking().
2014-02-19 09:59:39 +01:00
HailinGuo
05b3db65f9 spsize/size.c: Fix typo.
From pull request at fc07a4c501
2014-01-09 09:50:18 -06:00
Sebastian Huber
f031df0e63 score: Rename tod.h to todimpl.h 2013-08-01 16:45:45 +02:00
Sebastian Huber
7f04cb18ff score: Create mpci implementation header
Move implementation specific parts of mpci.h into new header file
mpciimpl.h.  The mpci.h contains now only the application visible API.
2013-07-26 11:55:46 +02:00
Sebastian Huber
f0bfd7d81d score: Create prioritybitmap implementation header
Move implementation specific parts of prioritybitmap.h and
prioritybitmap.inl into new header file prioritybitmapimpl.h.  The
prioritybitmap.h contains now only the application visible API.

Move content of bitfield.h into prioritybitmapimpl.h.
2013-07-26 11:55:44 +02:00
Sebastian Huber
c40482815e rtems: Create tasks implementation header
Move implementation specific parts of tasks.h and tasks.inl into new
header file tasksimpl.h.  The tasks.h contains now only the application
visible API.
2013-07-23 15:12:55 +02:00
Sebastian Huber
f6c7c57d86 rtems: Create region implementation header
Move implementation specific parts of region.h and region.inl into new
header file regionimpl.h.  The region.h contains now only the
application visible API.
2013-07-23 15:12:55 +02:00
Sebastian Huber
8695cae269 rtems: Create part implementation header
Move implementation specific parts of part.h and part.inl into new
header file partimpl.h.  The part.h contains now only the application
visible API.
2013-07-23 15:12:55 +02:00
Sebastian Huber
e90b1dfdda rtems: Create timer implementation header
Move implementation specific parts of timer.h and timer.inl into new
header file timerimpl.h.  The timer.h contains now only the application
visible API.
2013-07-23 15:12:54 +02:00
Sebastian Huber
ecdcf01add rtems: Create ratemon implementation header
Move implementation specific parts of ratemon.h and ratemon.inl into
new header file ratemonimpl.h.  The ratemon.h contains now only the
application visible API.
2013-07-23 15:12:54 +02:00
Sebastian Huber
562815cf0b rtems: Create dpmem implementation header
Move implementation specific parts of dpmem.h and dpmem.inl into new
header file dpmemimpl.h.  The dpmem.h contains now only the application
visible API.
2013-07-23 15:12:54 +02:00
Sebastian Huber
e151eb1a36 rtems: Create event implementation header
Move implementation specific parts of event.h, event.inl, eventset.h and
eventset.inl into new header file eventimpl.h.  The event.h contains now
only the application visible API.
2013-07-23 15:12:53 +02:00
Sebastian Huber
ac252bdce0 sapi: Create extension implementation header
Move implementation specific parts of extension.h and extension.inl into
new header file extensionimpl.h.  The extension.h contains now only the
application visible API.
2013-07-23 15:12:51 +02:00
Sebastian Huber
4b48ece07d score: Create watchdog implementation header
Move implementation specific parts of watchdog.h and watchdog.inl into
new header file watchdogimpl.h.  The watchdog.h contains now only the
application visible API.
2013-07-22 16:57:25 +02:00
Sebastian Huber
993a888dfd rtems: Create message queue implementation header
Move implementation specific parts of message.h and message.inl into new
header file messageimpl.h.  The message.h contains now only the
application visible API.
2013-07-22 16:56:58 +02:00
Sebastian Huber
2bbea657ae rtems: Create semaphore implementation header
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.
2013-07-18 09:58:56 +02:00
Sebastian Huber
edde99bd21 score: Rename rtems_smp_get_number_of_processors()
Rename in rtems_smp_get_processor_count().  Always provide
<rtems/score/smp.h> and <rtems/rtems/smp.h>.  Add
_SMP_Get_processor_count().  This function will be a compile time
constant defined to be one on uni-processor configurations.  This allows
iterations over all processors without overhead on uni-processor
configurations.
2013-06-14 16:26:07 +02:00
Sebastian Huber
3be0c9afa3 score: Add and use <rtems/score/userextimpl.h>
This file contains the parts of <rtems/score/userext.h> that are only
necessary for the RTEMS implementation.
2012-11-22 16:35:07 +01:00
Sebastian Huber
3246b0f8fc score: New structure TOD_Control
Group the global TOD variables (_TOD_Now, _TOD_Uptime, and _TOD_Is_set)
in a structure to reduce address loads in _TOD_Tickle_ticks().
2012-06-14 14:20:30 +02: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
Jennifer Averett
15cf2cb507 2011-04-27 Jennifer Averett <Jennifer.Averett@OARcorp.com>
PR 1784
	* sptests/spsize/size.c: Split bspsmp.h into two files smp.h and
	bspsmp.h
2011-04-27 17:20:35 +00:00
Joel Sherrill
b3a7216629 2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1729/cpukit
	* spsize/size.c: Add next step in SMP support. This adds an allocated
	array of the Per_CPU structures to support multiple cpus vs a single
	instance of the structure which is still used if SMP support is
	disabled. Configuration support is also added to explicitly enable or
	disable SMP. But SMP can only be enabled for the CPUs which will
	support it initially -- SPARC and i386. With the stub BSP support, a
	BSP can be run as a single core SMP system from an RTEMS data
	structure standpoint.
2011-03-16 20:08:39 +00:00
Joel Sherrill
5bbc204431 2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1743/cpu
	* Makefile.am, configure.ac, spsize/size.c: Add Simple Priority
	Scheduler as complement to existing Deterministic Priority Scheduler.
	This scheduler serves both as an example and as a lighter weight
	implementation for smaller systems.
	* spsimplesched01/.cvsignore, spsimplesched01/Makefile.am,
	spsimplesched01/init.c, spsimplesched01/spsimplesched01.doc,
	spsimplesched01/spsimplesched01.scn, spsimplesched02/.cvsignore,
	spsimplesched02/Makefile.am, spsimplesched02/init.c,
	spsimplesched02/spsimplesched02.doc,
	spsimplesched02/spsimplesched02.scn, spsimplesched03/.cvsignore,
	spsimplesched03/Makefile.am, spsimplesched03/init.c,
	spsimplesched03/spsimplesched03.doc,
	spsimplesched03/spsimplesched03.scn: New files.
2011-03-16 16:33:04 +00:00
Ralf Corsepius
7d3f9c646a Add HAVE_CONFIG_H. 2011-02-22 07:37:03 +00:00
Joel Sherrill
95ec9e9879 2010-11-24 Gedare Bloom <giddyup44@yahoo.com>
PR 1647/cpukit
	* spsize/size.c: Update documentation to reflect refactoring of
	SuperCore to add Scheduler Handler.
2010-11-24 16:06:22 +00:00
Ralf Corsepius
6227170193 2010-10-03 Ralf Corsépius <ralf.corsepius@rtems.org>
* spsize/size.c: Fix typo.
2010-10-03 07:16:50 +00:00
Joel Sherrill
c016f4e170 2010-08-08 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1647/testing
	* spsize/size.c: Remove redundant initialize uninitialized to 0.
2010-08-08 16:34:00 +00:00
Joel Sherrill
48170821f0 2010-07-30 Gedare Bloom <giddyup44@yahoo.com>
PR 1599/cpukit
	* spsize/size.c: Rename _Context_Switch_necessary to
	_Thread_Dispatch_necessary to more properly reflect the intent.
2010-07-30 18:52:30 +00:00
Joel Sherrill
56cdd5e88f 2010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1573/cpukit
	* spsize/size.c: Add a per cpu data structure which contains the
	information required by RTEMS for each CPU core. This encapsulates
	information such as thread executing, heir, idle and dispatch needed.
2010-06-29 00:40:29 +00:00
Ralf Corsepius
44c6b5bcb8 Use PRIu32 to print sys_req. 2009-10-27 07:27:43 +00:00
Joel Sherrill
b84f1fdc0d 2009-05-10 Joel Sherrill <joel.sherrill@oarcorp.com>
* sp04/system.h, sp04/task1.c, sp04/tswitch.c, sp07/init.c,
	sp12/init.c, sp13/putbuff.c, sp13/system.h, sp13/task1.c,
	sp15/init.c, sp16/system.h, sp19/fptask.c, sp25/system.h,
	sp26/task1.c, sp27/init.c, sp28/init.c, sp29/init.c, sp31/task1.c,
	sp33/init.c, sp34/changepri.c, sp35/priinv.c, sp37/init.c,
	sp38/init.c, sp39/init.c, sp41/init.c, sp42/init.c, sp43/init.c,
	sp44/init.c, sp45/init.c, sp46/init.c, sp47/init.c, sp48/init.c,
	spfatal03/testcase.h, spfatal05/testcase.h, spfatal06/testcase.h,
	spfatal_support/system.h, spobjgetnext/init.c, spsize/getint.c,
	spsize/size.c: Fix warnings.
2009-05-10 14:39:46 +00:00
Joel Sherrill
69e10f3e95 2008-12-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* spsize/size.c: Eliminate _TOD_Microseconds_per_tick.
2008-12-16 20:56:40 +00:00
Joel Sherrill
bb9c80df45 2008-12-15 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac, spfatal06/testcase.h,
	spfatal07/testcase.h, spfatal08/testcase.h, spfatal09/testcase.h,
	spsize/size.c: Eliminate pointers to API configuration tables in the
	main configuration table. Reference the main configuration table and
	the API configuration tables directly using the confdefs.h version
	rather than obtaining a pointer to it. This eliminated some
	variables, a potential fatal error, some unnecessary default
	configuration structures. Overall, about a 4.5% reduction in the code
	size for minimum and hello on the SPARC.
	* spfatal10/.cvsignore, spfatal10/Makefile.am, spfatal10/spfatal10.scn,
	spfatal10/testcase.h: Removed.
2008-12-15 19:21:10 +00:00
Joel Sherrill
40c2d41e5b 2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* spsize/size.c: Must extern _MPCI_Semaphore because it is no longer
	declared in a public place.
2008-09-05 14:43:45 +00:00
Joel Sherrill
02d989c0ef 2008-08-07 Joel Sherrill <joel.sherrill@OARcorp.com>
* spsize/size.c: Make _System_state_Is_multiprocessing unused when
	multiprocessing is not enabled. Saves one more variable from single
	processor configuration.
2008-08-07 18:23:54 +00:00
Joel Sherrill
86db88d270 2008-06-05 Joel Sherrill <joel.sherrill@OARcorp.com>
* sp28/init.c: Corrections to configuration.
	* sp37/init.c: Correctly invoke rtems_interrupt_disable() body.
	* spsize/size.c: _ISR_Vector_table only exists on architectures
	which use the Simple Vectored Interrupt Model.
2008-06-05 14:23:57 +00:00
Joel Sherrill
d0941512ac 2008-06-02 Joel Sherrill <joel.sherrill@oarcorp.com>
* spsize/size.c: Convention calls for leading underscore on private
	RTEMS variables.
2008-06-02 16:12:13 +00:00
Joel Sherrill
bbd655a3d5 2007-12-19 Joel Sherrill <joel.sherrill@OARcorp.com>
* spsize/size.c: Account for previous changes in calculation of MPCI
	receive server stack.
2007-12-19 16:05:56 +00:00
Joel Sherrill
a1f37a0f6e 2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* spsize/size.c: Move interrupt_stack_size field from CPU Table to
	Configuration Table. Eliminate CPU Table from all ports. Delete
	references to CPU Table in all forms.
2007-12-04 22:18:35 +00:00
Joel Sherrill
eb5d942ad5 2007-12-04 Joel Sherrill <joel.sherrill@oarcorp.com>
* sp09/screen03.c, spsize/size.c: Builds again after CPU Table changes.
2007-12-04 16:03:06 +00:00
Joel Sherrill
3a50a20695 2007-05-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* spsize/size.c: Eliminate maximum_drivers configuration parameter
	since it was used to configure a no longer used feature. Device names
	are now part of the filesystem not in a table. This also eliminated
	the variables _IO_Number_of_devices and _IO_Driver_name_table from
	RTEMS as well as the memory allocation used to populate
	_IO_Driver_name_table.
2007-05-28 15:50:27 +00:00
Joel Sherrill
6f1384cd4f Split Classic API data instantiation into individual files. This reduces the size of the BSS section when an optional manageer stub is used. Some tests showed about a 600 byte reduction in BSS size. Also eliminated the variables _RTEMS_tasks_User_initialization_tasks and _RTEMS_tasks_Number_of_initialization_tasks because they were only used in one place after initialized. It was a waste of space. 2007-05-21 23:19:36 +00:00
Joel Sherrill
e58077cb55 2007-05-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* sp01/Makefile.am, sp02/Makefile.am, sp03/Makefile.am,
	sp04/Makefile.am, sp05/Makefile.am, sp06/Makefile.am,
	sp07/Makefile.am, sp07/tdelete.c, sp08/Makefile.am, sp09/Makefile.am,
	sp11/Makefile.am, sp12/Makefile.am, sp13/Makefile.am,
	sp14/Makefile.am, sp15/Makefile.am, sp16/Makefile.am,
	sp17/Makefile.am, sp19/Makefile.am, sp20/Makefile.am,
	sp21/Makefile.am, sp22/Makefile.am, sp23/Makefile.am,
	sp24/Makefile.am, sp25/Makefile.am, sp26/Makefile.am,
	sp32/Makefile.am, sp33/Makefile.am, sp34/Makefile.am,
	sp35/Makefile.am, spfatal/Makefile.am, spsize/Makefile.am,
	spsize/size.c: Add optional managers to Makefiles. Clean up test
	cases so last output line follows END OF pattern. Make sure test case
	all run. All tests appeared ok on sis.
2007-05-11 19:44:27 +00:00