RTEMS
|
SuperCore SMP Implementation. More...
#include <rtems/score/smp.h>
#include <rtems/score/percpu.h>
#include <rtems/score/processormask.h>
#include <rtems/fatal.h>
Go to the source code of this file.
Macros | |
#define | SMP_MESSAGE_SHUTDOWN 0x1UL |
SMP message to request a processor shutdown. More... | |
#define | SMP_MESSAGE_PERFORM_JOBS 0x2UL |
SMP message to perform per-processor jobs. More... | |
Typedefs | |
typedef void(* | SMP_Action_handler) (void *arg) |
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 codes. | |
Functions | |
static void | _SMP_Fatal (SMP_Fatal_code code) |
Terminates with the given code. More... | |
void | _SMP_Handler_initialize (void) |
Initializes SMP Handler. More... | |
void | _SMP_Start_multitasking_on_secondary_processor (Per_CPU_Control *cpu_self) RTEMS_NO_RETURN |
Performs high-level initialization of a secondary processor and runs the application threads. More... | |
static long unsigned | _SMP_Inter_processor_interrupt_handler (Per_CPU_Control *cpu_self) |
Interrupts handler for inter-processor interrupts. More... | |
bool | _SMP_Should_start_processor (uint32_t cpu_index) |
Checks if the processor with the specified index should be started. More... | |
void | _SMP_Send_message (uint32_t cpu_index, unsigned long message) |
Sends an SMP message to a processor. More... | |
void | _SMP_Send_message_broadcast (unsigned long message) |
Sends an SMP message to all other online processors. More... | |
void | _SMP_Send_message_multicast (const Processor_mask *targets, unsigned long message) |
Sends an SMP message to a set of processors. More... | |
void | _SMP_Multicast_action (const Processor_mask *targets, SMP_Action_handler handler, void *arg) |
Initiates an SMP multicast action to the set of target processors. More... | |
void | _SMP_Broadcast_action (SMP_Action_handler handler, void *arg) |
Initiates an SMP multicast action to the set of all online processors. More... | |
void | _SMP_Othercast_action (SMP_Action_handler handler, void *arg) |
Initiates an SMP multicast action to the set of all online processors excluding the current processor. More... | |
void | _SMP_Unicast_action (uint32_t cpu_index, SMP_Action_handler handler, void *arg) |
Initiates an SMP action on the specified target processor. More... | |
void | _SMP_Synchronize (void) |
Ensures that all store operations issued by the current processor before the call this function are visible to all other online processors. More... | |
void | _SMP_Request_start_multitasking (void) |
Requests a multitasking start on all configured and available processors. | |
void | _SMP_Request_shutdown (void) |
Requests a shutdown of all processors. More... | |
static __inline__ const Processor_mask * | _SMP_Get_online_processors (void) |
Gets all online processors. More... | |
static __inline__ const bool | _SMP_Need_inter_processor_interrupts (void) |
Indicate if inter-processor interrupts are needed. More... | |
Variables | |
Processor_mask | _SMP_Online_processors |
Set of online processors. More... | |
SuperCore SMP Implementation.
Definition in file smpimpl.h.