65 #define RTTST_PROFILE_VER 2
67 typedef struct rttst_bench_res {
75 typedef struct rttst_interm_bench_res {
76 struct rttst_bench_res last;
77 struct rttst_bench_res overall;
78 } rttst_interm_bench_res_t;
80 typedef struct rttst_overall_bench_res {
81 struct rttst_bench_res result;
86 } rttst_overall_bench_res_t;
88 #define RTTST_TMBENCH_INVALID -1
89 #define RTTST_TMBENCH_TASK 0
90 #define RTTST_TMBENCH_HANDLER 1
92 typedef struct rttst_tmbench_config {
98 int histogram_bucketsize;
100 } rttst_tmbench_config_t;
102 #define RTTST_IRQBENCH_USER_TASK 0
103 #define RTTST_IRQBENCH_KERNEL_TASK 1
104 #define RTTST_IRQBENCH_HANDLER 2
105 #define RTTST_IRQBENCH_HARD_IRQ 3
107 #define RTTST_IRQBENCH_SERPORT 0
108 #define RTTST_IRQBENCH_PARPORT 1
110 typedef struct rttst_irqbench_config {
113 int calibration_loops;
114 unsigned int port_type;
115 unsigned long port_ioaddr;
116 unsigned int port_irq;
117 } rttst_irqbench_config_t;
119 typedef struct rttst_irqbench_stats {
120 unsigned long long irqs_received;
121 unsigned long long irqs_acknowledged;
122 } rttst_irqbench_stats_t;
124 struct rttst_swtest_task {
130 #define RTTST_SWTEST_FPU 0x1
131 #define RTTST_SWTEST_USE_FPU 0x2
132 #define RTTST_SWTEST_FREEZE 0x4
134 struct rttst_swtest_dir {
139 struct rttst_swtest_error {
140 struct rttst_swtest_dir last_switch;
144 #define RTTST_RTDM_NORMAL_CLOSE 0
145 #define RTTST_RTDM_DEFER_CLOSE_HANDLER 1
146 #define RTTST_RTDM_DEFER_CLOSE_CONTEXT 2
148 #define RTIOC_TYPE_TESTING RTDM_CLASS_TESTING
154 #define RTDM_SUBCLASS_TIMERBENCH 0
156 #define RTDM_SUBCLASS_IRQBENCH 1
158 #define RTDM_SUBCLASS_SWITCHTEST 2
160 #define RTDM_SUBCLASS_RTDMTEST 3
167 #define RTTST_RTIOC_INTERM_BENCH_RES \
168 _IOWR(RTIOC_TYPE_TESTING, 0x00, struct rttst_interm_bench_res)
170 #define RTTST_RTIOC_TMBENCH_START \
171 _IOW(RTIOC_TYPE_TESTING, 0x10, struct rttst_tmbench_config)
173 #define RTTST_RTIOC_TMBENCH_STOP \
174 _IOWR(RTIOC_TYPE_TESTING, 0x11, struct rttst_overall_bench_res)
176 #define RTTST_RTIOC_IRQBENCH_START \
177 _IOW(RTIOC_TYPE_TESTING, 0x20, struct rttst_irqbench_config)
179 #define RTTST_RTIOC_IRQBENCH_STOP \
180 _IO(RTIOC_TYPE_TESTING, 0x21)
182 #define RTTST_RTIOC_IRQBENCH_GET_STATS \
183 _IOR(RTIOC_TYPE_TESTING, 0x22, struct rttst_irqbench_stats)
185 #define RTTST_RTIOC_IRQBENCH_WAIT_IRQ \
186 _IO(RTIOC_TYPE_TESTING, 0x23)
188 #define RTTST_RTIOC_IRQBENCH_REPLY_IRQ \
189 _IO(RTIOC_TYPE_TESTING, 0x24)
191 #define RTTST_RTIOC_SWTEST_SET_TASKS_COUNT \
192 _IOW(RTIOC_TYPE_TESTING, 0x30, unsigned long)
194 #define RTTST_RTIOC_SWTEST_SET_CPU \
195 _IOW(RTIOC_TYPE_TESTING, 0x31, unsigned long)
197 #define RTTST_RTIOC_SWTEST_REGISTER_UTASK \
198 _IOW(RTIOC_TYPE_TESTING, 0x32, struct rttst_swtest_task)
200 #define RTTST_RTIOC_SWTEST_CREATE_KTASK \
201 _IOWR(RTIOC_TYPE_TESTING, 0x33, struct rttst_swtest_task)
203 #define RTTST_RTIOC_SWTEST_PEND \
204 _IOR(RTIOC_TYPE_TESTING, 0x34, struct rttst_swtest_task)
206 #define RTTST_RTIOC_SWTEST_SWITCH_TO \
207 _IOR(RTIOC_TYPE_TESTING, 0x35, struct rttst_swtest_dir)
209 #define RTTST_RTIOC_SWTEST_GET_SWITCHES_COUNT \
210 _IOR(RTIOC_TYPE_TESTING, 0x36, unsigned long)
212 #define RTTST_RTIOC_SWTEST_GET_LAST_ERROR \
213 _IOR(RTIOC_TYPE_TESTING, 0x37, struct rttst_swtest_error)
215 #define RTTST_RTIOC_SWTEST_SET_PAUSE \
216 _IOW(RTIOC_TYPE_TESTING, 0x38, unsigned long)
218 #define RTTST_RTIOC_RTDM_DEFER_CLOSE \
219 _IOW(RTIOC_TYPE_TESTING, 0x40, unsigned long)
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition: rtdm.h:95
Real-Time Driver Model for Xenomai, user API header.