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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [kernel/] [v2_0/] [cdl/] [instrument.cdl] - Blame information for rev 725

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
# ====================================================================
2
#
3
#      instrument.cdl
4
#
5
#      configuration data related to the kernel instrumentation
6
#
7
# ====================================================================
8
#####ECOSGPLCOPYRIGHTBEGIN####
9
## -------------------------------------------
10
## This file is part of eCos, the Embedded Configurable Operating System.
11
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12
##
13
## eCos is free software; you can redistribute it and/or modify it under
14
## the terms of the GNU General Public License as published by the Free
15
## Software Foundation; either version 2 or (at your option) any later version.
16
##
17
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20
## for more details.
21
##
22
## You should have received a copy of the GNU General Public License along
23
## with eCos; if not, write to the Free Software Foundation, Inc.,
24
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25
##
26
## As a special exception, if other files instantiate templates or use macros
27
## or inline functions from this file, or you compile this file and link it
28
## with other works to produce a work based on this file, this file does not
29
## by itself cause the resulting work to be covered by the GNU General Public
30
## License. However the source code for this file must still be made available
31
## in accordance with section (3) of the GNU General Public License.
32
##
33
## This exception does not invalidate any other reasons why a work based on
34
## this file might be covered by the GNU General Public License.
35
##
36
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37
## at http://sources.redhat.com/ecos/ecos-license/
38
## -------------------------------------------
39
#####ECOSGPLCOPYRIGHTEND####
40
# ====================================================================
41
######DESCRIPTIONBEGIN####
42
#
43
# Author(s):      jskov
44
# Original data:  nickg
45
# Contributors:
46
# Date:           1999-07-05
47
#
48
#####DESCRIPTIONEND####
49
#
50
# ====================================================================
51
 
52
cdl_option CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER {
53
    display       "Use buffer provided by the application"
54
    flavor        bool
55
    default_value 0
56
    description "
57
          In most circumstances the kernel should provide the
58
          instrumentation circular buffer itself. Occasionally
59
          application code may wish to provide the buffer instead,
60
          giving the application code more convenient access to the
61
          buffer. This also makes it possible to put the circular
62
          buffer in special areas of memory, for example a region that
63
          is shared with the host."
64
}
65
 
66
cdl_option CYGNUM_KERNEL_INSTRUMENT_BUFFER_SIZE {
67
    display       "Size of instrumentation buffer size"
68
    flavor        data
69
    legal_values  16 to 0x100000
70
    default_value 256
71
    description   "
72
        If kernel instrumentation is enabled then the instrumentation
73
        data goes into a circular buffer. A larger buffer allows
74
        more data to be stored, but at a significant cost in memory.
75
        The value of this option corresponds to the number of entries
76
        in the table, and typically each entry will require 16 bytes
77
        of memory."
78
}
79
 
80
cdl_option CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP {
81
    display       "Wrap instrument buffer"
82
    default_value 1
83
    description   "
84
        When the instrumentation buffer is full it can either be restarted
85
        from the beginning, overwriting older data, or it can stop at the
86
        end. The former is useful if you want to look at the last entries
87
        made while the latter is useful if you want to look at the first
88
        few."
89
}
90
 
91
cdl_option CYGDBG_KERNEL_INSTRUMENT_FLAGS {
92
    display       "Perform selective instrumentation"
93
    default_value 1
94
    description   "
95
        The kernel can either collect all instrumentation events, or
96
        it can filter out events at runtime based on a set of flags.
97
        For example it would be possible to decide at runtime that
98
        only scheduler and interrupt instrumentation flags are of
99
        interest and that all other flags should be ignored. This
100
        flag mechanism involves extra code and processor cycle
101
        overhead in the instrumentation code, so it can be disabled
102
        if the application developer is interested in all
103
        instrumentation events."
104
}
105
 
106
cdl_option CYGDBG_KERNEL_INSTRUMENT_SCHED {
107
    display       "Instrument the scheduler"
108
    default_value 1
109
    active_if     CYGPKG_KERNEL_SCHED
110
    description   "
111
        It is possible to perform selective instrumentation at
112
        run-time. It is also possible to disable instrumentation
113
        in various kernel components at compile-time, thus
114
        reducing the code size overheads. This option controls
115
        whether or not instrumentation support is compiled into
116
        the scheduling code."
117
}
118
 
119
cdl_option CYGDBG_KERNEL_INSTRUMENT_THREAD {
120
    display       "Instrument thread operations"
121
    default_value 1
122
    active_if     CYGPKG_KERNEL_THREADS
123
    description   "
124
        It is possible to perform selective instrumentation at
125
        run-time. It is also possible to disable instrumentation
126
        in various kernel components at compile-time, thus
127
        reducing the code size overheads. This option controls
128
        whether or not instrumentation support is compiled into
129
        the code that manipulates threads."
130
}
131
 
132
cdl_option CYGDBG_KERNEL_INSTRUMENT_INTR {
133
    display       "Instrument interrupts"
134
    default_value 1
135
    active_if     CYGPKG_KERNEL_INTERRUPTS
136
    description   "
137
        It is possible to perform selective instrumentation at
138
        run-time. It is also possible to disable instrumentation
139
        in various kernel components at compile-time, thus
140
        reducing the code size overheads. This option controls
141
        whether or not instrumentation support is compiled into
142
        the interrupt handling code."
143
}
144
 
145
cdl_option CYGDBG_KERNEL_INSTRUMENT_MUTEX {
146
    display       "Instrument mutex operations"
147
    default_value 1
148
    active_if     CYGPKG_KERNEL_SYNCH
149
    description   "
150
        It is possible to perform selective instrumentation at
151
        run-time. It is also possible to disable instrumentation
152
        in various kernel components at compile-time, thus
153
        reducing the code size overheads. This option controls
154
        whether or not instrumentation support is compiled into
155
        the mutex code."
156
}
157
 
158
cdl_option CYGDBG_KERNEL_INSTRUMENT_CONDVAR {
159
    display       "Instrument condition variable operations"
160
    default_value 1
161
    active_if     CYGPKG_KERNEL_SYNCH
162
    description   "
163
        It is possible to perform selective instrumentation at
164
        run-time. It is also possible to disable instrumentation
165
        in various kernel components at compile-time, thus
166
        reducing the code size overheads. This option controls
167
        whether or not instrumentation support is compiled into
168
        the condition variable code."
169
}
170
 
171
cdl_option CYGDBG_KERNEL_INSTRUMENT_BINSEM {
172
    display       "Instrument binary semaphore operations"
173
    default_value 1
174
    active_if     CYGPKG_KERNEL_SYNCH
175
    description   "
176
        It is possible to perform selective instrumentation at
177
        run-time. It is also possible to disable instrumentation
178
        in various kernel components at compile-time, thus
179
        reducing the code size overheads. This option controls
180
        whether or not instrumentation support is compiled into
181
        the binary semaphore code."
182
}
183
 
184
cdl_option CYGDBG_KERNEL_INSTRUMENT_CNTSEM {
185
    display       "Instrument counting semaphore operations"
186
    default_value 1
187
    active_if     CYGPKG_KERNEL_SYNCH
188
    description   "
189
        It is possible to perform selective instrumentation at
190
        run-time. It is also possible to disable instrumentation
191
        in various kernel components at compile-time, thus
192
        reducing the code size overheads. This option controls
193
        whether or not instrumentation support is compiled into
194
        the counting semaphore code."
195
}
196
 
197
cdl_option CYGDBG_KERNEL_INSTRUMENT_MBOXT {
198
    display       "Instrument message box operations"
199
    default_value 1
200
    active_if     CYGPKG_KERNEL_SYNCH
201
    description   "
202
        It is possible to perform selective instrumentation at
203
        run-time. It is also possible to disable instrumentation
204
        in various kernel components at compile-time, thus
205
        reducing the code size overheads. This option controls
206
        whether or not instrumentation support is compiled into
207
        the message box code."
208
}
209
 
210
cdl_option CYGDBG_KERNEL_INSTRUMENT_CLOCK {
211
    display       "Instrument clock operations"
212
    default_value 1
213
    active_if     CYGVAR_KERNEL_COUNTERS_CLOCK
214
    description   "
215
        It is possible to perform selective instrumentation at
216
        run-time. It is also possible to disable instrumentation
217
        in various kernel components at compile-time, thus
218
        reducing the code size overheads. This option controls
219
        whether or not instrumentation support is compiled into
220
        the real-time clock code."
221
}
222
 
223
cdl_option CYGDBG_KERNEL_INSTRUMENT_ALARM {
224
    display       "Instrument alarm-related operations"
225
    default_value 1
226
    active_if     CYGVAR_KERNEL_COUNTERS_CLOCK
227
    description   "
228
        It is possible to perform selective instrumentation at
229
        run-time. It is also possible to disable instrumentation
230
        in various kernel components at compile-time, thus
231
        reducing the code size overheads. This option controls
232
        whether or not instrumentation support is compiled into
233
        the code related to alarm operations."
234
}
235
 
236
cdl_option CYGDBG_KERNEL_INSTRUMENT_SMP {
237
    display       "Instrument SMP-related operations"
238
    default_value 1
239
    active_if     CYGVAR_KERNEL_COUNTERS_CLOCK
240
    description   "
241
        It is possible to perform selective instrumentation at
242
        run-time. It is also possible to disable instrumentation
243
        in various kernel components at compile-time, thus
244
        reducing the code size overheads. This option controls
245
        whether or not instrumentation support is compiled into
246
        the code related to SMP operations."
247
}
248
 
249
cdl_option CYGDBG_KERNEL_INSTRUMENT_USER {
250
    display       "Support application-level instrumentation"
251
    default_value 1
252
    description   "
253
        It is possible to perform selective instrumentation at
254
        run-time. It is also possible to disable instrumentation
255
        in various kernel components at compile-time, thus
256
        reducing the code size overheads. This option controls
257
        whether or not application-level instrumentation gets
258
        compiled in."
259
}
260
 
261
cdl_component CYGDBG_KERNEL_INSTRUMENT_MSGS {
262
    display       "Print user friendly instrument messages"
263
    default_value 1
264
    description   "
265
        Include code which will convert the instrument type field
266
        into a more human understandable string"
267
 
268
    cdl_option  CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE {
269
        display   "Rebuild the header file"
270
        default_value 0
271
        description "
272
 
273
        Make (using a shell script) include/cyg/kernel/instrument_desc.h in
274
        your build tree; this is normally simply copied from the repository.
275
        If you make a permanent change to include/instrmnt.h, such that
276
        instrument_desc.h needs updating, it's up to you to first delete the
277
        master file
278
        ECOS_REPOSITORY/kernel/VERSION/include/instrument_desc.h
279
        in your source repository, make the new version by enabling this
280
        option then copy the new file
281
        back from your build place to its source in
282
        ECOS_REPOSITORY/kernel/VERSION/include/instrument_desc.h
283
        and/or commit this to any version control system that you use."
284
 
285
        make -priority 50 {
286
            /include/cyg/kernel/instrument_desc.h: /include/instrmnt.h /cdl/instrument.cdl
287
            sh $(REPOSITORY)/$(PACKAGE)/host/instr/instrument.sh $< > $@
288
        }
289
    }
290
 
291
    cdl_component CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP {
292
        display       "Build the host tool to print out a dump"
293
        default_value 0
294
        description   "
295
        Generate a host program which can dump the instrumentation
296
        data in a human readable format. You have to somehow get the
297
        instrumentation buffer into a file on the host. 'Exercise for
298
        the reader' as university lecturers tend to say."
299
 
300
        make -priority 51 {
301
            /bin/dump_instr: /include/cyg/kernel/instrument_desc.h /cdl/instrument.cdl
302
            @mkdir -p $(dir $@)
303
            @mkdir -p tempinc
304
            @cp -r $(PREFIX)/include/cyg tempinc
305
            @cp -r $(PREFIX)/include/pkgconf tempinc
306
            cc -I./tempinc $(REPOSITORY)/$(PACKAGE)/host/instr/dump_instr.c -o $(PREFIX)/bin/dump_instr
307
            @rm -rf tempinc
308
        }
309
    }
310
}
311
 
312
# EOF instrument.cdl

powered by: WebSVN 2.1.0

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