summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2002-07-22Remove, moved to cpukit.Ralf Corsepius109-10624/+0
2002-07-012002-07-01 Joel Sherrill <joel@OARcorp.com>Joel Sherrill15-74/+164
* 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/Makefile.am, include/rtems/score/coremsg.h, include/rtems/score/coremutex.h, include/rtems/score/coresem.h, include/rtems/score/object.h, include/rtems/score/threadq.h, inline/rtems/score/object.inl, inline/rtems/score/thread.inl, macros/rtems/score/object.inl, src/Makefile.am, src/coremsg.c, src/coremutex.c, src/coresem.c, src/mpci.c, src/objectcomparenameraw.c, src/objectextendinformation.c, src/objectinitializeinformation.c, src/objectnametoid.c, src/thread.c, src/threadclose.c, src/threadget.c, src/threadq.c, src/threadqextractwithproxy.c: Modified as part of above. * include/rtems/score/apimutex.h, src/objectgetnoprotection.c: New files.
2002-06-172002-06-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius1-4/+4
* Include $(top_srcdir)/automake/*.am.
2002-05-152002-05-15 Chris Johns <ccj@acm.org>Joel Sherrill2-0/+14
* include/rtems/score/thread.h, inline/rtems/score/thread.inl, src/threaddispatch.c, src/threadinitialize.c: Move the C library re-enterrant support directly into the thread dispatch code. RTEMS needs libc and so requiring libc to use a user extension with its overhead is not the best solution. This patch lowers the overhead to 2 pointer moves.
2002-05-142001-05-14 Till Straumann <strauman@slac.stanford.edu>Joel Sherrill2-9/+24
* src/threaddispatch.c, src/threadhandler.c: Per PR211 fix saving/restoring floating point context. The fpsave and fprestore routines are only used in a executing context which _is_ fp and hence has the FPU enabled. The current behavior required the FPU always to be on which is very dangerous if lazy context switching is used. [Joel Note: Some ports explicitly enabled the FPU in the FP save and restore routines to avoid this.] The patch also makes sure (on powerpc only) that the FPU is disabled for integer tasks. Note that this is crucial if deferred fp context switching is used. Otherwise, fp context corruption may go undetected! Also note that even tasks which merely push/pop FP registers to/from the stack without modifying them still MUST be FP tasks - otherwise (if lazy FP context switching is used), FP register corruption (of other, FP, tasks may occur)! Furthermore, (on PPC) by default, lazy FP context save/restore is _disabled_.
2002-04-272001-04-26 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+3
* src/objectcomparenamestring.c: Fix typos.
2002-04-262001-04-26 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-14/+13
* include/rtems/score/object.h, inline/rtems/score/object.inl, src/objectcomparenamestring.c: Address PR81 that reworked POSIX message queues to add a descriptor separate from the underlying message queue. This allows non-blocking to follow the "open" not the underlying queue. As part of debugging this it became clear that _Objects_Compare_name_string was broken and a simple version using strncmp() was substituted.
2002-04-162002-04-16 Chris Johns <ccj@acm.org>Joel Sherrill1-0/+14
* src/threadinitialize.c: Per PR181, clear the array of user extension pointers. This lets user extensions that have hooked the switch handler know if a task has been processed by the user extension before. If a user extension is created after a task is started it may not know it.
2002-03-282002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-1/+0
* cpu/Makefile.am: Remove AUTOMAKE_OPTIONS. * src/Makefile.am: Remove AUTOMAKE_OPTIONS. * Makefile.am: Remove AUTOMAKE_OPTIONS. * include/Makefile.am: Remove AUTOMAKE_OPTIONS. * inline/Makefile.am: Remove AUTOMAKE_OPTIONS. * macros/Makefile.am: Remove AUTOMAKE_OPTIONS.
2001-12-192001-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-1/+1
* src/Makefile.am: Add multilib support.
2001-11-202001-11-20 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-2/+7
* src/threadhandler.c: When __USE__MAIN__ is defined by the toolset, invoke the global constructors via __main. Reported as tested by Alexandra Kossovsky <sasha@oktet.ru> and Victor V. Vengerov <vvv@oktet.ru> in conjunction with a new set of tool RPMs (gcc2.95.3newlib1.9.0-3). This was tracked as GNATS PR tools/84.
2001-11-072001-11-07 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2-1/+9
Reported by Todor.Todorov@barco.com and tracked as PR36. * include/rtems/score/object.h: Added prototype for _Objects_Get_by_index(). * src/objectget.c, src/objectgetisr.c: Corrected procedure for getting index from Id so it is correct and optimal for both single and multiprocessor configurations.
2001-10-222001-10-22 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-3/+3
* src/threadhandler.c: Use __USE_INIT_FINI__ since USE_INIT_FINI pollutes the application namespace.
2001-09-272001-09-27 Eric Norum <eric.norum@usask.ca>Joel Sherrill1-0/+13
* src/threadhandler.c: Now process C++ global constructors (_init) as part of the first task execution not in BSP space. This depends on the toolset defining USE_INIT_FINI so you have to have the right toolset version.
2001-08-302001-08-30 Joel Sherrill <joel@OARcorp.com>Joel Sherrill3-49/+59
* src/coremutex.c, src/coremutexseize.c, src/coremutexsurrender.c, inline/rtems/score/coremutex.inl: The per thread field resource_count should only be manipulated when a mutex is priority ceiling or priority inherit. This was reported by Chris Johns <ccj@acm.org> who also noticed that the use of switches for all disciplines generated less efficient code than using explicit tests for the one or two cases we were really interested in. Further review of his modifications made it apparent that the "isa" methods to test mutex discipline were not being used so this modification was swept into the code as well.
2001-08-162001-08-16 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+1
* src/coremutexsurrender.c: Use holder thread not executing thread because even though they may and often are the same it is not guaranteed unless the proper attribute is set.
2001-08-162001-08-16 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+1
* include/rtems/score/coremsg.h, src/coremsgsubmit.c: Add a new return status to account for blocking sends. Otherwise, the caller will think that the returned message status will have the ultimate results of the operation. If the send times out, the final status will be in the return_code of the thread.
2001-08-092001-08-09 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-24/+37
* include/rtems/score/coremsg.h, inline/rtems/score/coremsg.inl, src/coremsgsubmit.c: Unblocking message queue operations should NOT use _Thread_Executing for return status since it is permissible to invoke message send operations from an ISR. This was reported by Suvrat Gupta <suvrat@utstar.com>.
2001-01-292001-01-29 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-0/+2
* src/objectextendinformation.c: Added include of string.h to eliminate warning.
2001-01-082001-01-08 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-0/+4
* src/threadinitialize.c: Fix my bad hack of Ralf's fp_area warning removal patch. :(
2001-01-082001-01-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-0/+2
* src/threadinitialize.c: Removed warning.
2001-01-032001-01-03 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-0/+2
* rtems/score/cpu.h: Added _CPU_Initialize_vectors().
2000-12-192000-12-19 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-4/+4
* src/isr.c: Allocate the _ISR_Vector_table all the time not just when we are allocating an interrupt stack.
2000-12-132000-12-13 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-0/+4
* include/rtems/score/isr.h, src/isr.c: Allocate it from the workspace rather than explicitly declaring it. This allows the size to be a non-constant from the perspective of score/cpu.
2000-11-302000-11-30 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-0/+60
* General effort to make things compile with macros not inlines * inline/rtems/score/coremutex.inl: Added comment indicating for macros there is another copy of _CORE_mutex_Seize_interrupt_trylock() in src/coremutexseize.c. * src/coremutexseize.c: Added body of _CORE_mutex_Seize_interrupt_trylock() for macro case. * macros/rtems/score/coremutex.inl: Added prototype for _CORE_mutex_Seize_interrupt_trylock() since there is a real body when macros are enabled. * macros/rtems/score/coresem.inl: Added macro implementation of _CORE_semaphore_Seize_isr_disable. * macros/score/Makefile.am: Fixed typos. * rtems/score/address.inl: Correct macro implementation of _Addresses_Is_aligned() so it would compile. * macros/rtems/score/coremsg.inl: Added closing parentheses.
2000-11-282000-11-28 Chris Johns <ccj@acm.org>Joel Sherrill1-1/+9
* src/heapallocate.c: Do not allow the size to overflow when adjusting it. A test allocated a stack of -1 (~0). This actually resulted in a stack being allocated but with a size of 0xb. The allocator did not test the size to see if it rolled through 0 and so allowed the allocation to happen, the thread to get created. The task crashed as you would expect.
2000-10-182000-10-18 Nick Simon <Nick.SIMON@syntegra.bt.co.uk>Joel Sherrill2-1/+102
* src/heapgetinfo.c, include/rtems/score/heap.h, src/Makefile.am: Added _Heap_Get_information() and information control block. * src/heapgetinfo.c: New file.
2000-09-202000-09-20 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+0
* src/objectgetbyindex.c: Do not enable dispatching on an error path it was not disabled on.
2000-09-052000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-0/+1
* src/Makefile.am: Include compile.am.
2000-07-26Port of RTEMS to the Texas Instruments C3x/C4x DSP families includingJoel Sherrill5-2/+10
a BSP (c4xsim) supporting the simulator included with gdb. This port was done by Joel Sherrill and Jennifer Averett of OAR Corporation. Also included with this port is a space/time optimization to eliminate FP context switch management on CPUs without hardware or software FP. An issue with this port was that sizeof(unsigned32) = sizeof(unsigned8) on this CPU. This required addressing alignment checks and assumptions as well as fixing code that assumed sizeof(unsigned32) == 4.
2000-07-24Use bitwise and not cast to unsigned16 to remove upper bits.Joel Sherrill2-2/+6
2000-07-06Added objjectgetbyisr.cJoel Sherrill1-2/+3
2000-07-06The code that attempts to obtain a mutex has now been inlined. TheJoel Sherrill1-83/+7
code remaining here now only blocks.
2000-07-06Directly index local table to avoid error check.Joel Sherrill3-12/+10
2000-07-06New file. Convert ID to pointer and return with interrupts -- notJoel Sherrill1-0/+83
dispatching -- disabled.
2000-07-06Format of return line changed.Joel Sherrill1-3/+3
2000-07-03Added blocked_count field to allow for optimizations.Joel Sherrill1-2/+3
2000-06-14Thread iterator and libgjc support submitted too early.Joel Sherrill3-164/+9
2000-06-12Patch from John Cotton <john.cotton@nrc.ca>, Charles-Antoine GauthierJoel Sherrill3-9/+164
<charles.gauthier@iit.nrc.ca>, and Darlene A. Stewart <Darlene.Stewart@nrc.ca> to add support for a number of very significant things: + BSPs for many variations on the Motorola MBX8xx board series + Cache Manager including initial support for m68040 and PowerPC + Rework of mpc8xx libcpu code so all mpc8xx CPUs now use same code base. + Rework of eth_comm BSP to utiltize above. John reports this works on the 821 and 860
2000-06-12Merged from 4.5.0-beta3aJoel Sherrill2-5/+7
2000-04-13Patch rtems-rc-4.5.0-13-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.Joel Sherrill1-0/+2
adds .cvsignore.
2000-02-08Patches rtems-rc-20000204-0.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-1/+0
that contains: * Removes remaining (now illegal) references to $(SRC) from a couple of Makefile.ams * Removes duplicate AC_CONFIG_SUBDIRS macro from c/configure.in * Moves ENABLE_LIBCDIR into RTEMS_PROG_C[C|XX]_FOR_TARGET (hides LIBCDIR from most configure scripts, i.e. LIBCDIR becomes less visible) * Adds RTEMS_PROG_C[C|XX]_FOR_TARGET and RTEMS_CANONICALIZE_TOOLS to libbsp/*/configure.ins (A minor bug in previous implementations, which only has an impact when switching to GNU/Cygnus canonicalization) * Cleans up several bogus comments. * Removes MKLIB * Switches the version number to 4.5.0 (for testing version number handling)
2000-01-31Patches rtems-rc-20000118-3.diff and rtems-rc-20000118-4.diff fromJoel Sherrill1-1/+0
Ralf Corsepius <corsepiu@faw.uni-ulm.de> that contain: * Modifications, (minor) corrections, cleanups to most existing Makefile.ams * Adds automake support to all remaining BSPs which have not yet been converted to automake. * Makefile.am for all remaining wrapup/Makefile.ams
2000-01-13POSIX message queues now include complete functionality includingJoel Sherrill2-69/+96
blocking sends when the queue is full. The SuperCore was enhanced to support blocking on send. The existing POSIX API was debugged and numerous test cases were added to psxmsgq01 by Jennifer Averett. SuperCore enhancements and resulting modifications to other APIs were done by Joel. There is one significant point of interpretation for the POSIX API. What happens to threads already blocked on a message queue when the mode of that same message queue is changed from blocking to non-blocking? We decided to unblock all waiting tasks with an EAGAIN error just as if a non-blocking version of the same operation had returned unsatisfied. This case is not discussed in the POSIX standard and other implementations may have chosen differently.
2000-01-13+ Added commentsJennifer Averett3-8/+46
2000-01-13+ Added and yellow line tested _CORE_message_queue_Flush_waiting_threadsJennifer Averett3-1/+174
and _CORE_message_queue_Insert_message for posix message queues. + Yellow line tested new source
2000-01-13Added comment.Jennifer Averett1-0/+1
2000-01-12+ Added code for waiting sendJennifer Averett1-4/+39
+ Yellow lined tested routine with Posix message queue test (01)
2000-01-06Corrected spacing.Joel Sherrill1-3/+2
2000-01-05Added support for simple binary semaphores in addition to the highJoel Sherrill3-32/+42
power binary/mutex style semaphores already supported by RTEMS. This was done at the request of Eric Norum <eric@cls.usask.ca> in support of his effort to port EPICS to RTEMS. This change consisted of changing the nesting_allowed boolean into a lock_nesting_behavior enumerated value as well as allowing the core mutex object to optionally support ensuring that the holder of a binary semaphore released it. Finally, a more subtle enhancement was to allow the non-holder to release a priority inheritance/ceiling mutex and still allow the holding task to return to its original priority.