1/2
{00249AI95−00249−01} [This clause defines the Ravenscar profile.]{Ravenscar}
2/2
{00249AI95−00249−01} The profile_identifier Ravenscar is a run−time profile. For run−time profile Ravenscar, there shall be no profile_pragma_argument_associations.
3/2
{00249AI95−00249−01} The run−time profile Ravenscar is equivalent to the following set of pragmas:
4/2
{00249AI95−00249−01} {00297AI95−00297−01} {00394AI95−00394−01} pragma Task_Dispatching_Policy (FIFO_Within_Priorities); pragma Locking_Policy (Ceiling_Locking); pragma Detect_Blocking; pragma Restrictions ( No_Abort_Statements, No_Dynamic_Attachment, No_Dynamic_Priorities, No_Implicit_Heap_Allocations, No_Local_Protected_Objects, No_Local_Timing_Events, No_Protected_Type_Allocators, No_Relative_Delay, No_Requeue_Statements, No_Select_Statements, No_Specific_Termination_Handlers, No_Task_Allocators, No_Task_Hierarchy, No_Task_Termination, Simple_Barriers, Max_Entry_Queue_Length => 1, Max_Protected_Entries => 1, Max_Task_Entries => 0, No_Dependence => Ada.Asynchronous_Task_Control, No_Dependence => Ada.Calendar, No_Dependence => Ada.Execution_Time.Group_Budget, No_Dependence => Ada.Execution_Time.Timers, No_Dependence => Ada.Task_Attributes);
4.a/2
Discussion: The Ravenscar profile is named for the location of the meeting that defined its initial version. The name is now in widespread use, so we stick with existing practice, rather than using a more descriptive name.
NOTES
5/2
41 {00249AI95−00249−01} The effect of the Max_Entry_Queue_Length => 1 restriction applies only to protected entry queues due to the accompanying restriction of Max_Task_Entries => 0.
5.a/2
{00296AI95−00296−01} {extensions to Ada 95} The Ravenscar profile is new.