File : s-traces.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
   4 --                                                                          --
   5 --                         S Y S T E M . T R A C E S                        --
   6 --                                                                          --
   7 --                                  S p e c                                 --
   8 --                                                                          --
   9 --          Copyright (C) 2001-2014, Free Software Foundation, Inc.         --
  10 --                                                                          --
  11 -- GNARL is free software;  you can redistribute it  and/or modify it under --
  12 -- terms of the  GNU General Public License as published  by the Free Soft- --
  13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
  14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  16 -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
  17 --                                                                          --
  18 --                                                                          --
  19 --                                                                          --
  20 --                                                                          --
  21 --                                                                          --
  22 -- You should have received a copy of the GNU General Public License and    --
  23 -- a copy of the GCC Runtime Library Exception along with this program;     --
  24 -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
  25 -- <http://www.gnu.org/licenses/>.                                          --
  26 --                                                                          --
  27 -- GNAT was originally developed  by the GNAT team at  New York University. --
  28 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  29 --                                                                          --
  30 ------------------------------------------------------------------------------
  31 
  32 --  This package implements functions for traces when tasking is not involved
  33 
  34 --  Warning : NO dependencies to tasking should be created here
  35 
  36 --  This package and all its children are used to implement debug information
  37 
  38 --  A new primitive, Send_Trace_Info (Id : Trace_T; 'data') is introduced.
  39 --  Trace_T is an event identifier, 'data' are the information to pass
  40 --  with the event. This procedure is used from within the Runtime to send
  41 --  debug information.
  42 
  43 --  This primitive is overloaded in System.Traces.Tasking and this package
  44 
  45 --  Send_Trace_Info calls Send_Trace, in System.Traces.Send, which is target
  46 --  dependent, to send the debug information to a debugger, stream ..
  47 
  48 --  To add a new event, just add them to the Trace_T type, and write the
  49 --  corresponding Send_Trace_Info procedure. It may be required for some
  50 --  target to modify Send_Trace (e.g. VxWorks).
  51 
  52 --  To add a new target, just adapt System.Traces.Send as needed
  53 
  54 package System.Traces is
  55    pragma Preelaborate;
  56 
  57    type Trace_T is
  58      (
  59       --  Events handled
  60 
  61       --  Messages
  62 
  63       M_Accept_Complete,
  64       M_Select_Else,
  65       M_RDV_Complete,
  66       M_Call_Complete,
  67       M_Delay,
  68 
  69       --  Errors
  70 
  71       E_Missed,
  72       E_Timeout,
  73       E_Kill,
  74 
  75       --  Waiting events
  76 
  77       W_Call,
  78       W_Accept,
  79       W_Select,
  80       W_Completion,
  81       W_Delay,
  82       WU_Delay,
  83 
  84       WT_Call,
  85       WT_Select,
  86       WT_Completion,
  87 
  88       --  Protected objects events
  89 
  90       PO_Call,
  91       POT_Call,
  92       PO_Run,
  93       PO_Lock,
  94       PO_Unlock,
  95       PO_Done,
  96 
  97       --  Task handling events
  98 
  99       T_Create,
 100       T_Activate,
 101       T_Abort,
 102       T_Terminate);
 103 
 104    --  Send_Trace_Info procedures
 105 
 106    --  They are overloaded, depending on the parameters passed with
 107    --  the event, e.g. Time information, Task name, Accept name ...
 108 
 109    procedure Send_Trace_Info (Id : Trace_T);
 110 
 111    procedure Send_Trace_Info (Id : Trace_T; Timeout : Duration);
 112 
 113 end System.Traces;