Commit Graph

41 Commits

Author SHA1 Message Date
Sebastian Huber
cbb1103a3c score: Simplify SMP processor state handling
The per-CPU states which control the SMP system initialization were added quite
early during the SMP support development.  Replace this initial implementation
with a simplified one.  There is no longer a global SMP lock required which
serialized the state changes of all processors.  The new implementation better
integrates with the per-CPU jobs.
2021-07-28 19:32:24 +02:00
Sebastian Huber
d45f87cf35 score: Add _CPU_Context_switch_no_return()
The __builtin_unreachable() cannot be used with current GCC versions to
tell the compiler that a function does not return to the caller, see:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99151

Add a no return variant of _CPU_Context_switch() to avoid generation of
dead code in _Thread_Start_multitasking() if RTEMS was built with SMP
support enabled.
2021-05-18 08:02:50 +02:00
Sebastian Huber
9278f3d04f score: Canonicalize Doxygen @file comments
Use common phrases for the file brief descriptions.

Update #3706.
2020-12-02 07:45:53 +01:00
Sebastian Huber
80cf60efec Canonicalize config.h include
Use the following variant which was already used by most source files:

  #ifdef HAVE_CONFIG_H
  #include "config.h"
  #endif
2020-04-16 07:30:00 +02:00
Sebastian Huber
4c20da4be4 doxygen: Rename Score* groups in RTEMSScore*
Update #3706
2019-04-04 09:18:55 +02:00
Sebastian Huber
d67c869766 score: Use RTEMS_UNREACHABLE()
The _CPU_Context_switch() in _Thread_Start_multitasking() does in fact
not return.
2016-03-23 07:45:11 +01:00
Sebastian Huber
7fcb71af14 score: Fix _Thread_Start_multitasking() on SMP
Close #2268.
2015-02-17 13:43:57 +01:00
Sebastian Huber
8d6e6eebed score: Fix FP context restore via _Thread_Handler
After a context switch we end up in the second part of
_Thread_Dispatch() or in _Thread_Handler() in case of new threads.  Use
the same function _Thread_Restore_fp() to restore the floating-point
context.  It makes no sense to do this in _Thread_Start_multitasking().
This fixes also a race condition in SMP configurations.

Update #2268.
2015-02-17 13:42:53 +01:00
Sebastian Huber
c34f94f72d score: Add _CPU_SMP_Prepare_start_multitasking()
Update #2268.
2015-02-17 09:41:27 +01:00
Sebastian Huber
2d84c4e4c1 score: Mention ticket in comment 2015-02-13 22:07:45 +01:00
Sebastian Huber
152ad7d1cc score: Fix _Thread_Start_multitasking() on SMP
The _CPU_Context_Restart_self() implementations usually assume that self
context is executing.

FIXME: We have a race condition in _Thread_Start_multitasking() in case
another thread already performed scheduler operations and moved the heir
thread to another processor.  The time frame for this is likely too
small to be practically relevant.
2014-06-24 09:31:14 +02:00
Sebastian Huber
38b59a6d30 score: Implement forced thread migration
The current implementation of task migration in RTEMS has some
implications with respect to the interrupt latency. It is crucial to
preserve the system invariant that a task can execute on at most one
processor in the system at a time. This is accomplished with a boolean
indicator in the task context. The processor architecture specific
low-level task context switch code will mark that a task context is no
longer executing and waits that the heir context stopped execution
before it restores the heir context and resumes execution of the heir
task. So there is one point in time in which a processor is without a
task. This is essential to avoid cyclic dependencies in case multiple
tasks migrate at once. Otherwise some supervising entity is necessary to
prevent life-locks. Such a global supervisor would lead to scalability
problems so this approach is not used. Currently the thread dispatch is
performed with interrupts disabled. So in case the heir task is
currently executing on another processor then this prolongs the time of
disabled interrupts since one processor has to wait for another
processor to make progress.

It is difficult to avoid this issue with the interrupt latency since
interrupts normally store the context of the interrupted task on its
stack. In case a task is marked as not executing we must not use its
task stack to store such an interrupt context. We cannot use the heir
stack before it stopped execution on another processor. So if we enable
interrupts during this transition we have to provide an alternative task
independent stack for this time frame. This issue needs further
investigation.
2014-05-07 14:26:28 +02:00
Sebastian Huber
3380ee8194 score: Use common names for per-CPU variables
Use "cpu" for an arbitrary Per_CPU_Control variable.

Use "cpu_self" for the Per_CPU_Control of the current processor.

Use "cpu_index" for an arbitrary processor index.

Use "cpu_index_self" for the processor index of the current processor.

Use "cpu_count" for the processor count obtained via
_SMP_Get_processor_count().

Use "cpu_max" for the processor maximum obtained by
rtems_configuration_get_maximum_processors().
2014-04-22 08:34:45 +02:00
Sebastian Huber
383b2d383d score: Start thread dispatch profiling later
We are not interested in the sequential boot time.
2014-03-24 08:31:48 +01:00
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Sebastian Huber
f980561ee0 score: Add per-CPU profiling
Add per-CPU profiling stats API.  Implement the thread dispatch disable
level profiling.  The interrupt profiling must be implemented in CPU
port specific parts (mostly assembler code).  Add a support function
_Profiling_Outer_most_interrupt_entry_and_exit() for this purpose.
2014-03-14 08:46:49 +01:00
Sebastian Huber
7336be9d78 score: SMP initialization and shutdown changes
Rename _SMP_Request_other_cores_to_perform_first_context_switch() into
_SMP_Request_start_multitasking() since this requests now a multitasking
start on all configured and available processors.  The name corresponds
_Thread_Start_multitasking() and
_SMP_Start_multitasking_on_secondary_processor() actions issued in
response to this request.  Move in source file to right place.

Rename PER_CPU_STATE_READY_TO_BEGIN_MULTITASKING into
PER_CPU_STATE_READY_TO_START_MULTITASKING.

Rename PER_CPU_STATE_BEGIN_MULTITASKING into
PER_CPU_STATE_REQUEST_START_MULTITASKING.

Rename _SMP_Request_other_cores_to_shutdown() into
_SMP_Request_shutdown().

Add a per-CPU state lock to protect all changes.  This was necessary to
offer a controlled shutdown of the system (atomic read/writes alone are
not sufficient for this kind of synchronization).

Add documentation for Per_CPU_State.

Delete debug output.

New tests smptests/smpfatal01 and smptests/smpfatal02.
2014-03-06 09:43:57 +01:00
Sebastian Huber
7ee4e72e4b score: _Thread_Start_multitasking()
Fix serious race-condition.  Read the heir after the per-CPU lock
acquire.
2014-02-21 09:38:25 +01: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
Sebastian Huber
558cc8ddb7 score: _CPU_Context_switch_to_first_task_smp()
Delete _CPU_Context_switch_to_first_task_smp() and use
_CPU_Context_restore() instead.
2014-02-05 15:46:30 +01:00
Sebastian Huber
d19cce29dc score: Per-CPU thread dispatch disable level
Use a per-CPU thread dispatch disable level.  So instead of one global
thread dispatch disable level we have now one instance per processor.
This is a major performance improvement for SMP.  On non-SMP
configurations this may simplifiy the interrupt entry/exit code.

The giant lock is still present, but it is now decoupled from the thread
dispatching in _Thread_Dispatch(), _Thread_Handler(),
_Thread_Restart_self() and the interrupt entry/exit.   Access to the
giant lock is now available via _Giant_Acquire() and _Giant_Release().
The giant lock is still implicitly acquired via
_Thread_Dispatch_decrement_disable_level().

The giant lock is only acquired for high-level operations in interrupt
handlers (e.g. release of a semaphore, sending of an event).

As a side-effect this change fixes the lost thread dispatch necessary
indication bug in _Thread_Dispatch().

A per-CPU thread dispatch disable level greatly simplifies the SMP
support for the interrupt entry/exit code since no spin locks have to be
acquired in this area.  It is only necessary to get the current
processor index and use this to calculate the address of the own per-CPU
control.  This reduces the interrupt latency considerably.

All elements for the interrupt entry/exit code are now part of the
Per_CPU_Control structure: thread dispatch disable level, ISR nest level
and thread dispatch necessary.  Nothing else is required (except CPU
port specific stuff like on SPARC).
2013-08-09 23:02:38 +02:00
Sebastian Huber
b4b309c559 smp: Generalize _Thread_Start_multitasking()
Add context parameter to _Thread_Start_multitasking() and use this
function in rtems_smp_secondary_cpu_initialize().  This avoids
duplication of code.

Fix missing floating point context initialization in
rtems_smp_secondary_cpu_initialize().  Now performed via
_Thread_Start_multitasking().
2013-08-05 13:45:36 +02:00
Sebastian Huber
5618c37a7a score: Create thread implementation header
Move implementation specific parts of thread.h and thread.inl into new
header file threadimpl.h.  The thread.h contains now only the
application visible API.

Remove superfluous header file includes from various files.
2013-07-26 11:55:44 +02:00
Sebastian Huber
a936aa49b5 scheduler: New simple SMP scheduler implementation
The new Simple SMP Scheduler allocates a processor for the processor
count highest priority ready threads.  The thread priority and position
in the ready chain are the only information to determine the scheduling
decision.  Threads with an allocated processor are in the scheduled
chain.  After initialization the scheduled chain has exactly processor
count nodes.  Each processor has exactly one allocated thread after
initialization.  All enqueue and extract operations may exchange threads
with the scheduled chain.  One thread will be added and another will be
removed.  The scheduled and ready chain is ordered according to the
thread priority order.  The chain insert operations are O(count of ready
threads), thus this scheduler is unsuitable for most real-time
applications.

The thread preempt mode will be ignored.
2013-06-14 16:26:08 +02:00
Alex Ivanov
e655f7e4fa score misc: Score misc: Clean up Doxygen #5 2012-11-29 13:28:46 -06: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
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
Sebastian Huber
86c847c1da 2011-09-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1921/cpukit
	* score/inline/rtems/score/thread.inl,
	score/src/threadstartmultitasking.c: Allow CPU port to provide
	optional multitasking start and stop.
2011-09-24 12:45:55 +00:00
Joel Sherrill
64adc13c86 2011-07-24 Joel Sherrill <joel.sherrill@oarcorp.com>
* ftpd/ftpd.c, libcsupport/src/geteuid.c, libcsupport/src/getgroups.c,
	libcsupport/src/getpgrp.c, libcsupport/src/getpid.c,
	libcsupport/src/getppid.c, libcsupport/src/setpgid.c,
	libcsupport/src/setsid.c, libcsupport/src/utsname.c,
	libmisc/stackchk/check.c, posix/include/rtems/posix/mqueue.h,
	posix/inline/rtems/posix/cond.inl,
	posix/inline/rtems/posix/mqueue.inl,
	posix/inline/rtems/posix/mutex.inl,
	posix/inline/rtems/posix/pthread.inl,
	posix/inline/rtems/posix/semaphore.inl,
	posix/inline/rtems/posix/timer.inl, posix/src/alarm.c,
	posix/src/barrierattrdestroy.c, posix/src/barrierattrgetpshared.c,
	posix/src/barrierattrinit.c, posix/src/barrierattrsetpshared.c,
	posix/src/cleanuppop.c, posix/src/cleanuppush.c,
	posix/src/clockgetcpuclockid.c, posix/src/clockgetenableattr.c,
	posix/src/clockgetres.c, posix/src/clockgettime.c,
	posix/src/clocksetenableattr.c, posix/src/clocksettime.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/condtimedwait.c,
	posix/src/condwait.c, posix/src/condwaitsupp.c,
	posix/src/keygetspecific.c, posix/src/keyrundestructors.c,
	posix/src/keysetspecific.c, posix/src/mprotect.c, posix/src/mqueue.c,
	posix/src/mqueuecreatesupp.c, posix/src/mqueuedeletesupp.c,
	posix/src/mqueuegetattr.c, posix/src/mqueuenotify.c,
	posix/src/mqueuereceive.c, posix/src/mqueuesend.c,
	posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
	posix/src/mqueuetimedreceive.c, posix/src/mqueuetimedsend.c,
	posix/src/mqueuetranslatereturncode.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/mutexdestroy.c, posix/src/mutexgetprioceiling.c,
	posix/src/mutexinit.c, posix/src/mutexlock.c,
	posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c,
	posix/src/mutextimedlock.c, posix/src/mutextrylock.c,
	posix/src/mutexunlock.c, posix/src/nanosleep.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/pthreadinitthreads.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/semtimedwait.c,
	posix/src/semtrywait.c, posix/src/semunlink.c, posix/src/semwait.c,
	posix/src/sysconf.c, posix/src/testcancel.c, posix/src/ualarm.c,
	rtems/src/clockgetuptime.c, rtems/src/clockset.c,
	rtems/src/clocksetnsecshandler.c, rtems/src/clocktick.c,
	rtems/src/clocktodtoseconds.c, rtems/src/clocktodvalidate.c,
	rtems/src/dpmem.c, rtems/src/dpmemcreate.c, rtems/src/dpmemdelete.c,
	rtems/src/dpmemexternal2internal.c, rtems/src/dpmemident.c,
	rtems/src/dpmeminternal2external.c, rtems/src/event.c,
	rtems/src/eventmp.c, rtems/src/eventreceive.c,
	rtems/src/eventseize.c, rtems/src/eventsend.c,
	rtems/src/eventsurrender.c, rtems/src/eventtimeout.c, rtems/src/mp.c,
	rtems/src/msg.c, rtems/src/msgmp.c, rtems/src/msgqallocate.c,
	rtems/src/msgqbroadcast.c, rtems/src/msgqcreate.c,
	rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
	rtems/src/msgqgetnumberpending.c, rtems/src/msgqident.c,
	rtems/src/msgqreceive.c, rtems/src/msgqtranslatereturncode.c,
	rtems/src/msgqurgent.c, rtems/src/part.c, rtems/src/partcreate.c,
	rtems/src/partdelete.c, rtems/src/partgetbuffer.c,
	rtems/src/partident.c, rtems/src/partmp.c,
	rtems/src/partreturnbuffer.c, rtems/src/ratemon.c,
	rtems/src/ratemoncancel.c, rtems/src/ratemoncreate.c,
	rtems/src/ratemondelete.c, rtems/src/ratemongetstatistics.c,
	rtems/src/ratemongetstatus.c, rtems/src/ratemonident.c,
	rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
	rtems/src/ratemontimeout.c, rtems/src/region.c,
	rtems/src/regioncreate.c, rtems/src/regiondelete.c,
	rtems/src/regionextend.c, rtems/src/regiongetfreeinfo.c,
	rtems/src/regiongetinfo.c, rtems/src/regiongetsegment.c,
	rtems/src/regiongetsegmentsize.c, rtems/src/regionident.c,
	rtems/src/regionmp.c, rtems/src/regionprocessqueue.c,
	rtems/src/regionresizesegment.c, rtems/src/regionreturnsegment.c,
	rtems/src/rtemsobjectgetclassicname.c, rtems/src/rtemstimer.c,
	rtems/src/sem.c, rtems/src/semcreate.c, rtems/src/semdelete.c,
	rtems/src/semflush.c, rtems/src/semident.c, rtems/src/semmp.c,
	rtems/src/semobtain.c, rtems/src/semrelease.c,
	rtems/src/semtranslatereturncode.c, rtems/src/signal.c,
	rtems/src/signalcatch.c, rtems/src/signalmp.c,
	rtems/src/signalsend.c, rtems/src/taskcreate.c,
	rtems/src/taskdelete.c, rtems/src/taskgetnote.c,
	rtems/src/taskident.c, rtems/src/taskinitusers.c,
	rtems/src/taskissuspended.c, rtems/src/taskmp.c,
	rtems/src/taskrestart.c, rtems/src/taskresume.c, rtems/src/tasks.c,
	rtems/src/tasksetnote.c, rtems/src/tasksetpriority.c,
	rtems/src/taskstart.c, rtems/src/tasksuspend.c,
	rtems/src/taskwakeafter.c, rtems/src/taskwakewhen.c,
	rtems/src/timercancel.c, rtems/src/timercreate.c,
	rtems/src/timerdelete.c, rtems/src/timerfireafter.c,
	rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
	rtems/src/timerident.c, rtems/src/timerreset.c,
	rtems/src/timerserverfireafter.c, rtems/src/timerserverfirewhen.c,
	sapi/src/debug.c, sapi/src/extension.c, sapi/src/posixapi.c,
	sapi/src/rtemsapi.c, score/src/apiext.c, score/src/chain.c,
	score/src/corebarrier.c, score/src/corebarrierrelease.c,
	score/src/corebarrierwait.c, score/src/coremsgbroadcast.c,
	score/src/coremsgclose.c, score/src/coremsgflush.c,
	score/src/coremsgflushsupp.c, score/src/coremsgflushwait.c,
	score/src/coremsginsert.c, score/src/coremsgseize.c,
	score/src/coremsgsubmit.c, score/src/coremutex.c,
	score/src/coremutexflush.c, score/src/coremutexseize.c,
	score/src/corerwlock.c, score/src/corerwlockobtainread.c,
	score/src/corerwlockobtainwrite.c, score/src/corerwlockrelease.c,
	score/src/coresem.c, score/src/coresemflush.c,
	score/src/coresemsurrender.c, score/src/corespinlock.c,
	score/src/corespinlockrelease.c, score/src/corespinlockwait.c,
	score/src/coretod.c, score/src/coretodset.c,
	score/src/coretodtickle.c, score/src/heap.c, score/src/interr.c,
	score/src/mpci.c, score/src/objectallocate.c,
	score/src/objectextendinformation.c, score/src/objectfree.c,
	score/src/objectget.c, score/src/objectgetisr.c,
	score/src/objectgetnext.c, score/src/objectgetnoprotection.c,
	score/src/objectinitializeinformation.c, score/src/objectmp.c,
	score/src/objectnametoid.c, score/src/objectnametoidstring.c,
	score/src/objectshrinkinformation.c, score/src/rbtree.c,
	score/src/threaddelayended.c, score/src/threadhandler.c,
	score/src/threadinitialize.c, score/src/threadloadenv.c,
	score/src/threadmp.c, score/src/threadq.c,
	score/src/threadqdequeue.c, score/src/threadqdequeuefifo.c,
	score/src/threadqdequeuepriority.c, score/src/threadqenqueue.c,
	score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c,
	score/src/threadqextract.c, score/src/threadqextractfifo.c,
	score/src/threadqextractpriority.c,
	score/src/threadqextractwithproxy.c, score/src/threadqfirst.c,
	score/src/threadqfirstfifo.c, score/src/threadqfirstpriority.c,
	score/src/threadqflush.c, score/src/threadqrequeue.c,
	score/src/threadstackallocate.c, score/src/threadstartmultitasking.c,
	score/src/watchdog.c, score/src/watchdogadjust.c,
	score/src/watchdoginsert.c, score/src/watchdogremove.c,
	score/src/watchdogtickle.c: Remove /*PAGE markers which were
	interpreted by a long dead print script.
2011-07-24 23:55:15 +00:00
Joel Sherrill
dcf368747f 2011-01-28 Joel Sherrill <joel.sherrilL@OARcorp.com>
* include/rtems/bspIo.h, include/rtems/concat.h, include/rtems/irq.h,
	score/cpu/i386/rtems/score/idtr.h,
	score/cpu/powerpc/rtems/powerpc/registers.h,
	score/src/objectidtoname.c, score/src/schedulerpriorityblock.c,
	score/src/schedulerpriorityschedule.c,
	score/src/schedulerpriorityunblock.c,
	score/src/schedulerpriorityyield.c, score/src/thread.c,
	score/src/threadchangepriority.c, score/src/threadclearstate.c,
	score/src/threadclose.c, score/src/threadcreateidle.c,
	score/src/threaddelayended.c, score/src/threaddispatch.c,
	score/src/threadget.c, score/src/threadhandler.c,
	score/src/threadinitialize.c, score/src/threadloadenv.c,
	score/src/threadready.c, score/src/threadreset.c,
	score/src/threadrestart.c, score/src/threadresume.c,
	score/src/threadsetpriority.c, score/src/threadsetstate.c,
	score/src/threadsettransient.c, score/src/threadstackallocate.c,
	score/src/threadstackfree.c, score/src/threadstart.c,
	score/src/threadstartmultitasking.c, score/src/threadsuspend.c,
	score/src/threadtickletimeslice.c, score/src/threadyieldprocessor.c:
	Fix typo where license said found in found in.
2011-01-28 20:24:54 +00:00
Joel Sherrill
4b1d26142c 2010-07-30 Gedare Bloom <giddyup44@yahoo.com>
PR 1599/cpukit
	* posix/src/psignalunblockthread.c, posix/src/pthreadkill.c,
	rtems/src/signalsend.c, score/include/rtems/score/percpu.h,
	score/inline/rtems/score/thread.inl, score/src/thread.c,
	score/src/threadchangepriority.c, score/src/threadclearstate.c,
	score/src/threaddispatch.c, score/src/threadready.c,
	score/src/threadresume.c, score/src/threadsetstate.c,
	score/src/threadstartmultitasking.c, score/src/threadsuspend.c,
	score/src/threadyieldprocessor.c: Rename _Context_Switch_necessary to
	_Thread_Dispatch_necessary to more properly reflect the intent.
2010-07-30 18:53:06 +00:00
Joel Sherrill
b99a35a8fc 2009-08-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/src/malloc_initialize.c, sapi/src/exinit.c,
	score/src/threadstartmultitasking.c: Fix spacing.
	* libmisc/stackchk/check.c: Move variable into compiler specific conditional.
2009-08-28 18:26:05 +00:00
Ralf Corsepius
aae7f1a12b Eliminate TRUE/FALSE. 2008-12-22 05:52:32 +00:00
Joel Sherrill
f5f4566a5f 2008-05-06 Joel Sherrill <joel.sherrill@oarcorp.com>
* sapi/src/exinit.c, score/src/threadstartmultitasking.c: Improve
	comments.
2008-05-06 23:17:07 +00:00
Joel Sherrill
6a074363a2 2006-01-16 Joel Sherrill <joel@OARcorp.com>
Large patch to improve Doxygen output.  As a side-effect, grammar and
	spelling errors were corrected, spacing errors were address, and some
	variable names were improved.
	* libmisc/monitor/mon-object.c, libmisc/monitor/monitor.h:
	Account for changing OBJECTS_NO_CLASS to OBJECTS_CLASSIC_NO_CLASS.
	* score/Doxyfile: Set output directory.  Predefine some macro values.
	Turn on graphical output.
	* score/include/rtems/debug.h, score/include/rtems/seterr.h,
	score/include/rtems/system.h, score/include/rtems/score/address.h,
	score/include/rtems/score/apiext.h,
	score/include/rtems/score/apimutex.h,
	score/include/rtems/score/bitfield.h,
	score/include/rtems/score/chain.h,
	score/include/rtems/score/context.h,
	score/include/rtems/score/coremsg.h,
	score/include/rtems/score/coremutex.h,
	score/include/rtems/score/coresem.h,
	score/include/rtems/score/heap.h, score/include/rtems/score/interr.h,
	score/include/rtems/score/isr.h, score/include/rtems/score/mpci.h,
	score/include/rtems/score/mppkt.h,
	score/include/rtems/score/object.h,
	score/include/rtems/score/objectmp.h,
	score/include/rtems/score/priority.h,
	score/include/rtems/score/stack.h,
	score/include/rtems/score/states.h,
	score/include/rtems/score/sysstate.h,
	score/include/rtems/score/thread.h,
	score/include/rtems/score/threadmp.h,
	score/include/rtems/score/threadq.h, score/include/rtems/score/tod.h,
	score/include/rtems/score/tqdata.h,
	score/include/rtems/score/userext.h,
	score/include/rtems/score/watchdog.h,
	score/include/rtems/score/wkspace.h,
	score/inline/rtems/score/address.inl,
	score/inline/rtems/score/chain.inl,
	score/inline/rtems/score/coremutex.inl,
	score/inline/rtems/score/coresem.inl,
	score/inline/rtems/score/heap.inl,
	score/inline/rtems/score/object.inl,
	score/inline/rtems/score/stack.inl,
	score/inline/rtems/score/thread.inl,
	score/inline/rtems/score/tqdata.inl, score/macros/README,
	score/src/heap.c, score/src/threadmp.c, score/src/threadready.c,
	score/src/threadstartmultitasking.c: Improve generated Doxygen
	output. Fix spelling and grammar errors in comments. Correct names of
	some variables and propagate changes.
2006-01-16 15:13:58 +00:00
Ralf Corsepius
a8eed2387c Include config.h. 2005-01-27 05:57:05 +00:00
Ralf Corsepius
a0ed4edee0 Remove stray white spaces. 2004-04-18 06:13:55 +00:00
Ralf Corsepius
05279b84b4 Remove stray white spaces. 2004-04-17 13:32:13 +00:00
Joel Sherrill
dd687d977e 2003-09-04 Joel Sherrill <joel@OARcorp.com>
* include/rtems/debug.h, include/rtems/seterr.h,
	include/rtems/system.h, include/rtems/score/address.h,
	include/rtems/score/apiext.h, include/rtems/score/apimutex.h,
	include/rtems/score/bitfield.h, include/rtems/score/chain.h,
	include/rtems/score/context.h, include/rtems/score/copyrt.h,
	include/rtems/score/coremsg.h, include/rtems/score/coremutex.h,
	include/rtems/score/coresem.h, include/rtems/score/heap.h,
	include/rtems/score/interr.h, include/rtems/score/isr.h,
	include/rtems/score/mpci.h, include/rtems/score/mppkt.h,
	include/rtems/score/object.h, include/rtems/score/objectmp.h,
	include/rtems/score/priority.h, include/rtems/score/stack.h,
	include/rtems/score/states.h, include/rtems/score/sysstate.h,
	include/rtems/score/thread.h, include/rtems/score/threadmp.h,
	include/rtems/score/threadq.h, include/rtems/score/tod.h,
	include/rtems/score/tqdata.h, include/rtems/score/userext.h,
	include/rtems/score/watchdog.h, include/rtems/score/wkspace.h,
	inline/rtems/score/address.inl, inline/rtems/score/chain.inl,
	inline/rtems/score/coremsg.inl, inline/rtems/score/coremutex.inl,
	inline/rtems/score/coresem.inl, inline/rtems/score/heap.inl,
	inline/rtems/score/isr.inl, inline/rtems/score/mppkt.inl,
	inline/rtems/score/object.inl, inline/rtems/score/objectmp.inl,
	inline/rtems/score/priority.inl, inline/rtems/score/stack.inl,
	inline/rtems/score/states.inl, inline/rtems/score/sysstate.inl,
	inline/rtems/score/thread.inl, inline/rtems/score/threadmp.inl,
	inline/rtems/score/tod.inl, inline/rtems/score/tqdata.inl,
	inline/rtems/score/userext.inl, inline/rtems/score/watchdog.inl,
	inline/rtems/score/wkspace.inl, macros/rtems/score/address.inl,
	macros/rtems/score/chain.inl, macros/rtems/score/coremsg.inl,
	macros/rtems/score/coremutex.inl, macros/rtems/score/coresem.inl,
	macros/rtems/score/heap.inl, macros/rtems/score/isr.inl,
	macros/rtems/score/mppkt.inl, macros/rtems/score/object.inl,
	macros/rtems/score/objectmp.inl, macros/rtems/score/priority.inl,
	macros/rtems/score/stack.inl, macros/rtems/score/states.inl,
	macros/rtems/score/sysstate.inl, macros/rtems/score/thread.inl,
	macros/rtems/score/threadmp.inl, macros/rtems/score/tod.inl,
	macros/rtems/score/tqdata.inl, macros/rtems/score/userext.inl,
	macros/rtems/score/watchdog.inl, macros/rtems/score/wkspace.inl,
	src/apiext.c, src/chain.c, src/coremsg.c, src/coremsgbroadcast.c,
	src/coremsgclose.c, src/coremsgflush.c, src/coremsgflushsupp.c,
	src/coremsgflushwait.c, src/coremsginsert.c, src/coremsgseize.c,
	src/coremsgsubmit.c, src/coremutex.c, src/coremutexflush.c,
	src/coremutexseize.c, src/coremutexsurrender.c, src/coresem.c,
	src/coresemflush.c, src/coresemseize.c, src/coresemsurrender.c,
	src/coretod.c, src/coretodset.c, src/coretodtickle.c,
	src/coretodtoseconds.c, src/coretodvalidate.c, src/heap.c,
	src/heapallocate.c, src/heapextend.c, src/heapfree.c,
	src/heapgetinfo.c, src/heapsizeofuserarea.c, src/heapwalk.c,
	src/interr.c, src/isr.c, src/iterateoverthreads.c, src/mpci.c,
	src/object.c, src/objectallocate.c, src/objectallocatebyindex.c,
	src/objectclearname.c, src/objectcomparenameraw.c,
	src/objectcomparenamestring.c, src/objectcopynameraw.c,
	src/objectcopynamestring.c, src/objectextendinformation.c,
	src/objectfree.c, src/objectget.c, src/objectgetbyindex.c,
	src/objectgetisr.c, src/objectgetnext.c, src/objectgetnoprotection.c,
	src/objectidtoname.c, src/objectinitializeinformation.c,
	src/objectmp.c, src/objectnametoid.c, src/objectshrinkinformation.c,
	src/thread.c, src/threadchangepriority.c, src/threadclearstate.c,
	src/threadclose.c, src/threadcreateidle.c, src/threaddelayended.c,
	src/threaddispatch.c, src/threadevaluatemode.c, src/threadget.c,
	src/threadhandler.c, src/threadidlebody.c, src/threadinitialize.c,
	src/threadloadenv.c, src/threadmp.c, src/threadq.c,
	src/threadqdequeue.c, src/threadqdequeuefifo.c,
	src/threadqdequeuepriority.c, src/threadqenqueue.c,
	src/threadqenqueuefifo.c, src/threadqenqueuepriority.c,
	src/threadqextract.c, src/threadqextractfifo.c,
	src/threadqextractpriority.c, src/threadqextractwithproxy.c,
	src/threadqfirst.c, src/threadqfirstfifo.c,
	src/threadqfirstpriority.c, src/threadqflush.c, src/threadqtimeout.c,
	src/threadready.c, src/threadreset.c, src/threadresettimeslice.c,
	src/threadrestart.c, src/threadresume.c, src/threadrotatequeue.c,
	src/threadsetpriority.c, src/threadsetstate.c,
	src/threadsettransient.c, src/threadstackallocate.c,
	src/threadstackfree.c, src/threadstart.c,
	src/threadstartmultitasking.c, src/threadsuspend.c,
	src/threadtickletimeslice.c, src/threadyieldprocessor.c,
	src/userext.c, src/watchdog.c, src/watchdogadjust.c,
	src/watchdoginsert.c, src/watchdogremove.c, src/watchdogtickle.c,
	src/wkspace.c: URL for license changed.
2003-09-04 18:56:05 +00:00
Joel Sherrill
08311cc3a9 Updated copyright notice. 1999-11-17 17:51:34 +00:00
Joel Sherrill
05df0a846f Thread Handler split into multiple files. Eventually, as RTEMS is
split into one function per file, this will decrease the size of executables.
1999-05-17 20:41:13 +00:00