From 75ad73760f33b0d2b30061919d8d4b4bf0b4277b Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 28 Nov 2001 18:15:51 +0000 Subject: 2001-11-28 Joel Sherrill , 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. --- .../powerpc/support/new_exception_processing/ChangeLog | 10 ++++++++++ .../powerpc/support/new_exception_processing/Makefile.am | 5 ++--- .../powerpc/support/new_exception_processing/cpu.c | 15 ++++++++++++++- .../new_exception_processing/rtems/score/c_isr.inl | 9 --------- .../support/new_exception_processing/rtems/score/cpu.h | 7 +++++++ .../powerpc/support/old_exception_processing/ChangeLog | 10 ++++++++++ .../powerpc/support/old_exception_processing/Makefile.am | 6 ++---- .../powerpc/support/old_exception_processing/cpu.c | 16 ++++++++++++++++ .../old_exception_processing/rtems/score/c_isr.inl | 4 ---- .../support/old_exception_processing/rtems/score/cpu.h | 7 +++++++ c/src/lib/libcpu/powerpc/new-exceptions/ChangeLog | 10 ++++++++++ c/src/lib/libcpu/powerpc/new-exceptions/cpu.c | 15 ++++++++++++++- c/src/lib/libcpu/powerpc/old-exceptions/ChangeLog | 10 ++++++++++ c/src/lib/libcpu/powerpc/old-exceptions/cpu.c | 16 ++++++++++++++++ 14 files changed, 118 insertions(+), 22 deletions(-) delete mode 100644 c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/c_isr.inl delete mode 100644 c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/c_isr.inl (limited to 'c/src/lib') diff --git a/c/src/lib/libbsp/powerpc/support/new_exception_processing/ChangeLog b/c/src/lib/libbsp/powerpc/support/new_exception_processing/ChangeLog index 514a006ddf..bee7d01726 100644 --- a/c/src/lib/libbsp/powerpc/support/new_exception_processing/ChangeLog +++ b/c/src/lib/libbsp/powerpc/support/new_exception_processing/ChangeLog @@ -1,3 +1,13 @@ +2001-11-28 Joel Sherrill , + + 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 * .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure. diff --git a/c/src/lib/libbsp/powerpc/support/new_exception_processing/Makefile.am b/c/src/lib/libbsp/powerpc/support/new_exception_processing/Makefile.am index 60b41ae61e..4fba2eabc5 100644 --- a/c/src/lib/libbsp/powerpc/support/new_exception_processing/Makefile.am +++ b/c/src/lib/libbsp/powerpc/support/new_exception_processing/Makefile.am @@ -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) $@ diff --git a/c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu.c b/c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu.c index 38a962e967..10d38fab1a 100644 --- a/c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu.c +++ b/c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu.c @@ -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; +} diff --git a/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/c_isr.inl b/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/c_isr.inl deleted file mode 100644 index 68f8116fe9..0000000000 --- a/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/c_isr.inl +++ /dev/null @@ -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; -} diff --git a/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/cpu.h b/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/cpu.h index 3e434573ee..e4d4466087 100644 --- a/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/cpu.h +++ b/c/src/lib/libbsp/powerpc/support/new_exception_processing/rtems/score/cpu.h @@ -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. diff --git a/c/src/lib/libbsp/powerpc/support/old_exception_processing/ChangeLog b/c/src/lib/libbsp/powerpc/support/old_exception_processing/ChangeLog index 514a006ddf..bee7d01726 100644 --- a/c/src/lib/libbsp/powerpc/support/old_exception_processing/ChangeLog +++ b/c/src/lib/libbsp/powerpc/support/old_exception_processing/ChangeLog @@ -1,3 +1,13 @@ +2001-11-28 Joel Sherrill , + + 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 * .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure. diff --git a/c/src/lib/libbsp/powerpc/support/old_exception_processing/Makefile.am b/c/src/lib/libbsp/powerpc/support/old_exception_processing/Makefile.am index 476397992e..66af1d137e 100644 --- a/c/src/lib/libbsp/powerpc/support/old_exception_processing/Makefile.am +++ b/c/src/lib/libbsp/powerpc/support/old_exception_processing/Makefile.am @@ -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 diff --git a/c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu.c b/c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu.c index 1d6845cb69..5b8fcb6259 100644 --- a/c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu.c +++ b/c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu.c @@ -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); +} diff --git a/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/c_isr.inl b/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/c_isr.inl deleted file mode 100644 index 706d4f7e4f..0000000000 --- a/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/c_isr.inl +++ /dev/null @@ -1,4 +0,0 @@ -RTEMS_INLINE_ROUTINE boolean _ISR_Is_in_progress( void ) -{ - return (_ISR_Nest_level != 0); -} diff --git a/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/cpu.h b/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/cpu.h index 935f4ca0d3..cdcfd85a62 100644 --- a/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/cpu.h +++ b/c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems/score/cpu.h @@ -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. diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/ChangeLog b/c/src/lib/libcpu/powerpc/new-exceptions/ChangeLog index 514a006ddf..bee7d01726 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/ChangeLog +++ b/c/src/lib/libcpu/powerpc/new-exceptions/ChangeLog @@ -1,3 +1,13 @@ +2001-11-28 Joel Sherrill , + + 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 * .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure. diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c b/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c index 38a962e967..10d38fab1a 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c +++ b/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c @@ -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; +} diff --git a/c/src/lib/libcpu/powerpc/old-exceptions/ChangeLog b/c/src/lib/libcpu/powerpc/old-exceptions/ChangeLog index 514a006ddf..bee7d01726 100644 --- a/c/src/lib/libcpu/powerpc/old-exceptions/ChangeLog +++ b/c/src/lib/libcpu/powerpc/old-exceptions/ChangeLog @@ -1,3 +1,13 @@ +2001-11-28 Joel Sherrill , + + 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 * .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure. diff --git a/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c b/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c index 1d6845cb69..5b8fcb6259 100644 --- a/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c +++ b/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c @@ -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); +} -- cgit v1.2.3