2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>

* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
	passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
	comments.
This commit is contained in:
Joel Sherrill
2009-02-11 21:45:05 +00:00
parent ef1be69b65
commit c03e2bc8c7
48 changed files with 149 additions and 443 deletions

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -34,15 +34,12 @@ unsigned int arm_cpu_mode = 0x13;
/* _CPU_Initialize /* _CPU_Initialize
* *
* This routine performs processor dependent initialization. * INPUT PARAMETERS: NONE
* *
* INPUT PARAMETERS: * This routine performs processor dependent initialization.
* thread_dispatch - address of ISR dispatching routine (unused)
*/ */
void _CPU_Initialize( void _CPU_Initialize(void)
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
} }

View File

@@ -699,9 +699,7 @@ void _CPU_Context_Initialize(
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
typedef enum { typedef enum {
ARM_EXCEPTION_RESET = 0, ARM_EXCEPTION_RESET = 0,

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-12-11 Joel Sherrill <joel.sherrill@oarcorp.com> 2008-12-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, cpu_asm.c: Remove warnings -- even if code is just temporary. * cpu.c, cpu_asm.c: Remove warnings -- even if code is just temporary.

View File

@@ -22,34 +22,16 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* NO_CPU Specific Information: * NO_CPU Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize(void)
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
printk( "AVR CPU Initialize\n" ); printk( "AVR CPU Initialize\n" );
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -468,22 +468,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
SCORE_EXTERN void *_CPU_Interrupt_stack_low; SCORE_EXTERN void *_CPU_Interrupt_stack_low;
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/*
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* AVR Specific Information:
*
* XXX document implementation including references if appropriate
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -936,9 +920,7 @@ uint32_t _CPU_ISR_Get_level( void );
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -21,8 +21,7 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* NO_CPU Specific Information: * NO_CPU Specific Information:
* *
@@ -37,23 +36,8 @@ extern void _CPU_NMI_handler(void);
extern void _CPU_Exception_handler(void); extern void _CPU_Exception_handler(void);
extern void _CPU_Unhandled_Interrupt_handler(void); extern void _CPU_Unhandled_Interrupt_handler(void);
void _CPU_Initialize( void _CPU_Initialize(void)
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
/*_CPU_Thread_dispatch_pointer = thread_dispatch;*/
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -563,22 +563,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
*/ */
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/**
* @ingroup CPUInterrupt
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine @ref _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* Port Specific Information:
*
* XXX document implementation including references if appropriate
*/
/* SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();*/
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -1097,16 +1081,11 @@ void _CPU_Context_Initialize(
/** /**
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
* *
* @param[in] cpu_table is the CPU Dependent Configuration Table
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
*
* Port Specific Information: * Port Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -21,32 +21,14 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* C4x Specific Information: * C4x Specific Information:
* *
*/ */
void _CPU_Initialize( void _CPU_Initialize(void)
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
#if 0
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
#endif
#if (CPU_HARDWARE_FP == TRUE) #if (CPU_HARDWARE_FP == TRUE)
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context

View File

@@ -580,24 +580,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
SCORE_EXTERN void *_CPU_Interrupt_stack_low; SCORE_EXTERN void *_CPU_Interrupt_stack_low;
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/*
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* C4x Specific Information:
*
* This port should not require this.
*/
#if 0
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
#endif
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -1078,9 +1060,7 @@ void _CPU_Context_Initialize(
* XXXanswer * XXXanswer
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com> 2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* rtems/score/cpu.h: Do not unroll any code on this target and use a * rtems/score/cpu.h: Do not unroll any code on this target and use a

View File

@@ -19,28 +19,12 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
*/ */
void _CPU_Initialize( void _CPU_Initialize(void)
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -451,22 +451,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
SCORE_EXTERN void *_CPU_Interrupt_stack_low; SCORE_EXTERN void *_CPU_Interrupt_stack_low;
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/*
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* H8300 Specific Information:
*
* XXX
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -997,9 +981,7 @@ uint32_t _CPU_ISR_Get_level( void );
* XXX * XXX
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -25,14 +25,10 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
*/ */
void _CPU_Initialize(void)
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
#if CPU_HARDWARE_FP #if CPU_HARDWARE_FP
register uint16_t fp_status asm ("ax"); register uint16_t fp_status asm ("ax");
@@ -65,7 +61,6 @@ void _CPU_Initialize(
); );
} }
#endif #endif
} }
/*PAGE /*PAGE

View File

@@ -386,9 +386,7 @@ uint32_t _CPU_ISR_Get_level( void );
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-12-05 Joel Sherrill <joel.sherrill@oarcorp.com> 2008-12-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* .cvsignore: New file. * .cvsignore: New file.

View File

@@ -23,32 +23,15 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* LM32 Specific Information: * LM32 Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */ void _CPU_Initialize(void)
)
{ {
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
#if 0
_CPU_Thread_dispatch_pointer = thread_dispatch;
#endif
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -572,24 +572,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
*/ */
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/**
* @ingroup CPUInterrupt
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine @ref _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* Port Specific Information:
*
* XXX document implementation including references if appropriate
*/
#if 0
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
#endif
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -1100,15 +1082,11 @@ uint32_t _CPU_ISR_Get_level( void );
/** /**
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
* *
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
*
* Port Specific Information: * Port Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com> 2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* rtems/score/cpu.h: Use a 16 bit object id on this target. * rtems/score/cpu.h: Use a 16 bit object id on this target.

View File

@@ -19,16 +19,14 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* NO_CPU Specific Information: * NO_CPU Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */ void _CPU_Initialize(void)
)
{ {
asm volatile( "ldc #__var_vects,intb" ); asm volatile( "ldc #__var_vects,intb" );
} }

View File

@@ -1041,15 +1041,11 @@ void _CPU_Context_Restart_self(
/** /**
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
* *
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
*
* Port Specific Information: * Port Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-10-28 Joel Sherrill <joel.sherrill@oarcorp.com> 2008-10-28 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, preinstall.am, rtems/score/cpu.h: Now performs context * Makefile.am, preinstall.am, rtems/score/cpu.h: Now performs context

View File

@@ -18,16 +18,14 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* NO_CPU Specific Information: * NO_CPU Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */ void _CPU_Initialize(void)
)
{ {
} }

View File

@@ -569,22 +569,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
*/ */
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/**
* @ingroup CPUInterrupt
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine @ref _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* Port Specific Information:
*
* XXX document implementation including references if appropriate
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -1094,15 +1078,11 @@ void _CPU_Context_Restart_self(
/** /**
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
* *
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
*
* Port Specific Information: * Port Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-12-17 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/m68k.h: Don't include rtems/score/types.h, * rtems/score/m68k.h: Don't include rtems/score/types.h,

View File

@@ -18,15 +18,12 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - entry pointer to thread dispatcher
* *
* OUTPUT PARAMETERS: NONE * OUTPUT PARAMETERS: NONE
*/ */
void _CPU_Initialize( void _CPU_Initialize(void)
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
#if ( M68K_HAS_VBR == 0 ) #if ( M68K_HAS_VBR == 0 )
/* fill the isr redirect table with the code to place the format/id /* fill the isr redirect table with the code to place the format/id

View File

@@ -632,9 +632,7 @@ extern const unsigned char _CPU_m68k_BFFFO_table[256];
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -70,12 +70,10 @@ ESF_PTR_TYPE __exceptionStackFrame = 0;
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS:
* thread_dispatch - address of dispatching routine * thread_dispatch - address of dispatching routine
*/ */
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */ void _CPU_Initialize(void)
)
{ {
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context

View File

@@ -632,23 +632,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
SCORE_EXTERN void *_CPU_Interrupt_stack_low; SCORE_EXTERN void *_CPU_Interrupt_stack_low;
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/*
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
*
* NOTE: Not needed on this port.
*/
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
*/ */
@@ -1061,9 +1044,7 @@ extern void mips_break( int error );
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -19,32 +19,15 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* NO_CPU Specific Information: * NO_CPU Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize(void)
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -604,22 +604,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
*/ */
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/**
* @ingroup CPUInterrupt
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine @ref _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* Port Specific Information:
*
* XXX document implementation including references if appropriate
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -1145,16 +1129,11 @@ uint32_t _CPU_ISR_Get_level( void );
/** /**
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
* *
* @param cpu_table (in) is the CPU Dependent Configuration Table
* @param thread_dispatch (in) is the address of @ref _Thread_Dispatch
*
* Port Specific Information: * Port Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-10-02 Joel Sherrill <joel.sherrill@oarcorp.com> 2008-10-02 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu_asm.c, rtems/score/cpu.h, rtems/score/types.h: Corrections and * cpu_asm.c, rtems/score/cpu.h, rtems/score/types.h: Corrections and

View File

@@ -20,30 +20,15 @@
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* NO_CPU Specific Information: * NO_CPU Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */ void _CPU_Initialize(void)
)
{ {
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -562,22 +562,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
*/ */
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/**
* @ingroup CPUInterrupt
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine @ref _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*
* Port Specific Information:
*
* XXX document implementation including references if appropriate
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
* *
@@ -1081,15 +1065,11 @@ uint32_t _CPU_ISR_Get_level( void );
/** /**
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
* *
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
*
* Port Specific Information: * Port Specific Information:
* *
* XXX document implementation including references if appropriate * XXX document implementation including references if appropriate
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-30 Joel Sherrill <joel.sherrill@oarcorp.com> 2008-09-30 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c: Fine tune conditional so _CPU_ISR_install_vector is in CPU Kit * cpu.c: Fine tune conditional so _CPU_ISR_install_vector is in CPU Kit

View File

@@ -39,30 +39,13 @@ extern proc_ptr _Hardware_isr_Table[];
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
*/ */
void _CPU_Initialize(void)
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
register uint32_t level = 0; register uint32_t level = 0;
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
/* /*
* If there is not an easy way to initialize the FP context * If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -428,18 +428,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
SCORE_EXTERN void *_CPU_Interrupt_stack_low; SCORE_EXTERN void *_CPU_Interrupt_stack_low;
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/*
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
*/ */
@@ -825,9 +813,7 @@ extern uint8_t _bit_set_table[];
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision, * rtems/score/types.h: Do not define boolean, single_precision,

View File

@@ -38,8 +38,7 @@ const CPU_Trap_table_entry _CPU_Trap_slot_template = {
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* Input Parameters: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
* *
* Output Parameters: NONE * Output Parameters: NONE
* *
@@ -47,9 +46,7 @@ const CPU_Trap_table_entry _CPU_Trap_slot_template = {
* The SPARC's assembly code can reference it directly with no problems. * The SPARC's assembly code can reference it directly with no problems.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void)
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
#if (SPARC_HAS_FPU == 1) #if (SPARC_HAS_FPU == 1)
Context_Control_fp *pointer; Context_Control_fp *pointer;

View File

@@ -883,9 +883,7 @@ void _CPU_Context_Initialize(
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler

View File

@@ -1,3 +1,9 @@
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-12-01 Joel Sherrill <joel.sherrill@OARcorp.com> 2008-12-01 Joel Sherrill <joel.sherrill@OARcorp.com>
* cpu.c: Links hello again. * cpu.c: Links hello again.

View File

@@ -276,14 +276,10 @@ uint32_t _CPU_ISR_Get_level( void )
* *
* This routine performs processor dependent initialization. * This routine performs processor dependent initialization.
* *
* INPUT PARAMETERS: * INPUT PARAMETERS: NONE
* thread_dispatch - address of dispatching routine
*/ */
void _CPU_Initialize(void)
void _CPU_Initialize(
void (*thread_dispatch) /* ignored on this CPU */
)
{ {
/* /*
* If something happened where the public Context_Control is not * If something happened where the public Context_Control is not
@@ -294,19 +290,6 @@ void _CPU_Initialize(
if ( sizeof(Context_Control_overlay) > sizeof(Context_Control) ) if ( sizeof(Context_Control_overlay) > sizeof(Context_Control) )
_CPU_Fatal_error(0x100 + 1); _CPU_Fatal_error(0x100 + 1);
/*
* The thread_dispatch argument is the address of the entry point
* for the routine called at the end of an ISR once it has been
* decided a context switch is necessary. On some compilation
* systems it is difficult to call a high-level language routine
* from assembly. This allows us to trick these systems.
*
* If you encounter this problem save the entry point in a CPU
* dependent variable.
*/
_CPU_Thread_dispatch_pointer = thread_dispatch;
/* /*
* XXX; If there is not an easy way to initialize the FP context * XXX; If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to * during Context_Initialize, then it is usually easier to

View File

@@ -528,18 +528,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
SCORE_EXTERN void *_CPU_Interrupt_stack_low; SCORE_EXTERN void *_CPU_Interrupt_stack_low;
SCORE_EXTERN void *_CPU_Interrupt_stack_high; SCORE_EXTERN void *_CPU_Interrupt_stack_high;
/*
* With some compilation systems, it is difficult if not impossible to
* call a high-level language routine from assembly language. This
* is especially true of commercial Ada compilers and name mangling
* C++ ones. This variable can be optionally defined by the CPU porter
* and contains the address of the routine _Thread_Dispatch. This
* can make it easier to invoke that routine at the end of the interrupt
* sequence (if a dispatch is necessary).
*/
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
/* /*
* Nothing prevents the porter from declaring more CPU specific variables. * Nothing prevents the porter from declaring more CPU specific variables.
*/ */
@@ -875,9 +863,7 @@ extern void _CPU_Context_Initialize(
* This routine performs CPU dependent initialization. * This routine performs CPU dependent initialization.
*/ */
void _CPU_Initialize( void _CPU_Initialize(void);
void (*thread_dispatch)
);
/* /*
* _CPU_ISR_install_raw_handler * _CPU_ISR_install_raw_handler