------------------------------------------------------------------------------ -- -- -- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -- -- -- S Y S T E M . T R A C E S . S E N D -- -- -- -- B o d y -- -- -- -- Copyright (C) 2001-2009, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- -- ware Foundation; either version 3, or (at your option) any later ver- -- -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -- or FITNESS FOR A PARTICULAR PURPOSE. -- -- -- -- As a special exception under Section 7 of GPL version 3, you are granted -- -- additional permissions described in the GCC Runtime Library Exception, -- -- version 3.1, as published by the Free Software Foundation. -- -- -- -- You should have received a copy of the GNU General Public License and -- -- a copy of the GCC Runtime Library Exception along with this program; -- -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -- . -- -- -- -- GNAT was originally developed by the GNAT team at New York University. -- -- Extensive contributions were provided by Ada Core Technologies Inc. -- -- -- ------------------------------------------------------------------------------ -- This version is for VxWorks targets -- Trace information is sent to WindView using the wvEvent function -- Note that wvEvent is from the VxWorks API -- When adding a new event, just give an Id to then event, and then modify -- the WindView events database. -- Refer to WindView User's Guide for more details on how to add new events -- to the events database. ---------------- -- Send_Trace -- ---------------- -- This procedure formats the string, maps the event Id to an Id -- recognized by WindView, and send the event using wvEvent separate (System.Traces.Format) procedure Send_Trace (Id : Trace_T; Info : String) is procedure Wv_Event (Id : Integer; Buffer : System.Address; Size : Integer); pragma Import (C, Wv_Event, "wvEvent"); Info_Trace : String_Trace; Id_Event : Integer; begin Info_Trace := Format_Trace (Info); case Id is when M_Accept_Complete => Id_Event := 30000; when M_Select_Else => Id_Event := 30001; when M_RDV_Complete => Id_Event := 30002; when M_Call_Complete => Id_Event := 30003; when M_Delay => Id_Event := 30004; when E_Kill => Id_Event := 30005; when E_Missed => Id_Event := 30006; when E_Timeout => Id_Event := 30007; when W_Call => Id_Event := 30010; when W_Accept => Id_Event := 30011; when W_Select => Id_Event := 30012; when W_Completion => Id_Event := 30013; when W_Delay => Id_Event := 30014; when WT_Select => Id_Event := 30015; when WT_Call => Id_Event := 30016; when WT_Completion => Id_Event := 30017; when WU_Delay => Id_Event := 30018; when PO_Call => Id_Event := 30020; when POT_Call => Id_Event := 30021; when PO_Run => Id_Event := 30022; when PO_Lock => Id_Event := 30023; when PO_Unlock => Id_Event := 30024; when PO_Done => Id_Event := 30025; when T_Create => Id_Event := 30030; when T_Activate => Id_Event := 30031; when T_Abort => Id_Event := 30032; when T_Terminate => Id_Event := 30033; -- Unrecognized events are given the special Id_Event value 29999 when others => Id_Event := 29999; end case; Wv_Event (Id_Event, Info_Trace'Address, Max_Size); end Send_Trace;