OSDN Git Service

* config/pa/fptr.c: Update license header.
[pf3gnuchains/gcc-fork.git] / gcc / ada / 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-2005 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,  51  Franklin  Street,  Fifth  Floor, --
20 -- Boston, MA 02110-1301, 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
57 package System.Traces is
58    pragma Preelaborate;
59
60    type Trace_T is
61      (
62       --  Events handled.
63
64       --  Messages
65       --
66       M_Accept_Complete,
67       M_Select_Else,
68       M_RDV_Complete,
69       M_Call_Complete,
70       M_Delay,
71
72       --  Errors
73       --
74       E_Missed,
75       E_Timeout,
76       E_Kill,
77
78       --  Waiting events
79       --
80       W_Call,
81       W_Accept,
82       W_Select,
83       W_Completion,
84       W_Delay,
85       WU_Delay,
86
87       WT_Call,
88       WT_Select,
89       WT_Completion,
90
91       --  Protected objects events
92       --
93       PO_Call,
94       POT_Call,
95       PO_Run,
96       PO_Lock,
97       PO_Unlock,
98       PO_Done,
99
100       --  Task handling events
101       --
102       T_Create,
103       T_Activate,
104       T_Abort,
105       T_Terminate);
106
107    --  Send_Trace_Info procedures
108
109    --  They are overloaded, depending on the parameters passed with
110    --  the event, e.g. Time information, Task name, Accept name ...
111
112    procedure Send_Trace_Info (Id : Trace_T);
113
114    procedure Send_Trace_Info (Id : Trace_T; Timeout : Duration);
115
116 end System.Traces;