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 :
29 :
30 : struct ldv_struct_insmod_2 {
31 : int signal_pending;
32 : };
33 :
34 : /* EMG Function declarations */
35 : void ldv_bus_pattern_scenario_1(void *);
36 : void ldv_bus_pattern_scenario_callback_1_24(int (*)(wchar_t , unsigned char *, int), short unsigned int, unsigned char *, int);
37 : void ldv_bus_pattern_scenario_callback_1_9(int (*)(unsigned char *, int, wchar_t *), unsigned char *, int, wchar_t *);
38 : void ldv_dispatch_default_deregister_1_2_4(void);
39 : void ldv_dispatch_default_register_1_2_5(void);
40 : void ldv_dispatch_insmod_deregister_3_2(void);
41 : void ldv_dispatch_insmod_register_3_3(void);
42 : void ldv_insmod_2(void *);
43 : void ldv_insmod_exit_nls_iso8859_5_2_2(void (*)(void));
44 : int ldv_insmod_init_nls_iso8859_5_2_9(int (*)(void));
45 : void ldv_main_3(void *);
46 : int main(void);
47 :
48 : /* EMG variable declarations */
49 1 : struct ldv_thread ldv_thread_1;
50 1 : struct ldv_thread ldv_thread_2;
51 1 : struct ldv_thread ldv_thread_3;
52 :
53 : /* EMG variable initialization */
54 :
55 : /* EMG function definitions */
56 : /* AUX_FUNC ldv_bus_pattern_scenario_1 */
57 : void ldv_bus_pattern_scenario_1(void *arg0) {
58 : /* LDV {"thread": 1, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'bus_pattern_scenario(struct_nls_table)'", "function": "ldv_bus_pattern_scenario_1"} */
59 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
60 1 : int (*ldv_1_callback_char2uni)(unsigned char *, int, wchar_t *);
61 1 : int (*ldv_1_callback_uni2char)(wchar_t , unsigned char *, int);
62 1 : short unsigned int ldv_1_ldv_param_24_0_default;
63 1 : unsigned char *ldv_1_ldv_param_24_1_default;
64 1 : int ldv_1_ldv_param_24_2_default;
65 1 : unsigned char *ldv_1_ldv_param_9_0_default;
66 1 : int ldv_1_ldv_param_9_1_default;
67 1 : short unsigned int *ldv_1_ldv_param_9_2_default;
68 1 : int ldv_1_ret_default;
69 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
70 1 : /* Initialize automaton variables */
71 2 : ldv_1_ret_default = 1;
72 1 : /* LDV {"action": "DEFAULT_REGISTER_1", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_NLS_TABLE callbacks invocations scenario."} */
73 3 : ldv_free(arg0);
74 1 : /* LDV {"action": "DEFAULT_REGISTER_1", "type": "RECEIVE_END"} */
75 1 :
76 : /* LDV {"action": "DEFAULT_ALLOC_1", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
77 : /* LDV {"action": "DEFAULT_ALLOC_1", "type": "CONDITION_END"} */
78 :
79 : /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory of common callback parameters."} */
80 : /* LDV {"action": "INIT", "type": "CONDITION_END"} */
81 :
82 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Try to probe driver."} */
83 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
84 :
85 : /* Jump to a subprocess 'main' initial state */
86 1 : goto ldv_main_1;
87 : /* End of the process */
88 : return;
89 1 :
90 : /* Sbprocess main */
91 : ldv_main_1:
92 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
93 :
94 4 : if (ldv_undef_int()) {
95 : /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "comment": "Call callback 'probe' of a process 'bus_pattern_scenario' of an interface category 'struct_nls_table'"} */
96 : /* Skip callback without implementations */
97 : /* LDV {"action": "PROBE", "type": "CALL_END"} */
98 :
99 4 : if (ldv_undef_int()) {
100 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Probing has been successfull."} */
101 2 : ldv_assume(ldv_1_ret_default == 0);
102 : /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
103 :
104 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call the other callbacks."} */
105 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
106 :
107 : /* Jump to a subprocess 'call' initial state */
108 1 : goto ldv_call_1;
109 : }
110 : else {
111 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Probing has failed."} */
112 2 : ldv_assume(ldv_1_ret_default != 0);
113 : /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
114 :
115 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Try to probe driver."} */
116 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
117 :
118 : /* Jump to a subprocess 'main' initial state */
119 1 : goto ldv_main_1;
120 : }
121 : }
122 : else {
123 : /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of common callback parameters."} */
124 : /* LDV {"action": "FREE", "type": "CONDITION_END"} */
125 :
126 : /* LDV {"action": "DEFAULT_FREE_1", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
127 : /* LDV {"action": "DEFAULT_FREE_1", "type": "CONDITION_END"} */
128 :
129 : /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_NLS_TABLE callbacks invocations scenario."} */
130 : /* Skip a non-replicative signal receiving */
131 : /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "RECEIVE_END"} */
132 :
133 : /* Exit function at a terminal state */
134 1 : return;
135 : }
136 : /* End of the subprocess 'main' */
137 : return;
138 1 :
139 : /* Sbprocess call */
140 : ldv_call_1:
141 : /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
142 :
143 2 : switch (ldv_undef_int()) {
144 3 : case 1: {
145 : /* LDV {"action": "SUSPEND", "type": "CALL_BEGIN", "comment": "Call callback 'suspend' of a process 'bus_pattern_scenario' of an interface category 'struct_nls_table'"} */
146 : /* Skip callback without implementations */
147 : /* LDV {"action": "SUSPEND", "type": "CALL_END"} */
148 :
149 4 : if (ldv_undef_int()) {
150 : /* LDV {"action": "SUSPEND_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Suspending has been successfull."} */
151 2 : ldv_assume(ldv_1_ret_default == 0);
152 : /* LDV {"action": "SUSPEND_SUCCESS", "type": "CONDITION_END"} */
153 :
154 : /* LDV {"action": "RESUME", "type": "CALL_BEGIN", "comment": "Call callback 'resume' of a process 'bus_pattern_scenario' of an interface category 'struct_nls_table'"} */
155 : /* Skip callback without implementations */
156 : /* LDV {"action": "RESUME", "type": "CALL_END"} */
157 :
158 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call the other callbacks."} */
159 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
160 :
161 : /* Jump to a subprocess 'call' initial state */
162 1 : goto ldv_call_1;
163 : }
164 : else {
165 : /* LDV {"action": "SUSPEND_FAILED", "type": "CONDITION_BEGIN", "comment": "Suspending has failed."} */
166 2 : ldv_assume(ldv_1_ret_default != 0);
167 : /* LDV {"action": "SUSPEND_FAILED", "type": "CONDITION_END"} */
168 :
169 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call the other callbacks."} */
170 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
171 :
172 : /* Jump to a subprocess 'call' initial state */
173 1 : goto ldv_call_1;
174 : /* Jump to a subprocess 'call' initial state */
175 : goto ldv_call_1;
176 : }
177 1 : break;
178 : }
179 3 : case 2: {
180 : /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "comment": "Call callback 'release' of a process 'bus_pattern_scenario' of an interface category 'struct_nls_table'"} */
181 : /* Skip callback without implementations */
182 : /* LDV {"action": "RELEASE", "type": "CALL_END"} */
183 :
184 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Try to probe driver."} */
185 : /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
186 :
187 : /* Jump to a subprocess 'main' initial state */
188 1 : goto ldv_main_1;
189 1 : break;
190 : }
191 3 : case 3: {
192 : /* LDV {"action": "PRE_CALL_9", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
193 3 : ldv_1_ldv_param_9_0_default = ldv_xmalloc_unknown_size(0);
194 3 : ldv_1_ldv_param_9_2_default = ldv_xmalloc_unknown_size(0);
195 : /* LDV {"action": "PRE_CALL_9", "type": "CONDITION_END"} */
196 :
197 4 : if (ldv_undef_int()) {
198 : /* LDV {"action": "PRE_CALL_24", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
199 3 : ldv_1_ldv_param_24_1_default = ldv_xmalloc_unknown_size(0);
200 : /* LDV {"action": "PRE_CALL_24", "type": "CONDITION_END"} */
201 :
202 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback uni2char from nls_table."} */
203 : /* LDV {"type": "CALLBACK", "call": "((& uni2char))(ldv_1_ldv_param_24_0_default, ldv_1_ldv_param_24_1_default, ldv_1_ldv_param_24_2_default);", "comment": "callback"} */
204 2 : ldv_bus_pattern_scenario_callback_1_24(ldv_1_callback_uni2char, ldv_1_ldv_param_24_0_default, ldv_1_ldv_param_24_1_default, ldv_1_ldv_param_24_2_default);
205 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
206 :
207 : /* LDV {"action": "POST_CALL_24", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
208 2 : ldv_free(ldv_1_ldv_param_24_1_default);
209 : /* LDV {"action": "POST_CALL_24", "type": "CONDITION_END"} */
210 :
211 : }
212 : else {
213 : /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback char2uni from nls_table."} */
214 : /* LDV {"type": "CALLBACK", "call": "((& char2uni))(ldv_1_ldv_param_9_0_default, ldv_1_ldv_param_9_1_default, ldv_1_ldv_param_9_2_default);", "comment": "callback"} */
215 2 : ldv_bus_pattern_scenario_callback_1_9(ldv_1_callback_char2uni, ldv_1_ldv_param_9_0_default, ldv_1_ldv_param_9_1_default, ldv_1_ldv_param_9_2_default);
216 : /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
217 :
218 : }
219 2 : break;
220 1 : }
221 2 : default: ldv_stop();
222 1 : }
223 0 : /* LDV {"action": "POST_CALL_9", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
224 4 : ldv_free(ldv_1_ldv_param_9_0_default);
225 2 : ldv_free(ldv_1_ldv_param_9_2_default);
226 : /* LDV {"action": "POST_CALL_9", "type": "CONDITION_END"} */
227 :
228 : /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call the other callbacks."} */
229 : /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
230 :
231 : /* Jump to a subprocess 'call' initial state */
232 1 : goto ldv_call_1;
233 : /* End of the subprocess 'call' */
234 : return;
235 : /* LDV {"comment": "End of control function based on process 'bus_pattern_scenario(struct_nls_table)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_bus_pattern_scenario_1"} */
236 : }
237 :
238 : /* AUX_FUNC_CALLBACK ldv_bus_pattern_scenario_callback_1_24 */
239 : void ldv_bus_pattern_scenario_callback_1_24(int (*arg0)(wchar_t , unsigned char *, int), short unsigned int arg1, unsigned char *arg2, int arg3) {
240 2 : ((& uni2char))(arg1, arg2, arg3);
241 1 : }
242 :
243 : /* AUX_FUNC_CALLBACK ldv_bus_pattern_scenario_callback_1_9 */
244 : void ldv_bus_pattern_scenario_callback_1_9(int (*arg0)(unsigned char *, int, wchar_t *), unsigned char *arg1, int arg2, short unsigned int *arg3) {
245 2 : ((& char2uni))(arg1, arg2, arg3);
246 1 : }
247 :
248 : /* AUX_FUNC ldv_dispatch_default_deregister_1_2_4 */
249 : void ldv_dispatch_default_deregister_1_2_4() {
250 : struct ldv_struct_insmod_2 *cf_arg_1;
251 : /* Skip thread join call */
252 1 : return;
253 : }
254 :
255 : /* AUX_FUNC ldv_dispatch_default_register_1_2_5 */
256 : void ldv_dispatch_default_register_1_2_5() {
257 : struct ldv_struct_insmod_2 *cf_arg_1;
258 4 : cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_2));
259 3 : ldv_bus_pattern_scenario_1(cf_arg_1);
260 1 : return;
261 : }
262 :
263 : /* AUX_FUNC ldv_dispatch_insmod_deregister_3_2 */
264 : void ldv_dispatch_insmod_deregister_3_2() {
265 : struct ldv_struct_insmod_2 *cf_arg_2;
266 : /* Skip thread join call */
267 1 : return;
268 : }
269 :
270 : /* AUX_FUNC ldv_dispatch_insmod_register_3_3 */
271 : void ldv_dispatch_insmod_register_3_3() {
272 : struct ldv_struct_insmod_2 *cf_arg_2;
273 4 : cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_2));
274 4 : ldv_insmod_2(cf_arg_2);
275 1 : return;
276 : }
277 :
278 : /* AUX_FUNC ldv_insmod_2 */
279 : void ldv_insmod_2(void *arg0) {
280 : /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_2"} */
281 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
282 1 : void (*ldv_2_exit_nls_iso8859_5_default)(void);
283 1 : int (*ldv_2_init_nls_iso8859_5_default)(void);
284 1 : int ldv_2_ret_default;
285 1 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
286 : /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
287 2 : ldv_free(arg0);
288 : /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
289 :
290 : /* LDV {"action": "INIT_NLS_ISO8859_5", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'init_nls_iso8859_5' function. Invoke callback init_nls_iso8859_5 from ARTIFICIAL."} */
291 : /* LDV {"type": "CALLBACK", "call": "ldv_2_ret_default = (init_nls_iso8859_5)();", "comment": "init_nls_iso8859_5"} */
292 2 : ldv_2_ret_default = ldv_insmod_init_nls_iso8859_5_2_9(ldv_2_init_nls_iso8859_5_default);
293 : /* Callback post-call */
294 2 : ldv_2_ret_default = ldv_post_init(ldv_2_ret_default);
295 : /* LDV {"action": "INIT_NLS_ISO8859_5", "type": "CALL_END"} */
296 :
297 4 : if (ldv_undef_int()) {
298 : /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
299 2 : ldv_assume(ldv_2_ret_default != 0);
300 : /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
301 :
302 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
303 : /* Skip a non-replicative signal receiving */
304 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
305 :
306 : /* Exit function at a terminal state */
307 1 : return;
308 : }
309 : else {
310 : /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
311 2 : ldv_assume(ldv_2_ret_default == 0);
312 : /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
313 :
314 4 : if (ldv_undef_int()) {
315 : /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_NLS_TABLE' callbacks with unknown registration function."} */
316 2 : ldv_dispatch_default_register_1_2_5();
317 : /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_END"} */
318 :
319 : /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_NLS_TABLE' callbacks with unknown deregistration function."} */
320 2 : ldv_dispatch_default_deregister_1_2_4();
321 : /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_END"} */
322 :
323 : }
324 : else {
325 : /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
326 : /* LDV {"action": "NONE", "type": "CONDITION_END"} */
327 :
328 : }
329 : /* LDV {"action": "EXIT_NLS_ISO8859_5", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'exit_nls_iso8859_5' function. Invoke callback exit_nls_iso8859_5 from ARTIFICIAL."} */
330 : /* LDV {"type": "CALLBACK", "call": "(exit_nls_iso8859_5)();", "comment": "exit_nls_iso8859_5"} */
331 4 : ldv_insmod_exit_nls_iso8859_5_2_2(ldv_2_exit_nls_iso8859_5_default);
332 : /* LDV {"action": "EXIT_NLS_ISO8859_5", "type": "CALL_END"} */
333 :
334 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
335 : /* Skip a non-replicative signal receiving */
336 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
337 :
338 : /* Exit function at a terminal state */
339 1 : return;
340 : }
341 : /* End of the process */
342 : return;
343 : /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_2"} */
344 : }
345 :
346 : /* AUX_FUNC_CALLBACK ldv_insmod_exit_nls_iso8859_5_2_2 */
347 : void ldv_insmod_exit_nls_iso8859_5_2_2(void (*arg0)(void)) {
348 4 : (exit_nls_iso8859_5)();
349 2 : }
350 :
351 : /* AUX_FUNC_CALLBACK ldv_insmod_init_nls_iso8859_5_2_9 */
352 : int ldv_insmod_init_nls_iso8859_5_2_9(int (*arg0)(void)) {
353 3 : return (init_nls_iso8859_5)();
354 1 : }
355 :
356 : /* AUX_FUNC ldv_main_3 */
357 : void ldv_main_3(void *arg0) {
358 : /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_3"} */
359 : /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
360 : /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
361 : /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
362 1 : ldv_initialize();
363 : /* LDV {"action": "INIT", "type": "CONDITION_END"} */
364 :
365 : /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
366 2 : ldv_dispatch_insmod_register_3_3();
367 : /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
368 :
369 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
370 2 : ldv_dispatch_insmod_deregister_3_2();
371 : /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
372 :
373 : /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
374 1 : ldv_check_final_state();
375 1 : ldv_stop();
376 : /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
377 :
378 : /* Exit function at a terminal state */
379 0 : return;
380 : /* End of the process */
381 : return;
382 : /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_3"} */
383 : }
384 :
385 : /* AUX_FUNC main */
386 : int main() {
387 1 : ldv_main_3(0);
388 0 : return 0;
389 : }
390 :
391 :
392 : /* AUX_FUNC ERR_PTR */
393 : static inline void *ERR_PTR (long int error)
394 : {
395 :
396 : return ldv_err_ptr(error);
397 : }
398 :
399 : /* AUX_FUNC PTR_ERR */
400 : static inline long int PTR_ERR (void const *ptr)
401 : {
402 :
403 : return ldv_ptr_err(ptr);
404 : }
405 :
406 : /* AUX_FUNC IS_ERR */
407 : static inline long int IS_ERR (void const *ptr)
408 : {
409 :
410 : return ldv_is_err(ptr);
411 : }
412 :
413 : /* AUX_FUNC IS_ERR_OR_NULL */
414 : static inline long int IS_ERR_OR_NULL (void const *ptr)
415 : {
416 :
417 : return ldv_is_err_or_null(ptr);
418 : }
419 :
420 : /* AUX_FUNC kzalloc */
421 : static inline void *kzalloc (size_t size, gfp_t flags)
422 : {
423 :
424 : return ldv_kzalloc(size, flags);
425 : }
|