source: rtems/c/src/lib/libbsp/powerpc/mbx8xx/include/coverhd.h @ 8ef3818

4.104.114.84.95
Last change on this file since 8ef3818 was 8ef3818, checked in by Joel Sherrill <joel.sherrill@…>, on Jun 12, 2000 at 7:57:02 PM

Patch from John Cotton <john.cotton@…>, Charles-Antoine Gauthier
<charles.gauthier@…>, and Darlene A. Stewart
<Darlene.Stewart@…> to add support for a number of very
significant things:

+ BSPs for many variations on the Motorola MBX8xx board series
+ Cache Manager including initial support for m68040

and PowerPC

+ Rework of mpc8xx libcpu code so all mpc8xx CPUs now use

same code base.

+ Rework of eth_comm BSP to utiltize above.

John reports this works on the 821 and 860

  • Property mode set to 100644
File size: 16.4 KB
Line 
1/*  coverhd.h
2 *
3 *  This include file has defines to represent the overhead associated
4 *  with calling a particular directive from C.  These are used in the
5 *  Timing Test Suite to ignore the overhead required to pass arguments
6 *  to directives.  On some CPUs and/or target boards, this overhead
7 *  is significant and makes it difficult to distinguish internal
8 *  RTEMS execution time from that used to call the directive.
9 *  This file should be updated after running the C overhead timing
10 *  test.  Once this update has been performed, the RTEMS Time Test
11 *  Suite should be rebuilt to account for these overhead times in the
12 *  timing results.
13 *
14 *  NOTE:  If these are all zero, then the times reported include
15 *         all calling overhead including passing of arguments.
16 *
17 *  COPYRIGHT (c) 1989-1998.
18 *  On-Line Applications Research Corporation (OAR).
19 *  Copyright assigned to U.S. Government, 1994.
20 *
21 *  The license and distribution terms for this file may be
22 *  found in the file LICENSE in this distribution or at
23 *  http://www.OARcorp.com/rtems/license.html.
24 *
25 *  $Id$
26 */
27
28#ifndef __COVERHD_h
29#define __COVERHD_h
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#include <rtems/score/targopts.h>
36
37#if ( defined(mbx821_001) || defined(mbx821_001b) || defined(mbx860_001b) )
38#if defined( INSTRUCTION_CACHE_ENABLE )
39/*
40 * 50 MHz processor, cache enabled.
41 */
42#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE      0
43#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE        0
44#define CALLING_OVERHEAD_TASK_CREATE               1
45#define CALLING_OVERHEAD_TASK_IDENT                0
46#define CALLING_OVERHEAD_TASK_START                0
47#define CALLING_OVERHEAD_TASK_RESTART              0
48#define CALLING_OVERHEAD_TASK_DELETE               0
49#define CALLING_OVERHEAD_TASK_SUSPEND              0
50#define CALLING_OVERHEAD_TASK_RESUME               0
51#define CALLING_OVERHEAD_TASK_SET_PRIORITY         0
52#define CALLING_OVERHEAD_TASK_MODE                 0
53#define CALLING_OVERHEAD_TASK_GET_NOTE             0
54#define CALLING_OVERHEAD_TASK_SET_NOTE             0
55#define CALLING_OVERHEAD_TASK_WAKE_WHEN            1
56#define CALLING_OVERHEAD_TASK_WAKE_AFTER           0
57#define CALLING_OVERHEAD_INTERRUPT_CATCH           0
58#define CALLING_OVERHEAD_CLOCK_GET                 1
59#define CALLING_OVERHEAD_CLOCK_SET                 1
60#define CALLING_OVERHEAD_CLOCK_TICK                0
61
62#define CALLING_OVERHEAD_TIMER_CREATE              0
63#define CALLING_OVERHEAD_TIMER_IDENT               0
64#define CALLING_OVERHEAD_TIMER_DELETE              0
65#define CALLING_OVERHEAD_TIMER_FIRE_AFTER          0
66#define CALLING_OVERHEAD_TIMER_FIRE_WHEN           1
67#define CALLING_OVERHEAD_TIMER_RESET               0
68#define CALLING_OVERHEAD_TIMER_CANCEL              0
69#define CALLING_OVERHEAD_SEMAPHORE_CREATE          0
70#define CALLING_OVERHEAD_SEMAPHORE_IDENT           0
71#define CALLING_OVERHEAD_SEMAPHORE_DELETE          0
72#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN          0
73#define CALLING_OVERHEAD_SEMAPHORE_RELEASE         0
74#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE      0
75#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT       0
76#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE      0
77#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND        0
78#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT      0
79#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST   0
80#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE     0
81#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH       0
82
83#define CALLING_OVERHEAD_EVENT_SEND                0
84#define CALLING_OVERHEAD_EVENT_RECEIVE             0
85#define CALLING_OVERHEAD_SIGNAL_CATCH              0
86#define CALLING_OVERHEAD_SIGNAL_SEND               0
87#define CALLING_OVERHEAD_PARTITION_CREATE          1
88#define CALLING_OVERHEAD_PARTITION_IDENT           0
89#define CALLING_OVERHEAD_PARTITION_DELETE          0
90#define CALLING_OVERHEAD_PARTITION_GET_BUFFER      0
91#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER   0
92#define CALLING_OVERHEAD_REGION_CREATE             1
93#define CALLING_OVERHEAD_REGION_IDENT              0
94#define CALLING_OVERHEAD_REGION_DELETE             0
95#define CALLING_OVERHEAD_REGION_GET_SEGMENT        0
96#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT     0
97#define CALLING_OVERHEAD_PORT_CREATE               0
98#define CALLING_OVERHEAD_PORT_IDENT                0
99#define CALLING_OVERHEAD_PORT_DELETE               0
100#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0
101#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0
102
103#define CALLING_OVERHEAD_IO_INITIALIZE             0
104#define CALLING_OVERHEAD_IO_OPEN                   0
105#define CALLING_OVERHEAD_IO_CLOSE                  0
106#define CALLING_OVERHEAD_IO_READ                   0
107#define CALLING_OVERHEAD_IO_WRITE                  0
108#define CALLING_OVERHEAD_IO_CONTROL                0
109#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED      0
110#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE     0
111#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT      0
112#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE     0
113#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL     0
114#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD     0
115#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE  0
116
117#else
118/*
119 * 50 MHz processor, cache disabled.
120 */
121#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE      4
122#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE        4
123#define CALLING_OVERHEAD_TASK_CREATE               7
124#define CALLING_OVERHEAD_TASK_IDENT                6
125#define CALLING_OVERHEAD_TASK_START                5
126#define CALLING_OVERHEAD_TASK_RESTART              5
127#define CALLING_OVERHEAD_TASK_DELETE               4
128#define CALLING_OVERHEAD_TASK_SUSPEND              4
129#define CALLING_OVERHEAD_TASK_RESUME               4
130#define CALLING_OVERHEAD_TASK_SET_PRIORITY         5
131#define CALLING_OVERHEAD_TASK_MODE                 5
132#define CALLING_OVERHEAD_TASK_GET_NOTE             5
133#define CALLING_OVERHEAD_TASK_SET_NOTE             5
134#define CALLING_OVERHEAD_TASK_WAKE_WHEN           19
135#define CALLING_OVERHEAD_TASK_WAKE_AFTER           4
136#define CALLING_OVERHEAD_INTERRUPT_CATCH           5
137#define CALLING_OVERHEAD_CLOCK_GET                20
138#define CALLING_OVERHEAD_CLOCK_SET                19
139#define CALLING_OVERHEAD_CLOCK_TICK                3
140
141#define CALLING_OVERHEAD_TIMER_CREATE              5
142#define CALLING_OVERHEAD_TIMER_IDENT               4
143#define CALLING_OVERHEAD_TIMER_DELETE              5
144#define CALLING_OVERHEAD_TIMER_FIRE_AFTER          6
145#define CALLING_OVERHEAD_TIMER_FIRE_WHEN          21
146#define CALLING_OVERHEAD_TIMER_RESET               4
147#define CALLING_OVERHEAD_TIMER_CANCEL              4
148#define CALLING_OVERHEAD_SEMAPHORE_CREATE          6
149#define CALLING_OVERHEAD_SEMAPHORE_IDENT           4
150#define CALLING_OVERHEAD_SEMAPHORE_DELETE          6
151#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN          5
152#define CALLING_OVERHEAD_SEMAPHORE_RELEASE         4
153#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE      6
154#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT       6
155#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE      4
156#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND        5
157#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT      5
158#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST   5
159#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE     6
160#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH       5
161
162#define CALLING_OVERHEAD_EVENT_SEND                5
163#define CALLING_OVERHEAD_EVENT_RECEIVE             5
164#define CALLING_OVERHEAD_SIGNAL_CATCH              4
165#define CALLING_OVERHEAD_SIGNAL_SEND               5
166#define CALLING_OVERHEAD_PARTITION_CREATE          7
167#define CALLING_OVERHEAD_PARTITION_IDENT           6
168#define CALLING_OVERHEAD_PARTITION_DELETE          4
169#define CALLING_OVERHEAD_PARTITION_GET_BUFFER      5
170#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER   5
171#define CALLING_OVERHEAD_REGION_CREATE             7
172#define CALLING_OVERHEAD_REGION_IDENT              5
173#define CALLING_OVERHEAD_REGION_DELETE             4
174#define CALLING_OVERHEAD_REGION_GET_SEGMENT        6
175#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT     5
176#define CALLING_OVERHEAD_PORT_CREATE               6
177#define CALLING_OVERHEAD_PORT_IDENT                5
178#define CALLING_OVERHEAD_PORT_DELETE               4
179#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 6
180#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 6
181
182#define CALLING_OVERHEAD_IO_INITIALIZE             6
183#define CALLING_OVERHEAD_IO_OPEN                   6
184#define CALLING_OVERHEAD_IO_CLOSE                  6
185#define CALLING_OVERHEAD_IO_READ                   6
186#define CALLING_OVERHEAD_IO_WRITE                  6
187#define CALLING_OVERHEAD_IO_CONTROL                6
188#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED      4
189#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE     5
190#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT      5
191#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE     4
192#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL     4
193#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD     5
194#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE  3
195
196#endif /* defined( INSTRUCTION_CACHE_ENABLE ) */
197
198#else
199#if defined( INSTRUCTION_CACHE_ENABLE )
200/*
201 * 40 MHz processor, cache enabled.
202 */
203#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE      0
204#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE        1
205#define CALLING_OVERHEAD_TASK_CREATE               1
206#define CALLING_OVERHEAD_TASK_IDENT                0
207#define CALLING_OVERHEAD_TASK_START                0
208#define CALLING_OVERHEAD_TASK_RESTART              0
209#define CALLING_OVERHEAD_TASK_DELETE               0
210#define CALLING_OVERHEAD_TASK_SUSPEND              0
211#define CALLING_OVERHEAD_TASK_RESUME               0
212#define CALLING_OVERHEAD_TASK_SET_PRIORITY         0
213#define CALLING_OVERHEAD_TASK_MODE                 0
214#define CALLING_OVERHEAD_TASK_GET_NOTE             0
215#define CALLING_OVERHEAD_TASK_SET_NOTE             0
216#define CALLING_OVERHEAD_TASK_WAKE_WHEN            1
217#define CALLING_OVERHEAD_TASK_WAKE_AFTER           0
218#define CALLING_OVERHEAD_INTERRUPT_CATCH           0
219#define CALLING_OVERHEAD_CLOCK_GET                 1
220#define CALLING_OVERHEAD_CLOCK_SET                 1
221#define CALLING_OVERHEAD_CLOCK_TICK                0
222
223#define CALLING_OVERHEAD_TIMER_CREATE              0
224#define CALLING_OVERHEAD_TIMER_IDENT               0
225#define CALLING_OVERHEAD_TIMER_DELETE              0
226#define CALLING_OVERHEAD_TIMER_FIRE_AFTER          0
227#define CALLING_OVERHEAD_TIMER_FIRE_WHEN           1
228#define CALLING_OVERHEAD_TIMER_RESET               0
229#define CALLING_OVERHEAD_TIMER_CANCEL              0
230#define CALLING_OVERHEAD_SEMAPHORE_CREATE          0
231#define CALLING_OVERHEAD_SEMAPHORE_IDENT           0
232#define CALLING_OVERHEAD_SEMAPHORE_DELETE          0
233#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN          0
234#define CALLING_OVERHEAD_SEMAPHORE_RELEASE         0
235#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE      0
236#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT       0
237#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE      0
238#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND        0
239#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT      0
240#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST   0
241#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE     0
242#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH       0
243
244#define CALLING_OVERHEAD_EVENT_SEND                0
245#define CALLING_OVERHEAD_EVENT_RECEIVE             0
246#define CALLING_OVERHEAD_SIGNAL_CATCH              0
247#define CALLING_OVERHEAD_SIGNAL_SEND               0
248#define CALLING_OVERHEAD_PARTITION_CREATE          1
249#define CALLING_OVERHEAD_PARTITION_IDENT           0
250#define CALLING_OVERHEAD_PARTITION_DELETE          0
251#define CALLING_OVERHEAD_PARTITION_GET_BUFFER      0
252#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER   0
253#define CALLING_OVERHEAD_REGION_CREATE             1
254#define CALLING_OVERHEAD_REGION_IDENT              0
255#define CALLING_OVERHEAD_REGION_DELETE             0
256#define CALLING_OVERHEAD_REGION_GET_SEGMENT        0
257#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT     0
258#define CALLING_OVERHEAD_PORT_CREATE               2
259#define CALLING_OVERHEAD_PORT_IDENT                0
260#define CALLING_OVERHEAD_PORT_DELETE               0
261#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0
262#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0
263
264#define CALLING_OVERHEAD_IO_INITIALIZE             0
265#define CALLING_OVERHEAD_IO_OPEN                   0
266#define CALLING_OVERHEAD_IO_CLOSE                  0
267#define CALLING_OVERHEAD_IO_READ                   0
268#define CALLING_OVERHEAD_IO_WRITE                  0
269#define CALLING_OVERHEAD_IO_CONTROL                0
270#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED      0
271#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE     0
272#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT      0
273#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE     0
274#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL     0
275#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD     0
276#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE  0
277
278#else
279/*
280 * 40 MHz processor, cache disabled.
281 */
282#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE      4
283#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE        3
284#define CALLING_OVERHEAD_TASK_CREATE               6
285#define CALLING_OVERHEAD_TASK_IDENT                5
286#define CALLING_OVERHEAD_TASK_START                5
287#define CALLING_OVERHEAD_TASK_RESTART              4
288#define CALLING_OVERHEAD_TASK_DELETE               4
289#define CALLING_OVERHEAD_TASK_SUSPEND              4
290#define CALLING_OVERHEAD_TASK_RESUME               4
291#define CALLING_OVERHEAD_TASK_SET_PRIORITY         5
292#define CALLING_OVERHEAD_TASK_MODE                 4
293#define CALLING_OVERHEAD_TASK_GET_NOTE             5
294#define CALLING_OVERHEAD_TASK_SET_NOTE             5
295#define CALLING_OVERHEAD_TASK_WAKE_WHEN           17
296#define CALLING_OVERHEAD_TASK_WAKE_AFTER           3
297#define CALLING_OVERHEAD_INTERRUPT_CATCH           5
298#define CALLING_OVERHEAD_CLOCK_GET                17
299#define CALLING_OVERHEAD_CLOCK_SET                17
300#define CALLING_OVERHEAD_CLOCK_TICK                3
301
302#define CALLING_OVERHEAD_TIMER_CREATE              4
303#define CALLING_OVERHEAD_TIMER_IDENT               4
304#define CALLING_OVERHEAD_TIMER_DELETE              5
305#define CALLING_OVERHEAD_TIMER_FIRE_AFTER          5
306#define CALLING_OVERHEAD_TIMER_FIRE_WHEN          19
307#define CALLING_OVERHEAD_TIMER_RESET               4
308#define CALLING_OVERHEAD_TIMER_CANCEL              4
309#define CALLING_OVERHEAD_SEMAPHORE_CREATE          6
310#define CALLING_OVERHEAD_SEMAPHORE_IDENT           4
311#define CALLING_OVERHEAD_SEMAPHORE_DELETE          5
312#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN          5
313#define CALLING_OVERHEAD_SEMAPHORE_RELEASE         4
314#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE      5
315#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT       5
316#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE      4
317#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND        4
318#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT      4
319#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST   5
320#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE     5
321#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH       4
322
323#define CALLING_OVERHEAD_EVENT_SEND                5
324#define CALLING_OVERHEAD_EVENT_RECEIVE             5
325#define CALLING_OVERHEAD_SIGNAL_CATCH              4
326#define CALLING_OVERHEAD_SIGNAL_SEND               4
327#define CALLING_OVERHEAD_PARTITION_CREATE          6
328#define CALLING_OVERHEAD_PARTITION_IDENT           5
329#define CALLING_OVERHEAD_PARTITION_DELETE          4
330#define CALLING_OVERHEAD_PARTITION_GET_BUFFER      5
331#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER   5
332#define CALLING_OVERHEAD_REGION_CREATE             6
333#define CALLING_OVERHEAD_REGION_IDENT              5
334#define CALLING_OVERHEAD_REGION_DELETE             4
335#define CALLING_OVERHEAD_REGION_GET_SEGMENT        6
336#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT     5
337#define CALLING_OVERHEAD_PORT_CREATE               6
338#define CALLING_OVERHEAD_PORT_IDENT                5
339#define CALLING_OVERHEAD_PORT_DELETE               4
340#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 5
341#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 5
342
343#define CALLING_OVERHEAD_IO_INITIALIZE             5
344#define CALLING_OVERHEAD_IO_OPEN                   5
345#define CALLING_OVERHEAD_IO_CLOSE                  5
346#define CALLING_OVERHEAD_IO_READ                   5
347#define CALLING_OVERHEAD_IO_WRITE                  5
348#define CALLING_OVERHEAD_IO_CONTROL                5
349#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED      3
350#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE     4
351#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT      5
352#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE     4
353#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL     4
354#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD     4
355#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE  3
356
357#endif /* defined( INSTRUCTION_CACHE_ENABLE ) */
358
359#endif
360
361#ifdef __cplusplus
362}
363#endif
364
365#endif
366/* end of include file */
Note: See TracBrowser for help on using the repository browser.