|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 30720 (0x7800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Ada_Krn_Defs, seg_04bb62
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
-- Copyright 1991 Verdix Corporation
with System;
use System;
with Unchecked_Conversion;
with Krn_Defs;
package Ada_Krn_Defs is
pragma Suppress (All_Checks);
pragma Suppress (Exception_Tables);
pragma Not_Elaborated;
pragma Local_Access;
--------------------------------------------------------------------------
-- Ada kernel type definitions for VADS_MICRO/RS6000
--------------------------------------------------------------------------
-- Kernel's task id (OS DEPENDENT)
subtype Krn_Task_Id is Krn_Defs.A_Krn_Tcb_T;
-- NO_KRN_TASK_ID: constant krn_task_id := null;
function No_Krn_Task_Id return Krn_Task_Id;
pragma Inline_Only (No_Krn_Task_Id);
-- Kernel's program id (OS DEPENDENT)
subtype Krn_Program_Id is Krn_Defs.A_Krn_Pcb_T;
-- NO_KRN_PROGRAM_ID: constant krn_program_id := null;
function No_Krn_Program_Id return Krn_Program_Id;
pragma Inline_Only (No_Krn_Program_Id);
--------------------------------------------------------------------------
-- Interrupt types (OS DEPENDENT)
--------------------------------------------------------------------------
-- Interrupt Vector ID's. For Unix: signal number.
subtype Intr_Vector_Id_T is Krn_Defs.Intr_Vector_Id_T;
-- Interrupt enable/disable status. For SYSV: sigset_t mask
subtype Intr_Status_T is Krn_Defs.Intr_Status_T;
-- All the asynchronous signals disabled
Disable_Mask : constant Integer := Krn_Defs.Disable_Mask;
Disable_33_64_Mask : constant Integer := Krn_Defs.Disable_33_64_Mask;
-- DISABLE_INTR_STATUS\x09: constant intr_status_t :=
--\x09\x09(DISABLE_MASK, DISABLE_33_64_MASK, others => 0);
function Disable_Intr_Status return Intr_Status_T;
pragma Inline_Only (Disable_Intr_Status);
-- All signals enabled
Enable_Mask : constant Integer := Krn_Defs.Enable_Mask;
Enable_33_64_Mask : constant Integer := Krn_Defs.Enable_33_64_Mask;- ENABLE_INTR_STATUS\x09: constant intr_status_t :=
--\x09\x09(ENABLE_MASK, ENABLE_33_64_MASK, others => 0);
function Enable_Intr_Status return Intr_Status_T;
pragma Inline_Only (Enable_Intr_Status);
-- Value return for a bad intr_vector passed to the interrupt
-- service routines
Bad_Intr_Vector : constant Address := Krn_Defs.Bad_Intr_Vector;
--------------------------------------------------------------------------
-- Interrupt entry types
--------------------------------------------------------------------------
-- This record type is used for interrupt entries
type Intr_Entry_T is
record
Intr_Vector :
Intr_Vector_Id_T; -- this field is referenced by Ada rts
Prio : Priority; -- this field is referenced by Ada rts
end record;
type A_Intr_Entry_T is access Intr_Entry_T;
function To_A_Intr_Entry_T is
new Unchecked_Conversion (Address, A_Intr_Entry_T);
function To_Address is new Unchecked_Conversion (A_Intr_Entry_T, Address);
--------------------------------------------------------------------------
-- intr_entry_t: init subprograms
--------------------------------------------------------------------------
procedure Intr_Entry_Init (Intr_Entry : A_Intr_Entry_T;
Intr_Vector : Intr_Vector_Id_T;
Prio : Priority := Priority'Last);
function Intr_Entry_Init (Intr_Entry : A_Intr_Entry_T;
Intr_Vector : Intr_Vector_Id_T;
Prio : Priority := Priority'Last) return Address;
function Intr_Entry_Init
(
-- does an implicit "intr_entry: a_intr_entry_t := new intr_entry_t;"
Intr_Vector : Intr_Vector_Id_T;
Prio : Priority := Priority'Last)
return Address;
pragma Inline_Only (Intr_Entry_Init);
--------------------------------------------------------------------------
-- Condition variable and mutex types
--------------------------------------------------------------------------
subtype Cond_Attr_T is Krn_Defs.Cond_Attr_T;
subtype A_Cond_Attr_T is Krn_Defs.A_Cond_Attr_T;
function To_A_Cond_Attr_T is
new Unchecked_Conversion (Address, A_Cond_Attr_T);
function To_Address is new Unchecked_Conversion (A_Cond_Attr_T, Address);
subtype Cond_T is Krn_Defs.Cond_T;
subtype A_Cond_T is Krn_Defs.A_Cond_T;
function To_A_Cond_T is new Unchecked_Conversion (Address, A_Cond_T);
function To_Address is new Unchecked_Conversion (A_Cond_T, Address);
subtype Mutex_Attr_T is Krn_Defs.Mutex_Attr_T;
subtype A_Mutex_Attr_T is Krn_Defs.A_Mutex_Attr_T;
function To_A_Mutex_Attr_T is
new Unchecked_Conversion (Address, A_Mutex_Attr_T);
function To_Address is new Unchecked_Conversion (A_Mutex_Attr_T, Address);
subtype Intr_Attr_T is Krn_Defs.Intr_Attr_T;
subtype A_Intr_Attr_T is Krn_Defs.A_Intr_Attr_T;
function To_A_Intr_Attr_T is
new Unchecked_Conversion (Address, A_Intr_Attr_T);
function To_A_Intr_Attr_T is new Unchecked_Conversion
(A_Mutex_Attr_T, A_Intr_Attr_T);
function To_A_Mutex_Attr_T is new Unchecked_Conversion
(A_Intr_Attr_T, A_Mutex_Attr_T);
function To_Address is new Unchecked_Conversion (A_Intr_Attr_T, Address);
subtype Prio_Ceiling_Attr_T is Krn_Defs.Prio_Ceiling_Attr_T;
subtype A_Prio_Ceiling_Attr_T is Krn_Defs.A_Prio_Ceiling_Attr_T;
function To_A_Prio_Ceiling_Attr_T is
new Unchecked_Conversion (Address, A_Prio_Ceiling_Attr_T);
function To_A_Prio_Ceiling_Attr_T is
new Unchecked_Conversion (A_Mutex_Attr_T, A_Prio_Ceiling_Attr_T);
function To_A_Mutex_Attr_T is
new Unchecked_Conversion (A_Prio_Ceiling_Attr_T, A_Mutex_Attr_T);
function To_Address is new Unchecked_Conversion
(A_Prio_Ceiling_Attr_T, Address);
subtype Mutex_T is Krn_Defs.Mutex_T;
subtype A_Mutex_T is Krn_Defs.A_Mutex_T;
function To_A_Mutex_T is new Unchecked_Conversion (Address, A_Mutex_T);
function To_Address is new Unchecked_Conversion (A_Mutex_T, Address);
subtype Intr_Mutex_T is Krn_Defs.Intr_Mutex_T;
subtype A_Intr_Mutex_T is Krn_Defs.A_Intr_Mutex_T;
function To_A_Intr_Mutex_T is
new Unchecked_Conversion (A_Mutex_T, A_Intr_Mutex_T);
function To_A_Mutex_T is new Unchecked_Conversion
(A_Intr_Mutex_T, A_Mutex_T);
function To_Address is new Unchecked_Conversion (A_Intr_Mutex_T, Address);
--------------------------------------------------------------------------
-- cond_attr_t: DEFAULT and init subprograms
--------------------------------------------------------------------------
function Default_Cond_Attr return A_Cond_Attr_T;
pragma Inline_Only (Default_Cond_Attr);
procedure Fifo_Cond_Attr_Init (Attr : A_Cond_Attr_T);
function Fifo_Cond_Attr_Init (Attr : A_Cond_Attr_T) return A_Cond_Attr_T;
function Fifo_Cond_Attr_Init return A_Cond_Attr_T;
-- does an implicit "attr: a_cond_attr_t := new cond_attr_t;"
pragma Inline_Only (Fifo_Cond_Attr_Init);
procedure Prio_Cond_Attr_Init (Attr : A_Cond_Attr_T);
function Prio_Cond_Attr_Init (Attr : A_Cond_Attr_T) return A_Cond_Attr_T;
function Prio_Cond_Attr_Init return A_Cond_Attr_T;
-- does an implicit "attr: a_cond_attr_t := new cond_attr_t;"
pragma Inline_Only (Prio_Cond_Attr_Init);
--------------------------------------------------------------------------
-- mutex_attr_t: DEFAULT and init subprograms
--------------------------------------------------------------------------
function Default_Mutex_Attr return A_Mutex_Attr_T;
function Default_Mutex_Attr return Address;
pragma Inline_Only (Default_Mutex_Attr);
function Default_Intr_Attr return A_Mutex_Attr_T;
function Default_Intr_Attr return Address;
pragma Inline_Only (Default_Intr_Attr);
procedure Fifo_Mutex_Attr_Init (Attr : A_Mutex_Attr_T);
function Fifo_Mutex_Attr_Init (Attr : A_Mutex_Attr_T) return A_Mutex_Attr_T;
function Fifo_Mutex_Attr_Init (Attr : A_Mutex_Attr_T) return Address;
function Fifo_Mutex_Attr_Init return A_Mutex_Attr_T;
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
function Fifo_Mutex_Attr_Init return Address;
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
pragma Inline_Only (Fifo_Mutex_Attr_Init);
procedure Prio_Mutex_Attr_Init (Attr : A_Mutex_Attr_T);
function Prio_Mutex_Attr_Init (Attr : A_Mutex_Attr_T) return A_Mutex_Attr_T;
function Prio_Mutex_Attr_Init (Attr : A_Mutex_Attr_T) return Address;
function Prio_Mutex_Attr_Init return A_Mutex_Attr_T;
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
function Prio_Mutex_Attr_Init return Address;
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
pragma Inline_Only (Prio_Mutex_Attr_Init);
procedure Prio_Inherit_Mutex_Attr_Init (Attr : A_Mutex_Attr_T);
function Prio_Inherit_Mutex_Attr_Init
(Attr : A_Mutex_Attr_T) return A_Mutex_Attr_T;
function Prio_Inherit_Mutex_Attr_Init
(Attr : A_Mutex_Attr_T) return Address;
function Prio_Inherit_Mutex_Attr_Init return A_Mutex_Attr_T;
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
function Prio_Inherit_Mutex_Attr_Init return Address;
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
pragma Inline_Only (Prio_Inherit_Mutex_Attr_Init);
-- If the archive linked by the application doesn't support
-- priority inheritance or if the CIFO
-- "pragma SET_PRIORITY_INHERITANCE_CRITERIA" isn't defined in
-- the main procedure, then, raises PROGRAM_ERROR exception.
--
-- The priority inheritance protocol is only supported in the CIFO
-- add-on product.
procedure Prio_Ceiling_Mutex_Attr_Init
(Attr : A_Mutex_Attr_T;
Ceiling_Prio : Priority := Priority'Last);
function Prio_Ceiling_Mutex_Attr_Init
(Attr : A_Mutex_Attr_T;
Ceiling_Prio : Priority := Priority'Last)
return A_Mutex_Attr_T;
function Prio_Ceiling_Mutex_Attr_Init
(Attr : A_Mutex_Attr_T;
Ceiling_Prio : Priority := Priority'Last) return Address;
function Prio_Ceiling_Mutex_Attr_Init
(
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
Ceiling_Prio : Priority := Priority'Last)
return A_Mutex_Attr_T;
function Prio_Ceiling_Mutex_Attr_Init
(
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
Ceiling_Prio : Priority := Priority'Last)
return Address;
pragma Inline_Only (Prio_Ceiling_Mutex_Attr_Init);
-- If the archive linked by the application doesn't support
-- the priority ceiling protocol, then, raises PROGRAM_ERROR exception.
--
-- The priority ceiling protocol is only supported in the CIFO
-- add-on product.
procedure Intr_Attr_Init
(Attr : A_Mutex_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status);
function Intr_Attr_Init
(Attr : A_Mutex_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return A_Mutex_Attr_T;
function Intr_Attr_Init
(Attr : A_Mutex_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return Address;
function Intr_Attr_Init
(
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return A_Mutex_Attr_T;
function Intr_Attr_Init
(
-- does an implicit "attr: a_mutex_attr_t := new mutex_attr_t;"
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return Address;
pragma Inline_Only (Intr_Attr_Init);
--------------------------------------------------------------------------
-- Task attribute types
--------------------------------------------------------------------------
-- This record type is used for passing OS specific task information
-- at task create.
--
-- Note: the priority in the task_attr_t record takes precedence over
-- that specified by "pragma priority()".
--
-- The prio and cond_attr_address fields are referenced by the Ada rts.
--
-- The mutex_attr_address is the address of a mutex_attr_t record.
-- The cond_attr_address is the address of a cond_attr_t record. Setting
-- these fields to NO_ADDR selects the default values specified
-- by the DEFAULT_TASK_ATTRIBUTES parameter in v_usr_conf's
-- configuration_table.
--
-- The sporadic_attr_address is the address of a sporadic_attr_t
-- record. Setting sporadic_attr_address to NO_ADDR selects the
-- normal, non-sporadic task. A sporadic task is only supported
-- in the CIFO add-on product.
type Task_Attr_T is
record
Prio : Priority;
Sporadic_Attr_Address : Address := No_Addr;
Mutex_Attr_Address : Address := No_Addr;
Cond_Attr_Address : Address := No_Addr;
end record;
type A_Task_Attr_T is access Task_Attr_T;
function To_A_Task_Attr_T is
new Unchecked_Conversion (Address, A_Task_Attr_T);
function To_Address is new Unchecked_Conversion (A_Task_Attr_T, Address);
-- Sporadic task attributes.
--
-- If the Ada task is to be sporadic, then,
-- the sporadic_attr_address field in the task_attr_t record
-- points to a sporadic_attr_t record.
--
-- Here's an overview of the fields in the sporadic_attr_t record:
--
-- If the available execution capacity is greater than
-- zero, then, the sporadic task's normal Ada priority is used; otherwise,
-- the priority specified by the low_prio field is used.
--
-- The replenish_period field specifies the sporadic task's
-- period. Its the amount of time to wait before the sporadic task's
-- consumed execution time is replenished.
--
-- The initial_budget field specifies the maximum execution time
-- in any sporadic task period. The available execution time is
-- initialized with the initial_budget. When this time is totally consumed,
-- the task's priority is lowered to low_prio until its replenished.
--
-- The last two fields, min_replenishment and replenishment_count,
-- control how replenishments may be combined so as to reduce the number
-- of replenishment timer events. If the previous replenishment amount
-- is less than min_replenishment, then, the current replenishment
-- amount is added to the previous replenishment amount and the time of
-- the previous replenishment is set to the time of the current
-- replenishment. If we already have replenishment_count replenishments,
-- then, the current replenishment amount is added to the previous
-- replenishment amount and the time of the previous
-- replenishment is set to the time of the current replenishment.
--
-- Note: sporadic tasks are only supported in the CIFO add-on product.
type Sporadic_Attr_T is
record
Low_Prio : Priority := Priority'First;
Replenish_Period : Duration := 10.0;
Initial_Budget : Duration := 2.0;
Min_Replenishment : Duration := 0.0;
Replenishment_Count : Natural := 2;
end record;
type A_Sporadic_Attr_T is access Sporadic_Attr_T;
function To_A_Sporadic_Attr_T is
new Unchecked_Conversion (Address, A_Sporadic_Attr_T);
function To_Address is new Unchecked_Conversion
(A_Sporadic_Attr_T, Address);
--------------------------------------------------------------------------
-- task_attr_t: DEFAULT and init subprograms
--------------------------------------------------------------------------
function Default_Task_Attr return A_Task_Attr_T;
function Default_Task_Attr return Address;
pragma Inline_Only (Default_Task_Attr);
procedure Task_Attr_Init (Task_Attr : A_Task_Attr_T;
Prio : Priority := Priority'First;
Mutex_Attr : A_Mutex_Attr_T := null;
Cond_Attr : A_Cond_Attr_T := null);
function Task_Attr_Init (Task_Attr : A_Task_Attr_T;
Prio : Priority := Priority'First;
Mutex_Attr : A_Mutex_Attr_T := null;
Cond_Attr : A_Cond_Attr_T := null) return Address;
function Task_Attr_Init
(
-- does an implicit "task_attr: a_task_attr_t := new task_attr_t;"
Prio : Priority := Priority'First;
Mutex_Attr : A_Mutex_Attr_T := null;
Cond_Attr : A_Cond_Attr_T := null)
return Address;
procedure Sporadic_Task_Attr_Init (Task_Attr : A_Task_Attr_T;
Sporadic_Attr : A_Sporadic_Attr_T;
Prio : Priority;
Low_Prio : Priority;
Replenish_Period : Duration;
Initial_Budget : Duration;
Min_Replenishment : Duration := 0.0;
Replenishment_Count : Natural := 2;
Mutex_Attr : A_Mutex_Attr_T := null;
Cond_Attr : A_Cond_Attr_T := null);
function Sporadic_Task_Attr_Init
(Task_Attr : A_Task_Attr_T;
Sporadic_Attr : A_Sporadic_Attr_T;
Prio : Priority;
Low_Prio : Priority;
Replenish_Period : Duration;
Initial_Budget : Duration;
Min_Replenishment : Duration := 0.0;
Replenishment_Count : Natural := 2;
Mutex_Attr : A_Mutex_Attr_T := null;
Cond_Attr : A_Cond_Attr_T := null) return Address;
function Sporadic_Task_Attr_Init
(
-- does an implicit "task_attr: a_task_attr_t := new task_attr_t;"
-- does an implicit "sporadic_attr: a_sporadic_attr_t :=
--\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09new sporadic_attr_t;"
Prio : Priority;
Low_Prio : Priority;
Replenish_Period : Duration;
Initial_Budget : Duration;
Min_Replenishment : Duration := 0.0;
Replenishment_Count : Natural := 2;
Mutex_Attr : A_Mutex_Attr_T := null;
Cond_Attr : A_Cond_Attr_T := null)
return Address;
pragma Inline_Only (Sporadic_Task_Attr_Init);
-- If the CIFO add-on product archive isn't linked by the application
-- program, then, raises the PROGRAM_ERROR exception.
--------------------------------------------------------------------------
-- Semaphore types
--------------------------------------------------------------------------
subtype Semaphore_T is Krn_Defs.Semaphore_T;
subtype A_Semaphore_T is Krn_Defs.A_Semaphore_T;
function To_A_Semaphore_T is
new Unchecked_Conversion (Address, A_Semaphore_T);
function To_Address is new Unchecked_Conversion (A_Semaphore_T, Address);
subtype Semaphore_State_T is Krn_Defs.Test_And_Set_T;
Semaphore_Full : constant Semaphore_State_T := Krn_Defs.Test_And_Set_False;
Semaphore_Empty : constant Semaphore_State_T := Krn_Defs.Test_And_Set_True;
subtype Semaphore_Attr_T is Krn_Defs.Semaphore_Attr_T;
subtype A_Semaphore_Attr_T is Krn_Defs.A_Semaphore_Attr_T;
function To_A_Semaphore_Attr_T is
new Unchecked_Conversion (Address, A_Semaphore_Attr_T);
function To_Address is new Unchecked_Conversion
(A_Semaphore_Attr_T, Address);
--------------------------------------------------------------------------
-- semaphore_attr_t: DEFAULT subprogram
--------------------------------------------------------------------------
function Default_Semaphore_Attr return A_Semaphore_Attr_T;
pragma Inline_Only (Default_Semaphore_Attr);
--------------------------------------------------------------------------
-- Count semaphore types (VADS EXEC augmentation)
--------------------------------------------------------------------------
subtype Count_Semaphore_T is Krn_Defs.Count_Semaphore_T;
subtype A_Count_Semaphore_T is Krn_Defs.A_Count_Semaphore_T;
function To_A_Count_Semaphore_T is
new Unchecked_Conversion (Address, A_Count_Semaphore_T);
function To_Address is new Unchecked_Conversion
(A_Count_Semaphore_T, Address);
subtype Count_Semaphore_Attr_T is Ada_Krn_Defs.Mutex_Attr_T;
subtype A_Count_Semaphore_Attr_T is Ada_Krn_Defs.A_Mutex_Attr_T;
subtype Count_Intr_Attr_T is Ada_Krn_Defs.Intr_Attr_T;
subtype A_Count_Intr_Attr_T is Ada_Krn_Defs.A_Intr_Attr_T;
function To_A_Count_Semaphore_Attr_T is
new Unchecked_Conversion (Address, A_Count_Semaphore_Attr_T);
function To_A_Count_Intr_Attr_T is
new Unchecked_Conversion (Address, A_Count_Intr_Attr_T);
function To_A_Count_Intr_Attr_T is
new Unchecked_Conversion (A_Count_Semaphore_Attr_T, A_Count_Intr_Attr_T);
function To_A_Count_Semaphore_Attr_T is
new Unchecked_Conversion (A_Count_Intr_Attr_T, A_Count_Semaphore_Attr_T);
--------------------------------------------------------------------------
-- count_semaphore_attr_t: DEFAULT and init subprograms
--------------------------------------------------------------------------
function Default_Count_Semaphore_Attr return A_Count_Semaphore_Attr_T;
pragma Inline_Only (Default_Count_Semaphore_Attr);
function Default_Count_Intr_Attr return A_Count_Semaphore_Attr_T;
pragma Inline_Only (Default_Count_Intr_Attr);
procedure Count_Intr_Attr_Init
(Attr : A_Count_Semaphore_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status);
function Count_Intr_Attr_Init
(Attr : A_Count_Semaphore_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return A_Count_Semaphore_Attr_T;
function Count_Intr_Attr_Init
(
-- does an implicit
-- "attr: a_count_semaphore_attr_t := new count_semaphore_attr_t;"
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return A_Count_Semaphore_Attr_T;
pragma Inline_Only (Count_Intr_Attr_Init);
--------------------------------------------------------------------------
-- Mailbox types (VADS EXEC augmentation)
--------------------------------------------------------------------------
subtype Mailbox_T is Krn_Defs.Mailbox_T;
subtype A_Mailbox_T is Krn_Defs.A_Mailbox_T;
function To_A_Mailbox_T is new Unchecked_Conversion (Address, A_Mailbox_T);
function To_Address is new Unchecked_Conversion (A_Mailbox_T, Address);
subtype Mailbox_Attr_T is Ada_Krn_Defs.Mutex_Attr_T;
subtype A_Mailbox_Attr_T is Ada_Krn_Defs.A_Mutex_Attr_T;
subtype Mailbox_Intr_Attr_T is Ada_Krn_Defs.Intr_Attr_T;
subtype A_Mailbox_Intr_Attr_T is Ada_Krn_Defs.A_Intr_Attr_T;
function To_A_Mailbox_Attr_T is
new Unchecked_Conversion (Address, A_Mailbox_Attr_T);
function To_A_Mailbox_Intr_Attr_T is
new Unchecked_Conversion (Address, A_Mailbox_Intr_Attr_T);
function To_A_Mailbox_Intr_Attr_T is
new Unchecked_Conversion (A_Mailbox_Attr_T, A_Mailbox_Intr_Attr_T);
function To_A_Mailbox_Attr_T is
new Unchecked_Conversion (A_Mailbox_Intr_Attr_T, A_Mailbox_Attr_T);
--------------------------------------------------------------------------
-- mailbox_attr_t: DEFAULT and init subprograms
--------------------------------------------------------------------------
function Default_Mailbox_Attr return A_Mailbox_Attr_T;
pragma Inline_Only (Default_Mailbox_Attr);
function Default_Mailbox_Intr_Attr return A_Mailbox_Attr_T;
pragma Inline_Only (Default_Mailbox_Intr_Attr);
procedure Mailbox_Intr_Attr_Init
(Attr : A_Mailbox_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status);
function Mailbox_Intr_Attr_Init
(Attr : A_Mailbox_Attr_T;
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return A_Mailbox_Attr_T;
function Mailbox_Intr_Attr_Init
(
-- does an implicit
-- "attr: a_mailbox_attr_t := new mailbox_attr_t;"
Disable_Status : Intr_Status_T := Disable_Intr_Status)
return A_Mailbox_Attr_T;
pragma Inline_Only (Mailbox_Intr_Attr_Init);
--------------------------------------------------------------------------
-- Callout and task storage types (VADS EXEC augmentation)
--------------------------------------------------------------------------
-- The Ada RTS assumes callout_event_t is an enumeration type
-- supporting the following program exit events as a minimum:
--\x09\x09type callout_event_t is (
-- EXIT_EVENT,
-- UNEXPECTED_EXIT_EVENT
--\x09\x09);
-- Callout events
type Callout_Event_T is new Krn_Defs.Callout_Event_T;
-- Id for accessing user defined storage in the task control block
subtype Task_Storage_Id is Krn_Defs.Task_Storage_Id;
No_Task_Storage_Id : constant Task_Storage_Id :=
Krn_Defs.No_Task_Storage_Id;
--------------------------------------------------------------------------
-- Name service status types (VADS EXEC augmentation)
--------------------------------------------------------------------------
-- Status returned by ada_krn_i.name_bind().
type Name_Bind_Status_T is
(Name_Bind_Ok, Name_Bind_Not_Supported, Name_Bind_Bad_Arg,
Name_Bind_Out_Of_Memory, Name_Bind_Already_Bound);
for Name_Bind_Status_T'Size use Integer'Size;
-- Status returned by ada_krn_i.name_resolve().
type Name_Resolve_Status_T is
(Name_Resolve_Ok, Name_Resolve_Not_Supported, Name_Resolve_Bad_Arg,
Name_Resolve_Timed_Out, Name_Resolve_Failed);
for Name_Resolve_Status_T'Size use Integer'Size;
end Ada_Krn_Defs;
nblk1=1d
nid=1d
hdr6=38
[0x00] rec0=1f rec1=00 rec2=01 rec3=004
[0x01] rec0=14 rec1=00 rec2=02 rec3=002
[0x02] rec0=16 rec1=00 rec2=03 rec3=06a
[0x03] rec0=12 rec1=00 rec2=04 rec3=052
[0x04] rec0=15 rec1=00 rec2=05 rec3=094
[0x05] rec0=13 rec1=00 rec2=06 rec3=060
[0x06] rec0=13 rec1=00 rec2=07 rec3=088
[0x07] rec0=13 rec1=00 rec2=08 rec3=06c
[0x08] rec0=14 rec1=00 rec2=09 rec3=024
[0x09] rec0=12 rec1=00 rec2=0a rec3=020
[0x0a] rec0=15 rec1=00 rec2=0b rec3=048
[0x0b] rec0=16 rec1=00 rec2=0c rec3=02a
[0x0c] rec0=17 rec1=00 rec2=0d rec3=040
[0x0d] rec0=15 rec1=00 rec2=0e rec3=052
[0x0e] rec0=15 rec1=00 rec2=0f rec3=080
[0x0f] rec0=11 rec1=00 rec2=10 rec3=05e
[0x10] rec0=15 rec1=00 rec2=11 rec3=01e
[0x11] rec0=12 rec1=00 rec2=12 rec3=028
[0x12] rec0=12 rec1=00 rec2=13 rec3=008
[0x13] rec0=14 rec1=00 rec2=14 rec3=078
[0x14] rec0=14 rec1=00 rec2=15 rec3=006
[0x15] rec0=12 rec1=00 rec2=16 rec3=04c
[0x16] rec0=14 rec1=00 rec2=17 rec3=026
[0x17] rec0=14 rec1=00 rec2=18 rec3=04c
[0x18] rec0=13 rec1=00 rec2=19 rec3=008
[0x19] rec0=17 rec1=00 rec2=1a rec3=006
[0x1a] rec0=15 rec1=00 rec2=1b rec3=098
[0x1b] rec0=0f rec1=00 rec2=1c rec3=000
[0x1c] rec0=0f rec1=00 rec2=1c rec3=000
tail 0x21548dcbc868472d34f8f 0x42a00088462060003
Free Block Chain:
0x1d: 0000 00 00 00 04 80 01 20 01 02 00 00 00 00 80 00 01 ┆ ┆