RTEMS 6.3
Loading...
Searching...
No Matches
SMP Support

This group contains the implementation to support SMP systems. More...

Files

file  cpukit/include/rtems/score/smp.h
 This header file provides interfaces of the SMP Support which are used by the implementation and the Application Configuration.
file  cpukit/include/rtems/score/smpimpl.h
 This header file provides interfaces of the SMP Support which are only used by the implementation.
file  cpukit/score/src/smp.c
 This source file contains the definition of ::_SMP_Online_processors and ::_SMP_Processor_maximum and the implementation of _SMP_Handler_initialize(), _SMP_Process_message(), _SMP_Request_shutdown(), _SMP_Request_start_multitasking(), _SMP_Send_message(), _SMP_Should_start_processor(), _SMP_Start_multitasking_on_secondary_processor(), and _SMP_Try_to_process_message().
file  cpukit/score/src/smpbroadcastaction.c
 This source file contains the implementation of _SMP_Broadcast_action().
file  cpukit/score/src/smpmulticastaction.c
 This source file contains the implementation of _SMP_Multicast_action().
file  cpukit/score/src/smpothercastaction.c
 This source file contains the implementation of _SMP_Othercast_action().
file  cpukit/score/src/smpsynchronize.c
 This source file contains the implementation of _SMP_Synchronize().
file  cpukit/score/src/smpunicastaction.c
 This source file contains the implementation of _SMP_Unicast_action().

Macros

#define _SMP_Processor_configured_maximum   1
 The configured processor maximum.
#define _SMP_Get_processor_maximum()
#define _SMP_Get_current_processor()
#define SMP_MESSAGE_SHUTDOWN   0x1UL
 SMP message to request a processor shutdown.
#define SMP_MESSAGE_PERFORM_JOBS   0x2UL
 SMP message to perform per-processor jobs.
#define SMP_MESSAGE_FORCE_PROCESSING   0x4UL
 SMP message to force the message processing in _SMP_Try_to_process_message().
#define _SMP_Handler_initialize()
 Initializes SMP Handler.
#define _SMP_Request_start_multitasking()
 Requests a multitasking start on all configured and available processors.
#define _SMP_Request_shutdown()
 Requests a shutdown of all processors.

Enumerations

enum  SMP_Fatal_code {
  SMP_FATAL_BOOT_PROCESSOR_NOT_ASSIGNED_TO_SCHEDULER , SMP_FATAL_MANDATORY_PROCESSOR_NOT_PRESENT , SMP_FATAL_MULTITASKING_START_ON_INVALID_PROCESSOR , SMP_FATAL_MULTITASKING_START_ON_UNASSIGNED_PROCESSOR ,
  SMP_FATAL_SHUTDOWN , SMP_FATAL_SHUTDOWN_RESPONSE , SMP_FATAL_START_OF_MANDATORY_PROCESSOR_FAILED , SMP_FATAL_SCHEDULER_PIN_OR_UNPIN_NOT_SUPPORTED ,
  SMP_FATAL_WRONG_CPU_STATE_TO_PERFORM_JOBS , SMP_FATAL_SCHEDULER_REQUIRES_EXACTLY_ONE_PROCESSOR , SMP_FATAL_MULTITASKING_START_ON_NOT_ONLINE_PROCESSOR
}
 SMP fatal codes.

Detailed Description

This group contains the implementation to support SMP systems.

This defines the interface of the SuperCore SMP support.

Macro Definition Documentation

◆ _SMP_Get_current_processor

#define _SMP_Get_current_processor ( )
Value:
UINT32_C(0)

◆ _SMP_Get_processor_maximum

#define _SMP_Get_processor_maximum ( )
Value:
UINT32_C(1)

◆ _SMP_Handler_initialize

#define _SMP_Handler_initialize ( void)
Value:
do { } while ( 0 )

Initializes SMP Handler.

This method initialize the SMP Handler.

◆ _SMP_Processor_configured_maximum

#define _SMP_Processor_configured_maximum   1

The configured processor maximum.

In SMP configurations, this constant is defined by the application configuration via <rtems/confdefs.h>, otherwise it is a compile-time constant with the value one.

◆ _SMP_Request_shutdown

#define _SMP_Request_shutdown ( void)
Value:
do { } while ( 0 )

Requests a shutdown of all processors.

This function is a part of the system termination procedure.

See also
_Terminate().

◆ _SMP_Request_start_multitasking

#define _SMP_Request_start_multitasking ( void)
Value:
do { } while ( 0 )

Requests a multitasking start on all configured and available processors.

◆ SMP_MESSAGE_FORCE_PROCESSING

#define SMP_MESSAGE_FORCE_PROCESSING   0x4UL

SMP message to force the message processing in _SMP_Try_to_process_message().

This message bit is never sent to a processor. It is only used to force the message processing in _SMP_Try_to_process_message(). Any non-zero value would do it.

◆ SMP_MESSAGE_PERFORM_JOBS

#define SMP_MESSAGE_PERFORM_JOBS   0x2UL

SMP message to perform per-processor jobs.

See also
_SMP_Send_message().

◆ SMP_MESSAGE_SHUTDOWN

#define SMP_MESSAGE_SHUTDOWN   0x1UL

SMP message to request a processor shutdown.

See also
_SMP_Send_message().