Context Handler


Defines

#define CONTEXT_FP_SIZE   CPU_CONTEXT_FP_SIZE
 Size of Floating Point Context Area.
#define _Context_Initialize(_the_context, _stack, _size, _isr, _entry, _is_fp)   _CPU_Context_Initialize( _the_context, _stack, _size, _isr, _entry, _is_fp )
 Initialize Context Area This routine initializes _the_context such that the stack pointer, interrupt level, and entry point are correct for the thread's initial state.
#define _Context_Initialization_at_thread_begin()
#define _Context_Switch(_executing, _heir)   _CPU_Context_switch( _executing, _heir )
 Perform Context Switch.
#define _Context_Restart_self(_the_context)   _CPU_Context_Restart_self( _the_context )
 Restart Currently Executing Thread.
#define _Context_Fp_start(_base, _offset)   _CPU_Context_Fp_start( (_base), (_offset) )
 Return Starting Address of Floating Point Context.
#define _Context_Initialize_fp(_fp_area)   _CPU_Context_Initialize_fp( _fp_area )
 Initialize Floating Point Context Area.
#define _Context_Restore_fp(_fp)   _CPU_Context_restore_fp( _fp )
 Restore Floating Point Context Area.
#define _Context_Save_fp(_fp)   _CPU_Context_save_fp( _fp )
 Save Floating Point Context Area.

Variables

SCORE_EXTERN volatile boolean _Context_Switch_necessary
 Is Context Switch Needed?

Detailed Description

This handler encapsulates functionality which abstracts thread context management in a portable manner.

Define Documentation

#define _Context_Fp_start ( _base,
_offset   )     _CPU_Context_Fp_start( (_base), (_offset) )

Return Starting Address of Floating Point Context.

This function returns the starting address of the floating point context save area. It is assumed that the are reserved for the floating point save area is large enough.

Parameters:
[in] _base is lowest physical address of the floating point context save area.
[in] _offset is the offset into the floating point area
Returns:
the initial FP context pointer

 
#define _Context_Initialization_at_thread_begin (  ) 

This macro is invoked from _Thread_Handler to do whatever CPU specific magic is required that must be done in the context of the thread when it starts.

If the CPU architecture does not require any magic, then this macro is empty.

#define _Context_Initialize ( _the_context,
_stack,
_size,
_isr,
_entry,
_is_fp   )     _CPU_Context_Initialize( _the_context, _stack, _size, _isr, _entry, _is_fp )

Initialize Context Area This routine initializes _the_context such that the stack pointer, interrupt level, and entry point are correct for the thread's initial state.

Parameters:
[in] _the_context will be initialized
[in] _stack is the lowest physical address of the thread's context
[in] _size is the size in octets of the thread's context
[in] _isr is the ISR enable level for this thread
[in] _entry is this thread's entry point
[in] _is_fp is set to TRUE if this thread has floating point enabled

#define _Context_Initialize_fp ( _fp_area   )     _CPU_Context_Initialize_fp( _fp_area )

Initialize Floating Point Context Area.

This routine initializes the floating point context save area to contain an initial known state.

Parameters:
[in] _fp_area is the base address of the floating point context save area to initialize.

#define _Context_Restart_self ( _the_context   )     _CPU_Context_Restart_self( _the_context )

Restart Currently Executing Thread.

This routine restarts the calling thread by restoring its initial stack pointer and returning to the thread's entry point.

Parameters:
[in] _the_context is the context of the thread to restart

#define _Context_Restore_fp ( _fp   )     _CPU_Context_restore_fp( _fp )

Restore Floating Point Context Area.

This routine restores the floating point context contained in the _fp area. It is assumed that the current floating point context has been saved by a previous invocation of _Context_Save_fp.

Parameters:
[in] _fp points to the floating point context area to restore.

Referenced by _Thread_Restart_self().

#define _Context_Save_fp ( _fp   )     _CPU_Context_save_fp( _fp )

Save Floating Point Context Area.

This routine saves the current floating point context in the _fp area.

Parameters:
[in] _fp points to the floating point context area to restore.

#define _Context_Switch ( _executing,
_heir   )     _CPU_Context_switch( _executing, _heir )

Perform Context Switch.

This routine saves the current context into the _executing context record and restores the context specified by _heir.

Parameters:
[in] _executing is the currently executing thread's context
[in] _heir is the context of the thread to be switched to

Referenced by _Thread_Stop_multitasking().

#define CONTEXT_FP_SIZE   CPU_CONTEXT_FP_SIZE

Size of Floating Point Context Area.

This constant defines the number of bytes required to store a full floating point context.


Variable Documentation

SCORE_EXTERN volatile boolean _Context_Switch_necessary

Is Context Switch Needed?

This variable is set to TRUE when a reschedule operation has determined that the processor should be taken away from the currently executing thread and given to the heir thread.

Referenced by _Thread_Is_context_switch_necessary().


Generated on Sun Jul 27 00:17:31 2008 for RTEMSSuperCore by  doxygen 1.5.6