Compare commits

..

15 Commits

Author SHA1 Message Date
cvs2git
6b5b5deffe This commit was manufactured by cvs2svn to create tag 'rtems-4-5-1-pre3'.
Sprout from rtems-4-5-branch 2002-01-30 20:04:25 UTC cvs2git <rtems-devel@rtems.org> 'This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.'
Cherrypick from rtems-4-5-branch 2001-08-30 19:12:24 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'changed version to 4.5.1-pre1':
    VERSION
    c/src/lib/libc/termios.c
Cherrypick from master 1999-03-31 23:21:19 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'Fixed paths to include files so this will build.':
    c/src/lib/libcpu/mips/clock/clock.S
Cherrypick from master 2002-01-22 17:38:37 UTC Joel Sherrill <joel.sherrill@OARcorp.com> '2002-01-21	Ralf Corsepius <corsepiu@faw.uni-ulm.de>':
    doc/.cvsignore
2002-01-30 20:04:26 +00:00
cvs2git
636ef9a103 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2002-01-30 20:04:24 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'fixing branch':
    doc/Makefile.am
2002-01-30 20:04:25 +00:00
Joel Sherrill
b09580859c changed version to 4.5.1-pre3 2001-11-29 17:13:22 +00:00
Joel Sherrill
09b3a2facd 2001-11-27 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR89.
	* inline/rtems/score/thread.inl, macros/rtems/score/thread.inl,
	src/threadclose.c: Do not reference FP context if the CPU does
	not have an FPU.
2001-11-28 01:21:16 +00:00
Joel Sherrill
f3dc8e62bc 2001-11-14 Till Straumann <strauman@SLAC.Stanford.EDU>
* new_exception_processing/cpu_asm.S: Support double or single
	precision context switches.  Note that doing a single precision
	context save/restore on a double precision PowerPC machine does not
	only result in rounding errors but also screws up the FPSCR register!
2001-11-15 16:32:46 +00:00
Joel Sherrill
21766bd609 2001-11-08 Jiri Gaisler <jiri@gaisler.com>
This fix is in response to test results reported by Jerry Needell
	<jerry.needell@unh.edu> for the SPARC/ERC32 and tracked as PR80.
	* erc32/include/bsp.h: TM27 was not running properly because the ERC32
	and LEON cannot nest interrupts at the same level.  The BSP test support
	had to be modified to support using two different interrupt sources.
	* tm27/task1.c: Account for overhead in starting and stopping
	the timer.
2001-11-08 14:15:47 +00:00
Joel Sherrill
1fd366130f 2001-11-07 Jennifer Averett <jennifer@OARcorp.com>
Reported by Ibragimov Ilya <ibr@oktet.ru> and tracked as PR49.
	*  src/imfs/imfs_directory.c: Do not calculate the offset twice.
2001-11-08 00:31:44 +00:00
Joel Sherrill
a637c087f4 2001-11-07 Jennifer Averett <jennifer@OARcorp.com>
Reported by Ibragimov Ilya <ibr@oktet.ru> and tracked as PR63.
	* libc/chdir.c: Check for search/execute permissions on chdir.
	This requires passing RTEMS_LIBIO_PERMS_SEARCH to
	rtems_filesystem_evaluate_path().
2001-11-08 00:00:01 +00:00
Joel Sherrill
3fe8f44b92 2001-11-07 Jennifer Averett <jennifer@OARcorp.com>
Reported by Ibragimov Ilya <ibr@oktet.ru> and tracked as PR63.
	* psxstat/test.c: Fix test ENOTDIR to correspond to chdir() change.
	Since we check permissions before evaluating enough to see if it
	a regular file or directory, this hack is needed to make the regular
	file executable.
2001-11-07 23:59:26 +00:00
Joel Sherrill
ec1e4f4f87 2001-11-07 Joel Sherrill <joel@OARcorp.com>
Tracked as PR72 but related to the object id problem (PR36)
	reported by Todor.Todorov@barco.com.
	* include/tmacros.h: Added fatal_directive_check_status_only().
2001-11-07 23:07:32 +00:00
Joel Sherrill
f883132802 2001-11-07 Joel Sherrill <joel@OARcorp.com>
Tracked as PR72 but related to the object id problem (PR36)
	reported by Todor.Todorov@barco.com.
	* mp03/delay.c: Dispatch disable level is actually 1 not 0.
	* mp13/system.h: Configure enough tasks (CONFIGURE_MAXIMUM_TASKS=3).
	* mp14/delay.c: Dispatch disable level may be arbitrarily > 0.
2001-11-07 23:05:07 +00:00
Joel Sherrill
410b18c1f3 2001-11-07 Joel Sherrill <joel@OARcorp.com>
Discovered while fixing PR36 reported by Todor.Todorov@barco.com.
	* include/rtems/itron/object.h: Corrected _ITRON_Objects_Get()
	to use _Objects_Get_by_index().
2001-11-07 22:55:57 +00:00
Joel Sherrill
7d573e9e15 2001-11-07 Joel Sherrill <joel@OARcorp.com>
* include/rtems/score/object.h: Added prototype for
	_Objects_Get_by_index().
	* src/objectget.c: Corrected procedure for getting index from Id so
	it is correct and optimal for both single and multiprocessor
	configurations.
2001-11-07 22:51:28 +00:00
Joel Sherrill
e7585ed517 2001-11-01 Joel Sherrill <joel@OARcorp.com>
* sp26/system.h: Properly account for stack memory used by
	this test. Reported by Jerry Needell <jerry.needell@unh.edu>
	and processed as PR78.
2001-11-01 23:09:04 +00:00
Joel Sherrill
2b1d6de02c 2001-11-01 Joel Sherrill <joel@OARcorp.com>
* rtems++/Makefile.am: Make sure debug variant of librtems++
	is linked against.  Reported by Jerry Needell <jerry.needell@unh.edu>
	and processed as PR78.
2001-11-01 17:58:45 +00:00
22 changed files with 215 additions and 152 deletions

View File

@@ -4,4 +4,4 @@
# $Id$
#
RTEMS Version 4.5.1-pre2
RTEMS Version 4.5.1-pre1

View File

@@ -109,7 +109,7 @@ typedef Objects_Control ITRON_Objects_Control;
*/
#define _ITRON_Objects_Get( _the_information, _id, _the_object ) \
_Objects_Get( (_the_information), (_id), (_the_object) )
_Objects_Get_by_index( (_the_information), (_id), (_the_object) )
#ifdef __cplusplus
}

View File

@@ -67,39 +67,49 @@
.set GP_PC, (GP_CR + 4)
.set GP_MSR, (GP_PC + 4)
#if (PPC_HAS_DOUBLE==1)
.set FP_SIZE, 8
#define LDF lfd
#define STF stfd
#else
.set FP_SIZE, 4
#define LDF lfs
#define STF stfs
#endif
.set FP_0, 0
.set FP_1, (FP_0 + 4)
.set FP_2, (FP_1 + 4)
.set FP_3, (FP_2 + 4)
.set FP_4, (FP_3 + 4)
.set FP_5, (FP_4 + 4)
.set FP_6, (FP_5 + 4)
.set FP_7, (FP_6 + 4)
.set FP_8, (FP_7 + 4)
.set FP_9, (FP_8 + 4)
.set FP_10, (FP_9 + 4)
.set FP_11, (FP_10 + 4)
.set FP_12, (FP_11 + 4)
.set FP_13, (FP_12 + 4)
.set FP_14, (FP_13 + 4)
.set FP_15, (FP_14 + 4)
.set FP_16, (FP_15 + 4)
.set FP_17, (FP_16 + 4)
.set FP_18, (FP_17 + 4)
.set FP_19, (FP_18 + 4)
.set FP_20, (FP_19 + 4)
.set FP_21, (FP_20 + 4)
.set FP_22, (FP_21 + 4)
.set FP_23, (FP_22 + 4)
.set FP_24, (FP_23 + 4)
.set FP_25, (FP_24 + 4)
.set FP_26, (FP_25 + 4)
.set FP_27, (FP_26 + 4)
.set FP_28, (FP_27 + 4)
.set FP_29, (FP_28 + 4)
.set FP_30, (FP_29 + 4)
.set FP_31, (FP_30 + 4)
.set FP_FPSCR, (FP_31 + 4)
.set FP_1, (FP_0 + FP_SIZE)
.set FP_2, (FP_1 + FP_SIZE)
.set FP_3, (FP_2 + FP_SIZE)
.set FP_4, (FP_3 + FP_SIZE)
.set FP_5, (FP_4 + FP_SIZE)
.set FP_6, (FP_5 + FP_SIZE)
.set FP_7, (FP_6 + FP_SIZE)
.set FP_8, (FP_7 + FP_SIZE)
.set FP_9, (FP_8 + FP_SIZE)
.set FP_10, (FP_9 + FP_SIZE)
.set FP_11, (FP_10 + FP_SIZE)
.set FP_12, (FP_11 + FP_SIZE)
.set FP_13, (FP_12 + FP_SIZE)
.set FP_14, (FP_13 + FP_SIZE)
.set FP_15, (FP_14 + FP_SIZE)
.set FP_16, (FP_15 + FP_SIZE)
.set FP_17, (FP_16 + FP_SIZE)
.set FP_18, (FP_17 + FP_SIZE)
.set FP_19, (FP_18 + FP_SIZE)
.set FP_20, (FP_19 + FP_SIZE)
.set FP_21, (FP_20 + FP_SIZE)
.set FP_22, (FP_21 + FP_SIZE)
.set FP_23, (FP_22 + FP_SIZE)
.set FP_24, (FP_23 + FP_SIZE)
.set FP_25, (FP_24 + FP_SIZE)
.set FP_26, (FP_25 + FP_SIZE)
.set FP_27, (FP_26 + FP_SIZE)
.set FP_28, (FP_27 + FP_SIZE)
.set FP_29, (FP_28 + FP_SIZE)
.set FP_30, (FP_29 + FP_SIZE)
.set FP_31, (FP_30 + FP_SIZE)
.set FP_FPSCR, (FP_31 + FP_SIZE)
.set IP_LINK, 0
.set IP_0, (IP_LINK + 8)
@@ -152,40 +162,40 @@
PROC (_CPU_Context_save_fp):
#if (PPC_HAS_FPU == 1)
lwz r3, 0(r3)
stfs f0, FP_0(r3)
stfs f1, FP_1(r3)
stfs f2, FP_2(r3)
stfs f3, FP_3(r3)
stfs f4, FP_4(r3)
stfs f5, FP_5(r3)
stfs f6, FP_6(r3)
stfs f7, FP_7(r3)
stfs f8, FP_8(r3)
stfs f9, FP_9(r3)
stfs f10, FP_10(r3)
stfs f11, FP_11(r3)
stfs f12, FP_12(r3)
stfs f13, FP_13(r3)
stfs f14, FP_14(r3)
stfs f15, FP_15(r3)
stfs f16, FP_16(r3)
stfs f17, FP_17(r3)
stfs f18, FP_18(r3)
stfs f19, FP_19(r3)
stfs f20, FP_20(r3)
stfs f21, FP_21(r3)
stfs f22, FP_22(r3)
stfs f23, FP_23(r3)
stfs f24, FP_24(r3)
stfs f25, FP_25(r3)
stfs f26, FP_26(r3)
stfs f27, FP_27(r3)
stfs f28, FP_28(r3)
stfs f29, FP_29(r3)
stfs f30, FP_30(r3)
stfs f31, FP_31(r3)
STF f0, FP_0(r3)
STF f1, FP_1(r3)
STF f2, FP_2(r3)
STF f3, FP_3(r3)
STF f4, FP_4(r3)
STF f5, FP_5(r3)
STF f6, FP_6(r3)
STF f7, FP_7(r3)
STF f8, FP_8(r3)
STF f9, FP_9(r3)
STF f10, FP_10(r3)
STF f11, FP_11(r3)
STF f12, FP_12(r3)
STF f13, FP_13(r3)
STF f14, FP_14(r3)
STF f15, FP_15(r3)
STF f16, FP_16(r3)
STF f17, FP_17(r3)
STF f18, FP_18(r3)
STF f19, FP_19(r3)
STF f20, FP_20(r3)
STF f21, FP_21(r3)
STF f22, FP_22(r3)
STF f23, FP_23(r3)
STF f24, FP_24(r3)
STF f25, FP_25(r3)
STF f26, FP_26(r3)
STF f27, FP_27(r3)
STF f28, FP_28(r3)
STF f29, FP_29(r3)
STF f30, FP_30(r3)
STF f31, FP_31(r3)
mffs f2
stfs f2, FP_FPSCR(r3)
STF f2, FP_FPSCR(r3)
#endif
blr
@@ -207,40 +217,40 @@ PROC (_CPU_Context_save_fp):
PROC (_CPU_Context_restore_fp):
#if (PPC_HAS_FPU == 1)
lwz r3, 0(r3)
lfs f2, FP_FPSCR(r3)
LDF f2, FP_FPSCR(r3)
mtfsf 255, f2
lfs f0, FP_0(r3)
lfs f1, FP_1(r3)
lfs f2, FP_2(r3)
lfs f3, FP_3(r3)
lfs f4, FP_4(r3)
lfs f5, FP_5(r3)
lfs f6, FP_6(r3)
lfs f7, FP_7(r3)
lfs f8, FP_8(r3)
lfs f9, FP_9(r3)
lfs f10, FP_10(r3)
lfs f11, FP_11(r3)
lfs f12, FP_12(r3)
lfs f13, FP_13(r3)
lfs f14, FP_14(r3)
lfs f15, FP_15(r3)
lfs f16, FP_16(r3)
lfs f17, FP_17(r3)
lfs f18, FP_18(r3)
lfs f19, FP_19(r3)
lfs f20, FP_20(r3)
lfs f21, FP_21(r3)
lfs f22, FP_22(r3)
lfs f23, FP_23(r3)
lfs f24, FP_24(r3)
lfs f25, FP_25(r3)
lfs f26, FP_26(r3)
lfs f27, FP_27(r3)
lfs f28, FP_28(r3)
lfs f29, FP_29(r3)
lfs f30, FP_30(r3)
lfs f31, FP_31(r3)
LDF f0, FP_0(r3)
LDF f1, FP_1(r3)
LDF f2, FP_2(r3)
LDF f3, FP_3(r3)
LDF f4, FP_4(r3)
LDF f5, FP_5(r3)
LDF f6, FP_6(r3)
LDF f7, FP_7(r3)
LDF f8, FP_8(r3)
LDF f9, FP_9(r3)
LDF f10, FP_10(r3)
LDF f11, FP_11(r3)
LDF f12, FP_12(r3)
LDF f13, FP_13(r3)
LDF f14, FP_14(r3)
LDF f15, FP_15(r3)
LDF f16, FP_16(r3)
LDF f17, FP_17(r3)
LDF f18, FP_18(r3)
LDF f19, FP_19(r3)
LDF f20, FP_20(r3)
LDF f21, FP_21(r3)
LDF f22, FP_22(r3)
LDF f23, FP_23(r3)
LDF f24, FP_24(r3)
LDF f25, FP_25(r3)
LDF f26, FP_26(r3)
LDF f27, FP_27(r3)
LDF f28, FP_28(r3)
LDF f29, FP_29(r3)
LDF f30, FP_30(r3)
LDF f31, FP_31(r3)
#endif
blr

View File

@@ -443,6 +443,12 @@ Objects_Control *_Objects_Get (
Objects_Locations *location
);
Objects_Control *_Objects_Get_by_index (
Objects_Information *information,
Objects_Id id,
Objects_Locations *location
);
/*
* _Objects_Get_next
*

View File

@@ -111,8 +111,10 @@ RTEMS_INLINE_ROUTINE void _Thread_Unblock (
RTEMS_INLINE_ROUTINE void _Thread_Restart_self( void )
{
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
if ( _Thread_Executing->fp_context != NULL )
_Context_Restore_fp( &_Thread_Executing->fp_context );
#endif
_CPU_Context_Restart_self( &_Thread_Executing->Registers );
}
@@ -144,12 +146,14 @@ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void )
* FALSE otherwise.
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
RTEMS_INLINE_ROUTINE boolean _Thread_Is_allocated_fp (
Thread_Control *the_thread
)
{
return ( the_thread == _Thread_Allocated_fp );
}
#endif
/*PAGE
*
@@ -161,10 +165,12 @@ RTEMS_INLINE_ROUTINE boolean _Thread_Is_allocated_fp (
* point context is now longer associated with an active thread.
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
RTEMS_INLINE_ROUTINE void _Thread_Deallocate_fp( void )
{
_Thread_Allocated_fp = NULL;
}
#endif
/*PAGE
*

View File

@@ -67,6 +67,7 @@
*
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
#define _Thread_Restart_self() \
{ \
if ( _Thread_Executing->fp_context != NULL ) \
@@ -74,6 +75,12 @@
\
_CPU_Context_Restart_self( &_Thread_Executing->Registers ); \
}
#else
#define _Thread_Restart_self() \
{ \
_CPU_Context_Restart_self( &_Thread_Executing->Registers ); \
}
#endif
/*PAGE
*
@@ -96,8 +103,10 @@
*
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
#define _Thread_Is_allocated_fp( _the_thread ) \
( (_the_thread) == _Thread_Allocated_fp )
#endif
/*PAGE
*
@@ -105,8 +114,10 @@
*
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
#define _Thread_Deallocate_fp() \
_Thread_Allocated_fp = NULL
#endif
/*PAGE
*

View File

@@ -53,11 +53,18 @@ Objects_Control *_Objects_Get(
Objects_Control *the_object;
unsigned32 index;
index = _Objects_Get_index( id );
#if defined(RTEMS_MULTIPROCESSING)
index = id - information->minimum_id + 1;
#else
/* index = _Objects_Get_index( id ); */
index = id & 0x0000ffff;
/* This should work but doesn't always :( */
/* index = (unsigned16) id; */
#endif
if ( information->maximum >= index ) {
_Thread_Disable_dispatch();
if ( (the_object = _Objects_Get_local_object( information, index )) != NULL ) {
if ( (the_object = information->local_table[ index ]) != NULL ) {
*location = OBJECTS_LOCAL;
return( the_object );
}
@@ -67,12 +74,7 @@ Objects_Control *_Objects_Get(
}
*location = OBJECTS_ERROR;
#if defined(RTEMS_MULTIPROCESSING)
_Objects_MP_Is_remote(
information,
_Objects_Build_id( information->the_class, _Objects_Local_node, index ),
location,
&the_object
);
_Objects_MP_Is_remote( information, id, location, &the_object );
return the_object;
#else
return NULL;

View File

@@ -53,6 +53,7 @@ void _Thread_Close(
_User_extensions_Thread_delete( the_thread );
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
if ( _Thread_Is_allocated_fp( the_thread ) )
_Thread_Deallocate_fp();
@@ -60,7 +61,8 @@ void _Thread_Close(
the_thread->fp_context = NULL;
if ( the_thread->Start.fp_context )
(void) _Workspace_Free( the_thread->Start.fp_context );
(void) _Workspace_Free( the_thread->Start.fp_context );
#endif
_Thread_Stack_Free( the_thread );

View File

@@ -19,8 +19,9 @@
* $Id$
*/
#ifndef __SIS_h
#define __SIS_h
#ifndef __ERC32_BSP_h
#define __ERC32_BSP_h
#ifdef __cplusplus
extern "C" {
@@ -90,16 +91,19 @@ extern "C" {
#else /* use a regular asynchronous trap */
#define TEST_INTERRUPT_SOURCE ERC32_INTERRUPT_EXTERNAL_1
#define TEST_INTERRUPT_SOURCE2 (ERC32_INTERRUPT_EXTERNAL_1+1)
#define TEST_VECTOR ERC32_TRAP_TYPE( TEST_INTERRUPT_SOURCE )
#define TEST_VECTOR2 ERC32_TRAP_TYPE( TEST_INTERRUPT_SOURCE2 )
#define MUST_WAIT_FOR_INTERRUPT 1
#define Install_tm27_vector( handler ) \
set_vector( (handler), TEST_VECTOR, 1 );
set_vector( (handler), TEST_VECTOR, 1 ); \
set_vector( (handler), TEST_VECTOR2, 1 );
#define Cause_tm27_intr() \
do { \
ERC32_Force_interrupt( TEST_INTERRUPT_SOURCE ); \
ERC32_Force_interrupt( TEST_INTERRUPT_SOURCE+(Interrupt_nest>>1) ); \
nop(); \
nop(); \
nop(); \

View File

@@ -29,7 +29,8 @@ int chdir(
* Get the node where we wish to go.
*/
result = rtems_filesystem_evaluate_path( pathname, 0, &loc, TRUE );
result = rtems_filesystem_evaluate_path(
pathname, RTEMS_LIBIO_PERMS_SEARCH, &loc, TRUE );
if ( result != 0 )
return -1;

View File

@@ -175,19 +175,11 @@ int imfs_dir_lseek(
int whence
)
{
off_t normal_offset;
normal_offset = (offset/sizeof(struct dirent)) * sizeof(struct dirent);
switch( whence )
{
case SEEK_SET: /* absolute move from the start of the file */
iop->offset = normal_offset;
break;
case SEEK_CUR: /* relative move */
iop->offset = iop->offset + normal_offset;
iop->offset = (offset/sizeof(struct dirent)) * sizeof(struct dirent);
break;
case SEEK_END: /* Movement past the end of the directory via lseek */

View File

@@ -324,30 +324,19 @@ rtems_termios_close (void *arg)
drainOutput (tty);
if (tty->device.lastClose)
(*tty->device.lastClose)(tty->major, tty->minor, arg);
if (tty->forw == NULL) {
if (tty->forw == NULL)
rtems_termios_ttyTail = tty->back;
if ( rtems_termios_ttyTail != NULL ) {
rtems_termios_ttyTail->forw = NULL;
}
}
else {
else
tty->forw->back = tty->back;
}
if (tty->back == NULL) {
if (tty->back == NULL)
rtems_termios_ttyHead = tty->forw;
if ( rtems_termios_ttyHead != NULL ) {
rtems_termios_ttyHead->back = NULL;
}
}
else {
else
tty->back->forw = tty->forw;
}
rtems_semaphore_delete (tty->isem);
rtems_semaphore_delete (tty->osem);
rtems_semaphore_delete (tty->rawOutBufSemaphore);
if (!tty->device.pollRead)
rtems_semaphore_delete (tty->rawInBufSemaphore);
free (tty->cbuf);
free (tty);
}
rtems_semaphore_release (rtems_termios_ttyMutex);

View File

@@ -32,8 +32,9 @@ include $(top_srcdir)/libtests.am
# (OPTIONAL) Add local stuff here using +=
#
LD_LIBS += -lrtems++$(LIB_VARIANT)
if HAS_CXX
LD_LIBS += -lrtems++
${PGM}: $(OBJS) $(LINK_FILES)
$(make-cxx-exe)

View File

@@ -26,5 +26,5 @@ rtems_timer_service_routine Delayed_send_event(
rtems_status_code status;
status = rtems_event_send( Task_id[ 1 ], RTEMS_EVENT_16 );
directive_failed( status, "rtems_event_send" );
directive_failed_with_level( status, "rtems_event_send", 1 );
}

View File

@@ -36,7 +36,7 @@ rtems_task Test_task2(
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#define CONFIGURE_MAXIMUM_TASKS 2
#define CONFIGURE_MAXIMUM_TASKS 3
#if ( NODE_NUMBER == 1 )
#define CONFIGURE_MAXIMUM_SEMAPHORES 1
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 1

View File

@@ -29,5 +29,5 @@ rtems_timer_service_routine Delayed_send_event(
Task_id[ rtems_get_index( timer_id ) ],
RTEMS_EVENT_16
);
directive_failed( status, "rtems_event_send" );
fatal_directive_check_status_only( status, RTEMS_SUCCESSFUL, "rtems_event_send" );
}

View File

@@ -481,9 +481,12 @@ void Cause_faults()
assert( errno == EPERM );
/*
* Try to chdir to a file.
* Change file to executable then try to chdir to it.
*/
status = chmod( Files[0], S_IXUSR );
assert( status != -1 );
printf("chdir to a file should fail with ENOTDIR\n");
status = chdir( Files[0] );
assert( status == -1 );

View File

@@ -30,6 +30,7 @@ void task1(void);
#define CONFIGURE_MAXIMUM_TASKS 5
#define CONFIGURE_MAXIMUM_REGIONS 1
#define CONFIGURE_EXTRA_TASK_STACKS (RTEMS_MINIMUM_STACK_SIZE * 4)
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE

View File

@@ -62,15 +62,20 @@ extern "C" {
#define fatal_directive_status( _stat, _desired, _msg ) \
fatal_directive_status_with_level( _stat, _desired, _msg, 0 )
#define fatal_directive_status_with_level( _stat, _desired, _msg, _level ) \
#define fatal_directive_check_status_only( _stat, _desired, _msg ) \
do { \
check_dispatch_disable_level( _level ); \
if ( (_stat) != (_desired) ) { \
printf( "\n%s FAILED -- expected (%s) got (%s)\n", \
(_msg), rtems_status_text(_desired), rtems_status_text(_stat) ); \
fflush(stdout); \
exit( _stat ); \
} \
} while ( 0 )
#define fatal_directive_status_with_level( _stat, _desired, _msg, _level ) \
do { \
check_dispatch_disable_level( _level ); \
fatal_directive_check_status_only( _stat, _desired, _msg ); \
} while ( 0 )
/*

View File

@@ -34,6 +34,7 @@ volatile rtems_unsigned32 Interrupt_occurred;
volatile rtems_unsigned32 Interrupt_enter_time, Interrupt_enter_nested_time;
volatile rtems_unsigned32 Interrupt_return_time, Interrupt_return_nested_time;
rtems_unsigned32 Interrupt_nest;
rtems_unsigned32 timer_overhead;
rtems_isr Isr_handler(
rtems_vector_number vector
@@ -75,6 +76,11 @@ rtems_task Init(
status = rtems_task_start( Task_id[ 2 ], Task_2, 0 );
directive_failed( status, "rtems_task_start of Task_2" );
Timer_initialize();
Read_timer();
Timer_initialize();
timer_overhead = Read_timer();
status = rtems_task_delete( RTEMS_SELF );
directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
}
@@ -94,8 +100,9 @@ rtems_task Task_1(
_Thread_Dispatch_disable_level = 0;
Interrupt_occurred = 0;
Timer_initialize();
Cause_tm27_intr();
Cause_tm27_intr();
/* goes to Isr_handler */
#if (MUST_WAIT_FOR_INTERRUPT == 1)
@@ -108,7 +115,7 @@ rtems_task Task_1(
Interrupt_enter_time,
1,
0,
0
timer_overhead
);
put_time(
@@ -116,7 +123,7 @@ rtems_task Task_1(
Interrupt_return_time,
1,
0,
0
timer_overhead
);
/*
@@ -129,7 +136,7 @@ rtems_task Task_1(
Interrupt_occurred = 0;
Timer_initialize();
Cause_tm27_intr();
Cause_tm27_intr();
/* goes to Isr_handler */
#if (MUST_WAIT_FOR_INTERRUPT == 1)
@@ -165,7 +172,7 @@ rtems_task Task_1(
Interrupt_occurred = 0;
Timer_initialize();
Cause_tm27_intr();
Cause_tm27_intr();
/*
* goes to Isr_handler and then returns
@@ -197,7 +204,7 @@ rtems_task Task_2(
Interrupt_enter_time,
1,
0,
0
timer_overhead
);
put_time(
@@ -256,7 +263,7 @@ void Isr_handler_inner( void )
Interrupt_occurred = 0;
Lower_tm27_intr();
Timer_initialize();
Cause_tm27_intr();
Cause_tm27_intr();
/* goes to a nested copy of Isr_handler */
#if (MUST_WAIT_FOR_INTERRUPT == 1)
while ( Interrupt_occurred == 0 );

View File

@@ -1,2 +1,16 @@
Makefile
Makefile.in
aclocal.m4
autom4te.cache
config.*
configure
depcomp
index.html
install-sh
mdate-sh
missing
mkinstalldirs
rtems_footer.html
rtems_header.html
rtems_support.html
texinfo.tex

9
doc/Makefile.am Normal file
View File

@@ -0,0 +1,9 @@
##
## $Id$
##
## NOTE: This is just a stub.
##
AUTOMAKE_OPTIONS = foreign 1.4
include $(top_srcdir)/automake/host.am