Line data Source code
1 :
2 : struct device;
3 :
4 : void *ldv_dev_get_drvdata(const struct device *dev);
5 : int ldv_dev_set_drvdata(struct device *dev, void *data);
6 :
7 : struct spi_master;
8 : struct device;
9 : struct spi_master *ldv_spi_alloc_master(struct device *host, unsigned size);
10 :
11 : #include <linux/ldv/err.h>
12 :
13 : #include <linux/types.h>
14 : void *ldv_kzalloc(size_t size, gfp_t flags);
15 :
16 : struct clk;
17 :
18 : extern void ldv_clk_disable(struct clk *clk);
19 : extern int ldv_clk_enable(void);
20 :
21 : #include <linux/ldv/common.h>
22 : #include <linux/ldv/irq.h>
23 : #include <verifier/common.h>
24 : #include <verifier/nondet.h>
25 : #include <verifier/memory.h>
26 : #include <verifier/thread.h>
27 :
28 : #include <linux/pci.h>
29 : #include <linux/pm.h>
30 : #include <linux/timer.h>
31 :
32 :
33 : struct ldv_struct_insmod_8 {
34 : int signal_pending;
35 : };
36 1 :
37 : struct ldv_struct_pci_scenario_1 {
38 : struct pci_driver *arg0;
39 : int signal_pending;
40 : };
41 1 :
42 : struct ldv_struct_timer_scenario_7 {
43 : struct timer_list *arg0;
44 : int signal_pending;
45 : };
46 :
47 : /* EMG Function declarations */
48 : void ldv_dispatch_default_deregister_6_8_5(void);
49 : void ldv_dispatch_default_deregister_7_8_6(void);
50 : void ldv_dispatch_default_deregister_8_8_4(void);
51 : void ldv_dispatch_default_register_6_8_8(void);
52 : void ldv_dispatch_default_register_7_8_7(void);
53 : void ldv_dispatch_default_register_8_8_9(void);
54 : void ldv_dispatch_deregister_11_1(struct pci_driver *);
55 : void ldv_dispatch_insmod_deregister_13_2(void);
56 : void ldv_dispatch_insmod_register_13_3(void);
57 : void ldv_dispatch_instance_deregister_9_1(struct timer_list *);
58 : void ldv_dispatch_instance_register_10_3(struct timer_list *);
59 : void ldv_dispatch_register_12_3(struct pci_driver *);
60 : int ldv_emg___pci_register_driver(struct pci_driver *, struct module *, char *);
61 : int ldv_emg_del_timer_sync(struct timer_list *);
62 : int ldv_emg_mod_timer(struct timer_list *, long unsigned int);
63 : void ldv_emg_pci_unregister_driver(struct pci_driver *);
64 : void ldv_insmod_8(void *);
65 : void ldv_insmod_ehci_hcd_cleanup_8_2(void (*)(void));
66 : int ldv_insmod_ehci_hcd_init_8_13(int (*)(void));
67 : void ldv_main_13(void *);
68 : void ldv_partially_ordered_scenario_3(void *);
69 : void ldv_partially_ordered_scenario_callback_3_17(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
70 : void ldv_partially_ordered_scenario_callback_3_18(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
71 : void ldv_partially_ordered_scenario_callback_3_19(int (*)(struct usb_hcd *), struct usb_hcd *);
72 : void ldv_partially_ordered_scenario_callback_3_20(int (*)(struct usb_hcd *, u16 , u16 , u16 , char *, u16 ), struct usb_hcd *, short unsigned int, short unsigned int, short unsigned int, char *, short unsigned int);
73 : void ldv_partially_ordered_scenario_callback_3_23(int (*)(struct usb_hcd *, char *), struct usb_hcd *, char *);
74 : void ldv_partially_ordered_scenario_callback_3_26(irqreturn_t (*)(struct usb_hcd *), struct usb_hcd *);
75 : void ldv_partially_ordered_scenario_callback_3_27(int (*)(struct usb_hcd *, int), struct usb_hcd *, int);
76 : void ldv_partially_ordered_scenario_callback_3_30(void (*)(struct usb_hcd *, int), struct usb_hcd *, int);
77 : void ldv_partially_ordered_scenario_callback_3_33(int (*)(struct usb_hcd *), struct usb_hcd *);
78 : void ldv_partially_ordered_scenario_callback_3_34(void (*)(struct usb_hcd *), struct usb_hcd *);
79 : void ldv_partially_ordered_scenario_callback_3_35(int (*)(struct usb_hcd *, struct urb *, int), struct usb_hcd *, struct urb *, int);
80 : void ldv_partially_ordered_scenario_callback_3_38(int (*)(struct usb_hcd *, struct urb *, unsigned int), struct usb_hcd *, struct urb *, unsigned int);
81 : void ldv_partially_ordered_scenario_callback_3_4(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
82 : int ldv_partially_ordered_scenario_probe_3_12(int (*)(struct usb_hcd *), struct usb_hcd *);
83 : void ldv_partially_ordered_scenario_release_3_2(void (*)(struct usb_hcd *), struct usb_hcd *);
84 : void ldv_pci_scenario_1(void *);
85 : int ldv_pci_scenario_probe_1_17(int (*)(struct pci_dev *, struct pci_device_id *), struct pci_dev *, struct pci_device_id *);
86 : void ldv_pci_scenario_release_1_2(void (*)(struct pci_dev *), struct pci_dev *);
87 : void ldv_pci_scenario_resume_1_5(int (*)(struct pci_dev *), struct pci_dev *);
88 : void ldv_pci_scenario_resume_early_1_6(int (*)(struct pci_dev *), struct pci_dev *);
89 : void ldv_pci_scenario_shutdown_1_3(void (*)(struct pci_dev *), struct pci_dev *);
90 : int ldv_pci_scenario_suspend_1_8(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
91 : int ldv_pci_scenario_suspend_late_1_7(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
92 : void ldv_random_containerless_scenario_2(void *);
93 : void ldv_random_containerless_scenario_4(void *);
94 : void ldv_random_containerless_scenario_5(void *);
95 : void ldv_random_containerless_scenario_6(void *);
96 : void ldv_random_containerless_scenario_callback_2_10(ssize_t (*)(struct device *, struct device_attribute *, char *, size_t ), struct device *, struct device_attribute *, char *, long unsigned int);
97 : void ldv_random_containerless_scenario_callback_2_4(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
98 : void ldv_random_containerless_scenario_callback_4_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
99 : void ldv_random_containerless_scenario_callback_4_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
100 : void ldv_random_containerless_scenario_callback_5_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
101 : void ldv_random_containerless_scenario_callback_5_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
102 : void ldv_random_containerless_scenario_callback_6_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
103 : void ldv_random_containerless_scenario_callback_6_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
104 : void ldv_timer_scenario_7(void *);
105 : void ldv_timer_scenario_callback_7_2(void (*)(unsigned long), unsigned long);
106 : int main(void);
107 :
108 : /* EMG variable declarations */
109 1 : struct ldv_thread ldv_thread_1;
110 1 : struct ldv_thread ldv_thread_13;
111 1 : struct ldv_thread ldv_thread_2;
112 1 : struct ldv_thread ldv_thread_3;
113 1 : struct ldv_thread ldv_thread_4;
114 1 : struct ldv_thread ldv_thread_5;
115 1 : struct ldv_thread ldv_thread_6;
116 1 : struct ldv_thread ldv_thread_7;
117 1 : struct ldv_thread ldv_thread_8;
118 :
119 : /* EMG variable initialization */
120 :
121 : /* EMG function definitions */
122 : /* AUX_FUNC ldv_dispatch_default_deregister_6_8_5 */
123 : void ldv_dispatch_default_deregister_6_8_5() {
124 : struct ldv_struct_insmod_8 *cf_arg_2;
125 : /* Skip thread join call */
126 1 : return;
127 : }
128 :
129 : /* AUX_FUNC ldv_dispatch_default_deregister_7_8_6 */
130 : void ldv_dispatch_default_deregister_7_8_6() {
131 : struct ldv_struct_insmod_8 *cf_arg_3;
132 : /* Skip thread join call */
133 1 : return;
134 : }
135 :
136 : /* AUX_FUNC ldv_dispatch_default_deregister_8_8_4 */
137 : void ldv_dispatch_default_deregister_8_8_4() {
138 : struct ldv_struct_insmod_8 *cf_arg_4;
139 : struct ldv_struct_insmod_8 *cf_arg_5;
140 : struct ldv_struct_insmod_8 *cf_arg_6;
141 : /* Skip thread join call */
142 : /* Skip thread join call */
143 : /* Skip thread join call */
144 1 : return;
145 : }
146 :
147 : /* AUX_FUNC ldv_dispatch_default_register_6_8_8 */
148 : void ldv_dispatch_default_register_6_8_8() {
149 : struct ldv_struct_insmod_8 *cf_arg_2;
150 4 : cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
151 3 : ldv_random_containerless_scenario_2(cf_arg_2);
152 1 : return;
153 : }
154 :
155 : /* AUX_FUNC ldv_dispatch_default_register_7_8_7 */
156 : void ldv_dispatch_default_register_7_8_7() {
157 : struct ldv_struct_insmod_8 *cf_arg_3;
158 4 : cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
159 3 : ldv_partially_ordered_scenario_3(cf_arg_3);
160 1 : return;
161 : }
162 :
163 : /* AUX_FUNC ldv_dispatch_default_register_8_8_9 */
164 : void ldv_dispatch_default_register_8_8_9() {
165 : struct ldv_struct_insmod_8 *cf_arg_4;
166 1 : struct ldv_struct_insmod_8 *cf_arg_5;
167 1 : struct ldv_struct_insmod_8 *cf_arg_6;
168 4 : cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
169 3 : ldv_random_containerless_scenario_4(cf_arg_4);
170 4 : cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
171 3 : ldv_random_containerless_scenario_5(cf_arg_5);
172 3 : cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
173 2 : ldv_random_containerless_scenario_6(cf_arg_6);
174 1 : return;
175 : }
176 :
177 : /* AUX_FUNC ldv_dispatch_deregister_11_1 */
178 : void ldv_dispatch_deregister_11_1(struct pci_driver *arg0) {
179 : struct ldv_struct_pci_scenario_1 *cf_arg_1;
180 : /* Skip thread join call */
181 2 : return;
182 : }
183 :
184 : /* AUX_FUNC ldv_dispatch_insmod_deregister_13_2 */
185 : void ldv_dispatch_insmod_deregister_13_2() {
186 : struct ldv_struct_insmod_8 *cf_arg_8;
187 : /* Skip thread join call */
188 1 : return;
189 : }
190 :
191 : /* AUX_FUNC ldv_dispatch_insmod_register_13_3 */
192 : void ldv_dispatch_insmod_register_13_3() {
193 : struct ldv_struct_insmod_8 *cf_arg_8;
194 4 : cf_arg_8 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
195 4 : ldv_insmod_8(cf_arg_8);
196 1 : return;
197 : }
198 :
199 : /* AUX_FUNC ldv_dispatch_instance_deregister_9_1 */
200 : void ldv_dispatch_instance_deregister_9_1(struct timer_list *arg0) {
201 : struct ldv_struct_timer_scenario_7 *cf_arg_7;
202 : /* Skip thread join call */
203 4 : return;
204 : }
205 :
206 : /* AUX_FUNC ldv_dispatch_instance_register_10_3 */
207 : void ldv_dispatch_instance_register_10_3(struct timer_list *arg0) {
208 : struct ldv_struct_timer_scenario_7 *cf_arg_7;
209 268 : cf_arg_7 = ldv_xmalloc(sizeof(struct ldv_struct_timer_scenario_7));
210 134 : cf_arg_7->arg0 = arg0;
211 268 : ldv_timer_scenario_7(cf_arg_7);
212 67 : return;
213 : }
214 :
215 : /* AUX_FUNC ldv_dispatch_register_12_3 */
216 : void ldv_dispatch_register_12_3(struct pci_driver *arg0) {
217 : struct ldv_struct_pci_scenario_1 *cf_arg_1;
218 8 : cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_pci_scenario_1));
219 4 : cf_arg_1->arg0 = arg0;
220 4 : ldv_pci_scenario_1(cf_arg_1);
221 2 : return;
222 : }
223 :
224 : /* AUX_FUNC ldv_emg___pci_register_driver */
225 : int ldv_emg___pci_register_driver(struct pci_driver *arg0, struct module *arg1, char *arg2) {
226 : /* LDV {"comment": "Control function '__pci_register_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg___pci_register_driver"} */
227 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
228 2 : struct pci_driver *ldv_12_pci_driver_pci_driver;
229 2 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
230 2 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
231 :
232 8 : if (ldv_undef_int()) {
233 : /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to register."} */
234 2 : ldv_12_pci_driver_pci_driver = arg0;
235 : /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
236 :
237 : /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register PCI callbacks."} */
238 4 : ldv_dispatch_register_12_3(ldv_12_pci_driver_pci_driver);
239 : /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
240 :
241 : /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Fail registration of 'pci' callbacks."} */
242 6 : return ldv_undef_int_negative();
243 : /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
244 :
245 : /* Exit function at a terminal state */
246 : }
247 : else {
248 : /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of 'pci' callbacks has been successful."} */
249 2 : return 0;
250 : /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
251 :
252 : /* Exit function at a terminal state */
253 : }
254 : /* End of the process */
255 : /* LDV {"comment": "End of control function based on process '__pci_register_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg___pci_register_driver"} */
256 : }
257 :
258 : /* AUX_FUNC ldv_emg_del_timer_sync */
259 : int ldv_emg_del_timer_sync(struct timer_list *arg0) {
260 : /* LDV {"comment": "Control function 'del_timer_sync'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_del_timer_sync"} */
261 4 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
262 : struct timer_list *ldv_9_timer_list_timer_list;
263 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
264 : /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
265 4 : ldv_9_timer_list_timer_list = arg0;
266 : /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
267 :
268 : /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister TIMER callbacks."} */
269 8 : ldv_dispatch_instance_deregister_9_1(ldv_9_timer_list_timer_list);
270 4 : /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_END"} */
271 :
272 : /* Exit function at a terminal state */
273 : /* End of the process */
274 : /* LDV {"comment": "End of control function based on process 'del_timer_sync'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_del_timer_sync"} */
275 : }
276 :
277 : /* AUX_FUNC ldv_emg_mod_timer */
278 : int ldv_emg_mod_timer(struct timer_list *arg0, long unsigned int arg1) {
279 : /* LDV {"comment": "Control function 'mod_timer'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_mod_timer"} */
280 67 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
281 67 : struct timer_list *ldv_10_timer_list_timer_list;
282 67 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
283 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
284 :
285 268 : if (ldv_undef_int()) {
286 : /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
287 67 : ldv_10_timer_list_timer_list = arg0;
288 : /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
289 :
290 : /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register TIMER callbacks."} */
291 134 : ldv_dispatch_instance_register_10_3(ldv_10_timer_list_timer_list);
292 : /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_END"} */
293 :
294 : /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Successfully modified a timer's timeout"} */
295 67 : return 0;
296 : /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
297 :
298 : /* Exit function at a terminal state */
299 : }
300 : else {
301 : /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to modify a timer's timeout"} */
302 201 : return ldv_undef_int_negative();
303 : /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
304 :
305 : /* Exit function at a terminal state */
306 : }
307 : /* End of the process */
308 : /* LDV {"comment": "End of control function based on process 'mod_timer'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_mod_timer"} */
309 : }
310 :
311 : /* AUX_FUNC ldv_emg_pci_unregister_driver */
312 : void ldv_emg_pci_unregister_driver(struct pci_driver *arg0) {
313 : /* LDV {"comment": "Control function 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_pci_unregister_driver"} */
314 2 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
315 : struct pci_driver *ldv_11_pci_driver_pci_driver;
316 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
317 : /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to deregister."} */
318 2 : ldv_11_pci_driver_pci_driver = arg0;
319 : /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
320 :
321 : /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister PCI callbacks."} */
322 4 : ldv_dispatch_deregister_11_1(ldv_11_pci_driver_pci_driver);
323 : /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
324 :
325 : /* Exit function at a terminal state */
326 2 : return;
327 : /* End of the process */
328 : return;
329 : /* LDV {"comment": "End of control function based on process 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_pci_unregister_driver"} */
330 : }
331 :
332 : /* AUX_FUNC ldv_insmod_8 */
333 : void ldv_insmod_8(void *arg0) {
334 : /* LDV {"thread": 8, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_8"} */
335 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
336 1 : void (*ldv_8_ehci_hcd_cleanup_default)(void);
337 1 : int (*ldv_8_ehci_hcd_init_default)(void);
338 1 : int ldv_8_ret_default;
339 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
340 : /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
341 2 : ldv_free(arg0);
342 : /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
343 :
344 : /* LDV {"action": "EHCI_HCD_INIT", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'ehci_hcd_init' function. Invoke callback ehci_hcd_init from ARTIFICIAL."} */
345 : /* LDV {"type": "CALLBACK", "call": "ldv_8_ret_default = (ehci_hcd_init)();", "comment": "ehci_hcd_init"} */
346 2 : ldv_8_ret_default = ldv_insmod_ehci_hcd_init_8_13(ldv_8_ehci_hcd_init_default);
347 : /* Callback post-call */
348 2 : ldv_8_ret_default = ldv_post_init(ldv_8_ret_default);
349 : /* LDV {"action": "EHCI_HCD_INIT", "type": "CALL_END"} */
350 :
351 4 : if (ldv_undef_int()) {
352 : /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
353 2 : ldv_assume(ldv_8_ret_default != 0);
354 : /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
355 :
356 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
357 : /* Skip a non-replicative signal receiving */
358 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
359 :
360 : /* Exit function at a terminal state */
361 1 : return;
362 : }
363 : else {
364 : /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
365 2 : ldv_assume(ldv_8_ret_default == 0);
366 : /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
367 :
368 4 : if (ldv_undef_int()) {
369 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_KERNEL_PARAM' callbacks with unknown registration function."} */
370 2 : ldv_dispatch_default_register_8_8_9();
371 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_END"} */
372 :
373 : /* LDV {"action": "DEFAULT_REGISTER_6", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_DEVICE_ATTRIBUTE' callbacks with unknown registration function."} */
374 2 : ldv_dispatch_default_register_6_8_8();
375 : /* LDV {"action": "DEFAULT_REGISTER_6", "type": "DISPATCH_END"} */
376 :
377 : /* LDV {"action": "DEFAULT_REGISTER_7", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_HC_DRIVER' callbacks with unknown registration function."} */
378 2 : ldv_dispatch_default_register_7_8_7();
379 : /* LDV {"action": "DEFAULT_REGISTER_7", "type": "DISPATCH_END"} */
380 :
381 : /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_HC_DRIVER' callbacks with unknown deregistration function."} */
382 2 : ldv_dispatch_default_deregister_7_8_6();
383 : /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "DISPATCH_END"} */
384 :
385 : /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_DEVICE_ATTRIBUTE' callbacks with unknown deregistration function."} */
386 2 : ldv_dispatch_default_deregister_6_8_5();
387 : /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "DISPATCH_END"} */
388 :
389 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_KERNEL_PARAM' callbacks with unknown deregistration function."} */
390 2 : ldv_dispatch_default_deregister_8_8_4();
391 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_END"} */
392 :
393 : }
394 : else {
395 : /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
396 : /* LDV {"action": "NONE", "type": "CONDITION_END"} */
397 :
398 : }
399 : /* LDV {"action": "EHCI_HCD_CLEANUP", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'ehci_hcd_cleanup' function. Invoke callback ehci_hcd_cleanup from ARTIFICIAL."} */
400 : /* LDV {"type": "CALLBACK", "call": "(ehci_hcd_cleanup)();", "comment": "ehci_hcd_cleanup"} */
401 4 : ldv_insmod_ehci_hcd_cleanup_8_2(ldv_8_ehci_hcd_cleanup_default);
402 : /* LDV {"action": "EHCI_HCD_CLEANUP", "type": "CALL_END"} */
403 :
404 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
405 : /* Skip a non-replicative signal receiving */
406 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
407 :
408 : /* Exit function at a terminal state */
409 1 : return;
410 : }
411 : /* End of the process */
412 : return;
413 : /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_8"} */
414 : }
415 :
416 : /* AUX_FUNC_CALLBACK ldv_insmod_ehci_hcd_cleanup_8_2 */
417 : void ldv_insmod_ehci_hcd_cleanup_8_2(void (*arg0)(void)) {
418 4 : (ehci_hcd_cleanup)();
419 2 : }
420 :
421 : /* AUX_FUNC_CALLBACK ldv_insmod_ehci_hcd_init_8_13 */
422 : int ldv_insmod_ehci_hcd_init_8_13(int (*arg0)(void)) {
423 5 : return (ehci_hcd_init)();
424 1 : }
425 :
426 : /* AUX_FUNC ldv_main_13 */
427 : void ldv_main_13(void *arg0) {
428 : /* LDV {"thread": 13, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_13"} */
429 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
430 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
431 : /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
432 1 : ldv_initialize();
433 : /* LDV {"action": "INIT", "type": "CONDITION_END"} */
434 :
435 : /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
436 2 : ldv_dispatch_insmod_register_13_3();
437 : /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
438 :
439 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
440 2 : ldv_dispatch_insmod_deregister_13_2();
441 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
442 :
443 : /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
444 1 : ldv_check_final_state();
445 1 : ldv_stop();
446 : /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
447 :
448 : /* Exit function at a terminal state */
449 0 : return;
450 : /* End of the process */
451 : return;
452 : /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_13"} */
453 : }
454 :
455 : /* AUX_FUNC ldv_partially_ordered_scenario_3 */
456 : void ldv_partially_ordered_scenario_3(void *arg0) {
457 : /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'partially_ordered_scenario(struct_hc_driver)'", "function": "ldv_partially_ordered_scenario_3"} */
458 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
459 1 : void (*ldv_3_callback_clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *);
460 1 : void (*ldv_3_callback_endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *);
461 1 : void (*ldv_3_callback_endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *);
462 1 : int (*ldv_3_callback_get_frame_number)(struct usb_hcd *);
463 : int (*ldv_3_callback_hub_control)(struct usb_hcd *, u16 , u16 , u16 , char *, u16 );
464 1 : int (*ldv_3_callback_hub_status_data)(struct usb_hcd *, char *);
465 1 : irqreturn_t (*ldv_3_callback_irq)(struct usb_hcd *);
466 1 : int (*ldv_3_callback_port_handed_over)(struct usb_hcd *, int);
467 1 : void (*ldv_3_callback_relinquish_port)(struct usb_hcd *, int);
468 1 : int (*ldv_3_callback_reset)(struct usb_hcd *);
469 1 : void (*ldv_3_callback_shutdown)(struct usb_hcd *);
470 1 : int (*ldv_3_callback_urb_dequeue)(struct usb_hcd *, struct urb *, int);
471 1 : int (*ldv_3_callback_urb_enqueue)(struct usb_hcd *, struct urb *, unsigned int);
472 1 : struct hc_driver *ldv_3_container_struct_hc_driver;
473 1 : short unsigned int ldv_3_ldv_param_20_1_default;
474 1 : short unsigned int ldv_3_ldv_param_20_2_default;
475 1 : short unsigned int ldv_3_ldv_param_20_3_default;
476 1 : char *ldv_3_ldv_param_20_4_default;
477 1 : short unsigned int ldv_3_ldv_param_20_5_default;
478 1 : char *ldv_3_ldv_param_23_1_default;
479 1 : int ldv_3_ldv_param_27_1_default;
480 1 : int ldv_3_ldv_param_30_1_default;
481 1 : int ldv_3_ldv_param_35_2_default;
482 1 : unsigned int ldv_3_ldv_param_38_2_default;
483 1 : struct urb *ldv_3_resource_struct_urb_ptr;
484 1 : struct usb_hcd *ldv_3_resource_struct_usb_hcd_ptr;
485 1 : struct usb_host_endpoint *ldv_3_resource_struct_usb_host_endpoint_ptr;
486 1 : int ldv_3_ret_default;
487 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
488 1 : /* Initialize automaton variables */
489 2 : ldv_3_ret_default = 1;
490 1 : /* LDV {"action": "DEFAULT_REGISTER_7", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_HC_DRIVER callbacks invocations scenario."} */
491 3 : ldv_free(arg0);
492 1 : /* LDV {"action": "DEFAULT_REGISTER_7", "type": "RECEIVE_END"} */
493 1 :
494 1 : /* LDV {"action": "DEFAULT_ALLOC_7", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
495 4 : ldv_3_container_struct_hc_driver = ldv_xmalloc_unknown_size(0);
496 : /* LDV {"action": "DEFAULT_ALLOC_7", "type": "CONDITION_END"} */
497 :
498 : /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Alloc memory for common callback arguments."} */
499 3 : ldv_3_resource_struct_urb_ptr = ldv_xmalloc_unknown_size(0);
500 3 : ldv_3_resource_struct_usb_hcd_ptr = ldv_xmalloc_unknown_size(0);
501 3 : ldv_3_resource_struct_usb_host_endpoint_ptr = ldv_xmalloc_unknown_size(0);
502 : /* LDV {"action": "INIT", "type": "CONDITION_END"} */
503 :
504 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
505 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
506 :
507 : /* Jump to a subprocess 'main' initial state */
508 1 : goto ldv_main_3;
509 : /* End of the process */
510 : return;
511 1 :
512 : /* Sbprocess main */
513 : ldv_main_3:
514 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
515 :
516 4 : if (ldv_undef_int()) {
517 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Call an initialization callback. Invoke callback start from hc_driver."} */
518 : /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = ((& ehci_run))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "probe"} */
519 2 : ldv_3_ret_default = ldv_partially_ordered_scenario_probe_3_12(ldv_3_container_struct_hc_driver->start, ldv_3_resource_struct_usb_hcd_ptr);
520 : /* Callback post-call */
521 2 : ldv_3_ret_default = ldv_filter_err_code(ldv_3_ret_default);
522 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
523 :
524 4 : if (ldv_undef_int()) {
525 : /* LDV {"action": "Y_RET", "type": "CONDITION_BEGIN", "comment": "Initialization has been successful."} */
526 2 : ldv_assume(ldv_3_ret_default == 0);
527 : /* LDV {"action": "Y_RET", "type": "CONDITION_END"} */
528 :
529 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
530 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
531 :
532 : /* Jump to a subprocess 'call' initial state */
533 1 : goto ldv_call_3;
534 : }
535 : else {
536 : /* LDV {"action": "N_RET", "type": "CONDITION_BEGIN", "comment": "Initialization has failed."} */
537 2 : ldv_assume(ldv_3_ret_default != 0);
538 : /* LDV {"action": "N_RET", "type": "CONDITION_END"} */
539 :
540 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
541 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
542 :
543 : /* Jump to a subprocess 'main' initial state */
544 1 : goto ldv_main_3;
545 : }
546 : }
547 : else {
548 : /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory for common callback arguments."} */
549 2 : ldv_free(ldv_3_resource_struct_urb_ptr);
550 2 : ldv_free(ldv_3_resource_struct_usb_hcd_ptr);
551 2 : ldv_free(ldv_3_resource_struct_usb_host_endpoint_ptr);
552 : /* LDV {"action": "FREE", "type": "CONDITION_END"} */
553 :
554 : /* LDV {"action": "DEFAULT_FREE_7", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
555 2 : ldv_free(ldv_3_container_struct_hc_driver);
556 : /* LDV {"action": "DEFAULT_FREE_7", "type": "CONDITION_END"} */
557 :
558 : /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_HC_DRIVER callbacks invocations scenario."} */
559 : /* Skip a non-replicative signal receiving */
560 : /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "RECEIVE_END"} */
561 :
562 : /* Exit function at a terminal state */
563 1 : return;
564 : }
565 : /* End of the subprocess 'main' */
566 : return;
567 1 :
568 : /* Sbprocess call */
569 : ldv_call_3:
570 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
571 :
572 2 : switch (ldv_undef_int()) {
573 3 : case 1: {
574 : /* LDV {"action": "PRE_CALL_38", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
575 : /* LDV {"action": "PRE_CALL_38", "type": "CONDITION_END"} */
576 :
577 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback urb_enqueue from hc_driver."} */
578 : /* LDV {"type": "CALLBACK", "call": "((& ehci_urb_enqueue))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_38_2_default);", "comment": "callback"} */
579 2 : ldv_partially_ordered_scenario_callback_3_38(ldv_3_callback_urb_enqueue, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_38_2_default);
580 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
581 :
582 : /* LDV {"action": "POST_CALL_38", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
583 : /* LDV {"action": "POST_CALL_38", "type": "CONDITION_END"} */
584 :
585 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
586 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
587 :
588 : /* Jump to a subprocess 'call' initial state */
589 1 : goto ldv_call_3;
590 1 : break;
591 : }
592 3 : case 2: {
593 : /* LDV {"action": "PRE_CALL_35", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
594 : /* LDV {"action": "PRE_CALL_35", "type": "CONDITION_END"} */
595 :
596 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback urb_dequeue from hc_driver."} */
597 : /* LDV {"type": "CALLBACK", "call": "((& ehci_urb_dequeue))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_35_2_default);", "comment": "callback"} */
598 2 : ldv_partially_ordered_scenario_callback_3_35(ldv_3_callback_urb_dequeue, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_35_2_default);
599 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
600 :
601 : /* LDV {"action": "POST_CALL_35", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
602 : /* LDV {"action": "POST_CALL_35", "type": "CONDITION_END"} */
603 :
604 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
605 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
606 :
607 : /* Jump to a subprocess 'call' initial state */
608 1 : goto ldv_call_3;
609 : /* Jump to a subprocess 'call' initial state */
610 : goto ldv_call_3;
611 1 : break;
612 : }
613 3 : case 3: {
614 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback shutdown from hc_driver."} */
615 : /* LDV {"type": "CALLBACK", "call": "((& ehci_shutdown))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
616 2 : ldv_partially_ordered_scenario_callback_3_34(ldv_3_callback_shutdown, ldv_3_resource_struct_usb_hcd_ptr);
617 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
618 :
619 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
620 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
621 :
622 : /* Jump to a subprocess 'call' initial state */
623 1 : goto ldv_call_3;
624 : /* Jump to a subprocess 'call' initial state */
625 : goto ldv_call_3;
626 : /* Jump to a subprocess 'call' initial state */
627 : goto ldv_call_3;
628 1 : break;
629 : }
630 3 : case 4: {
631 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback reset from hc_driver."} */
632 : /* LDV {"type": "CALLBACK", "call": "((& ehci_pci_setup))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
633 2 : ldv_partially_ordered_scenario_callback_3_33(ldv_3_callback_reset, ldv_3_resource_struct_usb_hcd_ptr);
634 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
635 :
636 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
637 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
638 :
639 : /* Jump to a subprocess 'call' initial state */
640 1 : goto ldv_call_3;
641 : /* Jump to a subprocess 'call' initial state */
642 : goto ldv_call_3;
643 : /* Jump to a subprocess 'call' initial state */
644 : goto ldv_call_3;
645 : /* Jump to a subprocess 'call' initial state */
646 : goto ldv_call_3;
647 1 : break;
648 : }
649 3 : case 5: {
650 : /* LDV {"action": "PRE_CALL_30", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
651 : /* LDV {"action": "PRE_CALL_30", "type": "CONDITION_END"} */
652 :
653 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback relinquish_port from hc_driver."} */
654 : /* LDV {"type": "CALLBACK", "call": "((& ehci_relinquish_port))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_30_1_default);", "comment": "callback"} */
655 2 : ldv_partially_ordered_scenario_callback_3_30(ldv_3_callback_relinquish_port, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_30_1_default);
656 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
657 :
658 : /* LDV {"action": "POST_CALL_30", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
659 : /* LDV {"action": "POST_CALL_30", "type": "CONDITION_END"} */
660 :
661 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
662 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
663 :
664 : /* Jump to a subprocess 'call' initial state */
665 1 : goto ldv_call_3;
666 : /* Jump to a subprocess 'call' initial state */
667 : goto ldv_call_3;
668 : /* Jump to a subprocess 'call' initial state */
669 : goto ldv_call_3;
670 : /* Jump to a subprocess 'call' initial state */
671 : goto ldv_call_3;
672 : /* Jump to a subprocess 'call' initial state */
673 : goto ldv_call_3;
674 1 : break;
675 : }
676 3 : case 6: {
677 : /* LDV {"action": "PRE_CALL_27", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
678 : /* LDV {"action": "PRE_CALL_27", "type": "CONDITION_END"} */
679 :
680 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback port_handed_over from hc_driver."} */
681 : /* LDV {"type": "CALLBACK", "call": "((& ehci_port_handed_over))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_27_1_default);", "comment": "callback"} */
682 2 : ldv_partially_ordered_scenario_callback_3_27(ldv_3_callback_port_handed_over, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_27_1_default);
683 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
684 :
685 : /* LDV {"action": "POST_CALL_27", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
686 : /* LDV {"action": "POST_CALL_27", "type": "CONDITION_END"} */
687 :
688 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
689 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
690 :
691 : /* Jump to a subprocess 'call' initial state */
692 1 : goto ldv_call_3;
693 : /* Jump to a subprocess 'call' initial state */
694 : goto ldv_call_3;
695 : /* Jump to a subprocess 'call' initial state */
696 : goto ldv_call_3;
697 : /* Jump to a subprocess 'call' initial state */
698 : goto ldv_call_3;
699 : /* Jump to a subprocess 'call' initial state */
700 : goto ldv_call_3;
701 : /* Jump to a subprocess 'call' initial state */
702 : goto ldv_call_3;
703 1 : break;
704 : }
705 3 : case 7: {
706 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback irq from hc_driver."} */
707 : /* LDV {"type": "CALLBACK", "call": "((& ehci_irq))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
708 2 : ldv_partially_ordered_scenario_callback_3_26(ldv_3_callback_irq, ldv_3_resource_struct_usb_hcd_ptr);
709 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
710 :
711 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
712 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
713 :
714 : /* Jump to a subprocess 'call' initial state */
715 1 : goto ldv_call_3;
716 : /* Jump to a subprocess 'call' initial state */
717 : goto ldv_call_3;
718 : /* Jump to a subprocess 'call' initial state */
719 : goto ldv_call_3;
720 : /* Jump to a subprocess 'call' initial state */
721 : goto ldv_call_3;
722 : /* Jump to a subprocess 'call' initial state */
723 : goto ldv_call_3;
724 : /* Jump to a subprocess 'call' initial state */
725 : goto ldv_call_3;
726 : /* Jump to a subprocess 'call' initial state */
727 : goto ldv_call_3;
728 1 : break;
729 : }
730 3 : case 8: {
731 : /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
732 3 : ldv_3_ldv_param_23_1_default = ldv_xmalloc_unknown_size(0);
733 : /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_END"} */
734 :
735 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback hub_status_data from hc_driver."} */
736 : /* LDV {"type": "CALLBACK", "call": "((& ehci_hub_status_data))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_23_1_default);", "comment": "callback"} */
737 2 : ldv_partially_ordered_scenario_callback_3_23(ldv_3_callback_hub_status_data, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_23_1_default);
738 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
739 :
740 : /* LDV {"action": "POST_CALL_23", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
741 2 : ldv_free(ldv_3_ldv_param_23_1_default);
742 : /* LDV {"action": "POST_CALL_23", "type": "CONDITION_END"} */
743 :
744 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
745 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
746 :
747 : /* Jump to a subprocess 'call' initial state */
748 1 : goto ldv_call_3;
749 : /* Jump to a subprocess 'call' initial state */
750 : goto ldv_call_3;
751 : /* Jump to a subprocess 'call' initial state */
752 : goto ldv_call_3;
753 : /* Jump to a subprocess 'call' initial state */
754 : goto ldv_call_3;
755 : /* Jump to a subprocess 'call' initial state */
756 : goto ldv_call_3;
757 : /* Jump to a subprocess 'call' initial state */
758 : goto ldv_call_3;
759 : /* Jump to a subprocess 'call' initial state */
760 : goto ldv_call_3;
761 : /* Jump to a subprocess 'call' initial state */
762 : goto ldv_call_3;
763 1 : break;
764 : }
765 3 : case 9: {
766 : /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
767 3 : ldv_3_ldv_param_20_4_default = ldv_xmalloc_unknown_size(0);
768 : /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_END"} */
769 :
770 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback hub_control from hc_driver."} */
771 : /* LDV {"type": "CALLBACK", "call": "((& ehci_hub_control))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_20_1_default, ldv_3_ldv_param_20_2_default, ldv_3_ldv_param_20_3_default, ldv_3_ldv_param_20_4_default, ldv_3_ldv_param_20_5_default);", "comment": "callback"} */
772 2 : ldv_partially_ordered_scenario_callback_3_20(ldv_3_callback_hub_control, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_20_1_default, ldv_3_ldv_param_20_2_default, ldv_3_ldv_param_20_3_default, ldv_3_ldv_param_20_4_default, ldv_3_ldv_param_20_5_default);
773 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
774 :
775 : /* LDV {"action": "POST_CALL_20", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
776 2 : ldv_free(ldv_3_ldv_param_20_4_default);
777 : /* LDV {"action": "POST_CALL_20", "type": "CONDITION_END"} */
778 :
779 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
780 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
781 :
782 : /* Jump to a subprocess 'call' initial state */
783 1 : goto ldv_call_3;
784 : /* Jump to a subprocess 'call' initial state */
785 : goto ldv_call_3;
786 : /* Jump to a subprocess 'call' initial state */
787 : goto ldv_call_3;
788 : /* Jump to a subprocess 'call' initial state */
789 : goto ldv_call_3;
790 : /* Jump to a subprocess 'call' initial state */
791 : goto ldv_call_3;
792 : /* Jump to a subprocess 'call' initial state */
793 : goto ldv_call_3;
794 : /* Jump to a subprocess 'call' initial state */
795 : goto ldv_call_3;
796 : /* Jump to a subprocess 'call' initial state */
797 : goto ldv_call_3;
798 : /* Jump to a subprocess 'call' initial state */
799 : goto ldv_call_3;
800 1 : break;
801 : }
802 3 : case 10: {
803 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_frame_number from hc_driver."} */
804 : /* LDV {"type": "CALLBACK", "call": "((& ehci_get_frame))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
805 2 : ldv_partially_ordered_scenario_callback_3_19(ldv_3_callback_get_frame_number, ldv_3_resource_struct_usb_hcd_ptr);
806 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
807 :
808 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
809 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
810 :
811 : /* Jump to a subprocess 'call' initial state */
812 1 : goto ldv_call_3;
813 : /* Jump to a subprocess 'call' initial state */
814 : goto ldv_call_3;
815 : /* Jump to a subprocess 'call' initial state */
816 : goto ldv_call_3;
817 : /* Jump to a subprocess 'call' initial state */
818 : goto ldv_call_3;
819 : /* Jump to a subprocess 'call' initial state */
820 : goto ldv_call_3;
821 : /* Jump to a subprocess 'call' initial state */
822 : goto ldv_call_3;
823 : /* Jump to a subprocess 'call' initial state */
824 : goto ldv_call_3;
825 : /* Jump to a subprocess 'call' initial state */
826 : goto ldv_call_3;
827 : /* Jump to a subprocess 'call' initial state */
828 : goto ldv_call_3;
829 : /* Jump to a subprocess 'call' initial state */
830 : goto ldv_call_3;
831 1 : break;
832 : }
833 3 : case 11: {
834 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback endpoint_reset from hc_driver."} */
835 : /* LDV {"type": "CALLBACK", "call": "((& ehci_endpoint_reset))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
836 2 : ldv_partially_ordered_scenario_callback_3_18(ldv_3_callback_endpoint_reset, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
837 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
838 :
839 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
840 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
841 :
842 : /* Jump to a subprocess 'call' initial state */
843 1 : goto ldv_call_3;
844 : /* Jump to a subprocess 'call' initial state */
845 : goto ldv_call_3;
846 : /* Jump to a subprocess 'call' initial state */
847 : goto ldv_call_3;
848 : /* Jump to a subprocess 'call' initial state */
849 : goto ldv_call_3;
850 : /* Jump to a subprocess 'call' initial state */
851 : goto ldv_call_3;
852 : /* Jump to a subprocess 'call' initial state */
853 : goto ldv_call_3;
854 : /* Jump to a subprocess 'call' initial state */
855 : goto ldv_call_3;
856 : /* Jump to a subprocess 'call' initial state */
857 : goto ldv_call_3;
858 : /* Jump to a subprocess 'call' initial state */
859 : goto ldv_call_3;
860 : /* Jump to a subprocess 'call' initial state */
861 : goto ldv_call_3;
862 : /* Jump to a subprocess 'call' initial state */
863 : goto ldv_call_3;
864 1 : break;
865 : }
866 3 : case 12: {
867 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback endpoint_disable from hc_driver."} */
868 : /* LDV {"type": "CALLBACK", "call": "((& ehci_endpoint_disable))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
869 2 : ldv_partially_ordered_scenario_callback_3_17(ldv_3_callback_endpoint_disable, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
870 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
871 :
872 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
873 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
874 :
875 : /* Jump to a subprocess 'call' initial state */
876 1 : goto ldv_call_3;
877 : /* Jump to a subprocess 'call' initial state */
878 : goto ldv_call_3;
879 : /* Jump to a subprocess 'call' initial state */
880 : goto ldv_call_3;
881 : /* Jump to a subprocess 'call' initial state */
882 : goto ldv_call_3;
883 : /* Jump to a subprocess 'call' initial state */
884 : goto ldv_call_3;
885 : /* Jump to a subprocess 'call' initial state */
886 : goto ldv_call_3;
887 : /* Jump to a subprocess 'call' initial state */
888 : goto ldv_call_3;
889 : /* Jump to a subprocess 'call' initial state */
890 : goto ldv_call_3;
891 : /* Jump to a subprocess 'call' initial state */
892 : goto ldv_call_3;
893 : /* Jump to a subprocess 'call' initial state */
894 : goto ldv_call_3;
895 : /* Jump to a subprocess 'call' initial state */
896 : goto ldv_call_3;
897 : /* Jump to a subprocess 'call' initial state */
898 : goto ldv_call_3;
899 1 : break;
900 : }
901 3 : case 13: {
902 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback clear_tt_buffer_complete from hc_driver."} */
903 : /* LDV {"type": "CALLBACK", "call": "((& ehci_clear_tt_buffer_complete))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
904 2 : ldv_partially_ordered_scenario_callback_3_4(ldv_3_callback_clear_tt_buffer_complete, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
905 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
906 :
907 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
908 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
909 :
910 : /* Jump to a subprocess 'call' initial state */
911 1 : goto ldv_call_3;
912 : /* Jump to a subprocess 'call' initial state */
913 : goto ldv_call_3;
914 : /* Jump to a subprocess 'call' initial state */
915 : goto ldv_call_3;
916 : /* Jump to a subprocess 'call' initial state */
917 : goto ldv_call_3;
918 : /* Jump to a subprocess 'call' initial state */
919 : goto ldv_call_3;
920 : /* Jump to a subprocess 'call' initial state */
921 : goto ldv_call_3;
922 : /* Jump to a subprocess 'call' initial state */
923 : goto ldv_call_3;
924 : /* Jump to a subprocess 'call' initial state */
925 : goto ldv_call_3;
926 : /* Jump to a subprocess 'call' initial state */
927 : goto ldv_call_3;
928 : /* Jump to a subprocess 'call' initial state */
929 : goto ldv_call_3;
930 : /* Jump to a subprocess 'call' initial state */
931 : goto ldv_call_3;
932 : /* Jump to a subprocess 'call' initial state */
933 : goto ldv_call_3;
934 : /* Jump to a subprocess 'call' initial state */
935 : goto ldv_call_3;
936 1 : break;
937 : }
938 3 : case 14: {
939 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Do uninitializations before deregistration. Invoke callback stop from hc_driver."} */
940 : /* LDV {"type": "CALLBACK", "call": "((& ehci_stop))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "release"} */
941 2 : ldv_partially_ordered_scenario_release_3_2(ldv_3_container_struct_hc_driver->stop, ldv_3_resource_struct_usb_hcd_ptr);
942 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
943 :
944 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
945 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
946 :
947 : /* Jump to a subprocess 'main' initial state */
948 1 : goto ldv_main_3;
949 1 : break;
950 : }
951 2 : default: ldv_stop();
952 1 : }
953 0 : /* End of the subprocess 'call' */
954 0 : return;
955 : /* LDV {"comment": "End of control function based on process 'partially_ordered_scenario(struct_hc_driver)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_partially_ordered_scenario_3"} */
956 : }
957 :
958 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_17 */
959 : void ldv_partially_ordered_scenario_callback_3_17(void (*arg0)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *arg1, struct usb_host_endpoint *arg2) {
960 2 : ((& ehci_endpoint_disable))(arg1, arg2);
961 1 : }
962 :
963 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_18 */
964 : void ldv_partially_ordered_scenario_callback_3_18(void (*arg0)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *arg1, struct usb_host_endpoint *arg2) {
965 3 : ((& ehci_endpoint_reset))(arg1, arg2);
966 1 : }
967 :
968 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_19 */
969 : void ldv_partially_ordered_scenario_callback_3_19(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
970 2 : ((& ehci_get_frame))(arg1);
971 1 : }
972 :
973 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_20 */
974 : void ldv_partially_ordered_scenario_callback_3_20(int (*arg0)(struct usb_hcd *, u16 , u16 , u16 , char *, u16 ), struct usb_hcd *arg1, short unsigned int arg2, short unsigned int arg3, short unsigned int arg4, char *arg5, short unsigned int arg6) {
975 2 : ((& ehci_hub_control))(arg1, arg2, arg3, arg4, arg5, arg6);
976 1 : }
977 :
978 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_23 */
979 : void ldv_partially_ordered_scenario_callback_3_23(int (*arg0)(struct usb_hcd *, char *), struct usb_hcd *arg1, char *arg2) {
980 3 : ((& ehci_hub_status_data))(arg1, arg2);
981 1 : }
982 :
983 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_26 */
984 : void ldv_partially_ordered_scenario_callback_3_26(irqreturn_t (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
985 3 : ((& ehci_irq))(arg1);
986 1 : }
987 :
988 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_27 */
989 : void ldv_partially_ordered_scenario_callback_3_27(int (*arg0)(struct usb_hcd *, int), struct usb_hcd *arg1, int arg2) {
990 3 : ((& ehci_port_handed_over))(arg1, arg2);
991 1 : }
992 :
993 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_30 */
994 : void ldv_partially_ordered_scenario_callback_3_30(void (*arg0)(struct usb_hcd *, int), struct usb_hcd *arg1, int arg2) {
995 3 : ((& ehci_relinquish_port))(arg1, arg2);
996 1 : }
997 :
998 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_33 */
999 : void ldv_partially_ordered_scenario_callback_3_33(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
1000 5 : ((& ehci_pci_setup))(arg1);
1001 1 : }
1002 :
1003 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_34 */
1004 : void ldv_partially_ordered_scenario_callback_3_34(void (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
1005 2 : ((& ehci_shutdown))(arg1);
1006 1 : }
1007 :
1008 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_35 */
1009 : void ldv_partially_ordered_scenario_callback_3_35(int (*arg0)(struct usb_hcd *, struct urb *, int), struct usb_hcd *arg1, struct urb *arg2, int arg3) {
1010 2 : ((& ehci_urb_dequeue))(arg1, arg2, arg3);
1011 1 : }
1012 :
1013 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_38 */
1014 : void ldv_partially_ordered_scenario_callback_3_38(int (*arg0)(struct usb_hcd *, struct urb *, unsigned int), struct usb_hcd *arg1, struct urb *arg2, unsigned int arg3) {
1015 8 : ((& ehci_urb_enqueue))(arg1, arg2, arg3);
1016 1 : }
1017 :
1018 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_4 */
1019 : void ldv_partially_ordered_scenario_callback_3_4(void (*arg0)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *arg1, struct usb_host_endpoint *arg2) {
1020 2 : ((& ehci_clear_tt_buffer_complete))(arg1, arg2);
1021 1 : }
1022 :
1023 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_probe_3_12 */
1024 : int ldv_partially_ordered_scenario_probe_3_12(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
1025 4 : return ((& ehci_run))(arg1);
1026 1 : }
1027 :
1028 : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_release_3_2 */
1029 : void ldv_partially_ordered_scenario_release_3_2(void (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
1030 2 : ((& ehci_stop))(arg1);
1031 1 : }
1032 :
1033 : /* AUX_FUNC ldv_pci_scenario_1 */
1034 : void ldv_pci_scenario_1(void *arg0) {
1035 : /* LDV {"thread": 1, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'pci_scenario(pci)'", "function": "ldv_pci_scenario_1"} */
1036 2 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1037 2 : struct pci_driver *ldv_1_container_pci_driver;
1038 2 : struct pci_dev *ldv_1_resource_dev;
1039 2 : struct pm_message ldv_1_resource_pm_message;
1040 2 : struct pci_device_id *ldv_1_resource_struct_pci_device_id_ptr;
1041 2 : int ldv_1_ret_default;
1042 2 : /* Received labels */
1043 4 : struct ldv_struct_pci_scenario_1 *data = (struct ldv_struct_pci_scenario_1*) arg0;
1044 2 :
1045 2 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1046 2 : /* Initialize automaton variables */
1047 2 : ldv_1_ret_default = 1;
1048 : /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin PCI callbacks invocating."} */
1049 : /* Assign recieved labels */
1050 4 : if (data) {
1051 2 : ldv_1_container_pci_driver = data->arg0;
1052 4 : ldv_free(data);
1053 : }
1054 : /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
1055 :
1056 : /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory for pci_dev structure."} */
1057 10 : ldv_1_resource_dev = ldv_xmalloc(sizeof(struct pci_dev));
1058 6 : ldv_1_resource_struct_pci_device_id_ptr = ldv_xmalloc_unknown_size(0);
1059 : /* LDV {"action": "INIT", "type": "CONDITION_END"} */
1060 :
1061 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
1062 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1063 :
1064 : /* Jump to a subprocess 'main' initial state */
1065 2 : goto ldv_main_1;
1066 : /* End of the process */
1067 : return;
1068 2 :
1069 : /* Sbprocess main */
1070 : ldv_main_1:
1071 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1072 :
1073 8 : if (ldv_undef_int()) {
1074 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe new PCI driver. Invoke callback probe from pci_driver."} */
1075 : /* Callback pre-call */
1076 2 : ldv_pre_probe();
1077 : /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_default = ((& usb_hcd_pci_probe))(ldv_1_resource_dev, ldv_1_resource_struct_pci_device_id_ptr);", "comment": "probe"} */
1078 6 : ldv_1_ret_default = ldv_pci_scenario_probe_1_17(ldv_1_container_pci_driver->probe, ldv_1_resource_dev, ldv_1_resource_struct_pci_device_id_ptr);
1079 : /* Callback post-call */
1080 4 : ldv_1_ret_default = ldv_post_probe(ldv_1_ret_default);
1081 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
1082 :
1083 8 : if (ldv_undef_int()) {
1084 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Probing of PCI driver has been successfull."} */
1085 4 : ldv_assume(ldv_1_ret_default == 0);
1086 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
1087 :
1088 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
1089 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1090 :
1091 : /* Jump to a subprocess 'call' initial state */
1092 2 : goto ldv_call_1;
1093 : }
1094 : else {
1095 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe PCI driver."} */
1096 4 : ldv_assume(ldv_1_ret_default != 0);
1097 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
1098 :
1099 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
1100 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1101 :
1102 : /* Jump to a subprocess 'main' initial state */
1103 2 : goto ldv_main_1;
1104 : }
1105 : }
1106 : else {
1107 : /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of pci_dev structure."} */
1108 4 : ldv_free(ldv_1_resource_dev);
1109 4 : ldv_free(ldv_1_resource_struct_pci_device_id_ptr);
1110 : /* LDV {"action": "FREE", "type": "CONDITION_END"} */
1111 :
1112 : /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Stop PCI callbacks invocating."} */
1113 : /* Skip a non-replicative signal receiving */
1114 : /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
1115 :
1116 : /* Exit function at a terminal state */
1117 2 : return;
1118 : }
1119 : /* End of the subprocess 'main' */
1120 : return;
1121 2 :
1122 : /* Sbprocess call */
1123 : ldv_call_1:
1124 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1125 :
1126 4 : switch (ldv_undef_int()) {
1127 6 : case 1: {
1128 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "comment": "Call callback 'callback' of a process 'pci_scenario' of an interface category 'pci'"} */
1129 : /* Skip callback without implementations */
1130 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1131 :
1132 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
1133 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1134 :
1135 : /* Jump to a subprocess 'call' initial state */
1136 2 : goto ldv_call_1;
1137 2 : break;
1138 : }
1139 6 : case 2: {
1140 : /* LDV {"action": "SUSPEND", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from PCI."} */
1141 6 : if (ldv_1_container_pci_driver->suspend) {
1142 : /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_default = (ldv_1_container_pci_driver->suspend)(ldv_1_resource_dev, ldv_1_resource_pm_message);", "comment": "suspend"} */
1143 4 : ldv_1_ret_default = ldv_pci_scenario_suspend_1_8(ldv_1_container_pci_driver->suspend, ldv_1_resource_dev, ldv_1_resource_pm_message);
1144 : }
1145 : /* Callback post-call */
1146 8 : ldv_1_ret_default = ldv_filter_err_code(ldv_1_ret_default);
1147 : /* LDV {"action": "SUSPEND", "type": "CALL_END"} */
1148 :
1149 : /* LDV {"action": "SUSPEND_LATE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend_late from PCI."} */
1150 6 : if (ldv_1_container_pci_driver->suspend_late) {
1151 : /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_default = (ldv_1_container_pci_driver->suspend_late)(ldv_1_resource_dev, ldv_1_resource_pm_message);", "comment": "suspend_late"} */
1152 4 : ldv_1_ret_default = ldv_pci_scenario_suspend_late_1_7(ldv_1_container_pci_driver->suspend_late, ldv_1_resource_dev, ldv_1_resource_pm_message);
1153 : }
1154 : /* Callback post-call */
1155 8 : ldv_1_ret_default = ldv_filter_err_code(ldv_1_ret_default);
1156 : /* LDV {"action": "SUSPEND_LATE", "type": "CALL_END"} */
1157 :
1158 : /* LDV {"action": "RESUME_EARLY", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume_early from PCI."} */
1159 6 : if (ldv_1_container_pci_driver->resume_early) {
1160 : /* LDV {"type": "CALLBACK", "call": "(ldv_1_container_pci_driver->resume_early)(ldv_1_resource_dev);", "comment": "resume_early"} */
1161 4 : ldv_pci_scenario_resume_early_1_6(ldv_1_container_pci_driver->resume_early, ldv_1_resource_dev);
1162 : }
1163 : /* LDV {"action": "RESUME_EARLY", "type": "CALL_END"} */
1164 :
1165 : /* LDV {"action": "RESUME", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from PCI."} */
1166 12 : if (ldv_1_container_pci_driver->resume) {
1167 : /* LDV {"type": "CALLBACK", "call": "(ldv_1_container_pci_driver->resume)(ldv_1_resource_dev);", "comment": "resume"} */
1168 8 : ldv_pci_scenario_resume_1_5(ldv_1_container_pci_driver->resume, ldv_1_resource_dev);
1169 : }
1170 : /* LDV {"action": "RESUME", "type": "CALL_END"} */
1171 :
1172 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
1173 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1174 :
1175 : /* Jump to a subprocess 'call' initial state */
1176 6 : goto ldv_call_1;
1177 2 : break;
1178 : }
1179 6 : case 3: {
1180 : /* LDV {"action": "SHUTDOWN", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback shutdown from pci_driver."} */
1181 : /* LDV {"type": "CALLBACK", "call": "((& usb_hcd_pci_shutdown))(ldv_1_resource_dev);", "comment": "shutdown"} */
1182 4 : ldv_pci_scenario_shutdown_1_3(ldv_1_container_pci_driver->shutdown, ldv_1_resource_dev);
1183 : /* LDV {"action": "SHUTDOWN", "type": "CALL_END"} */
1184 :
1185 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from pci_driver."} */
1186 : /* LDV {"type": "CALLBACK", "call": "((& usb_hcd_pci_remove))(ldv_1_resource_dev);", "comment": "release"} */
1187 4 : ldv_pci_scenario_release_1_2(ldv_1_container_pci_driver->remove, ldv_1_resource_dev);
1188 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
1189 :
1190 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
1191 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1192 :
1193 : /* Jump to a subprocess 'main' initial state */
1194 2 : goto ldv_main_1;
1195 2 : break;
1196 : }
1197 4 : default: ldv_stop();
1198 2 : }
1199 0 : /* End of the subprocess 'call' */
1200 0 : return;
1201 : /* LDV {"comment": "End of control function based on process 'pci_scenario(pci)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_pci_scenario_1"} */
1202 : }
1203 :
1204 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_probe_1_17 */
1205 : int ldv_pci_scenario_probe_1_17(int (*arg0)(struct pci_dev *, struct pci_device_id *), struct pci_dev *arg1, struct pci_device_id *arg2) {
1206 4 : return ((& usb_hcd_pci_probe))(arg1, arg2);
1207 : }
1208 2 :
1209 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_release_1_2 */
1210 : void ldv_pci_scenario_release_1_2(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
1211 2 : ((& usb_hcd_pci_remove))(arg1);
1212 2 : }
1213 :
1214 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_1_5 */
1215 : void ldv_pci_scenario_resume_1_5(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
1216 4 : (*arg0)(arg1);
1217 4 : }
1218 :
1219 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_early_1_6 */
1220 : void ldv_pci_scenario_resume_early_1_6(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
1221 2 : (*arg0)(arg1);
1222 2 : }
1223 :
1224 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_shutdown_1_3 */
1225 : void ldv_pci_scenario_shutdown_1_3(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
1226 2 : ((& usb_hcd_pci_shutdown))(arg1);
1227 2 : }
1228 :
1229 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_1_8 */
1230 : int ldv_pci_scenario_suspend_1_8(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
1231 4 : return (*arg0)(arg1, arg2);
1232 : }
1233 2 :
1234 : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_late_1_7 */
1235 : int ldv_pci_scenario_suspend_late_1_7(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
1236 4 : return (*arg0)(arg1, arg2);
1237 : }
1238 2 :
1239 : /* AUX_FUNC ldv_random_containerless_scenario_2 */
1240 : void ldv_random_containerless_scenario_2(void *arg0) {
1241 : /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_device_attribute)'", "function": "ldv_random_containerless_scenario_2"} */
1242 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1243 1 : ssize_t (*ldv_2_callback_show)(struct device *, struct device_attribute *, char *);
1244 : ssize_t (*ldv_2_callback_store)(struct device *, struct device_attribute *, char *, size_t );
1245 1 : struct device_attribute *ldv_2_container_struct_device_attribute;
1246 1 : struct device *ldv_2_container_struct_device_ptr;
1247 1 : char *ldv_2_ldv_param_10_2_default;
1248 1 : long unsigned int ldv_2_ldv_param_10_3_default;
1249 1 : char *ldv_2_ldv_param_4_2_default;
1250 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1251 1 : /* LDV {"action": "DEFAULT_REGISTER_6", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_DEVICE_ATTRIBUTE callbacks invocations scenario."} */
1252 3 : ldv_free(arg0);
1253 1 : /* LDV {"action": "DEFAULT_REGISTER_6", "type": "RECEIVE_END"} */
1254 1 :
1255 1 : /* LDV {"action": "DEFAULT_ALLOC_6", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1256 3 : ldv_2_container_struct_device_attribute = ldv_xmalloc_unknown_size(0);
1257 3 : ldv_2_container_struct_device_ptr = ldv_xmalloc_unknown_size(0);
1258 : /* LDV {"action": "DEFAULT_ALLOC_6", "type": "CONDITION_END"} */
1259 :
1260 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1261 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1262 :
1263 : /* Jump to a subprocess 'call' initial state */
1264 1 : goto ldv_call_2;
1265 : /* End of the process */
1266 : return;
1267 1 :
1268 : /* Sbprocess call */
1269 : ldv_call_2:
1270 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1271 :
1272 4 : if (ldv_undef_int()) {
1273 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1274 3 : ldv_2_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
1275 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
1276 :
1277 4 : if (ldv_undef_int()) {
1278 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1279 3 : ldv_2_ldv_param_10_2_default = ldv_xmalloc_unknown_size(0);
1280 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
1281 :
1282 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback store from device_attribute."} */
1283 : /* LDV {"type": "CALLBACK", "call": "((& store_companion))(ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_10_2_default, ldv_2_ldv_param_10_3_default);", "comment": "callback"} */
1284 2 : ldv_random_containerless_scenario_callback_2_10(ldv_2_callback_store, ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_10_2_default, ldv_2_ldv_param_10_3_default);
1285 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1286 :
1287 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1288 2 : ldv_free(ldv_2_ldv_param_10_2_default);
1289 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
1290 :
1291 : }
1292 : else {
1293 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback show from device_attribute."} */
1294 : /* LDV {"type": "CALLBACK", "call": "((& show_companion))(ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_4_2_default);", "comment": "callback"} */
1295 2 : ldv_random_containerless_scenario_callback_2_4(ldv_2_callback_show, ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_4_2_default);
1296 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1297 :
1298 : }
1299 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1300 4 : ldv_free(ldv_2_ldv_param_4_2_default);
1301 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
1302 :
1303 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1304 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1305 :
1306 : /* Jump to a subprocess 'call' initial state */
1307 1 : goto ldv_call_2;
1308 : }
1309 : else {
1310 : /* LDV {"action": "DEFAULT_FREE_6", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1311 2 : ldv_free(ldv_2_container_struct_device_attribute);
1312 2 : ldv_free(ldv_2_container_struct_device_ptr);
1313 : /* LDV {"action": "DEFAULT_FREE_6", "type": "CONDITION_END"} */
1314 :
1315 : /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_DEVICE_ATTRIBUTE callbacks invocations scenario."} */
1316 : /* Skip a non-replicative signal receiving */
1317 : /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "RECEIVE_END"} */
1318 :
1319 : /* Exit function at a terminal state */
1320 1 : return;
1321 : }
1322 : /* End of the subprocess 'call' */
1323 : return;
1324 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_device_attribute)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_2"} */
1325 : }
1326 :
1327 : /* AUX_FUNC ldv_random_containerless_scenario_4 */
1328 : void ldv_random_containerless_scenario_4(void *arg0) {
1329 : /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_4"} */
1330 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1331 1 : int (*ldv_4_callback_get)(char *, struct kernel_param *);
1332 1 : int (*ldv_4_callback_set)(char *, struct kernel_param *);
1333 1 : struct kernel_param *ldv_4_container_struct_kernel_param;
1334 1 : char *ldv_4_ldv_param_10_0_default;
1335 1 : char *ldv_4_ldv_param_4_0_default;
1336 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1337 1 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
1338 3 : ldv_free(arg0);
1339 1 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
1340 :
1341 : /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1342 3 : ldv_4_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
1343 : /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
1344 :
1345 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1346 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1347 :
1348 : /* Jump to a subprocess 'call' initial state */
1349 1 : goto ldv_call_4;
1350 : /* End of the process */
1351 : return;
1352 1 :
1353 : /* Sbprocess call */
1354 : ldv_call_4:
1355 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1356 :
1357 4 : if (ldv_undef_int()) {
1358 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1359 3 : ldv_4_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
1360 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
1361 :
1362 4 : if (ldv_undef_int()) {
1363 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1364 3 : ldv_4_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
1365 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
1366 :
1367 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
1368 : /* LDV {"type": "CALLBACK", "call": "((& param_set_bool))(ldv_4_ldv_param_10_0_default, ldv_4_container_struct_kernel_param);", "comment": "callback"} */
1369 2 : ldv_random_containerless_scenario_callback_4_10(ldv_4_callback_set, ldv_4_ldv_param_10_0_default, ldv_4_container_struct_kernel_param);
1370 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1371 :
1372 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1373 2 : ldv_free(ldv_4_ldv_param_10_0_default);
1374 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
1375 :
1376 : }
1377 : else {
1378 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
1379 : /* LDV {"type": "CALLBACK", "call": "((& param_get_bool))(ldv_4_ldv_param_4_0_default, ldv_4_container_struct_kernel_param);", "comment": "callback"} */
1380 2 : ldv_random_containerless_scenario_callback_4_4(ldv_4_callback_get, ldv_4_ldv_param_4_0_default, ldv_4_container_struct_kernel_param);
1381 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1382 :
1383 : }
1384 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1385 4 : ldv_free(ldv_4_ldv_param_4_0_default);
1386 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
1387 :
1388 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1389 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1390 :
1391 : /* Jump to a subprocess 'call' initial state */
1392 1 : goto ldv_call_4;
1393 : }
1394 : else {
1395 : /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1396 2 : ldv_free(ldv_4_container_struct_kernel_param);
1397 : /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
1398 :
1399 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
1400 : /* Skip a non-replicative signal receiving */
1401 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
1402 :
1403 : /* Exit function at a terminal state */
1404 1 : return;
1405 : }
1406 : /* End of the subprocess 'call' */
1407 : return;
1408 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kernel_param)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_4"} */
1409 : }
1410 :
1411 : /* AUX_FUNC ldv_random_containerless_scenario_5 */
1412 : void ldv_random_containerless_scenario_5(void *arg0) {
1413 : /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_5"} */
1414 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1415 1 : int (*ldv_5_callback_get)(char *, struct kernel_param *);
1416 1 : int (*ldv_5_callback_set)(char *, struct kernel_param *);
1417 1 : struct kernel_param *ldv_5_container_struct_kernel_param;
1418 1 : char *ldv_5_ldv_param_10_0_default;
1419 1 : char *ldv_5_ldv_param_4_0_default;
1420 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1421 1 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
1422 3 : ldv_free(arg0);
1423 1 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
1424 :
1425 : /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1426 3 : ldv_5_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
1427 : /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
1428 :
1429 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1430 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1431 :
1432 : /* Jump to a subprocess 'call' initial state */
1433 1 : goto ldv_call_5;
1434 : /* End of the process */
1435 : return;
1436 1 :
1437 : /* Sbprocess call */
1438 : ldv_call_5:
1439 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1440 :
1441 4 : if (ldv_undef_int()) {
1442 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1443 3 : ldv_5_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
1444 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
1445 :
1446 4 : if (ldv_undef_int()) {
1447 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1448 3 : ldv_5_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
1449 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
1450 :
1451 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
1452 : /* LDV {"type": "CALLBACK", "call": "((& param_set_int))(ldv_5_ldv_param_10_0_default, ldv_5_container_struct_kernel_param);", "comment": "callback"} */
1453 2 : ldv_random_containerless_scenario_callback_5_10(ldv_5_callback_set, ldv_5_ldv_param_10_0_default, ldv_5_container_struct_kernel_param);
1454 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1455 :
1456 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1457 2 : ldv_free(ldv_5_ldv_param_10_0_default);
1458 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
1459 :
1460 : }
1461 : else {
1462 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
1463 : /* LDV {"type": "CALLBACK", "call": "((& param_get_int))(ldv_5_ldv_param_4_0_default, ldv_5_container_struct_kernel_param);", "comment": "callback"} */
1464 2 : ldv_random_containerless_scenario_callback_5_4(ldv_5_callback_get, ldv_5_ldv_param_4_0_default, ldv_5_container_struct_kernel_param);
1465 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1466 :
1467 : }
1468 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1469 4 : ldv_free(ldv_5_ldv_param_4_0_default);
1470 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
1471 :
1472 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1473 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1474 :
1475 : /* Jump to a subprocess 'call' initial state */
1476 1 : goto ldv_call_5;
1477 : }
1478 : else {
1479 : /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1480 2 : ldv_free(ldv_5_container_struct_kernel_param);
1481 : /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
1482 :
1483 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
1484 : /* Skip a non-replicative signal receiving */
1485 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
1486 :
1487 : /* Exit function at a terminal state */
1488 1 : return;
1489 : }
1490 : /* End of the subprocess 'call' */
1491 : return;
1492 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kernel_param)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_5"} */
1493 : }
1494 :
1495 : /* AUX_FUNC ldv_random_containerless_scenario_6 */
1496 : void ldv_random_containerless_scenario_6(void *arg0) {
1497 : /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_6"} */
1498 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1499 1 : int (*ldv_6_callback_get)(char *, struct kernel_param *);
1500 1 : int (*ldv_6_callback_set)(char *, struct kernel_param *);
1501 1 : struct kernel_param *ldv_6_container_struct_kernel_param;
1502 1 : char *ldv_6_ldv_param_10_0_default;
1503 1 : char *ldv_6_ldv_param_4_0_default;
1504 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1505 1 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
1506 3 : ldv_free(arg0);
1507 1 : /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
1508 :
1509 : /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1510 3 : ldv_6_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
1511 : /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
1512 :
1513 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1514 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1515 :
1516 : /* Jump to a subprocess 'call' initial state */
1517 1 : goto ldv_call_6;
1518 : /* End of the process */
1519 : return;
1520 1 :
1521 : /* Sbprocess call */
1522 : ldv_call_6:
1523 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1524 :
1525 4 : if (ldv_undef_int()) {
1526 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1527 3 : ldv_6_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
1528 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
1529 :
1530 4 : if (ldv_undef_int()) {
1531 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1532 3 : ldv_6_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
1533 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
1534 :
1535 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
1536 : /* LDV {"type": "CALLBACK", "call": "((& param_set_uint))(ldv_6_ldv_param_10_0_default, ldv_6_container_struct_kernel_param);", "comment": "callback"} */
1537 2 : ldv_random_containerless_scenario_callback_6_10(ldv_6_callback_set, ldv_6_ldv_param_10_0_default, ldv_6_container_struct_kernel_param);
1538 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1539 :
1540 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1541 2 : ldv_free(ldv_6_ldv_param_10_0_default);
1542 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
1543 :
1544 : }
1545 : else {
1546 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
1547 : /* LDV {"type": "CALLBACK", "call": "((& param_get_uint))(ldv_6_ldv_param_4_0_default, ldv_6_container_struct_kernel_param);", "comment": "callback"} */
1548 2 : ldv_random_containerless_scenario_callback_6_4(ldv_6_callback_get, ldv_6_ldv_param_4_0_default, ldv_6_container_struct_kernel_param);
1549 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1550 :
1551 : }
1552 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1553 4 : ldv_free(ldv_6_ldv_param_4_0_default);
1554 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
1555 :
1556 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1557 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1558 :
1559 : /* Jump to a subprocess 'call' initial state */
1560 1 : goto ldv_call_6;
1561 : }
1562 : else {
1563 : /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1564 2 : ldv_free(ldv_6_container_struct_kernel_param);
1565 : /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
1566 :
1567 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
1568 : /* Skip a non-replicative signal receiving */
1569 : /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
1570 :
1571 : /* Exit function at a terminal state */
1572 1 : return;
1573 : }
1574 : /* End of the subprocess 'call' */
1575 : return;
1576 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kernel_param)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_6"} */
1577 : }
1578 :
1579 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_10 */
1580 : void ldv_random_containerless_scenario_callback_2_10(ssize_t (*arg0)(struct device *, struct device_attribute *, char *, size_t ), struct device *arg1, struct device_attribute *arg2, char *arg3, long unsigned int arg4) {
1581 3 : ((& store_companion))(arg1, arg2, arg3, arg4);
1582 1 : }
1583 :
1584 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_4 */
1585 : void ldv_random_containerless_scenario_callback_2_4(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
1586 2 : ((& show_companion))(arg1, arg2, arg3);
1587 1 : }
1588 :
1589 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_10 */
1590 : void ldv_random_containerless_scenario_callback_4_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
1591 1 : ((& param_set_bool))(arg1, arg2);
1592 1 : }
1593 :
1594 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_4 */
1595 : void ldv_random_containerless_scenario_callback_4_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
1596 1 : ((& param_get_bool))(arg1, arg2);
1597 1 : }
1598 :
1599 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_10 */
1600 : void ldv_random_containerless_scenario_callback_5_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
1601 1 : ((& param_set_int))(arg1, arg2);
1602 1 : }
1603 :
1604 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_4 */
1605 : void ldv_random_containerless_scenario_callback_5_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
1606 1 : ((& param_get_int))(arg1, arg2);
1607 1 : }
1608 :
1609 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_6_10 */
1610 : void ldv_random_containerless_scenario_callback_6_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
1611 1 : ((& param_set_uint))(arg1, arg2);
1612 1 : }
1613 :
1614 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_6_4 */
1615 : void ldv_random_containerless_scenario_callback_6_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
1616 1 : ((& param_get_uint))(arg1, arg2);
1617 1 : }
1618 :
1619 : /* AUX_FUNC ldv_timer_scenario_7 */
1620 : void ldv_timer_scenario_7(void *arg0) {
1621 : /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'timer_scenario(timer)'", "function": "ldv_timer_scenario_7"} */
1622 67 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1623 67 : struct timer_list *ldv_7_container_timer_list;
1624 : /* Received labels */
1625 67 : struct ldv_struct_timer_scenario_7 *data = (struct ldv_struct_timer_scenario_7*) arg0;
1626 :
1627 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1628 : /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin TIMER callbacks invocations scenario."} */
1629 : /* Assign recieved labels */
1630 134 : if (data) {
1631 67 : ldv_7_container_timer_list = data->arg0;
1632 134 : ldv_free(data);
1633 : }
1634 : /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_END"} */
1635 :
1636 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Time has come: call the timer callback. Invoke callback callback from TIMER."} */
1637 : /* Callback pre-call */
1638 134 : ldv_switch_to_interrupt_context();
1639 402 : if (ldv_7_container_timer_list->function) {
1640 : /* LDV {"type": "CALLBACK", "call": "(ldv_7_container_timer_list->function)(ldv_7_container_timer_list->data);", "comment": "callback"} */
1641 268 : ldv_timer_scenario_callback_7_2(ldv_7_container_timer_list->function, ldv_7_container_timer_list->data);
1642 : }
1643 : /* Callback post-call */
1644 201 : ldv_switch_to_process_context();
1645 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1646 :
1647 : /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish TIMER callbacks invocations scenario."} */
1648 : /* Skip a non-replicative signal receiving */
1649 : /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_END"} */
1650 :
1651 : /* Exit function at a terminal state */
1652 201 : return;
1653 : /* End of the process */
1654 : return;
1655 : /* LDV {"comment": "End of control function based on process 'timer_scenario(timer)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_timer_scenario_7"} */
1656 : }
1657 :
1658 : /* AUX_FUNC_CALLBACK ldv_timer_scenario_callback_7_2 */
1659 : void ldv_timer_scenario_callback_7_2(void (*arg0)(unsigned long), unsigned long arg1) {
1660 402 : (*arg0)(arg1);
1661 134 : }
1662 :
1663 : /* AUX_FUNC main */
1664 : int main() {
1665 1 : ldv_main_13(0);
1666 0 : return 0;
1667 : }
1668 :
1669 :
1670 : /* AUX_FUNC ERR_PTR */
1671 : static inline void *ERR_PTR (long int error)
1672 : {
1673 :
1674 : return ldv_err_ptr(error);
1675 : }
1676 :
1677 : /* AUX_FUNC PTR_ERR */
1678 : static inline long int PTR_ERR (void const *ptr)
1679 : {
1680 :
1681 : return ldv_ptr_err(ptr);
1682 : }
1683 :
1684 : /* AUX_FUNC IS_ERR */
1685 : static inline long int IS_ERR (void const *ptr)
1686 : {
1687 :
1688 : return ldv_is_err(ptr);
1689 : }
1690 :
1691 : /* AUX_FUNC IS_ERR_OR_NULL */
1692 : static inline long int IS_ERR_OR_NULL (void const *ptr)
1693 : {
1694 :
1695 : return ldv_is_err_or_null(ptr);
1696 : }
1697 :
1698 : /* AUX_FUNC ldv_del_timer_sync_5 */
1699 : int ldv_del_timer_sync_5 (struct timer_list *ldv_func_arg1)
1700 : {
1701 :
1702 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
1703 : return ldv_emg_del_timer_sync(ldv_func_arg1);
1704 : }
1705 :
1706 : /* AUX_FUNC kzalloc */
1707 : static inline void *kzalloc (size_t size, gfp_t flags)
1708 : {
1709 9 :
1710 27 : return ldv_kzalloc(size, flags);
1711 : }
1712 :
1713 : /* AUX_FUNC ldv_dev_get_drvdata_7 */
1714 : void *ldv_dev_get_drvdata_7 (struct device const *dev)
1715 : {
1716 :
1717 : return ldv_dev_get_drvdata(dev);
1718 : }
1719 :
1720 : /* AUX_FUNC ldv_dev_get_drvdata_8 */
1721 : void *ldv_dev_get_drvdata_8 (struct device const *dev)
1722 : {
1723 :
1724 : return ldv_dev_get_drvdata(dev);
1725 : }
1726 :
1727 : /* AUX_FUNC ldv_mod_timer_9 */
1728 : int ldv_mod_timer_9 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
1729 : {
1730 24 :
1731 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
1732 96 : return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
1733 : }
1734 :
1735 : /* AUX_FUNC ldv_mod_timer_10 */
1736 : int ldv_mod_timer_10 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
1737 : {
1738 38 :
1739 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
1740 152 : return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
1741 : }
1742 :
1743 : /* AUX_FUNC ldv_dev_get_drvdata_11 */
1744 : void *ldv_dev_get_drvdata_11 (struct device const *dev)
1745 : {
1746 1 :
1747 3 : return ldv_dev_get_drvdata(dev);
1748 : }
1749 :
1750 : /* AUX_FUNC ldv_dev_get_drvdata_12 */
1751 : void *ldv_dev_get_drvdata_12 (struct device const *dev)
1752 : {
1753 1 :
1754 3 : return ldv_dev_get_drvdata(dev);
1755 : }
1756 :
1757 : /* AUX_FUNC ldv_mod_timer_13 */
1758 : int ldv_mod_timer_13 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
1759 : {
1760 4 :
1761 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
1762 16 : return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
1763 : }
1764 :
1765 : /* AUX_FUNC ldv_del_timer_sync_14 */
1766 : int ldv_del_timer_sync_14 (struct timer_list *ldv_func_arg1)
1767 : {
1768 1 :
1769 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
1770 3 : return ldv_emg_del_timer_sync(ldv_func_arg1);
1771 : }
1772 :
1773 : /* AUX_FUNC ldv_del_timer_sync_15 */
1774 : int ldv_del_timer_sync_15 (struct timer_list *ldv_func_arg1)
1775 : {
1776 1 :
1777 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
1778 3 : return ldv_emg_del_timer_sync(ldv_func_arg1);
1779 : }
1780 :
1781 : /* AUX_FUNC ldv_del_timer_sync_16 */
1782 : int ldv_del_timer_sync_16 (struct timer_list *ldv_func_arg1)
1783 : {
1784 1 :
1785 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
1786 3 : return ldv_emg_del_timer_sync(ldv_func_arg1);
1787 : }
1788 :
1789 : /* AUX_FUNC ldv_del_timer_sync_17 */
1790 : int ldv_del_timer_sync_17 (struct timer_list *ldv_func_arg1)
1791 : {
1792 1 :
1793 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
1794 3 : return ldv_emg_del_timer_sync(ldv_func_arg1);
1795 : }
1796 :
1797 : /* AUX_FUNC ldv_mod_timer_18 */
1798 : int ldv_mod_timer_18 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
1799 : {
1800 1 :
1801 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
1802 4 : return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
1803 : }
1804 :
1805 : /* AUX_FUNC ldv___pci_register_driver_19 */
1806 : int ldv___pci_register_driver_19 (struct pci_driver *ldv_func_arg1, struct module *ldv_func_arg2, char const *ldv_func_arg3)
1807 : {
1808 :
1809 2 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function '__pci_register_driver'"} */
1810 8 : return ldv_emg___pci_register_driver(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
1811 : }
1812 :
1813 : /* AUX_FUNC ldv_pci_unregister_driver_20 */
1814 : void ldv_pci_unregister_driver_20 (struct pci_driver *ldv_func_arg1)
1815 : {
1816 :
1817 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
1818 0 : ldv_emg_pci_unregister_driver(ldv_func_arg1);
1819 0 : }
1820 :
1821 : /* AUX_FUNC ldv_pci_unregister_driver_21 */
1822 : void ldv_pci_unregister_driver_21 (struct pci_driver *ldv_func_arg1)
1823 : {
1824 :
1825 : /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
1826 4 : ldv_emg_pci_unregister_driver(ldv_func_arg1);
1827 2 : }
|