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/device.h>
29 : #include <linux/platform_device.h>
30 : #include <linux/pm.h>
31 : #include <linux/rtc.h>
32 : #include <linux/timer.h>
33 :
34 :
35 : struct ldv_struct_platform_instance_2 {
36 : int signal_pending;
37 : };
38 :
39 : struct ldv_struct_timer_scenario_24 {
40 : struct timer_list *arg0;
41 : int signal_pending;
42 : };
43 :
44 : /* EMG Function declarations */
45 : void ldv_random_containerless_scenario_callback_22_8(void (*)(struct mmc_host *), struct mmc_host *);
46 : void ldv_random_containerless_scenario_callback_22_9(void (*)(struct mmc_host *), struct mmc_host *);
47 : void ldv_random_containerless_scenario_callback_23_10(void (*)(struct mmc_host *), struct mmc_host *);
48 : void ldv_random_containerless_scenario_callback_23_11(int (*)(struct mmc_host *), struct mmc_host *);
49 : void ldv_random_containerless_scenario_callback_23_9(void (*)(struct mmc_host *), struct mmc_host *);
50 : void ldv_rtc_class_scenario_10(void *);
51 : void ldv_rtc_class_scenario_11(void *);
52 : void ldv_rtc_class_scenario_12(void *);
53 : void ldv_rtc_class_scenario_13(void *);
54 : void ldv_rtc_class_scenario_14(void *);
55 : void ldv_rtc_class_scenario_15(void *);
56 : void ldv_rtc_class_scenario_16(void *);
57 : void ldv_rtc_class_scenario_17(void *);
58 : void ldv_rtc_class_scenario_18(void *);
59 : void ldv_rtc_class_scenario_19(void *);
60 : void ldv_rtc_class_scenario_20(void *);
61 : void ldv_rtc_class_scenario_3(void *);
62 : void ldv_rtc_class_scenario_4(void *);
63 : void ldv_rtc_class_scenario_5(void *);
64 : void ldv_rtc_class_scenario_6(void *);
65 : void ldv_rtc_class_scenario_7(void *);
66 : void ldv_rtc_class_scenario_8(void *);
67 : void ldv_rtc_class_scenario_9(void *);
68 : extern void ldv_rtc_class_scenario_callback_10_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
69 : extern void ldv_rtc_class_scenario_callback_10_16(int (*)(struct device *), struct device *);
70 : extern void ldv_rtc_class_scenario_callback_10_17(int (*)(struct device *), struct device *);
71 : void ldv_rtc_class_scenario_callback_10_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
72 : extern void ldv_rtc_class_scenario_callback_10_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
73 : extern void ldv_rtc_class_scenario_callback_10_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
74 : extern void ldv_rtc_class_scenario_callback_10_4(int (*)(struct device *), struct device *);
75 : extern void ldv_rtc_class_scenario_callback_11_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
76 : extern void ldv_rtc_class_scenario_callback_11_16(int (*)(struct device *), struct device *);
77 : extern void ldv_rtc_class_scenario_callback_11_17(int (*)(struct device *), struct device *);
78 : void ldv_rtc_class_scenario_callback_11_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
79 : extern void ldv_rtc_class_scenario_callback_11_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
80 : extern void ldv_rtc_class_scenario_callback_11_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
81 : extern void ldv_rtc_class_scenario_callback_11_4(int (*)(struct device *), struct device *);
82 : extern void ldv_rtc_class_scenario_callback_12_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
83 : extern void ldv_rtc_class_scenario_callback_12_16(int (*)(struct device *), struct device *);
84 : extern void ldv_rtc_class_scenario_callback_12_17(int (*)(struct device *), struct device *);
85 : void ldv_rtc_class_scenario_callback_12_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
86 : extern void ldv_rtc_class_scenario_callback_12_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
87 : extern void ldv_rtc_class_scenario_callback_12_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
88 : extern void ldv_rtc_class_scenario_callback_12_4(int (*)(struct device *), struct device *);
89 : extern void ldv_rtc_class_scenario_callback_13_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
90 : extern void ldv_rtc_class_scenario_callback_13_16(int (*)(struct device *), struct device *);
91 : extern void ldv_rtc_class_scenario_callback_13_17(int (*)(struct device *), struct device *);
92 : extern void ldv_rtc_class_scenario_callback_13_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
93 : extern void ldv_rtc_class_scenario_callback_13_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
94 : extern void ldv_rtc_class_scenario_callback_13_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
95 : extern void ldv_rtc_class_scenario_callback_13_4(int (*)(struct device *), struct device *);
96 : extern void ldv_rtc_class_scenario_callback_14_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
97 : extern void ldv_rtc_class_scenario_callback_14_16(int (*)(struct device *), struct device *);
98 : extern void ldv_rtc_class_scenario_callback_14_17(int (*)(struct device *), struct device *);
99 : extern void ldv_rtc_class_scenario_callback_14_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
100 : extern void ldv_rtc_class_scenario_callback_14_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
101 : extern void ldv_rtc_class_scenario_callback_14_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
102 : extern void ldv_rtc_class_scenario_callback_14_4(int (*)(struct device *), struct device *);
103 : extern void ldv_rtc_class_scenario_callback_15_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
104 : extern void ldv_rtc_class_scenario_callback_15_16(int (*)(struct device *), struct device *);
105 : extern void ldv_rtc_class_scenario_callback_15_17(int (*)(struct device *), struct device *);
106 : extern void ldv_rtc_class_scenario_callback_15_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
107 : extern void ldv_rtc_class_scenario_callback_15_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
108 : extern void ldv_rtc_class_scenario_callback_15_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
109 : extern void ldv_rtc_class_scenario_callback_15_4(int (*)(struct device *), struct device *);
110 : extern void ldv_rtc_class_scenario_callback_16_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
111 : extern void ldv_rtc_class_scenario_callback_16_16(int (*)(struct device *), struct device *);
112 : extern void ldv_rtc_class_scenario_callback_16_17(int (*)(struct device *), struct device *);
113 : extern void ldv_rtc_class_scenario_callback_16_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
114 : extern void ldv_rtc_class_scenario_callback_16_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
115 : extern void ldv_rtc_class_scenario_callback_16_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
116 : extern void ldv_rtc_class_scenario_callback_16_4(int (*)(struct device *), struct device *);
117 : extern void ldv_rtc_class_scenario_callback_17_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
118 : extern void ldv_rtc_class_scenario_callback_17_16(int (*)(struct device *), struct device *);
119 : extern void ldv_rtc_class_scenario_callback_17_17(int (*)(struct device *), struct device *);
120 : void ldv_rtc_class_scenario_callback_17_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
121 : extern void ldv_rtc_class_scenario_callback_17_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
122 : extern void ldv_rtc_class_scenario_callback_17_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
123 : extern void ldv_rtc_class_scenario_callback_17_4(int (*)(struct device *), struct device *);
124 : extern void ldv_rtc_class_scenario_callback_18_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
125 : extern void ldv_rtc_class_scenario_callback_18_16(int (*)(struct device *), struct device *);
126 : extern void ldv_rtc_class_scenario_callback_18_17(int (*)(struct device *), struct device *);
127 : extern void ldv_rtc_class_scenario_callback_18_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
128 : extern void ldv_rtc_class_scenario_callback_18_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
129 : extern void ldv_rtc_class_scenario_callback_18_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
130 : extern void ldv_rtc_class_scenario_callback_18_4(int (*)(struct device *), struct device *);
131 : extern void ldv_rtc_class_scenario_callback_19_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
132 : extern void ldv_rtc_class_scenario_callback_19_16(int (*)(struct device *), struct device *);
133 : extern void ldv_rtc_class_scenario_callback_19_17(int (*)(struct device *), struct device *);
134 : extern void ldv_rtc_class_scenario_callback_19_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
135 : extern void ldv_rtc_class_scenario_callback_19_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
136 : extern void ldv_rtc_class_scenario_callback_19_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
137 : extern void ldv_rtc_class_scenario_callback_19_4(int (*)(struct device *), struct device *);
138 : extern void ldv_rtc_class_scenario_callback_20_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
139 : extern void ldv_rtc_class_scenario_callback_20_16(int (*)(struct device *), struct device *);
140 : extern void ldv_rtc_class_scenario_callback_20_17(int (*)(struct device *), struct device *);
141 : extern void ldv_rtc_class_scenario_callback_20_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
142 : extern void ldv_rtc_class_scenario_callback_20_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
143 : extern void ldv_rtc_class_scenario_callback_20_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
144 : extern void ldv_rtc_class_scenario_callback_20_4(int (*)(struct device *), struct device *);
145 : extern void ldv_rtc_class_scenario_callback_3_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
146 : extern void ldv_rtc_class_scenario_callback_3_16(int (*)(struct device *), struct device *);
147 : extern void ldv_rtc_class_scenario_callback_3_17(int (*)(struct device *), struct device *);
148 : extern void ldv_rtc_class_scenario_callback_3_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
149 : extern void ldv_rtc_class_scenario_callback_3_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
150 : extern void ldv_rtc_class_scenario_callback_3_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
151 : extern void ldv_rtc_class_scenario_callback_3_4(int (*)(struct device *), struct device *);
152 : extern void ldv_rtc_class_scenario_callback_4_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
153 : extern void ldv_rtc_class_scenario_callback_4_16(int (*)(struct device *), struct device *);
154 : extern void ldv_rtc_class_scenario_callback_4_17(int (*)(struct device *), struct device *);
155 : void ldv_rtc_class_scenario_callback_4_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
156 : extern void ldv_rtc_class_scenario_callback_4_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
157 : extern void ldv_rtc_class_scenario_callback_4_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
158 : extern void ldv_rtc_class_scenario_callback_4_4(int (*)(struct device *), struct device *);
159 : extern void ldv_rtc_class_scenario_callback_5_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
160 : extern void ldv_rtc_class_scenario_callback_5_16(int (*)(struct device *), struct device *);
161 : extern void ldv_rtc_class_scenario_callback_5_17(int (*)(struct device *), struct device *);
162 : void ldv_rtc_class_scenario_callback_5_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
163 : extern void ldv_rtc_class_scenario_callback_5_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
164 : extern void ldv_rtc_class_scenario_callback_5_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
165 : extern void ldv_rtc_class_scenario_callback_5_4(int (*)(struct device *), struct device *);
166 : extern void ldv_rtc_class_scenario_callback_6_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
167 : extern void ldv_rtc_class_scenario_callback_6_16(int (*)(struct device *), struct device *);
168 : extern void ldv_rtc_class_scenario_callback_6_17(int (*)(struct device *), struct device *);
169 : void ldv_rtc_class_scenario_callback_6_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
170 : extern void ldv_rtc_class_scenario_callback_6_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
171 : extern void ldv_rtc_class_scenario_callback_6_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
172 : extern void ldv_rtc_class_scenario_callback_6_4(int (*)(struct device *), struct device *);
173 : extern void ldv_rtc_class_scenario_callback_7_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
174 : extern void ldv_rtc_class_scenario_callback_7_16(int (*)(struct device *), struct device *);
175 : extern void ldv_rtc_class_scenario_callback_7_17(int (*)(struct device *), struct device *);
176 : void ldv_rtc_class_scenario_callback_7_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
177 : extern void ldv_rtc_class_scenario_callback_7_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
178 : extern void ldv_rtc_class_scenario_callback_7_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
179 : extern void ldv_rtc_class_scenario_callback_7_4(int (*)(struct device *), struct device *);
180 : extern void ldv_rtc_class_scenario_callback_8_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
181 : extern void ldv_rtc_class_scenario_callback_8_16(int (*)(struct device *), struct device *);
182 : extern void ldv_rtc_class_scenario_callback_8_17(int (*)(struct device *), struct device *);
183 : void ldv_rtc_class_scenario_callback_8_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
184 : extern void ldv_rtc_class_scenario_callback_8_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
185 : extern void ldv_rtc_class_scenario_callback_8_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
186 : extern void ldv_rtc_class_scenario_callback_8_4(int (*)(struct device *), struct device *);
187 : extern void ldv_rtc_class_scenario_callback_9_15(int (*)(struct device *, struct device_driver *), struct device *, struct device_driver *);
188 : extern void ldv_rtc_class_scenario_callback_9_16(int (*)(struct device *), struct device *);
189 : extern void ldv_rtc_class_scenario_callback_9_17(int (*)(struct device *), struct device *);
190 : void ldv_rtc_class_scenario_callback_9_18(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
191 : extern void ldv_rtc_class_scenario_callback_9_21(int (*)(struct device *, pm_message_t ), struct device *, struct pm_message);
192 : extern void ldv_rtc_class_scenario_callback_9_22(int (*)(struct device *, struct kobj_uevent_env *), struct device *, struct kobj_uevent_env *);
193 : extern void ldv_rtc_class_scenario_callback_9_4(int (*)(struct device *), struct device *);
194 : extern int ldv_rtc_class_scenario_probe_10_11(int (*)(struct device *), struct device *);
195 : extern int ldv_rtc_class_scenario_probe_11_11(int (*)(struct device *), struct device *);
196 : extern int ldv_rtc_class_scenario_probe_12_11(int (*)(struct device *), struct device *);
197 : extern int ldv_rtc_class_scenario_probe_13_11(int (*)(struct device *), struct device *);
198 : extern int ldv_rtc_class_scenario_probe_14_11(int (*)(struct device *), struct device *);
199 : extern int ldv_rtc_class_scenario_probe_15_11(int (*)(struct device *), struct device *);
200 : extern int ldv_rtc_class_scenario_probe_16_11(int (*)(struct device *), struct device *);
201 : extern int ldv_rtc_class_scenario_probe_17_11(int (*)(struct device *), struct device *);
202 : extern int ldv_rtc_class_scenario_probe_18_11(int (*)(struct device *), struct device *);
203 : extern int ldv_rtc_class_scenario_probe_19_11(int (*)(struct device *), struct device *);
204 : extern int ldv_rtc_class_scenario_probe_20_11(int (*)(struct device *), struct device *);
205 : extern int ldv_rtc_class_scenario_probe_3_11(int (*)(struct device *), struct device *);
206 : extern int ldv_rtc_class_scenario_probe_4_11(int (*)(struct device *), struct device *);
207 : extern int ldv_rtc_class_scenario_probe_5_11(int (*)(struct device *), struct device *);
208 : extern int ldv_rtc_class_scenario_probe_6_11(int (*)(struct device *), struct device *);
209 : extern int ldv_rtc_class_scenario_probe_7_11(int (*)(struct device *), struct device *);
210 : extern int ldv_rtc_class_scenario_probe_8_11(int (*)(struct device *), struct device *);
211 : extern int ldv_rtc_class_scenario_probe_9_11(int (*)(struct device *), struct device *);
212 : extern void ldv_rtc_class_scenario_release_10_2(void (*)(struct device *), struct device *);
213 : extern void ldv_rtc_class_scenario_release_11_2(void (*)(struct device *), struct device *);
214 : extern void ldv_rtc_class_scenario_release_12_2(void (*)(struct device *), struct device *);
215 : extern void ldv_rtc_class_scenario_release_13_2(void (*)(struct device *), struct device *);
216 : extern void ldv_rtc_class_scenario_release_14_2(void (*)(struct device *), struct device *);
217 : extern void ldv_rtc_class_scenario_release_15_2(void (*)(struct device *), struct device *);
218 : extern void ldv_rtc_class_scenario_release_16_2(void (*)(struct device *), struct device *);
219 : extern void ldv_rtc_class_scenario_release_17_2(void (*)(struct device *), struct device *);
220 : extern void ldv_rtc_class_scenario_release_18_2(void (*)(struct device *), struct device *);
221 : extern void ldv_rtc_class_scenario_release_19_2(void (*)(struct device *), struct device *);
222 : extern void ldv_rtc_class_scenario_release_20_2(void (*)(struct device *), struct device *);
223 : extern void ldv_rtc_class_scenario_release_3_2(void (*)(struct device *), struct device *);
224 : extern void ldv_rtc_class_scenario_release_4_2(void (*)(struct device *), struct device *);
225 : extern void ldv_rtc_class_scenario_release_5_2(void (*)(struct device *), struct device *);
226 : extern void ldv_rtc_class_scenario_release_6_2(void (*)(struct device *), struct device *);
227 : extern void ldv_rtc_class_scenario_release_7_2(void (*)(struct device *), struct device *);
228 : extern void ldv_rtc_class_scenario_release_8_2(void (*)(struct device *), struct device *);
229 : extern void ldv_rtc_class_scenario_release_9_2(void (*)(struct device *), struct device *);
230 :
231 : /* EMG variable declarations */
232 1 : struct ldv_thread ldv_thread_10;
233 1 : struct ldv_thread ldv_thread_11;
234 1 : struct ldv_thread ldv_thread_12;
235 1 : struct ldv_thread ldv_thread_13;
236 1 : struct ldv_thread ldv_thread_14;
237 1 : struct ldv_thread ldv_thread_15;
238 1 : struct ldv_thread ldv_thread_16;
239 1 : struct ldv_thread ldv_thread_17;
240 1 : struct ldv_thread ldv_thread_18;
241 1 : struct ldv_thread ldv_thread_19;
242 1 : struct ldv_thread ldv_thread_20;
243 1 : struct ldv_thread ldv_thread_3;
244 1 : struct ldv_thread ldv_thread_4;
245 1 : struct ldv_thread ldv_thread_5;
246 1 : struct ldv_thread ldv_thread_6;
247 1 : struct ldv_thread ldv_thread_7;
248 1 : struct ldv_thread ldv_thread_8;
249 1 : struct ldv_thread ldv_thread_9;
250 :
251 : /* EMG variable initialization */
252 :
253 : /* EMG function definitions */
254 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_22_8 */
255 : void ldv_random_containerless_scenario_callback_22_8(void (*arg0)(struct mmc_host *), struct mmc_host *arg1) {
256 3 : ((& mmc_sd_detect))(arg1);
257 1 : }
258 :
259 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_22_9 */
260 : void ldv_random_containerless_scenario_callback_22_9(void (*arg0)(struct mmc_host *), struct mmc_host *arg1) {
261 2 : ((& mmc_sd_power_restore))(arg1);
262 1 : }
263 :
264 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_23_10 */
265 : void ldv_random_containerless_scenario_callback_23_10(void (*arg0)(struct mmc_host *), struct mmc_host *arg1) {
266 2 : ((& mmc_sd_remove))(arg1);
267 1 : }
268 :
269 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_23_11 */
270 : void ldv_random_containerless_scenario_callback_23_11(int (*arg0)(struct mmc_host *), struct mmc_host *arg1) {
271 2 : ((& mmc_sd_resume))(arg1);
272 1 : }
273 :
274 : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_23_9 */
275 : void ldv_random_containerless_scenario_callback_23_9(void (*arg0)(struct mmc_host *), struct mmc_host *arg1) {
276 2 : ((& mmc_sd_power_restore))(arg1);
277 1 : }
278 :
279 : /* AUX_FUNC ldv_rtc_class_scenario_10 */
280 : void ldv_rtc_class_scenario_10(void *arg0) {
281 : /* LDV {"thread": 10, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_10"} */
282 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
283 1 : int (*ldv_10_callback_func_1_ptr)(struct device *);
284 1 : int (*ldv_10_callback_match)(struct device *, struct device_driver *);
285 1 : int (*ldv_10_callback_remove)(struct device *);
286 1 : int (*ldv_10_callback_resume)(struct device *);
287 1 : ssize_t (*ldv_10_callback_show)(struct device *, struct device_attribute *, char *);
288 1 : int (*ldv_10_callback_suspend)(struct device *, pm_message_t );
289 1 : int (*ldv_10_callback_uevent)(struct device *, struct kobj_uevent_env *);
290 1 : struct device *ldv_10_device_device;
291 1 : struct device_attribute *ldv_10_device_struct_device_attribute;
292 1 : struct device_driver *ldv_10_device_struct_device_driver_ptr;
293 1 : struct kobj_uevent_env *ldv_10_device_struct_kobj_uevent_env_ptr;
294 1 : struct pm_message ldv_10_device_struct_pm_message;
295 1 : char *ldv_10_ldv_param_18_2_default;
296 1 : int ldv_10_ret_default;
297 1 : struct rtc_class_ops *ldv_10_rtc_class_ops_rtc_class_ops;
298 1 : struct rtc_device *ldv_10_rtc_device_rtc_device;
299 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
300 1 : /* Initialize automaton variables */
301 2 : ldv_10_ret_default = 1;
302 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
303 3 : ldv_free(arg0);
304 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
305 1 :
306 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
307 4 : ldv_10_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
308 3 : ldv_10_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
309 3 : ldv_10_device_device = ldv_xmalloc_unknown_size(0);
310 3 : ldv_10_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
311 3 : ldv_10_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
312 3 : ldv_10_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
313 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
314 :
315 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
316 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
317 :
318 : /* Jump to a subprocess 'main' initial state */
319 1 : goto ldv_main_10;
320 : /* End of the process */
321 : return;
322 1 :
323 : /* Sbprocess main */
324 : ldv_main_10:
325 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
326 :
327 4 : if (ldv_undef_int()) {
328 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
329 : /* Callback pre-call */
330 1 : ldv_pre_probe();
331 3 : if (ldv_10_rtc_class_ops_rtc_class_ops->open) {
332 : /* LDV {"type": "CALLBACK", "call": "ldv_10_ret_default = (ldv_10_rtc_class_ops_rtc_class_ops->open)(ldv_10_device_device);", "comment": "probe"} */
333 2 : ldv_10_ret_default = ldv_rtc_class_scenario_probe_10_11(ldv_10_rtc_class_ops_rtc_class_ops->open, ldv_10_device_device);
334 : }
335 : /* Callback post-call */
336 4 : ldv_10_ret_default = ldv_post_probe(ldv_10_ret_default);
337 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
338 :
339 4 : if (ldv_undef_int()) {
340 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
341 2 : ldv_assume(ldv_10_ret_default == 0);
342 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
343 :
344 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
345 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
346 :
347 : /* Jump to a subprocess 'call' initial state */
348 1 : goto ldv_call_10;
349 : }
350 : else {
351 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
352 2 : ldv_assume(ldv_10_ret_default != 0);
353 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
354 :
355 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
356 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
357 :
358 : /* Jump to a subprocess 'main' initial state */
359 1 : goto ldv_main_10;
360 : }
361 : }
362 : else {
363 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
364 2 : ldv_free(ldv_10_rtc_device_rtc_device);
365 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
366 :
367 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
368 : /* Skip a non-replicative signal receiving */
369 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
370 :
371 : /* Exit function at a terminal state */
372 1 : return;
373 : }
374 : /* End of the subprocess 'main' */
375 : return;
376 1 :
377 : /* Sbprocess call */
378 : ldv_call_10:
379 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
380 :
381 2 : switch (ldv_undef_int()) {
382 3 : case 1: {
383 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
384 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_10_device_device, ldv_10_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
385 2 : ldv_rtc_class_scenario_callback_10_22(ldv_10_callback_uevent, ldv_10_device_device, ldv_10_device_struct_kobj_uevent_env_ptr);
386 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
387 :
388 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
389 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
390 :
391 : /* Jump to a subprocess 'call' initial state */
392 1 : goto ldv_call_10;
393 1 : break;
394 : }
395 3 : case 2: {
396 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
397 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_10_device_device, ldv_10_device_struct_pm_message);", "comment": "callback"} */
398 2 : ldv_rtc_class_scenario_callback_10_21(ldv_10_callback_suspend, ldv_10_device_device, ldv_10_device_struct_pm_message);
399 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
400 :
401 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
402 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
403 :
404 : /* Jump to a subprocess 'call' initial state */
405 1 : goto ldv_call_10;
406 : /* Jump to a subprocess 'call' initial state */
407 : goto ldv_call_10;
408 1 : break;
409 : }
410 3 : case 3: {
411 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
412 3 : ldv_10_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
413 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
414 :
415 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
416 : /* LDV {"type": "CALLBACK", "call": "((& mmc_oemid_show))(ldv_10_device_device, ldv_10_device_struct_device_attribute, ldv_10_ldv_param_18_2_default);", "comment": "callback"} */
417 2 : ldv_rtc_class_scenario_callback_10_18(ldv_10_callback_show, ldv_10_device_device, ldv_10_device_struct_device_attribute, ldv_10_ldv_param_18_2_default);
418 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
419 :
420 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
421 2 : ldv_free(ldv_10_ldv_param_18_2_default);
422 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
423 :
424 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
425 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
426 :
427 : /* Jump to a subprocess 'call' initial state */
428 1 : goto ldv_call_10;
429 : /* Jump to a subprocess 'call' initial state */
430 : goto ldv_call_10;
431 : /* Jump to a subprocess 'call' initial state */
432 : goto ldv_call_10;
433 1 : break;
434 : }
435 3 : case 4: {
436 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
437 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_10_device_device);", "comment": "callback"} */
438 2 : ldv_rtc_class_scenario_callback_10_17(ldv_10_callback_resume, ldv_10_device_device);
439 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
440 :
441 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
442 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
443 :
444 : /* Jump to a subprocess 'call' initial state */
445 1 : goto ldv_call_10;
446 : /* Jump to a subprocess 'call' initial state */
447 : goto ldv_call_10;
448 : /* Jump to a subprocess 'call' initial state */
449 : goto ldv_call_10;
450 : /* Jump to a subprocess 'call' initial state */
451 : goto ldv_call_10;
452 1 : break;
453 : }
454 3 : case 5: {
455 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
456 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_10_device_device);", "comment": "callback"} */
457 2 : ldv_rtc_class_scenario_callback_10_16(ldv_10_callback_remove, ldv_10_device_device);
458 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
459 :
460 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
461 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
462 :
463 : /* Jump to a subprocess 'call' initial state */
464 1 : goto ldv_call_10;
465 : /* Jump to a subprocess 'call' initial state */
466 : goto ldv_call_10;
467 : /* Jump to a subprocess 'call' initial state */
468 : goto ldv_call_10;
469 : /* Jump to a subprocess 'call' initial state */
470 : goto ldv_call_10;
471 : /* Jump to a subprocess 'call' initial state */
472 : goto ldv_call_10;
473 1 : break;
474 : }
475 3 : case 6: {
476 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
477 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_10_device_device, ldv_10_device_struct_device_driver_ptr);", "comment": "callback"} */
478 2 : ldv_rtc_class_scenario_callback_10_15(ldv_10_callback_match, ldv_10_device_device, ldv_10_device_struct_device_driver_ptr);
479 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
480 :
481 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
482 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
483 :
484 : /* Jump to a subprocess 'call' initial state */
485 1 : goto ldv_call_10;
486 : /* Jump to a subprocess 'call' initial state */
487 : goto ldv_call_10;
488 : /* Jump to a subprocess 'call' initial state */
489 : goto ldv_call_10;
490 : /* Jump to a subprocess 'call' initial state */
491 : goto ldv_call_10;
492 : /* Jump to a subprocess 'call' initial state */
493 : goto ldv_call_10;
494 : /* Jump to a subprocess 'call' initial state */
495 : goto ldv_call_10;
496 1 : break;
497 : }
498 3 : case 7: {
499 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
500 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_10_device_device);", "comment": "callback"} */
501 2 : ldv_rtc_class_scenario_callback_10_4(ldv_10_callback_func_1_ptr, ldv_10_device_device);
502 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
503 :
504 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
505 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
506 :
507 : /* Jump to a subprocess 'call' initial state */
508 1 : goto ldv_call_10;
509 : /* Jump to a subprocess 'call' initial state */
510 : goto ldv_call_10;
511 : /* Jump to a subprocess 'call' initial state */
512 : goto ldv_call_10;
513 : /* Jump to a subprocess 'call' initial state */
514 : goto ldv_call_10;
515 : /* Jump to a subprocess 'call' initial state */
516 : goto ldv_call_10;
517 : /* Jump to a subprocess 'call' initial state */
518 : goto ldv_call_10;
519 : /* Jump to a subprocess 'call' initial state */
520 : goto ldv_call_10;
521 1 : break;
522 : }
523 3 : case 8: {
524 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
525 3 : if (ldv_10_rtc_class_ops_rtc_class_ops->release) {
526 : /* LDV {"type": "CALLBACK", "call": "(ldv_10_rtc_class_ops_rtc_class_ops->release)(ldv_10_device_device);", "comment": "release"} */
527 2 : ldv_rtc_class_scenario_release_10_2(ldv_10_rtc_class_ops_rtc_class_ops->release, ldv_10_device_device);
528 : }
529 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
530 :
531 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
532 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
533 :
534 : /* Jump to a subprocess 'main' initial state */
535 2 : goto ldv_main_10;
536 1 : break;
537 : }
538 2 : default: ldv_stop();
539 1 : }
540 0 : /* End of the subprocess 'call' */
541 0 : return;
542 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_10"} */
543 : }
544 :
545 : /* AUX_FUNC ldv_rtc_class_scenario_11 */
546 : void ldv_rtc_class_scenario_11(void *arg0) {
547 : /* LDV {"thread": 11, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_11"} */
548 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
549 1 : int (*ldv_11_callback_func_1_ptr)(struct device *);
550 1 : int (*ldv_11_callback_match)(struct device *, struct device_driver *);
551 1 : int (*ldv_11_callback_remove)(struct device *);
552 1 : int (*ldv_11_callback_resume)(struct device *);
553 1 : ssize_t (*ldv_11_callback_show)(struct device *, struct device_attribute *, char *);
554 1 : int (*ldv_11_callback_suspend)(struct device *, pm_message_t );
555 1 : int (*ldv_11_callback_uevent)(struct device *, struct kobj_uevent_env *);
556 1 : struct device *ldv_11_device_device;
557 1 : struct device_attribute *ldv_11_device_struct_device_attribute;
558 1 : struct device_driver *ldv_11_device_struct_device_driver_ptr;
559 1 : struct kobj_uevent_env *ldv_11_device_struct_kobj_uevent_env_ptr;
560 1 : struct pm_message ldv_11_device_struct_pm_message;
561 1 : char *ldv_11_ldv_param_18_2_default;
562 1 : int ldv_11_ret_default;
563 1 : struct rtc_class_ops *ldv_11_rtc_class_ops_rtc_class_ops;
564 1 : struct rtc_device *ldv_11_rtc_device_rtc_device;
565 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
566 1 : /* Initialize automaton variables */
567 2 : ldv_11_ret_default = 1;
568 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
569 3 : ldv_free(arg0);
570 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
571 1 :
572 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
573 4 : ldv_11_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
574 3 : ldv_11_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
575 3 : ldv_11_device_device = ldv_xmalloc_unknown_size(0);
576 3 : ldv_11_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
577 3 : ldv_11_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
578 3 : ldv_11_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
579 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
580 :
581 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
582 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
583 :
584 : /* Jump to a subprocess 'main' initial state */
585 1 : goto ldv_main_11;
586 : /* End of the process */
587 : return;
588 1 :
589 : /* Sbprocess main */
590 : ldv_main_11:
591 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
592 :
593 4 : if (ldv_undef_int()) {
594 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
595 : /* Callback pre-call */
596 1 : ldv_pre_probe();
597 3 : if (ldv_11_rtc_class_ops_rtc_class_ops->open) {
598 : /* LDV {"type": "CALLBACK", "call": "ldv_11_ret_default = (ldv_11_rtc_class_ops_rtc_class_ops->open)(ldv_11_device_device);", "comment": "probe"} */
599 2 : ldv_11_ret_default = ldv_rtc_class_scenario_probe_11_11(ldv_11_rtc_class_ops_rtc_class_ops->open, ldv_11_device_device);
600 : }
601 : /* Callback post-call */
602 4 : ldv_11_ret_default = ldv_post_probe(ldv_11_ret_default);
603 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
604 :
605 4 : if (ldv_undef_int()) {
606 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
607 2 : ldv_assume(ldv_11_ret_default == 0);
608 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
609 :
610 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
611 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
612 :
613 : /* Jump to a subprocess 'call' initial state */
614 1 : goto ldv_call_11;
615 : }
616 : else {
617 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
618 2 : ldv_assume(ldv_11_ret_default != 0);
619 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
620 :
621 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
622 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
623 :
624 : /* Jump to a subprocess 'main' initial state */
625 1 : goto ldv_main_11;
626 : }
627 : }
628 : else {
629 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
630 2 : ldv_free(ldv_11_rtc_device_rtc_device);
631 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
632 :
633 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
634 : /* Skip a non-replicative signal receiving */
635 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
636 :
637 : /* Exit function at a terminal state */
638 1 : return;
639 : }
640 : /* End of the subprocess 'main' */
641 : return;
642 1 :
643 : /* Sbprocess call */
644 : ldv_call_11:
645 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
646 :
647 2 : switch (ldv_undef_int()) {
648 3 : case 1: {
649 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
650 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_11_device_device, ldv_11_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
651 2 : ldv_rtc_class_scenario_callback_11_22(ldv_11_callback_uevent, ldv_11_device_device, ldv_11_device_struct_kobj_uevent_env_ptr);
652 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
653 :
654 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
655 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
656 :
657 : /* Jump to a subprocess 'call' initial state */
658 1 : goto ldv_call_11;
659 1 : break;
660 : }
661 3 : case 2: {
662 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
663 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_11_device_device, ldv_11_device_struct_pm_message);", "comment": "callback"} */
664 2 : ldv_rtc_class_scenario_callback_11_21(ldv_11_callback_suspend, ldv_11_device_device, ldv_11_device_struct_pm_message);
665 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
666 :
667 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
668 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
669 :
670 : /* Jump to a subprocess 'call' initial state */
671 1 : goto ldv_call_11;
672 : /* Jump to a subprocess 'call' initial state */
673 : goto ldv_call_11;
674 1 : break;
675 : }
676 3 : case 3: {
677 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
678 3 : ldv_11_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
679 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
680 :
681 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
682 : /* LDV {"type": "CALLBACK", "call": "((& mmc_scr_show))(ldv_11_device_device, ldv_11_device_struct_device_attribute, ldv_11_ldv_param_18_2_default);", "comment": "callback"} */
683 2 : ldv_rtc_class_scenario_callback_11_18(ldv_11_callback_show, ldv_11_device_device, ldv_11_device_struct_device_attribute, ldv_11_ldv_param_18_2_default);
684 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
685 :
686 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
687 2 : ldv_free(ldv_11_ldv_param_18_2_default);
688 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
689 :
690 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
691 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
692 :
693 : /* Jump to a subprocess 'call' initial state */
694 1 : goto ldv_call_11;
695 : /* Jump to a subprocess 'call' initial state */
696 : goto ldv_call_11;
697 : /* Jump to a subprocess 'call' initial state */
698 : goto ldv_call_11;
699 1 : break;
700 : }
701 3 : case 4: {
702 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
703 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_11_device_device);", "comment": "callback"} */
704 2 : ldv_rtc_class_scenario_callback_11_17(ldv_11_callback_resume, ldv_11_device_device);
705 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
706 :
707 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
708 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
709 :
710 : /* Jump to a subprocess 'call' initial state */
711 1 : goto ldv_call_11;
712 : /* Jump to a subprocess 'call' initial state */
713 : goto ldv_call_11;
714 : /* Jump to a subprocess 'call' initial state */
715 : goto ldv_call_11;
716 : /* Jump to a subprocess 'call' initial state */
717 : goto ldv_call_11;
718 1 : break;
719 : }
720 3 : case 5: {
721 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
722 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_11_device_device);", "comment": "callback"} */
723 2 : ldv_rtc_class_scenario_callback_11_16(ldv_11_callback_remove, ldv_11_device_device);
724 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
725 :
726 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
727 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
728 :
729 : /* Jump to a subprocess 'call' initial state */
730 1 : goto ldv_call_11;
731 : /* Jump to a subprocess 'call' initial state */
732 : goto ldv_call_11;
733 : /* Jump to a subprocess 'call' initial state */
734 : goto ldv_call_11;
735 : /* Jump to a subprocess 'call' initial state */
736 : goto ldv_call_11;
737 : /* Jump to a subprocess 'call' initial state */
738 : goto ldv_call_11;
739 1 : break;
740 : }
741 3 : case 6: {
742 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
743 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_11_device_device, ldv_11_device_struct_device_driver_ptr);", "comment": "callback"} */
744 2 : ldv_rtc_class_scenario_callback_11_15(ldv_11_callback_match, ldv_11_device_device, ldv_11_device_struct_device_driver_ptr);
745 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
746 :
747 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
748 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
749 :
750 : /* Jump to a subprocess 'call' initial state */
751 1 : goto ldv_call_11;
752 : /* Jump to a subprocess 'call' initial state */
753 : goto ldv_call_11;
754 : /* Jump to a subprocess 'call' initial state */
755 : goto ldv_call_11;
756 : /* Jump to a subprocess 'call' initial state */
757 : goto ldv_call_11;
758 : /* Jump to a subprocess 'call' initial state */
759 : goto ldv_call_11;
760 : /* Jump to a subprocess 'call' initial state */
761 : goto ldv_call_11;
762 1 : break;
763 : }
764 3 : case 7: {
765 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
766 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_11_device_device);", "comment": "callback"} */
767 2 : ldv_rtc_class_scenario_callback_11_4(ldv_11_callback_func_1_ptr, ldv_11_device_device);
768 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
769 :
770 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
771 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
772 :
773 : /* Jump to a subprocess 'call' initial state */
774 1 : goto ldv_call_11;
775 : /* Jump to a subprocess 'call' initial state */
776 : goto ldv_call_11;
777 : /* Jump to a subprocess 'call' initial state */
778 : goto ldv_call_11;
779 : /* Jump to a subprocess 'call' initial state */
780 : goto ldv_call_11;
781 : /* Jump to a subprocess 'call' initial state */
782 : goto ldv_call_11;
783 : /* Jump to a subprocess 'call' initial state */
784 : goto ldv_call_11;
785 : /* Jump to a subprocess 'call' initial state */
786 : goto ldv_call_11;
787 1 : break;
788 : }
789 3 : case 8: {
790 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
791 3 : if (ldv_11_rtc_class_ops_rtc_class_ops->release) {
792 : /* LDV {"type": "CALLBACK", "call": "(ldv_11_rtc_class_ops_rtc_class_ops->release)(ldv_11_device_device);", "comment": "release"} */
793 2 : ldv_rtc_class_scenario_release_11_2(ldv_11_rtc_class_ops_rtc_class_ops->release, ldv_11_device_device);
794 : }
795 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
796 :
797 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
798 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
799 :
800 : /* Jump to a subprocess 'main' initial state */
801 2 : goto ldv_main_11;
802 1 : break;
803 : }
804 2 : default: ldv_stop();
805 1 : }
806 0 : /* End of the subprocess 'call' */
807 0 : return;
808 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_11"} */
809 : }
810 :
811 : /* AUX_FUNC ldv_rtc_class_scenario_12 */
812 : void ldv_rtc_class_scenario_12(void *arg0) {
813 : /* LDV {"thread": 12, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_12"} */
814 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
815 1 : int (*ldv_12_callback_func_1_ptr)(struct device *);
816 1 : int (*ldv_12_callback_match)(struct device *, struct device_driver *);
817 1 : int (*ldv_12_callback_remove)(struct device *);
818 1 : int (*ldv_12_callback_resume)(struct device *);
819 1 : ssize_t (*ldv_12_callback_show)(struct device *, struct device_attribute *, char *);
820 1 : int (*ldv_12_callback_suspend)(struct device *, pm_message_t );
821 1 : int (*ldv_12_callback_uevent)(struct device *, struct kobj_uevent_env *);
822 1 : struct device *ldv_12_device_device;
823 1 : struct device_attribute *ldv_12_device_struct_device_attribute;
824 1 : struct device_driver *ldv_12_device_struct_device_driver_ptr;
825 1 : struct kobj_uevent_env *ldv_12_device_struct_kobj_uevent_env_ptr;
826 1 : struct pm_message ldv_12_device_struct_pm_message;
827 1 : char *ldv_12_ldv_param_18_2_default;
828 1 : int ldv_12_ret_default;
829 1 : struct rtc_class_ops *ldv_12_rtc_class_ops_rtc_class_ops;
830 1 : struct rtc_device *ldv_12_rtc_device_rtc_device;
831 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
832 1 : /* Initialize automaton variables */
833 2 : ldv_12_ret_default = 1;
834 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
835 3 : ldv_free(arg0);
836 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
837 1 :
838 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
839 4 : ldv_12_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
840 3 : ldv_12_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
841 3 : ldv_12_device_device = ldv_xmalloc_unknown_size(0);
842 3 : ldv_12_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
843 3 : ldv_12_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
844 3 : ldv_12_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
845 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
846 :
847 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
848 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
849 :
850 : /* Jump to a subprocess 'main' initial state */
851 1 : goto ldv_main_12;
852 : /* End of the process */
853 : return;
854 1 :
855 : /* Sbprocess main */
856 : ldv_main_12:
857 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
858 :
859 4 : if (ldv_undef_int()) {
860 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
861 : /* Callback pre-call */
862 1 : ldv_pre_probe();
863 3 : if (ldv_12_rtc_class_ops_rtc_class_ops->open) {
864 : /* LDV {"type": "CALLBACK", "call": "ldv_12_ret_default = (ldv_12_rtc_class_ops_rtc_class_ops->open)(ldv_12_device_device);", "comment": "probe"} */
865 2 : ldv_12_ret_default = ldv_rtc_class_scenario_probe_12_11(ldv_12_rtc_class_ops_rtc_class_ops->open, ldv_12_device_device);
866 : }
867 : /* Callback post-call */
868 4 : ldv_12_ret_default = ldv_post_probe(ldv_12_ret_default);
869 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
870 :
871 4 : if (ldv_undef_int()) {
872 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
873 2 : ldv_assume(ldv_12_ret_default == 0);
874 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
875 :
876 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
877 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
878 :
879 : /* Jump to a subprocess 'call' initial state */
880 1 : goto ldv_call_12;
881 : }
882 : else {
883 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
884 2 : ldv_assume(ldv_12_ret_default != 0);
885 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
886 :
887 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
888 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
889 :
890 : /* Jump to a subprocess 'main' initial state */
891 1 : goto ldv_main_12;
892 : }
893 : }
894 : else {
895 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
896 2 : ldv_free(ldv_12_rtc_device_rtc_device);
897 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
898 :
899 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
900 : /* Skip a non-replicative signal receiving */
901 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
902 :
903 : /* Exit function at a terminal state */
904 1 : return;
905 : }
906 : /* End of the subprocess 'main' */
907 : return;
908 1 :
909 : /* Sbprocess call */
910 : ldv_call_12:
911 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
912 :
913 2 : switch (ldv_undef_int()) {
914 3 : case 1: {
915 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
916 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_12_device_device, ldv_12_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
917 2 : ldv_rtc_class_scenario_callback_12_22(ldv_12_callback_uevent, ldv_12_device_device, ldv_12_device_struct_kobj_uevent_env_ptr);
918 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
919 :
920 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
921 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
922 :
923 : /* Jump to a subprocess 'call' initial state */
924 1 : goto ldv_call_12;
925 1 : break;
926 : }
927 3 : case 2: {
928 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
929 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_12_device_device, ldv_12_device_struct_pm_message);", "comment": "callback"} */
930 2 : ldv_rtc_class_scenario_callback_12_21(ldv_12_callback_suspend, ldv_12_device_device, ldv_12_device_struct_pm_message);
931 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
932 :
933 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
934 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
935 :
936 : /* Jump to a subprocess 'call' initial state */
937 1 : goto ldv_call_12;
938 : /* Jump to a subprocess 'call' initial state */
939 : goto ldv_call_12;
940 1 : break;
941 : }
942 3 : case 3: {
943 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
944 3 : ldv_12_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
945 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
946 :
947 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
948 : /* LDV {"type": "CALLBACK", "call": "((& mmc_serial_show))(ldv_12_device_device, ldv_12_device_struct_device_attribute, ldv_12_ldv_param_18_2_default);", "comment": "callback"} */
949 2 : ldv_rtc_class_scenario_callback_12_18(ldv_12_callback_show, ldv_12_device_device, ldv_12_device_struct_device_attribute, ldv_12_ldv_param_18_2_default);
950 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
951 :
952 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
953 2 : ldv_free(ldv_12_ldv_param_18_2_default);
954 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
955 :
956 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
957 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
958 :
959 : /* Jump to a subprocess 'call' initial state */
960 1 : goto ldv_call_12;
961 : /* Jump to a subprocess 'call' initial state */
962 : goto ldv_call_12;
963 : /* Jump to a subprocess 'call' initial state */
964 : goto ldv_call_12;
965 1 : break;
966 : }
967 3 : case 4: {
968 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
969 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_12_device_device);", "comment": "callback"} */
970 2 : ldv_rtc_class_scenario_callback_12_17(ldv_12_callback_resume, ldv_12_device_device);
971 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
972 :
973 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
974 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
975 :
976 : /* Jump to a subprocess 'call' initial state */
977 1 : goto ldv_call_12;
978 : /* Jump to a subprocess 'call' initial state */
979 : goto ldv_call_12;
980 : /* Jump to a subprocess 'call' initial state */
981 : goto ldv_call_12;
982 : /* Jump to a subprocess 'call' initial state */
983 : goto ldv_call_12;
984 1 : break;
985 : }
986 3 : case 5: {
987 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
988 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_12_device_device);", "comment": "callback"} */
989 2 : ldv_rtc_class_scenario_callback_12_16(ldv_12_callback_remove, ldv_12_device_device);
990 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
991 :
992 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
993 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
994 :
995 : /* Jump to a subprocess 'call' initial state */
996 1 : goto ldv_call_12;
997 : /* Jump to a subprocess 'call' initial state */
998 : goto ldv_call_12;
999 : /* Jump to a subprocess 'call' initial state */
1000 : goto ldv_call_12;
1001 : /* Jump to a subprocess 'call' initial state */
1002 : goto ldv_call_12;
1003 : /* Jump to a subprocess 'call' initial state */
1004 : goto ldv_call_12;
1005 1 : break;
1006 : }
1007 3 : case 6: {
1008 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
1009 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_12_device_device, ldv_12_device_struct_device_driver_ptr);", "comment": "callback"} */
1010 2 : ldv_rtc_class_scenario_callback_12_15(ldv_12_callback_match, ldv_12_device_device, ldv_12_device_struct_device_driver_ptr);
1011 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1012 :
1013 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1014 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1015 :
1016 : /* Jump to a subprocess 'call' initial state */
1017 1 : goto ldv_call_12;
1018 : /* Jump to a subprocess 'call' initial state */
1019 : goto ldv_call_12;
1020 : /* Jump to a subprocess 'call' initial state */
1021 : goto ldv_call_12;
1022 : /* Jump to a subprocess 'call' initial state */
1023 : goto ldv_call_12;
1024 : /* Jump to a subprocess 'call' initial state */
1025 : goto ldv_call_12;
1026 : /* Jump to a subprocess 'call' initial state */
1027 : goto ldv_call_12;
1028 1 : break;
1029 : }
1030 3 : case 7: {
1031 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
1032 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_12_device_device);", "comment": "callback"} */
1033 2 : ldv_rtc_class_scenario_callback_12_4(ldv_12_callback_func_1_ptr, ldv_12_device_device);
1034 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1035 :
1036 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1037 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1038 :
1039 : /* Jump to a subprocess 'call' initial state */
1040 1 : goto ldv_call_12;
1041 : /* Jump to a subprocess 'call' initial state */
1042 : goto ldv_call_12;
1043 : /* Jump to a subprocess 'call' initial state */
1044 : goto ldv_call_12;
1045 : /* Jump to a subprocess 'call' initial state */
1046 : goto ldv_call_12;
1047 : /* Jump to a subprocess 'call' initial state */
1048 : goto ldv_call_12;
1049 : /* Jump to a subprocess 'call' initial state */
1050 : goto ldv_call_12;
1051 : /* Jump to a subprocess 'call' initial state */
1052 : goto ldv_call_12;
1053 1 : break;
1054 : }
1055 3 : case 8: {
1056 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
1057 3 : if (ldv_12_rtc_class_ops_rtc_class_ops->release) {
1058 : /* LDV {"type": "CALLBACK", "call": "(ldv_12_rtc_class_ops_rtc_class_ops->release)(ldv_12_device_device);", "comment": "release"} */
1059 2 : ldv_rtc_class_scenario_release_12_2(ldv_12_rtc_class_ops_rtc_class_ops->release, ldv_12_device_device);
1060 : }
1061 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
1062 :
1063 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1064 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1065 :
1066 : /* Jump to a subprocess 'main' initial state */
1067 2 : goto ldv_main_12;
1068 1 : break;
1069 : }
1070 2 : default: ldv_stop();
1071 1 : }
1072 0 : /* End of the subprocess 'call' */
1073 0 : return;
1074 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_12"} */
1075 : }
1076 :
1077 : /* AUX_FUNC ldv_rtc_class_scenario_13 */
1078 : void ldv_rtc_class_scenario_13(void *arg0) {
1079 : /* LDV {"thread": 13, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_13"} */
1080 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1081 1 : int (*ldv_13_callback_func_1_ptr)(struct device *);
1082 1 : int (*ldv_13_callback_match)(struct device *, struct device_driver *);
1083 1 : int (*ldv_13_callback_remove)(struct device *);
1084 1 : int (*ldv_13_callback_resume)(struct device *);
1085 1 : ssize_t (*ldv_13_callback_show)(struct device *, struct device_attribute *, char *);
1086 1 : int (*ldv_13_callback_suspend)(struct device *, pm_message_t );
1087 1 : int (*ldv_13_callback_uevent)(struct device *, struct kobj_uevent_env *);
1088 1 : struct device *ldv_13_device_device;
1089 1 : struct device_attribute *ldv_13_device_struct_device_attribute;
1090 1 : struct device_driver *ldv_13_device_struct_device_driver_ptr;
1091 1 : struct kobj_uevent_env *ldv_13_device_struct_kobj_uevent_env_ptr;
1092 1 : struct pm_message ldv_13_device_struct_pm_message;
1093 1 : char *ldv_13_ldv_param_18_2_default;
1094 1 : int ldv_13_ret_default;
1095 1 : struct rtc_class_ops *ldv_13_rtc_class_ops_rtc_class_ops;
1096 1 : struct rtc_device *ldv_13_rtc_device_rtc_device;
1097 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1098 1 : /* Initialize automaton variables */
1099 2 : ldv_13_ret_default = 1;
1100 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
1101 3 : ldv_free(arg0);
1102 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
1103 1 :
1104 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1105 4 : ldv_13_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
1106 3 : ldv_13_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
1107 3 : ldv_13_device_device = ldv_xmalloc_unknown_size(0);
1108 3 : ldv_13_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
1109 3 : ldv_13_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
1110 3 : ldv_13_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
1111 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
1112 :
1113 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1114 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1115 :
1116 : /* Jump to a subprocess 'main' initial state */
1117 1 : goto ldv_main_13;
1118 : /* End of the process */
1119 : return;
1120 1 :
1121 : /* Sbprocess main */
1122 : ldv_main_13:
1123 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1124 :
1125 4 : if (ldv_undef_int()) {
1126 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
1127 : /* Callback pre-call */
1128 1 : ldv_pre_probe();
1129 3 : if (ldv_13_rtc_class_ops_rtc_class_ops->open) {
1130 : /* LDV {"type": "CALLBACK", "call": "ldv_13_ret_default = (ldv_13_rtc_class_ops_rtc_class_ops->open)(ldv_13_device_device);", "comment": "probe"} */
1131 2 : ldv_13_ret_default = ldv_rtc_class_scenario_probe_13_11(ldv_13_rtc_class_ops_rtc_class_ops->open, ldv_13_device_device);
1132 : }
1133 : /* Callback post-call */
1134 4 : ldv_13_ret_default = ldv_post_probe(ldv_13_ret_default);
1135 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
1136 :
1137 4 : if (ldv_undef_int()) {
1138 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
1139 2 : ldv_assume(ldv_13_ret_default == 0);
1140 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
1141 :
1142 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1143 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1144 :
1145 : /* Jump to a subprocess 'call' initial state */
1146 1 : goto ldv_call_13;
1147 : }
1148 : else {
1149 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
1150 2 : ldv_assume(ldv_13_ret_default != 0);
1151 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
1152 :
1153 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1154 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1155 :
1156 : /* Jump to a subprocess 'main' initial state */
1157 1 : goto ldv_main_13;
1158 : }
1159 : }
1160 : else {
1161 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1162 2 : ldv_free(ldv_13_rtc_device_rtc_device);
1163 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
1164 :
1165 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
1166 : /* Skip a non-replicative signal receiving */
1167 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
1168 :
1169 : /* Exit function at a terminal state */
1170 1 : return;
1171 : }
1172 : /* End of the subprocess 'main' */
1173 : return;
1174 1 :
1175 : /* Sbprocess call */
1176 : ldv_call_13:
1177 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1178 :
1179 2 : switch (ldv_undef_int()) {
1180 3 : case 1: {
1181 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
1182 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_13_device_device, ldv_13_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
1183 2 : ldv_rtc_class_scenario_callback_13_22(ldv_13_callback_uevent, ldv_13_device_device, ldv_13_device_struct_kobj_uevent_env_ptr);
1184 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1185 :
1186 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1187 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1188 :
1189 : /* Jump to a subprocess 'call' initial state */
1190 1 : goto ldv_call_13;
1191 1 : break;
1192 : }
1193 3 : case 2: {
1194 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
1195 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_13_device_device, ldv_13_device_struct_pm_message);", "comment": "callback"} */
1196 2 : ldv_rtc_class_scenario_callback_13_21(ldv_13_callback_suspend, ldv_13_device_device, ldv_13_device_struct_pm_message);
1197 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1198 :
1199 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1200 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1201 :
1202 : /* Jump to a subprocess 'call' initial state */
1203 1 : goto ldv_call_13;
1204 : /* Jump to a subprocess 'call' initial state */
1205 : goto ldv_call_13;
1206 1 : break;
1207 : }
1208 3 : case 3: {
1209 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1210 3 : ldv_13_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
1211 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
1212 :
1213 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
1214 : /* LDV {"type": "CALLBACK", "call": "((& vendor_show))(ldv_13_device_device, ldv_13_device_struct_device_attribute, ldv_13_ldv_param_18_2_default);", "comment": "callback"} */
1215 2 : ldv_rtc_class_scenario_callback_13_18(ldv_13_callback_show, ldv_13_device_device, ldv_13_device_struct_device_attribute, ldv_13_ldv_param_18_2_default);
1216 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1217 :
1218 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1219 2 : ldv_free(ldv_13_ldv_param_18_2_default);
1220 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
1221 :
1222 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1223 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1224 :
1225 : /* Jump to a subprocess 'call' initial state */
1226 1 : goto ldv_call_13;
1227 : /* Jump to a subprocess 'call' initial state */
1228 : goto ldv_call_13;
1229 : /* Jump to a subprocess 'call' initial state */
1230 : goto ldv_call_13;
1231 1 : break;
1232 : }
1233 3 : case 4: {
1234 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
1235 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_13_device_device);", "comment": "callback"} */
1236 2 : ldv_rtc_class_scenario_callback_13_17(ldv_13_callback_resume, ldv_13_device_device);
1237 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1238 :
1239 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1240 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1241 :
1242 : /* Jump to a subprocess 'call' initial state */
1243 1 : goto ldv_call_13;
1244 : /* Jump to a subprocess 'call' initial state */
1245 : goto ldv_call_13;
1246 : /* Jump to a subprocess 'call' initial state */
1247 : goto ldv_call_13;
1248 : /* Jump to a subprocess 'call' initial state */
1249 : goto ldv_call_13;
1250 1 : break;
1251 : }
1252 3 : case 5: {
1253 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
1254 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_13_device_device);", "comment": "callback"} */
1255 2 : ldv_rtc_class_scenario_callback_13_16(ldv_13_callback_remove, ldv_13_device_device);
1256 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1257 :
1258 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1259 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1260 :
1261 : /* Jump to a subprocess 'call' initial state */
1262 1 : goto ldv_call_13;
1263 : /* Jump to a subprocess 'call' initial state */
1264 : goto ldv_call_13;
1265 : /* Jump to a subprocess 'call' initial state */
1266 : goto ldv_call_13;
1267 : /* Jump to a subprocess 'call' initial state */
1268 : goto ldv_call_13;
1269 : /* Jump to a subprocess 'call' initial state */
1270 : goto ldv_call_13;
1271 1 : break;
1272 : }
1273 3 : case 6: {
1274 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
1275 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_13_device_device, ldv_13_device_struct_device_driver_ptr);", "comment": "callback"} */
1276 2 : ldv_rtc_class_scenario_callback_13_15(ldv_13_callback_match, ldv_13_device_device, ldv_13_device_struct_device_driver_ptr);
1277 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1278 :
1279 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1280 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1281 :
1282 : /* Jump to a subprocess 'call' initial state */
1283 1 : goto ldv_call_13;
1284 : /* Jump to a subprocess 'call' initial state */
1285 : goto ldv_call_13;
1286 : /* Jump to a subprocess 'call' initial state */
1287 : goto ldv_call_13;
1288 : /* Jump to a subprocess 'call' initial state */
1289 : goto ldv_call_13;
1290 : /* Jump to a subprocess 'call' initial state */
1291 : goto ldv_call_13;
1292 : /* Jump to a subprocess 'call' initial state */
1293 : goto ldv_call_13;
1294 1 : break;
1295 : }
1296 3 : case 7: {
1297 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
1298 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_13_device_device);", "comment": "callback"} */
1299 2 : ldv_rtc_class_scenario_callback_13_4(ldv_13_callback_func_1_ptr, ldv_13_device_device);
1300 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1301 :
1302 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1303 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1304 :
1305 : /* Jump to a subprocess 'call' initial state */
1306 1 : goto ldv_call_13;
1307 : /* Jump to a subprocess 'call' initial state */
1308 : goto ldv_call_13;
1309 : /* Jump to a subprocess 'call' initial state */
1310 : goto ldv_call_13;
1311 : /* Jump to a subprocess 'call' initial state */
1312 : goto ldv_call_13;
1313 : /* Jump to a subprocess 'call' initial state */
1314 : goto ldv_call_13;
1315 : /* Jump to a subprocess 'call' initial state */
1316 : goto ldv_call_13;
1317 : /* Jump to a subprocess 'call' initial state */
1318 : goto ldv_call_13;
1319 1 : break;
1320 : }
1321 3 : case 8: {
1322 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
1323 3 : if (ldv_13_rtc_class_ops_rtc_class_ops->release) {
1324 : /* LDV {"type": "CALLBACK", "call": "(ldv_13_rtc_class_ops_rtc_class_ops->release)(ldv_13_device_device);", "comment": "release"} */
1325 2 : ldv_rtc_class_scenario_release_13_2(ldv_13_rtc_class_ops_rtc_class_ops->release, ldv_13_device_device);
1326 : }
1327 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
1328 :
1329 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1330 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1331 :
1332 : /* Jump to a subprocess 'main' initial state */
1333 2 : goto ldv_main_13;
1334 1 : break;
1335 : }
1336 2 : default: ldv_stop();
1337 1 : }
1338 0 : /* End of the subprocess 'call' */
1339 0 : return;
1340 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_13"} */
1341 : }
1342 :
1343 : /* AUX_FUNC ldv_rtc_class_scenario_14 */
1344 : void ldv_rtc_class_scenario_14(void *arg0) {
1345 : /* LDV {"thread": 14, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_14"} */
1346 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1347 1 : int (*ldv_14_callback_func_1_ptr)(struct device *);
1348 1 : int (*ldv_14_callback_match)(struct device *, struct device_driver *);
1349 1 : int (*ldv_14_callback_remove)(struct device *);
1350 1 : int (*ldv_14_callback_resume)(struct device *);
1351 1 : ssize_t (*ldv_14_callback_show)(struct device *, struct device_attribute *, char *);
1352 1 : int (*ldv_14_callback_suspend)(struct device *, pm_message_t );
1353 1 : int (*ldv_14_callback_uevent)(struct device *, struct kobj_uevent_env *);
1354 1 : struct device *ldv_14_device_device;
1355 1 : struct device_attribute *ldv_14_device_struct_device_attribute;
1356 1 : struct device_driver *ldv_14_device_struct_device_driver_ptr;
1357 1 : struct kobj_uevent_env *ldv_14_device_struct_kobj_uevent_env_ptr;
1358 1 : struct pm_message ldv_14_device_struct_pm_message;
1359 1 : char *ldv_14_ldv_param_18_2_default;
1360 1 : int ldv_14_ret_default;
1361 1 : struct rtc_class_ops *ldv_14_rtc_class_ops_rtc_class_ops;
1362 1 : struct rtc_device *ldv_14_rtc_device_rtc_device;
1363 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1364 1 : /* Initialize automaton variables */
1365 2 : ldv_14_ret_default = 1;
1366 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
1367 3 : ldv_free(arg0);
1368 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
1369 1 :
1370 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1371 4 : ldv_14_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
1372 3 : ldv_14_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
1373 3 : ldv_14_device_device = ldv_xmalloc_unknown_size(0);
1374 3 : ldv_14_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
1375 3 : ldv_14_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
1376 3 : ldv_14_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
1377 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
1378 :
1379 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1380 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1381 :
1382 : /* Jump to a subprocess 'main' initial state */
1383 1 : goto ldv_main_14;
1384 : /* End of the process */
1385 : return;
1386 1 :
1387 : /* Sbprocess main */
1388 : ldv_main_14:
1389 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1390 :
1391 4 : if (ldv_undef_int()) {
1392 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
1393 : /* Callback pre-call */
1394 1 : ldv_pre_probe();
1395 3 : if (ldv_14_rtc_class_ops_rtc_class_ops->open) {
1396 : /* LDV {"type": "CALLBACK", "call": "ldv_14_ret_default = (ldv_14_rtc_class_ops_rtc_class_ops->open)(ldv_14_device_device);", "comment": "probe"} */
1397 2 : ldv_14_ret_default = ldv_rtc_class_scenario_probe_14_11(ldv_14_rtc_class_ops_rtc_class_ops->open, ldv_14_device_device);
1398 : }
1399 : /* Callback post-call */
1400 4 : ldv_14_ret_default = ldv_post_probe(ldv_14_ret_default);
1401 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
1402 :
1403 4 : if (ldv_undef_int()) {
1404 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
1405 2 : ldv_assume(ldv_14_ret_default == 0);
1406 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
1407 :
1408 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1409 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1410 :
1411 : /* Jump to a subprocess 'call' initial state */
1412 1 : goto ldv_call_14;
1413 : }
1414 : else {
1415 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
1416 2 : ldv_assume(ldv_14_ret_default != 0);
1417 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
1418 :
1419 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1420 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1421 :
1422 : /* Jump to a subprocess 'main' initial state */
1423 1 : goto ldv_main_14;
1424 : }
1425 : }
1426 : else {
1427 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1428 2 : ldv_free(ldv_14_rtc_device_rtc_device);
1429 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
1430 :
1431 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
1432 : /* Skip a non-replicative signal receiving */
1433 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
1434 :
1435 : /* Exit function at a terminal state */
1436 1 : return;
1437 : }
1438 : /* End of the subprocess 'main' */
1439 : return;
1440 1 :
1441 : /* Sbprocess call */
1442 : ldv_call_14:
1443 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1444 :
1445 2 : switch (ldv_undef_int()) {
1446 3 : case 1: {
1447 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
1448 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_14_device_device, ldv_14_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
1449 2 : ldv_rtc_class_scenario_callback_14_22(ldv_14_callback_uevent, ldv_14_device_device, ldv_14_device_struct_kobj_uevent_env_ptr);
1450 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1451 :
1452 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1453 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1454 :
1455 : /* Jump to a subprocess 'call' initial state */
1456 1 : goto ldv_call_14;
1457 1 : break;
1458 : }
1459 3 : case 2: {
1460 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
1461 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_14_device_device, ldv_14_device_struct_pm_message);", "comment": "callback"} */
1462 2 : ldv_rtc_class_scenario_callback_14_21(ldv_14_callback_suspend, ldv_14_device_device, ldv_14_device_struct_pm_message);
1463 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1464 :
1465 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1466 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1467 :
1468 : /* Jump to a subprocess 'call' initial state */
1469 1 : goto ldv_call_14;
1470 : /* Jump to a subprocess 'call' initial state */
1471 : goto ldv_call_14;
1472 1 : break;
1473 : }
1474 3 : case 3: {
1475 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1476 3 : ldv_14_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
1477 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
1478 :
1479 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
1480 : /* LDV {"type": "CALLBACK", "call": "((& vendor_show))(ldv_14_device_device, ldv_14_device_struct_device_attribute, ldv_14_ldv_param_18_2_default);", "comment": "callback"} */
1481 2 : ldv_rtc_class_scenario_callback_14_18(ldv_14_callback_show, ldv_14_device_device, ldv_14_device_struct_device_attribute, ldv_14_ldv_param_18_2_default);
1482 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1483 :
1484 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1485 2 : ldv_free(ldv_14_ldv_param_18_2_default);
1486 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
1487 :
1488 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1489 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1490 :
1491 : /* Jump to a subprocess 'call' initial state */
1492 1 : goto ldv_call_14;
1493 : /* Jump to a subprocess 'call' initial state */
1494 : goto ldv_call_14;
1495 : /* Jump to a subprocess 'call' initial state */
1496 : goto ldv_call_14;
1497 1 : break;
1498 : }
1499 3 : case 4: {
1500 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
1501 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_14_device_device);", "comment": "callback"} */
1502 2 : ldv_rtc_class_scenario_callback_14_17(ldv_14_callback_resume, ldv_14_device_device);
1503 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1504 :
1505 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1506 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1507 :
1508 : /* Jump to a subprocess 'call' initial state */
1509 1 : goto ldv_call_14;
1510 : /* Jump to a subprocess 'call' initial state */
1511 : goto ldv_call_14;
1512 : /* Jump to a subprocess 'call' initial state */
1513 : goto ldv_call_14;
1514 : /* Jump to a subprocess 'call' initial state */
1515 : goto ldv_call_14;
1516 1 : break;
1517 : }
1518 3 : case 5: {
1519 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
1520 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_14_device_device);", "comment": "callback"} */
1521 2 : ldv_rtc_class_scenario_callback_14_16(ldv_14_callback_remove, ldv_14_device_device);
1522 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1523 :
1524 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1525 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1526 :
1527 : /* Jump to a subprocess 'call' initial state */
1528 1 : goto ldv_call_14;
1529 : /* Jump to a subprocess 'call' initial state */
1530 : goto ldv_call_14;
1531 : /* Jump to a subprocess 'call' initial state */
1532 : goto ldv_call_14;
1533 : /* Jump to a subprocess 'call' initial state */
1534 : goto ldv_call_14;
1535 : /* Jump to a subprocess 'call' initial state */
1536 : goto ldv_call_14;
1537 1 : break;
1538 : }
1539 3 : case 6: {
1540 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
1541 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_14_device_device, ldv_14_device_struct_device_driver_ptr);", "comment": "callback"} */
1542 2 : ldv_rtc_class_scenario_callback_14_15(ldv_14_callback_match, ldv_14_device_device, ldv_14_device_struct_device_driver_ptr);
1543 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1544 :
1545 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1546 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1547 :
1548 : /* Jump to a subprocess 'call' initial state */
1549 1 : goto ldv_call_14;
1550 : /* Jump to a subprocess 'call' initial state */
1551 : goto ldv_call_14;
1552 : /* Jump to a subprocess 'call' initial state */
1553 : goto ldv_call_14;
1554 : /* Jump to a subprocess 'call' initial state */
1555 : goto ldv_call_14;
1556 : /* Jump to a subprocess 'call' initial state */
1557 : goto ldv_call_14;
1558 : /* Jump to a subprocess 'call' initial state */
1559 : goto ldv_call_14;
1560 1 : break;
1561 : }
1562 3 : case 7: {
1563 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
1564 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_14_device_device);", "comment": "callback"} */
1565 2 : ldv_rtc_class_scenario_callback_14_4(ldv_14_callback_func_1_ptr, ldv_14_device_device);
1566 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1567 :
1568 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1569 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1570 :
1571 : /* Jump to a subprocess 'call' initial state */
1572 1 : goto ldv_call_14;
1573 : /* Jump to a subprocess 'call' initial state */
1574 : goto ldv_call_14;
1575 : /* Jump to a subprocess 'call' initial state */
1576 : goto ldv_call_14;
1577 : /* Jump to a subprocess 'call' initial state */
1578 : goto ldv_call_14;
1579 : /* Jump to a subprocess 'call' initial state */
1580 : goto ldv_call_14;
1581 : /* Jump to a subprocess 'call' initial state */
1582 : goto ldv_call_14;
1583 : /* Jump to a subprocess 'call' initial state */
1584 : goto ldv_call_14;
1585 1 : break;
1586 : }
1587 3 : case 8: {
1588 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
1589 3 : if (ldv_14_rtc_class_ops_rtc_class_ops->release) {
1590 : /* LDV {"type": "CALLBACK", "call": "(ldv_14_rtc_class_ops_rtc_class_ops->release)(ldv_14_device_device);", "comment": "release"} */
1591 2 : ldv_rtc_class_scenario_release_14_2(ldv_14_rtc_class_ops_rtc_class_ops->release, ldv_14_device_device);
1592 : }
1593 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
1594 :
1595 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1596 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1597 :
1598 : /* Jump to a subprocess 'main' initial state */
1599 2 : goto ldv_main_14;
1600 1 : break;
1601 : }
1602 2 : default: ldv_stop();
1603 1 : }
1604 0 : /* End of the subprocess 'call' */
1605 0 : return;
1606 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_14"} */
1607 : }
1608 :
1609 : /* AUX_FUNC ldv_rtc_class_scenario_15 */
1610 : void ldv_rtc_class_scenario_15(void *arg0) {
1611 : /* LDV {"thread": 15, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_15"} */
1612 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1613 1 : int (*ldv_15_callback_func_1_ptr)(struct device *);
1614 1 : int (*ldv_15_callback_match)(struct device *, struct device_driver *);
1615 1 : int (*ldv_15_callback_remove)(struct device *);
1616 1 : int (*ldv_15_callback_resume)(struct device *);
1617 1 : ssize_t (*ldv_15_callback_show)(struct device *, struct device_attribute *, char *);
1618 1 : int (*ldv_15_callback_suspend)(struct device *, pm_message_t );
1619 1 : int (*ldv_15_callback_uevent)(struct device *, struct kobj_uevent_env *);
1620 1 : struct device *ldv_15_device_device;
1621 1 : struct device_attribute *ldv_15_device_struct_device_attribute;
1622 1 : struct device_driver *ldv_15_device_struct_device_driver_ptr;
1623 1 : struct kobj_uevent_env *ldv_15_device_struct_kobj_uevent_env_ptr;
1624 1 : struct pm_message ldv_15_device_struct_pm_message;
1625 1 : char *ldv_15_ldv_param_18_2_default;
1626 1 : int ldv_15_ret_default;
1627 1 : struct rtc_class_ops *ldv_15_rtc_class_ops_rtc_class_ops;
1628 1 : struct rtc_device *ldv_15_rtc_device_rtc_device;
1629 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1630 1 : /* Initialize automaton variables */
1631 2 : ldv_15_ret_default = 1;
1632 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
1633 3 : ldv_free(arg0);
1634 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
1635 1 :
1636 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1637 4 : ldv_15_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
1638 3 : ldv_15_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
1639 3 : ldv_15_device_device = ldv_xmalloc_unknown_size(0);
1640 3 : ldv_15_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
1641 3 : ldv_15_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
1642 3 : ldv_15_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
1643 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
1644 :
1645 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1646 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1647 :
1648 : /* Jump to a subprocess 'main' initial state */
1649 1 : goto ldv_main_15;
1650 : /* End of the process */
1651 : return;
1652 1 :
1653 : /* Sbprocess main */
1654 : ldv_main_15:
1655 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1656 :
1657 4 : if (ldv_undef_int()) {
1658 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
1659 : /* Callback pre-call */
1660 1 : ldv_pre_probe();
1661 3 : if (ldv_15_rtc_class_ops_rtc_class_ops->open) {
1662 : /* LDV {"type": "CALLBACK", "call": "ldv_15_ret_default = (ldv_15_rtc_class_ops_rtc_class_ops->open)(ldv_15_device_device);", "comment": "probe"} */
1663 2 : ldv_15_ret_default = ldv_rtc_class_scenario_probe_15_11(ldv_15_rtc_class_ops_rtc_class_ops->open, ldv_15_device_device);
1664 : }
1665 : /* Callback post-call */
1666 4 : ldv_15_ret_default = ldv_post_probe(ldv_15_ret_default);
1667 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
1668 :
1669 4 : if (ldv_undef_int()) {
1670 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
1671 2 : ldv_assume(ldv_15_ret_default == 0);
1672 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
1673 :
1674 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1675 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1676 :
1677 : /* Jump to a subprocess 'call' initial state */
1678 1 : goto ldv_call_15;
1679 : }
1680 : else {
1681 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
1682 2 : ldv_assume(ldv_15_ret_default != 0);
1683 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
1684 :
1685 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1686 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1687 :
1688 : /* Jump to a subprocess 'main' initial state */
1689 1 : goto ldv_main_15;
1690 : }
1691 : }
1692 : else {
1693 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1694 2 : ldv_free(ldv_15_rtc_device_rtc_device);
1695 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
1696 :
1697 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
1698 : /* Skip a non-replicative signal receiving */
1699 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
1700 :
1701 : /* Exit function at a terminal state */
1702 1 : return;
1703 : }
1704 : /* End of the subprocess 'main' */
1705 : return;
1706 1 :
1707 : /* Sbprocess call */
1708 : ldv_call_15:
1709 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1710 :
1711 2 : switch (ldv_undef_int()) {
1712 3 : case 1: {
1713 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
1714 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_15_device_device, ldv_15_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
1715 2 : ldv_rtc_class_scenario_callback_15_22(ldv_15_callback_uevent, ldv_15_device_device, ldv_15_device_struct_kobj_uevent_env_ptr);
1716 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1717 :
1718 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1719 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1720 :
1721 : /* Jump to a subprocess 'call' initial state */
1722 1 : goto ldv_call_15;
1723 1 : break;
1724 : }
1725 3 : case 2: {
1726 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
1727 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_15_device_device, ldv_15_device_struct_pm_message);", "comment": "callback"} */
1728 2 : ldv_rtc_class_scenario_callback_15_21(ldv_15_callback_suspend, ldv_15_device_device, ldv_15_device_struct_pm_message);
1729 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1730 :
1731 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1732 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1733 :
1734 : /* Jump to a subprocess 'call' initial state */
1735 1 : goto ldv_call_15;
1736 : /* Jump to a subprocess 'call' initial state */
1737 : goto ldv_call_15;
1738 1 : break;
1739 : }
1740 3 : case 3: {
1741 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
1742 3 : ldv_15_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
1743 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
1744 :
1745 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
1746 : /* LDV {"type": "CALLBACK", "call": "((& vendor_show))(ldv_15_device_device, ldv_15_device_struct_device_attribute, ldv_15_ldv_param_18_2_default);", "comment": "callback"} */
1747 2 : ldv_rtc_class_scenario_callback_15_18(ldv_15_callback_show, ldv_15_device_device, ldv_15_device_struct_device_attribute, ldv_15_ldv_param_18_2_default);
1748 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1749 :
1750 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
1751 2 : ldv_free(ldv_15_ldv_param_18_2_default);
1752 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
1753 :
1754 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1755 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1756 :
1757 : /* Jump to a subprocess 'call' initial state */
1758 1 : goto ldv_call_15;
1759 : /* Jump to a subprocess 'call' initial state */
1760 : goto ldv_call_15;
1761 : /* Jump to a subprocess 'call' initial state */
1762 : goto ldv_call_15;
1763 1 : break;
1764 : }
1765 3 : case 4: {
1766 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
1767 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_15_device_device);", "comment": "callback"} */
1768 2 : ldv_rtc_class_scenario_callback_15_17(ldv_15_callback_resume, ldv_15_device_device);
1769 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1770 :
1771 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1772 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1773 :
1774 : /* Jump to a subprocess 'call' initial state */
1775 1 : goto ldv_call_15;
1776 : /* Jump to a subprocess 'call' initial state */
1777 : goto ldv_call_15;
1778 : /* Jump to a subprocess 'call' initial state */
1779 : goto ldv_call_15;
1780 : /* Jump to a subprocess 'call' initial state */
1781 : goto ldv_call_15;
1782 1 : break;
1783 : }
1784 3 : case 5: {
1785 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
1786 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_15_device_device);", "comment": "callback"} */
1787 2 : ldv_rtc_class_scenario_callback_15_16(ldv_15_callback_remove, ldv_15_device_device);
1788 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1789 :
1790 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1791 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1792 :
1793 : /* Jump to a subprocess 'call' initial state */
1794 1 : goto ldv_call_15;
1795 : /* Jump to a subprocess 'call' initial state */
1796 : goto ldv_call_15;
1797 : /* Jump to a subprocess 'call' initial state */
1798 : goto ldv_call_15;
1799 : /* Jump to a subprocess 'call' initial state */
1800 : goto ldv_call_15;
1801 : /* Jump to a subprocess 'call' initial state */
1802 : goto ldv_call_15;
1803 1 : break;
1804 : }
1805 3 : case 6: {
1806 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
1807 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_15_device_device, ldv_15_device_struct_device_driver_ptr);", "comment": "callback"} */
1808 2 : ldv_rtc_class_scenario_callback_15_15(ldv_15_callback_match, ldv_15_device_device, ldv_15_device_struct_device_driver_ptr);
1809 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1810 :
1811 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1812 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1813 :
1814 : /* Jump to a subprocess 'call' initial state */
1815 1 : goto ldv_call_15;
1816 : /* Jump to a subprocess 'call' initial state */
1817 : goto ldv_call_15;
1818 : /* Jump to a subprocess 'call' initial state */
1819 : goto ldv_call_15;
1820 : /* Jump to a subprocess 'call' initial state */
1821 : goto ldv_call_15;
1822 : /* Jump to a subprocess 'call' initial state */
1823 : goto ldv_call_15;
1824 : /* Jump to a subprocess 'call' initial state */
1825 : goto ldv_call_15;
1826 1 : break;
1827 : }
1828 3 : case 7: {
1829 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
1830 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_15_device_device);", "comment": "callback"} */
1831 2 : ldv_rtc_class_scenario_callback_15_4(ldv_15_callback_func_1_ptr, ldv_15_device_device);
1832 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1833 :
1834 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1835 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1836 :
1837 : /* Jump to a subprocess 'call' initial state */
1838 1 : goto ldv_call_15;
1839 : /* Jump to a subprocess 'call' initial state */
1840 : goto ldv_call_15;
1841 : /* Jump to a subprocess 'call' initial state */
1842 : goto ldv_call_15;
1843 : /* Jump to a subprocess 'call' initial state */
1844 : goto ldv_call_15;
1845 : /* Jump to a subprocess 'call' initial state */
1846 : goto ldv_call_15;
1847 : /* Jump to a subprocess 'call' initial state */
1848 : goto ldv_call_15;
1849 : /* Jump to a subprocess 'call' initial state */
1850 : goto ldv_call_15;
1851 1 : break;
1852 : }
1853 3 : case 8: {
1854 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
1855 3 : if (ldv_15_rtc_class_ops_rtc_class_ops->release) {
1856 : /* LDV {"type": "CALLBACK", "call": "(ldv_15_rtc_class_ops_rtc_class_ops->release)(ldv_15_device_device);", "comment": "release"} */
1857 2 : ldv_rtc_class_scenario_release_15_2(ldv_15_rtc_class_ops_rtc_class_ops->release, ldv_15_device_device);
1858 : }
1859 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
1860 :
1861 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1862 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1863 :
1864 : /* Jump to a subprocess 'main' initial state */
1865 2 : goto ldv_main_15;
1866 1 : break;
1867 : }
1868 2 : default: ldv_stop();
1869 1 : }
1870 0 : /* End of the subprocess 'call' */
1871 0 : return;
1872 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_15"} */
1873 : }
1874 :
1875 : /* AUX_FUNC ldv_rtc_class_scenario_16 */
1876 : void ldv_rtc_class_scenario_16(void *arg0) {
1877 : /* LDV {"thread": 16, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_16"} */
1878 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
1879 1 : int (*ldv_16_callback_func_1_ptr)(struct device *);
1880 1 : int (*ldv_16_callback_match)(struct device *, struct device_driver *);
1881 1 : int (*ldv_16_callback_remove)(struct device *);
1882 1 : int (*ldv_16_callback_resume)(struct device *);
1883 1 : ssize_t (*ldv_16_callback_show)(struct device *, struct device_attribute *, char *);
1884 1 : int (*ldv_16_callback_suspend)(struct device *, pm_message_t );
1885 1 : int (*ldv_16_callback_uevent)(struct device *, struct kobj_uevent_env *);
1886 1 : struct device *ldv_16_device_device;
1887 1 : struct device_attribute *ldv_16_device_struct_device_attribute;
1888 1 : struct device_driver *ldv_16_device_struct_device_driver_ptr;
1889 1 : struct kobj_uevent_env *ldv_16_device_struct_kobj_uevent_env_ptr;
1890 1 : struct pm_message ldv_16_device_struct_pm_message;
1891 1 : char *ldv_16_ldv_param_18_2_default;
1892 1 : int ldv_16_ret_default;
1893 1 : struct rtc_class_ops *ldv_16_rtc_class_ops_rtc_class_ops;
1894 1 : struct rtc_device *ldv_16_rtc_device_rtc_device;
1895 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
1896 1 : /* Initialize automaton variables */
1897 2 : ldv_16_ret_default = 1;
1898 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
1899 3 : ldv_free(arg0);
1900 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
1901 1 :
1902 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
1903 4 : ldv_16_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
1904 3 : ldv_16_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
1905 3 : ldv_16_device_device = ldv_xmalloc_unknown_size(0);
1906 3 : ldv_16_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
1907 3 : ldv_16_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
1908 3 : ldv_16_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
1909 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
1910 :
1911 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1912 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1913 :
1914 : /* Jump to a subprocess 'main' initial state */
1915 1 : goto ldv_main_16;
1916 : /* End of the process */
1917 : return;
1918 1 :
1919 : /* Sbprocess main */
1920 : ldv_main_16:
1921 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1922 :
1923 4 : if (ldv_undef_int()) {
1924 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
1925 : /* Callback pre-call */
1926 1 : ldv_pre_probe();
1927 3 : if (ldv_16_rtc_class_ops_rtc_class_ops->open) {
1928 : /* LDV {"type": "CALLBACK", "call": "ldv_16_ret_default = (ldv_16_rtc_class_ops_rtc_class_ops->open)(ldv_16_device_device);", "comment": "probe"} */
1929 2 : ldv_16_ret_default = ldv_rtc_class_scenario_probe_16_11(ldv_16_rtc_class_ops_rtc_class_ops->open, ldv_16_device_device);
1930 : }
1931 : /* Callback post-call */
1932 4 : ldv_16_ret_default = ldv_post_probe(ldv_16_ret_default);
1933 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
1934 :
1935 4 : if (ldv_undef_int()) {
1936 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
1937 2 : ldv_assume(ldv_16_ret_default == 0);
1938 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
1939 :
1940 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1941 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1942 :
1943 : /* Jump to a subprocess 'call' initial state */
1944 1 : goto ldv_call_16;
1945 : }
1946 : else {
1947 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
1948 2 : ldv_assume(ldv_16_ret_default != 0);
1949 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
1950 :
1951 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
1952 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
1953 :
1954 : /* Jump to a subprocess 'main' initial state */
1955 1 : goto ldv_main_16;
1956 : }
1957 : }
1958 : else {
1959 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
1960 2 : ldv_free(ldv_16_rtc_device_rtc_device);
1961 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
1962 :
1963 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
1964 : /* Skip a non-replicative signal receiving */
1965 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
1966 :
1967 : /* Exit function at a terminal state */
1968 1 : return;
1969 : }
1970 : /* End of the subprocess 'main' */
1971 : return;
1972 1 :
1973 : /* Sbprocess call */
1974 : ldv_call_16:
1975 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
1976 :
1977 2 : switch (ldv_undef_int()) {
1978 3 : case 1: {
1979 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
1980 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_16_device_device, ldv_16_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
1981 2 : ldv_rtc_class_scenario_callback_16_22(ldv_16_callback_uevent, ldv_16_device_device, ldv_16_device_struct_kobj_uevent_env_ptr);
1982 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1983 :
1984 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1985 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1986 :
1987 : /* Jump to a subprocess 'call' initial state */
1988 1 : goto ldv_call_16;
1989 1 : break;
1990 : }
1991 3 : case 2: {
1992 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
1993 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_16_device_device, ldv_16_device_struct_pm_message);", "comment": "callback"} */
1994 2 : ldv_rtc_class_scenario_callback_16_21(ldv_16_callback_suspend, ldv_16_device_device, ldv_16_device_struct_pm_message);
1995 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
1996 :
1997 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
1998 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
1999 :
2000 : /* Jump to a subprocess 'call' initial state */
2001 1 : goto ldv_call_16;
2002 : /* Jump to a subprocess 'call' initial state */
2003 : goto ldv_call_16;
2004 1 : break;
2005 : }
2006 3 : case 3: {
2007 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
2008 3 : ldv_16_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
2009 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
2010 :
2011 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
2012 : /* LDV {"type": "CALLBACK", "call": "((& device_show))(ldv_16_device_device, ldv_16_device_struct_device_attribute, ldv_16_ldv_param_18_2_default);", "comment": "callback"} */
2013 2 : ldv_rtc_class_scenario_callback_16_18(ldv_16_callback_show, ldv_16_device_device, ldv_16_device_struct_device_attribute, ldv_16_ldv_param_18_2_default);
2014 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2015 :
2016 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
2017 2 : ldv_free(ldv_16_ldv_param_18_2_default);
2018 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
2019 :
2020 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2021 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2022 :
2023 : /* Jump to a subprocess 'call' initial state */
2024 1 : goto ldv_call_16;
2025 : /* Jump to a subprocess 'call' initial state */
2026 : goto ldv_call_16;
2027 : /* Jump to a subprocess 'call' initial state */
2028 : goto ldv_call_16;
2029 1 : break;
2030 : }
2031 3 : case 4: {
2032 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
2033 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_16_device_device);", "comment": "callback"} */
2034 2 : ldv_rtc_class_scenario_callback_16_17(ldv_16_callback_resume, ldv_16_device_device);
2035 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2036 :
2037 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2038 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2039 :
2040 : /* Jump to a subprocess 'call' initial state */
2041 1 : goto ldv_call_16;
2042 : /* Jump to a subprocess 'call' initial state */
2043 : goto ldv_call_16;
2044 : /* Jump to a subprocess 'call' initial state */
2045 : goto ldv_call_16;
2046 : /* Jump to a subprocess 'call' initial state */
2047 : goto ldv_call_16;
2048 1 : break;
2049 : }
2050 3 : case 5: {
2051 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
2052 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_remove))(ldv_16_device_device);", "comment": "callback"} */
2053 2 : ldv_rtc_class_scenario_callback_16_16(ldv_16_callback_remove, ldv_16_device_device);
2054 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2055 :
2056 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2057 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2058 :
2059 : /* Jump to a subprocess 'call' initial state */
2060 1 : goto ldv_call_16;
2061 : /* Jump to a subprocess 'call' initial state */
2062 : goto ldv_call_16;
2063 : /* Jump to a subprocess 'call' initial state */
2064 : goto ldv_call_16;
2065 : /* Jump to a subprocess 'call' initial state */
2066 : goto ldv_call_16;
2067 : /* Jump to a subprocess 'call' initial state */
2068 : goto ldv_call_16;
2069 1 : break;
2070 : }
2071 3 : case 6: {
2072 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
2073 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_match))(ldv_16_device_device, ldv_16_device_struct_device_driver_ptr);", "comment": "callback"} */
2074 2 : ldv_rtc_class_scenario_callback_16_15(ldv_16_callback_match, ldv_16_device_device, ldv_16_device_struct_device_driver_ptr);
2075 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2076 :
2077 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2078 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2079 :
2080 : /* Jump to a subprocess 'call' initial state */
2081 1 : goto ldv_call_16;
2082 : /* Jump to a subprocess 'call' initial state */
2083 : goto ldv_call_16;
2084 : /* Jump to a subprocess 'call' initial state */
2085 : goto ldv_call_16;
2086 : /* Jump to a subprocess 'call' initial state */
2087 : goto ldv_call_16;
2088 : /* Jump to a subprocess 'call' initial state */
2089 : goto ldv_call_16;
2090 : /* Jump to a subprocess 'call' initial state */
2091 : goto ldv_call_16;
2092 1 : break;
2093 : }
2094 3 : case 7: {
2095 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
2096 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_probe))(ldv_16_device_device);", "comment": "callback"} */
2097 2 : ldv_rtc_class_scenario_callback_16_4(ldv_16_callback_func_1_ptr, ldv_16_device_device);
2098 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2099 :
2100 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2101 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2102 :
2103 : /* Jump to a subprocess 'call' initial state */
2104 1 : goto ldv_call_16;
2105 : /* Jump to a subprocess 'call' initial state */
2106 : goto ldv_call_16;
2107 : /* Jump to a subprocess 'call' initial state */
2108 : goto ldv_call_16;
2109 : /* Jump to a subprocess 'call' initial state */
2110 : goto ldv_call_16;
2111 : /* Jump to a subprocess 'call' initial state */
2112 : goto ldv_call_16;
2113 : /* Jump to a subprocess 'call' initial state */
2114 : goto ldv_call_16;
2115 : /* Jump to a subprocess 'call' initial state */
2116 : goto ldv_call_16;
2117 1 : break;
2118 : }
2119 3 : case 8: {
2120 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
2121 3 : if (ldv_16_rtc_class_ops_rtc_class_ops->release) {
2122 : /* LDV {"type": "CALLBACK", "call": "(ldv_16_rtc_class_ops_rtc_class_ops->release)(ldv_16_device_device);", "comment": "release"} */
2123 2 : ldv_rtc_class_scenario_release_16_2(ldv_16_rtc_class_ops_rtc_class_ops->release, ldv_16_device_device);
2124 : }
2125 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
2126 :
2127 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2128 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2129 :
2130 : /* Jump to a subprocess 'main' initial state */
2131 2 : goto ldv_main_16;
2132 1 : break;
2133 : }
2134 2 : default: ldv_stop();
2135 1 : }
2136 0 : /* End of the subprocess 'call' */
2137 0 : return;
2138 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_16"} */
2139 : }
2140 :
2141 : /* AUX_FUNC ldv_rtc_class_scenario_17 */
2142 : void ldv_rtc_class_scenario_17(void *arg0) {
2143 : /* LDV {"thread": 17, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_17"} */
2144 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
2145 1 : int (*ldv_17_callback_func_1_ptr)(struct device *);
2146 1 : int (*ldv_17_callback_match)(struct device *, struct device_driver *);
2147 1 : int (*ldv_17_callback_remove)(struct device *);
2148 1 : int (*ldv_17_callback_resume)(struct device *);
2149 1 : ssize_t (*ldv_17_callback_show)(struct device *, struct device_attribute *, char *);
2150 1 : int (*ldv_17_callback_suspend)(struct device *, pm_message_t );
2151 1 : int (*ldv_17_callback_uevent)(struct device *, struct kobj_uevent_env *);
2152 1 : struct device *ldv_17_device_device;
2153 1 : struct device_attribute *ldv_17_device_struct_device_attribute;
2154 1 : struct device_driver *ldv_17_device_struct_device_driver_ptr;
2155 1 : struct kobj_uevent_env *ldv_17_device_struct_kobj_uevent_env_ptr;
2156 1 : struct pm_message ldv_17_device_struct_pm_message;
2157 1 : char *ldv_17_ldv_param_18_2_default;
2158 1 : int ldv_17_ret_default;
2159 1 : struct rtc_class_ops *ldv_17_rtc_class_ops_rtc_class_ops;
2160 1 : struct rtc_device *ldv_17_rtc_device_rtc_device;
2161 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
2162 1 : /* Initialize automaton variables */
2163 2 : ldv_17_ret_default = 1;
2164 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
2165 3 : ldv_free(arg0);
2166 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
2167 1 :
2168 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
2169 4 : ldv_17_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
2170 3 : ldv_17_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
2171 3 : ldv_17_device_device = ldv_xmalloc_unknown_size(0);
2172 3 : ldv_17_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
2173 3 : ldv_17_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
2174 3 : ldv_17_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
2175 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
2176 :
2177 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2178 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2179 :
2180 : /* Jump to a subprocess 'main' initial state */
2181 1 : goto ldv_main_17;
2182 : /* End of the process */
2183 : return;
2184 1 :
2185 : /* Sbprocess main */
2186 : ldv_main_17:
2187 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2188 :
2189 4 : if (ldv_undef_int()) {
2190 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
2191 : /* Callback pre-call */
2192 1 : ldv_pre_probe();
2193 3 : if (ldv_17_rtc_class_ops_rtc_class_ops->open) {
2194 : /* LDV {"type": "CALLBACK", "call": "ldv_17_ret_default = (ldv_17_rtc_class_ops_rtc_class_ops->open)(ldv_17_device_device);", "comment": "probe"} */
2195 2 : ldv_17_ret_default = ldv_rtc_class_scenario_probe_17_11(ldv_17_rtc_class_ops_rtc_class_ops->open, ldv_17_device_device);
2196 : }
2197 : /* Callback post-call */
2198 4 : ldv_17_ret_default = ldv_post_probe(ldv_17_ret_default);
2199 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
2200 :
2201 4 : if (ldv_undef_int()) {
2202 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
2203 2 : ldv_assume(ldv_17_ret_default == 0);
2204 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
2205 :
2206 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2207 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2208 :
2209 : /* Jump to a subprocess 'call' initial state */
2210 1 : goto ldv_call_17;
2211 : }
2212 : else {
2213 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
2214 2 : ldv_assume(ldv_17_ret_default != 0);
2215 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
2216 :
2217 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2218 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2219 :
2220 : /* Jump to a subprocess 'main' initial state */
2221 1 : goto ldv_main_17;
2222 : }
2223 : }
2224 : else {
2225 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
2226 2 : ldv_free(ldv_17_rtc_device_rtc_device);
2227 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
2228 :
2229 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
2230 : /* Skip a non-replicative signal receiving */
2231 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
2232 :
2233 : /* Exit function at a terminal state */
2234 1 : return;
2235 : }
2236 : /* End of the subprocess 'main' */
2237 : return;
2238 1 :
2239 : /* Sbprocess call */
2240 : ldv_call_17:
2241 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2242 :
2243 2 : switch (ldv_undef_int()) {
2244 3 : case 1: {
2245 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
2246 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_17_device_device, ldv_17_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
2247 2 : ldv_rtc_class_scenario_callback_17_22(ldv_17_callback_uevent, ldv_17_device_device, ldv_17_device_struct_kobj_uevent_env_ptr);
2248 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2249 :
2250 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2251 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2252 :
2253 : /* Jump to a subprocess 'call' initial state */
2254 1 : goto ldv_call_17;
2255 1 : break;
2256 : }
2257 3 : case 2: {
2258 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
2259 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_17_device_device, ldv_17_device_struct_pm_message);", "comment": "callback"} */
2260 2 : ldv_rtc_class_scenario_callback_17_21(ldv_17_callback_suspend, ldv_17_device_device, ldv_17_device_struct_pm_message);
2261 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2262 :
2263 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2264 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2265 :
2266 : /* Jump to a subprocess 'call' initial state */
2267 1 : goto ldv_call_17;
2268 : /* Jump to a subprocess 'call' initial state */
2269 : goto ldv_call_17;
2270 1 : break;
2271 : }
2272 3 : case 3: {
2273 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
2274 3 : ldv_17_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
2275 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
2276 :
2277 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
2278 : /* LDV {"type": "CALLBACK", "call": "((& mmc_cid_show))(ldv_17_device_device, ldv_17_device_struct_device_attribute, ldv_17_ldv_param_18_2_default);", "comment": "callback"} */
2279 2 : ldv_rtc_class_scenario_callback_17_18(ldv_17_callback_show, ldv_17_device_device, ldv_17_device_struct_device_attribute, ldv_17_ldv_param_18_2_default);
2280 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2281 :
2282 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
2283 2 : ldv_free(ldv_17_ldv_param_18_2_default);
2284 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
2285 :
2286 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2287 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2288 :
2289 : /* Jump to a subprocess 'call' initial state */
2290 1 : goto ldv_call_17;
2291 : /* Jump to a subprocess 'call' initial state */
2292 : goto ldv_call_17;
2293 : /* Jump to a subprocess 'call' initial state */
2294 : goto ldv_call_17;
2295 1 : break;
2296 : }
2297 3 : case 4: {
2298 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
2299 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_17_device_device);", "comment": "callback"} */
2300 2 : ldv_rtc_class_scenario_callback_17_17(ldv_17_callback_resume, ldv_17_device_device);
2301 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2302 :
2303 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2304 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2305 :
2306 : /* Jump to a subprocess 'call' initial state */
2307 1 : goto ldv_call_17;
2308 : /* Jump to a subprocess 'call' initial state */
2309 : goto ldv_call_17;
2310 : /* Jump to a subprocess 'call' initial state */
2311 : goto ldv_call_17;
2312 : /* Jump to a subprocess 'call' initial state */
2313 : goto ldv_call_17;
2314 1 : break;
2315 : }
2316 3 : case 5: {
2317 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
2318 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_remove))(ldv_17_device_device);", "comment": "callback"} */
2319 2 : ldv_rtc_class_scenario_callback_17_16(ldv_17_callback_remove, ldv_17_device_device);
2320 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2321 :
2322 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2323 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2324 :
2325 : /* Jump to a subprocess 'call' initial state */
2326 1 : goto ldv_call_17;
2327 : /* Jump to a subprocess 'call' initial state */
2328 : goto ldv_call_17;
2329 : /* Jump to a subprocess 'call' initial state */
2330 : goto ldv_call_17;
2331 : /* Jump to a subprocess 'call' initial state */
2332 : goto ldv_call_17;
2333 : /* Jump to a subprocess 'call' initial state */
2334 : goto ldv_call_17;
2335 1 : break;
2336 : }
2337 3 : case 6: {
2338 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
2339 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_match))(ldv_17_device_device, ldv_17_device_struct_device_driver_ptr);", "comment": "callback"} */
2340 2 : ldv_rtc_class_scenario_callback_17_15(ldv_17_callback_match, ldv_17_device_device, ldv_17_device_struct_device_driver_ptr);
2341 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2342 :
2343 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2344 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2345 :
2346 : /* Jump to a subprocess 'call' initial state */
2347 1 : goto ldv_call_17;
2348 : /* Jump to a subprocess 'call' initial state */
2349 : goto ldv_call_17;
2350 : /* Jump to a subprocess 'call' initial state */
2351 : goto ldv_call_17;
2352 : /* Jump to a subprocess 'call' initial state */
2353 : goto ldv_call_17;
2354 : /* Jump to a subprocess 'call' initial state */
2355 : goto ldv_call_17;
2356 : /* Jump to a subprocess 'call' initial state */
2357 : goto ldv_call_17;
2358 1 : break;
2359 : }
2360 3 : case 7: {
2361 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
2362 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_probe))(ldv_17_device_device);", "comment": "callback"} */
2363 2 : ldv_rtc_class_scenario_callback_17_4(ldv_17_callback_func_1_ptr, ldv_17_device_device);
2364 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2365 :
2366 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2367 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2368 :
2369 : /* Jump to a subprocess 'call' initial state */
2370 1 : goto ldv_call_17;
2371 : /* Jump to a subprocess 'call' initial state */
2372 : goto ldv_call_17;
2373 : /* Jump to a subprocess 'call' initial state */
2374 : goto ldv_call_17;
2375 : /* Jump to a subprocess 'call' initial state */
2376 : goto ldv_call_17;
2377 : /* Jump to a subprocess 'call' initial state */
2378 : goto ldv_call_17;
2379 : /* Jump to a subprocess 'call' initial state */
2380 : goto ldv_call_17;
2381 : /* Jump to a subprocess 'call' initial state */
2382 : goto ldv_call_17;
2383 1 : break;
2384 : }
2385 3 : case 8: {
2386 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
2387 3 : if (ldv_17_rtc_class_ops_rtc_class_ops->release) {
2388 : /* LDV {"type": "CALLBACK", "call": "(ldv_17_rtc_class_ops_rtc_class_ops->release)(ldv_17_device_device);", "comment": "release"} */
2389 2 : ldv_rtc_class_scenario_release_17_2(ldv_17_rtc_class_ops_rtc_class_ops->release, ldv_17_device_device);
2390 : }
2391 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
2392 :
2393 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2394 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2395 :
2396 : /* Jump to a subprocess 'main' initial state */
2397 2 : goto ldv_main_17;
2398 1 : break;
2399 : }
2400 2 : default: ldv_stop();
2401 1 : }
2402 0 : /* End of the subprocess 'call' */
2403 0 : return;
2404 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_17"} */
2405 : }
2406 :
2407 : /* AUX_FUNC ldv_rtc_class_scenario_18 */
2408 : void ldv_rtc_class_scenario_18(void *arg0) {
2409 : /* LDV {"thread": 18, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_18"} */
2410 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
2411 1 : int (*ldv_18_callback_func_1_ptr)(struct device *);
2412 1 : int (*ldv_18_callback_match)(struct device *, struct device_driver *);
2413 1 : int (*ldv_18_callback_remove)(struct device *);
2414 1 : int (*ldv_18_callback_resume)(struct device *);
2415 1 : ssize_t (*ldv_18_callback_show)(struct device *, struct device_attribute *, char *);
2416 1 : int (*ldv_18_callback_suspend)(struct device *, pm_message_t );
2417 1 : int (*ldv_18_callback_uevent)(struct device *, struct kobj_uevent_env *);
2418 1 : struct device *ldv_18_device_device;
2419 1 : struct device_attribute *ldv_18_device_struct_device_attribute;
2420 1 : struct device_driver *ldv_18_device_struct_device_driver_ptr;
2421 1 : struct kobj_uevent_env *ldv_18_device_struct_kobj_uevent_env_ptr;
2422 1 : struct pm_message ldv_18_device_struct_pm_message;
2423 1 : char *ldv_18_ldv_param_18_2_default;
2424 1 : int ldv_18_ret_default;
2425 1 : struct rtc_class_ops *ldv_18_rtc_class_ops_rtc_class_ops;
2426 1 : struct rtc_device *ldv_18_rtc_device_rtc_device;
2427 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
2428 1 : /* Initialize automaton variables */
2429 2 : ldv_18_ret_default = 1;
2430 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
2431 3 : ldv_free(arg0);
2432 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
2433 1 :
2434 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
2435 4 : ldv_18_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
2436 3 : ldv_18_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
2437 3 : ldv_18_device_device = ldv_xmalloc_unknown_size(0);
2438 3 : ldv_18_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
2439 3 : ldv_18_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
2440 3 : ldv_18_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
2441 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
2442 :
2443 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2444 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2445 :
2446 : /* Jump to a subprocess 'main' initial state */
2447 1 : goto ldv_main_18;
2448 : /* End of the process */
2449 : return;
2450 1 :
2451 : /* Sbprocess main */
2452 : ldv_main_18:
2453 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2454 :
2455 4 : if (ldv_undef_int()) {
2456 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
2457 : /* Callback pre-call */
2458 1 : ldv_pre_probe();
2459 3 : if (ldv_18_rtc_class_ops_rtc_class_ops->open) {
2460 : /* LDV {"type": "CALLBACK", "call": "ldv_18_ret_default = (ldv_18_rtc_class_ops_rtc_class_ops->open)(ldv_18_device_device);", "comment": "probe"} */
2461 2 : ldv_18_ret_default = ldv_rtc_class_scenario_probe_18_11(ldv_18_rtc_class_ops_rtc_class_ops->open, ldv_18_device_device);
2462 : }
2463 : /* Callback post-call */
2464 4 : ldv_18_ret_default = ldv_post_probe(ldv_18_ret_default);
2465 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
2466 :
2467 4 : if (ldv_undef_int()) {
2468 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
2469 2 : ldv_assume(ldv_18_ret_default == 0);
2470 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
2471 :
2472 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2473 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2474 :
2475 : /* Jump to a subprocess 'call' initial state */
2476 1 : goto ldv_call_18;
2477 : }
2478 : else {
2479 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
2480 2 : ldv_assume(ldv_18_ret_default != 0);
2481 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
2482 :
2483 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2484 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2485 :
2486 : /* Jump to a subprocess 'main' initial state */
2487 1 : goto ldv_main_18;
2488 : }
2489 : }
2490 : else {
2491 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
2492 2 : ldv_free(ldv_18_rtc_device_rtc_device);
2493 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
2494 :
2495 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
2496 : /* Skip a non-replicative signal receiving */
2497 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
2498 :
2499 : /* Exit function at a terminal state */
2500 1 : return;
2501 : }
2502 : /* End of the subprocess 'main' */
2503 : return;
2504 1 :
2505 : /* Sbprocess call */
2506 : ldv_call_18:
2507 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2508 :
2509 2 : switch (ldv_undef_int()) {
2510 3 : case 1: {
2511 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
2512 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_18_device_device, ldv_18_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
2513 2 : ldv_rtc_class_scenario_callback_18_22(ldv_18_callback_uevent, ldv_18_device_device, ldv_18_device_struct_kobj_uevent_env_ptr);
2514 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2515 :
2516 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2517 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2518 :
2519 : /* Jump to a subprocess 'call' initial state */
2520 1 : goto ldv_call_18;
2521 1 : break;
2522 : }
2523 3 : case 2: {
2524 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
2525 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_18_device_device, ldv_18_device_struct_pm_message);", "comment": "callback"} */
2526 2 : ldv_rtc_class_scenario_callback_18_21(ldv_18_callback_suspend, ldv_18_device_device, ldv_18_device_struct_pm_message);
2527 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2528 :
2529 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2530 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2531 :
2532 : /* Jump to a subprocess 'call' initial state */
2533 1 : goto ldv_call_18;
2534 : /* Jump to a subprocess 'call' initial state */
2535 : goto ldv_call_18;
2536 1 : break;
2537 : }
2538 3 : case 3: {
2539 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
2540 3 : ldv_18_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
2541 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
2542 :
2543 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
2544 : /* LDV {"type": "CALLBACK", "call": "((& mmc_type_show))(ldv_18_device_device, ldv_18_device_struct_device_attribute, ldv_18_ldv_param_18_2_default);", "comment": "callback"} */
2545 2 : ldv_rtc_class_scenario_callback_18_18(ldv_18_callback_show, ldv_18_device_device, ldv_18_device_struct_device_attribute, ldv_18_ldv_param_18_2_default);
2546 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2547 :
2548 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
2549 2 : ldv_free(ldv_18_ldv_param_18_2_default);
2550 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
2551 :
2552 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2553 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2554 :
2555 : /* Jump to a subprocess 'call' initial state */
2556 1 : goto ldv_call_18;
2557 : /* Jump to a subprocess 'call' initial state */
2558 : goto ldv_call_18;
2559 : /* Jump to a subprocess 'call' initial state */
2560 : goto ldv_call_18;
2561 1 : break;
2562 : }
2563 3 : case 4: {
2564 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
2565 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_18_device_device);", "comment": "callback"} */
2566 2 : ldv_rtc_class_scenario_callback_18_17(ldv_18_callback_resume, ldv_18_device_device);
2567 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2568 :
2569 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2570 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2571 :
2572 : /* Jump to a subprocess 'call' initial state */
2573 1 : goto ldv_call_18;
2574 : /* Jump to a subprocess 'call' initial state */
2575 : goto ldv_call_18;
2576 : /* Jump to a subprocess 'call' initial state */
2577 : goto ldv_call_18;
2578 : /* Jump to a subprocess 'call' initial state */
2579 : goto ldv_call_18;
2580 1 : break;
2581 : }
2582 3 : case 5: {
2583 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
2584 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_remove))(ldv_18_device_device);", "comment": "callback"} */
2585 2 : ldv_rtc_class_scenario_callback_18_16(ldv_18_callback_remove, ldv_18_device_device);
2586 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2587 :
2588 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2589 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2590 :
2591 : /* Jump to a subprocess 'call' initial state */
2592 1 : goto ldv_call_18;
2593 : /* Jump to a subprocess 'call' initial state */
2594 : goto ldv_call_18;
2595 : /* Jump to a subprocess 'call' initial state */
2596 : goto ldv_call_18;
2597 : /* Jump to a subprocess 'call' initial state */
2598 : goto ldv_call_18;
2599 : /* Jump to a subprocess 'call' initial state */
2600 : goto ldv_call_18;
2601 1 : break;
2602 : }
2603 3 : case 6: {
2604 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
2605 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_match))(ldv_18_device_device, ldv_18_device_struct_device_driver_ptr);", "comment": "callback"} */
2606 2 : ldv_rtc_class_scenario_callback_18_15(ldv_18_callback_match, ldv_18_device_device, ldv_18_device_struct_device_driver_ptr);
2607 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2608 :
2609 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2610 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2611 :
2612 : /* Jump to a subprocess 'call' initial state */
2613 1 : goto ldv_call_18;
2614 : /* Jump to a subprocess 'call' initial state */
2615 : goto ldv_call_18;
2616 : /* Jump to a subprocess 'call' initial state */
2617 : goto ldv_call_18;
2618 : /* Jump to a subprocess 'call' initial state */
2619 : goto ldv_call_18;
2620 : /* Jump to a subprocess 'call' initial state */
2621 : goto ldv_call_18;
2622 : /* Jump to a subprocess 'call' initial state */
2623 : goto ldv_call_18;
2624 1 : break;
2625 : }
2626 3 : case 7: {
2627 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
2628 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_probe))(ldv_18_device_device);", "comment": "callback"} */
2629 2 : ldv_rtc_class_scenario_callback_18_4(ldv_18_callback_func_1_ptr, ldv_18_device_device);
2630 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2631 :
2632 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2633 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2634 :
2635 : /* Jump to a subprocess 'call' initial state */
2636 1 : goto ldv_call_18;
2637 : /* Jump to a subprocess 'call' initial state */
2638 : goto ldv_call_18;
2639 : /* Jump to a subprocess 'call' initial state */
2640 : goto ldv_call_18;
2641 : /* Jump to a subprocess 'call' initial state */
2642 : goto ldv_call_18;
2643 : /* Jump to a subprocess 'call' initial state */
2644 : goto ldv_call_18;
2645 : /* Jump to a subprocess 'call' initial state */
2646 : goto ldv_call_18;
2647 : /* Jump to a subprocess 'call' initial state */
2648 : goto ldv_call_18;
2649 1 : break;
2650 : }
2651 3 : case 8: {
2652 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
2653 3 : if (ldv_18_rtc_class_ops_rtc_class_ops->release) {
2654 : /* LDV {"type": "CALLBACK", "call": "(ldv_18_rtc_class_ops_rtc_class_ops->release)(ldv_18_device_device);", "comment": "release"} */
2655 2 : ldv_rtc_class_scenario_release_18_2(ldv_18_rtc_class_ops_rtc_class_ops->release, ldv_18_device_device);
2656 : }
2657 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
2658 :
2659 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2660 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2661 :
2662 : /* Jump to a subprocess 'main' initial state */
2663 2 : goto ldv_main_18;
2664 1 : break;
2665 : }
2666 2 : default: ldv_stop();
2667 1 : }
2668 0 : /* End of the subprocess 'call' */
2669 0 : return;
2670 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_18"} */
2671 : }
2672 :
2673 : /* AUX_FUNC ldv_rtc_class_scenario_19 */
2674 : void ldv_rtc_class_scenario_19(void *arg0) {
2675 : /* LDV {"thread": 19, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_19"} */
2676 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
2677 1 : int (*ldv_19_callback_func_1_ptr)(struct device *);
2678 1 : int (*ldv_19_callback_match)(struct device *, struct device_driver *);
2679 1 : int (*ldv_19_callback_remove)(struct device *);
2680 1 : int (*ldv_19_callback_resume)(struct device *);
2681 1 : ssize_t (*ldv_19_callback_show)(struct device *, struct device_attribute *, char *);
2682 1 : int (*ldv_19_callback_suspend)(struct device *, pm_message_t );
2683 1 : int (*ldv_19_callback_uevent)(struct device *, struct kobj_uevent_env *);
2684 1 : struct device *ldv_19_device_device;
2685 1 : struct device_attribute *ldv_19_device_struct_device_attribute;
2686 1 : struct device_driver *ldv_19_device_struct_device_driver_ptr;
2687 1 : struct kobj_uevent_env *ldv_19_device_struct_kobj_uevent_env_ptr;
2688 1 : struct pm_message ldv_19_device_struct_pm_message;
2689 1 : char *ldv_19_ldv_param_18_2_default;
2690 1 : int ldv_19_ret_default;
2691 1 : struct rtc_class_ops *ldv_19_rtc_class_ops_rtc_class_ops;
2692 1 : struct rtc_device *ldv_19_rtc_device_rtc_device;
2693 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
2694 1 : /* Initialize automaton variables */
2695 2 : ldv_19_ret_default = 1;
2696 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
2697 3 : ldv_free(arg0);
2698 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
2699 1 :
2700 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
2701 4 : ldv_19_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
2702 3 : ldv_19_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
2703 3 : ldv_19_device_device = ldv_xmalloc_unknown_size(0);
2704 3 : ldv_19_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
2705 3 : ldv_19_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
2706 3 : ldv_19_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
2707 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
2708 :
2709 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2710 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2711 :
2712 : /* Jump to a subprocess 'main' initial state */
2713 1 : goto ldv_main_19;
2714 : /* End of the process */
2715 : return;
2716 1 :
2717 : /* Sbprocess main */
2718 : ldv_main_19:
2719 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2720 :
2721 4 : if (ldv_undef_int()) {
2722 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
2723 : /* Callback pre-call */
2724 1 : ldv_pre_probe();
2725 3 : if (ldv_19_rtc_class_ops_rtc_class_ops->open) {
2726 : /* LDV {"type": "CALLBACK", "call": "ldv_19_ret_default = (ldv_19_rtc_class_ops_rtc_class_ops->open)(ldv_19_device_device);", "comment": "probe"} */
2727 2 : ldv_19_ret_default = ldv_rtc_class_scenario_probe_19_11(ldv_19_rtc_class_ops_rtc_class_ops->open, ldv_19_device_device);
2728 : }
2729 : /* Callback post-call */
2730 4 : ldv_19_ret_default = ldv_post_probe(ldv_19_ret_default);
2731 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
2732 :
2733 4 : if (ldv_undef_int()) {
2734 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
2735 2 : ldv_assume(ldv_19_ret_default == 0);
2736 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
2737 :
2738 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2739 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2740 :
2741 : /* Jump to a subprocess 'call' initial state */
2742 1 : goto ldv_call_19;
2743 : }
2744 : else {
2745 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
2746 2 : ldv_assume(ldv_19_ret_default != 0);
2747 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
2748 :
2749 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2750 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2751 :
2752 : /* Jump to a subprocess 'main' initial state */
2753 1 : goto ldv_main_19;
2754 : }
2755 : }
2756 : else {
2757 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
2758 2 : ldv_free(ldv_19_rtc_device_rtc_device);
2759 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
2760 :
2761 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
2762 : /* Skip a non-replicative signal receiving */
2763 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
2764 :
2765 : /* Exit function at a terminal state */
2766 1 : return;
2767 : }
2768 : /* End of the subprocess 'main' */
2769 : return;
2770 1 :
2771 : /* Sbprocess call */
2772 : ldv_call_19:
2773 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2774 :
2775 2 : switch (ldv_undef_int()) {
2776 3 : case 1: {
2777 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
2778 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_19_device_device, ldv_19_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
2779 2 : ldv_rtc_class_scenario_callback_19_22(ldv_19_callback_uevent, ldv_19_device_device, ldv_19_device_struct_kobj_uevent_env_ptr);
2780 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2781 :
2782 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2783 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2784 :
2785 : /* Jump to a subprocess 'call' initial state */
2786 1 : goto ldv_call_19;
2787 1 : break;
2788 : }
2789 3 : case 2: {
2790 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
2791 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_19_device_device, ldv_19_device_struct_pm_message);", "comment": "callback"} */
2792 2 : ldv_rtc_class_scenario_callback_19_21(ldv_19_callback_suspend, ldv_19_device_device, ldv_19_device_struct_pm_message);
2793 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2794 :
2795 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2796 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2797 :
2798 : /* Jump to a subprocess 'call' initial state */
2799 1 : goto ldv_call_19;
2800 : /* Jump to a subprocess 'call' initial state */
2801 : goto ldv_call_19;
2802 1 : break;
2803 : }
2804 3 : case 3: {
2805 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
2806 3 : ldv_19_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
2807 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
2808 :
2809 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
2810 : /* LDV {"type": "CALLBACK", "call": "((& modalias_show))(ldv_19_device_device, ldv_19_device_struct_device_attribute, ldv_19_ldv_param_18_2_default);", "comment": "callback"} */
2811 2 : ldv_rtc_class_scenario_callback_19_18(ldv_19_callback_show, ldv_19_device_device, ldv_19_device_struct_device_attribute, ldv_19_ldv_param_18_2_default);
2812 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2813 :
2814 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
2815 2 : ldv_free(ldv_19_ldv_param_18_2_default);
2816 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
2817 :
2818 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2819 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2820 :
2821 : /* Jump to a subprocess 'call' initial state */
2822 1 : goto ldv_call_19;
2823 : /* Jump to a subprocess 'call' initial state */
2824 : goto ldv_call_19;
2825 : /* Jump to a subprocess 'call' initial state */
2826 : goto ldv_call_19;
2827 1 : break;
2828 : }
2829 3 : case 4: {
2830 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
2831 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_19_device_device);", "comment": "callback"} */
2832 2 : ldv_rtc_class_scenario_callback_19_17(ldv_19_callback_resume, ldv_19_device_device);
2833 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2834 :
2835 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2836 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2837 :
2838 : /* Jump to a subprocess 'call' initial state */
2839 1 : goto ldv_call_19;
2840 : /* Jump to a subprocess 'call' initial state */
2841 : goto ldv_call_19;
2842 : /* Jump to a subprocess 'call' initial state */
2843 : goto ldv_call_19;
2844 : /* Jump to a subprocess 'call' initial state */
2845 : goto ldv_call_19;
2846 1 : break;
2847 : }
2848 3 : case 5: {
2849 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
2850 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_remove))(ldv_19_device_device);", "comment": "callback"} */
2851 2 : ldv_rtc_class_scenario_callback_19_16(ldv_19_callback_remove, ldv_19_device_device);
2852 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2853 :
2854 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2855 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2856 :
2857 : /* Jump to a subprocess 'call' initial state */
2858 1 : goto ldv_call_19;
2859 : /* Jump to a subprocess 'call' initial state */
2860 : goto ldv_call_19;
2861 : /* Jump to a subprocess 'call' initial state */
2862 : goto ldv_call_19;
2863 : /* Jump to a subprocess 'call' initial state */
2864 : goto ldv_call_19;
2865 : /* Jump to a subprocess 'call' initial state */
2866 : goto ldv_call_19;
2867 1 : break;
2868 : }
2869 3 : case 6: {
2870 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
2871 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_match))(ldv_19_device_device, ldv_19_device_struct_device_driver_ptr);", "comment": "callback"} */
2872 2 : ldv_rtc_class_scenario_callback_19_15(ldv_19_callback_match, ldv_19_device_device, ldv_19_device_struct_device_driver_ptr);
2873 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2874 :
2875 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2876 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2877 :
2878 : /* Jump to a subprocess 'call' initial state */
2879 1 : goto ldv_call_19;
2880 : /* Jump to a subprocess 'call' initial state */
2881 : goto ldv_call_19;
2882 : /* Jump to a subprocess 'call' initial state */
2883 : goto ldv_call_19;
2884 : /* Jump to a subprocess 'call' initial state */
2885 : goto ldv_call_19;
2886 : /* Jump to a subprocess 'call' initial state */
2887 : goto ldv_call_19;
2888 : /* Jump to a subprocess 'call' initial state */
2889 : goto ldv_call_19;
2890 1 : break;
2891 : }
2892 3 : case 7: {
2893 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
2894 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_probe))(ldv_19_device_device);", "comment": "callback"} */
2895 2 : ldv_rtc_class_scenario_callback_19_4(ldv_19_callback_func_1_ptr, ldv_19_device_device);
2896 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
2897 :
2898 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
2899 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
2900 :
2901 : /* Jump to a subprocess 'call' initial state */
2902 1 : goto ldv_call_19;
2903 : /* Jump to a subprocess 'call' initial state */
2904 : goto ldv_call_19;
2905 : /* Jump to a subprocess 'call' initial state */
2906 : goto ldv_call_19;
2907 : /* Jump to a subprocess 'call' initial state */
2908 : goto ldv_call_19;
2909 : /* Jump to a subprocess 'call' initial state */
2910 : goto ldv_call_19;
2911 : /* Jump to a subprocess 'call' initial state */
2912 : goto ldv_call_19;
2913 : /* Jump to a subprocess 'call' initial state */
2914 : goto ldv_call_19;
2915 1 : break;
2916 : }
2917 3 : case 8: {
2918 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
2919 3 : if (ldv_19_rtc_class_ops_rtc_class_ops->release) {
2920 : /* LDV {"type": "CALLBACK", "call": "(ldv_19_rtc_class_ops_rtc_class_ops->release)(ldv_19_device_device);", "comment": "release"} */
2921 2 : ldv_rtc_class_scenario_release_19_2(ldv_19_rtc_class_ops_rtc_class_ops->release, ldv_19_device_device);
2922 : }
2923 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
2924 :
2925 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2926 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2927 :
2928 : /* Jump to a subprocess 'main' initial state */
2929 2 : goto ldv_main_19;
2930 1 : break;
2931 : }
2932 2 : default: ldv_stop();
2933 1 : }
2934 0 : /* End of the subprocess 'call' */
2935 0 : return;
2936 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_19"} */
2937 : }
2938 :
2939 : /* AUX_FUNC ldv_rtc_class_scenario_20 */
2940 : void ldv_rtc_class_scenario_20(void *arg0) {
2941 : /* LDV {"thread": 20, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_20"} */
2942 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
2943 1 : int (*ldv_20_callback_func_1_ptr)(struct device *);
2944 1 : int (*ldv_20_callback_match)(struct device *, struct device_driver *);
2945 1 : int (*ldv_20_callback_remove)(struct device *);
2946 1 : int (*ldv_20_callback_resume)(struct device *);
2947 1 : ssize_t (*ldv_20_callback_show)(struct device *, struct device_attribute *, char *);
2948 1 : int (*ldv_20_callback_suspend)(struct device *, pm_message_t );
2949 1 : int (*ldv_20_callback_uevent)(struct device *, struct kobj_uevent_env *);
2950 1 : struct device *ldv_20_device_device;
2951 1 : struct device_attribute *ldv_20_device_struct_device_attribute;
2952 1 : struct device_driver *ldv_20_device_struct_device_driver_ptr;
2953 1 : struct kobj_uevent_env *ldv_20_device_struct_kobj_uevent_env_ptr;
2954 1 : struct pm_message ldv_20_device_struct_pm_message;
2955 1 : char *ldv_20_ldv_param_18_2_default;
2956 1 : int ldv_20_ret_default;
2957 1 : struct rtc_class_ops *ldv_20_rtc_class_ops_rtc_class_ops;
2958 1 : struct rtc_device *ldv_20_rtc_device_rtc_device;
2959 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
2960 1 : /* Initialize automaton variables */
2961 2 : ldv_20_ret_default = 1;
2962 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
2963 3 : ldv_free(arg0);
2964 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
2965 1 :
2966 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
2967 4 : ldv_20_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
2968 3 : ldv_20_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
2969 3 : ldv_20_device_device = ldv_xmalloc_unknown_size(0);
2970 3 : ldv_20_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
2971 3 : ldv_20_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
2972 3 : ldv_20_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
2973 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
2974 :
2975 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
2976 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
2977 :
2978 : /* Jump to a subprocess 'main' initial state */
2979 1 : goto ldv_main_20;
2980 : /* End of the process */
2981 : return;
2982 1 :
2983 : /* Sbprocess main */
2984 : ldv_main_20:
2985 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
2986 :
2987 4 : if (ldv_undef_int()) {
2988 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
2989 : /* Callback pre-call */
2990 1 : ldv_pre_probe();
2991 3 : if (ldv_20_rtc_class_ops_rtc_class_ops->open) {
2992 : /* LDV {"type": "CALLBACK", "call": "ldv_20_ret_default = (ldv_20_rtc_class_ops_rtc_class_ops->open)(ldv_20_device_device);", "comment": "probe"} */
2993 2 : ldv_20_ret_default = ldv_rtc_class_scenario_probe_20_11(ldv_20_rtc_class_ops_rtc_class_ops->open, ldv_20_device_device);
2994 : }
2995 : /* Callback post-call */
2996 4 : ldv_20_ret_default = ldv_post_probe(ldv_20_ret_default);
2997 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
2998 :
2999 4 : if (ldv_undef_int()) {
3000 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
3001 2 : ldv_assume(ldv_20_ret_default == 0);
3002 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
3003 :
3004 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3005 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3006 :
3007 : /* Jump to a subprocess 'call' initial state */
3008 1 : goto ldv_call_20;
3009 : }
3010 : else {
3011 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
3012 2 : ldv_assume(ldv_20_ret_default != 0);
3013 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
3014 :
3015 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3016 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3017 :
3018 : /* Jump to a subprocess 'main' initial state */
3019 1 : goto ldv_main_20;
3020 : }
3021 : }
3022 : else {
3023 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
3024 2 : ldv_free(ldv_20_rtc_device_rtc_device);
3025 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
3026 :
3027 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
3028 : /* Skip a non-replicative signal receiving */
3029 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
3030 :
3031 : /* Exit function at a terminal state */
3032 1 : return;
3033 : }
3034 : /* End of the subprocess 'main' */
3035 : return;
3036 1 :
3037 : /* Sbprocess call */
3038 : ldv_call_20:
3039 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3040 :
3041 2 : switch (ldv_undef_int()) {
3042 3 : case 1: {
3043 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
3044 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_20_device_device, ldv_20_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
3045 2 : ldv_rtc_class_scenario_callback_20_22(ldv_20_callback_uevent, ldv_20_device_device, ldv_20_device_struct_kobj_uevent_env_ptr);
3046 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3047 :
3048 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3049 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3050 :
3051 : /* Jump to a subprocess 'call' initial state */
3052 1 : goto ldv_call_20;
3053 1 : break;
3054 : }
3055 3 : case 2: {
3056 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
3057 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_20_device_device, ldv_20_device_struct_pm_message);", "comment": "callback"} */
3058 2 : ldv_rtc_class_scenario_callback_20_21(ldv_20_callback_suspend, ldv_20_device_device, ldv_20_device_struct_pm_message);
3059 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3060 :
3061 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3062 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3063 :
3064 : /* Jump to a subprocess 'call' initial state */
3065 1 : goto ldv_call_20;
3066 : /* Jump to a subprocess 'call' initial state */
3067 : goto ldv_call_20;
3068 1 : break;
3069 : }
3070 3 : case 3: {
3071 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
3072 3 : ldv_20_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
3073 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
3074 :
3075 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
3076 : /* LDV {"type": "CALLBACK", "call": "((& vendor_show))(ldv_20_device_device, ldv_20_device_struct_device_attribute, ldv_20_ldv_param_18_2_default);", "comment": "callback"} */
3077 2 : ldv_rtc_class_scenario_callback_20_18(ldv_20_callback_show, ldv_20_device_device, ldv_20_device_struct_device_attribute, ldv_20_ldv_param_18_2_default);
3078 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3079 :
3080 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
3081 2 : ldv_free(ldv_20_ldv_param_18_2_default);
3082 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
3083 :
3084 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3085 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3086 :
3087 : /* Jump to a subprocess 'call' initial state */
3088 1 : goto ldv_call_20;
3089 : /* Jump to a subprocess 'call' initial state */
3090 : goto ldv_call_20;
3091 : /* Jump to a subprocess 'call' initial state */
3092 : goto ldv_call_20;
3093 1 : break;
3094 : }
3095 3 : case 4: {
3096 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
3097 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_20_device_device);", "comment": "callback"} */
3098 2 : ldv_rtc_class_scenario_callback_20_17(ldv_20_callback_resume, ldv_20_device_device);
3099 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3100 :
3101 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3102 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3103 :
3104 : /* Jump to a subprocess 'call' initial state */
3105 1 : goto ldv_call_20;
3106 : /* Jump to a subprocess 'call' initial state */
3107 : goto ldv_call_20;
3108 : /* Jump to a subprocess 'call' initial state */
3109 : goto ldv_call_20;
3110 : /* Jump to a subprocess 'call' initial state */
3111 : goto ldv_call_20;
3112 1 : break;
3113 : }
3114 3 : case 5: {
3115 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
3116 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_remove))(ldv_20_device_device);", "comment": "callback"} */
3117 2 : ldv_rtc_class_scenario_callback_20_16(ldv_20_callback_remove, ldv_20_device_device);
3118 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3119 :
3120 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3121 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3122 :
3123 : /* Jump to a subprocess 'call' initial state */
3124 1 : goto ldv_call_20;
3125 : /* Jump to a subprocess 'call' initial state */
3126 : goto ldv_call_20;
3127 : /* Jump to a subprocess 'call' initial state */
3128 : goto ldv_call_20;
3129 : /* Jump to a subprocess 'call' initial state */
3130 : goto ldv_call_20;
3131 : /* Jump to a subprocess 'call' initial state */
3132 : goto ldv_call_20;
3133 1 : break;
3134 : }
3135 3 : case 6: {
3136 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
3137 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_match))(ldv_20_device_device, ldv_20_device_struct_device_driver_ptr);", "comment": "callback"} */
3138 2 : ldv_rtc_class_scenario_callback_20_15(ldv_20_callback_match, ldv_20_device_device, ldv_20_device_struct_device_driver_ptr);
3139 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3140 :
3141 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3142 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3143 :
3144 : /* Jump to a subprocess 'call' initial state */
3145 1 : goto ldv_call_20;
3146 : /* Jump to a subprocess 'call' initial state */
3147 : goto ldv_call_20;
3148 : /* Jump to a subprocess 'call' initial state */
3149 : goto ldv_call_20;
3150 : /* Jump to a subprocess 'call' initial state */
3151 : goto ldv_call_20;
3152 : /* Jump to a subprocess 'call' initial state */
3153 : goto ldv_call_20;
3154 : /* Jump to a subprocess 'call' initial state */
3155 : goto ldv_call_20;
3156 1 : break;
3157 : }
3158 3 : case 7: {
3159 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
3160 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_probe))(ldv_20_device_device);", "comment": "callback"} */
3161 2 : ldv_rtc_class_scenario_callback_20_4(ldv_20_callback_func_1_ptr, ldv_20_device_device);
3162 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3163 :
3164 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3165 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3166 :
3167 : /* Jump to a subprocess 'call' initial state */
3168 1 : goto ldv_call_20;
3169 : /* Jump to a subprocess 'call' initial state */
3170 : goto ldv_call_20;
3171 : /* Jump to a subprocess 'call' initial state */
3172 : goto ldv_call_20;
3173 : /* Jump to a subprocess 'call' initial state */
3174 : goto ldv_call_20;
3175 : /* Jump to a subprocess 'call' initial state */
3176 : goto ldv_call_20;
3177 : /* Jump to a subprocess 'call' initial state */
3178 : goto ldv_call_20;
3179 : /* Jump to a subprocess 'call' initial state */
3180 : goto ldv_call_20;
3181 1 : break;
3182 : }
3183 3 : case 8: {
3184 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
3185 3 : if (ldv_20_rtc_class_ops_rtc_class_ops->release) {
3186 : /* LDV {"type": "CALLBACK", "call": "(ldv_20_rtc_class_ops_rtc_class_ops->release)(ldv_20_device_device);", "comment": "release"} */
3187 2 : ldv_rtc_class_scenario_release_20_2(ldv_20_rtc_class_ops_rtc_class_ops->release, ldv_20_device_device);
3188 : }
3189 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
3190 :
3191 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3192 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3193 :
3194 : /* Jump to a subprocess 'main' initial state */
3195 2 : goto ldv_main_20;
3196 1 : break;
3197 : }
3198 2 : default: ldv_stop();
3199 1 : }
3200 0 : /* End of the subprocess 'call' */
3201 0 : return;
3202 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_20"} */
3203 : }
3204 :
3205 : /* AUX_FUNC ldv_rtc_class_scenario_3 */
3206 : void ldv_rtc_class_scenario_3(void *arg0) {
3207 : /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_3"} */
3208 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
3209 1 : int (*ldv_3_callback_func_1_ptr)(struct device *);
3210 1 : int (*ldv_3_callback_match)(struct device *, struct device_driver *);
3211 1 : int (*ldv_3_callback_remove)(struct device *);
3212 1 : int (*ldv_3_callback_resume)(struct device *);
3213 1 : ssize_t (*ldv_3_callback_show)(struct device *, struct device_attribute *, char *);
3214 1 : int (*ldv_3_callback_suspend)(struct device *, pm_message_t );
3215 1 : int (*ldv_3_callback_uevent)(struct device *, struct kobj_uevent_env *);
3216 1 : struct device *ldv_3_device_device;
3217 1 : struct device_attribute *ldv_3_device_struct_device_attribute;
3218 1 : struct device_driver *ldv_3_device_struct_device_driver_ptr;
3219 1 : struct kobj_uevent_env *ldv_3_device_struct_kobj_uevent_env_ptr;
3220 1 : struct pm_message ldv_3_device_struct_pm_message;
3221 1 : char *ldv_3_ldv_param_18_2_default;
3222 1 : int ldv_3_ret_default;
3223 1 : struct rtc_class_ops *ldv_3_rtc_class_ops_rtc_class_ops;
3224 1 : struct rtc_device *ldv_3_rtc_device_rtc_device;
3225 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
3226 1 : /* Initialize automaton variables */
3227 2 : ldv_3_ret_default = 1;
3228 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
3229 3 : ldv_free(arg0);
3230 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
3231 1 :
3232 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
3233 4 : ldv_3_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
3234 3 : ldv_3_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
3235 3 : ldv_3_device_device = ldv_xmalloc_unknown_size(0);
3236 3 : ldv_3_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
3237 3 : ldv_3_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
3238 3 : ldv_3_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
3239 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
3240 :
3241 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3242 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3243 :
3244 : /* Jump to a subprocess 'main' initial state */
3245 1 : goto ldv_main_3;
3246 : /* End of the process */
3247 : return;
3248 1 :
3249 : /* Sbprocess main */
3250 : ldv_main_3:
3251 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3252 :
3253 4 : if (ldv_undef_int()) {
3254 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
3255 : /* Callback pre-call */
3256 1 : ldv_pre_probe();
3257 3 : if (ldv_3_rtc_class_ops_rtc_class_ops->open) {
3258 : /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = (ldv_3_rtc_class_ops_rtc_class_ops->open)(ldv_3_device_device);", "comment": "probe"} */
3259 2 : ldv_3_ret_default = ldv_rtc_class_scenario_probe_3_11(ldv_3_rtc_class_ops_rtc_class_ops->open, ldv_3_device_device);
3260 : }
3261 : /* Callback post-call */
3262 4 : ldv_3_ret_default = ldv_post_probe(ldv_3_ret_default);
3263 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
3264 :
3265 4 : if (ldv_undef_int()) {
3266 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
3267 2 : ldv_assume(ldv_3_ret_default == 0);
3268 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
3269 :
3270 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3271 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3272 :
3273 : /* Jump to a subprocess 'call' initial state */
3274 1 : goto ldv_call_3;
3275 : }
3276 : else {
3277 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
3278 2 : ldv_assume(ldv_3_ret_default != 0);
3279 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
3280 :
3281 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3282 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3283 :
3284 : /* Jump to a subprocess 'main' initial state */
3285 1 : goto ldv_main_3;
3286 : }
3287 : }
3288 : else {
3289 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
3290 2 : ldv_free(ldv_3_rtc_device_rtc_device);
3291 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
3292 :
3293 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
3294 : /* Skip a non-replicative signal receiving */
3295 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
3296 :
3297 : /* Exit function at a terminal state */
3298 1 : return;
3299 : }
3300 : /* End of the subprocess 'main' */
3301 : return;
3302 1 :
3303 : /* Sbprocess call */
3304 : ldv_call_3:
3305 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3306 :
3307 2 : switch (ldv_undef_int()) {
3308 3 : case 1: {
3309 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
3310 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_uevent))(ldv_3_device_device, ldv_3_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
3311 2 : ldv_rtc_class_scenario_callback_3_22(ldv_3_callback_uevent, ldv_3_device_device, ldv_3_device_struct_kobj_uevent_env_ptr);
3312 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3313 :
3314 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3315 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3316 :
3317 : /* Jump to a subprocess 'call' initial state */
3318 1 : goto ldv_call_3;
3319 1 : break;
3320 : }
3321 3 : case 2: {
3322 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
3323 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_3_device_device, ldv_3_device_struct_pm_message);", "comment": "callback"} */
3324 2 : ldv_rtc_class_scenario_callback_3_21(ldv_3_callback_suspend, ldv_3_device_device, ldv_3_device_struct_pm_message);
3325 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3326 :
3327 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3328 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3329 :
3330 : /* Jump to a subprocess 'call' initial state */
3331 1 : goto ldv_call_3;
3332 : /* Jump to a subprocess 'call' initial state */
3333 : goto ldv_call_3;
3334 1 : break;
3335 : }
3336 3 : case 3: {
3337 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
3338 3 : ldv_3_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
3339 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
3340 :
3341 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
3342 : /* LDV {"type": "CALLBACK", "call": "((& class_show))(ldv_3_device_device, ldv_3_device_struct_device_attribute, ldv_3_ldv_param_18_2_default);", "comment": "callback"} */
3343 2 : ldv_rtc_class_scenario_callback_3_18(ldv_3_callback_show, ldv_3_device_device, ldv_3_device_struct_device_attribute, ldv_3_ldv_param_18_2_default);
3344 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3345 :
3346 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
3347 2 : ldv_free(ldv_3_ldv_param_18_2_default);
3348 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
3349 :
3350 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3351 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3352 :
3353 : /* Jump to a subprocess 'call' initial state */
3354 1 : goto ldv_call_3;
3355 : /* Jump to a subprocess 'call' initial state */
3356 : goto ldv_call_3;
3357 : /* Jump to a subprocess 'call' initial state */
3358 : goto ldv_call_3;
3359 1 : break;
3360 : }
3361 3 : case 4: {
3362 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
3363 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_3_device_device);", "comment": "callback"} */
3364 2 : ldv_rtc_class_scenario_callback_3_17(ldv_3_callback_resume, ldv_3_device_device);
3365 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3366 :
3367 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3368 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3369 :
3370 : /* Jump to a subprocess 'call' initial state */
3371 1 : goto ldv_call_3;
3372 : /* Jump to a subprocess 'call' initial state */
3373 : goto ldv_call_3;
3374 : /* Jump to a subprocess 'call' initial state */
3375 : goto ldv_call_3;
3376 : /* Jump to a subprocess 'call' initial state */
3377 : goto ldv_call_3;
3378 1 : break;
3379 : }
3380 3 : case 5: {
3381 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
3382 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_remove))(ldv_3_device_device);", "comment": "callback"} */
3383 2 : ldv_rtc_class_scenario_callback_3_16(ldv_3_callback_remove, ldv_3_device_device);
3384 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3385 :
3386 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3387 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3388 :
3389 : /* Jump to a subprocess 'call' initial state */
3390 1 : goto ldv_call_3;
3391 : /* Jump to a subprocess 'call' initial state */
3392 : goto ldv_call_3;
3393 : /* Jump to a subprocess 'call' initial state */
3394 : goto ldv_call_3;
3395 : /* Jump to a subprocess 'call' initial state */
3396 : goto ldv_call_3;
3397 : /* Jump to a subprocess 'call' initial state */
3398 : goto ldv_call_3;
3399 1 : break;
3400 : }
3401 3 : case 6: {
3402 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
3403 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_match))(ldv_3_device_device, ldv_3_device_struct_device_driver_ptr);", "comment": "callback"} */
3404 2 : ldv_rtc_class_scenario_callback_3_15(ldv_3_callback_match, ldv_3_device_device, ldv_3_device_struct_device_driver_ptr);
3405 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3406 :
3407 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3408 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3409 :
3410 : /* Jump to a subprocess 'call' initial state */
3411 1 : goto ldv_call_3;
3412 : /* Jump to a subprocess 'call' initial state */
3413 : goto ldv_call_3;
3414 : /* Jump to a subprocess 'call' initial state */
3415 : goto ldv_call_3;
3416 : /* Jump to a subprocess 'call' initial state */
3417 : goto ldv_call_3;
3418 : /* Jump to a subprocess 'call' initial state */
3419 : goto ldv_call_3;
3420 : /* Jump to a subprocess 'call' initial state */
3421 : goto ldv_call_3;
3422 1 : break;
3423 : }
3424 3 : case 7: {
3425 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
3426 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_probe))(ldv_3_device_device);", "comment": "callback"} */
3427 2 : ldv_rtc_class_scenario_callback_3_4(ldv_3_callback_func_1_ptr, ldv_3_device_device);
3428 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3429 :
3430 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3431 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3432 :
3433 : /* Jump to a subprocess 'call' initial state */
3434 1 : goto ldv_call_3;
3435 : /* Jump to a subprocess 'call' initial state */
3436 : goto ldv_call_3;
3437 : /* Jump to a subprocess 'call' initial state */
3438 : goto ldv_call_3;
3439 : /* Jump to a subprocess 'call' initial state */
3440 : goto ldv_call_3;
3441 : /* Jump to a subprocess 'call' initial state */
3442 : goto ldv_call_3;
3443 : /* Jump to a subprocess 'call' initial state */
3444 : goto ldv_call_3;
3445 : /* Jump to a subprocess 'call' initial state */
3446 : goto ldv_call_3;
3447 1 : break;
3448 : }
3449 3 : case 8: {
3450 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
3451 3 : if (ldv_3_rtc_class_ops_rtc_class_ops->release) {
3452 : /* LDV {"type": "CALLBACK", "call": "(ldv_3_rtc_class_ops_rtc_class_ops->release)(ldv_3_device_device);", "comment": "release"} */
3453 2 : ldv_rtc_class_scenario_release_3_2(ldv_3_rtc_class_ops_rtc_class_ops->release, ldv_3_device_device);
3454 : }
3455 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
3456 :
3457 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3458 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3459 :
3460 : /* Jump to a subprocess 'main' initial state */
3461 2 : goto ldv_main_3;
3462 1 : break;
3463 : }
3464 2 : default: ldv_stop();
3465 1 : }
3466 0 : /* End of the subprocess 'call' */
3467 0 : return;
3468 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_3"} */
3469 : }
3470 :
3471 : /* AUX_FUNC ldv_rtc_class_scenario_4 */
3472 : void ldv_rtc_class_scenario_4(void *arg0) {
3473 : /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_4"} */
3474 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
3475 1 : int (*ldv_4_callback_func_1_ptr)(struct device *);
3476 1 : int (*ldv_4_callback_match)(struct device *, struct device_driver *);
3477 1 : int (*ldv_4_callback_remove)(struct device *);
3478 1 : int (*ldv_4_callback_resume)(struct device *);
3479 1 : ssize_t (*ldv_4_callback_show)(struct device *, struct device_attribute *, char *);
3480 1 : int (*ldv_4_callback_suspend)(struct device *, pm_message_t );
3481 1 : int (*ldv_4_callback_uevent)(struct device *, struct kobj_uevent_env *);
3482 1 : struct device *ldv_4_device_device;
3483 1 : struct device_attribute *ldv_4_device_struct_device_attribute;
3484 1 : struct device_driver *ldv_4_device_struct_device_driver_ptr;
3485 1 : struct kobj_uevent_env *ldv_4_device_struct_kobj_uevent_env_ptr;
3486 1 : struct pm_message ldv_4_device_struct_pm_message;
3487 1 : char *ldv_4_ldv_param_18_2_default;
3488 1 : int ldv_4_ret_default;
3489 1 : struct rtc_class_ops *ldv_4_rtc_class_ops_rtc_class_ops;
3490 1 : struct rtc_device *ldv_4_rtc_device_rtc_device;
3491 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
3492 1 : /* Initialize automaton variables */
3493 2 : ldv_4_ret_default = 1;
3494 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
3495 3 : ldv_free(arg0);
3496 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
3497 1 :
3498 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
3499 4 : ldv_4_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
3500 3 : ldv_4_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
3501 3 : ldv_4_device_device = ldv_xmalloc_unknown_size(0);
3502 3 : ldv_4_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
3503 3 : ldv_4_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
3504 3 : ldv_4_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
3505 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
3506 :
3507 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3508 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3509 :
3510 : /* Jump to a subprocess 'main' initial state */
3511 1 : goto ldv_main_4;
3512 : /* End of the process */
3513 : return;
3514 1 :
3515 : /* Sbprocess main */
3516 : ldv_main_4:
3517 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3518 :
3519 4 : if (ldv_undef_int()) {
3520 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
3521 : /* Callback pre-call */
3522 1 : ldv_pre_probe();
3523 3 : if (ldv_4_rtc_class_ops_rtc_class_ops->open) {
3524 : /* LDV {"type": "CALLBACK", "call": "ldv_4_ret_default = (ldv_4_rtc_class_ops_rtc_class_ops->open)(ldv_4_device_device);", "comment": "probe"} */
3525 2 : ldv_4_ret_default = ldv_rtc_class_scenario_probe_4_11(ldv_4_rtc_class_ops_rtc_class_ops->open, ldv_4_device_device);
3526 : }
3527 : /* Callback post-call */
3528 4 : ldv_4_ret_default = ldv_post_probe(ldv_4_ret_default);
3529 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
3530 :
3531 4 : if (ldv_undef_int()) {
3532 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
3533 2 : ldv_assume(ldv_4_ret_default == 0);
3534 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
3535 :
3536 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3537 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3538 :
3539 : /* Jump to a subprocess 'call' initial state */
3540 1 : goto ldv_call_4;
3541 : }
3542 : else {
3543 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
3544 2 : ldv_assume(ldv_4_ret_default != 0);
3545 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
3546 :
3547 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3548 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3549 :
3550 : /* Jump to a subprocess 'main' initial state */
3551 1 : goto ldv_main_4;
3552 : }
3553 : }
3554 : else {
3555 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
3556 2 : ldv_free(ldv_4_rtc_device_rtc_device);
3557 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
3558 :
3559 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
3560 : /* Skip a non-replicative signal receiving */
3561 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
3562 :
3563 : /* Exit function at a terminal state */
3564 1 : return;
3565 : }
3566 : /* End of the subprocess 'main' */
3567 : return;
3568 1 :
3569 : /* Sbprocess call */
3570 : ldv_call_4:
3571 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3572 :
3573 2 : switch (ldv_undef_int()) {
3574 3 : case 1: {
3575 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
3576 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_4_device_device, ldv_4_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
3577 2 : ldv_rtc_class_scenario_callback_4_22(ldv_4_callback_uevent, ldv_4_device_device, ldv_4_device_struct_kobj_uevent_env_ptr);
3578 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3579 :
3580 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3581 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3582 :
3583 : /* Jump to a subprocess 'call' initial state */
3584 1 : goto ldv_call_4;
3585 1 : break;
3586 : }
3587 3 : case 2: {
3588 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
3589 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_4_device_device, ldv_4_device_struct_pm_message);", "comment": "callback"} */
3590 2 : ldv_rtc_class_scenario_callback_4_21(ldv_4_callback_suspend, ldv_4_device_device, ldv_4_device_struct_pm_message);
3591 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3592 :
3593 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3594 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3595 :
3596 : /* Jump to a subprocess 'call' initial state */
3597 1 : goto ldv_call_4;
3598 : /* Jump to a subprocess 'call' initial state */
3599 : goto ldv_call_4;
3600 1 : break;
3601 : }
3602 3 : case 3: {
3603 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
3604 3 : ldv_4_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
3605 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
3606 :
3607 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
3608 : /* LDV {"type": "CALLBACK", "call": "((& mmc_csd_show))(ldv_4_device_device, ldv_4_device_struct_device_attribute, ldv_4_ldv_param_18_2_default);", "comment": "callback"} */
3609 2 : ldv_rtc_class_scenario_callback_4_18(ldv_4_callback_show, ldv_4_device_device, ldv_4_device_struct_device_attribute, ldv_4_ldv_param_18_2_default);
3610 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3611 :
3612 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
3613 2 : ldv_free(ldv_4_ldv_param_18_2_default);
3614 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
3615 :
3616 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3617 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3618 :
3619 : /* Jump to a subprocess 'call' initial state */
3620 1 : goto ldv_call_4;
3621 : /* Jump to a subprocess 'call' initial state */
3622 : goto ldv_call_4;
3623 : /* Jump to a subprocess 'call' initial state */
3624 : goto ldv_call_4;
3625 1 : break;
3626 : }
3627 3 : case 4: {
3628 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
3629 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_4_device_device);", "comment": "callback"} */
3630 2 : ldv_rtc_class_scenario_callback_4_17(ldv_4_callback_resume, ldv_4_device_device);
3631 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3632 :
3633 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3634 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3635 :
3636 : /* Jump to a subprocess 'call' initial state */
3637 1 : goto ldv_call_4;
3638 : /* Jump to a subprocess 'call' initial state */
3639 : goto ldv_call_4;
3640 : /* Jump to a subprocess 'call' initial state */
3641 : goto ldv_call_4;
3642 : /* Jump to a subprocess 'call' initial state */
3643 : goto ldv_call_4;
3644 1 : break;
3645 : }
3646 3 : case 5: {
3647 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
3648 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_4_device_device);", "comment": "callback"} */
3649 2 : ldv_rtc_class_scenario_callback_4_16(ldv_4_callback_remove, ldv_4_device_device);
3650 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3651 :
3652 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3653 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3654 :
3655 : /* Jump to a subprocess 'call' initial state */
3656 1 : goto ldv_call_4;
3657 : /* Jump to a subprocess 'call' initial state */
3658 : goto ldv_call_4;
3659 : /* Jump to a subprocess 'call' initial state */
3660 : goto ldv_call_4;
3661 : /* Jump to a subprocess 'call' initial state */
3662 : goto ldv_call_4;
3663 : /* Jump to a subprocess 'call' initial state */
3664 : goto ldv_call_4;
3665 1 : break;
3666 : }
3667 3 : case 6: {
3668 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
3669 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_4_device_device, ldv_4_device_struct_device_driver_ptr);", "comment": "callback"} */
3670 2 : ldv_rtc_class_scenario_callback_4_15(ldv_4_callback_match, ldv_4_device_device, ldv_4_device_struct_device_driver_ptr);
3671 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3672 :
3673 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3674 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3675 :
3676 : /* Jump to a subprocess 'call' initial state */
3677 1 : goto ldv_call_4;
3678 : /* Jump to a subprocess 'call' initial state */
3679 : goto ldv_call_4;
3680 : /* Jump to a subprocess 'call' initial state */
3681 : goto ldv_call_4;
3682 : /* Jump to a subprocess 'call' initial state */
3683 : goto ldv_call_4;
3684 : /* Jump to a subprocess 'call' initial state */
3685 : goto ldv_call_4;
3686 : /* Jump to a subprocess 'call' initial state */
3687 : goto ldv_call_4;
3688 1 : break;
3689 : }
3690 3 : case 7: {
3691 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
3692 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_4_device_device);", "comment": "callback"} */
3693 2 : ldv_rtc_class_scenario_callback_4_4(ldv_4_callback_func_1_ptr, ldv_4_device_device);
3694 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3695 :
3696 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3697 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3698 :
3699 : /* Jump to a subprocess 'call' initial state */
3700 1 : goto ldv_call_4;
3701 : /* Jump to a subprocess 'call' initial state */
3702 : goto ldv_call_4;
3703 : /* Jump to a subprocess 'call' initial state */
3704 : goto ldv_call_4;
3705 : /* Jump to a subprocess 'call' initial state */
3706 : goto ldv_call_4;
3707 : /* Jump to a subprocess 'call' initial state */
3708 : goto ldv_call_4;
3709 : /* Jump to a subprocess 'call' initial state */
3710 : goto ldv_call_4;
3711 : /* Jump to a subprocess 'call' initial state */
3712 : goto ldv_call_4;
3713 1 : break;
3714 : }
3715 3 : case 8: {
3716 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
3717 3 : if (ldv_4_rtc_class_ops_rtc_class_ops->release) {
3718 : /* LDV {"type": "CALLBACK", "call": "(ldv_4_rtc_class_ops_rtc_class_ops->release)(ldv_4_device_device);", "comment": "release"} */
3719 2 : ldv_rtc_class_scenario_release_4_2(ldv_4_rtc_class_ops_rtc_class_ops->release, ldv_4_device_device);
3720 : }
3721 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
3722 :
3723 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3724 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3725 :
3726 : /* Jump to a subprocess 'main' initial state */
3727 2 : goto ldv_main_4;
3728 1 : break;
3729 : }
3730 2 : default: ldv_stop();
3731 1 : }
3732 0 : /* End of the subprocess 'call' */
3733 0 : return;
3734 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_4"} */
3735 : }
3736 :
3737 : /* AUX_FUNC ldv_rtc_class_scenario_5 */
3738 : void ldv_rtc_class_scenario_5(void *arg0) {
3739 : /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_5"} */
3740 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
3741 1 : int (*ldv_5_callback_func_1_ptr)(struct device *);
3742 1 : int (*ldv_5_callback_match)(struct device *, struct device_driver *);
3743 1 : int (*ldv_5_callback_remove)(struct device *);
3744 1 : int (*ldv_5_callback_resume)(struct device *);
3745 1 : ssize_t (*ldv_5_callback_show)(struct device *, struct device_attribute *, char *);
3746 1 : int (*ldv_5_callback_suspend)(struct device *, pm_message_t );
3747 1 : int (*ldv_5_callback_uevent)(struct device *, struct kobj_uevent_env *);
3748 1 : struct device *ldv_5_device_device;
3749 1 : struct device_attribute *ldv_5_device_struct_device_attribute;
3750 1 : struct device_driver *ldv_5_device_struct_device_driver_ptr;
3751 1 : struct kobj_uevent_env *ldv_5_device_struct_kobj_uevent_env_ptr;
3752 1 : struct pm_message ldv_5_device_struct_pm_message;
3753 1 : char *ldv_5_ldv_param_18_2_default;
3754 1 : int ldv_5_ret_default;
3755 1 : struct rtc_class_ops *ldv_5_rtc_class_ops_rtc_class_ops;
3756 1 : struct rtc_device *ldv_5_rtc_device_rtc_device;
3757 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
3758 1 : /* Initialize automaton variables */
3759 2 : ldv_5_ret_default = 1;
3760 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
3761 3 : ldv_free(arg0);
3762 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
3763 1 :
3764 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
3765 4 : ldv_5_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
3766 3 : ldv_5_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
3767 3 : ldv_5_device_device = ldv_xmalloc_unknown_size(0);
3768 3 : ldv_5_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
3769 3 : ldv_5_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
3770 3 : ldv_5_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
3771 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
3772 :
3773 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3774 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3775 :
3776 : /* Jump to a subprocess 'main' initial state */
3777 1 : goto ldv_main_5;
3778 : /* End of the process */
3779 : return;
3780 1 :
3781 : /* Sbprocess main */
3782 : ldv_main_5:
3783 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3784 :
3785 4 : if (ldv_undef_int()) {
3786 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
3787 : /* Callback pre-call */
3788 1 : ldv_pre_probe();
3789 3 : if (ldv_5_rtc_class_ops_rtc_class_ops->open) {
3790 : /* LDV {"type": "CALLBACK", "call": "ldv_5_ret_default = (ldv_5_rtc_class_ops_rtc_class_ops->open)(ldv_5_device_device);", "comment": "probe"} */
3791 2 : ldv_5_ret_default = ldv_rtc_class_scenario_probe_5_11(ldv_5_rtc_class_ops_rtc_class_ops->open, ldv_5_device_device);
3792 : }
3793 : /* Callback post-call */
3794 4 : ldv_5_ret_default = ldv_post_probe(ldv_5_ret_default);
3795 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
3796 :
3797 4 : if (ldv_undef_int()) {
3798 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
3799 2 : ldv_assume(ldv_5_ret_default == 0);
3800 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
3801 :
3802 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3803 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3804 :
3805 : /* Jump to a subprocess 'call' initial state */
3806 1 : goto ldv_call_5;
3807 : }
3808 : else {
3809 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
3810 2 : ldv_assume(ldv_5_ret_default != 0);
3811 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
3812 :
3813 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3814 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3815 :
3816 : /* Jump to a subprocess 'main' initial state */
3817 1 : goto ldv_main_5;
3818 : }
3819 : }
3820 : else {
3821 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
3822 2 : ldv_free(ldv_5_rtc_device_rtc_device);
3823 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
3824 :
3825 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
3826 : /* Skip a non-replicative signal receiving */
3827 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
3828 :
3829 : /* Exit function at a terminal state */
3830 1 : return;
3831 : }
3832 : /* End of the subprocess 'main' */
3833 : return;
3834 1 :
3835 : /* Sbprocess call */
3836 : ldv_call_5:
3837 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
3838 :
3839 2 : switch (ldv_undef_int()) {
3840 3 : case 1: {
3841 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
3842 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_5_device_device, ldv_5_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
3843 2 : ldv_rtc_class_scenario_callback_5_22(ldv_5_callback_uevent, ldv_5_device_device, ldv_5_device_struct_kobj_uevent_env_ptr);
3844 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3845 :
3846 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3847 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3848 :
3849 : /* Jump to a subprocess 'call' initial state */
3850 1 : goto ldv_call_5;
3851 1 : break;
3852 : }
3853 3 : case 2: {
3854 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
3855 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_5_device_device, ldv_5_device_struct_pm_message);", "comment": "callback"} */
3856 2 : ldv_rtc_class_scenario_callback_5_21(ldv_5_callback_suspend, ldv_5_device_device, ldv_5_device_struct_pm_message);
3857 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3858 :
3859 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3860 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3861 :
3862 : /* Jump to a subprocess 'call' initial state */
3863 1 : goto ldv_call_5;
3864 : /* Jump to a subprocess 'call' initial state */
3865 : goto ldv_call_5;
3866 1 : break;
3867 : }
3868 3 : case 3: {
3869 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
3870 3 : ldv_5_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
3871 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
3872 :
3873 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
3874 : /* LDV {"type": "CALLBACK", "call": "((& mmc_date_show))(ldv_5_device_device, ldv_5_device_struct_device_attribute, ldv_5_ldv_param_18_2_default);", "comment": "callback"} */
3875 2 : ldv_rtc_class_scenario_callback_5_18(ldv_5_callback_show, ldv_5_device_device, ldv_5_device_struct_device_attribute, ldv_5_ldv_param_18_2_default);
3876 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3877 :
3878 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
3879 2 : ldv_free(ldv_5_ldv_param_18_2_default);
3880 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
3881 :
3882 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3883 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3884 :
3885 : /* Jump to a subprocess 'call' initial state */
3886 1 : goto ldv_call_5;
3887 : /* Jump to a subprocess 'call' initial state */
3888 : goto ldv_call_5;
3889 : /* Jump to a subprocess 'call' initial state */
3890 : goto ldv_call_5;
3891 1 : break;
3892 : }
3893 3 : case 4: {
3894 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
3895 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_5_device_device);", "comment": "callback"} */
3896 2 : ldv_rtc_class_scenario_callback_5_17(ldv_5_callback_resume, ldv_5_device_device);
3897 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3898 :
3899 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3900 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3901 :
3902 : /* Jump to a subprocess 'call' initial state */
3903 1 : goto ldv_call_5;
3904 : /* Jump to a subprocess 'call' initial state */
3905 : goto ldv_call_5;
3906 : /* Jump to a subprocess 'call' initial state */
3907 : goto ldv_call_5;
3908 : /* Jump to a subprocess 'call' initial state */
3909 : goto ldv_call_5;
3910 1 : break;
3911 : }
3912 3 : case 5: {
3913 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
3914 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_5_device_device);", "comment": "callback"} */
3915 2 : ldv_rtc_class_scenario_callback_5_16(ldv_5_callback_remove, ldv_5_device_device);
3916 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3917 :
3918 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3919 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3920 :
3921 : /* Jump to a subprocess 'call' initial state */
3922 1 : goto ldv_call_5;
3923 : /* Jump to a subprocess 'call' initial state */
3924 : goto ldv_call_5;
3925 : /* Jump to a subprocess 'call' initial state */
3926 : goto ldv_call_5;
3927 : /* Jump to a subprocess 'call' initial state */
3928 : goto ldv_call_5;
3929 : /* Jump to a subprocess 'call' initial state */
3930 : goto ldv_call_5;
3931 1 : break;
3932 : }
3933 3 : case 6: {
3934 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
3935 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_5_device_device, ldv_5_device_struct_device_driver_ptr);", "comment": "callback"} */
3936 2 : ldv_rtc_class_scenario_callback_5_15(ldv_5_callback_match, ldv_5_device_device, ldv_5_device_struct_device_driver_ptr);
3937 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3938 :
3939 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3940 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3941 :
3942 : /* Jump to a subprocess 'call' initial state */
3943 1 : goto ldv_call_5;
3944 : /* Jump to a subprocess 'call' initial state */
3945 : goto ldv_call_5;
3946 : /* Jump to a subprocess 'call' initial state */
3947 : goto ldv_call_5;
3948 : /* Jump to a subprocess 'call' initial state */
3949 : goto ldv_call_5;
3950 : /* Jump to a subprocess 'call' initial state */
3951 : goto ldv_call_5;
3952 : /* Jump to a subprocess 'call' initial state */
3953 : goto ldv_call_5;
3954 1 : break;
3955 : }
3956 3 : case 7: {
3957 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
3958 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_5_device_device);", "comment": "callback"} */
3959 2 : ldv_rtc_class_scenario_callback_5_4(ldv_5_callback_func_1_ptr, ldv_5_device_device);
3960 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
3961 :
3962 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
3963 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
3964 :
3965 : /* Jump to a subprocess 'call' initial state */
3966 1 : goto ldv_call_5;
3967 : /* Jump to a subprocess 'call' initial state */
3968 : goto ldv_call_5;
3969 : /* Jump to a subprocess 'call' initial state */
3970 : goto ldv_call_5;
3971 : /* Jump to a subprocess 'call' initial state */
3972 : goto ldv_call_5;
3973 : /* Jump to a subprocess 'call' initial state */
3974 : goto ldv_call_5;
3975 : /* Jump to a subprocess 'call' initial state */
3976 : goto ldv_call_5;
3977 : /* Jump to a subprocess 'call' initial state */
3978 : goto ldv_call_5;
3979 1 : break;
3980 : }
3981 3 : case 8: {
3982 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
3983 3 : if (ldv_5_rtc_class_ops_rtc_class_ops->release) {
3984 : /* LDV {"type": "CALLBACK", "call": "(ldv_5_rtc_class_ops_rtc_class_ops->release)(ldv_5_device_device);", "comment": "release"} */
3985 2 : ldv_rtc_class_scenario_release_5_2(ldv_5_rtc_class_ops_rtc_class_ops->release, ldv_5_device_device);
3986 : }
3987 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
3988 :
3989 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
3990 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
3991 :
3992 : /* Jump to a subprocess 'main' initial state */
3993 2 : goto ldv_main_5;
3994 1 : break;
3995 : }
3996 2 : default: ldv_stop();
3997 1 : }
3998 0 : /* End of the subprocess 'call' */
3999 0 : return;
4000 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_5"} */
4001 : }
4002 :
4003 : /* AUX_FUNC ldv_rtc_class_scenario_6 */
4004 : void ldv_rtc_class_scenario_6(void *arg0) {
4005 : /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_6"} */
4006 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
4007 1 : int (*ldv_6_callback_func_1_ptr)(struct device *);
4008 1 : int (*ldv_6_callback_match)(struct device *, struct device_driver *);
4009 1 : int (*ldv_6_callback_remove)(struct device *);
4010 1 : int (*ldv_6_callback_resume)(struct device *);
4011 1 : ssize_t (*ldv_6_callback_show)(struct device *, struct device_attribute *, char *);
4012 1 : int (*ldv_6_callback_suspend)(struct device *, pm_message_t );
4013 1 : int (*ldv_6_callback_uevent)(struct device *, struct kobj_uevent_env *);
4014 1 : struct device *ldv_6_device_device;
4015 1 : struct device_attribute *ldv_6_device_struct_device_attribute;
4016 1 : struct device_driver *ldv_6_device_struct_device_driver_ptr;
4017 1 : struct kobj_uevent_env *ldv_6_device_struct_kobj_uevent_env_ptr;
4018 1 : struct pm_message ldv_6_device_struct_pm_message;
4019 1 : char *ldv_6_ldv_param_18_2_default;
4020 1 : int ldv_6_ret_default;
4021 1 : struct rtc_class_ops *ldv_6_rtc_class_ops_rtc_class_ops;
4022 1 : struct rtc_device *ldv_6_rtc_device_rtc_device;
4023 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
4024 1 : /* Initialize automaton variables */
4025 2 : ldv_6_ret_default = 1;
4026 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
4027 3 : ldv_free(arg0);
4028 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
4029 1 :
4030 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
4031 4 : ldv_6_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
4032 3 : ldv_6_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
4033 3 : ldv_6_device_device = ldv_xmalloc_unknown_size(0);
4034 3 : ldv_6_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
4035 3 : ldv_6_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
4036 3 : ldv_6_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
4037 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
4038 :
4039 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4040 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4041 :
4042 : /* Jump to a subprocess 'main' initial state */
4043 1 : goto ldv_main_6;
4044 : /* End of the process */
4045 : return;
4046 1 :
4047 : /* Sbprocess main */
4048 : ldv_main_6:
4049 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4050 :
4051 4 : if (ldv_undef_int()) {
4052 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
4053 : /* Callback pre-call */
4054 1 : ldv_pre_probe();
4055 3 : if (ldv_6_rtc_class_ops_rtc_class_ops->open) {
4056 : /* LDV {"type": "CALLBACK", "call": "ldv_6_ret_default = (ldv_6_rtc_class_ops_rtc_class_ops->open)(ldv_6_device_device);", "comment": "probe"} */
4057 2 : ldv_6_ret_default = ldv_rtc_class_scenario_probe_6_11(ldv_6_rtc_class_ops_rtc_class_ops->open, ldv_6_device_device);
4058 : }
4059 : /* Callback post-call */
4060 4 : ldv_6_ret_default = ldv_post_probe(ldv_6_ret_default);
4061 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
4062 :
4063 4 : if (ldv_undef_int()) {
4064 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
4065 2 : ldv_assume(ldv_6_ret_default == 0);
4066 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
4067 :
4068 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4069 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4070 :
4071 : /* Jump to a subprocess 'call' initial state */
4072 1 : goto ldv_call_6;
4073 : }
4074 : else {
4075 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
4076 2 : ldv_assume(ldv_6_ret_default != 0);
4077 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
4078 :
4079 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4080 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4081 :
4082 : /* Jump to a subprocess 'main' initial state */
4083 1 : goto ldv_main_6;
4084 : }
4085 : }
4086 : else {
4087 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
4088 2 : ldv_free(ldv_6_rtc_device_rtc_device);
4089 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
4090 :
4091 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
4092 : /* Skip a non-replicative signal receiving */
4093 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
4094 :
4095 : /* Exit function at a terminal state */
4096 1 : return;
4097 : }
4098 : /* End of the subprocess 'main' */
4099 : return;
4100 1 :
4101 : /* Sbprocess call */
4102 : ldv_call_6:
4103 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4104 :
4105 2 : switch (ldv_undef_int()) {
4106 3 : case 1: {
4107 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
4108 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_6_device_device, ldv_6_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
4109 2 : ldv_rtc_class_scenario_callback_6_22(ldv_6_callback_uevent, ldv_6_device_device, ldv_6_device_struct_kobj_uevent_env_ptr);
4110 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4111 :
4112 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4113 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4114 :
4115 : /* Jump to a subprocess 'call' initial state */
4116 1 : goto ldv_call_6;
4117 1 : break;
4118 : }
4119 3 : case 2: {
4120 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
4121 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_6_device_device, ldv_6_device_struct_pm_message);", "comment": "callback"} */
4122 2 : ldv_rtc_class_scenario_callback_6_21(ldv_6_callback_suspend, ldv_6_device_device, ldv_6_device_struct_pm_message);
4123 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4124 :
4125 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4126 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4127 :
4128 : /* Jump to a subprocess 'call' initial state */
4129 1 : goto ldv_call_6;
4130 : /* Jump to a subprocess 'call' initial state */
4131 : goto ldv_call_6;
4132 1 : break;
4133 : }
4134 3 : case 3: {
4135 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
4136 3 : ldv_6_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
4137 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
4138 :
4139 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
4140 : /* LDV {"type": "CALLBACK", "call": "((& mmc_fwrev_show))(ldv_6_device_device, ldv_6_device_struct_device_attribute, ldv_6_ldv_param_18_2_default);", "comment": "callback"} */
4141 2 : ldv_rtc_class_scenario_callback_6_18(ldv_6_callback_show, ldv_6_device_device, ldv_6_device_struct_device_attribute, ldv_6_ldv_param_18_2_default);
4142 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4143 :
4144 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
4145 2 : ldv_free(ldv_6_ldv_param_18_2_default);
4146 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
4147 :
4148 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4149 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4150 :
4151 : /* Jump to a subprocess 'call' initial state */
4152 1 : goto ldv_call_6;
4153 : /* Jump to a subprocess 'call' initial state */
4154 : goto ldv_call_6;
4155 : /* Jump to a subprocess 'call' initial state */
4156 : goto ldv_call_6;
4157 1 : break;
4158 : }
4159 3 : case 4: {
4160 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
4161 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_6_device_device);", "comment": "callback"} */
4162 2 : ldv_rtc_class_scenario_callback_6_17(ldv_6_callback_resume, ldv_6_device_device);
4163 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4164 :
4165 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4166 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4167 :
4168 : /* Jump to a subprocess 'call' initial state */
4169 1 : goto ldv_call_6;
4170 : /* Jump to a subprocess 'call' initial state */
4171 : goto ldv_call_6;
4172 : /* Jump to a subprocess 'call' initial state */
4173 : goto ldv_call_6;
4174 : /* Jump to a subprocess 'call' initial state */
4175 : goto ldv_call_6;
4176 1 : break;
4177 : }
4178 3 : case 5: {
4179 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
4180 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_6_device_device);", "comment": "callback"} */
4181 2 : ldv_rtc_class_scenario_callback_6_16(ldv_6_callback_remove, ldv_6_device_device);
4182 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4183 :
4184 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4185 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4186 :
4187 : /* Jump to a subprocess 'call' initial state */
4188 1 : goto ldv_call_6;
4189 : /* Jump to a subprocess 'call' initial state */
4190 : goto ldv_call_6;
4191 : /* Jump to a subprocess 'call' initial state */
4192 : goto ldv_call_6;
4193 : /* Jump to a subprocess 'call' initial state */
4194 : goto ldv_call_6;
4195 : /* Jump to a subprocess 'call' initial state */
4196 : goto ldv_call_6;
4197 1 : break;
4198 : }
4199 3 : case 6: {
4200 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
4201 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_6_device_device, ldv_6_device_struct_device_driver_ptr);", "comment": "callback"} */
4202 2 : ldv_rtc_class_scenario_callback_6_15(ldv_6_callback_match, ldv_6_device_device, ldv_6_device_struct_device_driver_ptr);
4203 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4204 :
4205 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4206 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4207 :
4208 : /* Jump to a subprocess 'call' initial state */
4209 1 : goto ldv_call_6;
4210 : /* Jump to a subprocess 'call' initial state */
4211 : goto ldv_call_6;
4212 : /* Jump to a subprocess 'call' initial state */
4213 : goto ldv_call_6;
4214 : /* Jump to a subprocess 'call' initial state */
4215 : goto ldv_call_6;
4216 : /* Jump to a subprocess 'call' initial state */
4217 : goto ldv_call_6;
4218 : /* Jump to a subprocess 'call' initial state */
4219 : goto ldv_call_6;
4220 1 : break;
4221 : }
4222 3 : case 7: {
4223 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
4224 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_6_device_device);", "comment": "callback"} */
4225 2 : ldv_rtc_class_scenario_callback_6_4(ldv_6_callback_func_1_ptr, ldv_6_device_device);
4226 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4227 :
4228 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4229 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4230 :
4231 : /* Jump to a subprocess 'call' initial state */
4232 1 : goto ldv_call_6;
4233 : /* Jump to a subprocess 'call' initial state */
4234 : goto ldv_call_6;
4235 : /* Jump to a subprocess 'call' initial state */
4236 : goto ldv_call_6;
4237 : /* Jump to a subprocess 'call' initial state */
4238 : goto ldv_call_6;
4239 : /* Jump to a subprocess 'call' initial state */
4240 : goto ldv_call_6;
4241 : /* Jump to a subprocess 'call' initial state */
4242 : goto ldv_call_6;
4243 : /* Jump to a subprocess 'call' initial state */
4244 : goto ldv_call_6;
4245 1 : break;
4246 : }
4247 3 : case 8: {
4248 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
4249 3 : if (ldv_6_rtc_class_ops_rtc_class_ops->release) {
4250 : /* LDV {"type": "CALLBACK", "call": "(ldv_6_rtc_class_ops_rtc_class_ops->release)(ldv_6_device_device);", "comment": "release"} */
4251 2 : ldv_rtc_class_scenario_release_6_2(ldv_6_rtc_class_ops_rtc_class_ops->release, ldv_6_device_device);
4252 : }
4253 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
4254 :
4255 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4256 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4257 :
4258 : /* Jump to a subprocess 'main' initial state */
4259 2 : goto ldv_main_6;
4260 1 : break;
4261 : }
4262 2 : default: ldv_stop();
4263 1 : }
4264 0 : /* End of the subprocess 'call' */
4265 0 : return;
4266 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_6"} */
4267 : }
4268 :
4269 : /* AUX_FUNC ldv_rtc_class_scenario_7 */
4270 : void ldv_rtc_class_scenario_7(void *arg0) {
4271 : /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_7"} */
4272 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
4273 1 : int (*ldv_7_callback_func_1_ptr)(struct device *);
4274 1 : int (*ldv_7_callback_match)(struct device *, struct device_driver *);
4275 1 : int (*ldv_7_callback_remove)(struct device *);
4276 1 : int (*ldv_7_callback_resume)(struct device *);
4277 1 : ssize_t (*ldv_7_callback_show)(struct device *, struct device_attribute *, char *);
4278 1 : int (*ldv_7_callback_suspend)(struct device *, pm_message_t );
4279 1 : int (*ldv_7_callback_uevent)(struct device *, struct kobj_uevent_env *);
4280 1 : struct device *ldv_7_device_device;
4281 1 : struct device_attribute *ldv_7_device_struct_device_attribute;
4282 1 : struct device_driver *ldv_7_device_struct_device_driver_ptr;
4283 1 : struct kobj_uevent_env *ldv_7_device_struct_kobj_uevent_env_ptr;
4284 1 : struct pm_message ldv_7_device_struct_pm_message;
4285 1 : char *ldv_7_ldv_param_18_2_default;
4286 1 : int ldv_7_ret_default;
4287 1 : struct rtc_class_ops *ldv_7_rtc_class_ops_rtc_class_ops;
4288 1 : struct rtc_device *ldv_7_rtc_device_rtc_device;
4289 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
4290 1 : /* Initialize automaton variables */
4291 2 : ldv_7_ret_default = 1;
4292 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
4293 3 : ldv_free(arg0);
4294 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
4295 1 :
4296 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
4297 4 : ldv_7_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
4298 3 : ldv_7_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
4299 3 : ldv_7_device_device = ldv_xmalloc_unknown_size(0);
4300 3 : ldv_7_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
4301 3 : ldv_7_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
4302 3 : ldv_7_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
4303 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
4304 :
4305 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4306 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4307 :
4308 : /* Jump to a subprocess 'main' initial state */
4309 1 : goto ldv_main_7;
4310 : /* End of the process */
4311 : return;
4312 1 :
4313 : /* Sbprocess main */
4314 : ldv_main_7:
4315 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4316 :
4317 4 : if (ldv_undef_int()) {
4318 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
4319 : /* Callback pre-call */
4320 1 : ldv_pre_probe();
4321 3 : if (ldv_7_rtc_class_ops_rtc_class_ops->open) {
4322 : /* LDV {"type": "CALLBACK", "call": "ldv_7_ret_default = (ldv_7_rtc_class_ops_rtc_class_ops->open)(ldv_7_device_device);", "comment": "probe"} */
4323 2 : ldv_7_ret_default = ldv_rtc_class_scenario_probe_7_11(ldv_7_rtc_class_ops_rtc_class_ops->open, ldv_7_device_device);
4324 : }
4325 : /* Callback post-call */
4326 4 : ldv_7_ret_default = ldv_post_probe(ldv_7_ret_default);
4327 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
4328 :
4329 4 : if (ldv_undef_int()) {
4330 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
4331 2 : ldv_assume(ldv_7_ret_default == 0);
4332 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
4333 :
4334 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4335 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4336 :
4337 : /* Jump to a subprocess 'call' initial state */
4338 1 : goto ldv_call_7;
4339 : }
4340 : else {
4341 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
4342 2 : ldv_assume(ldv_7_ret_default != 0);
4343 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
4344 :
4345 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4346 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4347 :
4348 : /* Jump to a subprocess 'main' initial state */
4349 1 : goto ldv_main_7;
4350 : }
4351 : }
4352 : else {
4353 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
4354 2 : ldv_free(ldv_7_rtc_device_rtc_device);
4355 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
4356 :
4357 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
4358 : /* Skip a non-replicative signal receiving */
4359 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
4360 :
4361 : /* Exit function at a terminal state */
4362 1 : return;
4363 : }
4364 : /* End of the subprocess 'main' */
4365 : return;
4366 1 :
4367 : /* Sbprocess call */
4368 : ldv_call_7:
4369 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4370 :
4371 2 : switch (ldv_undef_int()) {
4372 3 : case 1: {
4373 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
4374 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_7_device_device, ldv_7_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
4375 2 : ldv_rtc_class_scenario_callback_7_22(ldv_7_callback_uevent, ldv_7_device_device, ldv_7_device_struct_kobj_uevent_env_ptr);
4376 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4377 :
4378 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4379 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4380 :
4381 : /* Jump to a subprocess 'call' initial state */
4382 1 : goto ldv_call_7;
4383 1 : break;
4384 : }
4385 3 : case 2: {
4386 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
4387 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_7_device_device, ldv_7_device_struct_pm_message);", "comment": "callback"} */
4388 2 : ldv_rtc_class_scenario_callback_7_21(ldv_7_callback_suspend, ldv_7_device_device, ldv_7_device_struct_pm_message);
4389 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4390 :
4391 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4392 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4393 :
4394 : /* Jump to a subprocess 'call' initial state */
4395 1 : goto ldv_call_7;
4396 : /* Jump to a subprocess 'call' initial state */
4397 : goto ldv_call_7;
4398 1 : break;
4399 : }
4400 3 : case 3: {
4401 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
4402 3 : ldv_7_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
4403 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
4404 :
4405 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
4406 : /* LDV {"type": "CALLBACK", "call": "((& mmc_hwrev_show))(ldv_7_device_device, ldv_7_device_struct_device_attribute, ldv_7_ldv_param_18_2_default);", "comment": "callback"} */
4407 2 : ldv_rtc_class_scenario_callback_7_18(ldv_7_callback_show, ldv_7_device_device, ldv_7_device_struct_device_attribute, ldv_7_ldv_param_18_2_default);
4408 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4409 :
4410 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
4411 2 : ldv_free(ldv_7_ldv_param_18_2_default);
4412 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
4413 :
4414 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4415 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4416 :
4417 : /* Jump to a subprocess 'call' initial state */
4418 1 : goto ldv_call_7;
4419 : /* Jump to a subprocess 'call' initial state */
4420 : goto ldv_call_7;
4421 : /* Jump to a subprocess 'call' initial state */
4422 : goto ldv_call_7;
4423 1 : break;
4424 : }
4425 3 : case 4: {
4426 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
4427 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_7_device_device);", "comment": "callback"} */
4428 2 : ldv_rtc_class_scenario_callback_7_17(ldv_7_callback_resume, ldv_7_device_device);
4429 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4430 :
4431 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4432 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4433 :
4434 : /* Jump to a subprocess 'call' initial state */
4435 1 : goto ldv_call_7;
4436 : /* Jump to a subprocess 'call' initial state */
4437 : goto ldv_call_7;
4438 : /* Jump to a subprocess 'call' initial state */
4439 : goto ldv_call_7;
4440 : /* Jump to a subprocess 'call' initial state */
4441 : goto ldv_call_7;
4442 1 : break;
4443 : }
4444 3 : case 5: {
4445 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
4446 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_7_device_device);", "comment": "callback"} */
4447 2 : ldv_rtc_class_scenario_callback_7_16(ldv_7_callback_remove, ldv_7_device_device);
4448 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4449 :
4450 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4451 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4452 :
4453 : /* Jump to a subprocess 'call' initial state */
4454 1 : goto ldv_call_7;
4455 : /* Jump to a subprocess 'call' initial state */
4456 : goto ldv_call_7;
4457 : /* Jump to a subprocess 'call' initial state */
4458 : goto ldv_call_7;
4459 : /* Jump to a subprocess 'call' initial state */
4460 : goto ldv_call_7;
4461 : /* Jump to a subprocess 'call' initial state */
4462 : goto ldv_call_7;
4463 1 : break;
4464 : }
4465 3 : case 6: {
4466 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
4467 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_7_device_device, ldv_7_device_struct_device_driver_ptr);", "comment": "callback"} */
4468 2 : ldv_rtc_class_scenario_callback_7_15(ldv_7_callback_match, ldv_7_device_device, ldv_7_device_struct_device_driver_ptr);
4469 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4470 :
4471 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4472 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4473 :
4474 : /* Jump to a subprocess 'call' initial state */
4475 1 : goto ldv_call_7;
4476 : /* Jump to a subprocess 'call' initial state */
4477 : goto ldv_call_7;
4478 : /* Jump to a subprocess 'call' initial state */
4479 : goto ldv_call_7;
4480 : /* Jump to a subprocess 'call' initial state */
4481 : goto ldv_call_7;
4482 : /* Jump to a subprocess 'call' initial state */
4483 : goto ldv_call_7;
4484 : /* Jump to a subprocess 'call' initial state */
4485 : goto ldv_call_7;
4486 1 : break;
4487 : }
4488 3 : case 7: {
4489 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
4490 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_7_device_device);", "comment": "callback"} */
4491 2 : ldv_rtc_class_scenario_callback_7_4(ldv_7_callback_func_1_ptr, ldv_7_device_device);
4492 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4493 :
4494 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4495 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4496 :
4497 : /* Jump to a subprocess 'call' initial state */
4498 1 : goto ldv_call_7;
4499 : /* Jump to a subprocess 'call' initial state */
4500 : goto ldv_call_7;
4501 : /* Jump to a subprocess 'call' initial state */
4502 : goto ldv_call_7;
4503 : /* Jump to a subprocess 'call' initial state */
4504 : goto ldv_call_7;
4505 : /* Jump to a subprocess 'call' initial state */
4506 : goto ldv_call_7;
4507 : /* Jump to a subprocess 'call' initial state */
4508 : goto ldv_call_7;
4509 : /* Jump to a subprocess 'call' initial state */
4510 : goto ldv_call_7;
4511 1 : break;
4512 : }
4513 3 : case 8: {
4514 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
4515 3 : if (ldv_7_rtc_class_ops_rtc_class_ops->release) {
4516 : /* LDV {"type": "CALLBACK", "call": "(ldv_7_rtc_class_ops_rtc_class_ops->release)(ldv_7_device_device);", "comment": "release"} */
4517 2 : ldv_rtc_class_scenario_release_7_2(ldv_7_rtc_class_ops_rtc_class_ops->release, ldv_7_device_device);
4518 : }
4519 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
4520 :
4521 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4522 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4523 :
4524 : /* Jump to a subprocess 'main' initial state */
4525 2 : goto ldv_main_7;
4526 1 : break;
4527 : }
4528 2 : default: ldv_stop();
4529 1 : }
4530 0 : /* End of the subprocess 'call' */
4531 0 : return;
4532 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_7"} */
4533 : }
4534 :
4535 : /* AUX_FUNC ldv_rtc_class_scenario_8 */
4536 : void ldv_rtc_class_scenario_8(void *arg0) {
4537 : /* LDV {"thread": 8, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_8"} */
4538 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
4539 1 : int (*ldv_8_callback_func_1_ptr)(struct device *);
4540 1 : int (*ldv_8_callback_match)(struct device *, struct device_driver *);
4541 1 : int (*ldv_8_callback_remove)(struct device *);
4542 1 : int (*ldv_8_callback_resume)(struct device *);
4543 1 : ssize_t (*ldv_8_callback_show)(struct device *, struct device_attribute *, char *);
4544 1 : int (*ldv_8_callback_suspend)(struct device *, pm_message_t );
4545 1 : int (*ldv_8_callback_uevent)(struct device *, struct kobj_uevent_env *);
4546 1 : struct device *ldv_8_device_device;
4547 1 : struct device_attribute *ldv_8_device_struct_device_attribute;
4548 1 : struct device_driver *ldv_8_device_struct_device_driver_ptr;
4549 1 : struct kobj_uevent_env *ldv_8_device_struct_kobj_uevent_env_ptr;
4550 1 : struct pm_message ldv_8_device_struct_pm_message;
4551 1 : char *ldv_8_ldv_param_18_2_default;
4552 1 : int ldv_8_ret_default;
4553 1 : struct rtc_class_ops *ldv_8_rtc_class_ops_rtc_class_ops;
4554 1 : struct rtc_device *ldv_8_rtc_device_rtc_device;
4555 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
4556 1 : /* Initialize automaton variables */
4557 2 : ldv_8_ret_default = 1;
4558 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
4559 3 : ldv_free(arg0);
4560 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
4561 1 :
4562 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
4563 4 : ldv_8_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
4564 3 : ldv_8_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
4565 3 : ldv_8_device_device = ldv_xmalloc_unknown_size(0);
4566 3 : ldv_8_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
4567 3 : ldv_8_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
4568 3 : ldv_8_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
4569 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
4570 :
4571 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4572 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4573 :
4574 : /* Jump to a subprocess 'main' initial state */
4575 1 : goto ldv_main_8;
4576 : /* End of the process */
4577 : return;
4578 1 :
4579 : /* Sbprocess main */
4580 : ldv_main_8:
4581 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4582 :
4583 4 : if (ldv_undef_int()) {
4584 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
4585 : /* Callback pre-call */
4586 1 : ldv_pre_probe();
4587 3 : if (ldv_8_rtc_class_ops_rtc_class_ops->open) {
4588 : /* LDV {"type": "CALLBACK", "call": "ldv_8_ret_default = (ldv_8_rtc_class_ops_rtc_class_ops->open)(ldv_8_device_device);", "comment": "probe"} */
4589 2 : ldv_8_ret_default = ldv_rtc_class_scenario_probe_8_11(ldv_8_rtc_class_ops_rtc_class_ops->open, ldv_8_device_device);
4590 : }
4591 : /* Callback post-call */
4592 4 : ldv_8_ret_default = ldv_post_probe(ldv_8_ret_default);
4593 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
4594 :
4595 4 : if (ldv_undef_int()) {
4596 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
4597 2 : ldv_assume(ldv_8_ret_default == 0);
4598 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
4599 :
4600 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4601 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4602 :
4603 : /* Jump to a subprocess 'call' initial state */
4604 1 : goto ldv_call_8;
4605 : }
4606 : else {
4607 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
4608 2 : ldv_assume(ldv_8_ret_default != 0);
4609 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
4610 :
4611 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4612 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4613 :
4614 : /* Jump to a subprocess 'main' initial state */
4615 1 : goto ldv_main_8;
4616 : }
4617 : }
4618 : else {
4619 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
4620 2 : ldv_free(ldv_8_rtc_device_rtc_device);
4621 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
4622 :
4623 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
4624 : /* Skip a non-replicative signal receiving */
4625 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
4626 :
4627 : /* Exit function at a terminal state */
4628 1 : return;
4629 : }
4630 : /* End of the subprocess 'main' */
4631 : return;
4632 1 :
4633 : /* Sbprocess call */
4634 : ldv_call_8:
4635 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4636 :
4637 2 : switch (ldv_undef_int()) {
4638 3 : case 1: {
4639 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
4640 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_8_device_device, ldv_8_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
4641 2 : ldv_rtc_class_scenario_callback_8_22(ldv_8_callback_uevent, ldv_8_device_device, ldv_8_device_struct_kobj_uevent_env_ptr);
4642 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4643 :
4644 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4645 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4646 :
4647 : /* Jump to a subprocess 'call' initial state */
4648 1 : goto ldv_call_8;
4649 1 : break;
4650 : }
4651 3 : case 2: {
4652 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
4653 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_8_device_device, ldv_8_device_struct_pm_message);", "comment": "callback"} */
4654 2 : ldv_rtc_class_scenario_callback_8_21(ldv_8_callback_suspend, ldv_8_device_device, ldv_8_device_struct_pm_message);
4655 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4656 :
4657 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4658 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4659 :
4660 : /* Jump to a subprocess 'call' initial state */
4661 1 : goto ldv_call_8;
4662 : /* Jump to a subprocess 'call' initial state */
4663 : goto ldv_call_8;
4664 1 : break;
4665 : }
4666 3 : case 3: {
4667 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
4668 3 : ldv_8_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
4669 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
4670 :
4671 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
4672 : /* LDV {"type": "CALLBACK", "call": "((& mmc_manfid_show))(ldv_8_device_device, ldv_8_device_struct_device_attribute, ldv_8_ldv_param_18_2_default);", "comment": "callback"} */
4673 2 : ldv_rtc_class_scenario_callback_8_18(ldv_8_callback_show, ldv_8_device_device, ldv_8_device_struct_device_attribute, ldv_8_ldv_param_18_2_default);
4674 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4675 :
4676 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
4677 2 : ldv_free(ldv_8_ldv_param_18_2_default);
4678 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
4679 :
4680 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4681 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4682 :
4683 : /* Jump to a subprocess 'call' initial state */
4684 1 : goto ldv_call_8;
4685 : /* Jump to a subprocess 'call' initial state */
4686 : goto ldv_call_8;
4687 : /* Jump to a subprocess 'call' initial state */
4688 : goto ldv_call_8;
4689 1 : break;
4690 : }
4691 3 : case 4: {
4692 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
4693 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_8_device_device);", "comment": "callback"} */
4694 2 : ldv_rtc_class_scenario_callback_8_17(ldv_8_callback_resume, ldv_8_device_device);
4695 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4696 :
4697 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4698 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4699 :
4700 : /* Jump to a subprocess 'call' initial state */
4701 1 : goto ldv_call_8;
4702 : /* Jump to a subprocess 'call' initial state */
4703 : goto ldv_call_8;
4704 : /* Jump to a subprocess 'call' initial state */
4705 : goto ldv_call_8;
4706 : /* Jump to a subprocess 'call' initial state */
4707 : goto ldv_call_8;
4708 1 : break;
4709 : }
4710 3 : case 5: {
4711 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
4712 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_8_device_device);", "comment": "callback"} */
4713 2 : ldv_rtc_class_scenario_callback_8_16(ldv_8_callback_remove, ldv_8_device_device);
4714 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4715 :
4716 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4717 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4718 :
4719 : /* Jump to a subprocess 'call' initial state */
4720 1 : goto ldv_call_8;
4721 : /* Jump to a subprocess 'call' initial state */
4722 : goto ldv_call_8;
4723 : /* Jump to a subprocess 'call' initial state */
4724 : goto ldv_call_8;
4725 : /* Jump to a subprocess 'call' initial state */
4726 : goto ldv_call_8;
4727 : /* Jump to a subprocess 'call' initial state */
4728 : goto ldv_call_8;
4729 1 : break;
4730 : }
4731 3 : case 6: {
4732 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
4733 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_8_device_device, ldv_8_device_struct_device_driver_ptr);", "comment": "callback"} */
4734 2 : ldv_rtc_class_scenario_callback_8_15(ldv_8_callback_match, ldv_8_device_device, ldv_8_device_struct_device_driver_ptr);
4735 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4736 :
4737 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4738 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4739 :
4740 : /* Jump to a subprocess 'call' initial state */
4741 1 : goto ldv_call_8;
4742 : /* Jump to a subprocess 'call' initial state */
4743 : goto ldv_call_8;
4744 : /* Jump to a subprocess 'call' initial state */
4745 : goto ldv_call_8;
4746 : /* Jump to a subprocess 'call' initial state */
4747 : goto ldv_call_8;
4748 : /* Jump to a subprocess 'call' initial state */
4749 : goto ldv_call_8;
4750 : /* Jump to a subprocess 'call' initial state */
4751 : goto ldv_call_8;
4752 1 : break;
4753 : }
4754 3 : case 7: {
4755 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
4756 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_8_device_device);", "comment": "callback"} */
4757 2 : ldv_rtc_class_scenario_callback_8_4(ldv_8_callback_func_1_ptr, ldv_8_device_device);
4758 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4759 :
4760 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4761 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4762 :
4763 : /* Jump to a subprocess 'call' initial state */
4764 1 : goto ldv_call_8;
4765 : /* Jump to a subprocess 'call' initial state */
4766 : goto ldv_call_8;
4767 : /* Jump to a subprocess 'call' initial state */
4768 : goto ldv_call_8;
4769 : /* Jump to a subprocess 'call' initial state */
4770 : goto ldv_call_8;
4771 : /* Jump to a subprocess 'call' initial state */
4772 : goto ldv_call_8;
4773 : /* Jump to a subprocess 'call' initial state */
4774 : goto ldv_call_8;
4775 : /* Jump to a subprocess 'call' initial state */
4776 : goto ldv_call_8;
4777 1 : break;
4778 : }
4779 3 : case 8: {
4780 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
4781 3 : if (ldv_8_rtc_class_ops_rtc_class_ops->release) {
4782 : /* LDV {"type": "CALLBACK", "call": "(ldv_8_rtc_class_ops_rtc_class_ops->release)(ldv_8_device_device);", "comment": "release"} */
4783 2 : ldv_rtc_class_scenario_release_8_2(ldv_8_rtc_class_ops_rtc_class_ops->release, ldv_8_device_device);
4784 : }
4785 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
4786 :
4787 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4788 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4789 :
4790 : /* Jump to a subprocess 'main' initial state */
4791 2 : goto ldv_main_8;
4792 1 : break;
4793 : }
4794 2 : default: ldv_stop();
4795 1 : }
4796 0 : /* End of the subprocess 'call' */
4797 0 : return;
4798 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_8"} */
4799 : }
4800 :
4801 : /* AUX_FUNC ldv_rtc_class_scenario_9 */
4802 : void ldv_rtc_class_scenario_9(void *arg0) {
4803 : /* LDV {"thread": 9, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'rtc_class_scenario(rtc)'", "function": "ldv_rtc_class_scenario_9"} */
4804 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
4805 1 : int (*ldv_9_callback_func_1_ptr)(struct device *);
4806 1 : int (*ldv_9_callback_match)(struct device *, struct device_driver *);
4807 1 : int (*ldv_9_callback_remove)(struct device *);
4808 1 : int (*ldv_9_callback_resume)(struct device *);
4809 1 : ssize_t (*ldv_9_callback_show)(struct device *, struct device_attribute *, char *);
4810 1 : int (*ldv_9_callback_suspend)(struct device *, pm_message_t );
4811 1 : int (*ldv_9_callback_uevent)(struct device *, struct kobj_uevent_env *);
4812 1 : struct device *ldv_9_device_device;
4813 1 : struct device_attribute *ldv_9_device_struct_device_attribute;
4814 1 : struct device_driver *ldv_9_device_struct_device_driver_ptr;
4815 1 : struct kobj_uevent_env *ldv_9_device_struct_kobj_uevent_env_ptr;
4816 1 : struct pm_message ldv_9_device_struct_pm_message;
4817 1 : char *ldv_9_ldv_param_18_2_default;
4818 1 : int ldv_9_ret_default;
4819 1 : struct rtc_class_ops *ldv_9_rtc_class_ops_rtc_class_ops;
4820 1 : struct rtc_device *ldv_9_rtc_device_rtc_device;
4821 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
4822 1 : /* Initialize automaton variables */
4823 2 : ldv_9_ret_default = 1;
4824 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin RTC callbacks invocations scenario."} */
4825 3 : ldv_free(arg0);
4826 1 : /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
4827 1 :
4828 1 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
4829 4 : ldv_9_rtc_device_rtc_device = ldv_xmalloc_unknown_size(0);
4830 3 : ldv_9_rtc_class_ops_rtc_class_ops = ldv_xmalloc_unknown_size(0);
4831 3 : ldv_9_device_device = ldv_xmalloc_unknown_size(0);
4832 3 : ldv_9_device_struct_device_attribute = ldv_xmalloc_unknown_size(0);
4833 3 : ldv_9_device_struct_device_driver_ptr = ldv_xmalloc_unknown_size(0);
4834 3 : ldv_9_device_struct_kobj_uevent_env_ptr = ldv_xmalloc_unknown_size(0);
4835 : /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
4836 :
4837 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4838 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4839 :
4840 : /* Jump to a subprocess 'main' initial state */
4841 1 : goto ldv_main_9;
4842 : /* End of the process */
4843 : return;
4844 1 :
4845 : /* Sbprocess main */
4846 : ldv_main_9:
4847 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4848 :
4849 4 : if (ldv_undef_int()) {
4850 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe a new RTC device. Invoke callback probe from RTC."} */
4851 : /* Callback pre-call */
4852 1 : ldv_pre_probe();
4853 3 : if (ldv_9_rtc_class_ops_rtc_class_ops->open) {
4854 : /* LDV {"type": "CALLBACK", "call": "ldv_9_ret_default = (ldv_9_rtc_class_ops_rtc_class_ops->open)(ldv_9_device_device);", "comment": "probe"} */
4855 2 : ldv_9_ret_default = ldv_rtc_class_scenario_probe_9_11(ldv_9_rtc_class_ops_rtc_class_ops->open, ldv_9_device_device);
4856 : }
4857 : /* Callback post-call */
4858 4 : ldv_9_ret_default = ldv_post_probe(ldv_9_ret_default);
4859 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
4860 :
4861 4 : if (ldv_undef_int()) {
4862 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "The RTC device has been successfully probed."} */
4863 2 : ldv_assume(ldv_9_ret_default == 0);
4864 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
4865 :
4866 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4867 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4868 :
4869 : /* Jump to a subprocess 'call' initial state */
4870 1 : goto ldv_call_9;
4871 : }
4872 : else {
4873 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe the RTC device."} */
4874 2 : ldv_assume(ldv_9_ret_default != 0);
4875 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
4876 :
4877 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
4878 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
4879 :
4880 : /* Jump to a subprocess 'main' initial state */
4881 1 : goto ldv_main_9;
4882 : }
4883 : }
4884 : else {
4885 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
4886 2 : ldv_free(ldv_9_rtc_device_rtc_device);
4887 : /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
4888 :
4889 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish RTC callbacks invocations scenario."} */
4890 : /* Skip a non-replicative signal receiving */
4891 : /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
4892 :
4893 : /* Exit function at a terminal state */
4894 1 : return;
4895 : }
4896 : /* End of the subprocess 'main' */
4897 : return;
4898 1 :
4899 : /* Sbprocess call */
4900 : ldv_call_9:
4901 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
4902 :
4903 2 : switch (ldv_undef_int()) {
4904 3 : case 1: {
4905 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback uevent from bus_type."} */
4906 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_uevent))(ldv_9_device_device, ldv_9_device_struct_kobj_uevent_env_ptr);", "comment": "callback"} */
4907 2 : ldv_rtc_class_scenario_callback_9_22(ldv_9_callback_uevent, ldv_9_device_device, ldv_9_device_struct_kobj_uevent_env_ptr);
4908 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4909 :
4910 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4911 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4912 :
4913 : /* Jump to a subprocess 'call' initial state */
4914 1 : goto ldv_call_9;
4915 1 : break;
4916 : }
4917 3 : case 2: {
4918 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from bus_type."} */
4919 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_suspend))(ldv_9_device_device, ldv_9_device_struct_pm_message);", "comment": "callback"} */
4920 2 : ldv_rtc_class_scenario_callback_9_21(ldv_9_callback_suspend, ldv_9_device_device, ldv_9_device_struct_pm_message);
4921 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4922 :
4923 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4924 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4925 :
4926 : /* Jump to a subprocess 'call' initial state */
4927 1 : goto ldv_call_9;
4928 : /* Jump to a subprocess 'call' initial state */
4929 : goto ldv_call_9;
4930 1 : break;
4931 : }
4932 3 : case 3: {
4933 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
4934 3 : ldv_9_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
4935 : /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
4936 :
4937 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback show from device_attribute."} */
4938 : /* LDV {"type": "CALLBACK", "call": "((& mmc_name_show))(ldv_9_device_device, ldv_9_device_struct_device_attribute, ldv_9_ldv_param_18_2_default);", "comment": "callback"} */
4939 2 : ldv_rtc_class_scenario_callback_9_18(ldv_9_callback_show, ldv_9_device_device, ldv_9_device_struct_device_attribute, ldv_9_ldv_param_18_2_default);
4940 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4941 :
4942 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
4943 2 : ldv_free(ldv_9_ldv_param_18_2_default);
4944 : /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
4945 :
4946 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4947 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4948 :
4949 : /* Jump to a subprocess 'call' initial state */
4950 1 : goto ldv_call_9;
4951 : /* Jump to a subprocess 'call' initial state */
4952 : goto ldv_call_9;
4953 : /* Jump to a subprocess 'call' initial state */
4954 : goto ldv_call_9;
4955 1 : break;
4956 : }
4957 3 : case 4: {
4958 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from bus_type."} */
4959 : /* LDV {"type": "CALLBACK", "call": "((& mmc_bus_resume))(ldv_9_device_device);", "comment": "callback"} */
4960 2 : ldv_rtc_class_scenario_callback_9_17(ldv_9_callback_resume, ldv_9_device_device);
4961 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4962 :
4963 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4964 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4965 :
4966 : /* Jump to a subprocess 'call' initial state */
4967 1 : goto ldv_call_9;
4968 : /* Jump to a subprocess 'call' initial state */
4969 : goto ldv_call_9;
4970 : /* Jump to a subprocess 'call' initial state */
4971 : goto ldv_call_9;
4972 : /* Jump to a subprocess 'call' initial state */
4973 : goto ldv_call_9;
4974 1 : break;
4975 : }
4976 3 : case 5: {
4977 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from bus_type."} */
4978 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_remove))(ldv_9_device_device);", "comment": "callback"} */
4979 2 : ldv_rtc_class_scenario_callback_9_16(ldv_9_callback_remove, ldv_9_device_device);
4980 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
4981 :
4982 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
4983 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
4984 :
4985 : /* Jump to a subprocess 'call' initial state */
4986 1 : goto ldv_call_9;
4987 : /* Jump to a subprocess 'call' initial state */
4988 : goto ldv_call_9;
4989 : /* Jump to a subprocess 'call' initial state */
4990 : goto ldv_call_9;
4991 : /* Jump to a subprocess 'call' initial state */
4992 : goto ldv_call_9;
4993 : /* Jump to a subprocess 'call' initial state */
4994 : goto ldv_call_9;
4995 1 : break;
4996 : }
4997 3 : case 6: {
4998 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback match from bus_type."} */
4999 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_match))(ldv_9_device_device, ldv_9_device_struct_device_driver_ptr);", "comment": "callback"} */
5000 2 : ldv_rtc_class_scenario_callback_9_15(ldv_9_callback_match, ldv_9_device_device, ldv_9_device_struct_device_driver_ptr);
5001 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
5002 :
5003 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
5004 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
5005 :
5006 : /* Jump to a subprocess 'call' initial state */
5007 1 : goto ldv_call_9;
5008 : /* Jump to a subprocess 'call' initial state */
5009 : goto ldv_call_9;
5010 : /* Jump to a subprocess 'call' initial state */
5011 : goto ldv_call_9;
5012 : /* Jump to a subprocess 'call' initial state */
5013 : goto ldv_call_9;
5014 : /* Jump to a subprocess 'call' initial state */
5015 : goto ldv_call_9;
5016 : /* Jump to a subprocess 'call' initial state */
5017 : goto ldv_call_9;
5018 1 : break;
5019 : }
5020 3 : case 7: {
5021 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback probe from bus_type."} */
5022 : /* LDV {"type": "CALLBACK", "call": "((& sdio_bus_probe))(ldv_9_device_device);", "comment": "callback"} */
5023 2 : ldv_rtc_class_scenario_callback_9_4(ldv_9_callback_func_1_ptr, ldv_9_device_device);
5024 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
5025 :
5026 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is probed."} */
5027 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
5028 :
5029 : /* Jump to a subprocess 'call' initial state */
5030 1 : goto ldv_call_9;
5031 : /* Jump to a subprocess 'call' initial state */
5032 : goto ldv_call_9;
5033 : /* Jump to a subprocess 'call' initial state */
5034 : goto ldv_call_9;
5035 : /* Jump to a subprocess 'call' initial state */
5036 : goto ldv_call_9;
5037 : /* Jump to a subprocess 'call' initial state */
5038 : goto ldv_call_9;
5039 : /* Jump to a subprocess 'call' initial state */
5040 : goto ldv_call_9;
5041 : /* Jump to a subprocess 'call' initial state */
5042 : goto ldv_call_9;
5043 1 : break;
5044 : }
5045 3 : case 8: {
5046 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from RTC."} */
5047 3 : if (ldv_9_rtc_class_ops_rtc_class_ops->release) {
5048 : /* LDV {"type": "CALLBACK", "call": "(ldv_9_rtc_class_ops_rtc_class_ops->release)(ldv_9_device_device);", "comment": "release"} */
5049 2 : ldv_rtc_class_scenario_release_9_2(ldv_9_rtc_class_ops_rtc_class_ops->release, ldv_9_device_device);
5050 : }
5051 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
5052 :
5053 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "The RTC device is inserted in the system."} */
5054 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
5055 :
5056 : /* Jump to a subprocess 'main' initial state */
5057 2 : goto ldv_main_9;
5058 1 : break;
5059 : }
5060 2 : default: ldv_stop();
5061 1 : }
5062 0 : /* End of the subprocess 'call' */
5063 0 : return;
5064 : /* LDV {"comment": "End of control function based on process 'rtc_class_scenario(rtc)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_rtc_class_scenario_9"} */
5065 : }
5066 :
5067 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_10_18 */
5068 : void ldv_rtc_class_scenario_callback_10_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5069 2 : ((& mmc_oemid_show))(arg1, arg2, arg3);
5070 1 : }
5071 :
5072 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_11_18 */
5073 : void ldv_rtc_class_scenario_callback_11_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5074 2 : ((& mmc_scr_show))(arg1, arg2, arg3);
5075 1 : }
5076 :
5077 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_12_18 */
5078 : void ldv_rtc_class_scenario_callback_12_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5079 2 : ((& mmc_serial_show))(arg1, arg2, arg3);
5080 1 : }
5081 :
5082 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_17_18 */
5083 : void ldv_rtc_class_scenario_callback_17_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5084 2 : ((& mmc_cid_show))(arg1, arg2, arg3);
5085 1 : }
5086 :
5087 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_4_18 */
5088 : void ldv_rtc_class_scenario_callback_4_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5089 2 : ((& mmc_csd_show))(arg1, arg2, arg3);
5090 1 : }
5091 :
5092 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_5_18 */
5093 : void ldv_rtc_class_scenario_callback_5_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5094 2 : ((& mmc_date_show))(arg1, arg2, arg3);
5095 1 : }
5096 :
5097 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_6_18 */
5098 : void ldv_rtc_class_scenario_callback_6_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5099 2 : ((& mmc_fwrev_show))(arg1, arg2, arg3);
5100 1 : }
5101 :
5102 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_7_18 */
5103 : void ldv_rtc_class_scenario_callback_7_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5104 2 : ((& mmc_hwrev_show))(arg1, arg2, arg3);
5105 1 : }
5106 :
5107 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_8_18 */
5108 : void ldv_rtc_class_scenario_callback_8_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5109 2 : ((& mmc_manfid_show))(arg1, arg2, arg3);
5110 1 : }
5111 :
5112 : /* AUX_FUNC_CALLBACK ldv_rtc_class_scenario_callback_9_18 */
5113 : void ldv_rtc_class_scenario_callback_9_18(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
5114 2 : ((& mmc_name_show))(arg1, arg2, arg3);
5115 1 : }
5116 :
5117 :
5118 : /* AUX_FUNC ERR_PTR */
5119 : static inline void *ERR_PTR (long int error)
5120 : {
5121 :
5122 : return ldv_err_ptr(error);
5123 : }
5124 :
5125 : /* AUX_FUNC PTR_ERR */
5126 : static inline long int PTR_ERR (void const *ptr)
5127 : {
5128 :
5129 : return ldv_ptr_err(ptr);
5130 : }
5131 :
5132 : /* AUX_FUNC IS_ERR */
5133 : static inline long int IS_ERR (void const *ptr)
5134 : {
5135 :
5136 : return ldv_is_err(ptr);
5137 : }
5138 :
5139 : /* AUX_FUNC IS_ERR_OR_NULL */
5140 : static inline long int IS_ERR_OR_NULL (void const *ptr)
5141 : {
5142 :
5143 : return ldv_is_err_or_null(ptr);
5144 : }
5145 :
5146 : /* AUX_FUNC kzalloc */
5147 : static inline void *kzalloc (size_t size, gfp_t flags)
5148 : {
5149 :
5150 : return ldv_kzalloc(size, flags);
5151 : }
|