1
10
13
14
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
106
107
108
114
115
116
117
118
119
120
121
122
123
124
125
126
128
129
130
135
136
137
142
143
144
149
150
151
156
157
158
163
164
165
170
171
172
173
174
175
176
177
178
179
185
191
197
203
209
215
221
227
228
229
230
231
232
...
...
...
#define TX_SOURCE_CODE
#include "tx_api.h"
#include "tx_mutex.h"
#ifdef TX_MUTEX_ENABLE_PERFORMANCE_INFO
#include "tx_trace.h"
#endif
...
...
UINT _tx_mutex_performance_info_get(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets,
ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances)
{
#ifdef TX_MUTEX_ENABLE_PERFORMANCE_INFO
TX_INTERRUPT_SAVE_AREA
UINT status;
status = TX_SUCCESS;
if (mutex_ptr == TX_NULL)
{
status = TX_PTR_ERROR;
}if (mutex_ptr == TX_NULL) { ... }
else if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
status = TX_PTR_ERROR;
}else if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID) { ... }
else
{
TX_DISABLE
TX_TRACE_IN_LINE_INSERT(TX_TRACE_MUTEX_PERFORMANCE_INFO_GET, mutex_ptr, 0, 0, 0, TX_TRACE_MUTEX_EVENTS)
TX_EL_MUTEX_PERFORMANCE_INFO_GET_INSERT
/* ... */
if (puts != TX_NULL)
{
*puts = mutex_ptr -> tx_mutex_performance_put_count;
}if (puts != TX_NULL) { ... }
if (gets != TX_NULL)
{
*gets = mutex_ptr -> tx_mutex_performance_get_count;
}if (gets != TX_NULL) { ... }
if (suspensions != TX_NULL)
{
*suspensions = mutex_ptr -> tx_mutex_performance_suspension_count;
}if (suspensions != TX_NULL) { ... }
if (timeouts != TX_NULL)
{
*timeouts = mutex_ptr -> tx_mutex_performance_timeout_count;
}if (timeouts != TX_NULL) { ... }
if (inversions != TX_NULL)
{
*inversions = mutex_ptr -> tx_mutex_performance_priority_inversion_count;
}if (inversions != TX_NULL) { ... }
if (inheritances != TX_NULL)
{
*inheritances = mutex_ptr -> tx_mutex_performance__priority_inheritance_count;
}if (inheritances != TX_NULL) { ... }
TX_RESTORE
}else { ... }
/* ... */#else
UINT status;
if (mutex_ptr != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}if (mutex_ptr != TX_NULL) { ... }
else if (puts != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}else if (puts != TX_NULL) { ... }
else if (gets != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}else if (gets != TX_NULL) { ... }
else if (suspensions != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}else if (suspensions != TX_NULL) { ... }
else if (timeouts != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}else if (timeouts != TX_NULL) { ... }
else if (inversions != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}else if (inversions != TX_NULL) { ... }
else if (inheritances != TX_NULL)
{
status = TX_FEATURE_NOT_ENABLED;
}else if (inheritances != TX_NULL) { ... }
else
{
status = TX_FEATURE_NOT_ENABLED;
}else { ... }
/* ... */#endif
return(status);
}{ ... }