summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/psim/include/coverhd.h
blob: cc279ea56fcc7fcdb638156161d8081dc8d60e73 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*  coverhd.h
 *
 *  This include file has defines to represent the overhead associated
 *  with calling a particular directive from C.  These are used in the
 *  Timing Test Suite to ignore the overhead required to pass arguments
 *  to directives.  On some CPUs and/or target boards, this overhead
 *  is significant and makes it difficult to distinguish internal
 *  RTEMS execution time from that used to call the directive.
 *  This file should be updated after running the C overhead timing
 *  test.  Once this update has been performed, the RTEMS Time Test
 *  Suite should be rebuilt to account for these overhead times in the
 *  timing results.
 *
 *  NOTE:  If these are all zero, then the times reported include
 *         all calling overhead including passing of arguments.
 *
 *  COPYRIGHT (c) 1989-1998.
 *  On-Line Applications Research Corporation (OAR).
 *  Copyright assigned to U.S. Government, 1994.
 *
 *  The license and distribution terms for this file may be
 *  found in found in the file LICENSE in this distribution or at
 *  http://www.OARcorp.com/rtems/license.html.
 *
 *  $Id$
 */

/*
 *  Updated for a 25MHz Papyrus by Andrew Bray <andy@i-cubed.co.uk>
 *
 *  Units are 100ns.
 *
 *  These numbers are of questionable use, as they are developed by calling
 *  the routine many times, thus getting its entry veneer into the (small)
 *  cache on the 403GA.  This in general is not true of the RTEMS timing
 *  tests, which usually call a routine only once, thus having no cache loaded
 *  advantage.
 *
 *  Whether the directive times are useful after deducting the function call
 *  overhead is also questionable.  The user is more interested generally
 *  in the total cost of a directive, not the cost if the procedure call
 *  is inlined!  (In general this is not true).
 *
 *  Andrew Bray 18/08/1995
 *
 */

#ifndef __COVERHD_h
#define __COVERHD_h

#ifdef __cplusplus
extern "C" {
#endif

#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE      1
#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE        1
#define CALLING_OVERHEAD_TASK_CREATE               3
#define CALLING_OVERHEAD_TASK_IDENT                1
#define CALLING_OVERHEAD_TASK_START                1
#define CALLING_OVERHEAD_TASK_RESTART              1
#define CALLING_OVERHEAD_TASK_DELETE               1
#define CALLING_OVERHEAD_TASK_SUSPEND              1
#define CALLING_OVERHEAD_TASK_RESUME               1
#define CALLING_OVERHEAD_TASK_SET_PRIORITY         1
#define CALLING_OVERHEAD_TASK_MODE                 1
#define CALLING_OVERHEAD_TASK_GET_NOTE             1
#define CALLING_OVERHEAD_TASK_SET_NOTE             1
#define CALLING_OVERHEAD_TASK_WAKE_WHEN            4
#define CALLING_OVERHEAD_TASK_WAKE_AFTER           1
#define CALLING_OVERHEAD_INTERRUPT_CATCH           1
#define CALLING_OVERHEAD_CLOCK_GET                 4
#define CALLING_OVERHEAD_CLOCK_SET                 3
#define CALLING_OVERHEAD_CLOCK_TICK                1

#define CALLING_OVERHEAD_TIMER_CREATE              1
#define CALLING_OVERHEAD_TIMER_IDENT               1
#define CALLING_OVERHEAD_TIMER_DELETE              1
#define CALLING_OVERHEAD_TIMER_FIRE_AFTER          2
#define CALLING_OVERHEAD_TIMER_FIRE_WHEN           5
#define CALLING_OVERHEAD_TIMER_RESET               1
#define CALLING_OVERHEAD_TIMER_CANCEL              1
#define CALLING_OVERHEAD_SEMAPHORE_CREATE          2
#define CALLING_OVERHEAD_SEMAPHORE_IDENT           1
#define CALLING_OVERHEAD_SEMAPHORE_DELETE          1
#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN          1
#define CALLING_OVERHEAD_SEMAPHORE_RELEASE         1
#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE      2
#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT       1
#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE      1
#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND        1
#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT      1
#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST   1
#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE     2
#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH       1

#define CALLING_OVERHEAD_EVENT_SEND                1
#define CALLING_OVERHEAD_EVENT_RECEIVE             2
#define CALLING_OVERHEAD_SIGNAL_CATCH              1
#define CALLING_OVERHEAD_SIGNAL_SEND               1
#define CALLING_OVERHEAD_PARTITION_CREATE          3
#define CALLING_OVERHEAD_PARTITION_IDENT           1
#define CALLING_OVERHEAD_PARTITION_DELETE          1
#define CALLING_OVERHEAD_PARTITION_GET_BUFFER      1
#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER   1
#define CALLING_OVERHEAD_REGION_CREATE             3
#define CALLING_OVERHEAD_REGION_IDENT              1
#define CALLING_OVERHEAD_REGION_DELETE             1
#define CALLING_OVERHEAD_REGION_GET_SEGMENT        2
#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT     1
#define CALLING_OVERHEAD_PORT_CREATE               2
#define CALLING_OVERHEAD_PORT_IDENT                1
#define CALLING_OVERHEAD_PORT_DELETE               1
#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 1
#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 2

#define CALLING_OVERHEAD_IO_INITIALIZE             2
#define CALLING_OVERHEAD_IO_OPEN                   2
#define CALLING_OVERHEAD_IO_CLOSE                  2
#define CALLING_OVERHEAD_IO_READ                   2
#define CALLING_OVERHEAD_IO_WRITE                  2
#define CALLING_OVERHEAD_IO_CONTROL                2
#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED      1
#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE     1
#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT      1
#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE     1
#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL     1
#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD     1
#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE  1

#ifdef __cplusplus
}
#endif

#endif
/* end of include file */