|
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: 29696 (0x7400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package V_I_Trace, seg_04ce1d
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with System; with Unchecked_Conversion; with Unsigned_Types; with V_I_Krn_Trace; with V_I_Types; use V_I_Types; package V_I_Trace is pragma Suppress (All_Checks); pragma Suppress (Exception_Tables); pragma Not_Elaborated; pragma Local_Access; subtype Address_Sized_Type is V_I_Krn_Trace.Address_Sized_Type; subtype Microseconds is V_I_Types.Universal_Scalar; type Byte is range 0 .. 255; for Byte'Size use 8; ---------------------------------------------------------------------------- -- Help in logging arguments. function To_A is new Unchecked_Conversion (Address_Sized_Type, System.Address); function To_Us is new Unchecked_Conversion (System.Address, Address_Sized_Type); function To_Us is new Unchecked_Conversion (Duration, Address_Sized_Type); function To_Us is new Unchecked_Conversion (Integer, Address_Sized_Type); function From_Us is new Unchecked_Conversion (Address_Sized_Type, System.Address); function From_Us is new Unchecked_Conversion (Address_Sized_Type, Duration); function From_Us is new Unchecked_Conversion (Address_Sized_Type, Integer); Zero : constant Address_Sized_Type := V_I_Krn_Trace.Zero; ---------------------------------------------------------------------------- -- Services needed by the Event_Log_Manager for the user and the -- logging of runtime events by the kernel type Kind_Of_Event is (No_Event, Header_Event, Runtime_Event, User_Defined_Event, User_Defined_Integer_Event, Kernel_Event, Profile_Event); -- Event Logging Operations type User_Events is (Start_Of_Sequence, Start_Process, -- Application initiates a process End_Process, -- Task completes a process Start_Buffer_Flush, -- Automatic, when full or at user request End_Buffer_Flush, Process_Base_Time, -- Process established base time Event1, Event1a, Event2, Event2a, Event3, Event3a, Event4, Event4a, Event5, Event5a, Event6, Event6a, Event7, Event7a, Event8, Event8a, Event9, Event9a, Event10, Event10a, No_Event); type Runtime_Events is (Task_Creation_Begin, Task_Creation_End, Simple_Entry_Call_Req, Simple_Entry_Call_End, Timed_Entry_Call_Req, Timed_Entry_Call_End, Timed_Entry_Call_Timeout, Cond_Entry_Call_Req, Cond_Entry_Call_End, Simple_Accept_Req, Simple_Accept_End, Select_Req, Select_Else_Req, Select_Delay_Req, Select_Terminate_Req, Select_End, Select_Else_End, Select_Delay_End, Select_Terminate_End, Delay_Req, Delay_Expired, Continue_From_Delay, Delay_Until_Req, Delay_Until_Expired, Continue_From_Delay_Until, Rte_Exception, Raise_Req, Exception_Handler, Task_Begin_Req, Task_Begin_Begin, Task_Terminate_Req, Task_Terminate, Task_Abort_Req, Task_Abort, Task_Semaphore_Wait, Task_Semaphore_Wait_Complete, Task_Semaphore_Wait_Timeout, Task_Semaphore_Signal, Memory_Allocate, Memory_Deallocate, -- Non-threaded run-time scheduling events Switch_To, Switch_To_Idle_Task, Switch_To_Rendezvous_In_Called, -- Threaded run-time scheduling events Kernel_Signal, Kernel_Wait, Kernel_Wait_Complete, Kernel_Signal_Wait, Kernel_Signal_Wait_Complete, Kernel_Timed_Wait, Kernel_Timed_Wait_Complete, Kernel_Timed_Wait_Timeout, Interrupt_Entry, Interrupt_Exit, Set_Priority, Reevaluate_Priority, Ceiling_Set_Priority, Cache_Flush, -- Passive tasks Passive_Task_Enter, Passive_Task_Leave, Passive_Task_Cond_Enter, Passive_Task_Cond_Fail, Passive_Task_Timed_Enter, Passive_Task_Timed_Timeout, Passive_Ceiling_Set_Priority, Breakpoint, -- Inserted by a.db to explain large time gap Da_First, -- marker: FIRST DA event -- Distributed Ada -- TYPE SIDE START/END Da_First_Parent_Sur, -- marker: FIRST parent-sur event Da_Simple_Entry_Req, -- simple entry parent start Da_Simple_Entry_End, -- simple entry parent end Da_Conditional_Entry_Req, -- cond entry parent start Da_Conditional_Entry_End, -- cond entry parent end Da_Timed_Entry_Req, -- timed entry parent start Da_Timed_Entry_End, -- timed entry parent end Da_Simple_Entry_Sur_Req, -- simple entry sur start Da_Simple_Entry_Sur_End, -- simple entry sur end Da_Conditional_Entry_Sur_Req,-- cond entry sur start Da_Conditional_Entry_Sur_End,-- cond entry sur end Da_Timed_Entry_Sur_Req, -- timed entry sur start Da_Timed_Entry_Sur_End, -- timed entry sur end Da_Dt_Read_Req, -- read parent start Da_Dt_Read_End, -- read parent end Da_Dt_Write_Req, -- write parent start Da_Dt_Write_End, -- write parent end Da_Stub_Read_Req, -- read sur start Da_Stub_Read_End, -- read sur end Da_Stub_Write_Req, -- write sur start Da_Stub_Write_End, -- write sur end Da_Rem_Subp_Req, -- rpc parent start Da_Rem_Subp_End, -- rpc parent end Da_Rem_Subp_Sur_Req, -- rpc sur start Da_Rem_Subp_Sur_End, -- rpc sur end Da_Last_Parent_Sur, -- marker: LAST parent-sur event -- non-parent-sur da events Da_Local_New_Req, Da_Global_Free_Req, Da_Local_Free_Req, Da_Station_Info, Da_Task_Activated_As_Sur, Da_Last -- marker: LAST DA event ); type Profile_Events is (Calls, Returns, Basic_Block, Exceptions, Interrupts, Cache_Flushes, Operand_Changed_Address, Operand_Changed_Value, Program_Generated_Value); type Runtime_Enables is array (Runtime_Events) of Boolean; Log_String_Size : constant Integer := Address_Sized_Type'Size * 4 / Character'Size; subtype Log_String is String (1 .. Log_String_Size); -- -- Raw event used in log routine type Event is record Logged_Event : Kind_Of_Event; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; Arg1 : Address_Sized_Type; Arg2 : Address_Sized_Type; Arg3 : Address_Sized_Type; Arg4 : Address_Sized_Type; end record; Event_Size : constant Integer := Event'Size; -- The use of variant records leads to problems when programs that do not -- explicitly with v_i_trace are linked with an instrumented run-time. -- These are the variants type Header_Event_Record is record Logged_Event : Kind_Of_Event; Priority : Byte; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; Task_Name : Address_Sized_Type; Phase : Address_Sized_Type; Period : Address_Sized_Type; Execution_Time : Microseconds; end record; -- On some systems, duration is 64 bits. Phase and period are converted. --for header_event_record'size use event_size; function To_Event is new Unchecked_Conversion (Header_Event_Record, Event); function To_Header_Event is new Unchecked_Conversion (Event, Header_Event_Record); type Runtime_Event_Record is record Logged_Event : Kind_Of_Event; Rts_Event : Runtime_Events; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; Arg1 : Address_Sized_Type; Arg2 : Address_Sized_Type; Arg3 : Address_Sized_Type; Arg4 : Address_Sized_Type; end record; --for runtime_event_record'size use event_size; function To_Event is new Unchecked_Conversion (Runtime_Event_Record, Event); function To_Runtime_Event is new Unchecked_Conversion (Event, Runtime_Event_Record); type Kernel_Event_Record is record Logged_Event : Kind_Of_Event; Krn_Event : Byte; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; Arg1 : Address_Sized_Type; Arg2 : Address_Sized_Type; Arg3 : Address_Sized_Type; Arg4 : Address_Sized_Type; end record; --for kernel_event_record'size use event_size; function To_Event is new Unchecked_Conversion (Kernel_Event_Record, Event); function To_Kernel_Event is new Unchecked_Conversion (Event, Kernel_Event_Record); type User_Event_Record is record Logged_Event : Kind_Of_Event; User_Event : User_Events; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; Comment : Log_String; end record; --for user_event_record'size use event_size; function To_Event is new Unchecked_Conversion (User_Event_Record, Event); function To_User_Event is new Unchecked_Conversion (Event, User_Event_Record); type User_Int_Event_Record is record Logged_Event : Kind_Of_Event; User_Event : User_Events; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; P1 : Address_Sized_Type; P2 : Address_Sized_Type; P3 : Address_Sized_Type; P4 : Address_Sized_Type; end record; --for user_int_event_record'size use event_size; function To_Event is new Unchecked_Conversion (User_Int_Event_Record, Event); function To_User_Int_Event is new Unchecked_Conversion (Event, User_Int_Event_Record); type Profile_Event_Record is record Logged_Event : Kind_Of_Event; Prof_Event : Profile_Events; Node : Integer; Task_Seqnum : Integer; Time_Stamp : Microseconds; Location : Address_Sized_Type; Word1 : Address_Sized_Type; Word2 : Address_Sized_Type; Word3 : Address_Sized_Type; end record; --for profile_event_record'size use event_size; function To_Event is new Unchecked_Conversion (Profile_Event_Record, Event); function To_Profile_Event is new Unchecked_Conversion (Event, Profile_Event_Record); Event_Record_Size : Integer; pragma Interface_Name (Event_Record_Size, "__V_I_TRACE_EVENT_RECORD_SIZE"); -- Auto_Trace : Boolean; pragma Interface_Name (Auto_Trace, "__V_I_TRACE_AUTO_TRACE"); -- Runtime_Log : Runtime_Enables; pragma Interface_Name (Runtime_Log, "__V_I_TRACE_RUNTIME_LOG"); Runtime_Setup : Runtime_Enables; -- Deliberately using constrained array. Allows use of -- unchecked_conversion from address to pointer and back. (Vads -- specific) pragma Warnings (Off); type Event_Buffer_T is array (Positive) of V_I_Trace.Event; type A_Event_Buffer_T is access Event_Buffer_T; pragma Warnings (On); Event_Buffer : A_Event_Buffer_T; Event_Buffer_Size : Integer; -- 4096 Default unless overridden by user Event_Buffer_Index : Integer; pragma Interface_Name (Event_Buffer, "__V_I_TRACE_EVENT_BUFFER"); pragma Interface_Name (Event_Buffer_Size, "__V_I_TRACE_EVENT_BUFFER_SIZE"); pragma Interface_Name (Event_Buffer_Index, "__V_I_TRACE_EVENT_BUFFER_INDEX"); Wrap_Around : Boolean; Log_Overflowed : Boolean; Disable_Locking : Boolean; Hardware_Logging : Boolean; pragma Interface_Name (Wrap_Around, "__V_I_TRACE_WRAP_AROUND"); pragma Interface_Name (Log_Overflowed, "__V_I_TRACE_LOG_OVERFLOWED"); pragma Interface_Name (Disable_Locking, "__V_I_TRACE_DISABLE_LOCKING"); pragma Interface_Name (Hardware_Logging, "__V_I_TRACE_HARDWARE_LOGGING"); -- We can't call system services in preemption callout. -- Unless the user supplies a get_time callout, we will log using the -- last event's time. Only a problem in MP Ada. Last_Secs : Microseconds; pragma Interface_Name (Last_Secs, "__V_I_TRACE_LAST_SECS"); type A_Boolean is access Boolean; type A_Integer is access Integer; type A_Uinteger is access Unsigned_Types.Unsigned_Integer; type Trace_Configuration_T is record -- User configurable Runtime_Log : Runtime_Enables; Event_Buffer_Size : Integer; -- number of records Event_Buffer : A_Event_Buffer_T; -- null is don't care Wrap_Around : Boolean; Hardware_Logging : Boolean; Disable_Locking : Boolean; -- single processor, -- not logging interrupts Nearly_Full_Callout : System.Address; -- no_addr is don't care Nearly_Full_Index : Integer; Get_Time_Callout : System.Address; -- used in user code and -- task services Krn_Get_Time_Callout : System.Address; -- callable from kernel Log_Callout : System.Address; Krn_Log_Enables : V_I_Krn_Trace.Kernel_Enables; -- Should not be modified by user -- Communication with kernel on cross systems Event_Buffer_Index : A_Integer; Log_Overflowed : A_Boolean; Init_Logging_Address : System.Address; Hardware_Logging_1 : A_Uinteger; Hardware_Logging_2 : A_Uinteger; Hardware_Logging_3 : A_Uinteger; Hardware_Logging_4 : A_Uinteger; end record; type A_Trace_Configuration_T is access Trace_Configuration_T; type Arg_Type is (Arg_Tsn, Arg_Tsa, Arg_Ra, Arg_Pc, Arg_Time, Arg_Entry, Arg_Priority, Arg_Exid, Arg_Sema, Arg_Boolean, Arg_Integer, Arg_Address, Arg_Size, Arg_Intid, Arg_Status, Arg_Cause, -- MIPS registers Arg_Station, Arg_Seq, -- for DA Arg_Id, Arg_Value, Arg_Null); type Arg_Descriptor is record Arg1_Type : Arg_Type; Arg2_Type : Arg_Type; Arg3_Type : Arg_Type; Arg4_Type : Arg_Type; end record; Arg_Descriptors : array (Runtime_Events) of Arg_Descriptor := (Task_Creation_Begin => (Arg_Priority, Arg_Ra, Arg_Null, Arg_Null), Task_Creation_End => (Arg_Tsn, Arg_Ra, Arg_Tsa, Arg_Null), Simple_Entry_Call_Req => (Arg_Tsn, Arg_Entry, Arg_Ra, Arg_Null), Simple_Entry_Call_End => (Arg_Tsn, Arg_Tsa, Arg_Null, Arg_Null), Timed_Entry_Call_Req => (Arg_Tsn, Arg_Entry, Arg_Ra, Arg_Null), Timed_Entry_Call_End => (Arg_Tsn, Arg_Boolean, Arg_Tsa, Arg_Null), Timed_Entry_Call_Timeout => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), Cond_Entry_Call_Req => (Arg_Tsn, Arg_Entry, Arg_Ra, Arg_Null), Cond_Entry_Call_End => (Arg_Tsn, Arg_Boolean, Arg_Tsa, Arg_Null), Simple_Accept_Req => (Arg_Entry, Arg_Ra, Arg_Null, Arg_Null), Simple_Accept_End => (Arg_Ra, Arg_Tsa, Arg_Null, Arg_Null), Select_Req => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Select_Else_Req => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Select_Delay_Req => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Select_Terminate_Req => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Select_End => (Arg_Entry, Arg_Null, Arg_Null, Arg_Null), Select_Else_End => (Arg_Entry, Arg_Null, Arg_Null, Arg_Null), Select_Delay_End => (Arg_Entry, Arg_Null, Arg_Null, Arg_Null), Select_Terminate_End => (Arg_Entry, Arg_Null, Arg_Null, Arg_Null), Delay_Req => (Arg_Ra, Arg_Time, Arg_Null, Arg_Null), Delay_Expired => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), Continue_From_Delay => (Arg_Tsa, Arg_Null, Arg_Null, Arg_Null), Delay_Until_Req => (Arg_Ra, Arg_Time, Arg_Null, Arg_Null), Delay_Until_Expired => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), Continue_From_Delay_Until => (Arg_Tsa, Arg_Null, Arg_Null, Arg_Null), Rte_Exception => (Arg_Exid, Arg_Ra, Arg_Null, Arg_Null), Raise_Req => (Arg_Exid, Arg_Ra, Arg_Null, Arg_Null), Exception_Handler => (Arg_Exid, Arg_Pc, Arg_Null, Arg_Null), Task_Begin_Req => (Arg_Tsn, Arg_Ra, Arg_Null, Arg_Null), Task_Begin_Begin => (Arg_Tsn, Arg_Tsn, Arg_Null, Arg_Null), Task_Terminate_Req => (Arg_Tsn, Arg_Ra, Arg_Null, Arg_Null), Task_Terminate => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), Task_Abort_Req => (Arg_Tsn, Arg_Ra, Arg_Null, Arg_Null), Task_Abort => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Task_Semaphore_Wait => (Arg_Sema, Arg_Time, Arg_Null, Arg_Null), Task_Semaphore_Wait_Complete => (Arg_Sema, Arg_Null, Arg_Null, Arg_Null), Task_Semaphore_Wait_Timeout => (Arg_Sema, Arg_Null, Arg_Null, Arg_Null), Task_Semaphore_Signal => (Arg_Sema, Arg_Null, Arg_Null, Arg_Null), Memory_Allocate => (Arg_Address, Arg_Size, Arg_Ra, Arg_Null), Memory_Deallocate => (Arg_Address, Arg_Ra, Arg_Null, Arg_Null), Switch_To => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Switch_To_Idle_Task => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), Switch_To_Rendezvous_In_Called => (Arg_Tsn, Arg_Tsa, Arg_Null, Arg_Null), Kernel_Signal => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Kernel_Wait => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Kernel_Wait_Complete => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Kernel_Signal_Wait => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Kernel_Signal_Wait_Complete => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Kernel_Timed_Wait => (Arg_Tsn, Arg_Time, Arg_Null, Arg_Null), Kernel_Timed_Wait_Complete => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Kernel_Timed_Wait_Timeout => (Arg_Tsn, Arg_Null, Arg_Null, Arg_Null), Interrupt_Entry => (Arg_Intid, Arg_Pc, Arg_Status, Arg_Cause), Interrupt_Exit => (Arg_Intid, Arg_Pc, Arg_Null, Arg_Null), Set_Priority => (Arg_Tsn, Arg_Priority, Arg_Null, Arg_Null), Reevaluate_Priority => (Arg_Tsn, Arg_Priority, Arg_Null, Arg_Null), Ceiling_Set_Priority => (Arg_Tsn, Arg_Priority, Arg_Null, Arg_Null), Cache_Flush => (Arg_Ra, Arg_Address, Arg_Size, Arg_Integer), Passive_Task_Enter => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Passive_Task_Leave => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Passive_Task_Cond_Enter => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Passive_Task_Cond_Fail => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Passive_Task_Timed_Enter => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Passive_Task_Timed_Timeout => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Passive_Ceiling_Set_Priority => (Arg_Priority, Arg_Ra, Arg_Null, Arg_Null), Breakpoint => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), -- Distributed Ada -- NOTE: Any da events which have components logged both on the -- parent and the surrogate should be added between -- da_first_parent_sur and da_last_parent_sur. -- They should have an arg_station as their FIRST arg. On the -- parent, this should be the surrogate's station number and -- visa versa. Da_First => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), -- parent-surrogate paired da events Da_First_Parent_Sur => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), Da_Simple_Entry_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Entry), Da_Simple_Entry_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Entry), Da_Conditional_Entry_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Entry), Da_Conditional_Entry_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Boolean), Da_Timed_Entry_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Entry), Da_Timed_Entry_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Boolean), Da_Simple_Entry_Sur_Req => (Arg_Station, Arg_Seq, Arg_Tsn, Arg_Entry), Da_Simple_Entry_Sur_End => (Arg_Station, Arg_Seq, Arg_Tsn, Arg_Entry), Da_Conditional_Entry_Sur_Req => (Arg_Station, Arg_Seq, Arg_Tsn, Arg_Entry), Da_Conditional_Entry_Sur_End => (Arg_Station, Arg_Seq, Arg_Tsn, Arg_Entry), Da_Timed_Entry_Sur_Req => (Arg_Station, Arg_Seq, Arg_Tsn, Arg_Entry), Da_Timed_Entry_Sur_End => (Arg_Station, Arg_Seq, Arg_Tsn, Arg_Entry), Da_Dt_Read_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Size), Da_Dt_Read_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Size), Da_Dt_Write_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Size), Da_Dt_Write_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Size), Da_Stub_Read_Req => (Arg_Station, Arg_Seq, Arg_Address, Arg_Null), Da_Stub_Read_End => (Arg_Station, Arg_Seq, Arg_Address, Arg_Null), Da_Stub_Write_Req => (Arg_Station, Arg_Seq, Arg_Address, Arg_Null), Da_Stub_Write_End => (Arg_Station, Arg_Seq, Arg_Address, Arg_Null), Da_Rem_Subp_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Null), Da_Rem_Subp_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Null), Da_Rem_Subp_Sur_Req => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Null), Da_Rem_Subp_Sur_End => (Arg_Station, Arg_Seq, Arg_Pc, Arg_Null), Da_Last_Parent_Sur => (Arg_Null, Arg_Null, Arg_Null, Arg_Null), -- non parent-surrogate paired da events Da_Local_New_Req => (Arg_Pc, Arg_Size, Arg_Null, Arg_Null), Da_Global_Free_Req => (Arg_Station, Arg_Pc, Arg_Tsn, Arg_Null), Da_Local_Free_Req => (Arg_Station, Arg_Pc, Arg_Tsn, Arg_Null), Da_Station_Info => (Arg_Station, Arg_Value, Arg_Value, Arg_Value), Da_Task_Activated_As_Sur => (Arg_Tsn, Arg_Boolean, Arg_Null, Arg_Null), Da_Last => (Arg_Null, Arg_Null, Arg_Null, Arg_Null) ); Profile_Arg_Descriptors : array (Profile_Events) of Arg_Descriptor := (Calls => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Returns => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Basic_Block => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Exceptions => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Interrupts => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Cache_Flushes => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null), Operand_Changed_Address => (Arg_Ra, Arg_Id, Arg_Address, Arg_Null), Operand_Changed_Value => (Arg_Ra, Arg_Id, Arg_Value, Arg_Value), Program_Generated_Value => (Arg_Ra, Arg_Null, Arg_Null, Arg_Null)); procedure Rte_Log (Kind : Runtime_Events; P1 : Address_Sized_Type := Zero; P2 : Address_Sized_Type := Zero; P3 : Address_Sized_Type := Zero; P4 : Address_Sized_Type := Zero); pragma Interface (Ada, Rte_Log); pragma Interface_Name (Rte_Log, "__TS_DEBUG_RTE_LOG"); procedure User_Log (Kind : User_Events; Comment : V_I_Trace.Log_String); pragma Interface (Ada, User_Log); pragma Interface_Name (User_Log, "__TS_DEBUG_USER_LOG"); procedure User_Log_Int (Kind : User_Events; P1 : Address_Sized_Type := Zero; P2 : Address_Sized_Type := Zero; P3 : Address_Sized_Type := Zero; P4 : Address_Sized_Type := Zero); pragma Interface (Ada, User_Log_Int); pragma Interface_Name (User_Log_Int, "__TS_DEBUG_USER_LOG_INT"); procedure Header_Log (Event_Rec : in out Header_Event_Record); pragma Interface (Ada, Header_Log); pragma Interface_Name (Header_Log, "__TS_DEBUG_HEADER_LOG"); ------------------------------------------------------------------ procedure Log_Call; pragma Interface (Ada, Log_Call); pragma Interface_Name (Log_Call, "__TRACE_LOG_CALL"); procedure Log_Return; pragma Interface (Ada, Log_Return); pragma Interface_Name (Log_Return, "__TRACE_LOG_RETURN"); procedure Log_Basic_Block; pragma Interface (Ada, Log_Basic_Block); pragma Interface_Name (Log_Basic_Block, "__TRACE_LOG_BLOCK"); procedure Log_Variable_Word (Id : Integer; Value : Integer); pragma Interface (Ada, Log_Variable_Word); pragma Interface_Name (Log_Variable_Word, "__TRACE_LOG_VARIABLE_WORD"); procedure Log_Variable (Id : Integer; Location : Integer; Bit_Size : Integer); pragma Interface (Ada, Log_Variable); pragma Interface_Name (Log_Variable, "__TRACE_LOG_VARIABLE"); ------------------------------------------------------------------ -- DA related sub-routines function Seq_Num_For_Sur_Req (Station : Integer) return Integer; pragma Interface (Ada, Seq_Num_For_Sur_Req); pragma Interface_Name (Seq_Num_For_Sur_Req, "__SEQ_NUM_FOR_SUR_REQ"); function Seq_Num_For_Parent_Req (Station : Integer) return Integer; pragma Interface (Ada, Seq_Num_For_Parent_Req); pragma Interface_Name (Seq_Num_For_Parent_Req, "__SEQ_NUM_FOR_PARENT_REQ"); ------------------------------------------------------------------ procedure Init_Logging (Configuration : A_Trace_Configuration_T); pragma Interface (Ada, Init_Logging); pragma Interface_Name (Init_Logging, "__TS_DEBUG_INIT_LOGGING"); end V_I_Trace;
nblk1=1c nid=0 hdr6=38 [0x00] rec0=1e rec1=00 rec2=01 rec3=02a [0x01] rec0=15 rec1=00 rec2=02 rec3=062 [0x02] rec0=11 rec1=00 rec2=03 rec3=04a [0x03] rec0=1c rec1=00 rec2=04 rec3=01c [0x04] rec0=11 rec1=00 rec2=05 rec3=026 [0x05] rec0=0e rec1=00 rec2=06 rec3=01c [0x06] rec0=1a rec1=00 rec2=07 rec3=044 [0x07] rec0=19 rec1=00 rec2=08 rec3=022 [0x08] rec0=17 rec1=00 rec2=09 rec3=01c [0x09] rec0=1a rec1=00 rec2=0a rec3=01a [0x0a] rec0=17 rec1=00 rec2=0b rec3=046 [0x0b] rec0=19 rec1=00 rec2=0c rec3=00e [0x0c] rec0=17 rec1=00 rec2=0d rec3=050 [0x0d] rec0=16 rec1=00 rec2=0e rec3=032 [0x0e] rec0=15 rec1=00 rec2=0f rec3=020 [0x0f] rec0=17 rec1=00 rec2=10 rec3=042 [0x10] rec0=0e rec1=00 rec2=11 rec3=04a [0x11] rec0=0e rec1=00 rec2=12 rec3=082 [0x12] rec0=14 rec1=00 rec2=13 rec3=020 [0x13] rec0=11 rec1=00 rec2=14 rec3=05a [0x14] rec0=15 rec1=00 rec2=15 rec3=056 [0x15] rec0=0f rec1=00 rec2=16 rec3=03c [0x16] rec0=0f rec1=00 rec2=17 rec3=00c [0x17] rec0=11 rec1=00 rec2=18 rec3=076 [0x18] rec0=14 rec1=00 rec2=19 rec3=044 [0x19] rec0=19 rec1=00 rec2=1a rec3=000 [0x1a] rec0=19 rec1=00 rec2=1b rec3=006 [0x1b] rec0=01 rec1=00 rec2=1c rec3=000 tail 0x217542450874f7c2c97d1 0x42a00088462060003