1
2
3
4#line 20 "include/asm-generic/int-ll64.h"
5typedef unsigned char __u8;
6#line 23 "include/asm-generic/int-ll64.h"
7typedef unsigned short __u16;
8#line 25 "include/asm-generic/int-ll64.h"
9typedef int __s32;
10#line 26 "include/asm-generic/int-ll64.h"
11typedef unsigned int __u32;
12#line 30 "include/asm-generic/int-ll64.h"
13typedef unsigned long long __u64;
14#line 43 "include/asm-generic/int-ll64.h"
15typedef unsigned char u8;
16#line 45 "include/asm-generic/int-ll64.h"
17typedef short s16;
18#line 46 "include/asm-generic/int-ll64.h"
19typedef unsigned short u16;
20#line 49 "include/asm-generic/int-ll64.h"
21typedef unsigned int u32;
22#line 51 "include/asm-generic/int-ll64.h"
23typedef long long s64;
24#line 52 "include/asm-generic/int-ll64.h"
25typedef unsigned long long u64;
26#line 14 "include/asm-generic/posix_types.h"
27typedef long __kernel_long_t;
28#line 15 "include/asm-generic/posix_types.h"
29typedef unsigned long __kernel_ulong_t;
30#line 31 "include/asm-generic/posix_types.h"
31typedef int __kernel_pid_t;
32#line 52 "include/asm-generic/posix_types.h"
33typedef unsigned int __kernel_uid32_t;
34#line 53 "include/asm-generic/posix_types.h"
35typedef unsigned int __kernel_gid32_t;
36#line 75 "include/asm-generic/posix_types.h"
37typedef __kernel_ulong_t __kernel_size_t;
38#line 76 "include/asm-generic/posix_types.h"
39typedef __kernel_long_t __kernel_ssize_t;
40#line 91 "include/asm-generic/posix_types.h"
41typedef long long __kernel_loff_t;
42#line 92 "include/asm-generic/posix_types.h"
43typedef __kernel_long_t __kernel_time_t;
44#line 93 "include/asm-generic/posix_types.h"
45typedef __kernel_long_t __kernel_clock_t;
46#line 94 "include/asm-generic/posix_types.h"
47typedef int __kernel_timer_t;
48#line 95 "include/asm-generic/posix_types.h"
49typedef int __kernel_clockid_t;
50#line 21 "include/linux/types.h"
51typedef __u32 __kernel_dev_t;
52#line 24 "include/linux/types.h"
53typedef __kernel_dev_t dev_t;
54#line 27 "include/linux/types.h"
55typedef unsigned short umode_t;
56#line 30 "include/linux/types.h"
57typedef __kernel_pid_t pid_t;
58#line 35 "include/linux/types.h"
59typedef __kernel_clockid_t clockid_t;
60#line 38 "include/linux/types.h"
61typedef _Bool bool;
62#line 40 "include/linux/types.h"
63typedef __kernel_uid32_t uid_t;
64#line 41 "include/linux/types.h"
65typedef __kernel_gid32_t gid_t;
66#line 54 "include/linux/types.h"
67typedef __kernel_loff_t loff_t;
68#line 63 "include/linux/types.h"
69typedef __kernel_size_t size_t;
70#line 68 "include/linux/types.h"
71typedef __kernel_ssize_t ssize_t;
72#line 78 "include/linux/types.h"
73typedef __kernel_time_t time_t;
74#line 92 "include/linux/types.h"
75typedef unsigned char u_char;
76#line 95 "include/linux/types.h"
77typedef unsigned long u_long;
78#line 111 "include/linux/types.h"
79typedef __s32 int32_t;
80#line 115 "include/linux/types.h"
81typedef __u8 uint8_t;
82#line 117 "include/linux/types.h"
83typedef __u32 uint32_t;
84#line 120 "include/linux/types.h"
85typedef __u64 uint64_t;
86#line 202 "include/linux/types.h"
87typedef unsigned int gfp_t;
88#line 206 "include/linux/types.h"
89typedef u64 phys_addr_t;
90#line 211 "include/linux/types.h"
91typedef phys_addr_t resource_size_t;
92#line 221 "include/linux/types.h"
93struct __anonstruct_atomic_t_6 {
94 int counter ;
95};
96#line 221 "include/linux/types.h"
97typedef struct __anonstruct_atomic_t_6 atomic_t;
98#line 226 "include/linux/types.h"
99struct __anonstruct_atomic64_t_7 {
100 long counter ;
101};
102#line 226 "include/linux/types.h"
103typedef struct __anonstruct_atomic64_t_7 atomic64_t;
104#line 227 "include/linux/types.h"
105struct list_head {
106 struct list_head *next ;
107 struct list_head *prev ;
108};
109#line 232
110struct hlist_node;
111#line 232 "include/linux/types.h"
112struct hlist_head {
113 struct hlist_node *first ;
114};
115#line 236 "include/linux/types.h"
116struct hlist_node {
117 struct hlist_node *next ;
118 struct hlist_node **pprev ;
119};
120#line 247 "include/linux/types.h"
121struct rcu_head {
122 struct rcu_head *next ;
123 void (*func)(struct rcu_head * ) ;
124};
125#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
126struct module;
127#line 55
128struct module;
129#line 146 "include/linux/init.h"
130typedef void (*ctor_fn_t)(void);
131#line 46 "include/linux/dynamic_debug.h"
132struct device;
133#line 46
134struct device;
135#line 57
136struct completion;
137#line 57
138struct completion;
139#line 58
140struct pt_regs;
141#line 58
142struct pt_regs;
143#line 348 "include/linux/kernel.h"
144struct pid;
145#line 348
146struct pid;
147#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
148struct timespec;
149#line 112
150struct timespec;
151#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
152struct page;
153#line 58
154struct page;
155#line 26 "include/asm-generic/getorder.h"
156struct task_struct;
157#line 26
158struct task_struct;
159#line 28
160struct mm_struct;
161#line 28
162struct mm_struct;
163#line 268 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/segment.h"
164struct pt_regs {
165 unsigned long r15 ;
166 unsigned long r14 ;
167 unsigned long r13 ;
168 unsigned long r12 ;
169 unsigned long bp ;
170 unsigned long bx ;
171 unsigned long r11 ;
172 unsigned long r10 ;
173 unsigned long r9 ;
174 unsigned long r8 ;
175 unsigned long ax ;
176 unsigned long cx ;
177 unsigned long dx ;
178 unsigned long si ;
179 unsigned long di ;
180 unsigned long orig_ax ;
181 unsigned long ip ;
182 unsigned long cs ;
183 unsigned long flags ;
184 unsigned long sp ;
185 unsigned long ss ;
186};
187#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
188struct __anonstruct_ldv_2180_13 {
189 unsigned int a ;
190 unsigned int b ;
191};
192#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
193struct __anonstruct_ldv_2195_14 {
194 u16 limit0 ;
195 u16 base0 ;
196 unsigned char base1 ;
197 unsigned char type : 4 ;
198 unsigned char s : 1 ;
199 unsigned char dpl : 2 ;
200 unsigned char p : 1 ;
201 unsigned char limit : 4 ;
202 unsigned char avl : 1 ;
203 unsigned char l : 1 ;
204 unsigned char d : 1 ;
205 unsigned char g : 1 ;
206 unsigned char base2 ;
207};
208#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
209union __anonunion_ldv_2196_12 {
210 struct __anonstruct_ldv_2180_13 ldv_2180 ;
211 struct __anonstruct_ldv_2195_14 ldv_2195 ;
212};
213#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
214struct desc_struct {
215 union __anonunion_ldv_2196_12 ldv_2196 ;
216};
217#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
218typedef unsigned long pgdval_t;
219#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
220typedef unsigned long pgprotval_t;
221#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
222struct pgprot {
223 pgprotval_t pgprot ;
224};
225#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
226typedef struct pgprot pgprot_t;
227#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
228struct __anonstruct_pgd_t_16 {
229 pgdval_t pgd ;
230};
231#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
232typedef struct __anonstruct_pgd_t_16 pgd_t;
233#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
234typedef struct page *pgtable_t;
235#line 290
236struct file;
237#line 290
238struct file;
239#line 337
240struct thread_struct;
241#line 337
242struct thread_struct;
243#line 339
244struct cpumask;
245#line 339
246struct cpumask;
247#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
248struct arch_spinlock;
249#line 327
250struct arch_spinlock;
251#line 300 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
252struct kernel_vm86_regs {
253 struct pt_regs pt ;
254 unsigned short es ;
255 unsigned short __esh ;
256 unsigned short ds ;
257 unsigned short __dsh ;
258 unsigned short fs ;
259 unsigned short __fsh ;
260 unsigned short gs ;
261 unsigned short __gsh ;
262};
263#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
264union __anonunion_ldv_2824_19 {
265 struct pt_regs *regs ;
266 struct kernel_vm86_regs *vm86 ;
267};
268#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
269struct math_emu_info {
270 long ___orig_eip ;
271 union __anonunion_ldv_2824_19 ldv_2824 ;
272};
273#line 306 "include/linux/bitmap.h"
274struct bug_entry {
275 int bug_addr_disp ;
276 int file_disp ;
277 unsigned short line ;
278 unsigned short flags ;
279};
280#line 89 "include/linux/bug.h"
281struct cpumask {
282 unsigned long bits[64U] ;
283};
284#line 14 "include/linux/cpumask.h"
285typedef struct cpumask cpumask_t;
286#line 637 "include/linux/cpumask.h"
287typedef struct cpumask *cpumask_var_t;
288#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
289struct static_key;
290#line 234
291struct static_key;
292#line 287 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
293struct i387_fsave_struct {
294 u32 cwd ;
295 u32 swd ;
296 u32 twd ;
297 u32 fip ;
298 u32 fcs ;
299 u32 foo ;
300 u32 fos ;
301 u32 st_space[20U] ;
302 u32 status ;
303};
304#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
305struct __anonstruct_ldv_5180_24 {
306 u64 rip ;
307 u64 rdp ;
308};
309#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
310struct __anonstruct_ldv_5186_25 {
311 u32 fip ;
312 u32 fcs ;
313 u32 foo ;
314 u32 fos ;
315};
316#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
317union __anonunion_ldv_5187_23 {
318 struct __anonstruct_ldv_5180_24 ldv_5180 ;
319 struct __anonstruct_ldv_5186_25 ldv_5186 ;
320};
321#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
322union __anonunion_ldv_5196_26 {
323 u32 padding1[12U] ;
324 u32 sw_reserved[12U] ;
325};
326#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
327struct i387_fxsave_struct {
328 u16 cwd ;
329 u16 swd ;
330 u16 twd ;
331 u16 fop ;
332 union __anonunion_ldv_5187_23 ldv_5187 ;
333 u32 mxcsr ;
334 u32 mxcsr_mask ;
335 u32 st_space[32U] ;
336 u32 xmm_space[64U] ;
337 u32 padding[12U] ;
338 union __anonunion_ldv_5196_26 ldv_5196 ;
339};
340#line 339 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
341struct i387_soft_struct {
342 u32 cwd ;
343 u32 swd ;
344 u32 twd ;
345 u32 fip ;
346 u32 fcs ;
347 u32 foo ;
348 u32 fos ;
349 u32 st_space[20U] ;
350 u8 ftop ;
351 u8 changed ;
352 u8 lookahead ;
353 u8 no_update ;
354 u8 rm ;
355 u8 alimit ;
356 struct math_emu_info *info ;
357 u32 entry_eip ;
358};
359#line 360 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
360struct ymmh_struct {
361 u32 ymmh_space[64U] ;
362};
363#line 365 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
364struct xsave_hdr_struct {
365 u64 xstate_bv ;
366 u64 reserved1[2U] ;
367 u64 reserved2[5U] ;
368};
369#line 371 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
370struct xsave_struct {
371 struct i387_fxsave_struct i387 ;
372 struct xsave_hdr_struct xsave_hdr ;
373 struct ymmh_struct ymmh ;
374};
375#line 377 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
376union thread_xstate {
377 struct i387_fsave_struct fsave ;
378 struct i387_fxsave_struct fxsave ;
379 struct i387_soft_struct soft ;
380 struct xsave_struct xsave ;
381};
382#line 385 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
383struct fpu {
384 unsigned int last_cpu ;
385 unsigned int has_fpu ;
386 union thread_xstate *state ;
387};
388#line 433
389struct kmem_cache;
390#line 434
391struct perf_event;
392#line 434
393struct perf_event;
394#line 435 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
395struct thread_struct {
396 struct desc_struct tls_array[3U] ;
397 unsigned long sp0 ;
398 unsigned long sp ;
399 unsigned long usersp ;
400 unsigned short es ;
401 unsigned short ds ;
402 unsigned short fsindex ;
403 unsigned short gsindex ;
404 unsigned long fs ;
405 unsigned long gs ;
406 struct perf_event *ptrace_bps[4U] ;
407 unsigned long debugreg6 ;
408 unsigned long ptrace_dr7 ;
409 unsigned long cr2 ;
410 unsigned long trap_nr ;
411 unsigned long error_code ;
412 struct fpu fpu ;
413 unsigned long *io_bitmap_ptr ;
414 unsigned long iopl ;
415 unsigned int io_bitmap_max ;
416};
417#line 23 "include/asm-generic/atomic-long.h"
418typedef atomic64_t atomic_long_t;
419#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
420typedef u16 __ticket_t;
421#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
422typedef u32 __ticketpair_t;
423#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
424struct __raw_tickets {
425 __ticket_t head ;
426 __ticket_t tail ;
427};
428#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
429union __anonunion_ldv_5907_29 {
430 __ticketpair_t head_tail ;
431 struct __raw_tickets tickets ;
432};
433#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
434struct arch_spinlock {
435 union __anonunion_ldv_5907_29 ldv_5907 ;
436};
437#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
438typedef struct arch_spinlock arch_spinlock_t;
439#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
440struct lockdep_map;
441#line 34
442struct lockdep_map;
443#line 55 "include/linux/debug_locks.h"
444struct stack_trace {
445 unsigned int nr_entries ;
446 unsigned int max_entries ;
447 unsigned long *entries ;
448 int skip ;
449};
450#line 26 "include/linux/stacktrace.h"
451struct lockdep_subclass_key {
452 char __one_byte ;
453};
454#line 53 "include/linux/lockdep.h"
455struct lock_class_key {
456 struct lockdep_subclass_key subkeys[8U] ;
457};
458#line 59 "include/linux/lockdep.h"
459struct lock_class {
460 struct list_head hash_entry ;
461 struct list_head lock_entry ;
462 struct lockdep_subclass_key *key ;
463 unsigned int subclass ;
464 unsigned int dep_gen_id ;
465 unsigned long usage_mask ;
466 struct stack_trace usage_traces[13U] ;
467 struct list_head locks_after ;
468 struct list_head locks_before ;
469 unsigned int version ;
470 unsigned long ops ;
471 char const *name ;
472 int name_version ;
473 unsigned long contention_point[4U] ;
474 unsigned long contending_point[4U] ;
475};
476#line 144 "include/linux/lockdep.h"
477struct lockdep_map {
478 struct lock_class_key *key ;
479 struct lock_class *class_cache[2U] ;
480 char const *name ;
481 int cpu ;
482 unsigned long ip ;
483};
484#line 187 "include/linux/lockdep.h"
485struct held_lock {
486 u64 prev_chain_key ;
487 unsigned long acquire_ip ;
488 struct lockdep_map *instance ;
489 struct lockdep_map *nest_lock ;
490 u64 waittime_stamp ;
491 u64 holdtime_stamp ;
492 unsigned short class_idx : 13 ;
493 unsigned char irq_context : 2 ;
494 unsigned char trylock : 1 ;
495 unsigned char read : 2 ;
496 unsigned char check : 2 ;
497 unsigned char hardirqs_off : 1 ;
498 unsigned short references : 11 ;
499};
500#line 556 "include/linux/lockdep.h"
501struct raw_spinlock {
502 arch_spinlock_t raw_lock ;
503 unsigned int magic ;
504 unsigned int owner_cpu ;
505 void *owner ;
506 struct lockdep_map dep_map ;
507};
508#line 32 "include/linux/spinlock_types.h"
509typedef struct raw_spinlock raw_spinlock_t;
510#line 33 "include/linux/spinlock_types.h"
511struct __anonstruct_ldv_6122_33 {
512 u8 __padding[24U] ;
513 struct lockdep_map dep_map ;
514};
515#line 33 "include/linux/spinlock_types.h"
516union __anonunion_ldv_6123_32 {
517 struct raw_spinlock rlock ;
518 struct __anonstruct_ldv_6122_33 ldv_6122 ;
519};
520#line 33 "include/linux/spinlock_types.h"
521struct spinlock {
522 union __anonunion_ldv_6123_32 ldv_6123 ;
523};
524#line 76 "include/linux/spinlock_types.h"
525typedef struct spinlock spinlock_t;
526#line 110 "include/linux/seqlock.h"
527struct seqcount {
528 unsigned int sequence ;
529};
530#line 121 "include/linux/seqlock.h"
531typedef struct seqcount seqcount_t;
532#line 254 "include/linux/seqlock.h"
533struct timespec {
534 __kernel_time_t tv_sec ;
535 long tv_nsec ;
536};
537#line 48 "include/linux/wait.h"
538struct __wait_queue_head {
539 spinlock_t lock ;
540 struct list_head task_list ;
541};
542#line 53 "include/linux/wait.h"
543typedef struct __wait_queue_head wait_queue_head_t;
544#line 98 "include/linux/nodemask.h"
545struct __anonstruct_nodemask_t_36 {
546 unsigned long bits[16U] ;
547};
548#line 98 "include/linux/nodemask.h"
549typedef struct __anonstruct_nodemask_t_36 nodemask_t;
550#line 670 "include/linux/mmzone.h"
551struct mutex {
552 atomic_t count ;
553 spinlock_t wait_lock ;
554 struct list_head wait_list ;
555 struct task_struct *owner ;
556 char const *name ;
557 void *magic ;
558 struct lockdep_map dep_map ;
559};
560#line 63 "include/linux/mutex.h"
561struct mutex_waiter {
562 struct list_head list ;
563 struct task_struct *task ;
564 void *magic ;
565};
566#line 171
567struct rw_semaphore;
568#line 171
569struct rw_semaphore;
570#line 172 "include/linux/mutex.h"
571struct rw_semaphore {
572 long count ;
573 raw_spinlock_t wait_lock ;
574 struct list_head wait_list ;
575 struct lockdep_map dep_map ;
576};
577#line 128 "include/linux/rwsem.h"
578struct completion {
579 unsigned int done ;
580 wait_queue_head_t wait ;
581};
582#line 188 "include/linux/rcupdate.h"
583struct notifier_block;
584#line 188
585struct notifier_block;
586#line 239 "include/linux/srcu.h"
587struct notifier_block {
588 int (*notifier_call)(struct notifier_block * , unsigned long , void * ) ;
589 struct notifier_block *next ;
590 int priority ;
591};
592#line 312 "include/linux/jiffies.h"
593union ktime {
594 s64 tv64 ;
595};
596#line 59 "include/linux/ktime.h"
597typedef union ktime ktime_t;
598#line 341
599struct tvec_base;
600#line 341
601struct tvec_base;
602#line 342 "include/linux/ktime.h"
603struct timer_list {
604 struct list_head entry ;
605 unsigned long expires ;
606 struct tvec_base *base ;
607 void (*function)(unsigned long ) ;
608 unsigned long data ;
609 int slack ;
610 int start_pid ;
611 void *start_site ;
612 char start_comm[16U] ;
613 struct lockdep_map lockdep_map ;
614};
615#line 289 "include/linux/timer.h"
616struct hrtimer;
617#line 289
618struct hrtimer;
619#line 290
620enum hrtimer_restart;
621#line 302
622struct work_struct;
623#line 302
624struct work_struct;
625#line 45 "include/linux/workqueue.h"
626struct work_struct {
627 atomic_long_t data ;
628 struct list_head entry ;
629 void (*func)(struct work_struct * ) ;
630 struct lockdep_map lockdep_map ;
631};
632#line 46 "include/linux/pm.h"
633struct pm_message {
634 int event ;
635};
636#line 52 "include/linux/pm.h"
637typedef struct pm_message pm_message_t;
638#line 53 "include/linux/pm.h"
639struct dev_pm_ops {
640 int (*prepare)(struct device * ) ;
641 void (*complete)(struct device * ) ;
642 int (*suspend)(struct device * ) ;
643 int (*resume)(struct device * ) ;
644 int (*freeze)(struct device * ) ;
645 int (*thaw)(struct device * ) ;
646 int (*poweroff)(struct device * ) ;
647 int (*restore)(struct device * ) ;
648 int (*suspend_late)(struct device * ) ;
649 int (*resume_early)(struct device * ) ;
650 int (*freeze_late)(struct device * ) ;
651 int (*thaw_early)(struct device * ) ;
652 int (*poweroff_late)(struct device * ) ;
653 int (*restore_early)(struct device * ) ;
654 int (*suspend_noirq)(struct device * ) ;
655 int (*resume_noirq)(struct device * ) ;
656 int (*freeze_noirq)(struct device * ) ;
657 int (*thaw_noirq)(struct device * ) ;
658 int (*poweroff_noirq)(struct device * ) ;
659 int (*restore_noirq)(struct device * ) ;
660 int (*runtime_suspend)(struct device * ) ;
661 int (*runtime_resume)(struct device * ) ;
662 int (*runtime_idle)(struct device * ) ;
663};
664#line 289
665enum rpm_status {
666 RPM_ACTIVE = 0,
667 RPM_RESUMING = 1,
668 RPM_SUSPENDED = 2,
669 RPM_SUSPENDING = 3
670} ;
671#line 296
672enum rpm_request {
673 RPM_REQ_NONE = 0,
674 RPM_REQ_IDLE = 1,
675 RPM_REQ_SUSPEND = 2,
676 RPM_REQ_AUTOSUSPEND = 3,
677 RPM_REQ_RESUME = 4
678} ;
679#line 304
680struct wakeup_source;
681#line 304
682struct wakeup_source;
683#line 494 "include/linux/pm.h"
684struct pm_subsys_data {
685 spinlock_t lock ;
686 unsigned int refcount ;
687};
688#line 499
689struct dev_pm_qos_request;
690#line 499
691struct pm_qos_constraints;
692#line 499 "include/linux/pm.h"
693struct dev_pm_info {
694 pm_message_t power_state ;
695 unsigned char can_wakeup : 1 ;
696 unsigned char async_suspend : 1 ;
697 bool is_prepared ;
698 bool is_suspended ;
699 bool ignore_children ;
700 spinlock_t lock ;
701 struct list_head entry ;
702 struct completion completion ;
703 struct wakeup_source *wakeup ;
704 bool wakeup_path ;
705 struct timer_list suspend_timer ;
706 unsigned long timer_expires ;
707 struct work_struct work ;
708 wait_queue_head_t wait_queue ;
709 atomic_t usage_count ;
710 atomic_t child_count ;
711 unsigned char disable_depth : 3 ;
712 unsigned char idle_notification : 1 ;
713 unsigned char request_pending : 1 ;
714 unsigned char deferred_resume : 1 ;
715 unsigned char run_wake : 1 ;
716 unsigned char runtime_auto : 1 ;
717 unsigned char no_callbacks : 1 ;
718 unsigned char irq_safe : 1 ;
719 unsigned char use_autosuspend : 1 ;
720 unsigned char timer_autosuspends : 1 ;
721 enum rpm_request request ;
722 enum rpm_status runtime_status ;
723 int runtime_error ;
724 int autosuspend_delay ;
725 unsigned long last_busy ;
726 unsigned long active_jiffies ;
727 unsigned long suspended_jiffies ;
728 unsigned long accounting_timestamp ;
729 ktime_t suspend_time ;
730 s64 max_time_suspended_ns ;
731 struct dev_pm_qos_request *pq_req ;
732 struct pm_subsys_data *subsys_data ;
733 struct pm_qos_constraints *constraints ;
734};
735#line 558 "include/linux/pm.h"
736struct dev_pm_domain {
737 struct dev_pm_ops ops ;
738};
739#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
740struct __anonstruct_mm_context_t_101 {
741 void *ldt ;
742 int size ;
743 unsigned short ia32_compat ;
744 struct mutex lock ;
745 void *vdso ;
746};
747#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
748typedef struct __anonstruct_mm_context_t_101 mm_context_t;
749#line 18 "include/asm-generic/pci_iomap.h"
750struct vm_area_struct;
751#line 18
752struct vm_area_struct;
753#line 835 "include/linux/sysctl.h"
754struct rb_node {
755 unsigned long rb_parent_color ;
756 struct rb_node *rb_right ;
757 struct rb_node *rb_left ;
758};
759#line 108 "include/linux/rbtree.h"
760struct rb_root {
761 struct rb_node *rb_node ;
762};
763#line 176
764struct nsproxy;
765#line 176
766struct nsproxy;
767#line 37 "include/linux/kmod.h"
768struct cred;
769#line 37
770struct cred;
771#line 18 "include/linux/elf.h"
772typedef __u64 Elf64_Addr;
773#line 19 "include/linux/elf.h"
774typedef __u16 Elf64_Half;
775#line 23 "include/linux/elf.h"
776typedef __u32 Elf64_Word;
777#line 24 "include/linux/elf.h"
778typedef __u64 Elf64_Xword;
779#line 193 "include/linux/elf.h"
780struct elf64_sym {
781 Elf64_Word st_name ;
782 unsigned char st_info ;
783 unsigned char st_other ;
784 Elf64_Half st_shndx ;
785 Elf64_Addr st_value ;
786 Elf64_Xword st_size ;
787};
788#line 201 "include/linux/elf.h"
789typedef struct elf64_sym Elf64_Sym;
790#line 445
791struct sock;
792#line 445
793struct sock;
794#line 446
795struct kobject;
796#line 446
797struct kobject;
798#line 447
799enum kobj_ns_type {
800 KOBJ_NS_TYPE_NONE = 0,
801 KOBJ_NS_TYPE_NET = 1,
802 KOBJ_NS_TYPES = 2
803} ;
804#line 453 "include/linux/elf.h"
805struct kobj_ns_type_operations {
806 enum kobj_ns_type type ;
807 void *(*grab_current_ns)(void) ;
808 void const *(*netlink_ns)(struct sock * ) ;
809 void const *(*initial_ns)(void) ;
810 void (*drop_ns)(void * ) ;
811};
812#line 57 "include/linux/kobject_ns.h"
813struct attribute {
814 char const *name ;
815 umode_t mode ;
816 struct lock_class_key *key ;
817 struct lock_class_key skey ;
818};
819#line 33 "include/linux/sysfs.h"
820struct attribute_group {
821 char const *name ;
822 umode_t (*is_visible)(struct kobject * , struct attribute * , int ) ;
823 struct attribute **attrs ;
824};
825#line 62 "include/linux/sysfs.h"
826struct bin_attribute {
827 struct attribute attr ;
828 size_t size ;
829 void *private ;
830 ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
831 loff_t , size_t ) ;
832 ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
833 loff_t , size_t ) ;
834 int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
835};
836#line 98 "include/linux/sysfs.h"
837struct sysfs_ops {
838 ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
839 ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ;
840 void const *(*namespace)(struct kobject * , struct attribute const * ) ;
841};
842#line 117
843struct sysfs_dirent;
844#line 117
845struct sysfs_dirent;
846#line 182 "include/linux/sysfs.h"
847struct kref {
848 atomic_t refcount ;
849};
850#line 49 "include/linux/kobject.h"
851struct kset;
852#line 49
853struct kobj_type;
854#line 49 "include/linux/kobject.h"
855struct kobject {
856 char const *name ;
857 struct list_head entry ;
858 struct kobject *parent ;
859 struct kset *kset ;
860 struct kobj_type *ktype ;
861 struct sysfs_dirent *sd ;
862 struct kref kref ;
863 unsigned char state_initialized : 1 ;
864 unsigned char state_in_sysfs : 1 ;
865 unsigned char state_add_uevent_sent : 1 ;
866 unsigned char state_remove_uevent_sent : 1 ;
867 unsigned char uevent_suppress : 1 ;
868};
869#line 107 "include/linux/kobject.h"
870struct kobj_type {
871 void (*release)(struct kobject * ) ;
872 struct sysfs_ops const *sysfs_ops ;
873 struct attribute **default_attrs ;
874 struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject * ) ;
875 void const *(*namespace)(struct kobject * ) ;
876};
877#line 115 "include/linux/kobject.h"
878struct kobj_uevent_env {
879 char *envp[32U] ;
880 int envp_idx ;
881 char buf[2048U] ;
882 int buflen ;
883};
884#line 122 "include/linux/kobject.h"
885struct kset_uevent_ops {
886 int (* const filter)(struct kset * , struct kobject * ) ;
887 char const *(* const name)(struct kset * , struct kobject * ) ;
888 int (* const uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
889};
890#line 139 "include/linux/kobject.h"
891struct kset {
892 struct list_head list ;
893 spinlock_t list_lock ;
894 struct kobject kobj ;
895 struct kset_uevent_ops const *uevent_ops ;
896};
897#line 215
898struct kernel_param;
899#line 215
900struct kernel_param;
901#line 216 "include/linux/kobject.h"
902struct kernel_param_ops {
903 int (*set)(char const * , struct kernel_param const * ) ;
904 int (*get)(char * , struct kernel_param const * ) ;
905 void (*free)(void * ) ;
906};
907#line 49 "include/linux/moduleparam.h"
908struct kparam_string;
909#line 49
910struct kparam_array;
911#line 49 "include/linux/moduleparam.h"
912union __anonunion_ldv_13363_134 {
913 void *arg ;
914 struct kparam_string const *str ;
915 struct kparam_array const *arr ;
916};
917#line 49 "include/linux/moduleparam.h"
918struct kernel_param {
919 char const *name ;
920 struct kernel_param_ops const *ops ;
921 u16 perm ;
922 s16 level ;
923 union __anonunion_ldv_13363_134 ldv_13363 ;
924};
925#line 61 "include/linux/moduleparam.h"
926struct kparam_string {
927 unsigned int maxlen ;
928 char *string ;
929};
930#line 67 "include/linux/moduleparam.h"
931struct kparam_array {
932 unsigned int max ;
933 unsigned int elemsize ;
934 unsigned int *num ;
935 struct kernel_param_ops const *ops ;
936 void *elem ;
937};
938#line 458 "include/linux/moduleparam.h"
939struct static_key {
940 atomic_t enabled ;
941};
942#line 225 "include/linux/jump_label.h"
943struct tracepoint;
944#line 225
945struct tracepoint;
946#line 226 "include/linux/jump_label.h"
947struct tracepoint_func {
948 void *func ;
949 void *data ;
950};
951#line 29 "include/linux/tracepoint.h"
952struct tracepoint {
953 char const *name ;
954 struct static_key key ;
955 void (*regfunc)(void) ;
956 void (*unregfunc)(void) ;
957 struct tracepoint_func *funcs ;
958};
959#line 86 "include/linux/tracepoint.h"
960struct kernel_symbol {
961 unsigned long value ;
962 char const *name ;
963};
964#line 27 "include/linux/export.h"
965struct mod_arch_specific {
966
967};
968#line 34 "include/linux/module.h"
969struct module_param_attrs;
970#line 34 "include/linux/module.h"
971struct module_kobject {
972 struct kobject kobj ;
973 struct module *mod ;
974 struct kobject *drivers_dir ;
975 struct module_param_attrs *mp ;
976};
977#line 43 "include/linux/module.h"
978struct module_attribute {
979 struct attribute attr ;
980 ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
981 ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const * ,
982 size_t ) ;
983 void (*setup)(struct module * , char const * ) ;
984 int (*test)(struct module * ) ;
985 void (*free)(struct module * ) ;
986};
987#line 69
988struct exception_table_entry;
989#line 69
990struct exception_table_entry;
991#line 198
992enum module_state {
993 MODULE_STATE_LIVE = 0,
994 MODULE_STATE_COMING = 1,
995 MODULE_STATE_GOING = 2
996} ;
997#line 204 "include/linux/module.h"
998struct module_ref {
999 unsigned long incs ;
1000 unsigned long decs ;
1001};
1002#line 219
1003struct module_sect_attrs;
1004#line 219
1005struct module_notes_attrs;
1006#line 219
1007struct ftrace_event_call;
1008#line 219 "include/linux/module.h"
1009struct module {
1010 enum module_state state ;
1011 struct list_head list ;
1012 char name[56U] ;
1013 struct module_kobject mkobj ;
1014 struct module_attribute *modinfo_attrs ;
1015 char const *version ;
1016 char const *srcversion ;
1017 struct kobject *holders_dir ;
1018 struct kernel_symbol const *syms ;
1019 unsigned long const *crcs ;
1020 unsigned int num_syms ;
1021 struct kernel_param *kp ;
1022 unsigned int num_kp ;
1023 unsigned int num_gpl_syms ;
1024 struct kernel_symbol const *gpl_syms ;
1025 unsigned long const *gpl_crcs ;
1026 struct kernel_symbol const *unused_syms ;
1027 unsigned long const *unused_crcs ;
1028 unsigned int num_unused_syms ;
1029 unsigned int num_unused_gpl_syms ;
1030 struct kernel_symbol const *unused_gpl_syms ;
1031 unsigned long const *unused_gpl_crcs ;
1032 struct kernel_symbol const *gpl_future_syms ;
1033 unsigned long const *gpl_future_crcs ;
1034 unsigned int num_gpl_future_syms ;
1035 unsigned int num_exentries ;
1036 struct exception_table_entry *extable ;
1037 int (*init)(void) ;
1038 void *module_init ;
1039 void *module_core ;
1040 unsigned int init_size ;
1041 unsigned int core_size ;
1042 unsigned int init_text_size ;
1043 unsigned int core_text_size ;
1044 unsigned int init_ro_size ;
1045 unsigned int core_ro_size ;
1046 struct mod_arch_specific arch ;
1047 unsigned int taints ;
1048 unsigned int num_bugs ;
1049 struct list_head bug_list ;
1050 struct bug_entry *bug_table ;
1051 Elf64_Sym *symtab ;
1052 Elf64_Sym *core_symtab ;
1053 unsigned int num_symtab ;
1054 unsigned int core_num_syms ;
1055 char *strtab ;
1056 char *core_strtab ;
1057 struct module_sect_attrs *sect_attrs ;
1058 struct module_notes_attrs *notes_attrs ;
1059 char *args ;
1060 void *percpu ;
1061 unsigned int percpu_size ;
1062 unsigned int num_tracepoints ;
1063 struct tracepoint * const *tracepoints_ptrs ;
1064 unsigned int num_trace_bprintk_fmt ;
1065 char const **trace_bprintk_fmt_start ;
1066 struct ftrace_event_call **trace_events ;
1067 unsigned int num_trace_events ;
1068 struct list_head source_list ;
1069 struct list_head target_list ;
1070 struct task_struct *waiter ;
1071 void (*exit)(void) ;
1072 struct module_ref *refptr ;
1073 ctor_fn_t (**ctors)(void) ;
1074 unsigned int num_ctors ;
1075};
1076#line 88 "include/linux/kmemleak.h"
1077struct kmem_cache_cpu {
1078 void **freelist ;
1079 unsigned long tid ;
1080 struct page *page ;
1081 struct page *partial ;
1082 int node ;
1083 unsigned int stat[26U] ;
1084};
1085#line 55 "include/linux/slub_def.h"
1086struct kmem_cache_node {
1087 spinlock_t list_lock ;
1088 unsigned long nr_partial ;
1089 struct list_head partial ;
1090 atomic_long_t nr_slabs ;
1091 atomic_long_t total_objects ;
1092 struct list_head full ;
1093};
1094#line 66 "include/linux/slub_def.h"
1095struct kmem_cache_order_objects {
1096 unsigned long x ;
1097};
1098#line 76 "include/linux/slub_def.h"
1099struct kmem_cache {
1100 struct kmem_cache_cpu *cpu_slab ;
1101 unsigned long flags ;
1102 unsigned long min_partial ;
1103 int size ;
1104 int objsize ;
1105 int offset ;
1106 int cpu_partial ;
1107 struct kmem_cache_order_objects oo ;
1108 struct kmem_cache_order_objects max ;
1109 struct kmem_cache_order_objects min ;
1110 gfp_t allocflags ;
1111 int refcount ;
1112 void (*ctor)(void * ) ;
1113 int inuse ;
1114 int align ;
1115 int reserved ;
1116 char const *name ;
1117 struct list_head list ;
1118 struct kobject kobj ;
1119 int remote_node_defrag_ratio ;
1120 struct kmem_cache_node *node[1024U] ;
1121};
1122#line 21 "include/linux/uio.h"
1123struct kvec {
1124 void *iov_base ;
1125 size_t iov_len ;
1126};
1127#line 54
1128struct klist_node;
1129#line 54
1130struct klist_node;
1131#line 37 "include/linux/klist.h"
1132struct klist_node {
1133 void *n_klist ;
1134 struct list_head n_node ;
1135 struct kref n_ref ;
1136};
1137#line 67
1138struct dma_map_ops;
1139#line 67 "include/linux/klist.h"
1140struct dev_archdata {
1141 void *acpi_handle ;
1142 struct dma_map_ops *dma_ops ;
1143 void *iommu ;
1144};
1145#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1146struct device_private;
1147#line 17
1148struct device_private;
1149#line 18
1150struct device_driver;
1151#line 18
1152struct device_driver;
1153#line 19
1154struct driver_private;
1155#line 19
1156struct driver_private;
1157#line 20
1158struct class;
1159#line 20
1160struct class;
1161#line 21
1162struct subsys_private;
1163#line 21
1164struct subsys_private;
1165#line 22
1166struct bus_type;
1167#line 22
1168struct bus_type;
1169#line 23
1170struct device_node;
1171#line 23
1172struct device_node;
1173#line 24
1174struct iommu_ops;
1175#line 24
1176struct iommu_ops;
1177#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1178struct bus_attribute {
1179 struct attribute attr ;
1180 ssize_t (*show)(struct bus_type * , char * ) ;
1181 ssize_t (*store)(struct bus_type * , char const * , size_t ) ;
1182};
1183#line 51 "include/linux/device.h"
1184struct device_attribute;
1185#line 51
1186struct driver_attribute;
1187#line 51 "include/linux/device.h"
1188struct bus_type {
1189 char const *name ;
1190 char const *dev_name ;
1191 struct device *dev_root ;
1192 struct bus_attribute *bus_attrs ;
1193 struct device_attribute *dev_attrs ;
1194 struct driver_attribute *drv_attrs ;
1195 int (*match)(struct device * , struct device_driver * ) ;
1196 int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1197 int (*probe)(struct device * ) ;
1198 int (*remove)(struct device * ) ;
1199 void (*shutdown)(struct device * ) ;
1200 int (*suspend)(struct device * , pm_message_t ) ;
1201 int (*resume)(struct device * ) ;
1202 struct dev_pm_ops const *pm ;
1203 struct iommu_ops *iommu_ops ;
1204 struct subsys_private *p ;
1205};
1206#line 125
1207struct device_type;
1208#line 182
1209struct of_device_id;
1210#line 182 "include/linux/device.h"
1211struct device_driver {
1212 char const *name ;
1213 struct bus_type *bus ;
1214 struct module *owner ;
1215 char const *mod_name ;
1216 bool suppress_bind_attrs ;
1217 struct of_device_id const *of_match_table ;
1218 int (*probe)(struct device * ) ;
1219 int (*remove)(struct device * ) ;
1220 void (*shutdown)(struct device * ) ;
1221 int (*suspend)(struct device * , pm_message_t ) ;
1222 int (*resume)(struct device * ) ;
1223 struct attribute_group const **groups ;
1224 struct dev_pm_ops const *pm ;
1225 struct driver_private *p ;
1226};
1227#line 245 "include/linux/device.h"
1228struct driver_attribute {
1229 struct attribute attr ;
1230 ssize_t (*show)(struct device_driver * , char * ) ;
1231 ssize_t (*store)(struct device_driver * , char const * , size_t ) ;
1232};
1233#line 299
1234struct class_attribute;
1235#line 299 "include/linux/device.h"
1236struct class {
1237 char const *name ;
1238 struct module *owner ;
1239 struct class_attribute *class_attrs ;
1240 struct device_attribute *dev_attrs ;
1241 struct bin_attribute *dev_bin_attrs ;
1242 struct kobject *dev_kobj ;
1243 int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1244 char *(*devnode)(struct device * , umode_t * ) ;
1245 void (*class_release)(struct class * ) ;
1246 void (*dev_release)(struct device * ) ;
1247 int (*suspend)(struct device * , pm_message_t ) ;
1248 int (*resume)(struct device * ) ;
1249 struct kobj_ns_type_operations const *ns_type ;
1250 void const *(*namespace)(struct device * ) ;
1251 struct dev_pm_ops const *pm ;
1252 struct subsys_private *p ;
1253};
1254#line 394 "include/linux/device.h"
1255struct class_attribute {
1256 struct attribute attr ;
1257 ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1258 ssize_t (*store)(struct class * , struct class_attribute * , char const * , size_t ) ;
1259 void const *(*namespace)(struct class * , struct class_attribute const * ) ;
1260};
1261#line 447 "include/linux/device.h"
1262struct device_type {
1263 char const *name ;
1264 struct attribute_group const **groups ;
1265 int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1266 char *(*devnode)(struct device * , umode_t * ) ;
1267 void (*release)(struct device * ) ;
1268 struct dev_pm_ops const *pm ;
1269};
1270#line 474 "include/linux/device.h"
1271struct device_attribute {
1272 struct attribute attr ;
1273 ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1274 ssize_t (*store)(struct device * , struct device_attribute * , char const * ,
1275 size_t ) ;
1276};
1277#line 557 "include/linux/device.h"
1278struct device_dma_parameters {
1279 unsigned int max_segment_size ;
1280 unsigned long segment_boundary_mask ;
1281};
1282#line 567
1283struct dma_coherent_mem;
1284#line 567 "include/linux/device.h"
1285struct device {
1286 struct device *parent ;
1287 struct device_private *p ;
1288 struct kobject kobj ;
1289 char const *init_name ;
1290 struct device_type const *type ;
1291 struct mutex mutex ;
1292 struct bus_type *bus ;
1293 struct device_driver *driver ;
1294 void *platform_data ;
1295 struct dev_pm_info power ;
1296 struct dev_pm_domain *pm_domain ;
1297 int numa_node ;
1298 u64 *dma_mask ;
1299 u64 coherent_dma_mask ;
1300 struct device_dma_parameters *dma_parms ;
1301 struct list_head dma_pools ;
1302 struct dma_coherent_mem *dma_mem ;
1303 struct dev_archdata archdata ;
1304 struct device_node *of_node ;
1305 dev_t devt ;
1306 u32 id ;
1307 spinlock_t devres_lock ;
1308 struct list_head devres_head ;
1309 struct klist_node knode_class ;
1310 struct class *class ;
1311 struct attribute_group const **groups ;
1312 void (*release)(struct device * ) ;
1313};
1314#line 681 "include/linux/device.h"
1315struct wakeup_source {
1316 char const *name ;
1317 struct list_head entry ;
1318 spinlock_t lock ;
1319 struct timer_list timer ;
1320 unsigned long timer_expires ;
1321 ktime_t total_time ;
1322 ktime_t max_time ;
1323 ktime_t last_time ;
1324 unsigned long event_count ;
1325 unsigned long active_count ;
1326 unsigned long relax_count ;
1327 unsigned long hit_count ;
1328 unsigned char active : 1 ;
1329};
1330#line 142 "include/mtd/mtd-abi.h"
1331struct otp_info {
1332 __u32 start ;
1333 __u32 length ;
1334 __u32 locked ;
1335};
1336#line 216 "include/mtd/mtd-abi.h"
1337struct nand_oobfree {
1338 __u32 offset ;
1339 __u32 length ;
1340};
1341#line 238 "include/mtd/mtd-abi.h"
1342struct mtd_ecc_stats {
1343 __u32 corrected ;
1344 __u32 failed ;
1345 __u32 badblocks ;
1346 __u32 bbtblocks ;
1347};
1348#line 260
1349struct mtd_info;
1350#line 260 "include/mtd/mtd-abi.h"
1351struct erase_info {
1352 struct mtd_info *mtd ;
1353 uint64_t addr ;
1354 uint64_t len ;
1355 uint64_t fail_addr ;
1356 u_long time ;
1357 u_long retries ;
1358 unsigned int dev ;
1359 unsigned int cell ;
1360 void (*callback)(struct erase_info * ) ;
1361 u_long priv ;
1362 u_char state ;
1363 struct erase_info *next ;
1364};
1365#line 62 "include/linux/mtd/mtd.h"
1366struct mtd_erase_region_info {
1367 uint64_t offset ;
1368 uint32_t erasesize ;
1369 uint32_t numblocks ;
1370 unsigned long *lockmap ;
1371};
1372#line 69 "include/linux/mtd/mtd.h"
1373struct mtd_oob_ops {
1374 unsigned int mode ;
1375 size_t len ;
1376 size_t retlen ;
1377 size_t ooblen ;
1378 size_t oobretlen ;
1379 uint32_t ooboffs ;
1380 uint8_t *datbuf ;
1381 uint8_t *oobbuf ;
1382};
1383#line 99 "include/linux/mtd/mtd.h"
1384struct nand_ecclayout {
1385 __u32 eccbytes ;
1386 __u32 eccpos[448U] ;
1387 __u32 oobavail ;
1388 struct nand_oobfree oobfree[32U] ;
1389};
1390#line 114
1391struct backing_dev_info;
1392#line 114 "include/linux/mtd/mtd.h"
1393struct mtd_info {
1394 u_char type ;
1395 uint32_t flags ;
1396 uint64_t size ;
1397 uint32_t erasesize ;
1398 uint32_t writesize ;
1399 uint32_t writebufsize ;
1400 uint32_t oobsize ;
1401 uint32_t oobavail ;
1402 unsigned int erasesize_shift ;
1403 unsigned int writesize_shift ;
1404 unsigned int erasesize_mask ;
1405 unsigned int writesize_mask ;
1406 char const *name ;
1407 int index ;
1408 struct nand_ecclayout *ecclayout ;
1409 unsigned int ecc_strength ;
1410 int numeraseregions ;
1411 struct mtd_erase_region_info *eraseregions ;
1412 int (*_erase)(struct mtd_info * , struct erase_info * ) ;
1413 int (*_point)(struct mtd_info * , loff_t , size_t , size_t * , void ** , resource_size_t * ) ;
1414 int (*_unpoint)(struct mtd_info * , loff_t , size_t ) ;
1415 unsigned long (*_get_unmapped_area)(struct mtd_info * , unsigned long , unsigned long ,
1416 unsigned long ) ;
1417 int (*_read)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1418 int (*_write)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
1419 int (*_panic_write)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
1420 int (*_read_oob)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
1421 int (*_write_oob)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
1422 int (*_get_fact_prot_info)(struct mtd_info * , struct otp_info * , size_t ) ;
1423 int (*_read_fact_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1424 int (*_get_user_prot_info)(struct mtd_info * , struct otp_info * , size_t ) ;
1425 int (*_read_user_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1426 int (*_write_user_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * ,
1427 u_char * ) ;
1428 int (*_lock_user_prot_reg)(struct mtd_info * , loff_t , size_t ) ;
1429 int (*_writev)(struct mtd_info * , struct kvec const * , unsigned long , loff_t ,
1430 size_t * ) ;
1431 void (*_sync)(struct mtd_info * ) ;
1432 int (*_lock)(struct mtd_info * , loff_t , uint64_t ) ;
1433 int (*_unlock)(struct mtd_info * , loff_t , uint64_t ) ;
1434 int (*_is_locked)(struct mtd_info * , loff_t , uint64_t ) ;
1435 int (*_block_isbad)(struct mtd_info * , loff_t ) ;
1436 int (*_block_markbad)(struct mtd_info * , loff_t ) ;
1437 int (*_suspend)(struct mtd_info * ) ;
1438 void (*_resume)(struct mtd_info * ) ;
1439 int (*_get_device)(struct mtd_info * ) ;
1440 void (*_put_device)(struct mtd_info * ) ;
1441 struct backing_dev_info *backing_dev_info ;
1442 struct notifier_block reboot_notifier ;
1443 struct mtd_ecc_stats ecc_stats ;
1444 int subpage_sft ;
1445 void *priv ;
1446 struct module *owner ;
1447 struct device dev ;
1448 int usecount ;
1449};
1450#line 93 "include/linux/capability.h"
1451struct kernel_cap_struct {
1452 __u32 cap[2U] ;
1453};
1454#line 96 "include/linux/capability.h"
1455typedef struct kernel_cap_struct kernel_cap_t;
1456#line 105
1457struct user_namespace;
1458#line 105
1459struct user_namespace;
1460#line 554
1461struct prio_tree_node;
1462#line 554 "include/linux/capability.h"
1463struct raw_prio_tree_node {
1464 struct prio_tree_node *left ;
1465 struct prio_tree_node *right ;
1466 struct prio_tree_node *parent ;
1467};
1468#line 19 "include/linux/prio_tree.h"
1469struct prio_tree_node {
1470 struct prio_tree_node *left ;
1471 struct prio_tree_node *right ;
1472 struct prio_tree_node *parent ;
1473 unsigned long start ;
1474 unsigned long last ;
1475};
1476#line 116
1477struct address_space;
1478#line 116
1479struct address_space;
1480#line 117 "include/linux/prio_tree.h"
1481union __anonunion_ldv_15548_137 {
1482 unsigned long index ;
1483 void *freelist ;
1484};
1485#line 117 "include/linux/prio_tree.h"
1486struct __anonstruct_ldv_15558_141 {
1487 unsigned short inuse ;
1488 unsigned short objects : 15 ;
1489 unsigned char frozen : 1 ;
1490};
1491#line 117 "include/linux/prio_tree.h"
1492union __anonunion_ldv_15559_140 {
1493 atomic_t _mapcount ;
1494 struct __anonstruct_ldv_15558_141 ldv_15558 ;
1495};
1496#line 117 "include/linux/prio_tree.h"
1497struct __anonstruct_ldv_15561_139 {
1498 union __anonunion_ldv_15559_140 ldv_15559 ;
1499 atomic_t _count ;
1500};
1501#line 117 "include/linux/prio_tree.h"
1502union __anonunion_ldv_15562_138 {
1503 unsigned long counters ;
1504 struct __anonstruct_ldv_15561_139 ldv_15561 ;
1505};
1506#line 117 "include/linux/prio_tree.h"
1507struct __anonstruct_ldv_15563_136 {
1508 union __anonunion_ldv_15548_137 ldv_15548 ;
1509 union __anonunion_ldv_15562_138 ldv_15562 ;
1510};
1511#line 117 "include/linux/prio_tree.h"
1512struct __anonstruct_ldv_15570_143 {
1513 struct page *next ;
1514 int pages ;
1515 int pobjects ;
1516};
1517#line 117 "include/linux/prio_tree.h"
1518union __anonunion_ldv_15571_142 {
1519 struct list_head lru ;
1520 struct __anonstruct_ldv_15570_143 ldv_15570 ;
1521};
1522#line 117 "include/linux/prio_tree.h"
1523union __anonunion_ldv_15576_144 {
1524 unsigned long private ;
1525 struct kmem_cache *slab ;
1526 struct page *first_page ;
1527};
1528#line 117 "include/linux/prio_tree.h"
1529struct page {
1530 unsigned long flags ;
1531 struct address_space *mapping ;
1532 struct __anonstruct_ldv_15563_136 ldv_15563 ;
1533 union __anonunion_ldv_15571_142 ldv_15571 ;
1534 union __anonunion_ldv_15576_144 ldv_15576 ;
1535 unsigned long debug_flags ;
1536};
1537#line 192 "include/linux/mm_types.h"
1538struct __anonstruct_vm_set_146 {
1539 struct list_head list ;
1540 void *parent ;
1541 struct vm_area_struct *head ;
1542};
1543#line 192 "include/linux/mm_types.h"
1544union __anonunion_shared_145 {
1545 struct __anonstruct_vm_set_146 vm_set ;
1546 struct raw_prio_tree_node prio_tree_node ;
1547};
1548#line 192
1549struct anon_vma;
1550#line 192
1551struct vm_operations_struct;
1552#line 192
1553struct mempolicy;
1554#line 192 "include/linux/mm_types.h"
1555struct vm_area_struct {
1556 struct mm_struct *vm_mm ;
1557 unsigned long vm_start ;
1558 unsigned long vm_end ;
1559 struct vm_area_struct *vm_next ;
1560 struct vm_area_struct *vm_prev ;
1561 pgprot_t vm_page_prot ;
1562 unsigned long vm_flags ;
1563 struct rb_node vm_rb ;
1564 union __anonunion_shared_145 shared ;
1565 struct list_head anon_vma_chain ;
1566 struct anon_vma *anon_vma ;
1567 struct vm_operations_struct const *vm_ops ;
1568 unsigned long vm_pgoff ;
1569 struct file *vm_file ;
1570 void *vm_private_data ;
1571 struct mempolicy *vm_policy ;
1572};
1573#line 255 "include/linux/mm_types.h"
1574struct core_thread {
1575 struct task_struct *task ;
1576 struct core_thread *next ;
1577};
1578#line 261 "include/linux/mm_types.h"
1579struct core_state {
1580 atomic_t nr_threads ;
1581 struct core_thread dumper ;
1582 struct completion startup ;
1583};
1584#line 274 "include/linux/mm_types.h"
1585struct mm_rss_stat {
1586 atomic_long_t count[3U] ;
1587};
1588#line 287
1589struct linux_binfmt;
1590#line 287
1591struct mmu_notifier_mm;
1592#line 287 "include/linux/mm_types.h"
1593struct mm_struct {
1594 struct vm_area_struct *mmap ;
1595 struct rb_root mm_rb ;
1596 struct vm_area_struct *mmap_cache ;
1597 unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long ,
1598 unsigned long , unsigned long ) ;
1599 void (*unmap_area)(struct mm_struct * , unsigned long ) ;
1600 unsigned long mmap_base ;
1601 unsigned long task_size ;
1602 unsigned long cached_hole_size ;
1603 unsigned long free_area_cache ;
1604 pgd_t *pgd ;
1605 atomic_t mm_users ;
1606 atomic_t mm_count ;
1607 int map_count ;
1608 spinlock_t page_table_lock ;
1609 struct rw_semaphore mmap_sem ;
1610 struct list_head mmlist ;
1611 unsigned long hiwater_rss ;
1612 unsigned long hiwater_vm ;
1613 unsigned long total_vm ;
1614 unsigned long locked_vm ;
1615 unsigned long pinned_vm ;
1616 unsigned long shared_vm ;
1617 unsigned long exec_vm ;
1618 unsigned long stack_vm ;
1619 unsigned long reserved_vm ;
1620 unsigned long def_flags ;
1621 unsigned long nr_ptes ;
1622 unsigned long start_code ;
1623 unsigned long end_code ;
1624 unsigned long start_data ;
1625 unsigned long end_data ;
1626 unsigned long start_brk ;
1627 unsigned long brk ;
1628 unsigned long start_stack ;
1629 unsigned long arg_start ;
1630 unsigned long arg_end ;
1631 unsigned long env_start ;
1632 unsigned long env_end ;
1633 unsigned long saved_auxv[44U] ;
1634 struct mm_rss_stat rss_stat ;
1635 struct linux_binfmt *binfmt ;
1636 cpumask_var_t cpu_vm_mask_var ;
1637 mm_context_t context ;
1638 unsigned int faultstamp ;
1639 unsigned int token_priority ;
1640 unsigned int last_interval ;
1641 unsigned long flags ;
1642 struct core_state *core_state ;
1643 spinlock_t ioctx_lock ;
1644 struct hlist_head ioctx_list ;
1645 struct task_struct *owner ;
1646 struct file *exe_file ;
1647 unsigned long num_exe_file_vmas ;
1648 struct mmu_notifier_mm *mmu_notifier_mm ;
1649 pgtable_t pmd_huge_pte ;
1650 struct cpumask cpumask_allocation ;
1651};
1652#line 7 "include/asm-generic/cputime.h"
1653typedef unsigned long cputime_t;
1654#line 98 "include/linux/sem.h"
1655struct sem_undo_list;
1656#line 98 "include/linux/sem.h"
1657struct sysv_sem {
1658 struct sem_undo_list *undo_list ;
1659};
1660#line 107
1661struct siginfo;
1662#line 107
1663struct siginfo;
1664#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1665struct __anonstruct_sigset_t_147 {
1666 unsigned long sig[1U] ;
1667};
1668#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1669typedef struct __anonstruct_sigset_t_147 sigset_t;
1670#line 17 "include/asm-generic/signal-defs.h"
1671typedef void __signalfn_t(int );
1672#line 18 "include/asm-generic/signal-defs.h"
1673typedef __signalfn_t *__sighandler_t;
1674#line 20 "include/asm-generic/signal-defs.h"
1675typedef void __restorefn_t(void);
1676#line 21 "include/asm-generic/signal-defs.h"
1677typedef __restorefn_t *__sigrestore_t;
1678#line 126 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1679struct sigaction {
1680 __sighandler_t sa_handler ;
1681 unsigned long sa_flags ;
1682 __sigrestore_t sa_restorer ;
1683 sigset_t sa_mask ;
1684};
1685#line 173 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1686struct k_sigaction {
1687 struct sigaction sa ;
1688};
1689#line 185 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1690union sigval {
1691 int sival_int ;
1692 void *sival_ptr ;
1693};
1694#line 10 "include/asm-generic/siginfo.h"
1695typedef union sigval sigval_t;
1696#line 11 "include/asm-generic/siginfo.h"
1697struct __anonstruct__kill_149 {
1698 __kernel_pid_t _pid ;
1699 __kernel_uid32_t _uid ;
1700};
1701#line 11 "include/asm-generic/siginfo.h"
1702struct __anonstruct__timer_150 {
1703 __kernel_timer_t _tid ;
1704 int _overrun ;
1705 char _pad[0U] ;
1706 sigval_t _sigval ;
1707 int _sys_private ;
1708};
1709#line 11 "include/asm-generic/siginfo.h"
1710struct __anonstruct__rt_151 {
1711 __kernel_pid_t _pid ;
1712 __kernel_uid32_t _uid ;
1713 sigval_t _sigval ;
1714};
1715#line 11 "include/asm-generic/siginfo.h"
1716struct __anonstruct__sigchld_152 {
1717 __kernel_pid_t _pid ;
1718 __kernel_uid32_t _uid ;
1719 int _status ;
1720 __kernel_clock_t _utime ;
1721 __kernel_clock_t _stime ;
1722};
1723#line 11 "include/asm-generic/siginfo.h"
1724struct __anonstruct__sigfault_153 {
1725 void *_addr ;
1726 short _addr_lsb ;
1727};
1728#line 11 "include/asm-generic/siginfo.h"
1729struct __anonstruct__sigpoll_154 {
1730 long _band ;
1731 int _fd ;
1732};
1733#line 11 "include/asm-generic/siginfo.h"
1734union __anonunion__sifields_148 {
1735 int _pad[28U] ;
1736 struct __anonstruct__kill_149 _kill ;
1737 struct __anonstruct__timer_150 _timer ;
1738 struct __anonstruct__rt_151 _rt ;
1739 struct __anonstruct__sigchld_152 _sigchld ;
1740 struct __anonstruct__sigfault_153 _sigfault ;
1741 struct __anonstruct__sigpoll_154 _sigpoll ;
1742};
1743#line 11 "include/asm-generic/siginfo.h"
1744struct siginfo {
1745 int si_signo ;
1746 int si_errno ;
1747 int si_code ;
1748 union __anonunion__sifields_148 _sifields ;
1749};
1750#line 102 "include/asm-generic/siginfo.h"
1751typedef struct siginfo siginfo_t;
1752#line 14 "include/linux/signal.h"
1753struct user_struct;
1754#line 24 "include/linux/signal.h"
1755struct sigpending {
1756 struct list_head list ;
1757 sigset_t signal ;
1758};
1759#line 395
1760struct pid_namespace;
1761#line 395 "include/linux/signal.h"
1762struct upid {
1763 int nr ;
1764 struct pid_namespace *ns ;
1765 struct hlist_node pid_chain ;
1766};
1767#line 56 "include/linux/pid.h"
1768struct pid {
1769 atomic_t count ;
1770 unsigned int level ;
1771 struct hlist_head tasks[3U] ;
1772 struct rcu_head rcu ;
1773 struct upid numbers[1U] ;
1774};
1775#line 68 "include/linux/pid.h"
1776struct pid_link {
1777 struct hlist_node node ;
1778 struct pid *pid ;
1779};
1780#line 10 "include/linux/seccomp.h"
1781struct __anonstruct_seccomp_t_157 {
1782 int mode ;
1783};
1784#line 10 "include/linux/seccomp.h"
1785typedef struct __anonstruct_seccomp_t_157 seccomp_t;
1786#line 427 "include/linux/rculist.h"
1787struct plist_head {
1788 struct list_head node_list ;
1789};
1790#line 84 "include/linux/plist.h"
1791struct plist_node {
1792 int prio ;
1793 struct list_head prio_list ;
1794 struct list_head node_list ;
1795};
1796#line 38 "include/linux/rtmutex.h"
1797struct rt_mutex_waiter;
1798#line 38
1799struct rt_mutex_waiter;
1800#line 41 "include/linux/resource.h"
1801struct rlimit {
1802 unsigned long rlim_cur ;
1803 unsigned long rlim_max ;
1804};
1805#line 85 "include/linux/resource.h"
1806struct timerqueue_node {
1807 struct rb_node node ;
1808 ktime_t expires ;
1809};
1810#line 12 "include/linux/timerqueue.h"
1811struct timerqueue_head {
1812 struct rb_root head ;
1813 struct timerqueue_node *next ;
1814};
1815#line 50
1816struct hrtimer_clock_base;
1817#line 50
1818struct hrtimer_clock_base;
1819#line 51
1820struct hrtimer_cpu_base;
1821#line 51
1822struct hrtimer_cpu_base;
1823#line 60
1824enum hrtimer_restart {
1825 HRTIMER_NORESTART = 0,
1826 HRTIMER_RESTART = 1
1827} ;
1828#line 65 "include/linux/timerqueue.h"
1829struct hrtimer {
1830 struct timerqueue_node node ;
1831 ktime_t _softexpires ;
1832 enum hrtimer_restart (*function)(struct hrtimer * ) ;
1833 struct hrtimer_clock_base *base ;
1834 unsigned long state ;
1835 int start_pid ;
1836 void *start_site ;
1837 char start_comm[16U] ;
1838};
1839#line 132 "include/linux/hrtimer.h"
1840struct hrtimer_clock_base {
1841 struct hrtimer_cpu_base *cpu_base ;
1842 int index ;
1843 clockid_t clockid ;
1844 struct timerqueue_head active ;
1845 ktime_t resolution ;
1846 ktime_t (*get_time)(void) ;
1847 ktime_t softirq_time ;
1848 ktime_t offset ;
1849};
1850#line 162 "include/linux/hrtimer.h"
1851struct hrtimer_cpu_base {
1852 raw_spinlock_t lock ;
1853 unsigned long active_bases ;
1854 ktime_t expires_next ;
1855 int hres_active ;
1856 int hang_detected ;
1857 unsigned long nr_events ;
1858 unsigned long nr_retries ;
1859 unsigned long nr_hangs ;
1860 ktime_t max_hang_time ;
1861 struct hrtimer_clock_base clock_base[3U] ;
1862};
1863#line 452 "include/linux/hrtimer.h"
1864struct task_io_accounting {
1865 u64 rchar ;
1866 u64 wchar ;
1867 u64 syscr ;
1868 u64 syscw ;
1869 u64 read_bytes ;
1870 u64 write_bytes ;
1871 u64 cancelled_write_bytes ;
1872};
1873#line 45 "include/linux/task_io_accounting.h"
1874struct latency_record {
1875 unsigned long backtrace[12U] ;
1876 unsigned int count ;
1877 unsigned long time ;
1878 unsigned long max ;
1879};
1880#line 29 "include/linux/key.h"
1881typedef int32_t key_serial_t;
1882#line 32 "include/linux/key.h"
1883typedef uint32_t key_perm_t;
1884#line 33
1885struct key;
1886#line 33
1887struct key;
1888#line 34
1889struct signal_struct;
1890#line 34
1891struct signal_struct;
1892#line 35
1893struct key_type;
1894#line 35
1895struct key_type;
1896#line 37
1897struct keyring_list;
1898#line 37
1899struct keyring_list;
1900#line 115
1901struct key_user;
1902#line 115 "include/linux/key.h"
1903union __anonunion_ldv_16812_158 {
1904 time_t expiry ;
1905 time_t revoked_at ;
1906};
1907#line 115 "include/linux/key.h"
1908union __anonunion_type_data_159 {
1909 struct list_head link ;
1910 unsigned long x[2U] ;
1911 void *p[2U] ;
1912 int reject_error ;
1913};
1914#line 115 "include/linux/key.h"
1915union __anonunion_payload_160 {
1916 unsigned long value ;
1917 void *rcudata ;
1918 void *data ;
1919 struct keyring_list *subscriptions ;
1920};
1921#line 115 "include/linux/key.h"
1922struct key {
1923 atomic_t usage ;
1924 key_serial_t serial ;
1925 struct rb_node serial_node ;
1926 struct key_type *type ;
1927 struct rw_semaphore sem ;
1928 struct key_user *user ;
1929 void *security ;
1930 union __anonunion_ldv_16812_158 ldv_16812 ;
1931 uid_t uid ;
1932 gid_t gid ;
1933 key_perm_t perm ;
1934 unsigned short quotalen ;
1935 unsigned short datalen ;
1936 unsigned long flags ;
1937 char *description ;
1938 union __anonunion_type_data_159 type_data ;
1939 union __anonunion_payload_160 payload ;
1940};
1941#line 316
1942struct audit_context;
1943#line 316
1944struct audit_context;
1945#line 28 "include/linux/selinux.h"
1946struct group_info {
1947 atomic_t usage ;
1948 int ngroups ;
1949 int nblocks ;
1950 gid_t small_block[32U] ;
1951 gid_t *blocks[0U] ;
1952};
1953#line 77 "include/linux/cred.h"
1954struct thread_group_cred {
1955 atomic_t usage ;
1956 pid_t tgid ;
1957 spinlock_t lock ;
1958 struct key *session_keyring ;
1959 struct key *process_keyring ;
1960 struct rcu_head rcu ;
1961};
1962#line 91 "include/linux/cred.h"
1963struct cred {
1964 atomic_t usage ;
1965 atomic_t subscribers ;
1966 void *put_addr ;
1967 unsigned int magic ;
1968 uid_t uid ;
1969 gid_t gid ;
1970 uid_t suid ;
1971 gid_t sgid ;
1972 uid_t euid ;
1973 gid_t egid ;
1974 uid_t fsuid ;
1975 gid_t fsgid ;
1976 unsigned int securebits ;
1977 kernel_cap_t cap_inheritable ;
1978 kernel_cap_t cap_permitted ;
1979 kernel_cap_t cap_effective ;
1980 kernel_cap_t cap_bset ;
1981 unsigned char jit_keyring ;
1982 struct key *thread_keyring ;
1983 struct key *request_key_auth ;
1984 struct thread_group_cred *tgcred ;
1985 void *security ;
1986 struct user_struct *user ;
1987 struct user_namespace *user_ns ;
1988 struct group_info *group_info ;
1989 struct rcu_head rcu ;
1990};
1991#line 264
1992struct llist_node;
1993#line 64 "include/linux/llist.h"
1994struct llist_node {
1995 struct llist_node *next ;
1996};
1997#line 185
1998struct futex_pi_state;
1999#line 185
2000struct futex_pi_state;
2001#line 186
2002struct robust_list_head;
2003#line 186
2004struct robust_list_head;
2005#line 187
2006struct bio_list;
2007#line 187
2008struct bio_list;
2009#line 188
2010struct fs_struct;
2011#line 188
2012struct fs_struct;
2013#line 189
2014struct perf_event_context;
2015#line 189
2016struct perf_event_context;
2017#line 190
2018struct blk_plug;
2019#line 190
2020struct blk_plug;
2021#line 149 "include/linux/sched.h"
2022struct cfs_rq;
2023#line 149
2024struct cfs_rq;
2025#line 406 "include/linux/sched.h"
2026struct sighand_struct {
2027 atomic_t count ;
2028 struct k_sigaction action[64U] ;
2029 spinlock_t siglock ;
2030 wait_queue_head_t signalfd_wqh ;
2031};
2032#line 449 "include/linux/sched.h"
2033struct pacct_struct {
2034 int ac_flag ;
2035 long ac_exitcode ;
2036 unsigned long ac_mem ;
2037 cputime_t ac_utime ;
2038 cputime_t ac_stime ;
2039 unsigned long ac_minflt ;
2040 unsigned long ac_majflt ;
2041};
2042#line 457 "include/linux/sched.h"
2043struct cpu_itimer {
2044 cputime_t expires ;
2045 cputime_t incr ;
2046 u32 error ;
2047 u32 incr_error ;
2048};
2049#line 464 "include/linux/sched.h"
2050struct task_cputime {
2051 cputime_t utime ;
2052 cputime_t stime ;
2053 unsigned long long sum_exec_runtime ;
2054};
2055#line 481 "include/linux/sched.h"
2056struct thread_group_cputimer {
2057 struct task_cputime cputime ;
2058 int running ;
2059 raw_spinlock_t lock ;
2060};
2061#line 517
2062struct autogroup;
2063#line 517
2064struct autogroup;
2065#line 518
2066struct tty_struct;
2067#line 518
2068struct taskstats;
2069#line 518
2070struct tty_audit_buf;
2071#line 518 "include/linux/sched.h"
2072struct signal_struct {
2073 atomic_t sigcnt ;
2074 atomic_t live ;
2075 int nr_threads ;
2076 wait_queue_head_t wait_chldexit ;
2077 struct task_struct *curr_target ;
2078 struct sigpending shared_pending ;
2079 int group_exit_code ;
2080 int notify_count ;
2081 struct task_struct *group_exit_task ;
2082 int group_stop_count ;
2083 unsigned int flags ;
2084 unsigned char is_child_subreaper : 1 ;
2085 unsigned char has_child_subreaper : 1 ;
2086 struct list_head posix_timers ;
2087 struct hrtimer real_timer ;
2088 struct pid *leader_pid ;
2089 ktime_t it_real_incr ;
2090 struct cpu_itimer it[2U] ;
2091 struct thread_group_cputimer cputimer ;
2092 struct task_cputime cputime_expires ;
2093 struct list_head cpu_timers[3U] ;
2094 struct pid *tty_old_pgrp ;
2095 int leader ;
2096 struct tty_struct *tty ;
2097 struct autogroup *autogroup ;
2098 cputime_t utime ;
2099 cputime_t stime ;
2100 cputime_t cutime ;
2101 cputime_t cstime ;
2102 cputime_t gtime ;
2103 cputime_t cgtime ;
2104 cputime_t prev_utime ;
2105 cputime_t prev_stime ;
2106 unsigned long nvcsw ;
2107 unsigned long nivcsw ;
2108 unsigned long cnvcsw ;
2109 unsigned long cnivcsw ;
2110 unsigned long min_flt ;
2111 unsigned long maj_flt ;
2112 unsigned long cmin_flt ;
2113 unsigned long cmaj_flt ;
2114 unsigned long inblock ;
2115 unsigned long oublock ;
2116 unsigned long cinblock ;
2117 unsigned long coublock ;
2118 unsigned long maxrss ;
2119 unsigned long cmaxrss ;
2120 struct task_io_accounting ioac ;
2121 unsigned long long sum_sched_runtime ;
2122 struct rlimit rlim[16U] ;
2123 struct pacct_struct pacct ;
2124 struct taskstats *stats ;
2125 unsigned int audit_tty ;
2126 struct tty_audit_buf *tty_audit_buf ;
2127 struct rw_semaphore group_rwsem ;
2128 int oom_adj ;
2129 int oom_score_adj ;
2130 int oom_score_adj_min ;
2131 struct mutex cred_guard_mutex ;
2132};
2133#line 699 "include/linux/sched.h"
2134struct user_struct {
2135 atomic_t __count ;
2136 atomic_t processes ;
2137 atomic_t files ;
2138 atomic_t sigpending ;
2139 atomic_t inotify_watches ;
2140 atomic_t inotify_devs ;
2141 atomic_t fanotify_listeners ;
2142 atomic_long_t epoll_watches ;
2143 unsigned long mq_bytes ;
2144 unsigned long locked_shm ;
2145 struct key *uid_keyring ;
2146 struct key *session_keyring ;
2147 struct hlist_node uidhash_node ;
2148 uid_t uid ;
2149 struct user_namespace *user_ns ;
2150 atomic_long_t locked_vm ;
2151};
2152#line 744
2153struct reclaim_state;
2154#line 744
2155struct reclaim_state;
2156#line 745 "include/linux/sched.h"
2157struct sched_info {
2158 unsigned long pcount ;
2159 unsigned long long run_delay ;
2160 unsigned long long last_arrival ;
2161 unsigned long long last_queued ;
2162};
2163#line 760 "include/linux/sched.h"
2164struct task_delay_info {
2165 spinlock_t lock ;
2166 unsigned int flags ;
2167 struct timespec blkio_start ;
2168 struct timespec blkio_end ;
2169 u64 blkio_delay ;
2170 u64 swapin_delay ;
2171 u32 blkio_count ;
2172 u32 swapin_count ;
2173 struct timespec freepages_start ;
2174 struct timespec freepages_end ;
2175 u64 freepages_delay ;
2176 u32 freepages_count ;
2177};
2178#line 1069
2179struct io_context;
2180#line 1069
2181struct io_context;
2182#line 1097
2183struct pipe_inode_info;
2184#line 1097
2185struct pipe_inode_info;
2186#line 1099
2187struct rq;
2188#line 1099
2189struct rq;
2190#line 1100 "include/linux/sched.h"
2191struct sched_class {
2192 struct sched_class const *next ;
2193 void (*enqueue_task)(struct rq * , struct task_struct * , int ) ;
2194 void (*dequeue_task)(struct rq * , struct task_struct * , int ) ;
2195 void (*yield_task)(struct rq * ) ;
2196 bool (*yield_to_task)(struct rq * , struct task_struct * , bool ) ;
2197 void (*check_preempt_curr)(struct rq * , struct task_struct * , int ) ;
2198 struct task_struct *(*pick_next_task)(struct rq * ) ;
2199 void (*put_prev_task)(struct rq * , struct task_struct * ) ;
2200 int (*select_task_rq)(struct task_struct * , int , int ) ;
2201 void (*pre_schedule)(struct rq * , struct task_struct * ) ;
2202 void (*post_schedule)(struct rq * ) ;
2203 void (*task_waking)(struct task_struct * ) ;
2204 void (*task_woken)(struct rq * , struct task_struct * ) ;
2205 void (*set_cpus_allowed)(struct task_struct * , struct cpumask const * ) ;
2206 void (*rq_online)(struct rq * ) ;
2207 void (*rq_offline)(struct rq * ) ;
2208 void (*set_curr_task)(struct rq * ) ;
2209 void (*task_tick)(struct rq * , struct task_struct * , int ) ;
2210 void (*task_fork)(struct task_struct * ) ;
2211 void (*switched_from)(struct rq * , struct task_struct * ) ;
2212 void (*switched_to)(struct rq * , struct task_struct * ) ;
2213 void (*prio_changed)(struct rq * , struct task_struct * , int ) ;
2214 unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
2215 void (*task_move_group)(struct task_struct * , int ) ;
2216};
2217#line 1165 "include/linux/sched.h"
2218struct load_weight {
2219 unsigned long weight ;
2220 unsigned long inv_weight ;
2221};
2222#line 1170 "include/linux/sched.h"
2223struct sched_statistics {
2224 u64 wait_start ;
2225 u64 wait_max ;
2226 u64 wait_count ;
2227 u64 wait_sum ;
2228 u64 iowait_count ;
2229 u64 iowait_sum ;
2230 u64 sleep_start ;
2231 u64 sleep_max ;
2232 s64 sum_sleep_runtime ;
2233 u64 block_start ;
2234 u64 block_max ;
2235 u64 exec_max ;
2236 u64 slice_max ;
2237 u64 nr_migrations_cold ;
2238 u64 nr_failed_migrations_affine ;
2239 u64 nr_failed_migrations_running ;
2240 u64 nr_failed_migrations_hot ;
2241 u64 nr_forced_migrations ;
2242 u64 nr_wakeups ;
2243 u64 nr_wakeups_sync ;
2244 u64 nr_wakeups_migrate ;
2245 u64 nr_wakeups_local ;
2246 u64 nr_wakeups_remote ;
2247 u64 nr_wakeups_affine ;
2248 u64 nr_wakeups_affine_attempts ;
2249 u64 nr_wakeups_passive ;
2250 u64 nr_wakeups_idle ;
2251};
2252#line 1205 "include/linux/sched.h"
2253struct sched_entity {
2254 struct load_weight load ;
2255 struct rb_node run_node ;
2256 struct list_head group_node ;
2257 unsigned int on_rq ;
2258 u64 exec_start ;
2259 u64 sum_exec_runtime ;
2260 u64 vruntime ;
2261 u64 prev_sum_exec_runtime ;
2262 u64 nr_migrations ;
2263 struct sched_statistics statistics ;
2264 struct sched_entity *parent ;
2265 struct cfs_rq *cfs_rq ;
2266 struct cfs_rq *my_q ;
2267};
2268#line 1231
2269struct rt_rq;
2270#line 1231 "include/linux/sched.h"
2271struct sched_rt_entity {
2272 struct list_head run_list ;
2273 unsigned long timeout ;
2274 unsigned int time_slice ;
2275 int nr_cpus_allowed ;
2276 struct sched_rt_entity *back ;
2277 struct sched_rt_entity *parent ;
2278 struct rt_rq *rt_rq ;
2279 struct rt_rq *my_q ;
2280};
2281#line 1255
2282struct mem_cgroup;
2283#line 1255 "include/linux/sched.h"
2284struct memcg_batch_info {
2285 int do_batch ;
2286 struct mem_cgroup *memcg ;
2287 unsigned long nr_pages ;
2288 unsigned long memsw_nr_pages ;
2289};
2290#line 1616
2291struct files_struct;
2292#line 1616
2293struct css_set;
2294#line 1616
2295struct compat_robust_list_head;
2296#line 1616 "include/linux/sched.h"
2297struct task_struct {
2298 long volatile state ;
2299 void *stack ;
2300 atomic_t usage ;
2301 unsigned int flags ;
2302 unsigned int ptrace ;
2303 struct llist_node wake_entry ;
2304 int on_cpu ;
2305 int on_rq ;
2306 int prio ;
2307 int static_prio ;
2308 int normal_prio ;
2309 unsigned int rt_priority ;
2310 struct sched_class const *sched_class ;
2311 struct sched_entity se ;
2312 struct sched_rt_entity rt ;
2313 struct hlist_head preempt_notifiers ;
2314 unsigned char fpu_counter ;
2315 unsigned int policy ;
2316 cpumask_t cpus_allowed ;
2317 struct sched_info sched_info ;
2318 struct list_head tasks ;
2319 struct plist_node pushable_tasks ;
2320 struct mm_struct *mm ;
2321 struct mm_struct *active_mm ;
2322 unsigned char brk_randomized : 1 ;
2323 int exit_state ;
2324 int exit_code ;
2325 int exit_signal ;
2326 int pdeath_signal ;
2327 unsigned int jobctl ;
2328 unsigned int personality ;
2329 unsigned char did_exec : 1 ;
2330 unsigned char in_execve : 1 ;
2331 unsigned char in_iowait : 1 ;
2332 unsigned char sched_reset_on_fork : 1 ;
2333 unsigned char sched_contributes_to_load : 1 ;
2334 unsigned char irq_thread : 1 ;
2335 pid_t pid ;
2336 pid_t tgid ;
2337 unsigned long stack_canary ;
2338 struct task_struct *real_parent ;
2339 struct task_struct *parent ;
2340 struct list_head children ;
2341 struct list_head sibling ;
2342 struct task_struct *group_leader ;
2343 struct list_head ptraced ;
2344 struct list_head ptrace_entry ;
2345 struct pid_link pids[3U] ;
2346 struct list_head thread_group ;
2347 struct completion *vfork_done ;
2348 int *set_child_tid ;
2349 int *clear_child_tid ;
2350 cputime_t utime ;
2351 cputime_t stime ;
2352 cputime_t utimescaled ;
2353 cputime_t stimescaled ;
2354 cputime_t gtime ;
2355 cputime_t prev_utime ;
2356 cputime_t prev_stime ;
2357 unsigned long nvcsw ;
2358 unsigned long nivcsw ;
2359 struct timespec start_time ;
2360 struct timespec real_start_time ;
2361 unsigned long min_flt ;
2362 unsigned long maj_flt ;
2363 struct task_cputime cputime_expires ;
2364 struct list_head cpu_timers[3U] ;
2365 struct cred const *real_cred ;
2366 struct cred const *cred ;
2367 struct cred *replacement_session_keyring ;
2368 char comm[16U] ;
2369 int link_count ;
2370 int total_link_count ;
2371 struct sysv_sem sysvsem ;
2372 unsigned long last_switch_count ;
2373 struct thread_struct thread ;
2374 struct fs_struct *fs ;
2375 struct files_struct *files ;
2376 struct nsproxy *nsproxy ;
2377 struct signal_struct *signal ;
2378 struct sighand_struct *sighand ;
2379 sigset_t blocked ;
2380 sigset_t real_blocked ;
2381 sigset_t saved_sigmask ;
2382 struct sigpending pending ;
2383 unsigned long sas_ss_sp ;
2384 size_t sas_ss_size ;
2385 int (*notifier)(void * ) ;
2386 void *notifier_data ;
2387 sigset_t *notifier_mask ;
2388 struct audit_context *audit_context ;
2389 uid_t loginuid ;
2390 unsigned int sessionid ;
2391 seccomp_t seccomp ;
2392 u32 parent_exec_id ;
2393 u32 self_exec_id ;
2394 spinlock_t alloc_lock ;
2395 raw_spinlock_t pi_lock ;
2396 struct plist_head pi_waiters ;
2397 struct rt_mutex_waiter *pi_blocked_on ;
2398 struct mutex_waiter *blocked_on ;
2399 unsigned int irq_events ;
2400 unsigned long hardirq_enable_ip ;
2401 unsigned long hardirq_disable_ip ;
2402 unsigned int hardirq_enable_event ;
2403 unsigned int hardirq_disable_event ;
2404 int hardirqs_enabled ;
2405 int hardirq_context ;
2406 unsigned long softirq_disable_ip ;
2407 unsigned long softirq_enable_ip ;
2408 unsigned int softirq_disable_event ;
2409 unsigned int softirq_enable_event ;
2410 int softirqs_enabled ;
2411 int softirq_context ;
2412 u64 curr_chain_key ;
2413 int lockdep_depth ;
2414 unsigned int lockdep_recursion ;
2415 struct held_lock held_locks[48U] ;
2416 gfp_t lockdep_reclaim_gfp ;
2417 void *journal_info ;
2418 struct bio_list *bio_list ;
2419 struct blk_plug *plug ;
2420 struct reclaim_state *reclaim_state ;
2421 struct backing_dev_info *backing_dev_info ;
2422 struct io_context *io_context ;
2423 unsigned long ptrace_message ;
2424 siginfo_t *last_siginfo ;
2425 struct task_io_accounting ioac ;
2426 u64 acct_rss_mem1 ;
2427 u64 acct_vm_mem1 ;
2428 cputime_t acct_timexpd ;
2429 nodemask_t mems_allowed ;
2430 seqcount_t mems_allowed_seq ;
2431 int cpuset_mem_spread_rotor ;
2432 int cpuset_slab_spread_rotor ;
2433 struct css_set *cgroups ;
2434 struct list_head cg_list ;
2435 struct robust_list_head *robust_list ;
2436 struct compat_robust_list_head *compat_robust_list ;
2437 struct list_head pi_state_list ;
2438 struct futex_pi_state *pi_state_cache ;
2439 struct perf_event_context *perf_event_ctxp[2U] ;
2440 struct mutex perf_event_mutex ;
2441 struct list_head perf_event_list ;
2442 struct mempolicy *mempolicy ;
2443 short il_next ;
2444 short pref_node_fork ;
2445 struct rcu_head rcu ;
2446 struct pipe_inode_info *splice_pipe ;
2447 struct task_delay_info *delays ;
2448 int make_it_fail ;
2449 int nr_dirtied ;
2450 int nr_dirtied_pause ;
2451 unsigned long dirty_paused_when ;
2452 int latency_record_count ;
2453 struct latency_record latency_record[32U] ;
2454 unsigned long timer_slack_ns ;
2455 unsigned long default_timer_slack_ns ;
2456 struct list_head *scm_work_list ;
2457 unsigned long trace ;
2458 unsigned long trace_recursion ;
2459 struct memcg_batch_info memcg_batch ;
2460 atomic_t ptrace_bp_refcnt ;
2461};
2462#line 1 "<compiler builtins>"
2463long __builtin_expect(long , long ) ;
2464#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2465void ldv_spin_lock(void) ;
2466#line 3
2467void ldv_spin_unlock(void) ;
2468#line 4
2469int ldv_spin_trylock(void) ;
2470#line 101 "include/linux/printk.h"
2471extern int printk(char const * , ...) ;
2472#line 147 "include/linux/kernel.h"
2473extern void __might_sleep(char const * , int , int ) ;
2474#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
2475extern void *memset(void * , int , size_t ) ;
2476#line 60
2477extern int memcmp(void const * , void const * , size_t ) ;
2478#line 27 "include/linux/err.h"
2479__inline static long PTR_ERR(void const *ptr )
2480{
2481
2482 {
2483#line 29
2484 return ((long )ptr);
2485}
2486}
2487#line 32 "include/linux/err.h"
2488__inline static long IS_ERR(void const *ptr )
2489{ long tmp ;
2490 unsigned long __cil_tmp3 ;
2491 int __cil_tmp4 ;
2492 long __cil_tmp5 ;
2493
2494 {
2495 {
2496#line 34
2497 __cil_tmp3 = (unsigned long )ptr;
2498#line 34
2499 __cil_tmp4 = __cil_tmp3 > 0xfffffffffffff000UL;
2500#line 34
2501 __cil_tmp5 = (long )__cil_tmp4;
2502#line 34
2503 tmp = __builtin_expect(__cil_tmp5, 0L);
2504 }
2505#line 34
2506 return (tmp);
2507}
2508}
2509#line 161 "include/linux/slab.h"
2510extern void kfree(void const * ) ;
2511#line 220 "include/linux/slub_def.h"
2512extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t ) ;
2513#line 223
2514void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2515#line 225
2516extern void *__kmalloc(size_t , gfp_t ) ;
2517#line 268 "include/linux/slub_def.h"
2518__inline static void *ldv_kmalloc_12(size_t size , gfp_t flags )
2519{ void *tmp___2 ;
2520
2521 {
2522 {
2523#line 283
2524 tmp___2 = __kmalloc(size, flags);
2525 }
2526#line 283
2527 return (tmp___2);
2528}
2529}
2530#line 268
2531__inline static void *kmalloc(size_t size , gfp_t flags ) ;
2532#line 11 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2533void ldv_check_alloc_flags(gfp_t flags ) ;
2534#line 12
2535void ldv_check_alloc_nonatomic(void) ;
2536#line 14
2537struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2538#line 246 "include/linux/mtd/mtd.h"
2539extern int mtd_erase(struct mtd_info * , struct erase_info * ) ;
2540#line 259 "include/linux/mtd/mtd.h"
2541__inline static int mtd_read_oob(struct mtd_info *mtd , loff_t from , struct mtd_oob_ops *ops )
2542{ size_t tmp ;
2543 int tmp___0 ;
2544 unsigned long __cil_tmp6 ;
2545 unsigned long __cil_tmp7 ;
2546 unsigned long __cil_tmp8 ;
2547 unsigned long __cil_tmp9 ;
2548 int (*__cil_tmp10)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
2549 unsigned long __cil_tmp11 ;
2550 unsigned long __cil_tmp12 ;
2551 unsigned long __cil_tmp13 ;
2552 int (*__cil_tmp14)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
2553 unsigned long __cil_tmp15 ;
2554 unsigned long __cil_tmp16 ;
2555 unsigned long __cil_tmp17 ;
2556 int (*__cil_tmp18)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
2557
2558 {
2559#line 262
2560 tmp = 0UL;
2561#line 262
2562 __cil_tmp6 = (unsigned long )ops;
2563#line 262
2564 __cil_tmp7 = __cil_tmp6 + 32;
2565#line 262
2566 *((size_t *)__cil_tmp7) = tmp;
2567#line 262
2568 __cil_tmp8 = (unsigned long )ops;
2569#line 262
2570 __cil_tmp9 = __cil_tmp8 + 16;
2571#line 262
2572 *((size_t *)__cil_tmp9) = tmp;
2573 {
2574#line 263
2575 __cil_tmp10 = (int (*)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))0;
2576#line 263
2577 __cil_tmp11 = (unsigned long )__cil_tmp10;
2578#line 263
2579 __cil_tmp12 = (unsigned long )mtd;
2580#line 263
2581 __cil_tmp13 = __cil_tmp12 + 152;
2582#line 263
2583 __cil_tmp14 = *((int (**)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))__cil_tmp13);
2584#line 263
2585 __cil_tmp15 = (unsigned long )__cil_tmp14;
2586#line 263
2587 if (__cil_tmp15 == __cil_tmp11) {
2588#line 264
2589 return (-95);
2590 } else {
2591
2592 }
2593 }
2594 {
2595#line 265
2596 __cil_tmp16 = (unsigned long )mtd;
2597#line 265
2598 __cil_tmp17 = __cil_tmp16 + 152;
2599#line 265
2600 __cil_tmp18 = *((int (**)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))__cil_tmp17);
2601#line 265
2602 tmp___0 = (*__cil_tmp18)(mtd, from, ops);
2603 }
2604#line 265
2605 return (tmp___0);
2606}
2607}
2608#line 268 "include/linux/mtd/mtd.h"
2609__inline static int mtd_write_oob(struct mtd_info *mtd , loff_t to , struct mtd_oob_ops *ops )
2610{ size_t tmp ;
2611 int tmp___0 ;
2612 unsigned long __cil_tmp6 ;
2613 unsigned long __cil_tmp7 ;
2614 unsigned long __cil_tmp8 ;
2615 unsigned long __cil_tmp9 ;
2616 int (*__cil_tmp10)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
2617 unsigned long __cil_tmp11 ;
2618 unsigned long __cil_tmp12 ;
2619 unsigned long __cil_tmp13 ;
2620 int (*__cil_tmp14)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
2621 unsigned long __cil_tmp15 ;
2622 unsigned long __cil_tmp16 ;
2623 unsigned long __cil_tmp17 ;
2624 uint32_t __cil_tmp18 ;
2625 unsigned int __cil_tmp19 ;
2626 unsigned long __cil_tmp20 ;
2627 unsigned long __cil_tmp21 ;
2628 int (*__cil_tmp22)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
2629
2630 {
2631#line 271
2632 tmp = 0UL;
2633#line 271
2634 __cil_tmp6 = (unsigned long )ops;
2635#line 271
2636 __cil_tmp7 = __cil_tmp6 + 32;
2637#line 271
2638 *((size_t *)__cil_tmp7) = tmp;
2639#line 271
2640 __cil_tmp8 = (unsigned long )ops;
2641#line 271
2642 __cil_tmp9 = __cil_tmp8 + 16;
2643#line 271
2644 *((size_t *)__cil_tmp9) = tmp;
2645 {
2646#line 272
2647 __cil_tmp10 = (int (*)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))0;
2648#line 272
2649 __cil_tmp11 = (unsigned long )__cil_tmp10;
2650#line 272
2651 __cil_tmp12 = (unsigned long )mtd;
2652#line 272
2653 __cil_tmp13 = __cil_tmp12 + 160;
2654#line 272
2655 __cil_tmp14 = *((int (**)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))__cil_tmp13);
2656#line 272
2657 __cil_tmp15 = (unsigned long )__cil_tmp14;
2658#line 272
2659 if (__cil_tmp15 == __cil_tmp11) {
2660#line 273
2661 return (-95);
2662 } else {
2663
2664 }
2665 }
2666 {
2667#line 274
2668 __cil_tmp16 = (unsigned long )mtd;
2669#line 274
2670 __cil_tmp17 = __cil_tmp16 + 4;
2671#line 274
2672 __cil_tmp18 = *((uint32_t *)__cil_tmp17);
2673#line 274
2674 __cil_tmp19 = __cil_tmp18 & 1024U;
2675#line 274
2676 if (__cil_tmp19 == 0U) {
2677#line 275
2678 return (-30);
2679 } else {
2680
2681 }
2682 }
2683 {
2684#line 276
2685 __cil_tmp20 = (unsigned long )mtd;
2686#line 276
2687 __cil_tmp21 = __cil_tmp20 + 160;
2688#line 276
2689 __cil_tmp22 = *((int (**)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))__cil_tmp21);
2690#line 276
2691 tmp___0 = (*__cil_tmp22)(mtd, to, ops);
2692 }
2693#line 276
2694 return (tmp___0);
2695}
2696}
2697#line 303
2698extern int mtd_block_isbad(struct mtd_info * , loff_t ) ;
2699#line 370
2700extern struct mtd_info *get_mtd_device(struct mtd_info * , int ) ;
2701#line 374
2702extern void put_mtd_device(struct mtd_info * ) ;
2703#line 2626 "include/linux/sched.h"
2704extern int _cond_resched(void) ;
2705#line 48 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2706static int dev = -22;
2707#line 52 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2708static struct mtd_info *mtd ;
2709#line 53 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2710static unsigned char *readbuf ;
2711#line 54 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2712static unsigned char *writebuf ;
2713#line 55 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2714static unsigned char *bbt ;
2715#line 57 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2716static int ebcnt ;
2717#line 58 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2718static int pgcnt ;
2719#line 59 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2720static int errcnt ;
2721#line 60 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2722static int use_offset ;
2723#line 61 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2724static int use_len ;
2725#line 62 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2726static int use_len_max ;
2727#line 63 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2728static int vary_offset ;
2729#line 64 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2730static unsigned long next = 1UL;
2731#line 66 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2732__inline static unsigned int simple_rand(void)
2733{ unsigned long __cil_tmp1 ;
2734 unsigned long __cil_tmp2 ;
2735 unsigned int __cil_tmp3 ;
2736
2737 {
2738#line 68
2739 __cil_tmp1 = next * 1103515245UL;
2740#line 68
2741 next = __cil_tmp1 + 12345UL;
2742 {
2743#line 69
2744 __cil_tmp2 = next / 65536UL;
2745#line 69
2746 __cil_tmp3 = (unsigned int )__cil_tmp2;
2747#line 69
2748 return (__cil_tmp3 & 32767U);
2749 }
2750}
2751}
2752#line 72 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2753__inline static void simple_srand(unsigned long seed )
2754{
2755
2756 {
2757#line 74
2758 next = seed;
2759#line 75
2760 return;
2761}
2762}
2763#line 77 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2764static void set_random_data(unsigned char *buf , size_t len )
2765{ size_t i ;
2766 unsigned int tmp ;
2767 unsigned char *__cil_tmp5 ;
2768
2769 {
2770#line 81
2771 i = 0UL;
2772#line 81
2773 goto ldv_18669;
2774 ldv_18668:
2775 {
2776#line 82
2777 tmp = simple_rand();
2778#line 82
2779 __cil_tmp5 = buf + i;
2780#line 82
2781 *__cil_tmp5 = (unsigned char )tmp;
2782#line 81
2783 i = i + 1UL;
2784 }
2785 ldv_18669: ;
2786#line 81
2787 if (i < len) {
2788#line 82
2789 goto ldv_18668;
2790 } else {
2791#line 84
2792 goto ldv_18670;
2793 }
2794 ldv_18670: ;
2795#line 86
2796 return;
2797}
2798}
2799#line 85 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2800static int erase_eraseblock(int ebnum )
2801{ int err ;
2802 struct erase_info ei ;
2803 loff_t addr ;
2804 uint32_t __cil_tmp5 ;
2805 unsigned long __cil_tmp6 ;
2806 unsigned long __cil_tmp7 ;
2807 uint32_t __cil_tmp8 ;
2808 uint32_t __cil_tmp9 ;
2809 void *__cil_tmp10 ;
2810 struct erase_info *__cil_tmp11 ;
2811 unsigned long __cil_tmp12 ;
2812 unsigned long __cil_tmp13 ;
2813 unsigned long __cil_tmp14 ;
2814 unsigned long __cil_tmp15 ;
2815 uint32_t __cil_tmp16 ;
2816 unsigned long __cil_tmp17 ;
2817 u_char __cil_tmp18 ;
2818 unsigned int __cil_tmp19 ;
2819
2820 {
2821 {
2822#line 89
2823 __cil_tmp5 = (uint32_t )ebnum;
2824#line 89
2825 __cil_tmp6 = (unsigned long )mtd;
2826#line 89
2827 __cil_tmp7 = __cil_tmp6 + 16;
2828#line 89
2829 __cil_tmp8 = *((uint32_t *)__cil_tmp7);
2830#line 89
2831 __cil_tmp9 = __cil_tmp8 * __cil_tmp5;
2832#line 89
2833 addr = (loff_t )__cil_tmp9;
2834#line 91
2835 __cil_tmp10 = (void *)(& ei);
2836#line 91
2837 memset(__cil_tmp10, 0, 88UL);
2838#line 92
2839 __cil_tmp11 = & ei;
2840#line 92
2841 *((struct mtd_info **)__cil_tmp11) = mtd;
2842#line 93
2843 __cil_tmp12 = (unsigned long )(& ei) + 8;
2844#line 93
2845 *((uint64_t *)__cil_tmp12) = (uint64_t )addr;
2846#line 94
2847 __cil_tmp13 = (unsigned long )(& ei) + 16;
2848#line 94
2849 __cil_tmp14 = (unsigned long )mtd;
2850#line 94
2851 __cil_tmp15 = __cil_tmp14 + 16;
2852#line 94
2853 __cil_tmp16 = *((uint32_t *)__cil_tmp15);
2854#line 94
2855 *((uint64_t *)__cil_tmp13) = (uint64_t )__cil_tmp16;
2856#line 96
2857 err = mtd_erase(mtd, & ei);
2858 }
2859#line 97
2860 if (err != 0) {
2861 {
2862#line 98
2863 printk("<6>mtd_oobtest: error %d while erasing EB %d\n", err, ebnum);
2864 }
2865#line 99
2866 return (err);
2867 } else {
2868
2869 }
2870 {
2871#line 102
2872 __cil_tmp17 = (unsigned long )(& ei) + 72;
2873#line 102
2874 __cil_tmp18 = *((u_char *)__cil_tmp17);
2875#line 102
2876 __cil_tmp19 = (unsigned int )__cil_tmp18;
2877#line 102
2878 if (__cil_tmp19 == 16U) {
2879 {
2880#line 103
2881 printk("<6>mtd_oobtest: some erase error occurred at EB %d\n", ebnum);
2882 }
2883#line 105
2884 return (-5);
2885 } else {
2886
2887 }
2888 }
2889#line 108
2890 return (0);
2891}
2892}
2893#line 111 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2894static int erase_whole_device(void)
2895{ int err ;
2896 unsigned int i ;
2897 unsigned long __cil_tmp3 ;
2898 unsigned char *__cil_tmp4 ;
2899 unsigned char __cil_tmp5 ;
2900 unsigned int __cil_tmp6 ;
2901 int __cil_tmp7 ;
2902 unsigned int __cil_tmp8 ;
2903
2904 {
2905 {
2906#line 116
2907 printk("<6>mtd_oobtest: erasing whole device\n");
2908#line 117
2909 i = 0U;
2910 }
2911#line 117
2912 goto ldv_18685;
2913 ldv_18684: ;
2914 {
2915#line 118
2916 __cil_tmp3 = (unsigned long )i;
2917#line 118
2918 __cil_tmp4 = bbt + __cil_tmp3;
2919#line 118
2920 __cil_tmp5 = *__cil_tmp4;
2921#line 118
2922 __cil_tmp6 = (unsigned int )__cil_tmp5;
2923#line 118
2924 if (__cil_tmp6 != 0U) {
2925#line 119
2926 goto ldv_18682;
2927 } else {
2928
2929 }
2930 }
2931 {
2932#line 120
2933 __cil_tmp7 = (int )i;
2934#line 120
2935 err = erase_eraseblock(__cil_tmp7);
2936 }
2937#line 121
2938 if (err != 0) {
2939#line 122
2940 return (err);
2941 } else {
2942
2943 }
2944 {
2945#line 123
2946 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
2947 123, 0);
2948#line 123
2949 _cond_resched();
2950 }
2951 ldv_18682:
2952#line 117
2953 i = i + 1U;
2954 ldv_18685: ;
2955 {
2956#line 117
2957 __cil_tmp8 = (unsigned int )ebcnt;
2958#line 117
2959 if (__cil_tmp8 > i) {
2960#line 118
2961 goto ldv_18684;
2962 } else {
2963#line 120
2964 goto ldv_18686;
2965 }
2966 }
2967 ldv_18686:
2968 {
2969#line 125
2970 printk("<6>mtd_oobtest: erased %u eraseblocks\n", i);
2971 }
2972#line 126
2973 return (0);
2974}
2975}
2976#line 129 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
2977static void do_vary_offset(void)
2978{
2979
2980 {
2981#line 131
2982 use_len = use_len + -1;
2983#line 132
2984 if (use_len <= 0) {
2985#line 133
2986 use_offset = use_offset + 1;
2987#line 134
2988 if (use_offset >= use_len_max) {
2989#line 135
2990 use_offset = 0;
2991 } else {
2992
2993 }
2994#line 136
2995 use_len = use_len_max - use_offset;
2996 } else {
2997
2998 }
2999#line 138
3000 return;
3001}
3002}
3003#line 140 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
3004static int write_eraseblock(int ebnum )
3005{ int i ;
3006 struct mtd_oob_ops ops ;
3007 int err ;
3008 loff_t addr ;
3009 int tmp ;
3010 uint32_t __cil_tmp7 ;
3011 unsigned long __cil_tmp8 ;
3012 unsigned long __cil_tmp9 ;
3013 uint32_t __cil_tmp10 ;
3014 uint32_t __cil_tmp11 ;
3015 size_t __cil_tmp12 ;
3016 struct mtd_oob_ops *__cil_tmp13 ;
3017 unsigned long __cil_tmp14 ;
3018 unsigned long __cil_tmp15 ;
3019 unsigned long __cil_tmp16 ;
3020 unsigned long __cil_tmp17 ;
3021 unsigned long __cil_tmp18 ;
3022 unsigned long __cil_tmp19 ;
3023 unsigned long __cil_tmp20 ;
3024 size_t __cil_tmp21 ;
3025 unsigned long __cil_tmp22 ;
3026 size_t __cil_tmp23 ;
3027 unsigned long __cil_tmp24 ;
3028 unsigned long __cil_tmp25 ;
3029 uint32_t __cil_tmp26 ;
3030 loff_t __cil_tmp27 ;
3031
3032 {
3033#line 144
3034 err = 0;
3035#line 145
3036 __cil_tmp7 = (uint32_t )ebnum;
3037#line 145
3038 __cil_tmp8 = (unsigned long )mtd;
3039#line 145
3040 __cil_tmp9 = __cil_tmp8 + 16;
3041#line 145
3042 __cil_tmp10 = *((uint32_t *)__cil_tmp9);
3043#line 145
3044 __cil_tmp11 = __cil_tmp10 * __cil_tmp7;
3045#line 145
3046 addr = (loff_t )__cil_tmp11;
3047#line 147
3048 i = 0;
3049#line 147
3050 goto ldv_18698;
3051 ldv_18697:
3052 {
3053#line 148
3054 __cil_tmp12 = (size_t )use_len;
3055#line 148
3056 set_random_data(writebuf, __cil_tmp12);
3057#line 149
3058 __cil_tmp13 = & ops;
3059#line 149
3060 *((unsigned int *)__cil_tmp13) = 1U;
3061#line 150
3062 __cil_tmp14 = (unsigned long )(& ops) + 8;
3063#line 150
3064 *((size_t *)__cil_tmp14) = 0UL;
3065#line 151
3066 __cil_tmp15 = (unsigned long )(& ops) + 16;
3067#line 151
3068 *((size_t *)__cil_tmp15) = 0UL;
3069#line 152
3070 __cil_tmp16 = (unsigned long )(& ops) + 24;
3071#line 152
3072 *((size_t *)__cil_tmp16) = (size_t )use_len;
3073#line 153
3074 __cil_tmp17 = (unsigned long )(& ops) + 32;
3075#line 153
3076 *((size_t *)__cil_tmp17) = 0UL;
3077#line 154
3078 __cil_tmp18 = (unsigned long )(& ops) + 40;
3079#line 154
3080 *((uint32_t *)__cil_tmp18) = (uint32_t )use_offset;
3081#line 155
3082 __cil_tmp19 = (unsigned long )(& ops) + 48;
3083#line 155
3084 *((uint8_t **)__cil_tmp19) = (uint8_t *)0;
3085#line 156
3086 __cil_tmp20 = (unsigned long )(& ops) + 56;
3087#line 156
3088 *((uint8_t **)__cil_tmp20) = writebuf;
3089#line 157
3090 err = mtd_write_oob(mtd, addr, & ops);
3091 }
3092#line 158
3093 if (err != 0) {
3094#line 158
3095 goto _L;
3096 } else {
3097 {
3098#line 158
3099 __cil_tmp21 = (size_t )use_len;
3100#line 158
3101 __cil_tmp22 = (unsigned long )(& ops) + 32;
3102#line 158
3103 __cil_tmp23 = *((size_t *)__cil_tmp22);
3104#line 158
3105 if (__cil_tmp23 != __cil_tmp21) {
3106 _L:
3107 {
3108#line 159
3109 printk("<6>mtd_oobtest: error: writeoob failed at %#llx\n", addr);
3110#line 161
3111 printk("<6>mtd_oobtest: error: use_len %d, use_offset %d\n", use_len, use_offset);
3112#line 163
3113 errcnt = errcnt + 1;
3114 }
3115#line 164
3116 if (err != 0) {
3117#line 164
3118 tmp = err;
3119 } else {
3120#line 164
3121 tmp = -1;
3122 }
3123#line 164
3124 return (tmp);
3125 } else {
3126
3127 }
3128 }
3129 }
3130#line 166
3131 if (vary_offset != 0) {
3132 {
3133#line 167
3134 do_vary_offset();
3135 }
3136 } else {
3137
3138 }
3139#line 147
3140 i = i + 1;
3141#line 147
3142 __cil_tmp24 = (unsigned long )mtd;
3143#line 147
3144 __cil_tmp25 = __cil_tmp24 + 20;
3145#line 147
3146 __cil_tmp26 = *((uint32_t *)__cil_tmp25);
3147#line 147
3148 __cil_tmp27 = (loff_t )__cil_tmp26;
3149#line 147
3150 addr = __cil_tmp27 + addr;
3151 ldv_18698: ;
3152#line 147
3153 if (i < pgcnt) {
3154#line 148
3155 goto ldv_18697;
3156 } else {
3157#line 150
3158 goto ldv_18699;
3159 }
3160 ldv_18699: ;
3161#line 170
3162 return (err);
3163}
3164}
3165#line 173 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
3166static int write_whole_device(void)
3167{ int err ;
3168 unsigned int i ;
3169 unsigned long __cil_tmp3 ;
3170 unsigned char *__cil_tmp4 ;
3171 unsigned char __cil_tmp5 ;
3172 unsigned int __cil_tmp6 ;
3173 int __cil_tmp7 ;
3174 unsigned int __cil_tmp8 ;
3175 unsigned int __cil_tmp9 ;
3176
3177 {
3178 {
3179#line 178
3180 printk("<6>mtd_oobtest: writing OOBs of whole device\n");
3181#line 179
3182 i = 0U;
3183 }
3184#line 179
3185 goto ldv_18708;
3186 ldv_18707: ;
3187 {
3188#line 180
3189 __cil_tmp3 = (unsigned long )i;
3190#line 180
3191 __cil_tmp4 = bbt + __cil_tmp3;
3192#line 180
3193 __cil_tmp5 = *__cil_tmp4;
3194#line 180
3195 __cil_tmp6 = (unsigned int )__cil_tmp5;
3196#line 180
3197 if (__cil_tmp6 != 0U) {
3198#line 181
3199 goto ldv_18705;
3200 } else {
3201
3202 }
3203 }
3204 {
3205#line 182
3206 __cil_tmp7 = (int )i;
3207#line 182
3208 err = write_eraseblock(__cil_tmp7);
3209 }
3210#line 183
3211 if (err != 0) {
3212#line 184
3213 return (err);
3214 } else {
3215
3216 }
3217 {
3218#line 185
3219 __cil_tmp8 = i & 255U;
3220#line 185
3221 if (__cil_tmp8 == 0U) {
3222 {
3223#line 186
3224 printk("<6>mtd_oobtest: written up to eraseblock %u\n", i);
3225 }
3226 } else {
3227
3228 }
3229 }
3230 {
3231#line 187
3232 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
3233 187, 0);
3234#line 187
3235 _cond_resched();
3236 }
3237 ldv_18705:
3238#line 179
3239 i = i + 1U;
3240 ldv_18708: ;
3241 {
3242#line 179
3243 __cil_tmp9 = (unsigned int )ebcnt;
3244#line 179
3245 if (__cil_tmp9 > i) {
3246#line 180
3247 goto ldv_18707;
3248 } else {
3249#line 182
3250 goto ldv_18709;
3251 }
3252 }
3253 ldv_18709:
3254 {
3255#line 189
3256 printk("<6>mtd_oobtest: written %u eraseblocks\n", i);
3257 }
3258#line 190
3259 return (0);
3260}
3261}
3262#line 193 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
3263static int verify_eraseblock(int ebnum )
3264{ int i ;
3265 struct mtd_oob_ops ops ;
3266 int err ;
3267 loff_t addr ;
3268 int tmp ;
3269 int tmp___0 ;
3270 int k ;
3271 int tmp___1 ;
3272 int tmp___2 ;
3273 uint32_t __cil_tmp11 ;
3274 unsigned long __cil_tmp12 ;
3275 unsigned long __cil_tmp13 ;
3276 uint32_t __cil_tmp14 ;
3277 uint32_t __cil_tmp15 ;
3278 size_t __cil_tmp16 ;
3279 struct mtd_oob_ops *__cil_tmp17 ;
3280 unsigned long __cil_tmp18 ;
3281 unsigned long __cil_tmp19 ;
3282 unsigned long __cil_tmp20 ;
3283 unsigned long __cil_tmp21 ;
3284 unsigned long __cil_tmp22 ;
3285 unsigned long __cil_tmp23 ;
3286 unsigned long __cil_tmp24 ;
3287 size_t __cil_tmp25 ;
3288 unsigned long __cil_tmp26 ;
3289 size_t __cil_tmp27 ;
3290 void const *__cil_tmp28 ;
3291 void const *__cil_tmp29 ;
3292 size_t __cil_tmp30 ;
3293 unsigned long __cil_tmp31 ;
3294 unsigned long __cil_tmp32 ;
3295 struct nand_ecclayout *__cil_tmp33 ;
3296 unsigned long __cil_tmp34 ;
3297 unsigned long __cil_tmp35 ;
3298 __u32 __cil_tmp36 ;
3299 __u32 __cil_tmp37 ;
3300 struct mtd_oob_ops *__cil_tmp38 ;
3301 unsigned long __cil_tmp39 ;
3302 unsigned long __cil_tmp40 ;
3303 unsigned long __cil_tmp41 ;
3304 unsigned long __cil_tmp42 ;
3305 unsigned long __cil_tmp43 ;
3306 struct nand_ecclayout *__cil_tmp44 ;
3307 unsigned long __cil_tmp45 ;
3308 unsigned long __cil_tmp46 ;
3309 __u32 __cil_tmp47 ;
3310 unsigned long __cil_tmp48 ;
3311 unsigned long __cil_tmp49 ;
3312 unsigned long __cil_tmp50 ;
3313 unsigned long __cil_tmp51 ;
3314 unsigned long __cil_tmp52 ;
3315 unsigned long __cil_tmp53 ;
3316 struct nand_ecclayout *__cil_tmp54 ;
3317 unsigned long __cil_tmp55 ;
3318 unsigned long __cil_tmp56 ;
3319 __u32 __cil_tmp57 ;
3320 size_t __cil_tmp58 ;
3321 unsigned long __cil_tmp59 ;
3322 size_t __cil_tmp60 ;
3323 unsigned long __cil_tmp61 ;
3324 void const *__cil_tmp62 ;
3325 void const *__cil_tmp63 ;
3326 void const *__cil_tmp64 ;
3327 size_t __cil_tmp65 ;
3328 unsigned long __cil_tmp66 ;
3329 unsigned char *__cil_tmp67 ;
3330 unsigned char __cil_tmp68 ;
3331 unsigned int __cil_tmp69 ;
3332 unsigned long __cil_tmp70 ;
3333 unsigned char *__cil_tmp71 ;
3334 unsigned char __cil_tmp72 ;
3335 unsigned int __cil_tmp73 ;
3336 unsigned long __cil_tmp74 ;
3337 unsigned long __cil_tmp75 ;
3338 struct nand_ecclayout *__cil_tmp76 ;
3339 unsigned long __cil_tmp77 ;
3340 unsigned long __cil_tmp78 ;
3341 __u32 __cil_tmp79 ;
3342 __u32 __cil_tmp80 ;
3343 unsigned long __cil_tmp81 ;
3344 unsigned long __cil_tmp82 ;
3345 uint32_t __cil_tmp83 ;
3346 loff_t __cil_tmp84 ;
3347
3348 {
3349#line 197
3350 err = 0;
3351#line 198
3352 __cil_tmp11 = (uint32_t )ebnum;
3353#line 198
3354 __cil_tmp12 = (unsigned long )mtd;
3355#line 198
3356 __cil_tmp13 = __cil_tmp12 + 16;
3357#line 198
3358 __cil_tmp14 = *((uint32_t *)__cil_tmp13);
3359#line 198
3360 __cil_tmp15 = __cil_tmp14 * __cil_tmp11;
3361#line 198
3362 addr = (loff_t )__cil_tmp15;
3363#line 200
3364 i = 0;
3365#line 200
3366 goto ldv_18725;
3367 ldv_18724:
3368 {
3369#line 201
3370 __cil_tmp16 = (size_t )use_len;
3371#line 201
3372 set_random_data(writebuf, __cil_tmp16);
3373#line 202
3374 __cil_tmp17 = & ops;
3375#line 202
3376 *((unsigned int *)__cil_tmp17) = 1U;
3377#line 203
3378 __cil_tmp18 = (unsigned long )(& ops) + 8;
3379#line 203
3380 *((size_t *)__cil_tmp18) = 0UL;
3381#line 204
3382 __cil_tmp19 = (unsigned long )(& ops) + 16;
3383#line 204
3384 *((size_t *)__cil_tmp19) = 0UL;
3385#line 205
3386 __cil_tmp20 = (unsigned long )(& ops) + 24;
3387#line 205
3388 *((size_t *)__cil_tmp20) = (size_t )use_len;
3389#line 206
3390 __cil_tmp21 = (unsigned long )(& ops) + 32;
3391#line 206
3392 *((size_t *)__cil_tmp21) = 0UL;
3393#line 207
3394 __cil_tmp22 = (unsigned long )(& ops) + 40;
3395#line 207
3396 *((uint32_t *)__cil_tmp22) = (uint32_t )use_offset;
3397#line 208
3398 __cil_tmp23 = (unsigned long )(& ops) + 48;
3399#line 208
3400 *((uint8_t **)__cil_tmp23) = (uint8_t *)0;
3401#line 209
3402 __cil_tmp24 = (unsigned long )(& ops) + 56;
3403#line 209
3404 *((uint8_t **)__cil_tmp24) = readbuf;
3405#line 210
3406 err = mtd_read_oob(mtd, addr, & ops);
3407 }
3408#line 211
3409 if (err != 0) {
3410#line 211
3411 goto _L;
3412 } else {
3413 {
3414#line 211
3415 __cil_tmp25 = (size_t )use_len;
3416#line 211
3417 __cil_tmp26 = (unsigned long )(& ops) + 32;
3418#line 211
3419 __cil_tmp27 = *((size_t *)__cil_tmp26);
3420#line 211
3421 if (__cil_tmp27 != __cil_tmp25) {
3422 _L:
3423 {
3424#line 212
3425 printk("<6>mtd_oobtest: error: readoob failed at %#llx\n", addr);
3426#line 214
3427 errcnt = errcnt + 1;
3428 }
3429#line 215
3430 if (err != 0) {
3431#line 215
3432 tmp = err;
3433 } else {
3434#line 215
3435 tmp = -1;
3436 }
3437#line 215
3438 return (tmp);
3439 } else {
3440
3441 }
3442 }
3443 }
3444 {
3445#line 217
3446 __cil_tmp28 = (void const *)readbuf;
3447#line 217
3448 __cil_tmp29 = (void const *)writebuf;
3449#line 217
3450 __cil_tmp30 = (size_t )use_len;
3451#line 217
3452 tmp___0 = memcmp(__cil_tmp28, __cil_tmp29, __cil_tmp30);
3453 }
3454#line 217
3455 if (tmp___0 != 0) {
3456 {
3457#line 218
3458 printk("<6>mtd_oobtest: error: verify failed at %#llx\n", addr);
3459#line 220
3460 errcnt = errcnt + 1;
3461 }
3462#line 221
3463 if (errcnt > 1000) {
3464 {
3465#line 222
3466 printk("<6>mtd_oobtest: error: too many errors\n");
3467 }
3468#line 223
3469 return (-1);
3470 } else {
3471
3472 }
3473 } else {
3474
3475 }
3476#line 226
3477 if (use_offset != 0) {
3478#line 226
3479 goto _L___1;
3480 } else {
3481 {
3482#line 226
3483 __cil_tmp31 = (unsigned long )mtd;
3484#line 226
3485 __cil_tmp32 = __cil_tmp31 + 72;
3486#line 226
3487 __cil_tmp33 = *((struct nand_ecclayout **)__cil_tmp32);
3488#line 226
3489 __cil_tmp34 = (unsigned long )__cil_tmp33;
3490#line 226
3491 __cil_tmp35 = __cil_tmp34 + 1796;
3492#line 226
3493 __cil_tmp36 = *((__u32 *)__cil_tmp35);
3494#line 226
3495 __cil_tmp37 = (__u32 )use_len;
3496#line 226
3497 if (__cil_tmp37 < __cil_tmp36) {
3498 _L___1:
3499 {
3500#line 229
3501 __cil_tmp38 = & ops;
3502#line 229
3503 *((unsigned int *)__cil_tmp38) = 1U;
3504#line 230
3505 __cil_tmp39 = (unsigned long )(& ops) + 8;
3506#line 230
3507 *((size_t *)__cil_tmp39) = 0UL;
3508#line 231
3509 __cil_tmp40 = (unsigned long )(& ops) + 16;
3510#line 231
3511 *((size_t *)__cil_tmp40) = 0UL;
3512#line 232
3513 __cil_tmp41 = (unsigned long )(& ops) + 24;
3514#line 232
3515 __cil_tmp42 = (unsigned long )mtd;
3516#line 232
3517 __cil_tmp43 = __cil_tmp42 + 72;
3518#line 232
3519 __cil_tmp44 = *((struct nand_ecclayout **)__cil_tmp43);
3520#line 232
3521 __cil_tmp45 = (unsigned long )__cil_tmp44;
3522#line 232
3523 __cil_tmp46 = __cil_tmp45 + 1796;
3524#line 232
3525 __cil_tmp47 = *((__u32 *)__cil_tmp46);
3526#line 232
3527 *((size_t *)__cil_tmp41) = (size_t )__cil_tmp47;
3528#line 233
3529 __cil_tmp48 = (unsigned long )(& ops) + 32;
3530#line 233
3531 *((size_t *)__cil_tmp48) = 0UL;
3532#line 234
3533 __cil_tmp49 = (unsigned long )(& ops) + 40;
3534#line 234
3535 *((uint32_t *)__cil_tmp49) = 0U;
3536#line 235
3537 __cil_tmp50 = (unsigned long )(& ops) + 48;
3538#line 235
3539 *((uint8_t **)__cil_tmp50) = (uint8_t *)0;
3540#line 236
3541 __cil_tmp51 = (unsigned long )(& ops) + 56;
3542#line 236
3543 *((uint8_t **)__cil_tmp51) = readbuf;
3544#line 237
3545 err = mtd_read_oob(mtd, addr, & ops);
3546 }
3547#line 238
3548 if (err != 0) {
3549#line 238
3550 goto _L___0;
3551 } else {
3552 {
3553#line 238
3554 __cil_tmp52 = (unsigned long )mtd;
3555#line 238
3556 __cil_tmp53 = __cil_tmp52 + 72;
3557#line 238
3558 __cil_tmp54 = *((struct nand_ecclayout **)__cil_tmp53);
3559#line 238
3560 __cil_tmp55 = (unsigned long )__cil_tmp54;
3561#line 238
3562 __cil_tmp56 = __cil_tmp55 + 1796;
3563#line 238
3564 __cil_tmp57 = *((__u32 *)__cil_tmp56);
3565#line 238
3566 __cil_tmp58 = (size_t )__cil_tmp57;
3567#line 238
3568 __cil_tmp59 = (unsigned long )(& ops) + 32;
3569#line 238
3570 __cil_tmp60 = *((size_t *)__cil_tmp59);
3571#line 238
3572 if (__cil_tmp60 != __cil_tmp58) {
3573 _L___0:
3574 {
3575#line 239
3576 printk("<6>mtd_oobtest: error: readoob failed at %#llx\n", addr);
3577#line 241
3578 errcnt = errcnt + 1;
3579 }
3580#line 242
3581 if (err != 0) {
3582#line 242
3583 tmp___1 = err;
3584 } else {
3585#line 242
3586 tmp___1 = -1;
3587 }
3588#line 242
3589 return (tmp___1);
3590 } else {
3591
3592 }
3593 }
3594 }
3595 {
3596#line 244
3597 __cil_tmp61 = (unsigned long )use_offset;
3598#line 244
3599 __cil_tmp62 = (void const *)readbuf;
3600#line 244
3601 __cil_tmp63 = __cil_tmp62 + __cil_tmp61;
3602#line 244
3603 __cil_tmp64 = (void const *)writebuf;
3604#line 244
3605 __cil_tmp65 = (size_t )use_len;
3606#line 244
3607 tmp___2 = memcmp(__cil_tmp63, __cil_tmp64, __cil_tmp65);
3608 }
3609#line 244
3610 if (tmp___2 != 0) {
3611 {
3612#line 245
3613 printk("<6>mtd_oobtest: error: verify failed at %#llx\n", addr);
3614#line 247
3615 errcnt = errcnt + 1;
3616 }
3617#line 248
3618 if (errcnt > 1000) {
3619 {
3620#line 249
3621 printk("<6>mtd_oobtest: error: too many errors\n");
3622 }
3623#line 251
3624 return (-1);
3625 } else {
3626
3627 }
3628 } else {
3629
3630 }
3631#line 254
3632 k = 0;
3633#line 254
3634 goto ldv_18719;
3635 ldv_18718: ;
3636 {
3637#line 255
3638 __cil_tmp66 = (unsigned long )k;
3639#line 255
3640 __cil_tmp67 = readbuf + __cil_tmp66;
3641#line 255
3642 __cil_tmp68 = *__cil_tmp67;
3643#line 255
3644 __cil_tmp69 = (unsigned int )__cil_tmp68;
3645#line 255
3646 if (__cil_tmp69 != 255U) {
3647 {
3648#line 256
3649 printk("<6>mtd_oobtest: error: verify 0xff failed at %#llx\n", addr);
3650#line 259
3651 errcnt = errcnt + 1;
3652 }
3653#line 260
3654 if (errcnt > 1000) {
3655 {
3656#line 261
3657 printk("<6>mtd_oobtest: error: too many errors\n");
3658 }
3659#line 263
3660 return (-1);
3661 } else {
3662
3663 }
3664 } else {
3665
3666 }
3667 }
3668#line 254
3669 k = k + 1;
3670 ldv_18719: ;
3671#line 254
3672 if (k < use_offset) {
3673#line 255
3674 goto ldv_18718;
3675 } else {
3676#line 257
3677 goto ldv_18720;
3678 }
3679 ldv_18720:
3680#line 266
3681 k = use_offset + use_len;
3682#line 266
3683 goto ldv_18722;
3684 ldv_18721: ;
3685 {
3686#line 268
3687 __cil_tmp70 = (unsigned long )k;
3688#line 268
3689 __cil_tmp71 = readbuf + __cil_tmp70;
3690#line 268
3691 __cil_tmp72 = *__cil_tmp71;
3692#line 268
3693 __cil_tmp73 = (unsigned int )__cil_tmp72;
3694#line 268
3695 if (__cil_tmp73 != 255U) {
3696 {
3697#line 269
3698 printk("<6>mtd_oobtest: error: verify 0xff failed at %#llx\n", addr);
3699#line 272
3700 errcnt = errcnt + 1;
3701 }
3702#line 273
3703 if (errcnt > 1000) {
3704 {
3705#line 274
3706 printk("<6>mtd_oobtest: error: too many errors\n");
3707 }
3708#line 276
3709 return (-1);
3710 } else {
3711
3712 }
3713 } else {
3714
3715 }
3716 }
3717#line 267
3718 k = k + 1;
3719 ldv_18722: ;
3720 {
3721#line 266
3722 __cil_tmp74 = (unsigned long )mtd;
3723#line 266
3724 __cil_tmp75 = __cil_tmp74 + 72;
3725#line 266
3726 __cil_tmp76 = *((struct nand_ecclayout **)__cil_tmp75);
3727#line 266
3728 __cil_tmp77 = (unsigned long )__cil_tmp76;
3729#line 266
3730 __cil_tmp78 = __cil_tmp77 + 1796;
3731#line 266
3732 __cil_tmp79 = *((__u32 *)__cil_tmp78);
3733#line 266
3734 __cil_tmp80 = (__u32 )k;
3735#line 266
3736 if (__cil_tmp80 < __cil_tmp79) {
3737#line 268
3738 goto ldv_18721;
3739 } else {
3740#line 270
3741 goto ldv_18723;
3742 }
3743 }
3744 ldv_18723: ;
3745 } else {
3746
3747 }
3748 }
3749 }
3750#line 280
3751 if (vary_offset != 0) {
3752 {
3753#line 281
3754 do_vary_offset();
3755 }
3756 } else {
3757
3758 }
3759#line 200
3760 i = i + 1;
3761#line 200
3762 __cil_tmp81 = (unsigned long )mtd;
3763#line 200
3764 __cil_tmp82 = __cil_tmp81 + 20;
3765#line 200
3766 __cil_tmp83 = *((uint32_t *)__cil_tmp82);
3767#line 200
3768 __cil_tmp84 = (loff_t )__cil_tmp83;
3769#line 200
3770 addr = __cil_tmp84 + addr;
3771 ldv_18725: ;
3772#line 200
3773 if (i < pgcnt) {
3774#line 201
3775 goto ldv_18724;
3776 } else {
3777#line 203
3778 goto ldv_18726;
3779 }
3780 ldv_18726: ;
3781#line 283
3782 return (err);
3783}
3784}
3785#line 286 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
3786static int verify_eraseblock_in_one_go(int ebnum )
3787{ struct mtd_oob_ops ops ;
3788 int err ;
3789 loff_t addr ;
3790 size_t len ;
3791 int tmp ;
3792 int tmp___0 ;
3793 uint32_t __cil_tmp8 ;
3794 unsigned long __cil_tmp9 ;
3795 unsigned long __cil_tmp10 ;
3796 uint32_t __cil_tmp11 ;
3797 uint32_t __cil_tmp12 ;
3798 __u32 __cil_tmp13 ;
3799 unsigned long __cil_tmp14 ;
3800 unsigned long __cil_tmp15 ;
3801 struct nand_ecclayout *__cil_tmp16 ;
3802 unsigned long __cil_tmp17 ;
3803 unsigned long __cil_tmp18 ;
3804 __u32 __cil_tmp19 ;
3805 __u32 __cil_tmp20 ;
3806 struct mtd_oob_ops *__cil_tmp21 ;
3807 unsigned long __cil_tmp22 ;
3808 unsigned long __cil_tmp23 ;
3809 unsigned long __cil_tmp24 ;
3810 unsigned long __cil_tmp25 ;
3811 unsigned long __cil_tmp26 ;
3812 unsigned long __cil_tmp27 ;
3813 unsigned long __cil_tmp28 ;
3814 unsigned long __cil_tmp29 ;
3815 size_t __cil_tmp30 ;
3816 void const *__cil_tmp31 ;
3817 void const *__cil_tmp32 ;
3818
3819 {
3820 {
3821#line 289
3822 err = 0;
3823#line 290
3824 __cil_tmp8 = (uint32_t )ebnum;
3825#line 290
3826 __cil_tmp9 = (unsigned long )mtd;
3827#line 290
3828 __cil_tmp10 = __cil_tmp9 + 16;
3829#line 290
3830 __cil_tmp11 = *((uint32_t *)__cil_tmp10);
3831#line 290
3832 __cil_tmp12 = __cil_tmp11 * __cil_tmp8;
3833#line 290
3834 addr = (loff_t )__cil_tmp12;
3835#line 291
3836 __cil_tmp13 = (__u32 )pgcnt;
3837#line 291
3838 __cil_tmp14 = (unsigned long )mtd;
3839#line 291
3840 __cil_tmp15 = __cil_tmp14 + 72;
3841#line 291
3842 __cil_tmp16 = *((struct nand_ecclayout **)__cil_tmp15);
3843#line 291
3844 __cil_tmp17 = (unsigned long )__cil_tmp16;
3845#line 291
3846 __cil_tmp18 = __cil_tmp17 + 1796;
3847#line 291
3848 __cil_tmp19 = *((__u32 *)__cil_tmp18);
3849#line 291
3850 __cil_tmp20 = __cil_tmp19 * __cil_tmp13;
3851#line 291
3852 len = (size_t )__cil_tmp20;
3853#line 293
3854 set_random_data(writebuf, len);
3855#line 294
3856 __cil_tmp21 = & ops;
3857#line 294
3858 *((unsigned int *)__cil_tmp21) = 1U;
3859#line 295
3860 __cil_tmp22 = (unsigned long )(& ops) + 8;
3861#line 295
3862 *((size_t *)__cil_tmp22) = 0UL;
3863#line 296
3864 __cil_tmp23 = (unsigned long )(& ops) + 16;
3865#line 296
3866 *((size_t *)__cil_tmp23) = 0UL;
3867#line 297
3868 __cil_tmp24 = (unsigned long )(& ops) + 24;
3869#line 297
3870 *((size_t *)__cil_tmp24) = len;
3871#line 298
3872 __cil_tmp25 = (unsigned long )(& ops) + 32;
3873#line 298
3874 *((size_t *)__cil_tmp25) = 0UL;
3875#line 299
3876 __cil_tmp26 = (unsigned long )(& ops) + 40;
3877#line 299
3878 *((uint32_t *)__cil_tmp26) = 0U;
3879#line 300
3880 __cil_tmp27 = (unsigned long )(& ops) + 48;
3881#line 300
3882 *((uint8_t **)__cil_tmp27) = (uint8_t *)0;
3883#line 301
3884 __cil_tmp28 = (unsigned long )(& ops) + 56;
3885#line 301
3886 *((uint8_t **)__cil_tmp28) = readbuf;
3887#line 302
3888 err = mtd_read_oob(mtd, addr, & ops);
3889 }
3890#line 303
3891 if (err != 0) {
3892#line 303
3893 goto _L;
3894 } else {
3895 {
3896#line 303
3897 __cil_tmp29 = (unsigned long )(& ops) + 32;
3898#line 303
3899 __cil_tmp30 = *((size_t *)__cil_tmp29);
3900#line 303
3901 if (__cil_tmp30 != len) {
3902 _L:
3903 {
3904#line 304
3905 printk("<6>mtd_oobtest: error: readoob failed at %#llx\n", addr);
3906#line 306
3907 errcnt = errcnt + 1;
3908 }
3909#line 307
3910 if (err != 0) {
3911#line 307
3912 tmp = err;
3913 } else {
3914#line 307
3915 tmp = -1;
3916 }
3917#line 307
3918 return (tmp);
3919 } else {
3920
3921 }
3922 }
3923 }
3924 {
3925#line 309
3926 __cil_tmp31 = (void const *)readbuf;
3927#line 309
3928 __cil_tmp32 = (void const *)writebuf;
3929#line 309
3930 tmp___0 = memcmp(__cil_tmp31, __cil_tmp32, len);
3931 }
3932#line 309
3933 if (tmp___0 != 0) {
3934 {
3935#line 310
3936 printk("<6>mtd_oobtest: error: verify failed at %#llx\n", addr);
3937#line 312
3938 errcnt = errcnt + 1;
3939 }
3940#line 313
3941 if (errcnt > 1000) {
3942 {
3943#line 314
3944 printk("<6>mtd_oobtest: error: too many errors\n");
3945 }
3946#line 315
3947 return (-1);
3948 } else {
3949
3950 }
3951 } else {
3952
3953 }
3954#line 319
3955 return (err);
3956}
3957}
3958#line 322 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
3959static int verify_all_eraseblocks(void)
3960{ int err ;
3961 unsigned int i ;
3962 unsigned long __cil_tmp3 ;
3963 unsigned char *__cil_tmp4 ;
3964 unsigned char __cil_tmp5 ;
3965 unsigned int __cil_tmp6 ;
3966 int __cil_tmp7 ;
3967 unsigned int __cil_tmp8 ;
3968 unsigned int __cil_tmp9 ;
3969
3970 {
3971 {
3972#line 327
3973 printk("<6>mtd_oobtest: verifying all eraseblocks\n");
3974#line 328
3975 i = 0U;
3976 }
3977#line 328
3978 goto ldv_18742;
3979 ldv_18741: ;
3980 {
3981#line 329
3982 __cil_tmp3 = (unsigned long )i;
3983#line 329
3984 __cil_tmp4 = bbt + __cil_tmp3;
3985#line 329
3986 __cil_tmp5 = *__cil_tmp4;
3987#line 329
3988 __cil_tmp6 = (unsigned int )__cil_tmp5;
3989#line 329
3990 if (__cil_tmp6 != 0U) {
3991#line 330
3992 goto ldv_18739;
3993 } else {
3994
3995 }
3996 }
3997 {
3998#line 331
3999 __cil_tmp7 = (int )i;
4000#line 331
4001 err = verify_eraseblock(__cil_tmp7);
4002 }
4003#line 332
4004 if (err != 0) {
4005#line 333
4006 return (err);
4007 } else {
4008
4009 }
4010 {
4011#line 334
4012 __cil_tmp8 = i & 255U;
4013#line 334
4014 if (__cil_tmp8 == 0U) {
4015 {
4016#line 335
4017 printk("<6>mtd_oobtest: verified up to eraseblock %u\n", i);
4018 }
4019 } else {
4020
4021 }
4022 }
4023 {
4024#line 336
4025 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
4026 336, 0);
4027#line 336
4028 _cond_resched();
4029 }
4030 ldv_18739:
4031#line 328
4032 i = i + 1U;
4033 ldv_18742: ;
4034 {
4035#line 328
4036 __cil_tmp9 = (unsigned int )ebcnt;
4037#line 328
4038 if (__cil_tmp9 > i) {
4039#line 329
4040 goto ldv_18741;
4041 } else {
4042#line 331
4043 goto ldv_18743;
4044 }
4045 }
4046 ldv_18743:
4047 {
4048#line 338
4049 printk("<6>mtd_oobtest: verified %u eraseblocks\n", i);
4050 }
4051#line 339
4052 return (0);
4053}
4054}
4055#line 342 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
4056static int is_block_bad(int ebnum )
4057{ int ret ;
4058 loff_t addr ;
4059 uint32_t __cil_tmp4 ;
4060 unsigned long __cil_tmp5 ;
4061 unsigned long __cil_tmp6 ;
4062 uint32_t __cil_tmp7 ;
4063 uint32_t __cil_tmp8 ;
4064
4065 {
4066 {
4067#line 345
4068 __cil_tmp4 = (uint32_t )ebnum;
4069#line 345
4070 __cil_tmp5 = (unsigned long )mtd;
4071#line 345
4072 __cil_tmp6 = __cil_tmp5 + 16;
4073#line 345
4074 __cil_tmp7 = *((uint32_t *)__cil_tmp6);
4075#line 345
4076 __cil_tmp8 = __cil_tmp7 * __cil_tmp4;
4077#line 345
4078 addr = (loff_t )__cil_tmp8;
4079#line 347
4080 ret = mtd_block_isbad(mtd, addr);
4081 }
4082#line 348
4083 if (ret != 0) {
4084 {
4085#line 349
4086 printk("<6>mtd_oobtest: block %d is bad\n", ebnum);
4087 }
4088 } else {
4089
4090 }
4091#line 350
4092 return (ret);
4093}
4094}
4095#line 353 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
4096static int scan_for_bad_eraseblocks(void)
4097{ int i ;
4098 int bad ;
4099 void *tmp ;
4100 int tmp___0 ;
4101 size_t __cil_tmp5 ;
4102 unsigned char *__cil_tmp6 ;
4103 unsigned long __cil_tmp7 ;
4104 unsigned long __cil_tmp8 ;
4105 unsigned long __cil_tmp9 ;
4106 unsigned char *__cil_tmp10 ;
4107 int __cil_tmp11 ;
4108 unsigned long __cil_tmp12 ;
4109 unsigned char *__cil_tmp13 ;
4110 unsigned char __cil_tmp14 ;
4111 unsigned int __cil_tmp15 ;
4112
4113 {
4114 {
4115#line 355
4116 bad = 0;
4117#line 357
4118 __cil_tmp5 = (size_t )ebcnt;
4119#line 357
4120 tmp = kmalloc(__cil_tmp5, 208U);
4121#line 357
4122 bbt = (unsigned char *)tmp;
4123 }
4124 {
4125#line 358
4126 __cil_tmp6 = (unsigned char *)0;
4127#line 358
4128 __cil_tmp7 = (unsigned long )__cil_tmp6;
4129#line 358
4130 __cil_tmp8 = (unsigned long )bbt;
4131#line 358
4132 if (__cil_tmp8 == __cil_tmp7) {
4133 {
4134#line 359
4135 printk("<6>mtd_oobtest: error: cannot allocate memory\n");
4136 }
4137#line 360
4138 return (-12);
4139 } else {
4140
4141 }
4142 }
4143 {
4144#line 363
4145 printk("<6>mtd_oobtest: scanning for bad eraseblocks\n");
4146#line 364
4147 i = 0;
4148 }
4149#line 364
4150 goto ldv_18756;
4151 ldv_18755:
4152 {
4153#line 365
4154 tmp___0 = is_block_bad(i);
4155#line 365
4156 __cil_tmp9 = (unsigned long )i;
4157#line 365
4158 __cil_tmp10 = bbt + __cil_tmp9;
4159#line 365
4160 __cil_tmp11 = tmp___0 != 0;
4161#line 365
4162 *__cil_tmp10 = (unsigned char )__cil_tmp11;
4163 }
4164 {
4165#line 366
4166 __cil_tmp12 = (unsigned long )i;
4167#line 366
4168 __cil_tmp13 = bbt + __cil_tmp12;
4169#line 366
4170 __cil_tmp14 = *__cil_tmp13;
4171#line 366
4172 __cil_tmp15 = (unsigned int )__cil_tmp14;
4173#line 366
4174 if (__cil_tmp15 != 0U) {
4175#line 367
4176 bad = bad + 1;
4177 } else {
4178
4179 }
4180 }
4181 {
4182#line 368
4183 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
4184 368, 0);
4185#line 368
4186 _cond_resched();
4187#line 364
4188 i = i + 1;
4189 }
4190 ldv_18756: ;
4191#line 364
4192 if (i < ebcnt) {
4193#line 365
4194 goto ldv_18755;
4195 } else {
4196#line 367
4197 goto ldv_18757;
4198 }
4199 ldv_18757:
4200 {
4201#line 370
4202 printk("<6>mtd_oobtest: scanned %d eraseblocks, %d are bad\n", i, bad);
4203 }
4204#line 371
4205 return (0);
4206}
4207}
4208#line 374 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
4209static int mtd_oobtest_init(void)
4210{ int err ;
4211 unsigned int i ;
4212 uint64_t tmp ;
4213 struct mtd_oob_ops ops ;
4214 loff_t addr ;
4215 loff_t addr0 ;
4216 long tmp___0 ;
4217 long tmp___1 ;
4218 uint32_t __base ;
4219 uint32_t __rem ;
4220 void *tmp___2 ;
4221 void *tmp___3 ;
4222 int cnt ;
4223 int pg ;
4224 size_t sz ;
4225 int tmp___4 ;
4226 int *__cil_tmp17 ;
4227 int __cil_tmp18 ;
4228 int *__cil_tmp19 ;
4229 int __cil_tmp20 ;
4230 struct mtd_info *__cil_tmp21 ;
4231 int *__cil_tmp22 ;
4232 int __cil_tmp23 ;
4233 void const *__cil_tmp24 ;
4234 void const *__cil_tmp25 ;
4235 u_char __cil_tmp26 ;
4236 unsigned int __cil_tmp27 ;
4237 unsigned long __cil_tmp28 ;
4238 unsigned long __cil_tmp29 ;
4239 unsigned long __cil_tmp30 ;
4240 unsigned long __cil_tmp31 ;
4241 uint64_t __cil_tmp32 ;
4242 unsigned long long __cil_tmp33 ;
4243 uint64_t __cil_tmp34 ;
4244 unsigned long __cil_tmp35 ;
4245 unsigned long __cil_tmp36 ;
4246 uint32_t __cil_tmp37 ;
4247 unsigned long __cil_tmp38 ;
4248 unsigned long __cil_tmp39 ;
4249 uint32_t __cil_tmp40 ;
4250 uint32_t __cil_tmp41 ;
4251 unsigned long __cil_tmp42 ;
4252 unsigned long __cil_tmp43 ;
4253 uint64_t __cil_tmp44 ;
4254 unsigned long __cil_tmp45 ;
4255 unsigned long __cil_tmp46 ;
4256 uint32_t __cil_tmp47 ;
4257 unsigned long __cil_tmp48 ;
4258 unsigned long __cil_tmp49 ;
4259 uint32_t __cil_tmp50 ;
4260 unsigned long __cil_tmp51 ;
4261 unsigned long __cil_tmp52 ;
4262 uint32_t __cil_tmp53 ;
4263 unsigned long __cil_tmp54 ;
4264 unsigned long __cil_tmp55 ;
4265 uint32_t __cil_tmp56 ;
4266 size_t __cil_tmp57 ;
4267 unsigned char *__cil_tmp58 ;
4268 unsigned long __cil_tmp59 ;
4269 unsigned long __cil_tmp60 ;
4270 unsigned long __cil_tmp61 ;
4271 unsigned long __cil_tmp62 ;
4272 uint32_t __cil_tmp63 ;
4273 size_t __cil_tmp64 ;
4274 unsigned char *__cil_tmp65 ;
4275 unsigned long __cil_tmp66 ;
4276 unsigned long __cil_tmp67 ;
4277 unsigned long __cil_tmp68 ;
4278 unsigned long __cil_tmp69 ;
4279 struct nand_ecclayout *__cil_tmp70 ;
4280 unsigned long __cil_tmp71 ;
4281 unsigned long __cil_tmp72 ;
4282 __u32 __cil_tmp73 ;
4283 unsigned long __cil_tmp74 ;
4284 unsigned long __cil_tmp75 ;
4285 struct nand_ecclayout *__cil_tmp76 ;
4286 unsigned long __cil_tmp77 ;
4287 unsigned long __cil_tmp78 ;
4288 __u32 __cil_tmp79 ;
4289 unsigned long __cil_tmp80 ;
4290 unsigned char *__cil_tmp81 ;
4291 unsigned char __cil_tmp82 ;
4292 unsigned int __cil_tmp83 ;
4293 int __cil_tmp84 ;
4294 unsigned int __cil_tmp85 ;
4295 unsigned int __cil_tmp86 ;
4296 unsigned long __cil_tmp87 ;
4297 unsigned long __cil_tmp88 ;
4298 struct nand_ecclayout *__cil_tmp89 ;
4299 unsigned long __cil_tmp90 ;
4300 unsigned long __cil_tmp91 ;
4301 __u32 __cil_tmp92 ;
4302 unsigned long __cil_tmp93 ;
4303 unsigned long __cil_tmp94 ;
4304 struct nand_ecclayout *__cil_tmp95 ;
4305 unsigned long __cil_tmp96 ;
4306 unsigned long __cil_tmp97 ;
4307 __u32 __cil_tmp98 ;
4308 unsigned long __cil_tmp99 ;
4309 unsigned long __cil_tmp100 ;
4310 struct nand_ecclayout *__cil_tmp101 ;
4311 unsigned long __cil_tmp102 ;
4312 unsigned long __cil_tmp103 ;
4313 __u32 __cil_tmp104 ;
4314 unsigned long __cil_tmp105 ;
4315 unsigned long __cil_tmp106 ;
4316 struct nand_ecclayout *__cil_tmp107 ;
4317 unsigned long __cil_tmp108 ;
4318 unsigned long __cil_tmp109 ;
4319 __u32 __cil_tmp110 ;
4320 unsigned long __cil_tmp111 ;
4321 unsigned long __cil_tmp112 ;
4322 struct nand_ecclayout *__cil_tmp113 ;
4323 unsigned long __cil_tmp114 ;
4324 unsigned long __cil_tmp115 ;
4325 __u32 __cil_tmp116 ;
4326 unsigned long __cil_tmp117 ;
4327 unsigned long __cil_tmp118 ;
4328 struct nand_ecclayout *__cil_tmp119 ;
4329 unsigned long __cil_tmp120 ;
4330 unsigned long __cil_tmp121 ;
4331 __u32 __cil_tmp122 ;
4332 unsigned long __cil_tmp123 ;
4333 unsigned long __cil_tmp124 ;
4334 uint32_t __cil_tmp125 ;
4335 loff_t __cil_tmp126 ;
4336 unsigned int __cil_tmp127 ;
4337 unsigned long __cil_tmp128 ;
4338 unsigned char *__cil_tmp129 ;
4339 unsigned char __cil_tmp130 ;
4340 unsigned int __cil_tmp131 ;
4341 struct mtd_oob_ops *__cil_tmp132 ;
4342 unsigned long __cil_tmp133 ;
4343 unsigned long __cil_tmp134 ;
4344 unsigned long __cil_tmp135 ;
4345 unsigned long __cil_tmp136 ;
4346 unsigned long __cil_tmp137 ;
4347 unsigned long __cil_tmp138 ;
4348 unsigned long __cil_tmp139 ;
4349 struct nand_ecclayout *__cil_tmp140 ;
4350 unsigned long __cil_tmp141 ;
4351 unsigned long __cil_tmp142 ;
4352 unsigned long __cil_tmp143 ;
4353 unsigned long __cil_tmp144 ;
4354 struct mtd_oob_ops *__cil_tmp145 ;
4355 unsigned long __cil_tmp146 ;
4356 unsigned long __cil_tmp147 ;
4357 unsigned long __cil_tmp148 ;
4358 unsigned long __cil_tmp149 ;
4359 unsigned long __cil_tmp150 ;
4360 unsigned long __cil_tmp151 ;
4361 unsigned long __cil_tmp152 ;
4362 struct nand_ecclayout *__cil_tmp153 ;
4363 unsigned long __cil_tmp154 ;
4364 unsigned long __cil_tmp155 ;
4365 unsigned long __cil_tmp156 ;
4366 unsigned long __cil_tmp157 ;
4367 unsigned long __cil_tmp158 ;
4368 unsigned long __cil_tmp159 ;
4369 unsigned char *__cil_tmp160 ;
4370 unsigned char __cil_tmp161 ;
4371 unsigned int __cil_tmp162 ;
4372 struct mtd_oob_ops *__cil_tmp163 ;
4373 unsigned long __cil_tmp164 ;
4374 unsigned long __cil_tmp165 ;
4375 unsigned long __cil_tmp166 ;
4376 unsigned long __cil_tmp167 ;
4377 unsigned long __cil_tmp168 ;
4378 struct nand_ecclayout *__cil_tmp169 ;
4379 unsigned long __cil_tmp170 ;
4380 unsigned long __cil_tmp171 ;
4381 __u32 __cil_tmp172 ;
4382 __u32 __cil_tmp173 ;
4383 unsigned long __cil_tmp174 ;
4384 unsigned long __cil_tmp175 ;
4385 unsigned long __cil_tmp176 ;
4386 unsigned long __cil_tmp177 ;
4387 unsigned long __cil_tmp178 ;
4388 unsigned long __cil_tmp179 ;
4389 uint32_t __cil_tmp180 ;
4390 uint64_t __cil_tmp181 ;
4391 unsigned long __cil_tmp182 ;
4392 unsigned long __cil_tmp183 ;
4393 uint64_t __cil_tmp184 ;
4394 uint64_t __cil_tmp185 ;
4395 loff_t __cil_tmp186 ;
4396 struct mtd_oob_ops *__cil_tmp187 ;
4397 unsigned long __cil_tmp188 ;
4398 unsigned long __cil_tmp189 ;
4399 unsigned long __cil_tmp190 ;
4400 unsigned long __cil_tmp191 ;
4401 unsigned long __cil_tmp192 ;
4402 struct nand_ecclayout *__cil_tmp193 ;
4403 unsigned long __cil_tmp194 ;
4404 unsigned long __cil_tmp195 ;
4405 __u32 __cil_tmp196 ;
4406 __u32 __cil_tmp197 ;
4407 unsigned long __cil_tmp198 ;
4408 unsigned long __cil_tmp199 ;
4409 unsigned long __cil_tmp200 ;
4410 unsigned long __cil_tmp201 ;
4411 unsigned long __cil_tmp202 ;
4412 unsigned long __cil_tmp203 ;
4413 uint32_t __cil_tmp204 ;
4414 uint64_t __cil_tmp205 ;
4415 unsigned long __cil_tmp206 ;
4416 unsigned long __cil_tmp207 ;
4417 uint64_t __cil_tmp208 ;
4418 uint64_t __cil_tmp209 ;
4419 loff_t __cil_tmp210 ;
4420 int __cil_tmp211 ;
4421 struct mtd_oob_ops *__cil_tmp212 ;
4422 unsigned long __cil_tmp213 ;
4423 unsigned long __cil_tmp214 ;
4424 unsigned long __cil_tmp215 ;
4425 unsigned long __cil_tmp216 ;
4426 unsigned long __cil_tmp217 ;
4427 struct nand_ecclayout *__cil_tmp218 ;
4428 unsigned long __cil_tmp219 ;
4429 unsigned long __cil_tmp220 ;
4430 __u32 __cil_tmp221 ;
4431 unsigned long __cil_tmp222 ;
4432 unsigned long __cil_tmp223 ;
4433 unsigned long __cil_tmp224 ;
4434 unsigned long __cil_tmp225 ;
4435 unsigned long __cil_tmp226 ;
4436 unsigned long __cil_tmp227 ;
4437 uint32_t __cil_tmp228 ;
4438 uint64_t __cil_tmp229 ;
4439 unsigned long __cil_tmp230 ;
4440 unsigned long __cil_tmp231 ;
4441 uint64_t __cil_tmp232 ;
4442 uint64_t __cil_tmp233 ;
4443 loff_t __cil_tmp234 ;
4444 struct mtd_oob_ops *__cil_tmp235 ;
4445 unsigned long __cil_tmp236 ;
4446 unsigned long __cil_tmp237 ;
4447 unsigned long __cil_tmp238 ;
4448 unsigned long __cil_tmp239 ;
4449 unsigned long __cil_tmp240 ;
4450 struct nand_ecclayout *__cil_tmp241 ;
4451 unsigned long __cil_tmp242 ;
4452 unsigned long __cil_tmp243 ;
4453 __u32 __cil_tmp244 ;
4454 unsigned long __cil_tmp245 ;
4455 unsigned long __cil_tmp246 ;
4456 unsigned long __cil_tmp247 ;
4457 unsigned long __cil_tmp248 ;
4458 unsigned long __cil_tmp249 ;
4459 unsigned long __cil_tmp250 ;
4460 uint32_t __cil_tmp251 ;
4461 uint64_t __cil_tmp252 ;
4462 unsigned long __cil_tmp253 ;
4463 unsigned long __cil_tmp254 ;
4464 uint64_t __cil_tmp255 ;
4465 uint64_t __cil_tmp256 ;
4466 loff_t __cil_tmp257 ;
4467 unsigned long __cil_tmp258 ;
4468 unsigned long __cil_tmp259 ;
4469 struct nand_ecclayout *__cil_tmp260 ;
4470 unsigned long __cil_tmp261 ;
4471 unsigned long __cil_tmp262 ;
4472 __u32 __cil_tmp263 ;
4473 unsigned long __cil_tmp264 ;
4474 unsigned char *__cil_tmp265 ;
4475 unsigned char __cil_tmp266 ;
4476 unsigned int __cil_tmp267 ;
4477 unsigned int __cil_tmp268 ;
4478 unsigned long __cil_tmp269 ;
4479 unsigned char *__cil_tmp270 ;
4480 unsigned char __cil_tmp271 ;
4481 unsigned int __cil_tmp272 ;
4482 unsigned long __cil_tmp273 ;
4483 unsigned long __cil_tmp274 ;
4484 uint32_t __cil_tmp275 ;
4485 unsigned long __cil_tmp276 ;
4486 unsigned long __cil_tmp277 ;
4487 uint32_t __cil_tmp278 ;
4488 unsigned int __cil_tmp279 ;
4489 unsigned int __cil_tmp280 ;
4490 unsigned int __cil_tmp281 ;
4491 struct mtd_oob_ops *__cil_tmp282 ;
4492 unsigned long __cil_tmp283 ;
4493 unsigned long __cil_tmp284 ;
4494 unsigned long __cil_tmp285 ;
4495 unsigned long __cil_tmp286 ;
4496 unsigned long __cil_tmp287 ;
4497 unsigned long __cil_tmp288 ;
4498 unsigned long __cil_tmp289 ;
4499 unsigned int __cil_tmp290 ;
4500 unsigned long __cil_tmp291 ;
4501 unsigned long __cil_tmp292 ;
4502 uint32_t __cil_tmp293 ;
4503 loff_t __cil_tmp294 ;
4504 int __cil_tmp295 ;
4505 unsigned int __cil_tmp296 ;
4506 unsigned long __cil_tmp297 ;
4507 unsigned char *__cil_tmp298 ;
4508 unsigned char __cil_tmp299 ;
4509 unsigned int __cil_tmp300 ;
4510 unsigned int __cil_tmp301 ;
4511 unsigned long __cil_tmp302 ;
4512 unsigned char *__cil_tmp303 ;
4513 unsigned char __cil_tmp304 ;
4514 unsigned int __cil_tmp305 ;
4515 unsigned long __cil_tmp306 ;
4516 unsigned long __cil_tmp307 ;
4517 struct nand_ecclayout *__cil_tmp308 ;
4518 unsigned long __cil_tmp309 ;
4519 unsigned long __cil_tmp310 ;
4520 __u32 __cil_tmp311 ;
4521 __u32 __cil_tmp312 ;
4522 size_t __cil_tmp313 ;
4523 unsigned long __cil_tmp314 ;
4524 unsigned long __cil_tmp315 ;
4525 uint32_t __cil_tmp316 ;
4526 unsigned long __cil_tmp317 ;
4527 unsigned long __cil_tmp318 ;
4528 uint32_t __cil_tmp319 ;
4529 unsigned int __cil_tmp320 ;
4530 unsigned int __cil_tmp321 ;
4531 unsigned int __cil_tmp322 ;
4532 struct mtd_oob_ops *__cil_tmp323 ;
4533 unsigned long __cil_tmp324 ;
4534 unsigned long __cil_tmp325 ;
4535 unsigned long __cil_tmp326 ;
4536 unsigned long __cil_tmp327 ;
4537 unsigned long __cil_tmp328 ;
4538 struct nand_ecclayout *__cil_tmp329 ;
4539 unsigned long __cil_tmp330 ;
4540 unsigned long __cil_tmp331 ;
4541 __u32 __cil_tmp332 ;
4542 __u32 __cil_tmp333 ;
4543 unsigned long __cil_tmp334 ;
4544 unsigned long __cil_tmp335 ;
4545 unsigned long __cil_tmp336 ;
4546 unsigned long __cil_tmp337 ;
4547 void const *__cil_tmp338 ;
4548 void const *__cil_tmp339 ;
4549 unsigned long __cil_tmp340 ;
4550 unsigned long __cil_tmp341 ;
4551 struct nand_ecclayout *__cil_tmp342 ;
4552 unsigned long __cil_tmp343 ;
4553 unsigned long __cil_tmp344 ;
4554 __u32 __cil_tmp345 ;
4555 __u32 __cil_tmp346 ;
4556 size_t __cil_tmp347 ;
4557 unsigned int __cil_tmp348 ;
4558 int __cil_tmp349 ;
4559 unsigned int __cil_tmp350 ;
4560 void const *__cil_tmp351 ;
4561 void const *__cil_tmp352 ;
4562 void const *__cil_tmp353 ;
4563
4564 {
4565 {
4566#line 376
4567 err = 0;
4568#line 380
4569 addr = 0LL;
4570#line 382
4571 printk("<6>\n");
4572#line 383
4573 printk("<6>=================================================\n");
4574 }
4575 {
4576#line 385
4577 __cil_tmp17 = & dev;
4578#line 385
4579 __cil_tmp18 = *__cil_tmp17;
4580#line 385
4581 if (__cil_tmp18 < 0) {
4582 {
4583#line 386
4584 printk("<6>mtd_oobtest: Please specify a valid mtd-device via module paramter\n");
4585#line 387
4586 printk("<2>CAREFUL: This test wipes all data on the specified MTD device!\n");
4587 }
4588#line 388
4589 return (-22);
4590 } else {
4591
4592 }
4593 }
4594 {
4595#line 391
4596 __cil_tmp19 = & dev;
4597#line 391
4598 __cil_tmp20 = *__cil_tmp19;
4599#line 391
4600 printk("<6>mtd_oobtest: MTD device: %d\n", __cil_tmp20);
4601#line 393
4602 __cil_tmp21 = (struct mtd_info *)0;
4603#line 393
4604 __cil_tmp22 = & dev;
4605#line 393
4606 __cil_tmp23 = *__cil_tmp22;
4607#line 393
4608 mtd = get_mtd_device(__cil_tmp21, __cil_tmp23);
4609#line 394
4610 __cil_tmp24 = (void const *)mtd;
4611#line 394
4612 tmp___1 = IS_ERR(__cil_tmp24);
4613 }
4614#line 394
4615 if (tmp___1 != 0L) {
4616 {
4617#line 395
4618 __cil_tmp25 = (void const *)mtd;
4619#line 395
4620 tmp___0 = PTR_ERR(__cil_tmp25);
4621#line 395
4622 err = (int )tmp___0;
4623#line 396
4624 printk("<6>mtd_oobtest: error: cannot get MTD device\n");
4625 }
4626#line 397
4627 return (err);
4628 } else {
4629
4630 }
4631 {
4632#line 400
4633 __cil_tmp26 = *((u_char *)mtd);
4634#line 400
4635 __cil_tmp27 = (unsigned int )__cil_tmp26;
4636#line 400
4637 if (__cil_tmp27 != 4U) {
4638 {
4639#line 401
4640 printk("<6>mtd_oobtest: this test requires NAND flash\n");
4641 }
4642#line 402
4643 goto out;
4644 } else {
4645
4646 }
4647 }
4648 {
4649#line 405
4650 __cil_tmp28 = (unsigned long )mtd;
4651#line 405
4652 __cil_tmp29 = __cil_tmp28 + 8;
4653#line 405
4654 tmp = *((uint64_t *)__cil_tmp29);
4655#line 406
4656 __cil_tmp30 = (unsigned long )mtd;
4657#line 406
4658 __cil_tmp31 = __cil_tmp30 + 16;
4659#line 406
4660 __base = *((uint32_t *)__cil_tmp31);
4661#line 406
4662 __cil_tmp32 = (uint64_t )__base;
4663#line 406
4664 __cil_tmp33 = tmp % __cil_tmp32;
4665#line 406
4666 __rem = (uint32_t )__cil_tmp33;
4667#line 406
4668 __cil_tmp34 = (uint64_t )__base;
4669#line 406
4670 tmp = tmp / __cil_tmp34;
4671#line 407
4672 ebcnt = (int )tmp;
4673#line 408
4674 __cil_tmp35 = (unsigned long )mtd;
4675#line 408
4676 __cil_tmp36 = __cil_tmp35 + 20;
4677#line 408
4678 __cil_tmp37 = *((uint32_t *)__cil_tmp36);
4679#line 408
4680 __cil_tmp38 = (unsigned long )mtd;
4681#line 408
4682 __cil_tmp39 = __cil_tmp38 + 16;
4683#line 408
4684 __cil_tmp40 = *((uint32_t *)__cil_tmp39);
4685#line 408
4686 __cil_tmp41 = __cil_tmp40 / __cil_tmp37;
4687#line 408
4688 pgcnt = (int )__cil_tmp41;
4689#line 410
4690 __cil_tmp42 = (unsigned long )mtd;
4691#line 410
4692 __cil_tmp43 = __cil_tmp42 + 8;
4693#line 410
4694 __cil_tmp44 = *((uint64_t *)__cil_tmp43);
4695#line 410
4696 __cil_tmp45 = (unsigned long )mtd;
4697#line 410
4698 __cil_tmp46 = __cil_tmp45 + 16;
4699#line 410
4700 __cil_tmp47 = *((uint32_t *)__cil_tmp46);
4701#line 410
4702 __cil_tmp48 = (unsigned long )mtd;
4703#line 410
4704 __cil_tmp49 = __cil_tmp48 + 20;
4705#line 410
4706 __cil_tmp50 = *((uint32_t *)__cil_tmp49);
4707#line 410
4708 __cil_tmp51 = (unsigned long )mtd;
4709#line 410
4710 __cil_tmp52 = __cil_tmp51 + 28;
4711#line 410
4712 __cil_tmp53 = *((uint32_t *)__cil_tmp52);
4713#line 410
4714 printk("<6>mtd_oobtest: MTD device size %llu, eraseblock size %u, page size %u, count of eraseblocks %u, pages per eraseblock %u, OOB size %u\n",
4715 __cil_tmp44, __cil_tmp47, __cil_tmp50, ebcnt, pgcnt, __cil_tmp53);
4716#line 416
4717 err = -12;
4718#line 417
4719 __cil_tmp54 = (unsigned long )mtd;
4720#line 417
4721 __cil_tmp55 = __cil_tmp54 + 16;
4722#line 417
4723 __cil_tmp56 = *((uint32_t *)__cil_tmp55);
4724#line 417
4725 __cil_tmp57 = (size_t )__cil_tmp56;
4726#line 417
4727 tmp___2 = kmalloc(__cil_tmp57, 208U);
4728#line 417
4729 readbuf = (unsigned char *)tmp___2;
4730 }
4731 {
4732#line 418
4733 __cil_tmp58 = (unsigned char *)0;
4734#line 418
4735 __cil_tmp59 = (unsigned long )__cil_tmp58;
4736#line 418
4737 __cil_tmp60 = (unsigned long )readbuf;
4738#line 418
4739 if (__cil_tmp60 == __cil_tmp59) {
4740 {
4741#line 419
4742 printk("<6>mtd_oobtest: error: cannot allocate memory\n");
4743 }
4744#line 420
4745 goto out;
4746 } else {
4747
4748 }
4749 }
4750 {
4751#line 422
4752 __cil_tmp61 = (unsigned long )mtd;
4753#line 422
4754 __cil_tmp62 = __cil_tmp61 + 16;
4755#line 422
4756 __cil_tmp63 = *((uint32_t *)__cil_tmp62);
4757#line 422
4758 __cil_tmp64 = (size_t )__cil_tmp63;
4759#line 422
4760 tmp___3 = kmalloc(__cil_tmp64, 208U);
4761#line 422
4762 writebuf = (unsigned char *)tmp___3;
4763 }
4764 {
4765#line 423
4766 __cil_tmp65 = (unsigned char *)0;
4767#line 423
4768 __cil_tmp66 = (unsigned long )__cil_tmp65;
4769#line 423
4770 __cil_tmp67 = (unsigned long )writebuf;
4771#line 423
4772 if (__cil_tmp67 == __cil_tmp66) {
4773 {
4774#line 424
4775 printk("<6>mtd_oobtest: error: cannot allocate memory\n");
4776 }
4777#line 425
4778 goto out;
4779 } else {
4780
4781 }
4782 }
4783 {
4784#line 428
4785 err = scan_for_bad_eraseblocks();
4786 }
4787#line 429
4788 if (err != 0) {
4789#line 430
4790 goto out;
4791 } else {
4792
4793 }
4794 {
4795#line 432
4796 use_offset = 0;
4797#line 433
4798 __cil_tmp68 = (unsigned long )mtd;
4799#line 433
4800 __cil_tmp69 = __cil_tmp68 + 72;
4801#line 433
4802 __cil_tmp70 = *((struct nand_ecclayout **)__cil_tmp69);
4803#line 433
4804 __cil_tmp71 = (unsigned long )__cil_tmp70;
4805#line 433
4806 __cil_tmp72 = __cil_tmp71 + 1796;
4807#line 433
4808 __cil_tmp73 = *((__u32 *)__cil_tmp72);
4809#line 433
4810 use_len = (int )__cil_tmp73;
4811#line 434
4812 __cil_tmp74 = (unsigned long )mtd;
4813#line 434
4814 __cil_tmp75 = __cil_tmp74 + 72;
4815#line 434
4816 __cil_tmp76 = *((struct nand_ecclayout **)__cil_tmp75);
4817#line 434
4818 __cil_tmp77 = (unsigned long )__cil_tmp76;
4819#line 434
4820 __cil_tmp78 = __cil_tmp77 + 1796;
4821#line 434
4822 __cil_tmp79 = *((__u32 *)__cil_tmp78);
4823#line 434
4824 use_len_max = (int )__cil_tmp79;
4825#line 435
4826 vary_offset = 0;
4827#line 438
4828 printk("<6>mtd_oobtest: test 1 of 5\n");
4829#line 440
4830 err = erase_whole_device();
4831 }
4832#line 441
4833 if (err != 0) {
4834#line 442
4835 goto out;
4836 } else {
4837
4838 }
4839 {
4840#line 444
4841 simple_srand(1UL);
4842#line 445
4843 err = write_whole_device();
4844 }
4845#line 446
4846 if (err != 0) {
4847#line 447
4848 goto out;
4849 } else {
4850
4851 }
4852 {
4853#line 449
4854 simple_srand(1UL);
4855#line 450
4856 err = verify_all_eraseblocks();
4857 }
4858#line 451
4859 if (err != 0) {
4860#line 452
4861 goto out;
4862 } else {
4863
4864 }
4865 {
4866#line 458
4867 printk("<6>mtd_oobtest: test 2 of 5\n");
4868#line 460
4869 err = erase_whole_device();
4870 }
4871#line 461
4872 if (err != 0) {
4873#line 462
4874 goto out;
4875 } else {
4876
4877 }
4878 {
4879#line 464
4880 simple_srand(3UL);
4881#line 465
4882 err = write_whole_device();
4883 }
4884#line 466
4885 if (err != 0) {
4886#line 467
4887 goto out;
4888 } else {
4889
4890 }
4891 {
4892#line 470
4893 simple_srand(3UL);
4894#line 471
4895 printk("<6>mtd_oobtest: verifying all eraseblocks\n");
4896#line 472
4897 i = 0U;
4898 }
4899#line 472
4900 goto ldv_18774;
4901 ldv_18773: ;
4902 {
4903#line 473
4904 __cil_tmp80 = (unsigned long )i;
4905#line 473
4906 __cil_tmp81 = bbt + __cil_tmp80;
4907#line 473
4908 __cil_tmp82 = *__cil_tmp81;
4909#line 473
4910 __cil_tmp83 = (unsigned int )__cil_tmp82;
4911#line 473
4912 if (__cil_tmp83 != 0U) {
4913#line 474
4914 goto ldv_18771;
4915 } else {
4916
4917 }
4918 }
4919 {
4920#line 475
4921 __cil_tmp84 = (int )i;
4922#line 475
4923 err = verify_eraseblock_in_one_go(__cil_tmp84);
4924 }
4925#line 476
4926 if (err != 0) {
4927#line 477
4928 goto out;
4929 } else {
4930
4931 }
4932 {
4933#line 478
4934 __cil_tmp85 = i & 255U;
4935#line 478
4936 if (__cil_tmp85 == 0U) {
4937 {
4938#line 479
4939 printk("<6>mtd_oobtest: verified up to eraseblock %u\n", i);
4940 }
4941 } else {
4942
4943 }
4944 }
4945 {
4946#line 480
4947 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
4948 480, 0);
4949#line 480
4950 _cond_resched();
4951 }
4952 ldv_18771:
4953#line 472
4954 i = i + 1U;
4955 ldv_18774: ;
4956 {
4957#line 472
4958 __cil_tmp86 = (unsigned int )ebcnt;
4959#line 472
4960 if (__cil_tmp86 > i) {
4961#line 473
4962 goto ldv_18773;
4963 } else {
4964#line 475
4965 goto ldv_18775;
4966 }
4967 }
4968 ldv_18775:
4969 {
4970#line 482
4971 printk("<6>mtd_oobtest: verified %u eraseblocks\n", i);
4972#line 488
4973 printk("<6>mtd_oobtest: test 3 of 5\n");
4974#line 490
4975 err = erase_whole_device();
4976 }
4977#line 491
4978 if (err != 0) {
4979#line 492
4980 goto out;
4981 } else {
4982
4983 }
4984 {
4985#line 495
4986 use_offset = 0;
4987#line 496
4988 __cil_tmp87 = (unsigned long )mtd;
4989#line 496
4990 __cil_tmp88 = __cil_tmp87 + 72;
4991#line 496
4992 __cil_tmp89 = *((struct nand_ecclayout **)__cil_tmp88);
4993#line 496
4994 __cil_tmp90 = (unsigned long )__cil_tmp89;
4995#line 496
4996 __cil_tmp91 = __cil_tmp90 + 1796;
4997#line 496
4998 __cil_tmp92 = *((__u32 *)__cil_tmp91);
4999#line 496
5000 use_len = (int )__cil_tmp92;
5001#line 497
5002 __cil_tmp93 = (unsigned long )mtd;
5003#line 497
5004 __cil_tmp94 = __cil_tmp93 + 72;
5005#line 497
5006 __cil_tmp95 = *((struct nand_ecclayout **)__cil_tmp94);
5007#line 497
5008 __cil_tmp96 = (unsigned long )__cil_tmp95;
5009#line 497
5010 __cil_tmp97 = __cil_tmp96 + 1796;
5011#line 497
5012 __cil_tmp98 = *((__u32 *)__cil_tmp97);
5013#line 497
5014 use_len_max = (int )__cil_tmp98;
5015#line 498
5016 vary_offset = 1;
5017#line 499
5018 simple_srand(5UL);
5019#line 501
5020 err = write_whole_device();
5021 }
5022#line 502
5023 if (err != 0) {
5024#line 503
5025 goto out;
5026 } else {
5027
5028 }
5029 {
5030#line 506
5031 use_offset = 0;
5032#line 507
5033 __cil_tmp99 = (unsigned long )mtd;
5034#line 507
5035 __cil_tmp100 = __cil_tmp99 + 72;
5036#line 507
5037 __cil_tmp101 = *((struct nand_ecclayout **)__cil_tmp100);
5038#line 507
5039 __cil_tmp102 = (unsigned long )__cil_tmp101;
5040#line 507
5041 __cil_tmp103 = __cil_tmp102 + 1796;
5042#line 507
5043 __cil_tmp104 = *((__u32 *)__cil_tmp103);
5044#line 507
5045 use_len = (int )__cil_tmp104;
5046#line 508
5047 __cil_tmp105 = (unsigned long )mtd;
5048#line 508
5049 __cil_tmp106 = __cil_tmp105 + 72;
5050#line 508
5051 __cil_tmp107 = *((struct nand_ecclayout **)__cil_tmp106);
5052#line 508
5053 __cil_tmp108 = (unsigned long )__cil_tmp107;
5054#line 508
5055 __cil_tmp109 = __cil_tmp108 + 1796;
5056#line 508
5057 __cil_tmp110 = *((__u32 *)__cil_tmp109);
5058#line 508
5059 use_len_max = (int )__cil_tmp110;
5060#line 509
5061 vary_offset = 1;
5062#line 510
5063 simple_srand(5UL);
5064#line 511
5065 err = verify_all_eraseblocks();
5066 }
5067#line 512
5068 if (err != 0) {
5069#line 513
5070 goto out;
5071 } else {
5072
5073 }
5074 {
5075#line 515
5076 use_offset = 0;
5077#line 516
5078 __cil_tmp111 = (unsigned long )mtd;
5079#line 516
5080 __cil_tmp112 = __cil_tmp111 + 72;
5081#line 516
5082 __cil_tmp113 = *((struct nand_ecclayout **)__cil_tmp112);
5083#line 516
5084 __cil_tmp114 = (unsigned long )__cil_tmp113;
5085#line 516
5086 __cil_tmp115 = __cil_tmp114 + 1796;
5087#line 516
5088 __cil_tmp116 = *((__u32 *)__cil_tmp115);
5089#line 516
5090 use_len = (int )__cil_tmp116;
5091#line 517
5092 __cil_tmp117 = (unsigned long )mtd;
5093#line 517
5094 __cil_tmp118 = __cil_tmp117 + 72;
5095#line 517
5096 __cil_tmp119 = *((struct nand_ecclayout **)__cil_tmp118);
5097#line 517
5098 __cil_tmp120 = (unsigned long )__cil_tmp119;
5099#line 517
5100 __cil_tmp121 = __cil_tmp120 + 1796;
5101#line 517
5102 __cil_tmp122 = *((__u32 *)__cil_tmp121);
5103#line 517
5104 use_len_max = (int )__cil_tmp122;
5105#line 518
5106 vary_offset = 0;
5107#line 521
5108 printk("<6>mtd_oobtest: test 4 of 5\n");
5109#line 523
5110 err = erase_whole_device();
5111 }
5112#line 524
5113 if (err != 0) {
5114#line 525
5115 goto out;
5116 } else {
5117
5118 }
5119#line 527
5120 addr0 = 0LL;
5121#line 528
5122 i = 0U;
5123#line 528
5124 goto ldv_18777;
5125 ldv_18776:
5126#line 529
5127 __cil_tmp123 = (unsigned long )mtd;
5128#line 529
5129 __cil_tmp124 = __cil_tmp123 + 16;
5130#line 529
5131 __cil_tmp125 = *((uint32_t *)__cil_tmp124);
5132#line 529
5133 __cil_tmp126 = (loff_t )__cil_tmp125;
5134#line 529
5135 addr0 = __cil_tmp126 + addr0;
5136#line 528
5137 i = i + 1U;
5138 ldv_18777: ;
5139 {
5140#line 528
5141 __cil_tmp127 = (unsigned int )ebcnt;
5142#line 528
5143 if (__cil_tmp127 > i) {
5144 {
5145#line 528
5146 __cil_tmp128 = (unsigned long )i;
5147#line 528
5148 __cil_tmp129 = bbt + __cil_tmp128;
5149#line 528
5150 __cil_tmp130 = *__cil_tmp129;
5151#line 528
5152 __cil_tmp131 = (unsigned int )__cil_tmp130;
5153#line 528
5154 if (__cil_tmp131 != 0U) {
5155#line 529
5156 goto ldv_18776;
5157 } else {
5158#line 531
5159 goto ldv_18778;
5160 }
5161 }
5162 } else {
5163#line 531
5164 goto ldv_18778;
5165 }
5166 }
5167 ldv_18778:
5168 {
5169#line 532
5170 __cil_tmp132 = & ops;
5171#line 532
5172 *((unsigned int *)__cil_tmp132) = 1U;
5173#line 533
5174 __cil_tmp133 = (unsigned long )(& ops) + 8;
5175#line 533
5176 *((size_t *)__cil_tmp133) = 0UL;
5177#line 534
5178 __cil_tmp134 = (unsigned long )(& ops) + 16;
5179#line 534
5180 *((size_t *)__cil_tmp134) = 0UL;
5181#line 535
5182 __cil_tmp135 = (unsigned long )(& ops) + 24;
5183#line 535
5184 *((size_t *)__cil_tmp135) = 1UL;
5185#line 536
5186 __cil_tmp136 = (unsigned long )(& ops) + 32;
5187#line 536
5188 *((size_t *)__cil_tmp136) = 0UL;
5189#line 537
5190 __cil_tmp137 = (unsigned long )(& ops) + 40;
5191#line 537
5192 __cil_tmp138 = (unsigned long )mtd;
5193#line 537
5194 __cil_tmp139 = __cil_tmp138 + 72;
5195#line 537
5196 __cil_tmp140 = *((struct nand_ecclayout **)__cil_tmp139);
5197#line 537
5198 __cil_tmp141 = (unsigned long )__cil_tmp140;
5199#line 537
5200 __cil_tmp142 = __cil_tmp141 + 1796;
5201#line 537
5202 *((uint32_t *)__cil_tmp137) = *((__u32 *)__cil_tmp142);
5203#line 538
5204 __cil_tmp143 = (unsigned long )(& ops) + 48;
5205#line 538
5206 *((uint8_t **)__cil_tmp143) = (uint8_t *)0;
5207#line 539
5208 __cil_tmp144 = (unsigned long )(& ops) + 56;
5209#line 539
5210 *((uint8_t **)__cil_tmp144) = writebuf;
5211#line 540
5212 printk("<6>mtd_oobtest: attempting to start write past end of OOB\n");
5213#line 541
5214 printk("<6>mtd_oobtest: an error is expected...\n");
5215#line 542
5216 err = mtd_write_oob(mtd, addr0, & ops);
5217 }
5218#line 543
5219 if (err != 0) {
5220 {
5221#line 544
5222 printk("<6>mtd_oobtest: error occurred as expected\n");
5223#line 545
5224 err = 0;
5225 }
5226 } else {
5227 {
5228#line 547
5229 printk("<6>mtd_oobtest: error: can write past end of OOB\n");
5230#line 548
5231 errcnt = errcnt + 1;
5232 }
5233 }
5234 {
5235#line 552
5236 __cil_tmp145 = & ops;
5237#line 552
5238 *((unsigned int *)__cil_tmp145) = 1U;
5239#line 553
5240 __cil_tmp146 = (unsigned long )(& ops) + 8;
5241#line 553
5242 *((size_t *)__cil_tmp146) = 0UL;
5243#line 554
5244 __cil_tmp147 = (unsigned long )(& ops) + 16;
5245#line 554
5246 *((size_t *)__cil_tmp147) = 0UL;
5247#line 555
5248 __cil_tmp148 = (unsigned long )(& ops) + 24;
5249#line 555
5250 *((size_t *)__cil_tmp148) = 1UL;
5251#line 556
5252 __cil_tmp149 = (unsigned long )(& ops) + 32;
5253#line 556
5254 *((size_t *)__cil_tmp149) = 0UL;
5255#line 557
5256 __cil_tmp150 = (unsigned long )(& ops) + 40;
5257#line 557
5258 __cil_tmp151 = (unsigned long )mtd;
5259#line 557
5260 __cil_tmp152 = __cil_tmp151 + 72;
5261#line 557
5262 __cil_tmp153 = *((struct nand_ecclayout **)__cil_tmp152);
5263#line 557
5264 __cil_tmp154 = (unsigned long )__cil_tmp153;
5265#line 557
5266 __cil_tmp155 = __cil_tmp154 + 1796;
5267#line 557
5268 *((uint32_t *)__cil_tmp150) = *((__u32 *)__cil_tmp155);
5269#line 558
5270 __cil_tmp156 = (unsigned long )(& ops) + 48;
5271#line 558
5272 *((uint8_t **)__cil_tmp156) = (uint8_t *)0;
5273#line 559
5274 __cil_tmp157 = (unsigned long )(& ops) + 56;
5275#line 559
5276 *((uint8_t **)__cil_tmp157) = readbuf;
5277#line 560
5278 printk("<6>mtd_oobtest: attempting to start read past end of OOB\n");
5279#line 561
5280 printk("<6>mtd_oobtest: an error is expected...\n");
5281#line 562
5282 err = mtd_read_oob(mtd, addr0, & ops);
5283 }
5284#line 563
5285 if (err != 0) {
5286 {
5287#line 564
5288 printk("<6>mtd_oobtest: error occurred as expected\n");
5289#line 565
5290 err = 0;
5291 }
5292 } else {
5293 {
5294#line 567
5295 printk("<6>mtd_oobtest: error: can read past end of OOB\n");
5296#line 568
5297 errcnt = errcnt + 1;
5298 }
5299 }
5300 {
5301#line 571
5302 __cil_tmp158 = (unsigned long )ebcnt;
5303#line 571
5304 __cil_tmp159 = __cil_tmp158 + 0xffffffffffffffffUL;
5305#line 571
5306 __cil_tmp160 = bbt + __cil_tmp159;
5307#line 571
5308 __cil_tmp161 = *__cil_tmp160;
5309#line 571
5310 __cil_tmp162 = (unsigned int )__cil_tmp161;
5311#line 571
5312 if (__cil_tmp162 != 0U) {
5313 {
5314#line 572
5315 printk("<6>mtd_oobtest: skipping end of device tests because last block is bad\n");
5316 }
5317 } else {
5318 {
5319#line 576
5320 __cil_tmp163 = & ops;
5321#line 576
5322 *((unsigned int *)__cil_tmp163) = 1U;
5323#line 577
5324 __cil_tmp164 = (unsigned long )(& ops) + 8;
5325#line 577
5326 *((size_t *)__cil_tmp164) = 0UL;
5327#line 578
5328 __cil_tmp165 = (unsigned long )(& ops) + 16;
5329#line 578
5330 *((size_t *)__cil_tmp165) = 0UL;
5331#line 579
5332 __cil_tmp166 = (unsigned long )(& ops) + 24;
5333#line 579
5334 __cil_tmp167 = (unsigned long )mtd;
5335#line 579
5336 __cil_tmp168 = __cil_tmp167 + 72;
5337#line 579
5338 __cil_tmp169 = *((struct nand_ecclayout **)__cil_tmp168);
5339#line 579
5340 __cil_tmp170 = (unsigned long )__cil_tmp169;
5341#line 579
5342 __cil_tmp171 = __cil_tmp170 + 1796;
5343#line 579
5344 __cil_tmp172 = *((__u32 *)__cil_tmp171);
5345#line 579
5346 __cil_tmp173 = __cil_tmp172 + 1U;
5347#line 579
5348 *((size_t *)__cil_tmp166) = (size_t )__cil_tmp173;
5349#line 580
5350 __cil_tmp174 = (unsigned long )(& ops) + 32;
5351#line 580
5352 *((size_t *)__cil_tmp174) = 0UL;
5353#line 581
5354 __cil_tmp175 = (unsigned long )(& ops) + 40;
5355#line 581
5356 *((uint32_t *)__cil_tmp175) = 0U;
5357#line 582
5358 __cil_tmp176 = (unsigned long )(& ops) + 48;
5359#line 582
5360 *((uint8_t **)__cil_tmp176) = (uint8_t *)0;
5361#line 583
5362 __cil_tmp177 = (unsigned long )(& ops) + 56;
5363#line 583
5364 *((uint8_t **)__cil_tmp177) = writebuf;
5365#line 584
5366 printk("<6>mtd_oobtest: attempting to write past end of device\n");
5367#line 585
5368 printk("<6>mtd_oobtest: an error is expected...\n");
5369#line 586
5370 __cil_tmp178 = (unsigned long )mtd;
5371#line 586
5372 __cil_tmp179 = __cil_tmp178 + 20;
5373#line 586
5374 __cil_tmp180 = *((uint32_t *)__cil_tmp179);
5375#line 586
5376 __cil_tmp181 = (uint64_t )__cil_tmp180;
5377#line 586
5378 __cil_tmp182 = (unsigned long )mtd;
5379#line 586
5380 __cil_tmp183 = __cil_tmp182 + 8;
5381#line 586
5382 __cil_tmp184 = *((uint64_t *)__cil_tmp183);
5383#line 586
5384 __cil_tmp185 = __cil_tmp184 - __cil_tmp181;
5385#line 586
5386 __cil_tmp186 = (loff_t )__cil_tmp185;
5387#line 586
5388 err = mtd_write_oob(mtd, __cil_tmp186, & ops);
5389 }
5390#line 587
5391 if (err != 0) {
5392 {
5393#line 588
5394 printk("<6>mtd_oobtest: error occurred as expected\n");
5395#line 589
5396 err = 0;
5397 }
5398 } else {
5399 {
5400#line 591
5401 printk("<6>mtd_oobtest: error: wrote past end of device\n");
5402#line 592
5403 errcnt = errcnt + 1;
5404 }
5405 }
5406 {
5407#line 596
5408 __cil_tmp187 = & ops;
5409#line 596
5410 *((unsigned int *)__cil_tmp187) = 1U;
5411#line 597
5412 __cil_tmp188 = (unsigned long )(& ops) + 8;
5413#line 597
5414 *((size_t *)__cil_tmp188) = 0UL;
5415#line 598
5416 __cil_tmp189 = (unsigned long )(& ops) + 16;
5417#line 598
5418 *((size_t *)__cil_tmp189) = 0UL;
5419#line 599
5420 __cil_tmp190 = (unsigned long )(& ops) + 24;
5421#line 599
5422 __cil_tmp191 = (unsigned long )mtd;
5423#line 599
5424 __cil_tmp192 = __cil_tmp191 + 72;
5425#line 599
5426 __cil_tmp193 = *((struct nand_ecclayout **)__cil_tmp192);
5427#line 599
5428 __cil_tmp194 = (unsigned long )__cil_tmp193;
5429#line 599
5430 __cil_tmp195 = __cil_tmp194 + 1796;
5431#line 599
5432 __cil_tmp196 = *((__u32 *)__cil_tmp195);
5433#line 599
5434 __cil_tmp197 = __cil_tmp196 + 1U;
5435#line 599
5436 *((size_t *)__cil_tmp190) = (size_t )__cil_tmp197;
5437#line 600
5438 __cil_tmp198 = (unsigned long )(& ops) + 32;
5439#line 600
5440 *((size_t *)__cil_tmp198) = 0UL;
5441#line 601
5442 __cil_tmp199 = (unsigned long )(& ops) + 40;
5443#line 601
5444 *((uint32_t *)__cil_tmp199) = 0U;
5445#line 602
5446 __cil_tmp200 = (unsigned long )(& ops) + 48;
5447#line 602
5448 *((uint8_t **)__cil_tmp200) = (uint8_t *)0;
5449#line 603
5450 __cil_tmp201 = (unsigned long )(& ops) + 56;
5451#line 603
5452 *((uint8_t **)__cil_tmp201) = readbuf;
5453#line 604
5454 printk("<6>mtd_oobtest: attempting to read past end of device\n");
5455#line 605
5456 printk("<6>mtd_oobtest: an error is expected...\n");
5457#line 606
5458 __cil_tmp202 = (unsigned long )mtd;
5459#line 606
5460 __cil_tmp203 = __cil_tmp202 + 20;
5461#line 606
5462 __cil_tmp204 = *((uint32_t *)__cil_tmp203);
5463#line 606
5464 __cil_tmp205 = (uint64_t )__cil_tmp204;
5465#line 606
5466 __cil_tmp206 = (unsigned long )mtd;
5467#line 606
5468 __cil_tmp207 = __cil_tmp206 + 8;
5469#line 606
5470 __cil_tmp208 = *((uint64_t *)__cil_tmp207);
5471#line 606
5472 __cil_tmp209 = __cil_tmp208 - __cil_tmp205;
5473#line 606
5474 __cil_tmp210 = (loff_t )__cil_tmp209;
5475#line 606
5476 err = mtd_read_oob(mtd, __cil_tmp210, & ops);
5477 }
5478#line 607
5479 if (err != 0) {
5480 {
5481#line 608
5482 printk("<6>mtd_oobtest: error occurred as expected\n");
5483#line 609
5484 err = 0;
5485 }
5486 } else {
5487 {
5488#line 611
5489 printk("<6>mtd_oobtest: error: read past end of device\n");
5490#line 612
5491 errcnt = errcnt + 1;
5492 }
5493 }
5494 {
5495#line 615
5496 __cil_tmp211 = ebcnt + -1;
5497#line 615
5498 err = erase_eraseblock(__cil_tmp211);
5499 }
5500#line 616
5501 if (err != 0) {
5502#line 617
5503 goto out;
5504 } else {
5505
5506 }
5507 {
5508#line 620
5509 __cil_tmp212 = & ops;
5510#line 620
5511 *((unsigned int *)__cil_tmp212) = 1U;
5512#line 621
5513 __cil_tmp213 = (unsigned long )(& ops) + 8;
5514#line 621
5515 *((size_t *)__cil_tmp213) = 0UL;
5516#line 622
5517 __cil_tmp214 = (unsigned long )(& ops) + 16;
5518#line 622
5519 *((size_t *)__cil_tmp214) = 0UL;
5520#line 623
5521 __cil_tmp215 = (unsigned long )(& ops) + 24;
5522#line 623
5523 __cil_tmp216 = (unsigned long )mtd;
5524#line 623
5525 __cil_tmp217 = __cil_tmp216 + 72;
5526#line 623
5527 __cil_tmp218 = *((struct nand_ecclayout **)__cil_tmp217);
5528#line 623
5529 __cil_tmp219 = (unsigned long )__cil_tmp218;
5530#line 623
5531 __cil_tmp220 = __cil_tmp219 + 1796;
5532#line 623
5533 __cil_tmp221 = *((__u32 *)__cil_tmp220);
5534#line 623
5535 *((size_t *)__cil_tmp215) = (size_t )__cil_tmp221;
5536#line 624
5537 __cil_tmp222 = (unsigned long )(& ops) + 32;
5538#line 624
5539 *((size_t *)__cil_tmp222) = 0UL;
5540#line 625
5541 __cil_tmp223 = (unsigned long )(& ops) + 40;
5542#line 625
5543 *((uint32_t *)__cil_tmp223) = 1U;
5544#line 626
5545 __cil_tmp224 = (unsigned long )(& ops) + 48;
5546#line 626
5547 *((uint8_t **)__cil_tmp224) = (uint8_t *)0;
5548#line 627
5549 __cil_tmp225 = (unsigned long )(& ops) + 56;
5550#line 627
5551 *((uint8_t **)__cil_tmp225) = writebuf;
5552#line 628
5553 printk("<6>mtd_oobtest: attempting to write past end of device\n");
5554#line 629
5555 printk("<6>mtd_oobtest: an error is expected...\n");
5556#line 630
5557 __cil_tmp226 = (unsigned long )mtd;
5558#line 630
5559 __cil_tmp227 = __cil_tmp226 + 20;
5560#line 630
5561 __cil_tmp228 = *((uint32_t *)__cil_tmp227);
5562#line 630
5563 __cil_tmp229 = (uint64_t )__cil_tmp228;
5564#line 630
5565 __cil_tmp230 = (unsigned long )mtd;
5566#line 630
5567 __cil_tmp231 = __cil_tmp230 + 8;
5568#line 630
5569 __cil_tmp232 = *((uint64_t *)__cil_tmp231);
5570#line 630
5571 __cil_tmp233 = __cil_tmp232 - __cil_tmp229;
5572#line 630
5573 __cil_tmp234 = (loff_t )__cil_tmp233;
5574#line 630
5575 err = mtd_write_oob(mtd, __cil_tmp234, & ops);
5576 }
5577#line 631
5578 if (err != 0) {
5579 {
5580#line 632
5581 printk("<6>mtd_oobtest: error occurred as expected\n");
5582#line 633
5583 err = 0;
5584 }
5585 } else {
5586 {
5587#line 635
5588 printk("<6>mtd_oobtest: error: wrote past end of device\n");
5589#line 636
5590 errcnt = errcnt + 1;
5591 }
5592 }
5593 {
5594#line 640
5595 __cil_tmp235 = & ops;
5596#line 640
5597 *((unsigned int *)__cil_tmp235) = 1U;
5598#line 641
5599 __cil_tmp236 = (unsigned long )(& ops) + 8;
5600#line 641
5601 *((size_t *)__cil_tmp236) = 0UL;
5602#line 642
5603 __cil_tmp237 = (unsigned long )(& ops) + 16;
5604#line 642
5605 *((size_t *)__cil_tmp237) = 0UL;
5606#line 643
5607 __cil_tmp238 = (unsigned long )(& ops) + 24;
5608#line 643
5609 __cil_tmp239 = (unsigned long )mtd;
5610#line 643
5611 __cil_tmp240 = __cil_tmp239 + 72;
5612#line 643
5613 __cil_tmp241 = *((struct nand_ecclayout **)__cil_tmp240);
5614#line 643
5615 __cil_tmp242 = (unsigned long )__cil_tmp241;
5616#line 643
5617 __cil_tmp243 = __cil_tmp242 + 1796;
5618#line 643
5619 __cil_tmp244 = *((__u32 *)__cil_tmp243);
5620#line 643
5621 *((size_t *)__cil_tmp238) = (size_t )__cil_tmp244;
5622#line 644
5623 __cil_tmp245 = (unsigned long )(& ops) + 32;
5624#line 644
5625 *((size_t *)__cil_tmp245) = 0UL;
5626#line 645
5627 __cil_tmp246 = (unsigned long )(& ops) + 40;
5628#line 645
5629 *((uint32_t *)__cil_tmp246) = 1U;
5630#line 646
5631 __cil_tmp247 = (unsigned long )(& ops) + 48;
5632#line 646
5633 *((uint8_t **)__cil_tmp247) = (uint8_t *)0;
5634#line 647
5635 __cil_tmp248 = (unsigned long )(& ops) + 56;
5636#line 647
5637 *((uint8_t **)__cil_tmp248) = readbuf;
5638#line 648
5639 printk("<6>mtd_oobtest: attempting to read past end of device\n");
5640#line 649
5641 printk("<6>mtd_oobtest: an error is expected...\n");
5642#line 650
5643 __cil_tmp249 = (unsigned long )mtd;
5644#line 650
5645 __cil_tmp250 = __cil_tmp249 + 20;
5646#line 650
5647 __cil_tmp251 = *((uint32_t *)__cil_tmp250);
5648#line 650
5649 __cil_tmp252 = (uint64_t )__cil_tmp251;
5650#line 650
5651 __cil_tmp253 = (unsigned long )mtd;
5652#line 650
5653 __cil_tmp254 = __cil_tmp253 + 8;
5654#line 650
5655 __cil_tmp255 = *((uint64_t *)__cil_tmp254);
5656#line 650
5657 __cil_tmp256 = __cil_tmp255 - __cil_tmp252;
5658#line 650
5659 __cil_tmp257 = (loff_t )__cil_tmp256;
5660#line 650
5661 err = mtd_read_oob(mtd, __cil_tmp257, & ops);
5662 }
5663#line 651
5664 if (err != 0) {
5665 {
5666#line 652
5667 printk("<6>mtd_oobtest: error occurred as expected\n");
5668#line 653
5669 err = 0;
5670 }
5671 } else {
5672 {
5673#line 655
5674 printk("<6>mtd_oobtest: error: read past end of device\n");
5675#line 656
5676 errcnt = errcnt + 1;
5677 }
5678 }
5679 }
5680 }
5681 {
5682#line 661
5683 printk("<6>mtd_oobtest: test 5 of 5\n");
5684#line 664
5685 err = erase_whole_device();
5686 }
5687#line 665
5688 if (err != 0) {
5689#line 666
5690 goto out;
5691 } else {
5692
5693 }
5694 {
5695#line 669
5696 simple_srand(11UL);
5697#line 670
5698 printk("<6>mtd_oobtest: writing OOBs of whole device\n");
5699#line 671
5700 i = 0U;
5701 }
5702#line 671
5703 goto ldv_18788;
5704 ldv_18787:
5705#line 672
5706 cnt = 2;
5707#line 674
5708 __cil_tmp258 = (unsigned long )mtd;
5709#line 674
5710 __cil_tmp259 = __cil_tmp258 + 72;
5711#line 674
5712 __cil_tmp260 = *((struct nand_ecclayout **)__cil_tmp259);
5713#line 674
5714 __cil_tmp261 = (unsigned long )__cil_tmp260;
5715#line 674
5716 __cil_tmp262 = __cil_tmp261 + 1796;
5717#line 674
5718 __cil_tmp263 = *((__u32 *)__cil_tmp262);
5719#line 674
5720 sz = (size_t )__cil_tmp263;
5721 {
5722#line 675
5723 __cil_tmp264 = (unsigned long )i;
5724#line 675
5725 __cil_tmp265 = bbt + __cil_tmp264;
5726#line 675
5727 __cil_tmp266 = *__cil_tmp265;
5728#line 675
5729 __cil_tmp267 = (unsigned int )__cil_tmp266;
5730#line 675
5731 if (__cil_tmp267 != 0U) {
5732#line 676
5733 goto ldv_18782;
5734 } else {
5735 {
5736#line 675
5737 __cil_tmp268 = i + 1U;
5738#line 675
5739 __cil_tmp269 = (unsigned long )__cil_tmp268;
5740#line 675
5741 __cil_tmp270 = bbt + __cil_tmp269;
5742#line 675
5743 __cil_tmp271 = *__cil_tmp270;
5744#line 675
5745 __cil_tmp272 = (unsigned int )__cil_tmp271;
5746#line 675
5747 if (__cil_tmp272 != 0U) {
5748#line 676
5749 goto ldv_18782;
5750 } else {
5751
5752 }
5753 }
5754 }
5755 }
5756#line 677
5757 __cil_tmp273 = (unsigned long )mtd;
5758#line 677
5759 __cil_tmp274 = __cil_tmp273 + 20;
5760#line 677
5761 __cil_tmp275 = *((uint32_t *)__cil_tmp274);
5762#line 677
5763 __cil_tmp276 = (unsigned long )mtd;
5764#line 677
5765 __cil_tmp277 = __cil_tmp276 + 16;
5766#line 677
5767 __cil_tmp278 = *((uint32_t *)__cil_tmp277);
5768#line 677
5769 __cil_tmp279 = i + 1U;
5770#line 677
5771 __cil_tmp280 = __cil_tmp279 * __cil_tmp278;
5772#line 677
5773 __cil_tmp281 = __cil_tmp280 - __cil_tmp275;
5774#line 677
5775 addr = (loff_t )__cil_tmp281;
5776#line 678
5777 pg = 0;
5778#line 678
5779 goto ldv_18785;
5780 ldv_18784:
5781 {
5782#line 679
5783 set_random_data(writebuf, sz);
5784#line 680
5785 __cil_tmp282 = & ops;
5786#line 680
5787 *((unsigned int *)__cil_tmp282) = 1U;
5788#line 681
5789 __cil_tmp283 = (unsigned long )(& ops) + 8;
5790#line 681
5791 *((size_t *)__cil_tmp283) = 0UL;
5792#line 682
5793 __cil_tmp284 = (unsigned long )(& ops) + 16;
5794#line 682
5795 *((size_t *)__cil_tmp284) = 0UL;
5796#line 683
5797 __cil_tmp285 = (unsigned long )(& ops) + 24;
5798#line 683
5799 *((size_t *)__cil_tmp285) = sz;
5800#line 684
5801 __cil_tmp286 = (unsigned long )(& ops) + 32;
5802#line 684
5803 *((size_t *)__cil_tmp286) = 0UL;
5804#line 685
5805 __cil_tmp287 = (unsigned long )(& ops) + 40;
5806#line 685
5807 *((uint32_t *)__cil_tmp287) = 0U;
5808#line 686
5809 __cil_tmp288 = (unsigned long )(& ops) + 48;
5810#line 686
5811 *((uint8_t **)__cil_tmp288) = (uint8_t *)0;
5812#line 687
5813 __cil_tmp289 = (unsigned long )(& ops) + 56;
5814#line 687
5815 *((uint8_t **)__cil_tmp289) = writebuf;
5816#line 688
5817 err = mtd_write_oob(mtd, addr, & ops);
5818 }
5819#line 689
5820 if (err != 0) {
5821#line 690
5822 goto out;
5823 } else {
5824
5825 }
5826 {
5827#line 691
5828 __cil_tmp290 = i & 255U;
5829#line 691
5830 if (__cil_tmp290 == 0U) {
5831 {
5832#line 692
5833 printk("<6>mtd_oobtest: written up to eraseblock %u\n", i);
5834 }
5835 } else {
5836
5837 }
5838 }
5839 {
5840#line 694
5841 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
5842 694, 0);
5843#line 694
5844 _cond_resched();
5845#line 695
5846 __cil_tmp291 = (unsigned long )mtd;
5847#line 695
5848 __cil_tmp292 = __cil_tmp291 + 20;
5849#line 695
5850 __cil_tmp293 = *((uint32_t *)__cil_tmp292);
5851#line 695
5852 __cil_tmp294 = (loff_t )__cil_tmp293;
5853#line 695
5854 addr = __cil_tmp294 + addr;
5855#line 678
5856 pg = pg + 1;
5857 }
5858 ldv_18785: ;
5859#line 678
5860 if (pg < cnt) {
5861#line 679
5862 goto ldv_18784;
5863 } else {
5864#line 681
5865 goto ldv_18786;
5866 }
5867 ldv_18786: ;
5868 ldv_18782:
5869#line 671
5870 i = i + 1U;
5871 ldv_18788: ;
5872 {
5873#line 671
5874 __cil_tmp295 = ebcnt + -1;
5875#line 671
5876 __cil_tmp296 = (unsigned int )__cil_tmp295;
5877#line 671
5878 if (__cil_tmp296 > i) {
5879#line 672
5880 goto ldv_18787;
5881 } else {
5882#line 674
5883 goto ldv_18789;
5884 }
5885 }
5886 ldv_18789:
5887 {
5888#line 698
5889 printk("<6>mtd_oobtest: written %u eraseblocks\n", i);
5890#line 701
5891 simple_srand(11UL);
5892#line 702
5893 printk("<6>mtd_oobtest: verifying all eraseblocks\n");
5894#line 703
5895 i = 0U;
5896 }
5897#line 703
5898 goto ldv_18793;
5899 ldv_18792: ;
5900 {
5901#line 704
5902 __cil_tmp297 = (unsigned long )i;
5903#line 704
5904 __cil_tmp298 = bbt + __cil_tmp297;
5905#line 704
5906 __cil_tmp299 = *__cil_tmp298;
5907#line 704
5908 __cil_tmp300 = (unsigned int )__cil_tmp299;
5909#line 704
5910 if (__cil_tmp300 != 0U) {
5911#line 705
5912 goto ldv_18790;
5913 } else {
5914 {
5915#line 704
5916 __cil_tmp301 = i + 1U;
5917#line 704
5918 __cil_tmp302 = (unsigned long )__cil_tmp301;
5919#line 704
5920 __cil_tmp303 = bbt + __cil_tmp302;
5921#line 704
5922 __cil_tmp304 = *__cil_tmp303;
5923#line 704
5924 __cil_tmp305 = (unsigned int )__cil_tmp304;
5925#line 704
5926 if (__cil_tmp305 != 0U) {
5927#line 705
5928 goto ldv_18790;
5929 } else {
5930
5931 }
5932 }
5933 }
5934 }
5935 {
5936#line 706
5937 __cil_tmp306 = (unsigned long )mtd;
5938#line 706
5939 __cil_tmp307 = __cil_tmp306 + 72;
5940#line 706
5941 __cil_tmp308 = *((struct nand_ecclayout **)__cil_tmp307);
5942#line 706
5943 __cil_tmp309 = (unsigned long )__cil_tmp308;
5944#line 706
5945 __cil_tmp310 = __cil_tmp309 + 1796;
5946#line 706
5947 __cil_tmp311 = *((__u32 *)__cil_tmp310);
5948#line 706
5949 __cil_tmp312 = __cil_tmp311 * 2U;
5950#line 706
5951 __cil_tmp313 = (size_t )__cil_tmp312;
5952#line 706
5953 set_random_data(writebuf, __cil_tmp313);
5954#line 707
5955 __cil_tmp314 = (unsigned long )mtd;
5956#line 707
5957 __cil_tmp315 = __cil_tmp314 + 20;
5958#line 707
5959 __cil_tmp316 = *((uint32_t *)__cil_tmp315);
5960#line 707
5961 __cil_tmp317 = (unsigned long )mtd;
5962#line 707
5963 __cil_tmp318 = __cil_tmp317 + 16;
5964#line 707
5965 __cil_tmp319 = *((uint32_t *)__cil_tmp318);
5966#line 707
5967 __cil_tmp320 = i + 1U;
5968#line 707
5969 __cil_tmp321 = __cil_tmp320 * __cil_tmp319;
5970#line 707
5971 __cil_tmp322 = __cil_tmp321 - __cil_tmp316;
5972#line 707
5973 addr = (loff_t )__cil_tmp322;
5974#line 708
5975 __cil_tmp323 = & ops;
5976#line 708
5977 *((unsigned int *)__cil_tmp323) = 1U;
5978#line 709
5979 __cil_tmp324 = (unsigned long )(& ops) + 8;
5980#line 709
5981 *((size_t *)__cil_tmp324) = 0UL;
5982#line 710
5983 __cil_tmp325 = (unsigned long )(& ops) + 16;
5984#line 710
5985 *((size_t *)__cil_tmp325) = 0UL;
5986#line 711
5987 __cil_tmp326 = (unsigned long )(& ops) + 24;
5988#line 711
5989 __cil_tmp327 = (unsigned long )mtd;
5990#line 711
5991 __cil_tmp328 = __cil_tmp327 + 72;
5992#line 711
5993 __cil_tmp329 = *((struct nand_ecclayout **)__cil_tmp328);
5994#line 711
5995 __cil_tmp330 = (unsigned long )__cil_tmp329;
5996#line 711
5997 __cil_tmp331 = __cil_tmp330 + 1796;
5998#line 711
5999 __cil_tmp332 = *((__u32 *)__cil_tmp331);
6000#line 711
6001 __cil_tmp333 = __cil_tmp332 * 2U;
6002#line 711
6003 *((size_t *)__cil_tmp326) = (size_t )__cil_tmp333;
6004#line 712
6005 __cil_tmp334 = (unsigned long )(& ops) + 32;
6006#line 712
6007 *((size_t *)__cil_tmp334) = 0UL;
6008#line 713
6009 __cil_tmp335 = (unsigned long )(& ops) + 40;
6010#line 713
6011 *((uint32_t *)__cil_tmp335) = 0U;
6012#line 714
6013 __cil_tmp336 = (unsigned long )(& ops) + 48;
6014#line 714
6015 *((uint8_t **)__cil_tmp336) = (uint8_t *)0;
6016#line 715
6017 __cil_tmp337 = (unsigned long )(& ops) + 56;
6018#line 715
6019 *((uint8_t **)__cil_tmp337) = readbuf;
6020#line 716
6021 err = mtd_read_oob(mtd, addr, & ops);
6022 }
6023#line 717
6024 if (err != 0) {
6025#line 718
6026 goto out;
6027 } else {
6028
6029 }
6030 {
6031#line 719
6032 __cil_tmp338 = (void const *)readbuf;
6033#line 719
6034 __cil_tmp339 = (void const *)writebuf;
6035#line 719
6036 __cil_tmp340 = (unsigned long )mtd;
6037#line 719
6038 __cil_tmp341 = __cil_tmp340 + 72;
6039#line 719
6040 __cil_tmp342 = *((struct nand_ecclayout **)__cil_tmp341);
6041#line 719
6042 __cil_tmp343 = (unsigned long )__cil_tmp342;
6043#line 719
6044 __cil_tmp344 = __cil_tmp343 + 1796;
6045#line 719
6046 __cil_tmp345 = *((__u32 *)__cil_tmp344);
6047#line 719
6048 __cil_tmp346 = __cil_tmp345 * 2U;
6049#line 719
6050 __cil_tmp347 = (size_t )__cil_tmp346;
6051#line 719
6052 tmp___4 = memcmp(__cil_tmp338, __cil_tmp339, __cil_tmp347);
6053 }
6054#line 719
6055 if (tmp___4 != 0) {
6056 {
6057#line 720
6058 printk("<6>mtd_oobtest: error: verify failed at %#llx\n", addr);
6059#line 722
6060 errcnt = errcnt + 1;
6061 }
6062#line 723
6063 if (errcnt > 1000) {
6064 {
6065#line 724
6066 printk("<6>mtd_oobtest: error: too many errors\n");
6067 }
6068#line 725
6069 goto out;
6070 } else {
6071
6072 }
6073 } else {
6074
6075 }
6076 {
6077#line 728
6078 __cil_tmp348 = i & 255U;
6079#line 728
6080 if (__cil_tmp348 == 0U) {
6081 {
6082#line 729
6083 printk("<6>mtd_oobtest: verified up to eraseblock %u\n", i);
6084 }
6085 } else {
6086
6087 }
6088 }
6089 {
6090#line 730
6091 __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p",
6092 730, 0);
6093#line 730
6094 _cond_resched();
6095 }
6096 ldv_18790:
6097#line 703
6098 i = i + 1U;
6099 ldv_18793: ;
6100 {
6101#line 703
6102 __cil_tmp349 = ebcnt + -1;
6103#line 703
6104 __cil_tmp350 = (unsigned int )__cil_tmp349;
6105#line 703
6106 if (__cil_tmp350 > i) {
6107#line 704
6108 goto ldv_18792;
6109 } else {
6110#line 706
6111 goto ldv_18794;
6112 }
6113 }
6114 ldv_18794:
6115 {
6116#line 732
6117 printk("<6>mtd_oobtest: verified %u eraseblocks\n", i);
6118#line 734
6119 printk("<6>mtd_oobtest: finished with %d errors\n", errcnt);
6120 }
6121 out:
6122 {
6123#line 736
6124 __cil_tmp351 = (void const *)bbt;
6125#line 736
6126 kfree(__cil_tmp351);
6127#line 737
6128 __cil_tmp352 = (void const *)writebuf;
6129#line 737
6130 kfree(__cil_tmp352);
6131#line 738
6132 __cil_tmp353 = (void const *)readbuf;
6133#line 738
6134 kfree(__cil_tmp353);
6135#line 739
6136 put_mtd_device(mtd);
6137 }
6138#line 740
6139 if (err != 0) {
6140 {
6141#line 741
6142 printk("<6>mtd_oobtest: error %d occurred\n", err);
6143 }
6144 } else {
6145
6146 }
6147 {
6148#line 742
6149 printk("<6>=================================================\n");
6150 }
6151#line 743
6152 return (err);
6153}
6154}
6155#line 747 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6156static void mtd_oobtest_exit(void)
6157{
6158
6159 {
6160#line 749
6161 return;
6162}
6163}
6164#line 773
6165extern void ldv_check_final_state(void) ;
6166#line 779
6167extern void ldv_initialize(void) ;
6168#line 782
6169extern int __VERIFIER_nondet_int(void) ;
6170#line 785 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6171int LDV_IN_INTERRUPT ;
6172#line 788 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6173void main(void)
6174{ int tmp ;
6175 int tmp___0 ;
6176 int tmp___1 ;
6177
6178 {
6179 {
6180#line 800
6181 LDV_IN_INTERRUPT = 1;
6182#line 809
6183 ldv_initialize();
6184#line 817
6185 tmp = mtd_oobtest_init();
6186 }
6187#line 817
6188 if (tmp != 0) {
6189#line 818
6190 goto ldv_final;
6191 } else {
6192
6193 }
6194#line 820
6195 goto ldv_18827;
6196 ldv_18826:
6197 {
6198#line 823
6199 tmp___0 = __VERIFIER_nondet_int();
6200 }
6201 {
6202#line 825
6203 goto switch_default;
6204#line 823
6205 if (0) {
6206 switch_default: ;
6207#line 825
6208 goto ldv_18825;
6209 } else {
6210 switch_break: ;
6211 }
6212 }
6213 ldv_18825: ;
6214 ldv_18827:
6215 {
6216#line 820
6217 tmp___1 = __VERIFIER_nondet_int();
6218 }
6219#line 820
6220 if (tmp___1 != 0) {
6221#line 821
6222 goto ldv_18826;
6223 } else {
6224#line 823
6225 goto ldv_18828;
6226 }
6227 ldv_18828: ;
6228 {
6229#line 839
6230 mtd_oobtest_exit();
6231 }
6232 ldv_final:
6233 {
6234#line 842
6235 ldv_check_final_state();
6236 }
6237#line 845
6238 return;
6239}
6240}
6241#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
6242void ldv_blast_assert(void)
6243{
6244
6245 {
6246 ERROR: ;
6247#line 6
6248 goto ERROR;
6249}
6250}
6251#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
6252extern int __VERIFIER_nondet_int(void) ;
6253#line 866 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6254int ldv_spin = 0;
6255#line 870 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6256void ldv_check_alloc_flags(gfp_t flags )
6257{
6258
6259 {
6260#line 873
6261 if (ldv_spin != 0) {
6262#line 873
6263 if (flags != 32U) {
6264 {
6265#line 873
6266 ldv_blast_assert();
6267 }
6268 } else {
6269
6270 }
6271 } else {
6272
6273 }
6274#line 876
6275 return;
6276}
6277}
6278#line 876
6279extern struct page *ldv_some_page(void) ;
6280#line 879 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6281struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags )
6282{ struct page *tmp ;
6283
6284 {
6285#line 882
6286 if (ldv_spin != 0) {
6287#line 882
6288 if (flags != 32U) {
6289 {
6290#line 882
6291 ldv_blast_assert();
6292 }
6293 } else {
6294
6295 }
6296 } else {
6297
6298 }
6299 {
6300#line 884
6301 tmp = ldv_some_page();
6302 }
6303#line 884
6304 return (tmp);
6305}
6306}
6307#line 888 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6308void ldv_check_alloc_nonatomic(void)
6309{
6310
6311 {
6312#line 891
6313 if (ldv_spin != 0) {
6314 {
6315#line 891
6316 ldv_blast_assert();
6317 }
6318 } else {
6319
6320 }
6321#line 894
6322 return;
6323}
6324}
6325#line 895 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6326void ldv_spin_lock(void)
6327{
6328
6329 {
6330#line 898
6331 ldv_spin = 1;
6332#line 899
6333 return;
6334}
6335}
6336#line 902 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6337void ldv_spin_unlock(void)
6338{
6339
6340 {
6341#line 905
6342 ldv_spin = 0;
6343#line 906
6344 return;
6345}
6346}
6347#line 909 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6348int ldv_spin_trylock(void)
6349{ int is_lock ;
6350
6351 {
6352 {
6353#line 914
6354 is_lock = __VERIFIER_nondet_int();
6355 }
6356#line 916
6357 if (is_lock != 0) {
6358#line 919
6359 return (0);
6360 } else {
6361#line 924
6362 ldv_spin = 1;
6363#line 926
6364 return (1);
6365 }
6366}
6367}
6368#line 1048 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6369__inline static void *kmalloc(size_t size , gfp_t flags )
6370{
6371
6372 {
6373 {
6374#line 1054
6375 ldv_check_alloc_flags(flags);
6376#line 1056
6377 ldv_kmalloc_12(size, flags);
6378 }
6379#line 1057
6380 return ((void *)0);
6381}
6382}
6383#line 1093 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11603/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_oobtest.c.p"
6384void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 )
6385{
6386
6387 {
6388 {
6389#line 1099
6390 ldv_check_alloc_flags(ldv_func_arg2);
6391#line 1101
6392 kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
6393 }
6394#line 1102
6395 return ((void *)0);
6396}
6397}