1------------------------------------------------------------------------------
2--                                                                          --
3--                GNU ADA 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 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 2,  or (at your option) any later ver- --
14-- sion. GNARL 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.  See the GNU General Public License --
17-- for  more details.  You should have  received  a copy of the GNU General --
18-- Public License  distributed with GNARL; see file COPYING.  If not, write --
19-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
20-- MA 02111-1307, USA.                                                      --
21--                                                                          --
22-- As a special exception,  if other files  instantiate  generics from this --
23-- unit, or you link  this unit with other files  to produce an executable, --
24-- this  unit  does not  by itself cause  the resulting  executable  to  be --
25-- covered  by the  GNU  General  Public  License.  This exception does not --
26-- however invalidate  any other reasons why  the executable file  might be --
27-- covered by the  GNU Public License.                                      --
28--                                                                          --
29-- GNAT was originally developed  by the GNAT team at  New York University. --
30-- Extensive contributions were provided by Ada Core Technologies Inc.      --
31--                                                                          --
32------------------------------------------------------------------------------
33
34--  This package implements functions for traces when tasking is not involved
35
36--  Warning : NO dependencies to tasking should be created here
37
38--  This package, and all its children are used to implement debug
39--  informations
40
41--  A new primitive, Send_Trace_Info (Id : Trace_T; 'data') is introduced.
42--  Trace_T is an event identifier, 'data' are the informations to pass
43--  with the event. Thid procedure is used from within the Runtime to send
44--  debug informations.
45
46--  This primitive is overloaded in System.Traces.Tasking and this package.
47
48--  Send_Trace_Info calls Send_Trace, in System.Traces.Send, which is trarget
49--  dependent, to send the debug informations to a debugger, stream ..
50
51--  To add a new event, just add them to the Trace_T type, and write the
52--  corresponding Send_Trace_Info procedure. It may be required for some
53--  target to modify Send_Trace (eg. VxWorks).
54
55--  To add a new target, just adapt System.Traces.Send to your own purpose.
56
57package System.Traces is
58
59   type Trace_T is
60     (
61      --  Events handled.
62
63      --  Messages
64      --
65      M_Accept_Complete,
66      M_Select_Else,
67      M_RDV_Complete,
68      M_Call_Complete,
69      M_Delay,
70
71      --  Errors
72      --
73      E_Missed,
74      E_Timeout,
75      E_Kill,
76
77      --  Waiting events
78      --
79      W_Call,
80      W_Accept,
81      W_Select,
82      W_Completion,
83      W_Delay,
84      WU_Delay,
85
86      WT_Call,
87      WT_Select,
88      WT_Completion,
89
90      --  Protected objects events
91      --
92      PO_Call,
93      POT_Call,
94      PO_Run,
95      PO_Lock,
96      PO_Unlock,
97      PO_Done,
98
99      --  Task handling events
100      --
101      T_Create,
102      T_Activate,
103      T_Abort,
104      T_Terminate);
105
106   --  Send_Trace_Info procedures
107
108   --  They are overloaded, depending on the parameters passed with
109   --  the event, e.g. Time information, Task name, Accept name ...
110
111   procedure Send_Trace_Info (Id : Trace_T);
112
113   procedure Send_Trace_Info (Id : Trace_T; Timeout : Duration);
114
115end System.Traces;
116