Compare commits

..

1 Commits

Author SHA1 Message Date
cvs2git
14f1218480 This commit was manufactured by cvs2svn to create tag 'rtems-4-5-0'.
Sprout from rtems-4-5-branch 2000-07-24 17:58:24 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'changed version to 4.5.0'
Delete:
    automake/host.am
    automake/lib.am
    automake/local.am
    automake/subdirs.am
    c/src/lib/libbsp/mips/p4000/liblnk/.cvsignore
    c/src/librdbg/src/powerpc/new_exception_processing/.cvsignore
    doc/.cvsignore
2000-07-24 17:58:25 +00:00
204 changed files with 385 additions and 726 deletions

View File

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

View File

@@ -15,10 +15,6 @@ AC_ARG_WITH(target-subdir,
TARGET_SUBDIR="$withval",
TARGET_SUBDIR=".")
## HACK to allow gnu-make conditionals in automake-Makefiles.
ENDIF=endif
AC_SUBST(ENDIF)
RTEMS_TOPdir="$1";
AC_SUBST(RTEMS_TOPdir)

View File

@@ -1,28 +0,0 @@
## $Id$
## NOTE: This is a temporary work-around to keep
## RTEMS's non automake standard make targets working.
## Once automake is fully integrated these make targets
## and this file will probably be removed
debug:
@echo
@echo "\"make debug\" is obsolete, instead use:"
@echo " make VARIANT=DEBUG"
@echo
.PHONY: debug
profile:
@echo
@echo "\"make profile\" is obsolete, instead use:"
@echo " make VARIANT=PROFILE"
@echo
preinstall-am: $(PREINSTALL_FILES)
preinstall: preinstall-am
.PHONY: preinstall preinstall-am
depend-am:
depend: depend-am
.PHONY: depend depend-am

View File

@@ -1,9 +0,0 @@
include $(RTEMS_ROOT)/make/leaf.cfg
ifndef make-cxx-exe
define make-cxx-exe
$(LINK.cc) $(AM_CFLAGS) $(AM_LDFLAGS) \
$(LDLIBS) -o $@ \
$(LINK_OBJS) $(LINK_LIBS)
endef
@ENDIF@

View File

@@ -1,18 +0,0 @@
##
## $Id$
##
include $(RTEMS_ROOT)/make/leaf.cfg
define make-library
$(RM) $@
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
endef
$(PROJECT_RELEASE)/lib:
@$(mkinstalldirs) $@
TMPINSTALL_FILES = $(PROJECT_RELEASE)/lib
.PRECIOUS: $(LIB)

View File

@@ -1,80 +0,0 @@
## $Id$
## NOTE: This is a temporary work-around to keep
## RTEMS's non automake standard make targets working.
## Once automake is fully integrated these make targets
## and this file will probably be removed
## translate VARIANT into VARIANT_V
VARIANT = OPTIMIZE
VARIANT_OPTIMIZE_V = OPTIMIZE
VARIANT_DEBUG_V = DEBUG
VARIANT_PROFILE_V = PROFILE
VARIANT_optimize_V = OPTIMIZE
VARIANT_debug_V = DEBUG
VARIANT_profile_V = PROFILE
VARIANT_V = $(VARIANT_$(VARIANT)_V)
## Setup the variant build subdirectory
ARCH_OPTIMIZE_V = o-optimize
ARCH_DEBUG_V = o-debug
ARCH_PROFILE_V = o-profile
ARCH__V = $(ARCH_OPTIMIZE_V)
ARCH = $(ARCH_$(VARIANT_V)_V)
## Setup the library suffix
LIBSUFFIX_OPTIMIZE_V =
LIBSUFFIX_DEBUG_V = _g
LIBSUFFIX_PROFILE_V = _p
LIBSUFFIX__V = $(LIBSUFFIX_OPTIMIZE_V)
LIB_VARIANT = $(LIBSUFFIX_$(VARIANT_V)_V)
LIBSUFFIX_VA = $(LIB_VARIANT).a
## These are supposed to be set in make/custom/<bsp>.cfg
## CFLAGS_OPTIMIZE_V =
## CFLAGS_DEBUG_V =
## CFLAGS_PROFILE_V =
CFLAGS__V = $(CFLAGS_OPTIMIZE_V)
AM_CFLAGS += $(CFLAGS_$(VARIANT_V)_V)
debug:
@echo
@echo "\"make debug\" is obsolete, instead use:"
@echo " make VARIANT=DEBUG"
@echo
.PHONY: debug
profile:
@echo
@echo "\"make profile\" is obsolete, instead use:"
@echo " make VARIANT=PROFILE"
@echo
.PHONY: profile
preinstall-am: $(PREINSTALL_FILES)
preinstall: preinstall-am
.PHONY: preinstall preinstall-am
depend-am:
depend: depend-am
.PHONY: depend depend-am
${ARCH}:
mkdir ${ARCH}
clean-local:
$(RM) -r o-optimize o-debug o-profile $(CLEANDIRS)
$(RM) Depends-o-optimize.tmp Depends-o-debug.tmp Depends-o-profile.tmp
distclean-local:
$(RM) Depends-o-optimize Depends-o-debug Depends-o-profile
PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools

View File

@@ -1,36 +0,0 @@
## $Id$
## Borrowed from automake-1.4 and adapted to RTEMS
## NOTE: This is a temporary work-around to keep
## RTEMS's non automake standard make targets working.
## Once automake is fully integrated these make targets
## and this file will probably be removed
depend-recursive \
preinstall-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
## This trick allows "-k" to keep its natural meaning when running a
## recursive rule.
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
preinstall: preinstall-recursive
.PHONY: preinstall-recursive
depend: depend-recursive
.PHONY: depend-recursive

View File

@@ -29,7 +29,6 @@ ER snd_msg(
Objects_Locations location;
unsigned32 message_priority;
void *message_contents;
CORE_message_queue_Status msg_status;
if ( !pk_msg )
return E_PAR;
@@ -47,7 +46,7 @@ ER snd_msg(
message_priority = CORE_MESSAGE_QUEUE_SEND_REQUEST;
message_contents = pk_msg;
msg_status = _CORE_message_queue_Submit(
_CORE_message_queue_Submit(
&the_mailbox->message_queue,
&message_contents,
sizeof(T_MSG *),
@@ -61,6 +60,8 @@ ER snd_msg(
}
_ITRON_return_errorno(
_ITRON_Mailbox_Translate_core_message_queue_return_code( msg_status )
_ITRON_Mailbox_Translate_core_message_queue_return_code(
_Thread_Executing->Wait.return_code
)
);
}

View File

@@ -33,7 +33,6 @@ ER tsnd_mbf(
Objects_Locations location;
Watchdog_Interval interval;
boolean wait;
CORE_message_queue_Status msg_status;
if (msgsz <= 0 || !msg)
return E_PAR;
@@ -58,7 +57,7 @@ ER tsnd_mbf(
case OBJECTS_LOCAL:
/* XXX Submit needs to take into account blocking */
msg_status = _CORE_message_queue_Submit(
_CORE_message_queue_Submit(
&the_message_buffer->message_queue,
msg,
msgsz,
@@ -70,7 +69,7 @@ ER tsnd_mbf(
);
_Thread_Enable_dispatch();
return _ITRON_Message_buffer_Translate_core_message_buffer_return_code(
msg_status
_Thread_Executing->Wait.return_code
);
}

View File

@@ -36,11 +36,8 @@ int clock_getres(
case CLOCK_REALTIME:
case CLOCK_PROCESS_CPUTIME:
case CLOCK_THREAD_CPUTIME:
if ( res ) {
res->tv_sec = _TOD_Microseconds_per_tick / 1000000;
res->tv_nsec = _TOD_Microseconds_per_tick * 1000;
/* _POSIX_Interval_to_timespec( _TOD_Microseconds_per_tick, res ); */
}
if ( res )
_POSIX_Interval_to_timespec( _TOD_Microseconds_per_tick, res );
break;
default:

View File

@@ -44,7 +44,6 @@ int _POSIX_Message_queue_Send_support(
{
register POSIX_Message_queue_Control *the_mq;
Objects_Locations location;
CORE_message_queue_Status msg_status;
/*
* Validate the priority.
@@ -71,7 +70,7 @@ int _POSIX_Message_queue_Send_support(
set_errno_and_return_minus_one( EBADF );
}
msg_status = _CORE_message_queue_Submit(
_CORE_message_queue_Submit(
&the_mq->Message_queue,
(void *) msg_ptr,
msg_len,
@@ -87,23 +86,12 @@ int _POSIX_Message_queue_Send_support(
);
_Thread_Enable_dispatch();
/*
* If we had to block, then this is where the task returns
* after it wakes up. The returned status is correct for
* non-blocking operations but if we blocked, then we need
* to look at the status in our TCB.
*/
if ( msg_status == CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT )
msg_status = _Thread_Executing->Wait.return_code;
if ( !msg_status )
return msg_status;
if ( !_Thread_Executing->Wait.return_code )
return 0;
set_errno_and_return_minus_one(
_POSIX_Message_queue_Translate_core_message_queue_return_code(
msg_status
_Thread_Executing->Wait.return_code
)
);
}

View File

@@ -205,7 +205,7 @@ RTEMS_INLINE_ROUTINE boolean _Attributes_Is_system_task(
rtems_attribute attribute_set
)
{
return ( attribute_set & RTEMS_SYSTEM_TASK );
return ( attribute_set & RTEMS_PRIORITY_CEILING );
}
#endif

View File

@@ -65,7 +65,6 @@ void _Event_Surrender(
api->pending_events =
_Event_sets_Clear( pending_events, seized_events );
*(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
(rtems_event_set) the_thread->Wait.count = 0; /* FIX 26MAR01 */
_ISR_Flash( level );

View File

@@ -61,7 +61,6 @@ rtems_status_code _Message_queue_Submit(
{
register Message_queue_Control *the_message_queue;
Objects_Locations location;
CORE_message_queue_Status msg_status;
the_message_queue = _Message_queue_Get( id, &location );
switch ( location )
@@ -98,7 +97,7 @@ rtems_status_code _Message_queue_Submit(
case OBJECTS_LOCAL:
switch ( submit_type ) {
case MESSAGE_QUEUE_SEND_REQUEST:
msg_status = _CORE_message_queue_Send(
_CORE_message_queue_Send(
&the_message_queue->message_queue,
buffer,
size,
@@ -113,7 +112,7 @@ rtems_status_code _Message_queue_Submit(
);
break;
case MESSAGE_QUEUE_URGENT_REQUEST:
msg_status = _CORE_message_queue_Urgent(
_CORE_message_queue_Urgent(
&the_message_queue->message_queue,
buffer,
size,
@@ -132,13 +131,9 @@ rtems_status_code _Message_queue_Submit(
}
_Thread_Enable_dispatch();
/*
* Since this API does not allow for blocking sends, we can directly
* return the returned msg_status.
*/
return
_Message_queue_Translate_core_message_queue_return_code( msg_status );
return _Message_queue_Translate_core_message_queue_return_code(
_Thread_Executing->Wait.return_code
);
}
return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */

View File

@@ -3,7 +3,7 @@
* This file contains all assembly code for the MC68020 implementation
* of RTEMS.
*
* COPYRIGHT (c) 1989-2001.
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -68,7 +68,7 @@ SYM (_CPU_Context_save_fp):
moval a1@,a0 | a0 = Save context area
fsave a0@- | save 68881/68882 state frame
tstb a0@ | check for a null frame
beq.b nosv | Yes, skip save of user model
beq nosv | Yes, skip save of user model
fmovem fp0-fp7,a0@- | save data registers (fp0-fp7)
fmovem fpc/fps/fpi,a0@- | and save control registers
movl #-1,a0@- | place not-null flag on stack
@@ -83,7 +83,7 @@ SYM (_CPU_Context_restore_fp):
moval a7@(FPCONTEXT_ARG),a1 | a1 = &ptr to context area
moval a1@,a0 | a0 = address of saved context
tstb a0@ | Null context frame?
beq.b norst | Yes, skip fp restore
beq norst | Yes, skip fp restore
addql #4,a0 | throwaway non-null flag
fmovem a0@+,fpc/fps/fpi | restore control registers
fmovem a0@+,fp0-fp7 | restore data regs (fp0-fp7)
@@ -101,12 +101,24 @@ norst: frestore a0@+ | restore the fp state frame
* NOTE:
* Upon entry, the master stack will contain an interrupt stack frame
* back to the interrupted thread and the interrupt stack will contain
* a throwaway interrupt stack frame. If dispatching is enabled, and this
* is the outer most interrupt, and a context switch is necessary or
* the current thread has pending signals, then set up the master stack to
* a throwaway interrupt stack frame. If dispatching is enabled, this
* is the outer most interrupt, and (a context switch is necessary or
* the current thread has signals), then set up the master stack to
* transfer control to the interrupt dispatcher.
*/
/*
* With this approach, lower priority interrupts may
* execute twice if a higher priority interrupt is
* acknowledged before _Thread_Dispatch_disable is
* incremented and the higher priority interrupt
* performs a context switch after executing. The lower
* priority interrupt will execute (1) at the end of the
* higher priority interrupt in the new context if
* permitted by the new interrupt level mask, and (2) when
* the original context regains the cpu.
*/
#if ( M68K_COLDFIRE_ARCH == 1 )
.set SR_OFFSET, 2 | Status register offset
.set PC_OFFSET, 4 | Program Counter offset
@@ -130,31 +142,45 @@ SYM (_ISR_Handler):
addql #1,SYM (_Thread_Dispatch_disable_level) | disable multitasking
#if ( M68K_COLDFIRE_ARCH == 0 )
moveml d0-d1/a0-a1,a7@- | save d0-d1,a0-a1
movew a7@(SAVED+FVO_OFFSET),d0 | d0 = F/VO
andl #0x0fff,d0 | d0 = vector offset in vbr
#else
lea a7@(-SAVED),a7
movm.l d0-d1/a0-a1,a7@ | save d0-d1,a0-a1
#endif
movew a7@(SAVED+FVO_OFFSET),d0 | d0 = F/VO
andl #0x0ffc,d0 | d0 = vector offset in vbr
#endif
#if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == 1 )
movel _CPU_Interrupt_stack_high,a0 | a0 now point just above interrupt stack
cmpl _CPU_Interrupt_stack_low,a7 | stack below interrupt stack?
bcs.b 1f | yes, switch to interrupt stack
cmpl a0,a7 | stack above interrupt stack?
bcs.b 2f | no, do not switch stacks
#if ( M68K_COLDFIRE_ARCH == 0 )
movew sr,d1 | Save status register
oriw #0x700,sr | Disable interrupts
#else
move.l d0,a7@- | Save d0 value
move.l #0x700,d0 | Load in disable ints value
move.w sr,d1 | Grab SR
or.l d1,d0 | Create new SR
move.w d0,sr | Disable interrupts
move.l a7@+,d0 | Restore d0 value
#endif
tstl SYM (_ISR_Nest_level) | Interrupting an interrupt handler?
bne 1f | Yes, just skip over stack switch code
movel SYM(_CPU_Interrupt_stack_high),a0 | End of interrupt stack
movel a7,a0@- | Save task stack pointer
movel a0,a7 | Switch to interrupt stack
1:
movel a7,a1 | copy task stack pointer
movel a0,a7 | switch to interrupt stack
movel a1,a7@- | store task stack pointer on interrupt stack
2:
addql #1,SYM(_ISR_Nest_level) | one nest level deeper
movew d1,sr | Restore status register
#else
addql #1,SYM (_ISR_Nest_level) | one nest level deeper
#endif /* CPU_HAS_SOFTWARE_INTERRUPT_STACK == 1 */
#if ( M68K_HAS_PREINDEXING == 1 )
movel @( SYM (_ISR_Vector_table),d0:w:1),a0| fetch the ISR
#else
movel # SYM (_ISR_Vector_table),a0 | a0 = base of RTEMS table
movel # SYM (_ISR_Vector_table),a0 | a0 = base of RTEMS table
addal d0,a0 | a0 = address of vector
movel (a0),a0 | a0 = address of user routine
#endif
@@ -165,44 +191,45 @@ SYM (_ISR_Handler):
addql #4,a7 | remove vector number
#if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == 1 )
movel _CPU_Interrupt_stack_high,a0
subql #4,a0
cmpl a0,a7 | At top of interrupt stack?
bne.b 1f | No, do not restore task stack pointer
#if ( M68K_COLDFIRE_ARCH == 0 )
movew sr,d0 | Save status register
oriw #0x700,sr | Disable interrupts
#else
move.l #0x700,d1 | Load in disable int value
move.w sr,d0 | Grab SR
or.l d0,d1 | Create new SR
move.w d1,sr | Load to disable interrupts
#endif
subql #1,SYM(_ISR_Nest_level) | Reduce interrupt-nesting count
bne 1f | Skip if return to interrupt
movel (a7),a7 | Restore task stack pointer
1:
movew d0,sr | Restore status register
#else
subql #1,SYM (_ISR_Nest_level) | one less nest level
#endif /* CPU_HAS_SOFTWARE_INTERRUPT_STACK == 1 */
subql #1,SYM (_Thread_Dispatch_disable_level)
| unnest multitasking
bne.b exit | If dispatch disabled, exit
bne exit | If dispatch disabled, exit
#if ( M68K_HAS_SEPARATE_STACKS == 1 )
movew #0xf000,d0 | isolate format nibble
andw a7@(SAVED+FVO_OFFSET),d0 | get F/VO
cmpiw #0x1000,d0 | is it a throwaway isf?
bne.b exit | NOT outer level, so branch
#else
/*
* If we have a CPU which allows a higher-priority interrupt to preempt a
* lower priority handler before the lower-priority handler can increment
* _Thread_Dispatch_disable_level then we must check the PC on the stack to
* see if it is _ISR_Handler. If it is we have the case of nesting interrupts
* without the dispatch level being incremented.
*/
#if ( M68K_COLDFIRE_ARCH == 0 && M68K_MC68060_ARCH == 0 )
cmpl #_ISR_Handler,a7@(SAVED+PC_OFFSET)
beq.b exit
#endif
bne exit | NOT outer level, so branch
#endif
tstl SYM (_Context_Switch_necessary)
| Is thread switch necessary?
bne.b bframe | Yes, invoke dispatcher
bne bframe | Yes, invoke dispatcher
tstl SYM (_ISR_Signals_to_thread_executing)
| signals sent to Run_thread
| while in interrupt handler?
beq.b exit | No, then exit
beq exit | No, then exit
bframe: clrl SYM (_ISR_Signals_to_thread_executing)
| If sent, will be processed

View File

@@ -52,8 +52,8 @@ SYM(_CPU_Context_save_fp):
or %l1, %lo(SPARC_PSR_EF_MASK), %l1
or %l0, %l1, %l0
mov %l0, %psr ! **** ENABLE FLOAT ACCESS ****
nop; nop; nop; ! Need three nops before EF is
ld [%i0], %l0 ! active due to pipeline delay!!!
ld [%i0], %l0
std %f0, [%l0 + FO_F1_OFFSET]
std %f2, [%l0 + F2_F3_OFFSET]
std %f4, [%l0 + F4_F5_OFFSET]
@@ -101,8 +101,8 @@ SYM(_CPU_Context_restore_fp):
or %l1, %lo(SPARC_PSR_EF_MASK), %l1
or %l0, %l1, %l0
mov %l0, %psr ! **** ENABLE FLOAT ACCESS ****
nop; nop; nop; ! Need three nops before EF is
ld [%i0], %l0 ! active due to pipeline delay!!!
ld [%i0], %l0
ldd [%l0 + FO_F1_OFFSET], %f0
ldd [%l0 + F2_F3_OFFSET], %f2
ldd [%l0 + F4_F5_OFFSET], %f4

View File

@@ -5,6 +5,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(RTEMS_ROOT)/make/leaf.cfg
# We only build multiprocessing related files if HAS_MP was defined
MP_H_FILES = mpci.h mppkt.h objectmp.h threadmp.h

View File

@@ -95,8 +95,7 @@ typedef enum {
CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED,
CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT,
CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED,
CORE_MESSAGE_QUEUE_STATUS_TIMEOUT,
CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT
CORE_MESSAGE_QUEUE_STATUS_TIMEOUT
} CORE_message_queue_Status;
/*
@@ -240,7 +239,7 @@ CORE_message_queue_Status _CORE_message_queue_Broadcast(
*
*/
CORE_message_queue_Status _CORE_message_queue_Submit(
void _CORE_message_queue_Submit(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,

View File

@@ -27,7 +27,7 @@
* This routine sends a message to the end of the specified message queue.
*/
RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Send(
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Send(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
@@ -37,7 +37,7 @@ RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Send(
Watchdog_Interval timeout
)
{
return _CORE_message_queue_Submit(
_CORE_message_queue_Submit(
the_message_queue,
buffer,
size,
@@ -62,7 +62,7 @@ RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Send(
* This routine sends a message to the front of the specified message queue.
*/
RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Urgent(
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Urgent(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
@@ -72,7 +72,7 @@ RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Urgent(
Watchdog_Interval timeout
)
{
return _CORE_message_queue_Submit(
_CORE_message_queue_Submit(
the_message_queue,
buffer,
size,

View File

@@ -53,7 +53,7 @@
* error code - if unsuccessful
*/
CORE_message_queue_Status _CORE_message_queue_Submit(
void _CORE_message_queue_Submit(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
@@ -67,9 +67,14 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
ISR_Level level;
CORE_message_queue_Buffer_control *the_message;
Thread_Control *the_thread;
Thread_Control *executing;
_Thread_Executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;
if ( size > the_message_queue->maximum_message_size ) {
return CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE;
_Thread_Executing->Wait.return_code =
CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE;
return;
}
/*
@@ -91,7 +96,7 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
if ( !_Objects_Is_local_id( the_thread->Object.id ) )
(*api_message_queue_mp_support) ( the_thread, id );
#endif
return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;
return;
}
}
@@ -109,9 +114,10 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
/*
* NOTE: If the system is consistent, this error should never occur.
*/
if ( !the_message ) {
return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;
_Thread_Executing->Wait.return_code =
CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;
return;
}
_CORE_message_queue_Copy_buffer(
@@ -127,7 +133,7 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
the_message,
submit_type
);
return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;
return;
}
/*
@@ -137,39 +143,20 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
*/
if ( !wait ) {
return CORE_MESSAGE_QUEUE_STATUS_TOO_MANY;
_Thread_Executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_TOO_MANY;
return;
}
/*
* Do NOT block on a send if the caller is in an ISR. It is
* deadly to block in an ISR.
*/
executing = _Thread_Executing;
if ( _ISR_Is_in_progress() ) {
return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;
}
_ISR_Disable( level );
_Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
executing->Wait.queue = &the_message_queue->Wait_queue;
executing->Wait.id = id;
executing->Wait.return_argument = (void *)buffer;
executing->Wait.return_argument_1 = (void *)size;
executing->Wait.count = submit_type;
_ISR_Enable( level );
/*
* WARNING!! executing should NOT be used prior to this point.
* Thus the unusual choice to open a new scope and declare
* it as a variable. Doing this emphasizes how dangerous it
* would be to use this variable prior to here.
*/
{
Thread_Control *executing = _Thread_Executing;
_ISR_Disable( level );
_Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
executing->Wait.queue = &the_message_queue->Wait_queue;
executing->Wait.id = id;
executing->Wait.return_argument = (void *)buffer;
executing->Wait.return_argument_1 = (void *)size;
executing->Wait.count = submit_type;
_ISR_Enable( level );
_Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
}
return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;
_Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
}

View File

@@ -72,9 +72,7 @@ void _CORE_mutex_Initialize(
the_mutex->nest_count = 1;
the_mutex->holder = _Thread_Executing;
the_mutex->holder_id = _Thread_Executing->Object.id;
if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||
_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) )
_Thread_Executing->resource_count++;
_Thread_Executing->resource_count++;
} else {
the_mutex->nest_count = 0;
the_mutex->holder = NULL;

View File

@@ -53,11 +53,17 @@ void _CORE_mutex_Seize(
ISR_Level level;
executing = _Thread_Executing;
if ( _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
if ( executing->current_priority < the_mutex->Attributes.priority_ceiling) {
executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
return;
}
switch ( the_mutex->Attributes.discipline ) {
case CORE_MUTEX_DISCIPLINES_FIFO:
case CORE_MUTEX_DISCIPLINES_PRIORITY:
case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:
break;
case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:
if ( executing->current_priority <
the_mutex->Attributes.priority_ceiling) {
executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
return;
}
}
executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;
_ISR_Disable( level );
@@ -66,17 +72,17 @@ void _CORE_mutex_Seize(
the_mutex->holder = executing;
the_mutex->holder_id = executing->Object.id;
the_mutex->nest_count = 1;
if ( _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ||
_CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) )
executing->resource_count++;
executing->resource_count++;
_ISR_Enable( level );
/*
* if CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT then nothing to do
* because this task is already the highest priority.
*/
if ( _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
if (the_mutex->Attributes.priority_ceiling < executing->current_priority){
switch ( the_mutex->Attributes.discipline ) {
case CORE_MUTEX_DISCIPLINES_FIFO:
case CORE_MUTEX_DISCIPLINES_PRIORITY:
case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:
/* already the highest priority */
break;
case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:
if ( the_mutex->Attributes.priority_ceiling <
executing->current_priority ) {
_Thread_Change_priority(
the_mutex->holder,
the_mutex->Attributes.priority_ceiling,
@@ -114,27 +120,40 @@ void _CORE_mutex_Seize(
executing->Wait.id = id;
_ISR_Enable( level );
if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ) {
if ( the_mutex->holder->current_priority > executing->current_priority ) {
_Thread_Change_priority(
the_mutex->holder,
executing->current_priority,
FALSE
);
}
switch ( the_mutex->Attributes.discipline ) {
case CORE_MUTEX_DISCIPLINES_FIFO:
case CORE_MUTEX_DISCIPLINES_PRIORITY:
case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:
break;
case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:
if ( the_mutex->holder->current_priority > executing->current_priority ) {
_Thread_Change_priority(
the_mutex->holder,
executing->current_priority,
FALSE
);
}
break;
}
_Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout );
if ( _Thread_Executing->Wait.return_code == CORE_MUTEX_STATUS_SUCCESSFUL ) {
if ( _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
if (the_mutex->Attributes.priority_ceiling < executing->current_priority){
_Thread_Change_priority(
executing,
the_mutex->Attributes.priority_ceiling,
FALSE
);
}
switch ( the_mutex->Attributes.discipline ) {
case CORE_MUTEX_DISCIPLINES_FIFO:
case CORE_MUTEX_DISCIPLINES_PRIORITY:
case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:
break;
case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:
if ( the_mutex->Attributes.priority_ceiling <
executing->current_priority ) {
_Thread_Change_priority(
executing,
the_mutex->Attributes.priority_ceiling,
FALSE
);
};
break;
}
}
}

View File

@@ -86,9 +86,7 @@ CORE_mutex_Status _CORE_mutex_Surrender(
}
}
if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||
_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) )
holder->resource_count--;
_Thread_Executing->resource_count--;
the_mutex->holder = NULL;
the_mutex->holder_id = 0;
@@ -98,14 +96,20 @@ CORE_mutex_Status _CORE_mutex_Surrender(
* mutex (i.e. resource) this task has.
*/
if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||
_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
if ( holder->resource_count == 0 &&
holder->real_priority != holder->current_priority ) {
_Thread_Change_priority( holder, holder->real_priority, TRUE );
}
switch ( the_mutex->Attributes.discipline ) {
case CORE_MUTEX_DISCIPLINES_FIFO:
case CORE_MUTEX_DISCIPLINES_PRIORITY:
break;
case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:
case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:
if ( holder->resource_count == 0 &&
holder->real_priority != holder->current_priority ) {
_Thread_Change_priority( holder, holder->real_priority, TRUE );
}
break;
}
if ( ( the_thread = _Thread_queue_Dequeue( &the_mutex->Wait_queue ) ) ) {
#if defined(RTEMS_MULTIPROCESSING)

View File

@@ -43,15 +43,7 @@ void *_Heap_Allocate(
Heap_Block *temporary_block;
void *ptr;
unsigned32 offset;
/*
* Catch the case of a user allocating close to the limit of the
* unsigned32.
*/
if ( size >= (-1 - HEAP_BLOCK_USED_OVERHEAD) )
return( NULL );
excess = size % the_heap->page_size;
the_size = size + the_heap->page_size + HEAP_BLOCK_USED_OVERHEAD;

View File

@@ -67,6 +67,7 @@ Objects_Control *_Objects_Get_by_index(
* With just an index, you can't access a remote object.
*/
_Thread_Enable_dispatch();
*location = OBJECTS_ERROR;
return NULL;
}

View File

@@ -112,7 +112,7 @@ SECTIONS
*(.dtors)
LONG(0)
__DTOR_END__ = .;
_rodata_start = . ;
_rodata_start 5 . ;
*(.rodata)
*(.gnu.linkonce.r*)
_erodata = ALIGN( 0x10 ) ;

View File

@@ -8,15 +8,14 @@
%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
*lib:
%{!qrtems: %(old_lib)} %{qrtems: --start-group \
%{!qrtems_debug: -lrtemsall} %{qrtems_debug: -lrtemsall_g} \
-lc -lgcc --end-group \
%{!qnolinkcmds: -T linkcmds%s}}
%{!qrtems: %(old_lib)} \
%{qrtems: --start-group -lc \
%{!qrtems_debug: -lrtemsall } %{qrtems_debug: -lrtemsall_g} \
-lgcc --end-group}
*startfile:
%{!qrtems: %(old_startfile)} %{qrtems: \
%{!qrtems_debug: } \
%{qrtems_debug: }}
%{!qrtems: %(old_startfile)} \
%{qrtems: %{qrtems_debug: start_g.o%s} %{!qrtems_debug: start.o%s}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}

View File

@@ -1,2 +0,0 @@
Makefile
Makefile.in

View File

@@ -25,9 +25,7 @@ $(PGM): $(OBJS)
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
if HAS_NETWORKING
all-local: $(ARCH) $(OBJS) $(PGM)
endif
.PRECIOUS: $(PGM)

View File

@@ -12,7 +12,7 @@ C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o)
OBJS = $(C_O_FILES)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../../../automake/lib.am
anclude $(top_srcdir)/../../../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=

View File

@@ -64,8 +64,8 @@ SECTIONS
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} >RAM
.init : { __init = .; *(.init) } >RAM
.fini : { __fini = .; *(.fini) } >RAM
.init : { *(.init) } >RAM
.fini : { *(.fini) } >RAM
.rodata : { *(.rodata) *(.gnu.linkonce.r*) } >RAM
.rodata1 : { *(.rodata1) } >RAM
PROVIDE (_etext = .);

View File

@@ -78,16 +78,17 @@ __rtems_entry_point:
isync
/*
* we now have the 1st 64M of ram mapped with the bats. We are still
* running on the bootloader stack and cannot switch to an RTEMS allocated
* init stack before copying the residual data that may have been set just after
* rtems_end address. This bug has been experienced on MVME2304. Thank to
* Till Straumann <strauman@SLAC.Stanford.EDU> for hunting it and suggesting
* the appropriate code.
* we now have the 1st 64M of ram mapped with the bats.
*/
enter_C_code:
bl MMUon
/*
* stack = &__rtems_end + 4096
*/
addis r9,r0, __rtems_end+(4096-CPU_MINIMUM_STACK_FRAME_SIZE)@ha
addi r9,r9, __rtems_end+(4096-CPU_MINIMUM_STACK_FRAME_SIZE)@l
mr r1, r9
bl zero_bss
/*
* restore prep boot params
@@ -98,15 +99,6 @@ enter_C_code:
mr r6,r28
mr r7,r27
bl save_boot_params
/*
* stack = &__rtems_end + 4096
*/
addis r9,r0, __rtems_end+(4096-CPU_MINIMUM_STACK_FRAME_SIZE)@ha
addi r9,r9, __rtems_end+(4096-CPU_MINIMUM_STACK_FRAME_SIZE)@l
mr r1, r9
/*
* We are know in a environment that is totally independent from bootloader setup.
*/
bl boot_card
bl _return_to_ppcbug

View File

@@ -131,7 +131,7 @@ do
TEST_TYPE="single"
case $tname in
monitor*)
monitor)
if [ $run_to_completion = "yes" ]
then
warn "Skipping $tname; it is interactive"

View File

@@ -33,11 +33,6 @@ int chmod(
if ( status != 0 )
return -1;
if ( !loc.handlers ){
rtems_filesystem_freenode( &loc );
set_errno_and_return_minus_one( EBADF );
}
if ( !loc.handlers->fchmod ){
rtems_filesystem_freenode( &loc );
set_errno_and_return_minus_one( ENOTSUP );

View File

@@ -43,9 +43,6 @@ int rtems_filesystem_evaluate_path(
rtems_filesystem_get_start_loc( pathname, &i, pathloc );
if ( !pathloc->ops->evalpath )
set_errno_and_return_minus_one( ENOTSUP );
result = (*pathloc->ops->evalpath)( &pathname[i], flags, pathloc );
/*

View File

@@ -131,16 +131,10 @@ int fcntl(
ret = -1;
break;
}
if (ret >= 0) {
if (iop->handlers->fcntl) {
int err = (*iop->handlers->fcntl)( cmd, iop );
if (err) {
errno = err;
ret = -1;
}
}
else {
errno = ENOTSUP;
if ((ret >= 0) && iop->handlers->fcntl) {
int err = (*iop->handlers->fcntl)( cmd, iop );
if (err) {
errno = err;
ret = -1;
}
}

View File

@@ -30,9 +30,6 @@ int fsync(
* Now process the fsync().
*/
if ( !iop->handlers )
set_errno_and_return_minus_one( EBADF );
if ( !iop->handlers->fsync )
set_errno_and_return_minus_one( ENOTSUP );

View File

@@ -74,7 +74,7 @@ getcwd (pt, size)
size_t size;
{
register struct dirent *dp;
register DIR *dir = 0;
register DIR *dir;
register dev_t dev;
register ino_t ino;
register int first;
@@ -254,7 +254,6 @@ getcwd (pt, size)
bpt -= strlen (dp->d_name);
bcopy (dp->d_name, bpt, strlen (dp->d_name));
(void) _closedir (dir);
dir = 0;
/* Truncate any file name. */
*bup = '\0';
@@ -272,8 +271,6 @@ notfound:
/* FALLTHROUGH */
err:
if(dir)
(void) _closedir (dir);
if (ptsize)
free (pt);
free (up);

View File

@@ -18,7 +18,7 @@
#include "imfs.h"
static char dotname[2] = ".";
static char dotdotname[3] = "..";
static char dotdotname[2] = "..";
IMFS_jnode_t *IMFS_find_match_in_dir(
IMFS_jnode_t *directory,

View File

@@ -33,9 +33,6 @@ int ioctl(
* Now process the ioctl().
*/
if ( !iop->handlers )
set_errno_and_return_minus_one( EBADF );
if ( !iop->handlers->ioctl )
set_errno_and_return_minus_one( ENOTSUP );

View File

@@ -80,11 +80,6 @@ rtems_status_code rtems_io_lookup_name(
result = rtems_filesystem_evaluate_path( name, 0x00, &loc, TRUE );
the_jnode = loc.node_access;
if ( !loc.ops->node_type ) {
rtems_filesystem_freenode( &loc );
set_errno_and_return_minus_one( ENOTSUP );
}
node_type = (*loc.ops->node_type)( &loc );
if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {

View File

@@ -473,16 +473,10 @@ typedef int (*rtems_libio_lseek_t)(
#define rtems_filesystem_make_dev_t( _major, _minor ) \
((((dev_t)(_major)) << 32) | (dev_t)(_minor))
#define rtems_filesystem_dev_major_t( _dev ) \
(rtems_device_major_number) ((_dev) >> 32)
#define rtems_filesystem_dev_minor_t( _dev ) \
(rtems_device_minor_number) ((_dev) & 0xFFFFFFFF)
#define rtems_filesystem_split_dev_t( _dev, _major, _minor ) \
do { \
(_major) = rtems_filesystem_dev_major_t ( _dev ); \
(_minor) = rtems_filesystem_dev_minor_t( _dev ); \
(_major) = (rtems_device_major_number) ((_dev) >> 32); \
(_minor) = (rtems_device_minor_number) ((_dev) & 0xFFFFFFFF); \
} while(0)
/*

View File

@@ -32,13 +32,6 @@ struct socket *rtems_bsdnet_fdToSocket(
return NULL;
}
iop = &rtems_libio_iops[fd];
/* same as rtems_libio_check_is_open(iop) but different return */
if ((iop->flags & LIBIO_FLAGS_OPEN) == 0) {
errno = EBADF;
return NULL;
}
if (iop->data1 == NULL)
errno = EBADF;
return iop->data1;

View File

@@ -41,16 +41,8 @@ int link(
*/
rtems_filesystem_get_start_loc( new, &i, &parent_loc );
if ( !parent_loc.ops->evalformake ) {
rtems_filesystem_freenode( &existing_loc );
rtems_filesystem_freenode( &parent_loc );
set_errno_and_return_minus_one( ENOTSUP );
}
result = (*parent_loc.ops->evalformake)( &new[i], &parent_loc, &name_start );
if ( result != 0 ) {
rtems_filesystem_freenode( &existing_loc );
rtems_filesystem_freenode( &parent_loc );
set_errno_and_return_minus_one( result );
}

View File

@@ -11,10 +11,6 @@
* $Id$
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include "libio_.h"
@@ -26,25 +22,15 @@ off_t lseek(
)
{
rtems_libio_t *iop;
off_t old_offset;
off_t status;
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
/*
* Check as many errors as possible before touching iop->offset.
*/
if ( !iop->handlers->lseek )
set_errno_and_return_minus_one( ENOTSUP );
/*
* Now process the lseek().
*/
old_offset = iop->offset;
switch ( whence ) {
case SEEK_SET:
iop->offset = offset;
@@ -55,27 +41,18 @@ off_t lseek(
break;
case SEEK_END:
iop->offset = iop->size + offset;
iop->offset = iop->size - offset;
break;
default:
set_errno_and_return_minus_one( EINVAL );
errno = EINVAL;
return -1;
}
/*
* At this time, handlers assume iop->offset has the desired
* new offset.
*/
if ( !iop->handlers->lseek )
set_errno_and_return_minus_one( ENOTSUP );
status = (*iop->handlers->lseek)( iop, offset, whence );
if ( status == (off_t) -1 )
iop->offset = old_offset;
/*
* So if the operation failed, we have to restore iop->offset.
*/
return status;
return (*iop->handlers->lseek)( iop, offset, whence );
}
/*

View File

@@ -112,9 +112,6 @@ int memfile_close(
the_jnode = iop->file_info;
if (iop->flags & LIBIO_FLAGS_APPEND)
iop->offset = the_jnode->info.file.size;
return 0;
}
@@ -343,6 +340,7 @@ MEMFILE_STATIC int IMFS_memfile_addblock(
#endif
memory = memfile_alloc_block();
assert( memory );
if ( !memory )
return 1;
*block_entry_ptr = memory;
@@ -499,8 +497,6 @@ int IMFS_memfile_remove(
if ( info->triply_indirect ) {
for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {
p = (block_p *) info->triply_indirect[i];
if (!p) /* ensure we have a valid pointer */
break;
for ( j=0 ; j<IMFS_MEMFILE_BLOCK_SLOTS ; j++ ) {
if ( p[j] ) {
memfile_free_blocks_in_table( (block_p **)&p[j], to_free);

View File

@@ -43,11 +43,6 @@ int mknod(
rtems_filesystem_get_start_loc( pathname, &i, &temp_loc );
if ( !temp_loc.ops->evalformake ) {
rtems_filesystem_freenode( &temp_loc );
set_errno_and_return_minus_one( ENOTSUP );
}
result = (*temp_loc.ops->evalformake)(
&pathname[i],
&temp_loc,

View File

@@ -95,7 +95,6 @@ int mount(
rtems_filesystem_location_info_t loc;
rtems_filesystem_mount_table_entry_t *temp_mt_entry;
rtems_filesystem_location_info_t *loc_to_free = NULL;
size_t size;
/* XXX add code to check for required operations */
@@ -122,10 +121,7 @@ int mount(
* Allocate a mount table entry
*/
size = sizeof(rtems_filesystem_mount_table_entry_t);
if ( device )
size += strlen( device ) + 1;
temp_mt_entry = malloc( size );
temp_mt_entry = malloc( sizeof(rtems_filesystem_mount_table_entry_t) );
if ( !temp_mt_entry ) {
errno = ENOMEM;
@@ -134,11 +130,9 @@ int mount(
temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry;
temp_mt_entry->options = options;
if ( device ) {
temp_mt_entry->dev =
(char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t );
if ( device )
strcpy( temp_mt_entry->dev, device );
} else
else
temp_mt_entry->dev = 0;
/*

View File

@@ -112,7 +112,7 @@ scandir(dirname, namelist, select, dcomp)
p->d_ino = d->d_ino;
p->d_reclen = d->d_reclen;
p->d_namlen = d->d_namlen;
strncpy(p->d_name, d->d_name, p->d_namlen + 1);
strncpy(d->d_name, p->d_name, p->d_namlen + 1);
/*
* Check to make sure the array has space left and
* realloc the maximum size.

View File

@@ -28,11 +28,6 @@ int symlink(
if ( result != 0 )
return -1;
if ( !loc.ops->symlink ) {
rtems_filesystem_freenode( &loc );
set_errno_and_return_minus_one( ENOTSUP );
}
result = (*loc.ops->symlink)( &loc, actualpath, name_start);
rtems_filesystem_freenode( &loc );

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

@@ -1,45 +0,0 @@
/* clock.s
*
* This file contains the assembly code for the IDT 4650 clock driver.
*
* Author: Craig Lebakken <craigl@transition.com>
*
* COPYRIGHT (c) 1996 by Transition Networks Inc.
*
* To anyone who acknowledges that this file is provided "AS IS"
* without any express or implied warranty:
* permission to use, copy, modify, and distribute this file
* for any purpose is hereby granted without fee, provided that
* the above copyright notice and this notice appears in all
* copies, and that the name of Transition Networks not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
* Transition Networks makes no representations about the suitability
* of this software for any purpose.
*
* $Id$
*/
/* @(#)clock.S 08/20/96 1.2 */
#include <iregdef.h>
#include <idtcpu.h>
#include <idtmon.h>
FRAME(mips_set_timer,sp,0,ra)
.set noreorder
mfc0 t0,C0_COUNT
nop
addu t0,a0,t0
mtc0 t0,C0_COMPARE
nop
j ra
.set reorder
ENDFRAME(mips_set_timer)
FRAME(mips_get_timer,sp,0,ra)
.set noreorder
mfc0 v0,C0_COUNT
nop
j ra
.set reorder
ENDFRAME(mips_get_timer)

View File

@@ -4,7 +4,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
H_FILES = null.h sci.h sh7_pfc.h sh7_sci.h
H_FILES = io_types.h null.h sci.h sh7_pfc.h sh7_sci.h
# NOTE: Unlike other CPUS, we install into a subdirectory to avoid
# file name conflicts

View File

@@ -728,7 +728,7 @@ ipxcp_rejci(f, p, len)
#define REJCINODE(opt,neg,val) REJCICHARS(opt,neg,val,sizeof(val))
#define REJCINAME(opt,neg,val) REJCICHARS(opt,neg,val,strlen(val))
#define REJCIVOID(opt, neg) \
#define REJCIVOID(gpt, neg! \
if (neg && p[0] == opt) { \
if ((len -= CILEN_VOID) < 0) \
break; \

View File

@@ -1,2 +0,0 @@
Makefile
Makefile.in

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -24,7 +24,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/itrontests.am
#

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -26,7 +26,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -25,18 +25,18 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#
# (OPTIONAL) Add local stuff here using +=
#
if HAS_CXX
LD_LIBS += -lrtems++
LD_LIBS += $(CPLUS_LD_LIBS)
if HAS_CXX
${PGM}: $(OBJS) $(LINK_FILES)
$(make-cxx-exe)
$(make-exe)
all-local: $(ARCH) $(TMPINSTALL_FILES)
else

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/libtests.am
#

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -26,7 +26,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -27,7 +27,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -27,7 +27,7 @@ OBJS = $(C_O_FILES)
PRINT_SRCS = $(DOCS)
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/mptests.am
if HAS_MP

View File

@@ -25,7 +25,7 @@ PRINT_SRCS = $(DOCS)
PGM = ${ARCH}/$(TEST).exe
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../automake/leaf.am
include $(RTEMS_ROOT)/make/leaf.cfg
include $(top_srcdir)/psxtests.am
#

Some files were not shown because too many files have changed in this diff Show More