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/cdev.h>
29 : #include <linux/miscdevice.h>
30 : #include <linux/seq_file.h>
31 : #include <linux/fs.h>
32 : #include <linux/pagemap.h>
33 :
34 :
35 : struct ldv_struct_insmod_8 {
36 : int signal_pending;
37 : };
38 :
39 : /* EMG Function declarations */
40 : extern void ldv_character_driver_scenario_1(void *);
41 : extern void ldv_character_driver_scenario_2(void *);
42 : void ldv_character_driver_scenario_callback_1_22(ssize_t (*)(struct kiocb *, struct iovec *, long unsigned int, loff_t ), struct kiocb *, struct iovec *, long unsigned int, long long int);
43 : void ldv_character_driver_scenario_callback_1_37(int (*)(struct file *, struct vm_area_struct *), struct file *, struct vm_area_struct *);
44 : void ldv_character_driver_scenario_callback_1_42(ssize_t (*)(struct file *, loff_t *, struct pipe_inode_info *, long unsigned int, unsigned int), struct file *, loff_t *, struct pipe_inode_info *, long unsigned int, unsigned int);
45 : void ldv_character_driver_scenario_callback_1_5(ssize_t (*)(struct kiocb *, struct iovec *, long unsigned int, loff_t ), struct kiocb *, struct iovec *, long unsigned int, long long int);
46 : void ldv_character_driver_scenario_callback_2_25(long int (*)(struct file *, unsigned int, long unsigned int), struct file *, unsigned int, long unsigned int);
47 : void ldv_character_driver_scenario_callback_2_41(int (*)(struct file *, void *, filldir_t ), struct file *, void *, int (*)(void *, char *, int, loff_t , u64 , unsigned int));
48 : int ldv_character_driver_scenario_probe_1_13(int (*)(struct inode *, struct file *), struct inode *, struct file *);
49 : int ldv_character_driver_scenario_probe_2_13(int (*)(struct inode *, struct file *), struct inode *, struct file *);
50 : void ldv_character_driver_scenario_release_1_2(int (*)(struct inode *, struct file *), struct inode *, struct file *);
51 : void ldv_character_driver_scenario_write_1_4(ssize_t (*)(struct file *, char *, long unsigned int, loff_t *), struct file *, char *, long unsigned int, loff_t *);
52 : void ldv_dispatch_default_deregister_1_8_4(void);
53 : void ldv_dispatch_default_deregister_2_8_5(void);
54 : void ldv_dispatch_default_deregister_3_8_6(void);
55 : void ldv_dispatch_default_deregister_4_8_7(void);
56 : void ldv_dispatch_default_deregister_5_8_8(void);
57 : void ldv_dispatch_default_register_1_8_13(void);
58 : void ldv_dispatch_default_register_2_8_12(void);
59 : void ldv_dispatch_default_register_3_8_11(void);
60 : void ldv_dispatch_default_register_4_8_10(void);
61 : void ldv_dispatch_default_register_5_8_9(void);
62 : void ldv_dispatch_insmod_deregister_9_2(void);
63 : void ldv_dispatch_insmod_register_9_3(void);
64 : void ldv_insmod_8(void *);
65 : void ldv_insmod_exit_fat_fs_8_2(void (*)(void));
66 : int ldv_insmod_init_fat_fs_8_17(int (*)(void));
67 : void ldv_main_9(void *);
68 : void ldv_random_containerless_scenario_3(void *);
69 : void ldv_random_containerless_scenario_4(void *);
70 : void ldv_random_containerless_scenario_5(void *);
71 : void ldv_random_containerless_scenario_6(void *);
72 : void ldv_random_containerless_scenario_7(void *);
73 : void ldv_random_containerless_scenario_callback_3_10(ssize_t (*)(int, struct kiocb *, struct iovec *, loff_t , long unsigned int), int, struct kiocb *, struct iovec *, long long int, long unsigned int);
74 : void ldv_random_containerless_scenario_callback_3_13(int (*)(struct file *, struct page *), struct file *, struct page *);
75 : void ldv_random_containerless_scenario_callback_3_14(int (*)(struct file *, struct address_space *, struct list_head *, unsigned int), struct file *, struct address_space *, struct list_head *, unsigned int);
76 : void ldv_random_containerless_scenario_callback_3_17(void (*)(struct page *), struct page *);
77 : void ldv_random_containerless_scenario_callback_3_18(int (*)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page **, void **), struct file *, struct address_space *, long long int, unsigned int, unsigned int, struct page **, void **);
78 : void ldv_random_containerless_scenario_callback_3_21(int (*)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page *, void *), struct file *, struct address_space *, long long int, unsigned int, unsigned int, struct page *, void *);
79 : void ldv_random_containerless_scenario_callback_3_24(int (*)(struct page *, struct writeback_control *), struct page *, struct writeback_control *);
80 : void ldv_random_containerless_scenario_callback_3_25(int (*)(struct address_space *, struct writeback_control *), struct address_space *, struct writeback_control *);
81 : void ldv_random_containerless_scenario_callback_3_4(sector_t (*)(struct address_space *, sector_t ), struct address_space *, long unsigned int);
82 : void ldv_random_containerless_scenario_callback_4_10(struct dentry *(*)(struct super_block *, struct fid *, int, int), struct super_block *, struct fid *, int, int);
83 : void ldv_random_containerless_scenario_callback_4_13(struct dentry *(*)(struct dentry *), struct dentry *);
84 : void ldv_random_containerless_scenario_callback_4_4(int (*)(struct dentry *, unsigned int *, int *, int), struct dentry *, u32 *, int *, int);
85 : extern void ldv_random_containerless_scenario_callback_5_10(int (*)(struct super_block *, struct fat_entry *, int, sector_t ), struct super_block *, struct fat_entry *, int, long unsigned int);
86 : extern void ldv_random_containerless_scenario_callback_5_13(int (*)(struct fat_entry *), struct fat_entry *);
87 : extern void ldv_random_containerless_scenario_callback_5_14(int (*)(struct fat_entry *), struct fat_entry *);
88 : extern void ldv_random_containerless_scenario_callback_5_15(void (*)(struct fat_entry *, int), struct fat_entry *, int);
89 : extern void ldv_random_containerless_scenario_callback_5_18(void (*)(struct fat_entry *, int), struct fat_entry *, int);
90 : extern void ldv_random_containerless_scenario_callback_5_4(void (*)(struct super_block *, int, int *, sector_t *), struct super_block *, int, int *, sector_t *);
91 : extern void ldv_random_containerless_scenario_callback_6_10(int (*)(struct super_block *, struct fat_entry *, int, sector_t ), struct super_block *, struct fat_entry *, int, long unsigned int);
92 : extern void ldv_random_containerless_scenario_callback_6_13(int (*)(struct fat_entry *), struct fat_entry *);
93 : extern void ldv_random_containerless_scenario_callback_6_14(int (*)(struct fat_entry *), struct fat_entry *);
94 : extern void ldv_random_containerless_scenario_callback_6_15(void (*)(struct fat_entry *, int), struct fat_entry *, int);
95 : extern void ldv_random_containerless_scenario_callback_6_18(void (*)(struct fat_entry *, int), struct fat_entry *, int);
96 : extern void ldv_random_containerless_scenario_callback_6_4(void (*)(struct super_block *, int, int *, sector_t *), struct super_block *, int, int *, sector_t *);
97 : void ldv_random_containerless_scenario_callback_7_10(void (*)(struct inode *), struct inode *);
98 : extern void ldv_random_containerless_scenario_callback_7_11(int (*)(struct vfsmount *, struct dentry *, struct kstat *), struct vfsmount *, struct dentry *, struct kstat *);
99 : void ldv_random_containerless_scenario_callback_7_12(void (*)(struct super_block *), struct super_block *);
100 : void ldv_random_containerless_scenario_callback_7_13(int (*)(struct super_block *, int *, char *), struct super_block *, int *, char *);
101 : extern void ldv_random_containerless_scenario_callback_7_16(int (*)(struct dentry *, struct iattr *), struct dentry *, struct iattr *);
102 : void ldv_random_containerless_scenario_callback_7_17(int (*)(struct seq_file *, struct vfsmount *), struct seq_file *, struct vfsmount *);
103 : void ldv_random_containerless_scenario_callback_7_18(int (*)(struct dentry *, struct kstatfs *), struct dentry *, struct kstatfs *);
104 : void ldv_random_containerless_scenario_callback_7_19(int (*)(struct super_block *, int), struct super_block *, int);
105 : extern void ldv_random_containerless_scenario_callback_7_22(void (*)(struct inode *), struct inode *);
106 : void ldv_random_containerless_scenario_callback_7_23(int (*)(struct inode *, int), struct inode *, int);
107 : void ldv_random_containerless_scenario_callback_7_26(void (*)(struct super_block *), struct super_block *);
108 : void ldv_random_containerless_scenario_callback_7_4(struct inode *(*)(struct super_block *), struct super_block *);
109 : void ldv_random_containerless_scenario_callback_7_8(void (*)(struct inode *), struct inode *);
110 : void ldv_random_containerless_scenario_callback_7_9(void (*)(struct inode *), struct inode *);
111 : int main(void);
112 :
113 : /* EMG variable declarations */
114 1 : struct ldv_thread ldv_thread_3;
115 1 : struct ldv_thread ldv_thread_4;
116 1 : struct ldv_thread ldv_thread_5;
117 1 : struct ldv_thread ldv_thread_6;
118 1 : struct ldv_thread ldv_thread_7;
119 1 : struct ldv_thread ldv_thread_8;
120 1 : struct ldv_thread ldv_thread_9;
121 :
122 : /* EMG variable initialization */
123 :
124 : /* EMG function definitions */
125 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_22 */
126 : void ldv_character_driver_scenario_callback_1_22(ssize_t (*arg0)(struct kiocb *, struct iovec *, long unsigned int, loff_t ), struct kiocb *arg1, struct iovec *arg2, long unsigned int arg3, long long int arg4) {
127 1 : (*arg0)(arg1, arg2, arg3, arg4);
128 1 : }
129 :
130 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_37 */
131 : void ldv_character_driver_scenario_callback_1_37(int (*arg0)(struct file *, struct vm_area_struct *), struct file *arg1, struct vm_area_struct *arg2) {
132 1 : (*arg0)(arg1, arg2);
133 1 : }
134 :
135 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_42 */
136 : void ldv_character_driver_scenario_callback_1_42(ssize_t (*arg0)(struct file *, loff_t *, struct pipe_inode_info *, long unsigned int, unsigned int), struct file *arg1, long long int *arg2, struct pipe_inode_info *arg3, long unsigned int arg4, unsigned int arg5) {
137 1 : (*arg0)(arg1, arg2, arg3, arg4, arg5);
138 1 : }
139 :
140 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_5 */
141 : void ldv_character_driver_scenario_callback_1_5(ssize_t (*arg0)(struct kiocb *, struct iovec *, long unsigned int, loff_t ), struct kiocb *arg1, struct iovec *arg2, long unsigned int arg3, long long int arg4) {
142 1 : (*arg0)(arg1, arg2, arg3, arg4);
143 1 : }
144 :
145 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_25 */
146 : void ldv_character_driver_scenario_callback_2_25(long int (*arg0)(struct file *, unsigned int, long unsigned int), struct file *arg1, unsigned int arg2, long unsigned int arg3) {
147 2 : (*arg0)(arg1, arg2, arg3);
148 1 : }
149 :
150 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_41 */
151 : void ldv_character_driver_scenario_callback_2_41(int (*arg0)(struct file *, void *, filldir_t ), struct file *arg1, void *arg2, int (*arg3)(void *, char *, int, loff_t , u64 , unsigned int)) {
152 2 : (*arg0)(arg1, arg2, arg3);
153 1 : }
154 :
155 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_probe_1_13 */
156 : int ldv_character_driver_scenario_probe_1_13(int (*arg0)(struct inode *, struct file *), struct inode *arg1, struct file *arg2) {
157 3 : return (*arg0)(arg1, arg2);
158 : }
159 1 :
160 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_probe_2_13 */
161 : int ldv_character_driver_scenario_probe_2_13(int (*arg0)(struct inode *, struct file *), struct inode *arg1, struct file *arg2) {
162 3 : return (*arg0)(arg1, arg2);
163 : }
164 1 :
165 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_release_1_2 */
166 : void ldv_character_driver_scenario_release_1_2(int (*arg0)(struct inode *, struct file *), struct inode *arg1, struct file *arg2) {
167 2 : (*arg0)(arg1, arg2);
168 1 : }
169 :
170 : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_write_1_4 */
171 : void ldv_character_driver_scenario_write_1_4(ssize_t (*arg0)(struct file *, char *, long unsigned int, loff_t *), struct file *arg1, char *arg2, long unsigned int arg3, long long int *arg4) {
172 1 : (*arg0)(arg1, arg2, arg3, arg4);
173 1 : }
174 :
175 : /* AUX_FUNC ldv_dispatch_default_deregister_1_8_4 */
176 : void ldv_dispatch_default_deregister_1_8_4() {
177 : struct ldv_struct_insmod_8 *cf_arg_1;
178 : struct ldv_struct_insmod_8 *cf_arg_2;
179 : /* Skip thread join call */
180 : /* Skip thread join call */
181 1 : return;
182 : }
183 :
184 : /* AUX_FUNC ldv_dispatch_default_deregister_2_8_5 */
185 : void ldv_dispatch_default_deregister_2_8_5() {
186 : struct ldv_struct_insmod_8 *cf_arg_3;
187 : /* Skip thread join call */
188 1 : return;
189 : }
190 :
191 : /* AUX_FUNC ldv_dispatch_default_deregister_3_8_6 */
192 : void ldv_dispatch_default_deregister_3_8_6() {
193 : struct ldv_struct_insmod_8 *cf_arg_4;
194 : /* Skip thread join call */
195 1 : return;
196 : }
197 :
198 : /* AUX_FUNC ldv_dispatch_default_deregister_4_8_7 */
199 : void ldv_dispatch_default_deregister_4_8_7() {
200 : struct ldv_struct_insmod_8 *cf_arg_5;
201 : struct ldv_struct_insmod_8 *cf_arg_6;
202 : /* Skip thread join call */
203 : /* Skip thread join call */
204 1 : return;
205 : }
206 :
207 : /* AUX_FUNC ldv_dispatch_default_deregister_5_8_8 */
208 : void ldv_dispatch_default_deregister_5_8_8() {
209 : struct ldv_struct_insmod_8 *cf_arg_7;
210 : /* Skip thread join call */
211 1 : return;
212 : }
213 :
214 : /* AUX_FUNC ldv_dispatch_default_register_1_8_13 */
215 : void ldv_dispatch_default_register_1_8_13() {
216 : struct ldv_struct_insmod_8 *cf_arg_1;
217 1 : struct ldv_struct_insmod_8 *cf_arg_2;
218 4 : cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
219 3 : ldv_character_driver_scenario_1(cf_arg_1);
220 4 : cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
221 2 : ldv_character_driver_scenario_2(cf_arg_2);
222 1 : return;
223 : }
224 :
225 : /* AUX_FUNC ldv_dispatch_default_register_2_8_12 */
226 : void ldv_dispatch_default_register_2_8_12() {
227 : struct ldv_struct_insmod_8 *cf_arg_3;
228 4 : cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
229 3 : ldv_random_containerless_scenario_3(cf_arg_3);
230 1 : return;
231 : }
232 :
233 : /* AUX_FUNC ldv_dispatch_default_register_3_8_11 */
234 : void ldv_dispatch_default_register_3_8_11() {
235 : struct ldv_struct_insmod_8 *cf_arg_4;
236 4 : cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
237 3 : ldv_random_containerless_scenario_4(cf_arg_4);
238 1 : return;
239 : }
240 :
241 : /* AUX_FUNC ldv_dispatch_default_register_4_8_10 */
242 : void ldv_dispatch_default_register_4_8_10() {
243 : struct ldv_struct_insmod_8 *cf_arg_5;
244 1 : struct ldv_struct_insmod_8 *cf_arg_6;
245 4 : cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
246 3 : ldv_random_containerless_scenario_5(cf_arg_5);
247 4 : cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
248 2 : ldv_random_containerless_scenario_6(cf_arg_6);
249 1 : return;
250 : }
251 :
252 : /* AUX_FUNC ldv_dispatch_default_register_5_8_9 */
253 : void ldv_dispatch_default_register_5_8_9() {
254 : struct ldv_struct_insmod_8 *cf_arg_7;
255 4 : cf_arg_7 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
256 3 : ldv_random_containerless_scenario_7(cf_arg_7);
257 1 : return;
258 : }
259 :
260 : /* AUX_FUNC ldv_dispatch_insmod_deregister_9_2 */
261 : void ldv_dispatch_insmod_deregister_9_2() {
262 : struct ldv_struct_insmod_8 *cf_arg_8;
263 : /* Skip thread join call */
264 1 : return;
265 : }
266 :
267 : /* AUX_FUNC ldv_dispatch_insmod_register_9_3 */
268 : void ldv_dispatch_insmod_register_9_3() {
269 : struct ldv_struct_insmod_8 *cf_arg_8;
270 4 : cf_arg_8 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
271 4 : ldv_insmod_8(cf_arg_8);
272 1 : return;
273 : }
274 :
275 : /* AUX_FUNC ldv_insmod_8 */
276 : void ldv_insmod_8(void *arg0) {
277 : /* LDV {"thread": 8, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_8"} */
278 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
279 1 : void (*ldv_8_exit_fat_fs_default)(void);
280 1 : int (*ldv_8_init_fat_fs_default)(void);
281 1 : int ldv_8_ret_default;
282 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
283 : /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
284 2 : ldv_free(arg0);
285 : /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
286 :
287 : /* LDV {"action": "INIT_FAT_FS", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'init_fat_fs' function. Invoke callback init_fat_fs from ARTIFICIAL."} */
288 : /* LDV {"type": "CALLBACK", "call": "ldv_8_ret_default = (init_fat_fs)();", "comment": "init_fat_fs"} */
289 2 : ldv_8_ret_default = ldv_insmod_init_fat_fs_8_17(ldv_8_init_fat_fs_default);
290 : /* Callback post-call */
291 2 : ldv_8_ret_default = ldv_post_init(ldv_8_ret_default);
292 : /* LDV {"action": "INIT_FAT_FS", "type": "CALL_END"} */
293 :
294 4 : if (ldv_undef_int()) {
295 : /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
296 2 : ldv_assume(ldv_8_ret_default != 0);
297 : /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
298 :
299 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
300 : /* Skip a non-replicative signal receiving */
301 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
302 :
303 : /* Exit function at a terminal state */
304 1 : return;
305 : }
306 : else {
307 : /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
308 2 : ldv_assume(ldv_8_ret_default == 0);
309 : /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
310 :
311 4 : if (ldv_undef_int()) {
312 : /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Register 'FILE_OPERATIONS' callbacks with unknown registration function."} */
313 2 : ldv_dispatch_default_register_1_8_13();
314 : /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_END"} */
315 :
316 : /* LDV {"action": "DEFAULT_REGISTER_2", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_ADDRESS_SPACE_OPERATIONS' callbacks with unknown registration function."} */
317 2 : ldv_dispatch_default_register_2_8_12();
318 : /* LDV {"action": "DEFAULT_REGISTER_2", "type": "DISPATCH_END"} */
319 :
320 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_EXPORT_OPERATIONS' callbacks with unknown registration function."} */
321 2 : ldv_dispatch_default_register_3_8_11();
322 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "DISPATCH_END"} */
323 :
324 : /* LDV {"action": "DEFAULT_REGISTER_4", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_FATENT_OPERATIONS' callbacks with unknown registration function."} */
325 2 : ldv_dispatch_default_register_4_8_10();
326 : /* LDV {"action": "DEFAULT_REGISTER_4", "type": "DISPATCH_END"} */
327 :
328 : /* LDV {"action": "DEFAULT_REGISTER_5", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_SUPER_OPERATIONS' callbacks with unknown registration function."} */
329 2 : ldv_dispatch_default_register_5_8_9();
330 : /* LDV {"action": "DEFAULT_REGISTER_5", "type": "DISPATCH_END"} */
331 :
332 : /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_SUPER_OPERATIONS' callbacks with unknown deregistration function."} */
333 2 : ldv_dispatch_default_deregister_5_8_8();
334 : /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "DISPATCH_END"} */
335 :
336 : /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_FATENT_OPERATIONS' callbacks with unknown deregistration function."} */
337 2 : ldv_dispatch_default_deregister_4_8_7();
338 : /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "DISPATCH_END"} */
339 :
340 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_EXPORT_OPERATIONS' callbacks with unknown deregistration function."} */
341 2 : ldv_dispatch_default_deregister_3_8_6();
342 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "DISPATCH_END"} */
343 :
344 : /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_ADDRESS_SPACE_OPERATIONS' callbacks with unknown deregistration function."} */
345 2 : ldv_dispatch_default_deregister_2_8_5();
346 : /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "DISPATCH_END"} */
347 :
348 : /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Deregister 'FILE_OPERATIONS' callbacks with unknown deregistration function."} */
349 2 : ldv_dispatch_default_deregister_1_8_4();
350 : /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_END"} */
351 :
352 : }
353 : else {
354 : /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
355 : /* LDV {"action": "NONE", "type": "CONDITION_END"} */
356 :
357 : }
358 : /* LDV {"action": "EXIT_FAT_FS", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'exit_fat_fs' function. Invoke callback exit_fat_fs from ARTIFICIAL."} */
359 : /* LDV {"type": "CALLBACK", "call": "(exit_fat_fs)();", "comment": "exit_fat_fs"} */
360 4 : ldv_insmod_exit_fat_fs_8_2(ldv_8_exit_fat_fs_default);
361 : /* LDV {"action": "EXIT_FAT_FS", "type": "CALL_END"} */
362 :
363 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
364 : /* Skip a non-replicative signal receiving */
365 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
366 :
367 : /* Exit function at a terminal state */
368 1 : return;
369 : }
370 : /* End of the process */
371 : return;
372 : /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_8"} */
373 : }
374 :
375 : /* AUX_FUNC_CALLBACK ldv_insmod_exit_fat_fs_8_2 */
376 : void ldv_insmod_exit_fat_fs_8_2(void (*arg0)(void)) {
377 4 : (exit_fat_fs)();
378 2 : }
379 :
380 : /* AUX_FUNC_CALLBACK ldv_insmod_init_fat_fs_8_17 */
381 : int ldv_insmod_init_fat_fs_8_17(int (*arg0)(void)) {
382 5 : return (init_fat_fs)();
383 1 : }
384 :
385 : /* AUX_FUNC ldv_main_9 */
386 : void ldv_main_9(void *arg0) {
387 : /* LDV {"thread": 9, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_9"} */
388 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
389 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
390 : /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
391 1 : ldv_initialize();
392 : /* LDV {"action": "INIT", "type": "CONDITION_END"} */
393 :
394 : /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
395 2 : ldv_dispatch_insmod_register_9_3();
396 : /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
397 :
398 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
399 2 : ldv_dispatch_insmod_deregister_9_2();
400 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
401 :
402 : /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
403 1 : ldv_check_final_state();
404 1 : ldv_stop();
405 : /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
406 :
407 : /* Exit function at a terminal state */
408 0 : return;
409 : /* End of the process */
410 : return;
411 : /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_9"} */
412 : }
413 :
414 : /* AUX_FUNC ldv_random_containerless_scenario_3 */
415 : void ldv_random_containerless_scenario_3(void *arg0) {
416 : /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_address_space_operations)'", "function": "ldv_random_containerless_scenario_3"} */
417 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
418 1 : sector_t (*ldv_3_callback_bmap)(struct address_space *, sector_t );
419 : ssize_t (*ldv_3_callback_direct_IO)(int, struct kiocb *, struct iovec *, loff_t , long unsigned int);
420 1 : int (*ldv_3_callback_readpage)(struct file *, struct page *);
421 1 : int (*ldv_3_callback_readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
422 : void (*ldv_3_callback_sync_page)(struct page *);
423 1 : int (*ldv_3_callback_write_begin)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page **, void **);
424 1 : int (*ldv_3_callback_write_end)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page *, void *);
425 : int (*ldv_3_callback_writepage)(struct page *, struct writeback_control *);
426 : int (*ldv_3_callback_writepages)(struct address_space *, struct writeback_control *);
427 1 : struct address_space *ldv_3_container_struct_address_space_ptr;
428 : struct file *ldv_3_container_struct_file_ptr;
429 : struct iovec *ldv_3_container_struct_iovec_ptr;
430 1 : struct kiocb *ldv_3_container_struct_kiocb_ptr;
431 1 : struct list_head *ldv_3_container_struct_list_head_ptr;
432 1 : struct page *ldv_3_container_struct_page_ptr;
433 1 : struct writeback_control *ldv_3_container_struct_writeback_control_ptr;
434 1 : int ldv_3_ldv_param_10_0_default;
435 1 : long long int ldv_3_ldv_param_10_3_default;
436 1 : long unsigned int ldv_3_ldv_param_10_4_default;
437 1 : unsigned int ldv_3_ldv_param_14_3_default;
438 1 : long long int ldv_3_ldv_param_18_2_default;
439 1 : unsigned int ldv_3_ldv_param_18_3_default;
440 1 : unsigned int ldv_3_ldv_param_18_4_default;
441 1 : long long int ldv_3_ldv_param_21_2_default;
442 1 : unsigned int ldv_3_ldv_param_21_3_default;
443 1 : unsigned int ldv_3_ldv_param_21_4_default;
444 1 : long unsigned int ldv_3_ldv_param_4_1_default;
445 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
446 1 : /* LDV {"action": "DEFAULT_REGISTER_2", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_ADDRESS_SPACE_OPERATIONS callbacks invocations scenario."} */
447 3 : ldv_free(arg0);
448 1 : /* LDV {"action": "DEFAULT_REGISTER_2", "type": "RECEIVE_END"} */
449 1 :
450 1 : /* LDV {"action": "DEFAULT_ALLOC_2", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
451 4 : ldv_3_container_struct_address_space_ptr = ldv_xmalloc_unknown_size(0);
452 4 : ldv_3_container_struct_file_ptr = ldv_xmalloc_unknown_size(0);
453 4 : ldv_3_container_struct_iovec_ptr = ldv_xmalloc_unknown_size(0);
454 4 : ldv_3_container_struct_kiocb_ptr = ldv_xmalloc_unknown_size(0);
455 4 : ldv_3_container_struct_list_head_ptr = ldv_xmalloc_unknown_size(0);
456 4 : ldv_3_container_struct_page_ptr = ldv_xmalloc_unknown_size(0);
457 4 : ldv_3_container_struct_writeback_control_ptr = ldv_xmalloc_unknown_size(0);
458 1 : /* LDV {"action": "DEFAULT_ALLOC_2", "type": "CONDITION_END"} */
459 :
460 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
461 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
462 :
463 : /* Jump to a subprocess 'call' initial state */
464 1 : goto ldv_call_3;
465 : /* End of the process */
466 : return;
467 1 :
468 : /* Sbprocess call */
469 : ldv_call_3:
470 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
471 :
472 4 : if (ldv_undef_int()) {
473 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
474 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
475 :
476 2 : switch (ldv_undef_int()) {
477 3 : case 1: {
478 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback writepages from address_space_operations."} */
479 : /* LDV {"type": "CALLBACK", "call": "((& fat_writepages))(ldv_3_container_struct_address_space_ptr, ldv_3_container_struct_writeback_control_ptr);", "comment": "callback"} */
480 2 : ldv_random_containerless_scenario_callback_3_25(ldv_3_callback_writepages, ldv_3_container_struct_address_space_ptr, ldv_3_container_struct_writeback_control_ptr);
481 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
482 :
483 1 : break;
484 1 : }
485 3 : case 2: {
486 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback writepage from address_space_operations."} */
487 : /* LDV {"type": "CALLBACK", "call": "((& fat_writepage))(ldv_3_container_struct_page_ptr, ldv_3_container_struct_writeback_control_ptr);", "comment": "callback"} */
488 2 : ldv_random_containerless_scenario_callback_3_24(ldv_3_callback_writepage, ldv_3_container_struct_page_ptr, ldv_3_container_struct_writeback_control_ptr);
489 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
490 :
491 1 : break;
492 1 : }
493 3 : case 3: {
494 : /* LDV {"action": "PRE_CALL_21", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
495 : /* LDV {"action": "PRE_CALL_21", "type": "CONDITION_END"} */
496 :
497 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback write_end from address_space_operations."} */
498 : /* LDV {"type": "CALLBACK", "call": "((& fat_write_end))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_21_2_default, ldv_3_ldv_param_21_3_default, ldv_3_ldv_param_21_4_default, ldv_3_container_struct_page_ptr, ldv_3_container_struct_iovec_ptr);", "comment": "callback"} */
499 2 : ldv_random_containerless_scenario_callback_3_21(ldv_3_callback_write_end, ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_21_2_default, ldv_3_ldv_param_21_3_default, ldv_3_ldv_param_21_4_default, ldv_3_container_struct_page_ptr, ldv_3_container_struct_iovec_ptr);
500 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
501 :
502 : /* LDV {"action": "POST_CALL_21", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
503 : /* LDV {"action": "POST_CALL_21", "type": "CONDITION_END"} */
504 :
505 1 : break;
506 1 : }
507 3 : case 4: {
508 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
509 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
510 :
511 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback write_begin from address_space_operations."} */
512 : /* LDV {"type": "CALLBACK", "call": "((& fat_write_begin))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_18_2_default, ldv_3_ldv_param_18_3_default, ldv_3_ldv_param_18_4_default, ldv_3_container_struct_page_ptr, ldv_3_container_struct_iovec_ptr);", "comment": "callback"} */
513 2 : ldv_random_containerless_scenario_callback_3_18(ldv_3_callback_write_begin, ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_18_2_default, ldv_3_ldv_param_18_3_default, ldv_3_ldv_param_18_4_default, ldv_3_container_struct_page_ptr, ldv_3_container_struct_iovec_ptr);
514 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
515 :
516 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
517 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
518 :
519 1 : break;
520 1 : }
521 3 : case 5: {
522 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback sync_page from address_space_operations."} */
523 : /* LDV {"type": "CALLBACK", "call": "((& block_sync_page))(ldv_3_container_struct_page_ptr);", "comment": "callback"} */
524 2 : ldv_random_containerless_scenario_callback_3_17(ldv_3_callback_sync_page, ldv_3_container_struct_page_ptr);
525 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
526 :
527 1 : break;
528 1 : }
529 3 : case 6: {
530 : /* LDV {"action": "PRE_CALL_14", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
531 : /* LDV {"action": "PRE_CALL_14", "type": "CONDITION_END"} */
532 :
533 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback readpages from address_space_operations."} */
534 : /* LDV {"type": "CALLBACK", "call": "((& fat_readpages))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_container_struct_list_head_ptr, ldv_3_ldv_param_14_3_default);", "comment": "callback"} */
535 2 : ldv_random_containerless_scenario_callback_3_14(ldv_3_callback_readpages, ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_container_struct_list_head_ptr, ldv_3_ldv_param_14_3_default);
536 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
537 :
538 : /* LDV {"action": "POST_CALL_14", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
539 : /* LDV {"action": "POST_CALL_14", "type": "CONDITION_END"} */
540 :
541 1 : break;
542 1 : }
543 3 : case 7: {
544 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback readpage from address_space_operations."} */
545 : /* LDV {"type": "CALLBACK", "call": "((& fat_readpage))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_page_ptr);", "comment": "callback"} */
546 2 : ldv_random_containerless_scenario_callback_3_13(ldv_3_callback_readpage, ldv_3_container_struct_file_ptr, ldv_3_container_struct_page_ptr);
547 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
548 :
549 1 : break;
550 1 : }
551 3 : case 8: {
552 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
553 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
554 :
555 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback direct_IO from address_space_operations."} */
556 : /* LDV {"type": "CALLBACK", "call": "((& fat_direct_IO))(ldv_3_ldv_param_10_0_default, ldv_3_container_struct_kiocb_ptr, ldv_3_container_struct_iovec_ptr, ldv_3_ldv_param_10_3_default, ldv_3_ldv_param_10_4_default);", "comment": "callback"} */
557 2 : ldv_random_containerless_scenario_callback_3_10(ldv_3_callback_direct_IO, ldv_3_ldv_param_10_0_default, ldv_3_container_struct_kiocb_ptr, ldv_3_container_struct_iovec_ptr, ldv_3_ldv_param_10_3_default, ldv_3_ldv_param_10_4_default);
558 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
559 :
560 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
561 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
562 :
563 1 : break;
564 1 : }
565 3 : case 9: {
566 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback bmap from address_space_operations."} */
567 : /* LDV {"type": "CALLBACK", "call": "((& _fat_bmap))(ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_4_1_default);", "comment": "callback"} */
568 2 : ldv_random_containerless_scenario_callback_3_4(ldv_3_callback_bmap, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_4_1_default);
569 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
570 :
571 1 : break;
572 1 : }
573 2 : default: ldv_stop();
574 1 : }
575 0 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
576 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
577 0 :
578 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
579 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
580 :
581 : /* Jump to a subprocess 'call' initial state */
582 9 : goto ldv_call_3;
583 : }
584 : else {
585 : /* LDV {"action": "DEFAULT_FREE_2", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
586 2 : ldv_free(ldv_3_container_struct_address_space_ptr);
587 2 : ldv_free(ldv_3_container_struct_file_ptr);
588 2 : ldv_free(ldv_3_container_struct_iovec_ptr);
589 2 : ldv_free(ldv_3_container_struct_kiocb_ptr);
590 2 : ldv_free(ldv_3_container_struct_list_head_ptr);
591 2 : ldv_free(ldv_3_container_struct_page_ptr);
592 2 : ldv_free(ldv_3_container_struct_writeback_control_ptr);
593 : /* LDV {"action": "DEFAULT_FREE_2", "type": "CONDITION_END"} */
594 :
595 : /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_ADDRESS_SPACE_OPERATIONS callbacks invocations scenario."} */
596 : /* Skip a non-replicative signal receiving */
597 : /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "RECEIVE_END"} */
598 :
599 : /* Exit function at a terminal state */
600 1 : return;
601 : }
602 : /* End of the subprocess 'call' */
603 : return;
604 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_address_space_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_3"} */
605 : }
606 :
607 : /* AUX_FUNC ldv_random_containerless_scenario_4 */
608 : void ldv_random_containerless_scenario_4(void *arg0) {
609 : /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_export_operations)'", "function": "ldv_random_containerless_scenario_4"} */
610 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
611 1 : int (*ldv_4_callback_encode_fh)(struct dentry *, unsigned int *, int *, int);
612 : struct dentry *(*ldv_4_callback_fh_to_dentry)(struct super_block *, struct fid *, int, int);
613 1 : struct dentry *(*ldv_4_callback_get_parent)(struct dentry *);
614 1 : struct dentry *ldv_4_container_struct_dentry_ptr;
615 1 : struct fid *ldv_4_container_struct_fid_ptr;
616 1 : struct super_block *ldv_4_container_struct_super_block_ptr;
617 1 : int ldv_4_ldv_param_10_2_default;
618 1 : int ldv_4_ldv_param_10_3_default;
619 1 : unsigned int *ldv_4_ldv_param_4_1_default;
620 1 : int *ldv_4_ldv_param_4_2_default;
621 1 : int ldv_4_ldv_param_4_3_default;
622 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
623 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_EXPORT_OPERATIONS callbacks invocations scenario."} */
624 3 : ldv_free(arg0);
625 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
626 1 :
627 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
628 4 : ldv_4_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
629 3 : ldv_4_container_struct_fid_ptr = ldv_xmalloc_unknown_size(0);
630 3 : ldv_4_container_struct_super_block_ptr = ldv_xmalloc_unknown_size(0);
631 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
632 :
633 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
634 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
635 :
636 : /* Jump to a subprocess 'call' initial state */
637 1 : goto ldv_call_4;
638 : /* End of the process */
639 : return;
640 1 :
641 : /* Sbprocess call */
642 : ldv_call_4:
643 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
644 :
645 4 : if (ldv_undef_int()) {
646 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
647 3 : ldv_4_ldv_param_4_1_default = ldv_xmalloc_unknown_size(0);
648 3 : ldv_4_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
649 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
650 :
651 2 : switch (ldv_undef_int()) {
652 3 : case 1: {
653 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_parent from export_operations."} */
654 : /* LDV {"type": "CALLBACK", "call": "((& fat_get_parent))(ldv_4_container_struct_dentry_ptr);", "comment": "callback"} */
655 2 : ldv_random_containerless_scenario_callback_4_13(ldv_4_callback_get_parent, ldv_4_container_struct_dentry_ptr);
656 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
657 :
658 1 : break;
659 1 : }
660 3 : case 2: {
661 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
662 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
663 :
664 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback fh_to_dentry from export_operations."} */
665 : /* LDV {"type": "CALLBACK", "call": "((& fat_fh_to_dentry))(ldv_4_container_struct_super_block_ptr, ldv_4_container_struct_fid_ptr, ldv_4_ldv_param_10_2_default, ldv_4_ldv_param_10_3_default);", "comment": "callback"} */
666 2 : ldv_random_containerless_scenario_callback_4_10(ldv_4_callback_fh_to_dentry, ldv_4_container_struct_super_block_ptr, ldv_4_container_struct_fid_ptr, ldv_4_ldv_param_10_2_default, ldv_4_ldv_param_10_3_default);
667 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
668 :
669 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
670 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
671 :
672 1 : break;
673 1 : }
674 3 : case 3: {
675 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback encode_fh from export_operations."} */
676 : /* LDV {"type": "CALLBACK", "call": "((& fat_encode_fh))(ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_4_1_default, ldv_4_ldv_param_4_2_default, ldv_4_ldv_param_4_3_default);", "comment": "callback"} */
677 2 : ldv_random_containerless_scenario_callback_4_4(ldv_4_callback_encode_fh, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_4_1_default, ldv_4_ldv_param_4_2_default, ldv_4_ldv_param_4_3_default);
678 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
679 :
680 1 : break;
681 1 : }
682 2 : default: ldv_stop();
683 1 : }
684 0 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
685 6 : ldv_free(ldv_4_ldv_param_4_1_default);
686 2 : ldv_free(ldv_4_ldv_param_4_2_default);
687 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
688 :
689 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
690 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
691 :
692 : /* Jump to a subprocess 'call' initial state */
693 1 : goto ldv_call_4;
694 : }
695 : else {
696 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
697 2 : ldv_free(ldv_4_container_struct_dentry_ptr);
698 2 : ldv_free(ldv_4_container_struct_fid_ptr);
699 2 : ldv_free(ldv_4_container_struct_super_block_ptr);
700 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
701 :
702 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_EXPORT_OPERATIONS callbacks invocations scenario."} */
703 : /* Skip a non-replicative signal receiving */
704 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
705 :
706 : /* Exit function at a terminal state */
707 1 : return;
708 : }
709 : /* End of the subprocess 'call' */
710 : return;
711 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_export_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_4"} */
712 : }
713 :
714 : /* AUX_FUNC ldv_random_containerless_scenario_5 */
715 : void ldv_random_containerless_scenario_5(void *arg0) {
716 : /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_fatent_operations)'", "function": "ldv_random_containerless_scenario_5"} */
717 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
718 1 : void (*ldv_5_callback_ent_blocknr)(struct super_block *, int, int *, sector_t *);
719 : int (*ldv_5_callback_ent_bread)(struct super_block *, struct fat_entry *, int, sector_t );
720 1 : int (*ldv_5_callback_ent_get)(struct fat_entry *);
721 1 : int (*ldv_5_callback_ent_next)(struct fat_entry *);
722 1 : void (*ldv_5_callback_ent_put)(struct fat_entry *, int);
723 1 : void (*ldv_5_callback_ent_set_ptr)(struct fat_entry *, int);
724 1 : struct fat_entry *ldv_5_container_struct_fat_entry_ptr;
725 1 : struct super_block *ldv_5_container_struct_super_block_ptr;
726 1 : int ldv_5_ldv_param_10_2_default;
727 1 : long unsigned int ldv_5_ldv_param_10_3_default;
728 1 : int ldv_5_ldv_param_15_1_default;
729 1 : int ldv_5_ldv_param_18_1_default;
730 1 : int ldv_5_ldv_param_4_1_default;
731 1 : int *ldv_5_ldv_param_4_2_default;
732 1 : long unsigned int *ldv_5_ldv_param_4_3_default;
733 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
734 1 : /* LDV {"action": "DEFAULT_REGISTER_4", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_FATENT_OPERATIONS callbacks invocations scenario."} */
735 3 : ldv_free(arg0);
736 1 : /* LDV {"action": "DEFAULT_REGISTER_4", "type": "RECEIVE_END"} */
737 1 :
738 1 : /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
739 3 : ldv_5_container_struct_fat_entry_ptr = ldv_xmalloc_unknown_size(0);
740 3 : ldv_5_container_struct_super_block_ptr = ldv_xmalloc_unknown_size(0);
741 : /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_END"} */
742 :
743 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
744 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
745 :
746 : /* Jump to a subprocess 'call' initial state */
747 1 : goto ldv_call_5;
748 : /* End of the process */
749 : return;
750 1 :
751 : /* Sbprocess call */
752 : ldv_call_5:
753 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
754 :
755 4 : if (ldv_undef_int()) {
756 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
757 3 : ldv_5_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
758 3 : ldv_5_ldv_param_4_3_default = ldv_xmalloc_unknown_size(0);
759 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
760 :
761 2 : switch (ldv_undef_int()) {
762 3 : case 1: {
763 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
764 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
765 :
766 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_set_ptr from fatent_operations."} */
767 : /* LDV {"type": "CALLBACK", "call": "((& fat16_ent_set_ptr))(ldv_5_container_struct_fat_entry_ptr, ldv_5_ldv_param_18_1_default);", "comment": "callback"} */
768 2 : ldv_random_containerless_scenario_callback_5_18(ldv_5_callback_ent_set_ptr, ldv_5_container_struct_fat_entry_ptr, ldv_5_ldv_param_18_1_default);
769 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
770 :
771 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
772 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
773 :
774 1 : break;
775 1 : }
776 3 : case 2: {
777 : /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
778 : /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_END"} */
779 :
780 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_put from fatent_operations."} */
781 : /* LDV {"type": "CALLBACK", "call": "((& fat16_ent_put))(ldv_5_container_struct_fat_entry_ptr, ldv_5_ldv_param_15_1_default);", "comment": "callback"} */
782 2 : ldv_random_containerless_scenario_callback_5_15(ldv_5_callback_ent_put, ldv_5_container_struct_fat_entry_ptr, ldv_5_ldv_param_15_1_default);
783 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
784 :
785 : /* LDV {"action": "POST_CALL_15", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
786 : /* LDV {"action": "POST_CALL_15", "type": "CONDITION_END"} */
787 :
788 1 : break;
789 1 : }
790 3 : case 3: {
791 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_next from fatent_operations."} */
792 : /* LDV {"type": "CALLBACK", "call": "((& fat16_ent_next))(ldv_5_container_struct_fat_entry_ptr);", "comment": "callback"} */
793 2 : ldv_random_containerless_scenario_callback_5_14(ldv_5_callback_ent_next, ldv_5_container_struct_fat_entry_ptr);
794 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
795 :
796 1 : break;
797 1 : }
798 3 : case 4: {
799 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_get from fatent_operations."} */
800 : /* LDV {"type": "CALLBACK", "call": "((& fat16_ent_get))(ldv_5_container_struct_fat_entry_ptr);", "comment": "callback"} */
801 2 : ldv_random_containerless_scenario_callback_5_13(ldv_5_callback_ent_get, ldv_5_container_struct_fat_entry_ptr);
802 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
803 :
804 1 : break;
805 1 : }
806 3 : case 5: {
807 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
808 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
809 :
810 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_bread from fatent_operations."} */
811 : /* LDV {"type": "CALLBACK", "call": "((& fat12_ent_bread))(ldv_5_container_struct_super_block_ptr, ldv_5_container_struct_fat_entry_ptr, ldv_5_ldv_param_10_2_default, ldv_5_ldv_param_10_3_default);", "comment": "callback"} */
812 2 : ldv_random_containerless_scenario_callback_5_10(ldv_5_callback_ent_bread, ldv_5_container_struct_super_block_ptr, ldv_5_container_struct_fat_entry_ptr, ldv_5_ldv_param_10_2_default, ldv_5_ldv_param_10_3_default);
813 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
814 :
815 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
816 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
817 :
818 1 : break;
819 1 : }
820 3 : case 6: {
821 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_blocknr from fatent_operations."} */
822 : /* LDV {"type": "CALLBACK", "call": "((& fat12_ent_blocknr))(ldv_5_container_struct_super_block_ptr, ldv_5_ldv_param_4_1_default, ldv_5_ldv_param_4_2_default, ldv_5_ldv_param_4_3_default);", "comment": "callback"} */
823 2 : ldv_random_containerless_scenario_callback_5_4(ldv_5_callback_ent_blocknr, ldv_5_container_struct_super_block_ptr, ldv_5_ldv_param_4_1_default, ldv_5_ldv_param_4_2_default, ldv_5_ldv_param_4_3_default);
824 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
825 :
826 1 : break;
827 1 : }
828 2 : default: ldv_stop();
829 1 : }
830 0 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
831 12 : ldv_free(ldv_5_ldv_param_4_2_default);
832 2 : ldv_free(ldv_5_ldv_param_4_3_default);
833 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
834 :
835 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
836 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
837 :
838 : /* Jump to a subprocess 'call' initial state */
839 1 : goto ldv_call_5;
840 : }
841 : else {
842 : /* LDV {"action": "DEFAULT_FREE_4", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
843 2 : ldv_free(ldv_5_container_struct_fat_entry_ptr);
844 2 : ldv_free(ldv_5_container_struct_super_block_ptr);
845 : /* LDV {"action": "DEFAULT_FREE_4", "type": "CONDITION_END"} */
846 :
847 : /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_FATENT_OPERATIONS callbacks invocations scenario."} */
848 : /* Skip a non-replicative signal receiving */
849 : /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "RECEIVE_END"} */
850 :
851 : /* Exit function at a terminal state */
852 1 : return;
853 : }
854 : /* End of the subprocess 'call' */
855 : return;
856 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_fatent_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_5"} */
857 : }
858 :
859 : /* AUX_FUNC ldv_random_containerless_scenario_6 */
860 : void ldv_random_containerless_scenario_6(void *arg0) {
861 : /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_fatent_operations)'", "function": "ldv_random_containerless_scenario_6"} */
862 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
863 1 : void (*ldv_6_callback_ent_blocknr)(struct super_block *, int, int *, sector_t *);
864 : int (*ldv_6_callback_ent_bread)(struct super_block *, struct fat_entry *, int, sector_t );
865 1 : int (*ldv_6_callback_ent_get)(struct fat_entry *);
866 1 : int (*ldv_6_callback_ent_next)(struct fat_entry *);
867 1 : void (*ldv_6_callback_ent_put)(struct fat_entry *, int);
868 1 : void (*ldv_6_callback_ent_set_ptr)(struct fat_entry *, int);
869 1 : struct fat_entry *ldv_6_container_struct_fat_entry_ptr;
870 1 : struct super_block *ldv_6_container_struct_super_block_ptr;
871 1 : int ldv_6_ldv_param_10_2_default;
872 1 : long unsigned int ldv_6_ldv_param_10_3_default;
873 1 : int ldv_6_ldv_param_15_1_default;
874 1 : int ldv_6_ldv_param_18_1_default;
875 1 : int ldv_6_ldv_param_4_1_default;
876 1 : int *ldv_6_ldv_param_4_2_default;
877 1 : long unsigned int *ldv_6_ldv_param_4_3_default;
878 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
879 1 : /* LDV {"action": "DEFAULT_REGISTER_4", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_FATENT_OPERATIONS callbacks invocations scenario."} */
880 3 : ldv_free(arg0);
881 1 : /* LDV {"action": "DEFAULT_REGISTER_4", "type": "RECEIVE_END"} */
882 1 :
883 1 : /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
884 3 : ldv_6_container_struct_fat_entry_ptr = ldv_xmalloc_unknown_size(0);
885 3 : ldv_6_container_struct_super_block_ptr = ldv_xmalloc_unknown_size(0);
886 : /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_END"} */
887 :
888 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
889 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
890 :
891 : /* Jump to a subprocess 'call' initial state */
892 1 : goto ldv_call_6;
893 : /* End of the process */
894 : return;
895 1 :
896 : /* Sbprocess call */
897 : ldv_call_6:
898 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
899 :
900 4 : if (ldv_undef_int()) {
901 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
902 3 : ldv_6_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
903 3 : ldv_6_ldv_param_4_3_default = ldv_xmalloc_unknown_size(0);
904 : /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
905 :
906 2 : switch (ldv_undef_int()) {
907 3 : case 1: {
908 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
909 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
910 :
911 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_set_ptr from fatent_operations."} */
912 : /* LDV {"type": "CALLBACK", "call": "((& fat32_ent_set_ptr))(ldv_6_container_struct_fat_entry_ptr, ldv_6_ldv_param_18_1_default);", "comment": "callback"} */
913 2 : ldv_random_containerless_scenario_callback_6_18(ldv_6_callback_ent_set_ptr, ldv_6_container_struct_fat_entry_ptr, ldv_6_ldv_param_18_1_default);
914 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
915 :
916 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
917 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
918 :
919 1 : break;
920 1 : }
921 3 : case 2: {
922 : /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
923 : /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_END"} */
924 :
925 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_put from fatent_operations."} */
926 : /* LDV {"type": "CALLBACK", "call": "((& fat32_ent_put))(ldv_6_container_struct_fat_entry_ptr, ldv_6_ldv_param_15_1_default);", "comment": "callback"} */
927 2 : ldv_random_containerless_scenario_callback_6_15(ldv_6_callback_ent_put, ldv_6_container_struct_fat_entry_ptr, ldv_6_ldv_param_15_1_default);
928 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
929 :
930 : /* LDV {"action": "POST_CALL_15", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
931 : /* LDV {"action": "POST_CALL_15", "type": "CONDITION_END"} */
932 :
933 1 : break;
934 1 : }
935 3 : case 3: {
936 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_next from fatent_operations."} */
937 : /* LDV {"type": "CALLBACK", "call": "((& fat32_ent_next))(ldv_6_container_struct_fat_entry_ptr);", "comment": "callback"} */
938 2 : ldv_random_containerless_scenario_callback_6_14(ldv_6_callback_ent_next, ldv_6_container_struct_fat_entry_ptr);
939 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
940 :
941 1 : break;
942 1 : }
943 3 : case 4: {
944 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_get from fatent_operations."} */
945 : /* LDV {"type": "CALLBACK", "call": "((& fat32_ent_get))(ldv_6_container_struct_fat_entry_ptr);", "comment": "callback"} */
946 2 : ldv_random_containerless_scenario_callback_6_13(ldv_6_callback_ent_get, ldv_6_container_struct_fat_entry_ptr);
947 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
948 :
949 1 : break;
950 1 : }
951 3 : case 5: {
952 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
953 : /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
954 :
955 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_bread from fatent_operations."} */
956 : /* LDV {"type": "CALLBACK", "call": "((& fat_ent_bread))(ldv_6_container_struct_super_block_ptr, ldv_6_container_struct_fat_entry_ptr, ldv_6_ldv_param_10_2_default, ldv_6_ldv_param_10_3_default);", "comment": "callback"} */
957 2 : ldv_random_containerless_scenario_callback_6_10(ldv_6_callback_ent_bread, ldv_6_container_struct_super_block_ptr, ldv_6_container_struct_fat_entry_ptr, ldv_6_ldv_param_10_2_default, ldv_6_ldv_param_10_3_default);
958 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
959 :
960 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
961 : /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
962 :
963 1 : break;
964 1 : }
965 3 : case 6: {
966 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ent_blocknr from fatent_operations."} */
967 : /* LDV {"type": "CALLBACK", "call": "((& fat_ent_blocknr))(ldv_6_container_struct_super_block_ptr, ldv_6_ldv_param_4_1_default, ldv_6_ldv_param_4_2_default, ldv_6_ldv_param_4_3_default);", "comment": "callback"} */
968 2 : ldv_random_containerless_scenario_callback_6_4(ldv_6_callback_ent_blocknr, ldv_6_container_struct_super_block_ptr, ldv_6_ldv_param_4_1_default, ldv_6_ldv_param_4_2_default, ldv_6_ldv_param_4_3_default);
969 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
970 :
971 1 : break;
972 1 : }
973 2 : default: ldv_stop();
974 1 : }
975 0 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
976 12 : ldv_free(ldv_6_ldv_param_4_2_default);
977 2 : ldv_free(ldv_6_ldv_param_4_3_default);
978 : /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
979 :
980 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
981 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
982 :
983 : /* Jump to a subprocess 'call' initial state */
984 1 : goto ldv_call_6;
985 : }
986 : else {
987 : /* LDV {"action": "DEFAULT_FREE_4", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
988 2 : ldv_free(ldv_6_container_struct_fat_entry_ptr);
989 2 : ldv_free(ldv_6_container_struct_super_block_ptr);
990 : /* LDV {"action": "DEFAULT_FREE_4", "type": "CONDITION_END"} */
991 :
992 : /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_FATENT_OPERATIONS callbacks invocations scenario."} */
993 : /* Skip a non-replicative signal receiving */
994 : /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "RECEIVE_END"} */
995 :
996 : /* Exit function at a terminal state */
997 1 : return;
998 : }
999 : /* End of the subprocess 'call' */
1000 : return;
1001 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_fatent_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_6"} */
1002 : }
1003 :
1004 : /* AUX_FUNC ldv_random_containerless_scenario_7 */
1005 : void ldv_random_containerless_scenario_7(void *arg0) {
1006 : /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_super_operations)'", "function": "ldv_random_containerless_scenario_7"} */
1007 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1008 1 : struct inode *(*ldv_7_callback_alloc_inode)(struct super_block *);
1009 1 : void (*ldv_7_callback_clear_inode)(struct inode *);
1010 1 : void (*ldv_7_callback_delete_inode)(struct inode *);
1011 1 : void (*ldv_7_callback_destroy_inode)(struct inode *);
1012 1 : int (*ldv_7_callback_getattr)(struct vfsmount *, struct dentry *, struct kstat *);
1013 1 : void (*ldv_7_callback_put_super)(struct super_block *);
1014 1 : int (*ldv_7_callback_remount_fs)(struct super_block *, int *, char *);
1015 1 : int (*ldv_7_callback_setattr)(struct dentry *, struct iattr *);
1016 1 : int (*ldv_7_callback_show_options)(struct seq_file *, struct vfsmount *);
1017 1 : int (*ldv_7_callback_statfs)(struct dentry *, struct kstatfs *);
1018 1 : int (*ldv_7_callback_sync_fs)(struct super_block *, int);
1019 1 : void (*ldv_7_callback_truncate)(struct inode *);
1020 1 : int (*ldv_7_callback_write_inode)(struct inode *, int);
1021 1 : void (*ldv_7_callback_write_super)(struct super_block *);
1022 1 : struct dentry *ldv_7_container_struct_dentry_ptr;
1023 1 : struct iattr *ldv_7_container_struct_iattr_ptr;
1024 1 : struct inode *ldv_7_container_struct_inode_ptr;
1025 1 : struct kstat *ldv_7_container_struct_kstat_ptr;
1026 1 : struct kstatfs *ldv_7_container_struct_kstatfs_ptr;
1027 1 : struct seq_file *ldv_7_container_struct_seq_file_ptr;
1028 1 : struct super_block *ldv_7_container_struct_super_block_ptr;
1029 1 : struct vfsmount *ldv_7_container_struct_vfsmount_ptr;
1030 1 : int *ldv_7_ldv_param_13_1_default;
1031 1 : char *ldv_7_ldv_param_13_2_default;
1032 1 : int ldv_7_ldv_param_19_1_default;
1033 1 : int ldv_7_ldv_param_23_1_default;
1034 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1035 1 : /* LDV {"action": "DEFAULT_REGISTER_5", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_SUPER_OPERATIONS callbacks invocations scenario."} */
1036 3 : ldv_free(arg0);
1037 1 : /* LDV {"action": "DEFAULT_REGISTER_5", "type": "RECEIVE_END"} */
1038 1 :
1039 1 : /* LDV {"action": "DEFAULT_ALLOC_5", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1040 4 : ldv_7_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
1041 4 : ldv_7_container_struct_iattr_ptr = ldv_xmalloc_unknown_size(0);
1042 4 : ldv_7_container_struct_inode_ptr = ldv_xmalloc_unknown_size(0);
1043 4 : ldv_7_container_struct_kstat_ptr = ldv_xmalloc_unknown_size(0);
1044 3 : ldv_7_container_struct_kstatfs_ptr = ldv_xmalloc_unknown_size(0);
1045 3 : ldv_7_container_struct_seq_file_ptr = ldv_xmalloc_unknown_size(0);
1046 3 : ldv_7_container_struct_super_block_ptr = ldv_xmalloc_unknown_size(0);
1047 3 : ldv_7_container_struct_vfsmount_ptr = ldv_xmalloc_unknown_size(0);
1048 : /* LDV {"action": "DEFAULT_ALLOC_5", "type": "CONDITION_END"} */
1049 :
1050 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1051 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1052 :
1053 : /* Jump to a subprocess 'call' initial state */
1054 1 : goto ldv_call_7;
1055 : /* End of the process */
1056 : return;
1057 1 :
1058 : /* Sbprocess call */
1059 : ldv_call_7:
1060 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1061 :
1062 2 : switch (ldv_undef_int()) {
1063 3 : case 1: {
1064 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback write_super from super_operations."} */
1065 : /* LDV {"type": "CALLBACK", "call": "((& fat_write_super))(ldv_7_container_struct_super_block_ptr);", "comment": "callback"} */
1066 2 : ldv_random_containerless_scenario_callback_7_26(ldv_7_callback_write_super, ldv_7_container_struct_super_block_ptr);
1067 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1068 :
1069 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1070 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1071 :
1072 : /* Jump to a subprocess 'call' initial state */
1073 1 : goto ldv_call_7;
1074 1 : break;
1075 : }
1076 3 : case 2: {
1077 : /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1078 : /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_END"} */
1079 :
1080 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback write_inode from super_operations."} */
1081 : /* LDV {"type": "CALLBACK", "call": "((& fat_write_inode))(ldv_7_container_struct_inode_ptr, ldv_7_ldv_param_23_1_default);", "comment": "callback"} */
1082 2 : ldv_random_containerless_scenario_callback_7_23(ldv_7_callback_write_inode, ldv_7_container_struct_inode_ptr, ldv_7_ldv_param_23_1_default);
1083 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1084 :
1085 : /* LDV {"action": "POST_CALL_23", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1086 : /* LDV {"action": "POST_CALL_23", "type": "CONDITION_END"} */
1087 :
1088 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1089 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1090 :
1091 : /* Jump to a subprocess 'call' initial state */
1092 1 : goto ldv_call_7;
1093 : /* Jump to a subprocess 'call' initial state */
1094 : goto ldv_call_7;
1095 1 : break;
1096 : }
1097 3 : case 3: {
1098 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback truncate from inode_operations."} */
1099 : /* LDV {"type": "CALLBACK", "call": "((& fat_truncate))(ldv_7_container_struct_inode_ptr);", "comment": "callback"} */
1100 2 : ldv_random_containerless_scenario_callback_7_22(ldv_7_callback_truncate, ldv_7_container_struct_inode_ptr);
1101 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1102 :
1103 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1104 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1105 :
1106 : /* Jump to a subprocess 'call' initial state */
1107 1 : goto ldv_call_7;
1108 : /* Jump to a subprocess 'call' initial state */
1109 : goto ldv_call_7;
1110 : /* Jump to a subprocess 'call' initial state */
1111 : goto ldv_call_7;
1112 1 : break;
1113 : }
1114 3 : case 4: {
1115 : /* LDV {"action": "PRE_CALL_19", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1116 : /* LDV {"action": "PRE_CALL_19", "type": "CONDITION_END"} */
1117 :
1118 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback sync_fs from super_operations."} */
1119 : /* LDV {"type": "CALLBACK", "call": "((& fat_sync_fs))(ldv_7_container_struct_super_block_ptr, ldv_7_ldv_param_19_1_default);", "comment": "callback"} */
1120 2 : ldv_random_containerless_scenario_callback_7_19(ldv_7_callback_sync_fs, ldv_7_container_struct_super_block_ptr, ldv_7_ldv_param_19_1_default);
1121 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1122 :
1123 : /* LDV {"action": "POST_CALL_19", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1124 : /* LDV {"action": "POST_CALL_19", "type": "CONDITION_END"} */
1125 :
1126 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1127 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1128 :
1129 : /* Jump to a subprocess 'call' initial state */
1130 1 : goto ldv_call_7;
1131 : /* Jump to a subprocess 'call' initial state */
1132 : goto ldv_call_7;
1133 : /* Jump to a subprocess 'call' initial state */
1134 : goto ldv_call_7;
1135 : /* Jump to a subprocess 'call' initial state */
1136 : goto ldv_call_7;
1137 1 : break;
1138 : }
1139 3 : case 5: {
1140 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback statfs from super_operations."} */
1141 : /* LDV {"type": "CALLBACK", "call": "((& fat_statfs))(ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_kstatfs_ptr);", "comment": "callback"} */
1142 2 : ldv_random_containerless_scenario_callback_7_18(ldv_7_callback_statfs, ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_kstatfs_ptr);
1143 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1144 :
1145 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1146 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1147 :
1148 : /* Jump to a subprocess 'call' initial state */
1149 1 : goto ldv_call_7;
1150 : /* Jump to a subprocess 'call' initial state */
1151 : goto ldv_call_7;
1152 : /* Jump to a subprocess 'call' initial state */
1153 : goto ldv_call_7;
1154 : /* Jump to a subprocess 'call' initial state */
1155 : goto ldv_call_7;
1156 : /* Jump to a subprocess 'call' initial state */
1157 : goto ldv_call_7;
1158 1 : break;
1159 : }
1160 3 : case 6: {
1161 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback show_options from super_operations."} */
1162 : /* LDV {"type": "CALLBACK", "call": "((& fat_show_options))(ldv_7_container_struct_seq_file_ptr, ldv_7_container_struct_vfsmount_ptr);", "comment": "callback"} */
1163 2 : ldv_random_containerless_scenario_callback_7_17(ldv_7_callback_show_options, ldv_7_container_struct_seq_file_ptr, ldv_7_container_struct_vfsmount_ptr);
1164 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1165 :
1166 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1167 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1168 :
1169 : /* Jump to a subprocess 'call' initial state */
1170 1 : goto ldv_call_7;
1171 : /* Jump to a subprocess 'call' initial state */
1172 : goto ldv_call_7;
1173 : /* Jump to a subprocess 'call' initial state */
1174 : goto ldv_call_7;
1175 : /* Jump to a subprocess 'call' initial state */
1176 : goto ldv_call_7;
1177 : /* Jump to a subprocess 'call' initial state */
1178 : goto ldv_call_7;
1179 : /* Jump to a subprocess 'call' initial state */
1180 : goto ldv_call_7;
1181 1 : break;
1182 : }
1183 3 : case 7: {
1184 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback setattr from inode_operations."} */
1185 : /* LDV {"type": "CALLBACK", "call": "((& fat_setattr))(ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_iattr_ptr);", "comment": "callback"} */
1186 2 : ldv_random_containerless_scenario_callback_7_16(ldv_7_callback_setattr, ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_iattr_ptr);
1187 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1188 :
1189 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1190 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1191 :
1192 : /* Jump to a subprocess 'call' initial state */
1193 1 : goto ldv_call_7;
1194 : /* Jump to a subprocess 'call' initial state */
1195 : goto ldv_call_7;
1196 : /* Jump to a subprocess 'call' initial state */
1197 : goto ldv_call_7;
1198 : /* Jump to a subprocess 'call' initial state */
1199 : goto ldv_call_7;
1200 : /* Jump to a subprocess 'call' initial state */
1201 : goto ldv_call_7;
1202 : /* Jump to a subprocess 'call' initial state */
1203 : goto ldv_call_7;
1204 : /* Jump to a subprocess 'call' initial state */
1205 : goto ldv_call_7;
1206 1 : break;
1207 : }
1208 3 : case 8: {
1209 : /* LDV {"action": "PRE_CALL_13", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1210 3 : ldv_7_ldv_param_13_1_default = ldv_xmalloc_unknown_size(0);
1211 3 : ldv_7_ldv_param_13_2_default = ldv_xmalloc_unknown_size(0);
1212 : /* LDV {"action": "PRE_CALL_13", "type": "CONDITION_END"} */
1213 :
1214 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback remount_fs from super_operations."} */
1215 : /* LDV {"type": "CALLBACK", "call": "((& fat_remount))(ldv_7_container_struct_super_block_ptr, ldv_7_ldv_param_13_1_default, ldv_7_ldv_param_13_2_default);", "comment": "callback"} */
1216 2 : ldv_random_containerless_scenario_callback_7_13(ldv_7_callback_remount_fs, ldv_7_container_struct_super_block_ptr, ldv_7_ldv_param_13_1_default, ldv_7_ldv_param_13_2_default);
1217 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1218 :
1219 : /* LDV {"action": "POST_CALL_13", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1220 2 : ldv_free(ldv_7_ldv_param_13_1_default);
1221 2 : ldv_free(ldv_7_ldv_param_13_2_default);
1222 : /* LDV {"action": "POST_CALL_13", "type": "CONDITION_END"} */
1223 :
1224 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1225 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1226 :
1227 : /* Jump to a subprocess 'call' initial state */
1228 1 : goto ldv_call_7;
1229 : /* Jump to a subprocess 'call' initial state */
1230 : goto ldv_call_7;
1231 : /* Jump to a subprocess 'call' initial state */
1232 : goto ldv_call_7;
1233 : /* Jump to a subprocess 'call' initial state */
1234 : goto ldv_call_7;
1235 : /* Jump to a subprocess 'call' initial state */
1236 : goto ldv_call_7;
1237 : /* Jump to a subprocess 'call' initial state */
1238 : goto ldv_call_7;
1239 : /* Jump to a subprocess 'call' initial state */
1240 : goto ldv_call_7;
1241 : /* Jump to a subprocess 'call' initial state */
1242 : goto ldv_call_7;
1243 1 : break;
1244 : }
1245 3 : case 9: {
1246 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback put_super from super_operations."} */
1247 : /* LDV {"type": "CALLBACK", "call": "((& fat_put_super))(ldv_7_container_struct_super_block_ptr);", "comment": "callback"} */
1248 2 : ldv_random_containerless_scenario_callback_7_12(ldv_7_callback_put_super, ldv_7_container_struct_super_block_ptr);
1249 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1250 :
1251 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1252 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1253 :
1254 : /* Jump to a subprocess 'call' initial state */
1255 1 : goto ldv_call_7;
1256 : /* Jump to a subprocess 'call' initial state */
1257 : goto ldv_call_7;
1258 : /* Jump to a subprocess 'call' initial state */
1259 : goto ldv_call_7;
1260 : /* Jump to a subprocess 'call' initial state */
1261 : goto ldv_call_7;
1262 : /* Jump to a subprocess 'call' initial state */
1263 : goto ldv_call_7;
1264 : /* Jump to a subprocess 'call' initial state */
1265 : goto ldv_call_7;
1266 : /* Jump to a subprocess 'call' initial state */
1267 : goto ldv_call_7;
1268 : /* Jump to a subprocess 'call' initial state */
1269 : goto ldv_call_7;
1270 : /* Jump to a subprocess 'call' initial state */
1271 : goto ldv_call_7;
1272 1 : break;
1273 : }
1274 3 : case 10: {
1275 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback getattr from inode_operations."} */
1276 : /* LDV {"type": "CALLBACK", "call": "((& fat_getattr))(ldv_7_container_struct_vfsmount_ptr, ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_kstat_ptr);", "comment": "callback"} */
1277 2 : ldv_random_containerless_scenario_callback_7_11(ldv_7_callback_getattr, ldv_7_container_struct_vfsmount_ptr, ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_kstat_ptr);
1278 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1279 :
1280 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1281 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1282 :
1283 : /* Jump to a subprocess 'call' initial state */
1284 1 : goto ldv_call_7;
1285 : /* Jump to a subprocess 'call' initial state */
1286 : goto ldv_call_7;
1287 : /* Jump to a subprocess 'call' initial state */
1288 : goto ldv_call_7;
1289 : /* Jump to a subprocess 'call' initial state */
1290 : goto ldv_call_7;
1291 : /* Jump to a subprocess 'call' initial state */
1292 : goto ldv_call_7;
1293 : /* Jump to a subprocess 'call' initial state */
1294 : goto ldv_call_7;
1295 : /* Jump to a subprocess 'call' initial state */
1296 : goto ldv_call_7;
1297 : /* Jump to a subprocess 'call' initial state */
1298 : goto ldv_call_7;
1299 : /* Jump to a subprocess 'call' initial state */
1300 : goto ldv_call_7;
1301 : /* Jump to a subprocess 'call' initial state */
1302 : goto ldv_call_7;
1303 1 : break;
1304 : }
1305 3 : case 11: {
1306 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback destroy_inode from super_operations."} */
1307 : /* LDV {"type": "CALLBACK", "call": "((& fat_destroy_inode))(ldv_7_container_struct_inode_ptr);", "comment": "callback"} */
1308 2 : ldv_random_containerless_scenario_callback_7_10(ldv_7_callback_destroy_inode, ldv_7_container_struct_inode_ptr);
1309 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1310 :
1311 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1312 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1313 :
1314 : /* Jump to a subprocess 'call' initial state */
1315 1 : goto ldv_call_7;
1316 : /* Jump to a subprocess 'call' initial state */
1317 : goto ldv_call_7;
1318 : /* Jump to a subprocess 'call' initial state */
1319 : goto ldv_call_7;
1320 : /* Jump to a subprocess 'call' initial state */
1321 : goto ldv_call_7;
1322 : /* Jump to a subprocess 'call' initial state */
1323 : goto ldv_call_7;
1324 : /* Jump to a subprocess 'call' initial state */
1325 : goto ldv_call_7;
1326 : /* Jump to a subprocess 'call' initial state */
1327 : goto ldv_call_7;
1328 : /* Jump to a subprocess 'call' initial state */
1329 : goto ldv_call_7;
1330 : /* Jump to a subprocess 'call' initial state */
1331 : goto ldv_call_7;
1332 : /* Jump to a subprocess 'call' initial state */
1333 : goto ldv_call_7;
1334 : /* Jump to a subprocess 'call' initial state */
1335 : goto ldv_call_7;
1336 1 : break;
1337 : }
1338 3 : case 12: {
1339 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback delete_inode from super_operations."} */
1340 : /* LDV {"type": "CALLBACK", "call": "((& fat_delete_inode))(ldv_7_container_struct_inode_ptr);", "comment": "callback"} */
1341 2 : ldv_random_containerless_scenario_callback_7_9(ldv_7_callback_delete_inode, ldv_7_container_struct_inode_ptr);
1342 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1343 :
1344 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1345 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1346 :
1347 : /* Jump to a subprocess 'call' initial state */
1348 1 : goto ldv_call_7;
1349 : /* Jump to a subprocess 'call' initial state */
1350 : goto ldv_call_7;
1351 : /* Jump to a subprocess 'call' initial state */
1352 : goto ldv_call_7;
1353 : /* Jump to a subprocess 'call' initial state */
1354 : goto ldv_call_7;
1355 : /* Jump to a subprocess 'call' initial state */
1356 : goto ldv_call_7;
1357 : /* Jump to a subprocess 'call' initial state */
1358 : goto ldv_call_7;
1359 : /* Jump to a subprocess 'call' initial state */
1360 : goto ldv_call_7;
1361 : /* Jump to a subprocess 'call' initial state */
1362 : goto ldv_call_7;
1363 : /* Jump to a subprocess 'call' initial state */
1364 : goto ldv_call_7;
1365 : /* Jump to a subprocess 'call' initial state */
1366 : goto ldv_call_7;
1367 : /* Jump to a subprocess 'call' initial state */
1368 : goto ldv_call_7;
1369 : /* Jump to a subprocess 'call' initial state */
1370 : goto ldv_call_7;
1371 1 : break;
1372 : }
1373 3 : case 13: {
1374 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback clear_inode from super_operations."} */
1375 : /* LDV {"type": "CALLBACK", "call": "((& fat_clear_inode))(ldv_7_container_struct_inode_ptr);", "comment": "callback"} */
1376 2 : ldv_random_containerless_scenario_callback_7_8(ldv_7_callback_clear_inode, ldv_7_container_struct_inode_ptr);
1377 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1378 :
1379 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1380 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1381 :
1382 : /* Jump to a subprocess 'call' initial state */
1383 1 : goto ldv_call_7;
1384 : /* Jump to a subprocess 'call' initial state */
1385 : goto ldv_call_7;
1386 : /* Jump to a subprocess 'call' initial state */
1387 : goto ldv_call_7;
1388 : /* Jump to a subprocess 'call' initial state */
1389 : goto ldv_call_7;
1390 : /* Jump to a subprocess 'call' initial state */
1391 : goto ldv_call_7;
1392 : /* Jump to a subprocess 'call' initial state */
1393 : goto ldv_call_7;
1394 : /* Jump to a subprocess 'call' initial state */
1395 : goto ldv_call_7;
1396 : /* Jump to a subprocess 'call' initial state */
1397 : goto ldv_call_7;
1398 : /* Jump to a subprocess 'call' initial state */
1399 : goto ldv_call_7;
1400 : /* Jump to a subprocess 'call' initial state */
1401 : goto ldv_call_7;
1402 : /* Jump to a subprocess 'call' initial state */
1403 : goto ldv_call_7;
1404 : /* Jump to a subprocess 'call' initial state */
1405 : goto ldv_call_7;
1406 : /* Jump to a subprocess 'call' initial state */
1407 : goto ldv_call_7;
1408 1 : break;
1409 : }
1410 3 : case 14: {
1411 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback alloc_inode from super_operations."} */
1412 : /* LDV {"type": "CALLBACK", "call": "((& fat_alloc_inode))(ldv_7_container_struct_super_block_ptr);", "comment": "callback"} */
1413 2 : ldv_random_containerless_scenario_callback_7_4(ldv_7_callback_alloc_inode, ldv_7_container_struct_super_block_ptr);
1414 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1415 :
1416 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
1417 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1418 :
1419 : /* Jump to a subprocess 'call' initial state */
1420 1 : goto ldv_call_7;
1421 : /* Jump to a subprocess 'call' initial state */
1422 : goto ldv_call_7;
1423 : /* Jump to a subprocess 'call' initial state */
1424 : goto ldv_call_7;
1425 : /* Jump to a subprocess 'call' initial state */
1426 : goto ldv_call_7;
1427 : /* Jump to a subprocess 'call' initial state */
1428 : goto ldv_call_7;
1429 : /* Jump to a subprocess 'call' initial state */
1430 : goto ldv_call_7;
1431 : /* Jump to a subprocess 'call' initial state */
1432 : goto ldv_call_7;
1433 : /* Jump to a subprocess 'call' initial state */
1434 : goto ldv_call_7;
1435 : /* Jump to a subprocess 'call' initial state */
1436 : goto ldv_call_7;
1437 : /* Jump to a subprocess 'call' initial state */
1438 : goto ldv_call_7;
1439 : /* Jump to a subprocess 'call' initial state */
1440 : goto ldv_call_7;
1441 : /* Jump to a subprocess 'call' initial state */
1442 : goto ldv_call_7;
1443 : /* Jump to a subprocess 'call' initial state */
1444 : goto ldv_call_7;
1445 : /* Jump to a subprocess 'call' initial state */
1446 : goto ldv_call_7;
1447 1 : break;
1448 : }
1449 3 : case 15: {
1450 : /* LDV {"action": "DEFAULT_FREE_5", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1451 2 : ldv_free(ldv_7_container_struct_dentry_ptr);
1452 2 : ldv_free(ldv_7_container_struct_iattr_ptr);
1453 2 : ldv_free(ldv_7_container_struct_inode_ptr);
1454 2 : ldv_free(ldv_7_container_struct_kstat_ptr);
1455 2 : ldv_free(ldv_7_container_struct_kstatfs_ptr);
1456 2 : ldv_free(ldv_7_container_struct_seq_file_ptr);
1457 2 : ldv_free(ldv_7_container_struct_super_block_ptr);
1458 2 : ldv_free(ldv_7_container_struct_vfsmount_ptr);
1459 : /* LDV {"action": "DEFAULT_FREE_5", "type": "CONDITION_END"} */
1460 :
1461 : /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_SUPER_OPERATIONS callbacks invocations scenario."} */
1462 : /* Skip a non-replicative signal receiving */
1463 : /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "RECEIVE_END"} */
1464 :
1465 : /* Exit function at a terminal state */
1466 1 : return;
1467 1 : break;
1468 : }
1469 2 : default: ldv_stop();
1470 1 : }
1471 0 : /* End of the subprocess 'call' */
1472 0 : return;
1473 : /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_super_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_7"} */
1474 : }
1475 :
1476 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_10 */
1477 : void ldv_random_containerless_scenario_callback_3_10(ssize_t (*arg0)(int, struct kiocb *, struct iovec *, loff_t , long unsigned int), int arg1, struct kiocb *arg2, struct iovec *arg3, long long int arg4, long unsigned int arg5) {
1478 3 : ((& fat_direct_IO))(arg1, arg2, arg3, arg4, arg5);
1479 1 : }
1480 :
1481 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_13 */
1482 : void ldv_random_containerless_scenario_callback_3_13(int (*arg0)(struct file *, struct page *), struct file *arg1, struct page *arg2) {
1483 2 : ((& fat_readpage))(arg1, arg2);
1484 1 : }
1485 :
1486 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_14 */
1487 : void ldv_random_containerless_scenario_callback_3_14(int (*arg0)(struct file *, struct address_space *, struct list_head *, unsigned int), struct file *arg1, struct address_space *arg2, struct list_head *arg3, unsigned int arg4) {
1488 2 : ((& fat_readpages))(arg1, arg2, arg3, arg4);
1489 1 : }
1490 :
1491 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_17 */
1492 : void ldv_random_containerless_scenario_callback_3_17(void (*arg0)(struct page *), struct page *arg1) {
1493 1 : ((& block_sync_page))(arg1);
1494 1 : }
1495 :
1496 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_18 */
1497 : void ldv_random_containerless_scenario_callback_3_18(int (*arg0)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page **, void **), struct file *arg1, struct address_space *arg2, long long int arg3, unsigned int arg4, unsigned int arg5, struct page **arg6, void **arg7) {
1498 2 : ((& fat_write_begin))(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1499 1 : }
1500 :
1501 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_21 */
1502 : void ldv_random_containerless_scenario_callback_3_21(int (*arg0)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page *, void *), struct file *arg1, struct address_space *arg2, long long int arg3, unsigned int arg4, unsigned int arg5, struct page *arg6, void *arg7) {
1503 4 : ((& fat_write_end))(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1504 1 : }
1505 :
1506 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_24 */
1507 : void ldv_random_containerless_scenario_callback_3_24(int (*arg0)(struct page *, struct writeback_control *), struct page *arg1, struct writeback_control *arg2) {
1508 2 : ((& fat_writepage))(arg1, arg2);
1509 1 : }
1510 :
1511 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_25 */
1512 : void ldv_random_containerless_scenario_callback_3_25(int (*arg0)(struct address_space *, struct writeback_control *), struct address_space *arg1, struct writeback_control *arg2) {
1513 2 : ((& fat_writepages))(arg1, arg2);
1514 1 : }
1515 :
1516 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_4 */
1517 : void ldv_random_containerless_scenario_callback_3_4(sector_t (*arg0)(struct address_space *, sector_t ), struct address_space *arg1, long unsigned int arg2) {
1518 2 : ((& _fat_bmap))(arg1, arg2);
1519 1 : }
1520 :
1521 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_10 */
1522 : void ldv_random_containerless_scenario_callback_4_10(struct dentry *(*arg0)(struct super_block *, struct fid *, int, int), struct super_block *arg1, struct fid *arg2, int arg3, int arg4) {
1523 3 : ((& fat_fh_to_dentry))(arg1, arg2, arg3, arg4);
1524 1 : }
1525 :
1526 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_13 */
1527 : void ldv_random_containerless_scenario_callback_4_13(struct dentry *(*arg0)(struct dentry *), struct dentry *arg1) {
1528 3 : ((& fat_get_parent))(arg1);
1529 1 : }
1530 :
1531 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_4 */
1532 : void ldv_random_containerless_scenario_callback_4_4(int (*arg0)(struct dentry *, unsigned int *, int *, int), struct dentry *arg1, unsigned int *arg2, int *arg3, int arg4) {
1533 3 : ((& fat_encode_fh))(arg1, arg2, arg3, arg4);
1534 1 : }
1535 :
1536 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_10 */
1537 : void ldv_random_containerless_scenario_callback_7_10(void (*arg0)(struct inode *), struct inode *arg1) {
1538 2 : ((& fat_destroy_inode))(arg1);
1539 1 : }
1540 :
1541 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_12 */
1542 : void ldv_random_containerless_scenario_callback_7_12(void (*arg0)(struct super_block *), struct super_block *arg1) {
1543 3 : ((& fat_put_super))(arg1);
1544 1 : }
1545 :
1546 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_13 */
1547 : void ldv_random_containerless_scenario_callback_7_13(int (*arg0)(struct super_block *, int *, char *), struct super_block *arg1, int *arg2, char *arg3) {
1548 2 : ((& fat_remount))(arg1, arg2, arg3);
1549 1 : }
1550 :
1551 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_17 */
1552 : void ldv_random_containerless_scenario_callback_7_17(int (*arg0)(struct seq_file *, struct vfsmount *), struct seq_file *arg1, struct vfsmount *arg2) {
1553 2 : ((& fat_show_options))(arg1, arg2);
1554 1 : }
1555 :
1556 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_18 */
1557 : void ldv_random_containerless_scenario_callback_7_18(int (*arg0)(struct dentry *, struct kstatfs *), struct dentry *arg1, struct kstatfs *arg2) {
1558 3 : ((& fat_statfs))(arg1, arg2);
1559 1 : }
1560 :
1561 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_19 */
1562 : void ldv_random_containerless_scenario_callback_7_19(int (*arg0)(struct super_block *, int), struct super_block *arg1, int arg2) {
1563 3 : ((& fat_sync_fs))(arg1, arg2);
1564 1 : }
1565 :
1566 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_23 */
1567 : void ldv_random_containerless_scenario_callback_7_23(int (*arg0)(struct inode *, int), struct inode *arg1, int arg2) {
1568 5 : ((& fat_write_inode))(arg1, arg2);
1569 1 : }
1570 :
1571 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_26 */
1572 : void ldv_random_containerless_scenario_callback_7_26(void (*arg0)(struct super_block *), struct super_block *arg1) {
1573 3 : ((& fat_write_super))(arg1);
1574 1 : }
1575 :
1576 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_4 */
1577 : void ldv_random_containerless_scenario_callback_7_4(struct inode *(*arg0)(struct super_block *), struct super_block *arg1) {
1578 2 : ((& fat_alloc_inode))(arg1);
1579 1 : }
1580 :
1581 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_8 */
1582 : void ldv_random_containerless_scenario_callback_7_8(void (*arg0)(struct inode *), struct inode *arg1) {
1583 2 : ((& fat_clear_inode))(arg1);
1584 1 : }
1585 :
1586 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_9 */
1587 : void ldv_random_containerless_scenario_callback_7_9(void (*arg0)(struct inode *), struct inode *arg1) {
1588 2 : ((& fat_delete_inode))(arg1);
1589 1 : }
1590 :
1591 : /* AUX_FUNC main */
1592 : int main() {
1593 1 : ldv_main_9(0);
1594 0 : return 0;
1595 : }
1596 :
1597 :
1598 : /* AUX_FUNC ERR_PTR */
1599 : static inline void *ERR_PTR (long int error)
1600 : {
1601 3 :
1602 9 : return ldv_err_ptr(error);
1603 : }
1604 :
1605 : /* AUX_FUNC PTR_ERR */
1606 : static inline long int PTR_ERR (void const *ptr)
1607 : {
1608 :
1609 : return ldv_ptr_err(ptr);
1610 : }
1611 :
1612 : /* AUX_FUNC IS_ERR */
1613 : static inline long int IS_ERR (void const *ptr)
1614 : {
1615 4 :
1616 12 : return ldv_is_err(ptr);
1617 : }
1618 :
1619 : /* AUX_FUNC IS_ERR_OR_NULL */
1620 : static inline long int IS_ERR_OR_NULL (void const *ptr)
1621 : {
1622 :
1623 : return ldv_is_err_or_null(ptr);
1624 : }
1625 :
1626 : /* AUX_FUNC kzalloc */
1627 : static inline void *kzalloc (size_t size, gfp_t flags)
1628 : {
1629 0 :
1630 0 : return ldv_kzalloc(size, flags);
1631 : }
|