2001-11-28 Joel Sherrill <joel@OARcorp.com>,

This was tracked as PR91.
	* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
	is used to specify if the port uses the standard macro for this (FALSE).
	A TRUE setting indicates the port provides its own implementation.
	* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
	* cpu.c: Received contents of c_isr.inl.
	* Makefile.am: Deleted reference to c_isr.inl.
This commit is contained in:
Joel Sherrill
2001-11-28 18:15:51 +00:00
parent c1b61c5906
commit 75ad73760f
18 changed files with 146 additions and 22 deletions

View File

@@ -570,6 +570,13 @@ SCORE_EXTERN struct {
#define CPU_INTERRUPT_NUMBER_OF_VECTORS (PPC_INTERRUPT_MAX)
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (PPC_INTERRUPT_MAX - 1)
/*
* This is defined if the port has a special way to report the ISR nesting
* level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS TRUE
/*
* Should be large enough to run all RTEMS tests. This insures
* that a "reasonable" small application should not have any problems.

View File

@@ -652,6 +652,13 @@ SCORE_EXTERN struct {
#define CPU_INTERRUPT_NUMBER_OF_VECTORS (PPC_INTERRUPT_MAX)
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (PPC_INTERRUPT_MAX - 1)
/*
* This is defined if the port has a special way to report the ISR nesting
* level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS TRUE
/*
* Should be large enough to run all RTEMS tests. This insures
* that a "reasonable" small application should not have any problems.

View File

@@ -1,3 +1,13 @@
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR91.
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
is used to specify if the port uses the standard macro for this (FALSE).
A TRUE setting indicates the port provides its own implementation.
* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
* cpu.c: Received contents of c_isr.inl.
* Makefile.am: Deleted reference to c_isr.inl.
2001-11-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure.

View File

@@ -11,7 +11,7 @@ C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o)
include_rtems_scoredir = $(includedir)/rtems/score
include_rtems_score_HEADERS = rtems/score/cpu.h rtems/score/c_isr.inl
include_rtems_score_HEADERS = rtems/score/cpu.h
S_FILES = cpu_asm.S
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
@@ -28,8 +28,7 @@ TMPINSTALL_FILES += $(PROJECT_INCLUDE) $(PROJECT_INCLUDE)/rtems/score \
$(include_rtems_score_HEADERS:%=$(PROJECT_INCLUDE)/%)
# FIXME: This should not be here.
PREINSTALL_FILES = $(PROJECT_INCLUDE)/rtems/score/cpu.h \
$(PROJECT_INCLUDE)/rtems/score/c_isr.inl
PREINSTALL_FILES = $(PROJECT_INCLUDE)/rtems/score/cpu.h
$(PROJECT_INCLUDE):
$(mkinstalldirs) $@

View File

@@ -110,6 +110,19 @@ void _CPU_Install_interrupt_stack( void )
{
}
/*PAGE
*
* This is the PowerPC specific implementation of the routine which
* returns TRUE if an interrupt is in progress.
*/
boolean _ISR_Is_in_progress( void )
{
register unsigned int isr_nesting_level;
/*
* Move from special purpose register 0 (mfspr SPRG0, r3)
*/
asm volatile ("mfspr %0, 272" : "=r" (isr_nesting_level));
return isr_nesting_level;
}

View File

@@ -1,9 +0,0 @@
RTEMS_INLINE_ROUTINE boolean _ISR_Is_in_progress( void )
{
register unsigned int isr_nesting_level;
/*
* Move from special purpose register 0 (mfspr SPRG0, r3)
*/
asm volatile ("mfspr %0, 272" : "=r" (isr_nesting_level));
return isr_nesting_level;
}

View File

@@ -570,6 +570,13 @@ SCORE_EXTERN struct {
#define CPU_INTERRUPT_NUMBER_OF_VECTORS (PPC_INTERRUPT_MAX)
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (PPC_INTERRUPT_MAX - 1)
/*
* This is defined if the port has a special way to report the ISR nesting
* level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS TRUE
/*
* Should be large enough to run all RTEMS tests. This insures
* that a "reasonable" small application should not have any problems.

View File

@@ -1,3 +1,13 @@
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR91.
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
is used to specify if the port uses the standard macro for this (FALSE).
A TRUE setting indicates the port provides its own implementation.
* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
* cpu.c: Received contents of c_isr.inl.
* Makefile.am: Deleted reference to c_isr.inl.
2001-11-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure.

View File

@@ -13,8 +13,7 @@ C_FILES = cpu.c
C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o)
include_rtems_scoredir = $(includedir)/rtems/score
include_rtems_score_HEADERS = rtems/score/cpu.h \
rtems/score/c_isr.inl rtems/score/ppc_offs.h
include_rtems_score_HEADERS = rtems/score/cpu.h rtems/score/ppc_offs.h
# Assembly source names
S_FILES = cpu_asm.S
@@ -28,8 +27,7 @@ TMPINSTALL_FILES += $(PROJECT_INCLUDE) $(PROJECT_INCLUDE)/rtems/score \
$(include_rtems_score_HEADERS:%=$(PROJECT_INCLUDE)/%)
# FIXME: This should not be here.
PREINSTALL_FILES = $(PROJECT_INCLUDE)/rtems/score/cpu.h \
$(PROJECT_INCLUDE)/rtems/score/c_isr.inl
PREINSTALL_FILES = $(PROJECT_INCLUDE)/rtems/score/cpu.h
TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/rtems$(LIB_VARIANT).o

View File

@@ -873,3 +873,19 @@ unsigned32 ppc_exception_vector_addr(
return Top;
}
/*PAGE
*
* This is the PowerPC specific implementation of the routine which
* returns TRUE if an interrupt is in progress.
*
* NOTE: This is the same as the generic version. But since the
* PowerPC is still supporting old and new exception processing
* models and the new exception processing model has a hardware
* way of doing this, we have to provide this capability here
* for symmetry.
*/
boolean _ISR_Is_in_progress( void )
{
return (_ISR_Nest_level != 0);
}

View File

@@ -1,4 +0,0 @@
RTEMS_INLINE_ROUTINE boolean _ISR_Is_in_progress( void )
{
return (_ISR_Nest_level != 0);
}

View File

@@ -652,6 +652,13 @@ SCORE_EXTERN struct {
#define CPU_INTERRUPT_NUMBER_OF_VECTORS (PPC_INTERRUPT_MAX)
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (PPC_INTERRUPT_MAX - 1)
/*
* This is defined if the port has a special way to report the ISR nesting
* level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS TRUE
/*
* Should be large enough to run all RTEMS tests. This insures
* that a "reasonable" small application should not have any problems.

View File

@@ -1,3 +1,13 @@
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR91.
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
is used to specify if the port uses the standard macro for this (FALSE).
A TRUE setting indicates the port provides its own implementation.
* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
* cpu.c: Received contents of c_isr.inl.
* Makefile.am: Deleted reference to c_isr.inl.
2001-11-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure.

View File

@@ -110,6 +110,19 @@ void _CPU_Install_interrupt_stack( void )
{
}
/*PAGE
*
* This is the PowerPC specific implementation of the routine which
* returns TRUE if an interrupt is in progress.
*/
boolean _ISR_Is_in_progress( void )
{
register unsigned int isr_nesting_level;
/*
* Move from special purpose register 0 (mfspr SPRG0, r3)
*/
asm volatile ("mfspr %0, 272" : "=r" (isr_nesting_level));
return isr_nesting_level;
}

View File

@@ -1,3 +1,13 @@
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR91.
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
is used to specify if the port uses the standard macro for this (FALSE).
A TRUE setting indicates the port provides its own implementation.
* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
* cpu.c: Received contents of c_isr.inl.
* Makefile.am: Deleted reference to c_isr.inl.
2001-11-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure.

View File

@@ -873,3 +873,19 @@ unsigned32 ppc_exception_vector_addr(
return Top;
}
/*PAGE
*
* This is the PowerPC specific implementation of the routine which
* returns TRUE if an interrupt is in progress.
*
* NOTE: This is the same as the generic version. But since the
* PowerPC is still supporting old and new exception processing
* models and the new exception processing model has a hardware
* way of doing this, we have to provide this capability here
* for symmetry.
*/
boolean _ISR_Is_in_progress( void )
{
return (_ISR_Nest_level != 0);
}

View File

@@ -570,6 +570,13 @@ SCORE_EXTERN struct {
#define CPU_INTERRUPT_NUMBER_OF_VECTORS (PPC_INTERRUPT_MAX)
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (PPC_INTERRUPT_MAX - 1)
/*
* This is defined if the port has a special way to report the ISR nesting
* level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS TRUE
/*
* Should be large enough to run all RTEMS tests. This insures
* that a "reasonable" small application should not have any problems.

View File

@@ -652,6 +652,13 @@ SCORE_EXTERN struct {
#define CPU_INTERRUPT_NUMBER_OF_VECTORS (PPC_INTERRUPT_MAX)
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (PPC_INTERRUPT_MAX - 1)
/*
* This is defined if the port has a special way to report the ISR nesting
* level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS TRUE
/*
* Should be large enough to run all RTEMS tests. This insures
* that a "reasonable" small application should not have any problems.