Commit Graph

150 Commits

Author SHA1 Message Date
Joel Sherrill
ff08b80878 2003-08-14 Joel Sherrill <joel@OARcorp.com>
* Makefile.am, include/rtems/score/object.h,
	include/rtems/score/objectmp.h, src/objectmp.c, src/objectnametoid.c:
	Added ID to name lookup service and changed name of id/name
	translation status code. This propagated to multiple functions. The
	user API service added was rtems_object_id_to_name()
	* src/objectidtoname.c: New file.
2003-08-14 21:01:30 +00:00
Joel Sherrill
17c6686753 2003-08-14 Joel Sherrill <joel@OARcorp.com>
PR 408/filesystem
	* score/Makefile.am, score/include/rtems/score/thread.h: Added
	sync() service. As part of adding this service, the
	new RTEMS service rtems_iterate_over_all_threads() was also added.
	This new service makes it easier to iterate over all the
	tasks/threads in a system and perform an action on them.
	* score/src/iterateoverthreads.c: New file.
	* ChangeLog: Fixed screwup.
2003-08-14 20:04:18 +00:00
Joel Sherrill
fbbe5fde57 2003-07-18 Till Straumann <strauman@slac.stanford.edu>
PR 430/rtems
	* include/rtems/score/watchdog.h: _Watchdog_Ticks_since_boot should
	be a VOLATILE variable.
	* src/watchdoginsert.c: 'restart' algorithm needs to enforce
	reloading the list head in case a TICK interrupt during ISR_Flash()
	modified the list.  This is achieved by a proper VOLATILE cast.
	Also _Watchdog_Sync_count++ should be protected by _ISR_Disable
	(prevent corruption in case ISR calls watchdoginsert)
	* src/watchdogadjust.c: ISR protection added.
	* src/watchdogtickle.c: ISR protection added.
	NOTE: PowerPC BSPs using the new exception processing MUST BE UPDATED
	to maintain _ISR_Nest_level. See also PR288 which provides fixes
	for the affected BSPs distributed with RTEMS.
2003-07-18 14:47:55 +00:00
Ralf Corsepius
d2c26e4bad Merger from rtems-4-6-branch. 2003-03-11 08:10:00 +00:00
Ralf Corsepius
9c59c2d953 Merger from rtems-4-6-branch. 2003-02-28 07:08:21 +00:00
Ralf Corsepius
0c819966e2 2002-12-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Remove.
	* inline/Makefile.am: Remove.
	* macros/Makefile.am: Remove.
	* src/Makefile.am: Remove.
	* Makefile.am: Merge-in removed Makefile.ams.
2002-12-09 09:48:32 +00:00
Joel Sherrill
2728d9cf48 2002-12-02 Joel Sherrill <joel@OARcorp.com>
* include/rtems/score/object.h, include/rtems/score/tod.h:
	Added casts to eliminate warnings on 16 bit targets like the h8300.
2002-12-02 19:16:37 +00:00
Ralf Corsepius
f31a0787b3 2002-08-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* score/include/Makefile.am: Remove cpuopt.h generation.
	* configure.ac: Correct package name.
	Don't build ada if POSIX is disabled.
	Generate cpuopt.h on the fly, filter out autoconf-2.53 PACKAGE crap.
2002-08-29 15:59:05 +00:00
Joel Sherrill
323845bd67 2002-07-22 Joel Sherrill <joel@OARcorp.com>
* include/rtems/score/apimutex.h (_API_Mutex_Lock): Per PR253
	add the missing _ISR_Disable.  This fix was already applied to
	the old location (c/src/exec/score/...).
2002-07-23 22:43:13 +00:00
Joel Sherrill
ef9505a92f 2002-07-01 Joel Sherrill <joel@OARcorp.com>
* 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-07-01 22:30:12 +00:00
Ralf Corsepius
fed6210d43 2002-06-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Include $(top_srcdir)/automake/*.am.
2002-06-17 09:27:44 +00:00
Joel Sherrill
0df8293e2b 2002-05-15 Chris Johns <ccj@acm.org>
* 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-15 15:14:58 +00:00
Joel Sherrill
bd9265df54 2002-05-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Work-around to autoconf-2.53 adding PACKAGE_*
	to autoheaders - sed out *PACKAGE* from cpuopts-tmp.h.
2002-05-14 18:11:36 +00:00
Joel Sherrill
2b454faf13 2001-04-26 Joel Sherrill <joel@OARcorp.com>
* 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-26 23:56:56 +00:00
Joel Sherrill
9779f3dbb7 2002-04-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/system.h: Remove targopts.h.
2002-04-18 13:07:50 +00:00
Joel Sherrill
cf80584ec6 2002-04-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/system.h: Add the sparc to the target supporting
	multlibs.
2002-04-17 14:01:19 +00:00
Joel Sherrill
231fccb299 2002-04-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/system.h: Add i386 to multilib-able targets.
2002-04-12 15:11:16 +00:00
Joel Sherrill
40c24d3206 2002-04-08 Chris Johns <ccj@acm.org>
* Per PR142, make task switch extension its own list.
	* include/rtems/score/userext.h: Reflect above by adding
	User_extensions_Switch_control and adding it to User_extenions_Control.
	* inline/rtems/score/userext.inl: Allocate all memory in one chunk
	to minimize overhead.  Address processing dedicated switch chain.
2002-04-08 17:26:13 +00:00
Joel Sherrill
c43484bf54 2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* 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.
2002-03-28 00:46:37 +00:00
Joel Sherrill
a94c2fbba4 2002-01-29 Joel Sherrill <joel@OARcorp.com>
* include/rtems/score/watchdog.h: Added WATCHDOG_MAXIMUM_INTERVAL.
2002-01-29 18:18:26 +00:00
Joel Sherrill
5addee5839 2002-01-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/system.h: Fix typo in yesterday's change:
	RTEMS_MULTILIBS.
2002-01-20 17:05:36 +00:00
Joel Sherrill
61129cc54f 2001-01-18 Joel Sherrill <joel@OARcorp.com>
* include/rtems/system.h: Only include cpuopts.h when building a
	multilib configuration.  Some ports still need targopts.h but this
	small modification lets those ports work non-multilib while
	fixing being fixed for multilib.
2002-01-18 22:33:49 +00:00
Joel Sherrill
b72e368c35 2002-01-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/seterr.h: Add do {..} while (0) in defines.
	Rename set_errno_and_return_minus_one into
	rtems_set_errno_and_return_minus_one.
2002-01-04 18:29:03 +00:00
Joel Sherrill
89ee0b6936 2001-11-28 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR91.
	* include/rtems/score/isr.h, inline/rtems/score/isr.inl,
	macros/rtems/score/isr.inl: Modified to allow any port to provide
	its own implementation of the macro _ISR_Is_in_progress.  If the
	port overrides this macro, it must provide a non-inlined function
	implementation.
2001-11-28 18:28:24 +00:00
Joel Sherrill
c31c15c16c 2001-11-07 Joel Sherrill <joel@OARcorp.com>
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-11-07 22:42:04 +00:00
Joel Sherrill
f11615f156 2001-10-16 Joel Sherrill <joel@OARcorp.com>
* include/Makefile.am: Fixed path to cpuopts-tmp.h.
2001-10-17 13:10:28 +00:00
Joel Sherrill
ff61414ac8 2001-10-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/Makefile.am: Remove.
	* include/rtems/Makefile.am: Remove.
	* include/Makefile.am: Handle subdirs, require automake-1.5.
	* macros/rtems/Makefile.am: Remove.
	* macros/rtems/score/Makefile.am: Remove.
	* macros/Makefile.am: Handle subdirs, require automake-1.5.
	* inline/rtems/Makefile.am: Remove.
	* inline/rtems/score/Makefile.am: Remove.
	* inline/Makefile.am: Handle subdirs, require automake-1.5.
	* Makefile.am: require automake-1.5
2001-10-16 13:30:52 +00:00
Joel Sherrill
7d74141380 2001-08-16 Joel Sherrill <joel@OARcorp.com>
* 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-16 19:35:08 +00:00
Joel Sherrill
00815403be 2001-08-09 Joel Sherrill <joel@OARcorp.com>
* 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-08-09 20:46:12 +00:00
Joel Sherrill
ba91ea3d66 2001-05-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/score/.cvsignore: Add stamp-h, cpuopts.h,
	cpuopts.h.in, cpuopts-tmp.h.
2001-05-09 13:10:17 +00:00
Joel Sherrill
9928d0887d 2000-12-13 Joel Sherrill <joel@OARcorp.com>
* 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-12-13 22:13:32 +00:00
Joel Sherrill
ba41dfdee5 2000-11-02 Joel Sherrill <joel@OARcorp.com>
* include/rtems/system.h: Use proper conditional (RTEMS_POSIX_API)
	so prototypes for POSIX_MP_NOT_IMPLEMENTED(), POSIX_NOT_IMPLEMENTED(),
	POSIX_BOTTOM_REACHED() are actually included.
2000-11-03 15:39:55 +00:00
Joel Sherrill
b5c5030965 2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* aclocal/canonicalize-tools.m4, aclocal/check-tool.m4,
	aclocal/prog-cc.m4, aclocal/prog-cxx.m4:  Replace AC_CHECK_TOOL
	with an RTEMS specific but more restrictive autoconf macro.
2000-11-02 22:56:23 +00:00
Joel Sherrill
252565f24d 2000-10-18 Nick Simon <Nick.SIMON@syntegra.bt.co.uk>
* 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-10-18 14:57:12 +00:00
Joel Sherrill
a8d650c524 2000-09-25 Joel Sherrill <joel@OARcorp.com>
* rtems/system.h: Switched a29k and hppa1.1 to using cpuopts.h not
	targopts.h to reduce dependency on BSP.
2000-09-25 18:59:36 +00:00
Joel Sherrill
188c82b412 2000-08-30 Joel Sherrill <joel@OARcorp.com>
* Many files: Moved posix/include/rtems/posix/seterr.h to
	score/include/rtems/seterr.h so it would be available within
	all APIs.
2000-08-30 17:12:55 +00:00
Joel Sherrill
8ca1e808e2 2000-08-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/system.h: Include cpuopts.h for __i386__.
2000-08-25 17:30:46 +00:00
Joel Sherrill
499d443996 Look at both hardware and software FP settings. 2000-08-01 19:42:39 +00:00
Joel Sherrill
47ca0d0a51 The fp_context field is needed if software or hardware floating point
is available.
2000-08-01 18:26:02 +00:00
Joel Sherrill
17508d02bb Port of RTEMS to the Texas Instruments C3x/C4x DSP families including
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-26 19:26:28 +00:00
Joel Sherrill
4159370f5d Reworked score/cpu/sparc so it can be safely compiled multilib. All
routines and structures that require CPU model specific information
are now in libcpu.  This primarily required moving erc32 specific
information from score/cpu files to libcpu/sparc and the erc32 BSP.
2000-07-11 21:16:53 +00:00
Joel Sherrill
f38d829af4 Added Hitachi H8/300 to the list of CPUs that should be OK with
using cpuopts.h and not targopts.h.
2000-07-11 20:45:13 +00:00
Joel Sherrill
270e3cce96 Patch rtems-rc-20000711-1-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that decouples exec/ for the sh, m68k and i960 from targopts.h.

NOTE: The change to system.h is a hack to enable cpuopts.h
for some targets, but keep using targopts.h for others - I know it
does *not* work for sparc, mips, i386 and ppc.  This will have
to be addressed as work continues on multilibing.
2000-07-11 14:56:04 +00:00
Joel Sherrill
e0ba3e80ef Patch rtems-rc-20000709-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that addresses aspects of the targopts.h multilib related
issues.

  Changes:
    * Move targopts.h to libbsp/include, because the current targopts.h
      actually is a per-BSP-header and therefore can not stay below exec/.

    * Introduce an autoheader generated header file
      (exec/score/include/rtems/score/cpuopts.h), which shall take per-cpu
      configuration options only.

    * Move all autoconf-detectable/configure specified per-cpu
      option-defines from targopts.h to cpuopts.h.

    * Add Makefiles to the libbsp/shared directory hierarchy.

  Notes:
    * The new per-bsp targopts.h in libbsp includes the per-cpu
      cpuopts.h. This way, the new targopts.h is kept backward compatible
      to the old targopts.h and existing BSPs which (carelessly) include
      targopts.h (i386, ppc) should be kept working when using the
      multilib-disabled configuration scheme.

    * cpuopts.h is not yet complete, because the per-BSP make-targopts
      rules from custom/<BSP>.cfg files can not be applied to files below
      exec/ when building multilibs.

    * All files below exec/ should not include targopts.h anymore, but
      should include cpuopts.h instead.  However, eliminating inclusion of
      targopts.h currently triggers further structural / header file inclusion
      related issues, because several ports apply BSP or CPU_MODEL specific
      defines from targopts.h below exec/
2000-07-10 19:23:38 +00:00
Joel Sherrill
5f4d774ea7 Moved __RTEMS_APPLICATION__ conditional to include the use of the
static inline routine _CORE_mutex_Seize_interrupt_trylock since
static routines are not included when in an application.
2000-07-07 19:29:05 +00:00
Joel Sherrill
e6faa6ac76 Corrected call to _CORE_mutex_Seize_interrupt_blocking. 2000-07-06 20:01:23 +00:00
Joel Sherrill
21e2b2b9be Reimplemented _Core_MUTEX_Seize to return with interrupts disabled
if the mutex is successfully obtained.
2000-07-06 19:32:00 +00:00
Joel Sherrill
c6f111bac0 Added _Objects_Get_isr_disable prototype and added numerous comments. 2000-07-06 19:14:34 +00:00
Joel Sherrill
0147d5ee73 Added blocked_count field to allow for optimizations. 2000-07-03 15:49:58 +00:00
Joel Sherrill
fdcb2b52b7 Thread iterator and libgjc support submitted too early. 2000-06-14 13:38:47 +00:00