Xenomai  3.3
testing.h
Go to the documentation of this file.
1 
23 #ifndef _RTDM_UAPI_TESTING_H
24 #define _RTDM_UAPI_TESTING_H
25 
26 #include <linux/types.h>
27 
28 #define RTTST_PROFILE_VER 2
29 
30 typedef struct rttst_bench_res {
31  __s32 avg;
32  __s32 min;
33  __s32 max;
34  __s32 overruns;
35  __s32 test_loops;
36 } rttst_bench_res_t;
37 
38 typedef struct rttst_interm_bench_res {
39  struct rttst_bench_res last;
40  struct rttst_bench_res overall;
41 } rttst_interm_bench_res_t;
42 
43 typedef struct rttst_overall_bench_res {
44  struct rttst_bench_res result;
45  __s32 *histogram_avg;
46  __s32 *histogram_min;
47  __s32 *histogram_max;
48 } rttst_overall_bench_res_t;
49 
50 #define RTTST_TMBENCH_INVALID -1 /* internal use only */
51 #define RTTST_TMBENCH_TASK 0
52 #define RTTST_TMBENCH_HANDLER 1
53 
54 typedef struct rttst_tmbench_config {
55  int mode;
56  int priority;
57  __u64 period;
58  int warmup_loops;
59  int histogram_size;
60  int histogram_bucketsize;
61  int freeze_max;
62 } rttst_tmbench_config_t;
63 
64 struct rttst_swtest_task {
65  unsigned int index;
66  unsigned int flags;
67 };
68 
69 /* Possible values for struct rttst_swtest_task::flags. */
70 #define RTTST_SWTEST_FPU 0x1
71 #define RTTST_SWTEST_FREEZE 0x4 /* Only for kernel-space tasks. */
72 
83  unsigned int from;
84 
86  unsigned int to;
87 
89  unsigned int switch_mode;
90 };
91 
92 struct rttst_swtest_error {
93  struct rttst_swtest_dir last_switch;
94  unsigned int fp_val;
95 };
96 
97 #define RTTST_RTDM_NORMAL_CLOSE 0
98 #define RTTST_RTDM_DEFER_CLOSE_CONTEXT 1
99 
100 #define RTTST_RTDM_MAGIC_PRIMARY 0xfefbfefb
101 #define RTTST_RTDM_MAGIC_SECONDARY 0xa5b9a5b9
102 
103 #define RTTST_HEAPCHECK_ZEROOVRD 1
104 #define RTTST_HEAPCHECK_SHUFFLE 2
105 #define RTTST_HEAPCHECK_PATTERN 4
106 #define RTTST_HEAPCHECK_HOT 8
107 
108 struct rttst_heap_parms {
109  __u64 heap_size;
110  __u64 block_size;
111  int flags;
112  int nrstats;
113 };
114 
115 struct rttst_heap_stats {
116  __u64 heap_size;
117  __u64 user_size;
118  __u64 block_size;
119  __s64 alloc_avg_ns;
120  __s64 alloc_max_ns;
121  __s64 free_avg_ns;
122  __s64 free_max_ns;
123  __u64 maximum_free;
124  __u64 largest_free;
125  int nrblocks;
126  int flags;
127 };
128 
129 struct rttst_heap_stathdr {
130  int nrstats;
131  struct rttst_heap_stats *buf;
132 };
133 
134 #define RTIOC_TYPE_TESTING RTDM_CLASS_TESTING
135 
140 #define RTDM_SUBCLASS_TIMERBENCH 0
142 #define RTDM_SUBCLASS_IRQBENCH 1
144 #define RTDM_SUBCLASS_SWITCHTEST 2
146 #define RTDM_SUBCLASS_RTDMTEST 3
148 #define RTDM_SUBCLASS_HEAPCHECK 4
155 #define RTTST_RTIOC_INTERM_BENCH_RES \
156  _IOWR(RTIOC_TYPE_TESTING, 0x00, struct rttst_interm_bench_res)
157 
158 #define RTTST_RTIOC_TMBENCH_START \
159  _IOW(RTIOC_TYPE_TESTING, 0x10, struct rttst_tmbench_config)
160 
161 #define RTTST_RTIOC_TMBENCH_STOP \
162  _IOWR(RTIOC_TYPE_TESTING, 0x11, struct rttst_overall_bench_res)
163 
164 #define RTTST_RTIOC_SWTEST_SET_TASKS_COUNT \
165  _IOW(RTIOC_TYPE_TESTING, 0x30, __u32)
166 
167 #define RTTST_RTIOC_SWTEST_SET_CPU \
168  _IOW(RTIOC_TYPE_TESTING, 0x31, __u32)
169 
170 #define RTTST_RTIOC_SWTEST_REGISTER_UTASK \
171  _IOW(RTIOC_TYPE_TESTING, 0x32, struct rttst_swtest_task)
172 
173 #define RTTST_RTIOC_SWTEST_CREATE_KTASK \
174  _IOWR(RTIOC_TYPE_TESTING, 0x33, struct rttst_swtest_task)
175 
176 #define RTTST_RTIOC_SWTEST_PEND \
177  _IOR(RTIOC_TYPE_TESTING, 0x34, struct rttst_swtest_task)
178 
179 #define RTTST_RTIOC_SWTEST_SWITCH_TO \
180  _IOR(RTIOC_TYPE_TESTING, 0x35, struct rttst_swtest_dir)
181 
182 #define RTTST_RTIOC_SWTEST_GET_SWITCHES_COUNT \
183  _IOR(RTIOC_TYPE_TESTING, 0x36, __u32)
184 
185 #define RTTST_RTIOC_SWTEST_GET_LAST_ERROR \
186  _IOR(RTIOC_TYPE_TESTING, 0x37, struct rttst_swtest_error)
187 
188 #define RTTST_RTIOC_SWTEST_SET_PAUSE \
189  _IOW(RTIOC_TYPE_TESTING, 0x38, __u32)
190 
191 #define RTTST_RTIOC_RTDM_DEFER_CLOSE \
192  _IOW(RTIOC_TYPE_TESTING, 0x40, __u32)
193 
194 #define RTTST_RTIOC_RTDM_ACTOR_GET_CPU \
195  _IOR(RTIOC_TYPE_TESTING, 0x41, __u32)
196 
197 #define RTTST_RTIOC_RTDM_PING_PRIMARY \
198  _IOR(RTIOC_TYPE_TESTING, 0x42, __u32)
199 
200 #define RTTST_RTIOC_RTDM_PING_SECONDARY \
201  _IOR(RTIOC_TYPE_TESTING, 0x43, __u32)
202 
203 #define RTTST_RTIOC_HEAP_CHECK \
204  _IOR(RTIOC_TYPE_TESTING, 0x44, struct rttst_heap_parms)
205 
206 #define RTTST_RTIOC_HEAP_STAT_COLLECT \
207  _IOR(RTIOC_TYPE_TESTING, 0x45, int)
208 
211 #endif /* !_RTDM_UAPI_TESTING_H */
parameter for the RTTST_RTIOC_SWTEST_SWITCH_TO syscall
Definition: testing.h:81
unsigned int switch_mode
If the mode should be switched: 0 for no switch, 1 for switch.
Definition: testing.h:89
unsigned int to
Index of the thread that should run.
Definition: testing.h:86
unsigned int from
Index of the thread that should be replaced.
Definition: testing.h:83