OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [sim/] [ppc/] [debug.h] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
/*  This file is part of the program psim.
2
 
3
    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
4
 
5
    This program is free software; you can redistribute it and/or modify
6
    it under the terms of the GNU General Public License as published by
7
    the Free Software Foundation; either version 2 of the License, or
8
    (at your option) any later version.
9
 
10
    This program is distributed in the hope that it will be useful,
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    GNU General Public License for more details.
14
 
15
    You should have received a copy of the GNU General Public License
16
    along with this program; if not, write to the Free Software
17
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
 
19
    */
20
 
21
 
22
#ifndef _DEBUG_H_
23
#define _DEBUG_H_
24
 
25
#include "filter_filename.h"
26
 
27
typedef enum {
28
  trace_invalid,
29
  trace_tbd,
30
  /**/
31
  trace_gdb,
32
  trace_os_emul,
33
  /**/
34
  trace_events,
35
  trace_device_tree,
36
  trace_devices,
37
  trace_binary_device,
38
  trace_com_device,
39
  trace_console_device,
40
  trace_core_device,
41
  trace_disk_device,
42
  trace_eeprom_device,
43
  trace_file_device,
44
  trace_glue_device,
45
  trace_halt_device,
46
  trace_htab_device,
47
  trace_icu_device,
48
  trace_ide_device,
49
  trace_memory_device,
50
  trace_opic_device,
51
  trace_pal_device,
52
  trace_pass_device,
53
  trace_phb_device,
54
  trace_stack_device,
55
  trace_register_device,
56
  trace_vm_device,
57
  /**/
58
  trace_disklabel_package,
59
  /**/
60
  trace_semantics,
61
  trace_idecode,
62
  trace_alu,
63
  trace_load_store,
64
  trace_model,
65
  /**/
66
  trace_vm,
67
  trace_core,
68
  trace_interrupts,
69
  trace_psim,
70
  trace_device_init,
71
  trace_cpu,
72
  trace_breakpoint,
73
  trace_opts,
74
  trace_print_info,
75
  trace_print_device_tree,
76
  trace_dump_device_tree,
77
  nr_trace_options
78
} trace_options;
79
 
80
 
81
 
82
extern int ppc_trace[nr_trace_options];
83
 
84
/* simple */
85
#define TRACE(OBJECT, ARGS) \
86
do { \
87
  if (WITH_TRACE) { \
88
    if (ppc_trace[OBJECT]) { \
89
      printf_filtered("%s:%d: ", filter_filename(__FILE__), __LINE__); \
90
      printf_filtered ARGS; \
91
    } \
92
  } \
93
} while (0)
94
 
95
/* issue */
96
#define ITRACE(OBJECT, ARGS) \
97
do { \
98
  if (WITH_TRACE) { \
99
    if (ppc_trace[OBJECT]) { \
100
      printf_filtered("%s:%d:0x%08lx:%s ", itable[MY_INDEX].file, itable[MY_INDEX].line_nr, (long)cia, itable[MY_INDEX].name); \
101
      printf_filtered ARGS; \
102
    } \
103
  } \
104
} while (0)
105
 
106
/* device */
107
#define DTRACE(OBJECT, ARGS) \
108
do { \
109
  if (WITH_TRACE) { \
110
    int trace_device = device_trace(me); \
111
    if (ppc_trace[trace_devices] \
112
        || ppc_trace[trace_##OBJECT##_device] \
113
        || trace_device) { \
114
      printf_filtered("%s:%d:%s:%s%s ", \
115
                      filter_filename(__FILE__), __LINE__, #OBJECT, \
116
                      trace_device ? device_path(me) : "", \
117
                      trace_device ? ":" : ""); \
118
      printf_filtered ARGS; \
119
    } \
120
  } \
121
} while (0)
122
 
123
/* device instance */
124
#define DITRACE(OBJECT, ARGS) \
125
do { \
126
  if (WITH_TRACE) { \
127
    device *me = device_instance_device(instance); \
128
    int trace_device = device_trace(me); \
129
    if (ppc_trace[trace_devices] \
130
        || ppc_trace[trace_##OBJECT##_device] \
131
        || trace_device) { \
132
      printf_filtered("%s:%d:%s:%s%s ", \
133
                      filter_filename(__FILE__), __LINE__, #OBJECT, \
134
                      trace_device ? device_path(me) : "", \
135
                      trace_device ? ":" : ""); \
136
      printf_filtered ARGS; \
137
    } \
138
  } \
139
} while (0)
140
 
141
/* package */
142
#define PTRACE(OBJECT, ARGS) \
143
do { \
144
  if (WITH_TRACE) { \
145
    if (ppc_trace[trace_##OBJECT##_package]) { \
146
      printf_filtered("%s:%d:%s: ", filter_filename(__FILE__), __LINE__, #OBJECT); \
147
      printf_filtered ARGS; \
148
    } \
149
  } \
150
} while (0)
151
 
152
 
153
#define ASSERT(EXPRESSION) \
154
do { \
155
  if (WITH_ASSERT) { \
156
    if (!(EXPRESSION)) { \
157
      error("%s:%d: assertion failed - %s\n", \
158
            filter_filename(__FILE__), __LINE__, #EXPRESSION); \
159
    } \
160
  } \
161
} while (0)
162
 
163
/* Parse OPTION updating the trace array */
164
extern void
165
trace_option(const char *option, int setting);
166
 
167
/* Output the list of trace options */
168
extern void trace_usage
169
(int verbose);
170
 
171
 
172
#endif /* _DEBUG_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.