1
2
3
4#line 19 "include/asm-generic/int-ll64.h"
5typedef signed char __s8;
6#line 20 "include/asm-generic/int-ll64.h"
7typedef unsigned char __u8;
8#line 22 "include/asm-generic/int-ll64.h"
9typedef short __s16;
10#line 23 "include/asm-generic/int-ll64.h"
11typedef unsigned short __u16;
12#line 25 "include/asm-generic/int-ll64.h"
13typedef int __s32;
14#line 26 "include/asm-generic/int-ll64.h"
15typedef unsigned int __u32;
16#line 29 "include/asm-generic/int-ll64.h"
17typedef long long __s64;
18#line 30 "include/asm-generic/int-ll64.h"
19typedef unsigned long long __u64;
20#line 43 "include/asm-generic/int-ll64.h"
21typedef unsigned char u8;
22#line 45 "include/asm-generic/int-ll64.h"
23typedef short s16;
24#line 46 "include/asm-generic/int-ll64.h"
25typedef unsigned short u16;
26#line 48 "include/asm-generic/int-ll64.h"
27typedef int s32;
28#line 49 "include/asm-generic/int-ll64.h"
29typedef unsigned int u32;
30#line 51 "include/asm-generic/int-ll64.h"
31typedef long long s64;
32#line 52 "include/asm-generic/int-ll64.h"
33typedef unsigned long long u64;
34#line 14 "include/asm-generic/posix_types.h"
35typedef long __kernel_long_t;
36#line 15 "include/asm-generic/posix_types.h"
37typedef unsigned long __kernel_ulong_t;
38#line 31 "include/asm-generic/posix_types.h"
39typedef int __kernel_pid_t;
40#line 52 "include/asm-generic/posix_types.h"
41typedef unsigned int __kernel_uid32_t;
42#line 53 "include/asm-generic/posix_types.h"
43typedef unsigned int __kernel_gid32_t;
44#line 75 "include/asm-generic/posix_types.h"
45typedef __kernel_ulong_t __kernel_size_t;
46#line 76 "include/asm-generic/posix_types.h"
47typedef __kernel_long_t __kernel_ssize_t;
48#line 91 "include/asm-generic/posix_types.h"
49typedef long long __kernel_loff_t;
50#line 92 "include/asm-generic/posix_types.h"
51typedef __kernel_long_t __kernel_time_t;
52#line 93 "include/asm-generic/posix_types.h"
53typedef __kernel_long_t __kernel_clock_t;
54#line 94 "include/asm-generic/posix_types.h"
55typedef int __kernel_timer_t;
56#line 95 "include/asm-generic/posix_types.h"
57typedef int __kernel_clockid_t;
58#line 96 "include/asm-generic/posix_types.h"
59typedef char *__kernel_caddr_t;
60#line 21 "include/linux/types.h"
61typedef __u32 __kernel_dev_t;
62#line 24 "include/linux/types.h"
63typedef __kernel_dev_t dev_t;
64#line 27 "include/linux/types.h"
65typedef unsigned short umode_t;
66#line 30 "include/linux/types.h"
67typedef __kernel_pid_t pid_t;
68#line 35 "include/linux/types.h"
69typedef __kernel_clockid_t clockid_t;
70#line 38 "include/linux/types.h"
71typedef _Bool bool;
72#line 40 "include/linux/types.h"
73typedef __kernel_uid32_t uid_t;
74#line 41 "include/linux/types.h"
75typedef __kernel_gid32_t gid_t;
76#line 54 "include/linux/types.h"
77typedef __kernel_loff_t loff_t;
78#line 63 "include/linux/types.h"
79typedef __kernel_size_t size_t;
80#line 68 "include/linux/types.h"
81typedef __kernel_ssize_t ssize_t;
82#line 78 "include/linux/types.h"
83typedef __kernel_time_t time_t;
84#line 88 "include/linux/types.h"
85typedef __kernel_caddr_t *caddr_t;
86#line 92 "include/linux/types.h"
87typedef unsigned char u_char;
88#line 95 "include/linux/types.h"
89typedef unsigned long u_long;
90#line 111 "include/linux/types.h"
91typedef __s32 int32_t;
92#line 115 "include/linux/types.h"
93typedef __u8 uint8_t;
94#line 116 "include/linux/types.h"
95typedef __u16 uint16_t;
96#line 117 "include/linux/types.h"
97typedef __u32 uint32_t;
98#line 120 "include/linux/types.h"
99typedef __u64 uint64_t;
100#line 142 "include/linux/types.h"
101typedef unsigned long sector_t;
102#line 143 "include/linux/types.h"
103typedef unsigned long blkcnt_t;
104#line 202 "include/linux/types.h"
105typedef unsigned int gfp_t;
106#line 203 "include/linux/types.h"
107typedef unsigned int fmode_t;
108#line 206 "include/linux/types.h"
109typedef u64 phys_addr_t;
110#line 211 "include/linux/types.h"
111typedef phys_addr_t resource_size_t;
112#line 221 "include/linux/types.h"
113struct __anonstruct_atomic_t_6 {
114 int counter ;
115};
116#line 221 "include/linux/types.h"
117typedef struct __anonstruct_atomic_t_6 atomic_t;
118#line 226 "include/linux/types.h"
119struct __anonstruct_atomic64_t_7 {
120 long counter ;
121};
122#line 226 "include/linux/types.h"
123typedef struct __anonstruct_atomic64_t_7 atomic64_t;
124#line 227 "include/linux/types.h"
125struct list_head {
126 struct list_head *next ;
127 struct list_head *prev ;
128};
129#line 232
130struct hlist_node;
131#line 232 "include/linux/types.h"
132struct hlist_head {
133 struct hlist_node *first ;
134};
135#line 236 "include/linux/types.h"
136struct hlist_node {
137 struct hlist_node *next ;
138 struct hlist_node **pprev ;
139};
140#line 247 "include/linux/types.h"
141struct rcu_head {
142 struct rcu_head *next ;
143 void (*func)(struct rcu_head * ) ;
144};
145#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
146struct module;
147#line 55
148struct module;
149#line 146 "include/linux/init.h"
150typedef void (*ctor_fn_t)(void);
151#line 305 "include/linux/printk.h"
152struct _ddebug {
153 char const *modname ;
154 char const *function ;
155 char const *filename ;
156 char const *format ;
157 unsigned int lineno : 18 ;
158 unsigned char flags ;
159};
160#line 46 "include/linux/dynamic_debug.h"
161struct device;
162#line 46
163struct device;
164#line 57
165struct completion;
166#line 57
167struct completion;
168#line 58
169struct pt_regs;
170#line 58
171struct pt_regs;
172#line 348 "include/linux/kernel.h"
173struct pid;
174#line 348
175struct pid;
176#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
177struct timespec;
178#line 112
179struct timespec;
180#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
181struct page;
182#line 58
183struct page;
184#line 26 "include/asm-generic/getorder.h"
185struct task_struct;
186#line 26
187struct task_struct;
188#line 28
189struct mm_struct;
190#line 28
191struct mm_struct;
192#line 268 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/segment.h"
193struct pt_regs {
194 unsigned long r15 ;
195 unsigned long r14 ;
196 unsigned long r13 ;
197 unsigned long r12 ;
198 unsigned long bp ;
199 unsigned long bx ;
200 unsigned long r11 ;
201 unsigned long r10 ;
202 unsigned long r9 ;
203 unsigned long r8 ;
204 unsigned long ax ;
205 unsigned long cx ;
206 unsigned long dx ;
207 unsigned long si ;
208 unsigned long di ;
209 unsigned long orig_ax ;
210 unsigned long ip ;
211 unsigned long cs ;
212 unsigned long flags ;
213 unsigned long sp ;
214 unsigned long ss ;
215};
216#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
217struct __anonstruct_ldv_2180_13 {
218 unsigned int a ;
219 unsigned int b ;
220};
221#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
222struct __anonstruct_ldv_2195_14 {
223 u16 limit0 ;
224 u16 base0 ;
225 unsigned char base1 ;
226 unsigned char type : 4 ;
227 unsigned char s : 1 ;
228 unsigned char dpl : 2 ;
229 unsigned char p : 1 ;
230 unsigned char limit : 4 ;
231 unsigned char avl : 1 ;
232 unsigned char l : 1 ;
233 unsigned char d : 1 ;
234 unsigned char g : 1 ;
235 unsigned char base2 ;
236};
237#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
238union __anonunion_ldv_2196_12 {
239 struct __anonstruct_ldv_2180_13 ldv_2180 ;
240 struct __anonstruct_ldv_2195_14 ldv_2195 ;
241};
242#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
243struct desc_struct {
244 union __anonunion_ldv_2196_12 ldv_2196 ;
245};
246#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
247typedef unsigned long pgdval_t;
248#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
249typedef unsigned long pgprotval_t;
250#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
251struct pgprot {
252 pgprotval_t pgprot ;
253};
254#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
255typedef struct pgprot pgprot_t;
256#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
257struct __anonstruct_pgd_t_16 {
258 pgdval_t pgd ;
259};
260#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
261typedef struct __anonstruct_pgd_t_16 pgd_t;
262#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
263typedef struct page *pgtable_t;
264#line 290
265struct file;
266#line 290
267struct file;
268#line 305
269struct seq_file;
270#line 305
271struct seq_file;
272#line 337
273struct thread_struct;
274#line 337
275struct thread_struct;
276#line 339
277struct cpumask;
278#line 339
279struct cpumask;
280#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
281struct arch_spinlock;
282#line 327
283struct arch_spinlock;
284#line 300 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
285struct kernel_vm86_regs {
286 struct pt_regs pt ;
287 unsigned short es ;
288 unsigned short __esh ;
289 unsigned short ds ;
290 unsigned short __dsh ;
291 unsigned short fs ;
292 unsigned short __fsh ;
293 unsigned short gs ;
294 unsigned short __gsh ;
295};
296#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
297union __anonunion_ldv_2824_19 {
298 struct pt_regs *regs ;
299 struct kernel_vm86_regs *vm86 ;
300};
301#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
302struct math_emu_info {
303 long ___orig_eip ;
304 union __anonunion_ldv_2824_19 ldv_2824 ;
305};
306#line 306 "include/linux/bitmap.h"
307struct bug_entry {
308 int bug_addr_disp ;
309 int file_disp ;
310 unsigned short line ;
311 unsigned short flags ;
312};
313#line 89 "include/linux/bug.h"
314struct cpumask {
315 unsigned long bits[64U] ;
316};
317#line 14 "include/linux/cpumask.h"
318typedef struct cpumask cpumask_t;
319#line 637 "include/linux/cpumask.h"
320typedef struct cpumask *cpumask_var_t;
321#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
322struct static_key;
323#line 234
324struct static_key;
325#line 287 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
326struct i387_fsave_struct {
327 u32 cwd ;
328 u32 swd ;
329 u32 twd ;
330 u32 fip ;
331 u32 fcs ;
332 u32 foo ;
333 u32 fos ;
334 u32 st_space[20U] ;
335 u32 status ;
336};
337#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
338struct __anonstruct_ldv_5180_24 {
339 u64 rip ;
340 u64 rdp ;
341};
342#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
343struct __anonstruct_ldv_5186_25 {
344 u32 fip ;
345 u32 fcs ;
346 u32 foo ;
347 u32 fos ;
348};
349#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
350union __anonunion_ldv_5187_23 {
351 struct __anonstruct_ldv_5180_24 ldv_5180 ;
352 struct __anonstruct_ldv_5186_25 ldv_5186 ;
353};
354#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
355union __anonunion_ldv_5196_26 {
356 u32 padding1[12U] ;
357 u32 sw_reserved[12U] ;
358};
359#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
360struct i387_fxsave_struct {
361 u16 cwd ;
362 u16 swd ;
363 u16 twd ;
364 u16 fop ;
365 union __anonunion_ldv_5187_23 ldv_5187 ;
366 u32 mxcsr ;
367 u32 mxcsr_mask ;
368 u32 st_space[32U] ;
369 u32 xmm_space[64U] ;
370 u32 padding[12U] ;
371 union __anonunion_ldv_5196_26 ldv_5196 ;
372};
373#line 339 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
374struct i387_soft_struct {
375 u32 cwd ;
376 u32 swd ;
377 u32 twd ;
378 u32 fip ;
379 u32 fcs ;
380 u32 foo ;
381 u32 fos ;
382 u32 st_space[20U] ;
383 u8 ftop ;
384 u8 changed ;
385 u8 lookahead ;
386 u8 no_update ;
387 u8 rm ;
388 u8 alimit ;
389 struct math_emu_info *info ;
390 u32 entry_eip ;
391};
392#line 360 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
393struct ymmh_struct {
394 u32 ymmh_space[64U] ;
395};
396#line 365 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
397struct xsave_hdr_struct {
398 u64 xstate_bv ;
399 u64 reserved1[2U] ;
400 u64 reserved2[5U] ;
401};
402#line 371 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
403struct xsave_struct {
404 struct i387_fxsave_struct i387 ;
405 struct xsave_hdr_struct xsave_hdr ;
406 struct ymmh_struct ymmh ;
407};
408#line 377 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
409union thread_xstate {
410 struct i387_fsave_struct fsave ;
411 struct i387_fxsave_struct fxsave ;
412 struct i387_soft_struct soft ;
413 struct xsave_struct xsave ;
414};
415#line 385 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
416struct fpu {
417 unsigned int last_cpu ;
418 unsigned int has_fpu ;
419 union thread_xstate *state ;
420};
421#line 433
422struct kmem_cache;
423#line 434
424struct perf_event;
425#line 434
426struct perf_event;
427#line 435 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
428struct thread_struct {
429 struct desc_struct tls_array[3U] ;
430 unsigned long sp0 ;
431 unsigned long sp ;
432 unsigned long usersp ;
433 unsigned short es ;
434 unsigned short ds ;
435 unsigned short fsindex ;
436 unsigned short gsindex ;
437 unsigned long fs ;
438 unsigned long gs ;
439 struct perf_event *ptrace_bps[4U] ;
440 unsigned long debugreg6 ;
441 unsigned long ptrace_dr7 ;
442 unsigned long cr2 ;
443 unsigned long trap_nr ;
444 unsigned long error_code ;
445 struct fpu fpu ;
446 unsigned long *io_bitmap_ptr ;
447 unsigned long iopl ;
448 unsigned int io_bitmap_max ;
449};
450#line 23 "include/asm-generic/atomic-long.h"
451typedef atomic64_t atomic_long_t;
452#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
453typedef u16 __ticket_t;
454#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
455typedef u32 __ticketpair_t;
456#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
457struct __raw_tickets {
458 __ticket_t head ;
459 __ticket_t tail ;
460};
461#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
462union __anonunion_ldv_5907_29 {
463 __ticketpair_t head_tail ;
464 struct __raw_tickets tickets ;
465};
466#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
467struct arch_spinlock {
468 union __anonunion_ldv_5907_29 ldv_5907 ;
469};
470#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
471typedef struct arch_spinlock arch_spinlock_t;
472#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
473struct __anonstruct_ldv_5914_31 {
474 u32 read ;
475 s32 write ;
476};
477#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
478union __anonunion_arch_rwlock_t_30 {
479 s64 lock ;
480 struct __anonstruct_ldv_5914_31 ldv_5914 ;
481};
482#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
483typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
484#line 34
485struct lockdep_map;
486#line 34
487struct lockdep_map;
488#line 55 "include/linux/debug_locks.h"
489struct stack_trace {
490 unsigned int nr_entries ;
491 unsigned int max_entries ;
492 unsigned long *entries ;
493 int skip ;
494};
495#line 26 "include/linux/stacktrace.h"
496struct lockdep_subclass_key {
497 char __one_byte ;
498};
499#line 53 "include/linux/lockdep.h"
500struct lock_class_key {
501 struct lockdep_subclass_key subkeys[8U] ;
502};
503#line 59 "include/linux/lockdep.h"
504struct lock_class {
505 struct list_head hash_entry ;
506 struct list_head lock_entry ;
507 struct lockdep_subclass_key *key ;
508 unsigned int subclass ;
509 unsigned int dep_gen_id ;
510 unsigned long usage_mask ;
511 struct stack_trace usage_traces[13U] ;
512 struct list_head locks_after ;
513 struct list_head locks_before ;
514 unsigned int version ;
515 unsigned long ops ;
516 char const *name ;
517 int name_version ;
518 unsigned long contention_point[4U] ;
519 unsigned long contending_point[4U] ;
520};
521#line 144 "include/linux/lockdep.h"
522struct lockdep_map {
523 struct lock_class_key *key ;
524 struct lock_class *class_cache[2U] ;
525 char const *name ;
526 int cpu ;
527 unsigned long ip ;
528};
529#line 187 "include/linux/lockdep.h"
530struct held_lock {
531 u64 prev_chain_key ;
532 unsigned long acquire_ip ;
533 struct lockdep_map *instance ;
534 struct lockdep_map *nest_lock ;
535 u64 waittime_stamp ;
536 u64 holdtime_stamp ;
537 unsigned short class_idx : 13 ;
538 unsigned char irq_context : 2 ;
539 unsigned char trylock : 1 ;
540 unsigned char read : 2 ;
541 unsigned char check : 2 ;
542 unsigned char hardirqs_off : 1 ;
543 unsigned short references : 11 ;
544};
545#line 556 "include/linux/lockdep.h"
546struct raw_spinlock {
547 arch_spinlock_t raw_lock ;
548 unsigned int magic ;
549 unsigned int owner_cpu ;
550 void *owner ;
551 struct lockdep_map dep_map ;
552};
553#line 32 "include/linux/spinlock_types.h"
554typedef struct raw_spinlock raw_spinlock_t;
555#line 33 "include/linux/spinlock_types.h"
556struct __anonstruct_ldv_6122_33 {
557 u8 __padding[24U] ;
558 struct lockdep_map dep_map ;
559};
560#line 33 "include/linux/spinlock_types.h"
561union __anonunion_ldv_6123_32 {
562 struct raw_spinlock rlock ;
563 struct __anonstruct_ldv_6122_33 ldv_6122 ;
564};
565#line 33 "include/linux/spinlock_types.h"
566struct spinlock {
567 union __anonunion_ldv_6123_32 ldv_6123 ;
568};
569#line 76 "include/linux/spinlock_types.h"
570typedef struct spinlock spinlock_t;
571#line 23 "include/linux/rwlock_types.h"
572struct __anonstruct_rwlock_t_34 {
573 arch_rwlock_t raw_lock ;
574 unsigned int magic ;
575 unsigned int owner_cpu ;
576 void *owner ;
577 struct lockdep_map dep_map ;
578};
579#line 23 "include/linux/rwlock_types.h"
580typedef struct __anonstruct_rwlock_t_34 rwlock_t;
581#line 110 "include/linux/seqlock.h"
582struct seqcount {
583 unsigned int sequence ;
584};
585#line 121 "include/linux/seqlock.h"
586typedef struct seqcount seqcount_t;
587#line 254 "include/linux/seqlock.h"
588struct timespec {
589 __kernel_time_t tv_sec ;
590 long tv_nsec ;
591};
592#line 286 "include/linux/time.h"
593struct kstat {
594 u64 ino ;
595 dev_t dev ;
596 umode_t mode ;
597 unsigned int nlink ;
598 uid_t uid ;
599 gid_t gid ;
600 dev_t rdev ;
601 loff_t size ;
602 struct timespec atime ;
603 struct timespec mtime ;
604 struct timespec ctime ;
605 unsigned long blksize ;
606 unsigned long long blocks ;
607};
608#line 48 "include/linux/wait.h"
609struct __wait_queue_head {
610 spinlock_t lock ;
611 struct list_head task_list ;
612};
613#line 53 "include/linux/wait.h"
614typedef struct __wait_queue_head wait_queue_head_t;
615#line 98 "include/linux/nodemask.h"
616struct __anonstruct_nodemask_t_36 {
617 unsigned long bits[16U] ;
618};
619#line 98 "include/linux/nodemask.h"
620typedef struct __anonstruct_nodemask_t_36 nodemask_t;
621#line 670 "include/linux/mmzone.h"
622struct mutex {
623 atomic_t count ;
624 spinlock_t wait_lock ;
625 struct list_head wait_list ;
626 struct task_struct *owner ;
627 char const *name ;
628 void *magic ;
629 struct lockdep_map dep_map ;
630};
631#line 63 "include/linux/mutex.h"
632struct mutex_waiter {
633 struct list_head list ;
634 struct task_struct *task ;
635 void *magic ;
636};
637#line 171
638struct rw_semaphore;
639#line 171
640struct rw_semaphore;
641#line 172 "include/linux/mutex.h"
642struct rw_semaphore {
643 long count ;
644 raw_spinlock_t wait_lock ;
645 struct list_head wait_list ;
646 struct lockdep_map dep_map ;
647};
648#line 128 "include/linux/rwsem.h"
649struct completion {
650 unsigned int done ;
651 wait_queue_head_t wait ;
652};
653#line 188 "include/linux/rcupdate.h"
654struct notifier_block;
655#line 188
656struct notifier_block;
657#line 239 "include/linux/srcu.h"
658struct notifier_block {
659 int (*notifier_call)(struct notifier_block * , unsigned long , void * ) ;
660 struct notifier_block *next ;
661 int priority ;
662};
663#line 312 "include/linux/jiffies.h"
664union ktime {
665 s64 tv64 ;
666};
667#line 59 "include/linux/ktime.h"
668typedef union ktime ktime_t;
669#line 341
670struct tvec_base;
671#line 341
672struct tvec_base;
673#line 342 "include/linux/ktime.h"
674struct timer_list {
675 struct list_head entry ;
676 unsigned long expires ;
677 struct tvec_base *base ;
678 void (*function)(unsigned long ) ;
679 unsigned long data ;
680 int slack ;
681 int start_pid ;
682 void *start_site ;
683 char start_comm[16U] ;
684 struct lockdep_map lockdep_map ;
685};
686#line 289 "include/linux/timer.h"
687struct hrtimer;
688#line 289
689struct hrtimer;
690#line 290
691enum hrtimer_restart;
692#line 302
693struct work_struct;
694#line 302
695struct work_struct;
696#line 45 "include/linux/workqueue.h"
697struct work_struct {
698 atomic_long_t data ;
699 struct list_head entry ;
700 void (*func)(struct work_struct * ) ;
701 struct lockdep_map lockdep_map ;
702};
703#line 86 "include/linux/workqueue.h"
704struct delayed_work {
705 struct work_struct work ;
706 struct timer_list timer ;
707};
708#line 46 "include/linux/pm.h"
709struct pm_message {
710 int event ;
711};
712#line 52 "include/linux/pm.h"
713typedef struct pm_message pm_message_t;
714#line 53 "include/linux/pm.h"
715struct dev_pm_ops {
716 int (*prepare)(struct device * ) ;
717 void (*complete)(struct device * ) ;
718 int (*suspend)(struct device * ) ;
719 int (*resume)(struct device * ) ;
720 int (*freeze)(struct device * ) ;
721 int (*thaw)(struct device * ) ;
722 int (*poweroff)(struct device * ) ;
723 int (*restore)(struct device * ) ;
724 int (*suspend_late)(struct device * ) ;
725 int (*resume_early)(struct device * ) ;
726 int (*freeze_late)(struct device * ) ;
727 int (*thaw_early)(struct device * ) ;
728 int (*poweroff_late)(struct device * ) ;
729 int (*restore_early)(struct device * ) ;
730 int (*suspend_noirq)(struct device * ) ;
731 int (*resume_noirq)(struct device * ) ;
732 int (*freeze_noirq)(struct device * ) ;
733 int (*thaw_noirq)(struct device * ) ;
734 int (*poweroff_noirq)(struct device * ) ;
735 int (*restore_noirq)(struct device * ) ;
736 int (*runtime_suspend)(struct device * ) ;
737 int (*runtime_resume)(struct device * ) ;
738 int (*runtime_idle)(struct device * ) ;
739};
740#line 289
741enum rpm_status {
742 RPM_ACTIVE = 0,
743 RPM_RESUMING = 1,
744 RPM_SUSPENDED = 2,
745 RPM_SUSPENDING = 3
746} ;
747#line 296
748enum rpm_request {
749 RPM_REQ_NONE = 0,
750 RPM_REQ_IDLE = 1,
751 RPM_REQ_SUSPEND = 2,
752 RPM_REQ_AUTOSUSPEND = 3,
753 RPM_REQ_RESUME = 4
754} ;
755#line 304
756struct wakeup_source;
757#line 304
758struct wakeup_source;
759#line 494 "include/linux/pm.h"
760struct pm_subsys_data {
761 spinlock_t lock ;
762 unsigned int refcount ;
763};
764#line 499
765struct dev_pm_qos_request;
766#line 499
767struct pm_qos_constraints;
768#line 499 "include/linux/pm.h"
769struct dev_pm_info {
770 pm_message_t power_state ;
771 unsigned char can_wakeup : 1 ;
772 unsigned char async_suspend : 1 ;
773 bool is_prepared ;
774 bool is_suspended ;
775 bool ignore_children ;
776 spinlock_t lock ;
777 struct list_head entry ;
778 struct completion completion ;
779 struct wakeup_source *wakeup ;
780 bool wakeup_path ;
781 struct timer_list suspend_timer ;
782 unsigned long timer_expires ;
783 struct work_struct work ;
784 wait_queue_head_t wait_queue ;
785 atomic_t usage_count ;
786 atomic_t child_count ;
787 unsigned char disable_depth : 3 ;
788 unsigned char idle_notification : 1 ;
789 unsigned char request_pending : 1 ;
790 unsigned char deferred_resume : 1 ;
791 unsigned char run_wake : 1 ;
792 unsigned char runtime_auto : 1 ;
793 unsigned char no_callbacks : 1 ;
794 unsigned char irq_safe : 1 ;
795 unsigned char use_autosuspend : 1 ;
796 unsigned char timer_autosuspends : 1 ;
797 enum rpm_request request ;
798 enum rpm_status runtime_status ;
799 int runtime_error ;
800 int autosuspend_delay ;
801 unsigned long last_busy ;
802 unsigned long active_jiffies ;
803 unsigned long suspended_jiffies ;
804 unsigned long accounting_timestamp ;
805 ktime_t suspend_time ;
806 s64 max_time_suspended_ns ;
807 struct dev_pm_qos_request *pq_req ;
808 struct pm_subsys_data *subsys_data ;
809 struct pm_qos_constraints *constraints ;
810};
811#line 558 "include/linux/pm.h"
812struct dev_pm_domain {
813 struct dev_pm_ops ops ;
814};
815#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
816struct __anonstruct_mm_context_t_101 {
817 void *ldt ;
818 int size ;
819 unsigned short ia32_compat ;
820 struct mutex lock ;
821 void *vdso ;
822};
823#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
824typedef struct __anonstruct_mm_context_t_101 mm_context_t;
825#line 18 "include/asm-generic/pci_iomap.h"
826struct vm_area_struct;
827#line 18
828struct vm_area_struct;
829#line 835 "include/linux/sysctl.h"
830struct rb_node {
831 unsigned long rb_parent_color ;
832 struct rb_node *rb_right ;
833 struct rb_node *rb_left ;
834};
835#line 108 "include/linux/rbtree.h"
836struct rb_root {
837 struct rb_node *rb_node ;
838};
839#line 176
840struct nsproxy;
841#line 176
842struct nsproxy;
843#line 37 "include/linux/kmod.h"
844struct cred;
845#line 37
846struct cred;
847#line 18 "include/linux/elf.h"
848typedef __u64 Elf64_Addr;
849#line 19 "include/linux/elf.h"
850typedef __u16 Elf64_Half;
851#line 23 "include/linux/elf.h"
852typedef __u32 Elf64_Word;
853#line 24 "include/linux/elf.h"
854typedef __u64 Elf64_Xword;
855#line 193 "include/linux/elf.h"
856struct elf64_sym {
857 Elf64_Word st_name ;
858 unsigned char st_info ;
859 unsigned char st_other ;
860 Elf64_Half st_shndx ;
861 Elf64_Addr st_value ;
862 Elf64_Xword st_size ;
863};
864#line 201 "include/linux/elf.h"
865typedef struct elf64_sym Elf64_Sym;
866#line 445
867struct sock;
868#line 445
869struct sock;
870#line 446
871struct kobject;
872#line 446
873struct kobject;
874#line 447
875enum kobj_ns_type {
876 KOBJ_NS_TYPE_NONE = 0,
877 KOBJ_NS_TYPE_NET = 1,
878 KOBJ_NS_TYPES = 2
879} ;
880#line 453 "include/linux/elf.h"
881struct kobj_ns_type_operations {
882 enum kobj_ns_type type ;
883 void *(*grab_current_ns)(void) ;
884 void const *(*netlink_ns)(struct sock * ) ;
885 void const *(*initial_ns)(void) ;
886 void (*drop_ns)(void * ) ;
887};
888#line 57 "include/linux/kobject_ns.h"
889struct attribute {
890 char const *name ;
891 umode_t mode ;
892 struct lock_class_key *key ;
893 struct lock_class_key skey ;
894};
895#line 33 "include/linux/sysfs.h"
896struct attribute_group {
897 char const *name ;
898 umode_t (*is_visible)(struct kobject * , struct attribute * , int ) ;
899 struct attribute **attrs ;
900};
901#line 62 "include/linux/sysfs.h"
902struct bin_attribute {
903 struct attribute attr ;
904 size_t size ;
905 void *private ;
906 ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
907 loff_t , size_t ) ;
908 ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
909 loff_t , size_t ) ;
910 int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
911};
912#line 98 "include/linux/sysfs.h"
913struct sysfs_ops {
914 ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
915 ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ;
916 void const *(*namespace)(struct kobject * , struct attribute const * ) ;
917};
918#line 117
919struct sysfs_dirent;
920#line 117
921struct sysfs_dirent;
922#line 182 "include/linux/sysfs.h"
923struct kref {
924 atomic_t refcount ;
925};
926#line 49 "include/linux/kobject.h"
927struct kset;
928#line 49
929struct kobj_type;
930#line 49 "include/linux/kobject.h"
931struct kobject {
932 char const *name ;
933 struct list_head entry ;
934 struct kobject *parent ;
935 struct kset *kset ;
936 struct kobj_type *ktype ;
937 struct sysfs_dirent *sd ;
938 struct kref kref ;
939 unsigned char state_initialized : 1 ;
940 unsigned char state_in_sysfs : 1 ;
941 unsigned char state_add_uevent_sent : 1 ;
942 unsigned char state_remove_uevent_sent : 1 ;
943 unsigned char uevent_suppress : 1 ;
944};
945#line 107 "include/linux/kobject.h"
946struct kobj_type {
947 void (*release)(struct kobject * ) ;
948 struct sysfs_ops const *sysfs_ops ;
949 struct attribute **default_attrs ;
950 struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject * ) ;
951 void const *(*namespace)(struct kobject * ) ;
952};
953#line 115 "include/linux/kobject.h"
954struct kobj_uevent_env {
955 char *envp[32U] ;
956 int envp_idx ;
957 char buf[2048U] ;
958 int buflen ;
959};
960#line 122 "include/linux/kobject.h"
961struct kset_uevent_ops {
962 int (* const filter)(struct kset * , struct kobject * ) ;
963 char const *(* const name)(struct kset * , struct kobject * ) ;
964 int (* const uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
965};
966#line 139 "include/linux/kobject.h"
967struct kset {
968 struct list_head list ;
969 spinlock_t list_lock ;
970 struct kobject kobj ;
971 struct kset_uevent_ops const *uevent_ops ;
972};
973#line 215
974struct kernel_param;
975#line 215
976struct kernel_param;
977#line 216 "include/linux/kobject.h"
978struct kernel_param_ops {
979 int (*set)(char const * , struct kernel_param const * ) ;
980 int (*get)(char * , struct kernel_param const * ) ;
981 void (*free)(void * ) ;
982};
983#line 49 "include/linux/moduleparam.h"
984struct kparam_string;
985#line 49
986struct kparam_array;
987#line 49 "include/linux/moduleparam.h"
988union __anonunion_ldv_13367_134 {
989 void *arg ;
990 struct kparam_string const *str ;
991 struct kparam_array const *arr ;
992};
993#line 49 "include/linux/moduleparam.h"
994struct kernel_param {
995 char const *name ;
996 struct kernel_param_ops const *ops ;
997 u16 perm ;
998 s16 level ;
999 union __anonunion_ldv_13367_134 ldv_13367 ;
1000};
1001#line 61 "include/linux/moduleparam.h"
1002struct kparam_string {
1003 unsigned int maxlen ;
1004 char *string ;
1005};
1006#line 67 "include/linux/moduleparam.h"
1007struct kparam_array {
1008 unsigned int max ;
1009 unsigned int elemsize ;
1010 unsigned int *num ;
1011 struct kernel_param_ops const *ops ;
1012 void *elem ;
1013};
1014#line 458 "include/linux/moduleparam.h"
1015struct static_key {
1016 atomic_t enabled ;
1017};
1018#line 225 "include/linux/jump_label.h"
1019struct tracepoint;
1020#line 225
1021struct tracepoint;
1022#line 226 "include/linux/jump_label.h"
1023struct tracepoint_func {
1024 void *func ;
1025 void *data ;
1026};
1027#line 29 "include/linux/tracepoint.h"
1028struct tracepoint {
1029 char const *name ;
1030 struct static_key key ;
1031 void (*regfunc)(void) ;
1032 void (*unregfunc)(void) ;
1033 struct tracepoint_func *funcs ;
1034};
1035#line 86 "include/linux/tracepoint.h"
1036struct kernel_symbol {
1037 unsigned long value ;
1038 char const *name ;
1039};
1040#line 27 "include/linux/export.h"
1041struct mod_arch_specific {
1042
1043};
1044#line 34 "include/linux/module.h"
1045struct module_param_attrs;
1046#line 34 "include/linux/module.h"
1047struct module_kobject {
1048 struct kobject kobj ;
1049 struct module *mod ;
1050 struct kobject *drivers_dir ;
1051 struct module_param_attrs *mp ;
1052};
1053#line 43 "include/linux/module.h"
1054struct module_attribute {
1055 struct attribute attr ;
1056 ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
1057 ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const * ,
1058 size_t ) ;
1059 void (*setup)(struct module * , char const * ) ;
1060 int (*test)(struct module * ) ;
1061 void (*free)(struct module * ) ;
1062};
1063#line 69
1064struct exception_table_entry;
1065#line 69
1066struct exception_table_entry;
1067#line 198
1068enum module_state {
1069 MODULE_STATE_LIVE = 0,
1070 MODULE_STATE_COMING = 1,
1071 MODULE_STATE_GOING = 2
1072} ;
1073#line 204 "include/linux/module.h"
1074struct module_ref {
1075 unsigned long incs ;
1076 unsigned long decs ;
1077};
1078#line 219
1079struct module_sect_attrs;
1080#line 219
1081struct module_notes_attrs;
1082#line 219
1083struct ftrace_event_call;
1084#line 219 "include/linux/module.h"
1085struct module {
1086 enum module_state state ;
1087 struct list_head list ;
1088 char name[56U] ;
1089 struct module_kobject mkobj ;
1090 struct module_attribute *modinfo_attrs ;
1091 char const *version ;
1092 char const *srcversion ;
1093 struct kobject *holders_dir ;
1094 struct kernel_symbol const *syms ;
1095 unsigned long const *crcs ;
1096 unsigned int num_syms ;
1097 struct kernel_param *kp ;
1098 unsigned int num_kp ;
1099 unsigned int num_gpl_syms ;
1100 struct kernel_symbol const *gpl_syms ;
1101 unsigned long const *gpl_crcs ;
1102 struct kernel_symbol const *unused_syms ;
1103 unsigned long const *unused_crcs ;
1104 unsigned int num_unused_syms ;
1105 unsigned int num_unused_gpl_syms ;
1106 struct kernel_symbol const *unused_gpl_syms ;
1107 unsigned long const *unused_gpl_crcs ;
1108 struct kernel_symbol const *gpl_future_syms ;
1109 unsigned long const *gpl_future_crcs ;
1110 unsigned int num_gpl_future_syms ;
1111 unsigned int num_exentries ;
1112 struct exception_table_entry *extable ;
1113 int (*init)(void) ;
1114 void *module_init ;
1115 void *module_core ;
1116 unsigned int init_size ;
1117 unsigned int core_size ;
1118 unsigned int init_text_size ;
1119 unsigned int core_text_size ;
1120 unsigned int init_ro_size ;
1121 unsigned int core_ro_size ;
1122 struct mod_arch_specific arch ;
1123 unsigned int taints ;
1124 unsigned int num_bugs ;
1125 struct list_head bug_list ;
1126 struct bug_entry *bug_table ;
1127 Elf64_Sym *symtab ;
1128 Elf64_Sym *core_symtab ;
1129 unsigned int num_symtab ;
1130 unsigned int core_num_syms ;
1131 char *strtab ;
1132 char *core_strtab ;
1133 struct module_sect_attrs *sect_attrs ;
1134 struct module_notes_attrs *notes_attrs ;
1135 char *args ;
1136 void *percpu ;
1137 unsigned int percpu_size ;
1138 unsigned int num_tracepoints ;
1139 struct tracepoint * const *tracepoints_ptrs ;
1140 unsigned int num_trace_bprintk_fmt ;
1141 char const **trace_bprintk_fmt_start ;
1142 struct ftrace_event_call **trace_events ;
1143 unsigned int num_trace_events ;
1144 struct list_head source_list ;
1145 struct list_head target_list ;
1146 struct task_struct *waiter ;
1147 void (*exit)(void) ;
1148 struct module_ref *refptr ;
1149 ctor_fn_t (**ctors)(void) ;
1150 unsigned int num_ctors ;
1151};
1152#line 88 "include/linux/kmemleak.h"
1153struct kmem_cache_cpu {
1154 void **freelist ;
1155 unsigned long tid ;
1156 struct page *page ;
1157 struct page *partial ;
1158 int node ;
1159 unsigned int stat[26U] ;
1160};
1161#line 55 "include/linux/slub_def.h"
1162struct kmem_cache_node {
1163 spinlock_t list_lock ;
1164 unsigned long nr_partial ;
1165 struct list_head partial ;
1166 atomic_long_t nr_slabs ;
1167 atomic_long_t total_objects ;
1168 struct list_head full ;
1169};
1170#line 66 "include/linux/slub_def.h"
1171struct kmem_cache_order_objects {
1172 unsigned long x ;
1173};
1174#line 76 "include/linux/slub_def.h"
1175struct kmem_cache {
1176 struct kmem_cache_cpu *cpu_slab ;
1177 unsigned long flags ;
1178 unsigned long min_partial ;
1179 int size ;
1180 int objsize ;
1181 int offset ;
1182 int cpu_partial ;
1183 struct kmem_cache_order_objects oo ;
1184 struct kmem_cache_order_objects max ;
1185 struct kmem_cache_order_objects min ;
1186 gfp_t allocflags ;
1187 int refcount ;
1188 void (*ctor)(void * ) ;
1189 int inuse ;
1190 int align ;
1191 int reserved ;
1192 char const *name ;
1193 struct list_head list ;
1194 struct kobject kobj ;
1195 int remote_node_defrag_ratio ;
1196 struct kmem_cache_node *node[1024U] ;
1197};
1198#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
1199struct hd_geometry;
1200#line 15
1201struct hd_geometry;
1202#line 16
1203struct mtd_info;
1204#line 16
1205struct mtd_info;
1206#line 17
1207struct mtd_blktrans_ops;
1208#line 17
1209struct mtd_blktrans_ops;
1210#line 18
1211struct inode;
1212#line 18
1213struct inode;
1214#line 19
1215struct gendisk;
1216#line 19
1217struct request_queue;
1218#line 19 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
1219struct mtd_blktrans_dev {
1220 struct mtd_blktrans_ops *tr ;
1221 struct list_head list ;
1222 struct mtd_info *mtd ;
1223 struct mutex lock ;
1224 int devnum ;
1225 bool bg_stop ;
1226 unsigned long size ;
1227 int readonly ;
1228 int open ;
1229 struct kref ref ;
1230 struct gendisk *disk ;
1231 struct attribute_group *disk_attributes ;
1232 struct task_struct *thread ;
1233 struct request_queue *rq ;
1234 spinlock_t queue_lock ;
1235 void *priv ;
1236 fmode_t file_mode ;
1237};
1238#line 52 "include/linux/mtd/blktrans.h"
1239struct mtd_blktrans_ops {
1240 char *name ;
1241 int major ;
1242 int part_bits ;
1243 int blksize ;
1244 int blkshift ;
1245 int (*readsect)(struct mtd_blktrans_dev * , unsigned long , char * ) ;
1246 int (*writesect)(struct mtd_blktrans_dev * , unsigned long , char * ) ;
1247 int (*discard)(struct mtd_blktrans_dev * , unsigned long , unsigned int ) ;
1248 void (*background)(struct mtd_blktrans_dev * ) ;
1249 int (*getgeo)(struct mtd_blktrans_dev * , struct hd_geometry * ) ;
1250 int (*flush)(struct mtd_blktrans_dev * ) ;
1251 int (*open)(struct mtd_blktrans_dev * ) ;
1252 int (*release)(struct mtd_blktrans_dev * ) ;
1253 void (*add_mtd)(struct mtd_blktrans_ops * , struct mtd_info * ) ;
1254 void (*remove_dev)(struct mtd_blktrans_dev * ) ;
1255 struct list_head devs ;
1256 struct list_head list ;
1257 struct module *owner ;
1258};
1259#line 92 "include/linux/mtd/blktrans.h"
1260struct iovec {
1261 void *iov_base ;
1262 __kernel_size_t iov_len ;
1263};
1264#line 21 "include/linux/uio.h"
1265struct kvec {
1266 void *iov_base ;
1267 size_t iov_len ;
1268};
1269#line 54
1270struct klist_node;
1271#line 54
1272struct klist_node;
1273#line 37 "include/linux/klist.h"
1274struct klist_node {
1275 void *n_klist ;
1276 struct list_head n_node ;
1277 struct kref n_ref ;
1278};
1279#line 67
1280struct dma_map_ops;
1281#line 67 "include/linux/klist.h"
1282struct dev_archdata {
1283 void *acpi_handle ;
1284 struct dma_map_ops *dma_ops ;
1285 void *iommu ;
1286};
1287#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1288struct device_private;
1289#line 17
1290struct device_private;
1291#line 18
1292struct device_driver;
1293#line 18
1294struct device_driver;
1295#line 19
1296struct driver_private;
1297#line 19
1298struct driver_private;
1299#line 20
1300struct class;
1301#line 20
1302struct class;
1303#line 21
1304struct subsys_private;
1305#line 21
1306struct subsys_private;
1307#line 22
1308struct bus_type;
1309#line 22
1310struct bus_type;
1311#line 23
1312struct device_node;
1313#line 23
1314struct device_node;
1315#line 24
1316struct iommu_ops;
1317#line 24
1318struct iommu_ops;
1319#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1320struct bus_attribute {
1321 struct attribute attr ;
1322 ssize_t (*show)(struct bus_type * , char * ) ;
1323 ssize_t (*store)(struct bus_type * , char const * , size_t ) ;
1324};
1325#line 51 "include/linux/device.h"
1326struct device_attribute;
1327#line 51
1328struct driver_attribute;
1329#line 51 "include/linux/device.h"
1330struct bus_type {
1331 char const *name ;
1332 char const *dev_name ;
1333 struct device *dev_root ;
1334 struct bus_attribute *bus_attrs ;
1335 struct device_attribute *dev_attrs ;
1336 struct driver_attribute *drv_attrs ;
1337 int (*match)(struct device * , struct device_driver * ) ;
1338 int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1339 int (*probe)(struct device * ) ;
1340 int (*remove)(struct device * ) ;
1341 void (*shutdown)(struct device * ) ;
1342 int (*suspend)(struct device * , pm_message_t ) ;
1343 int (*resume)(struct device * ) ;
1344 struct dev_pm_ops const *pm ;
1345 struct iommu_ops *iommu_ops ;
1346 struct subsys_private *p ;
1347};
1348#line 125
1349struct device_type;
1350#line 182
1351struct of_device_id;
1352#line 182 "include/linux/device.h"
1353struct device_driver {
1354 char const *name ;
1355 struct bus_type *bus ;
1356 struct module *owner ;
1357 char const *mod_name ;
1358 bool suppress_bind_attrs ;
1359 struct of_device_id const *of_match_table ;
1360 int (*probe)(struct device * ) ;
1361 int (*remove)(struct device * ) ;
1362 void (*shutdown)(struct device * ) ;
1363 int (*suspend)(struct device * , pm_message_t ) ;
1364 int (*resume)(struct device * ) ;
1365 struct attribute_group const **groups ;
1366 struct dev_pm_ops const *pm ;
1367 struct driver_private *p ;
1368};
1369#line 245 "include/linux/device.h"
1370struct driver_attribute {
1371 struct attribute attr ;
1372 ssize_t (*show)(struct device_driver * , char * ) ;
1373 ssize_t (*store)(struct device_driver * , char const * , size_t ) ;
1374};
1375#line 299
1376struct class_attribute;
1377#line 299 "include/linux/device.h"
1378struct class {
1379 char const *name ;
1380 struct module *owner ;
1381 struct class_attribute *class_attrs ;
1382 struct device_attribute *dev_attrs ;
1383 struct bin_attribute *dev_bin_attrs ;
1384 struct kobject *dev_kobj ;
1385 int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1386 char *(*devnode)(struct device * , umode_t * ) ;
1387 void (*class_release)(struct class * ) ;
1388 void (*dev_release)(struct device * ) ;
1389 int (*suspend)(struct device * , pm_message_t ) ;
1390 int (*resume)(struct device * ) ;
1391 struct kobj_ns_type_operations const *ns_type ;
1392 void const *(*namespace)(struct device * ) ;
1393 struct dev_pm_ops const *pm ;
1394 struct subsys_private *p ;
1395};
1396#line 394 "include/linux/device.h"
1397struct class_attribute {
1398 struct attribute attr ;
1399 ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1400 ssize_t (*store)(struct class * , struct class_attribute * , char const * , size_t ) ;
1401 void const *(*namespace)(struct class * , struct class_attribute const * ) ;
1402};
1403#line 447 "include/linux/device.h"
1404struct device_type {
1405 char const *name ;
1406 struct attribute_group const **groups ;
1407 int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1408 char *(*devnode)(struct device * , umode_t * ) ;
1409 void (*release)(struct device * ) ;
1410 struct dev_pm_ops const *pm ;
1411};
1412#line 474 "include/linux/device.h"
1413struct device_attribute {
1414 struct attribute attr ;
1415 ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1416 ssize_t (*store)(struct device * , struct device_attribute * , char const * ,
1417 size_t ) ;
1418};
1419#line 557 "include/linux/device.h"
1420struct device_dma_parameters {
1421 unsigned int max_segment_size ;
1422 unsigned long segment_boundary_mask ;
1423};
1424#line 567
1425struct dma_coherent_mem;
1426#line 567 "include/linux/device.h"
1427struct device {
1428 struct device *parent ;
1429 struct device_private *p ;
1430 struct kobject kobj ;
1431 char const *init_name ;
1432 struct device_type const *type ;
1433 struct mutex mutex ;
1434 struct bus_type *bus ;
1435 struct device_driver *driver ;
1436 void *platform_data ;
1437 struct dev_pm_info power ;
1438 struct dev_pm_domain *pm_domain ;
1439 int numa_node ;
1440 u64 *dma_mask ;
1441 u64 coherent_dma_mask ;
1442 struct device_dma_parameters *dma_parms ;
1443 struct list_head dma_pools ;
1444 struct dma_coherent_mem *dma_mem ;
1445 struct dev_archdata archdata ;
1446 struct device_node *of_node ;
1447 dev_t devt ;
1448 u32 id ;
1449 spinlock_t devres_lock ;
1450 struct list_head devres_head ;
1451 struct klist_node knode_class ;
1452 struct class *class ;
1453 struct attribute_group const **groups ;
1454 void (*release)(struct device * ) ;
1455};
1456#line 681 "include/linux/device.h"
1457struct wakeup_source {
1458 char const *name ;
1459 struct list_head entry ;
1460 spinlock_t lock ;
1461 struct timer_list timer ;
1462 unsigned long timer_expires ;
1463 ktime_t total_time ;
1464 ktime_t max_time ;
1465 ktime_t last_time ;
1466 unsigned long event_count ;
1467 unsigned long active_count ;
1468 unsigned long relax_count ;
1469 unsigned long hit_count ;
1470 unsigned char active : 1 ;
1471};
1472#line 142 "include/mtd/mtd-abi.h"
1473struct otp_info {
1474 __u32 start ;
1475 __u32 length ;
1476 __u32 locked ;
1477};
1478#line 216 "include/mtd/mtd-abi.h"
1479struct nand_oobfree {
1480 __u32 offset ;
1481 __u32 length ;
1482};
1483#line 238 "include/mtd/mtd-abi.h"
1484struct mtd_ecc_stats {
1485 __u32 corrected ;
1486 __u32 failed ;
1487 __u32 badblocks ;
1488 __u32 bbtblocks ;
1489};
1490#line 260 "include/mtd/mtd-abi.h"
1491struct erase_info {
1492 struct mtd_info *mtd ;
1493 uint64_t addr ;
1494 uint64_t len ;
1495 uint64_t fail_addr ;
1496 u_long time ;
1497 u_long retries ;
1498 unsigned int dev ;
1499 unsigned int cell ;
1500 void (*callback)(struct erase_info * ) ;
1501 u_long priv ;
1502 u_char state ;
1503 struct erase_info *next ;
1504};
1505#line 62 "include/linux/mtd/mtd.h"
1506struct mtd_erase_region_info {
1507 uint64_t offset ;
1508 uint32_t erasesize ;
1509 uint32_t numblocks ;
1510 unsigned long *lockmap ;
1511};
1512#line 69 "include/linux/mtd/mtd.h"
1513struct mtd_oob_ops {
1514 unsigned int mode ;
1515 size_t len ;
1516 size_t retlen ;
1517 size_t ooblen ;
1518 size_t oobretlen ;
1519 uint32_t ooboffs ;
1520 uint8_t *datbuf ;
1521 uint8_t *oobbuf ;
1522};
1523#line 99 "include/linux/mtd/mtd.h"
1524struct nand_ecclayout {
1525 __u32 eccbytes ;
1526 __u32 eccpos[448U] ;
1527 __u32 oobavail ;
1528 struct nand_oobfree oobfree[32U] ;
1529};
1530#line 114
1531struct backing_dev_info;
1532#line 114 "include/linux/mtd/mtd.h"
1533struct mtd_info {
1534 u_char type ;
1535 uint32_t flags ;
1536 uint64_t size ;
1537 uint32_t erasesize ;
1538 uint32_t writesize ;
1539 uint32_t writebufsize ;
1540 uint32_t oobsize ;
1541 uint32_t oobavail ;
1542 unsigned int erasesize_shift ;
1543 unsigned int writesize_shift ;
1544 unsigned int erasesize_mask ;
1545 unsigned int writesize_mask ;
1546 char const *name ;
1547 int index ;
1548 struct nand_ecclayout *ecclayout ;
1549 unsigned int ecc_strength ;
1550 int numeraseregions ;
1551 struct mtd_erase_region_info *eraseregions ;
1552 int (*_erase)(struct mtd_info * , struct erase_info * ) ;
1553 int (*_point)(struct mtd_info * , loff_t , size_t , size_t * , void ** , resource_size_t * ) ;
1554 int (*_unpoint)(struct mtd_info * , loff_t , size_t ) ;
1555 unsigned long (*_get_unmapped_area)(struct mtd_info * , unsigned long , unsigned long ,
1556 unsigned long ) ;
1557 int (*_read)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1558 int (*_write)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
1559 int (*_panic_write)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
1560 int (*_read_oob)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
1561 int (*_write_oob)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
1562 int (*_get_fact_prot_info)(struct mtd_info * , struct otp_info * , size_t ) ;
1563 int (*_read_fact_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1564 int (*_get_user_prot_info)(struct mtd_info * , struct otp_info * , size_t ) ;
1565 int (*_read_user_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1566 int (*_write_user_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * ,
1567 u_char * ) ;
1568 int (*_lock_user_prot_reg)(struct mtd_info * , loff_t , size_t ) ;
1569 int (*_writev)(struct mtd_info * , struct kvec const * , unsigned long , loff_t ,
1570 size_t * ) ;
1571 void (*_sync)(struct mtd_info * ) ;
1572 int (*_lock)(struct mtd_info * , loff_t , uint64_t ) ;
1573 int (*_unlock)(struct mtd_info * , loff_t , uint64_t ) ;
1574 int (*_is_locked)(struct mtd_info * , loff_t , uint64_t ) ;
1575 int (*_block_isbad)(struct mtd_info * , loff_t ) ;
1576 int (*_block_markbad)(struct mtd_info * , loff_t ) ;
1577 int (*_suspend)(struct mtd_info * ) ;
1578 void (*_resume)(struct mtd_info * ) ;
1579 int (*_get_device)(struct mtd_info * ) ;
1580 void (*_put_device)(struct mtd_info * ) ;
1581 struct backing_dev_info *backing_dev_info ;
1582 struct notifier_block reboot_notifier ;
1583 struct mtd_ecc_stats ecc_stats ;
1584 int subpage_sft ;
1585 void *priv ;
1586 struct module *owner ;
1587 struct device dev ;
1588 int usecount ;
1589};
1590#line 93 "include/linux/capability.h"
1591struct kernel_cap_struct {
1592 __u32 cap[2U] ;
1593};
1594#line 96 "include/linux/capability.h"
1595typedef struct kernel_cap_struct kernel_cap_t;
1596#line 104
1597struct dentry;
1598#line 104
1599struct dentry;
1600#line 105
1601struct user_namespace;
1602#line 105
1603struct user_namespace;
1604#line 554
1605struct prio_tree_node;
1606#line 554 "include/linux/capability.h"
1607struct raw_prio_tree_node {
1608 struct prio_tree_node *left ;
1609 struct prio_tree_node *right ;
1610 struct prio_tree_node *parent ;
1611};
1612#line 19 "include/linux/prio_tree.h"
1613struct prio_tree_node {
1614 struct prio_tree_node *left ;
1615 struct prio_tree_node *right ;
1616 struct prio_tree_node *parent ;
1617 unsigned long start ;
1618 unsigned long last ;
1619};
1620#line 27 "include/linux/prio_tree.h"
1621struct prio_tree_root {
1622 struct prio_tree_node *prio_tree_node ;
1623 unsigned short index_bits ;
1624 unsigned short raw ;
1625};
1626#line 116
1627struct address_space;
1628#line 116
1629struct address_space;
1630#line 117 "include/linux/prio_tree.h"
1631union __anonunion_ldv_15621_137 {
1632 unsigned long index ;
1633 void *freelist ;
1634};
1635#line 117 "include/linux/prio_tree.h"
1636struct __anonstruct_ldv_15631_141 {
1637 unsigned short inuse ;
1638 unsigned short objects : 15 ;
1639 unsigned char frozen : 1 ;
1640};
1641#line 117 "include/linux/prio_tree.h"
1642union __anonunion_ldv_15632_140 {
1643 atomic_t _mapcount ;
1644 struct __anonstruct_ldv_15631_141 ldv_15631 ;
1645};
1646#line 117 "include/linux/prio_tree.h"
1647struct __anonstruct_ldv_15634_139 {
1648 union __anonunion_ldv_15632_140 ldv_15632 ;
1649 atomic_t _count ;
1650};
1651#line 117 "include/linux/prio_tree.h"
1652union __anonunion_ldv_15635_138 {
1653 unsigned long counters ;
1654 struct __anonstruct_ldv_15634_139 ldv_15634 ;
1655};
1656#line 117 "include/linux/prio_tree.h"
1657struct __anonstruct_ldv_15636_136 {
1658 union __anonunion_ldv_15621_137 ldv_15621 ;
1659 union __anonunion_ldv_15635_138 ldv_15635 ;
1660};
1661#line 117 "include/linux/prio_tree.h"
1662struct __anonstruct_ldv_15643_143 {
1663 struct page *next ;
1664 int pages ;
1665 int pobjects ;
1666};
1667#line 117 "include/linux/prio_tree.h"
1668union __anonunion_ldv_15644_142 {
1669 struct list_head lru ;
1670 struct __anonstruct_ldv_15643_143 ldv_15643 ;
1671};
1672#line 117 "include/linux/prio_tree.h"
1673union __anonunion_ldv_15649_144 {
1674 unsigned long private ;
1675 struct kmem_cache *slab ;
1676 struct page *first_page ;
1677};
1678#line 117 "include/linux/prio_tree.h"
1679struct page {
1680 unsigned long flags ;
1681 struct address_space *mapping ;
1682 struct __anonstruct_ldv_15636_136 ldv_15636 ;
1683 union __anonunion_ldv_15644_142 ldv_15644 ;
1684 union __anonunion_ldv_15649_144 ldv_15649 ;
1685 unsigned long debug_flags ;
1686};
1687#line 192 "include/linux/mm_types.h"
1688struct __anonstruct_vm_set_146 {
1689 struct list_head list ;
1690 void *parent ;
1691 struct vm_area_struct *head ;
1692};
1693#line 192 "include/linux/mm_types.h"
1694union __anonunion_shared_145 {
1695 struct __anonstruct_vm_set_146 vm_set ;
1696 struct raw_prio_tree_node prio_tree_node ;
1697};
1698#line 192
1699struct anon_vma;
1700#line 192
1701struct vm_operations_struct;
1702#line 192
1703struct mempolicy;
1704#line 192 "include/linux/mm_types.h"
1705struct vm_area_struct {
1706 struct mm_struct *vm_mm ;
1707 unsigned long vm_start ;
1708 unsigned long vm_end ;
1709 struct vm_area_struct *vm_next ;
1710 struct vm_area_struct *vm_prev ;
1711 pgprot_t vm_page_prot ;
1712 unsigned long vm_flags ;
1713 struct rb_node vm_rb ;
1714 union __anonunion_shared_145 shared ;
1715 struct list_head anon_vma_chain ;
1716 struct anon_vma *anon_vma ;
1717 struct vm_operations_struct const *vm_ops ;
1718 unsigned long vm_pgoff ;
1719 struct file *vm_file ;
1720 void *vm_private_data ;
1721 struct mempolicy *vm_policy ;
1722};
1723#line 255 "include/linux/mm_types.h"
1724struct core_thread {
1725 struct task_struct *task ;
1726 struct core_thread *next ;
1727};
1728#line 261 "include/linux/mm_types.h"
1729struct core_state {
1730 atomic_t nr_threads ;
1731 struct core_thread dumper ;
1732 struct completion startup ;
1733};
1734#line 274 "include/linux/mm_types.h"
1735struct mm_rss_stat {
1736 atomic_long_t count[3U] ;
1737};
1738#line 287
1739struct linux_binfmt;
1740#line 287
1741struct mmu_notifier_mm;
1742#line 287 "include/linux/mm_types.h"
1743struct mm_struct {
1744 struct vm_area_struct *mmap ;
1745 struct rb_root mm_rb ;
1746 struct vm_area_struct *mmap_cache ;
1747 unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long ,
1748 unsigned long , unsigned long ) ;
1749 void (*unmap_area)(struct mm_struct * , unsigned long ) ;
1750 unsigned long mmap_base ;
1751 unsigned long task_size ;
1752 unsigned long cached_hole_size ;
1753 unsigned long free_area_cache ;
1754 pgd_t *pgd ;
1755 atomic_t mm_users ;
1756 atomic_t mm_count ;
1757 int map_count ;
1758 spinlock_t page_table_lock ;
1759 struct rw_semaphore mmap_sem ;
1760 struct list_head mmlist ;
1761 unsigned long hiwater_rss ;
1762 unsigned long hiwater_vm ;
1763 unsigned long total_vm ;
1764 unsigned long locked_vm ;
1765 unsigned long pinned_vm ;
1766 unsigned long shared_vm ;
1767 unsigned long exec_vm ;
1768 unsigned long stack_vm ;
1769 unsigned long reserved_vm ;
1770 unsigned long def_flags ;
1771 unsigned long nr_ptes ;
1772 unsigned long start_code ;
1773 unsigned long end_code ;
1774 unsigned long start_data ;
1775 unsigned long end_data ;
1776 unsigned long start_brk ;
1777 unsigned long brk ;
1778 unsigned long start_stack ;
1779 unsigned long arg_start ;
1780 unsigned long arg_end ;
1781 unsigned long env_start ;
1782 unsigned long env_end ;
1783 unsigned long saved_auxv[44U] ;
1784 struct mm_rss_stat rss_stat ;
1785 struct linux_binfmt *binfmt ;
1786 cpumask_var_t cpu_vm_mask_var ;
1787 mm_context_t context ;
1788 unsigned int faultstamp ;
1789 unsigned int token_priority ;
1790 unsigned int last_interval ;
1791 unsigned long flags ;
1792 struct core_state *core_state ;
1793 spinlock_t ioctx_lock ;
1794 struct hlist_head ioctx_list ;
1795 struct task_struct *owner ;
1796 struct file *exe_file ;
1797 unsigned long num_exe_file_vmas ;
1798 struct mmu_notifier_mm *mmu_notifier_mm ;
1799 pgtable_t pmd_huge_pte ;
1800 struct cpumask cpumask_allocation ;
1801};
1802#line 7 "include/asm-generic/cputime.h"
1803typedef unsigned long cputime_t;
1804#line 98 "include/linux/sem.h"
1805struct sem_undo_list;
1806#line 98 "include/linux/sem.h"
1807struct sysv_sem {
1808 struct sem_undo_list *undo_list ;
1809};
1810#line 107
1811struct siginfo;
1812#line 107
1813struct siginfo;
1814#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1815struct __anonstruct_sigset_t_147 {
1816 unsigned long sig[1U] ;
1817};
1818#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1819typedef struct __anonstruct_sigset_t_147 sigset_t;
1820#line 17 "include/asm-generic/signal-defs.h"
1821typedef void __signalfn_t(int );
1822#line 18 "include/asm-generic/signal-defs.h"
1823typedef __signalfn_t *__sighandler_t;
1824#line 20 "include/asm-generic/signal-defs.h"
1825typedef void __restorefn_t(void);
1826#line 21 "include/asm-generic/signal-defs.h"
1827typedef __restorefn_t *__sigrestore_t;
1828#line 126 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1829struct sigaction {
1830 __sighandler_t sa_handler ;
1831 unsigned long sa_flags ;
1832 __sigrestore_t sa_restorer ;
1833 sigset_t sa_mask ;
1834};
1835#line 173 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1836struct k_sigaction {
1837 struct sigaction sa ;
1838};
1839#line 185 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1840union sigval {
1841 int sival_int ;
1842 void *sival_ptr ;
1843};
1844#line 10 "include/asm-generic/siginfo.h"
1845typedef union sigval sigval_t;
1846#line 11 "include/asm-generic/siginfo.h"
1847struct __anonstruct__kill_149 {
1848 __kernel_pid_t _pid ;
1849 __kernel_uid32_t _uid ;
1850};
1851#line 11 "include/asm-generic/siginfo.h"
1852struct __anonstruct__timer_150 {
1853 __kernel_timer_t _tid ;
1854 int _overrun ;
1855 char _pad[0U] ;
1856 sigval_t _sigval ;
1857 int _sys_private ;
1858};
1859#line 11 "include/asm-generic/siginfo.h"
1860struct __anonstruct__rt_151 {
1861 __kernel_pid_t _pid ;
1862 __kernel_uid32_t _uid ;
1863 sigval_t _sigval ;
1864};
1865#line 11 "include/asm-generic/siginfo.h"
1866struct __anonstruct__sigchld_152 {
1867 __kernel_pid_t _pid ;
1868 __kernel_uid32_t _uid ;
1869 int _status ;
1870 __kernel_clock_t _utime ;
1871 __kernel_clock_t _stime ;
1872};
1873#line 11 "include/asm-generic/siginfo.h"
1874struct __anonstruct__sigfault_153 {
1875 void *_addr ;
1876 short _addr_lsb ;
1877};
1878#line 11 "include/asm-generic/siginfo.h"
1879struct __anonstruct__sigpoll_154 {
1880 long _band ;
1881 int _fd ;
1882};
1883#line 11 "include/asm-generic/siginfo.h"
1884union __anonunion__sifields_148 {
1885 int _pad[28U] ;
1886 struct __anonstruct__kill_149 _kill ;
1887 struct __anonstruct__timer_150 _timer ;
1888 struct __anonstruct__rt_151 _rt ;
1889 struct __anonstruct__sigchld_152 _sigchld ;
1890 struct __anonstruct__sigfault_153 _sigfault ;
1891 struct __anonstruct__sigpoll_154 _sigpoll ;
1892};
1893#line 11 "include/asm-generic/siginfo.h"
1894struct siginfo {
1895 int si_signo ;
1896 int si_errno ;
1897 int si_code ;
1898 union __anonunion__sifields_148 _sifields ;
1899};
1900#line 102 "include/asm-generic/siginfo.h"
1901typedef struct siginfo siginfo_t;
1902#line 14 "include/linux/signal.h"
1903struct user_struct;
1904#line 24 "include/linux/signal.h"
1905struct sigpending {
1906 struct list_head list ;
1907 sigset_t signal ;
1908};
1909#line 388
1910enum pid_type {
1911 PIDTYPE_PID = 0,
1912 PIDTYPE_PGID = 1,
1913 PIDTYPE_SID = 2,
1914 PIDTYPE_MAX = 3
1915} ;
1916#line 395
1917struct pid_namespace;
1918#line 395 "include/linux/signal.h"
1919struct upid {
1920 int nr ;
1921 struct pid_namespace *ns ;
1922 struct hlist_node pid_chain ;
1923};
1924#line 56 "include/linux/pid.h"
1925struct pid {
1926 atomic_t count ;
1927 unsigned int level ;
1928 struct hlist_head tasks[3U] ;
1929 struct rcu_head rcu ;
1930 struct upid numbers[1U] ;
1931};
1932#line 68 "include/linux/pid.h"
1933struct pid_link {
1934 struct hlist_node node ;
1935 struct pid *pid ;
1936};
1937#line 10 "include/linux/seccomp.h"
1938struct __anonstruct_seccomp_t_157 {
1939 int mode ;
1940};
1941#line 10 "include/linux/seccomp.h"
1942typedef struct __anonstruct_seccomp_t_157 seccomp_t;
1943#line 427 "include/linux/rculist.h"
1944struct plist_head {
1945 struct list_head node_list ;
1946};
1947#line 84 "include/linux/plist.h"
1948struct plist_node {
1949 int prio ;
1950 struct list_head prio_list ;
1951 struct list_head node_list ;
1952};
1953#line 38 "include/linux/rtmutex.h"
1954struct rt_mutex_waiter;
1955#line 38
1956struct rt_mutex_waiter;
1957#line 41 "include/linux/resource.h"
1958struct rlimit {
1959 unsigned long rlim_cur ;
1960 unsigned long rlim_max ;
1961};
1962#line 85 "include/linux/resource.h"
1963struct timerqueue_node {
1964 struct rb_node node ;
1965 ktime_t expires ;
1966};
1967#line 12 "include/linux/timerqueue.h"
1968struct timerqueue_head {
1969 struct rb_root head ;
1970 struct timerqueue_node *next ;
1971};
1972#line 50
1973struct hrtimer_clock_base;
1974#line 50
1975struct hrtimer_clock_base;
1976#line 51
1977struct hrtimer_cpu_base;
1978#line 51
1979struct hrtimer_cpu_base;
1980#line 60
1981enum hrtimer_restart {
1982 HRTIMER_NORESTART = 0,
1983 HRTIMER_RESTART = 1
1984} ;
1985#line 65 "include/linux/timerqueue.h"
1986struct hrtimer {
1987 struct timerqueue_node node ;
1988 ktime_t _softexpires ;
1989 enum hrtimer_restart (*function)(struct hrtimer * ) ;
1990 struct hrtimer_clock_base *base ;
1991 unsigned long state ;
1992 int start_pid ;
1993 void *start_site ;
1994 char start_comm[16U] ;
1995};
1996#line 132 "include/linux/hrtimer.h"
1997struct hrtimer_clock_base {
1998 struct hrtimer_cpu_base *cpu_base ;
1999 int index ;
2000 clockid_t clockid ;
2001 struct timerqueue_head active ;
2002 ktime_t resolution ;
2003 ktime_t (*get_time)(void) ;
2004 ktime_t softirq_time ;
2005 ktime_t offset ;
2006};
2007#line 162 "include/linux/hrtimer.h"
2008struct hrtimer_cpu_base {
2009 raw_spinlock_t lock ;
2010 unsigned long active_bases ;
2011 ktime_t expires_next ;
2012 int hres_active ;
2013 int hang_detected ;
2014 unsigned long nr_events ;
2015 unsigned long nr_retries ;
2016 unsigned long nr_hangs ;
2017 ktime_t max_hang_time ;
2018 struct hrtimer_clock_base clock_base[3U] ;
2019};
2020#line 452 "include/linux/hrtimer.h"
2021struct task_io_accounting {
2022 u64 rchar ;
2023 u64 wchar ;
2024 u64 syscr ;
2025 u64 syscw ;
2026 u64 read_bytes ;
2027 u64 write_bytes ;
2028 u64 cancelled_write_bytes ;
2029};
2030#line 45 "include/linux/task_io_accounting.h"
2031struct latency_record {
2032 unsigned long backtrace[12U] ;
2033 unsigned int count ;
2034 unsigned long time ;
2035 unsigned long max ;
2036};
2037#line 29 "include/linux/key.h"
2038typedef int32_t key_serial_t;
2039#line 32 "include/linux/key.h"
2040typedef uint32_t key_perm_t;
2041#line 33
2042struct key;
2043#line 33
2044struct key;
2045#line 34
2046struct signal_struct;
2047#line 34
2048struct signal_struct;
2049#line 35
2050struct key_type;
2051#line 35
2052struct key_type;
2053#line 37
2054struct keyring_list;
2055#line 37
2056struct keyring_list;
2057#line 115
2058struct key_user;
2059#line 115 "include/linux/key.h"
2060union __anonunion_ldv_16885_158 {
2061 time_t expiry ;
2062 time_t revoked_at ;
2063};
2064#line 115 "include/linux/key.h"
2065union __anonunion_type_data_159 {
2066 struct list_head link ;
2067 unsigned long x[2U] ;
2068 void *p[2U] ;
2069 int reject_error ;
2070};
2071#line 115 "include/linux/key.h"
2072union __anonunion_payload_160 {
2073 unsigned long value ;
2074 void *rcudata ;
2075 void *data ;
2076 struct keyring_list *subscriptions ;
2077};
2078#line 115 "include/linux/key.h"
2079struct key {
2080 atomic_t usage ;
2081 key_serial_t serial ;
2082 struct rb_node serial_node ;
2083 struct key_type *type ;
2084 struct rw_semaphore sem ;
2085 struct key_user *user ;
2086 void *security ;
2087 union __anonunion_ldv_16885_158 ldv_16885 ;
2088 uid_t uid ;
2089 gid_t gid ;
2090 key_perm_t perm ;
2091 unsigned short quotalen ;
2092 unsigned short datalen ;
2093 unsigned long flags ;
2094 char *description ;
2095 union __anonunion_type_data_159 type_data ;
2096 union __anonunion_payload_160 payload ;
2097};
2098#line 316
2099struct audit_context;
2100#line 316
2101struct audit_context;
2102#line 27 "include/linux/selinux.h"
2103struct group_info {
2104 atomic_t usage ;
2105 int ngroups ;
2106 int nblocks ;
2107 gid_t small_block[32U] ;
2108 gid_t *blocks[0U] ;
2109};
2110#line 77 "include/linux/cred.h"
2111struct thread_group_cred {
2112 atomic_t usage ;
2113 pid_t tgid ;
2114 spinlock_t lock ;
2115 struct key *session_keyring ;
2116 struct key *process_keyring ;
2117 struct rcu_head rcu ;
2118};
2119#line 91 "include/linux/cred.h"
2120struct cred {
2121 atomic_t usage ;
2122 atomic_t subscribers ;
2123 void *put_addr ;
2124 unsigned int magic ;
2125 uid_t uid ;
2126 gid_t gid ;
2127 uid_t suid ;
2128 gid_t sgid ;
2129 uid_t euid ;
2130 gid_t egid ;
2131 uid_t fsuid ;
2132 gid_t fsgid ;
2133 unsigned int securebits ;
2134 kernel_cap_t cap_inheritable ;
2135 kernel_cap_t cap_permitted ;
2136 kernel_cap_t cap_effective ;
2137 kernel_cap_t cap_bset ;
2138 unsigned char jit_keyring ;
2139 struct key *thread_keyring ;
2140 struct key *request_key_auth ;
2141 struct thread_group_cred *tgcred ;
2142 void *security ;
2143 struct user_struct *user ;
2144 struct user_namespace *user_ns ;
2145 struct group_info *group_info ;
2146 struct rcu_head rcu ;
2147};
2148#line 264
2149struct llist_node;
2150#line 64 "include/linux/llist.h"
2151struct llist_node {
2152 struct llist_node *next ;
2153};
2154#line 185
2155struct futex_pi_state;
2156#line 185
2157struct futex_pi_state;
2158#line 186
2159struct robust_list_head;
2160#line 186
2161struct robust_list_head;
2162#line 187
2163struct bio_list;
2164#line 187
2165struct bio_list;
2166#line 188
2167struct fs_struct;
2168#line 188
2169struct fs_struct;
2170#line 189
2171struct perf_event_context;
2172#line 189
2173struct perf_event_context;
2174#line 190
2175struct blk_plug;
2176#line 190
2177struct blk_plug;
2178#line 149 "include/linux/sched.h"
2179struct cfs_rq;
2180#line 149
2181struct cfs_rq;
2182#line 44 "include/linux/aio_abi.h"
2183struct io_event {
2184 __u64 data ;
2185 __u64 obj ;
2186 __s64 res ;
2187 __s64 res2 ;
2188};
2189#line 106
2190struct kioctx;
2191#line 106
2192struct kioctx;
2193#line 107 "include/linux/aio_abi.h"
2194union __anonunion_ki_obj_161 {
2195 void *user ;
2196 struct task_struct *tsk ;
2197};
2198#line 107
2199struct eventfd_ctx;
2200#line 107 "include/linux/aio_abi.h"
2201struct kiocb {
2202 struct list_head ki_run_list ;
2203 unsigned long ki_flags ;
2204 int ki_users ;
2205 unsigned int ki_key ;
2206 struct file *ki_filp ;
2207 struct kioctx *ki_ctx ;
2208 int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
2209 ssize_t (*ki_retry)(struct kiocb * ) ;
2210 void (*ki_dtor)(struct kiocb * ) ;
2211 union __anonunion_ki_obj_161 ki_obj ;
2212 __u64 ki_user_data ;
2213 loff_t ki_pos ;
2214 void *private ;
2215 unsigned short ki_opcode ;
2216 size_t ki_nbytes ;
2217 char *ki_buf ;
2218 size_t ki_left ;
2219 struct iovec ki_inline_vec ;
2220 struct iovec *ki_iovec ;
2221 unsigned long ki_nr_segs ;
2222 unsigned long ki_cur_seg ;
2223 struct list_head ki_list ;
2224 struct list_head ki_batch ;
2225 struct eventfd_ctx *ki_eventfd ;
2226};
2227#line 162 "include/linux/aio.h"
2228struct aio_ring_info {
2229 unsigned long mmap_base ;
2230 unsigned long mmap_size ;
2231 struct page **ring_pages ;
2232 spinlock_t ring_lock ;
2233 long nr_pages ;
2234 unsigned int nr ;
2235 unsigned int tail ;
2236 struct page *internal_pages[8U] ;
2237};
2238#line 178 "include/linux/aio.h"
2239struct kioctx {
2240 atomic_t users ;
2241 int dead ;
2242 struct mm_struct *mm ;
2243 unsigned long user_id ;
2244 struct hlist_node list ;
2245 wait_queue_head_t wait ;
2246 spinlock_t ctx_lock ;
2247 int reqs_active ;
2248 struct list_head active_reqs ;
2249 struct list_head run_list ;
2250 unsigned int max_reqs ;
2251 struct aio_ring_info ring_info ;
2252 struct delayed_work wq ;
2253 struct rcu_head rcu_head ;
2254};
2255#line 406 "include/linux/sched.h"
2256struct sighand_struct {
2257 atomic_t count ;
2258 struct k_sigaction action[64U] ;
2259 spinlock_t siglock ;
2260 wait_queue_head_t signalfd_wqh ;
2261};
2262#line 449 "include/linux/sched.h"
2263struct pacct_struct {
2264 int ac_flag ;
2265 long ac_exitcode ;
2266 unsigned long ac_mem ;
2267 cputime_t ac_utime ;
2268 cputime_t ac_stime ;
2269 unsigned long ac_minflt ;
2270 unsigned long ac_majflt ;
2271};
2272#line 457 "include/linux/sched.h"
2273struct cpu_itimer {
2274 cputime_t expires ;
2275 cputime_t incr ;
2276 u32 error ;
2277 u32 incr_error ;
2278};
2279#line 464 "include/linux/sched.h"
2280struct task_cputime {
2281 cputime_t utime ;
2282 cputime_t stime ;
2283 unsigned long long sum_exec_runtime ;
2284};
2285#line 481 "include/linux/sched.h"
2286struct thread_group_cputimer {
2287 struct task_cputime cputime ;
2288 int running ;
2289 raw_spinlock_t lock ;
2290};
2291#line 517
2292struct autogroup;
2293#line 517
2294struct autogroup;
2295#line 518
2296struct tty_struct;
2297#line 518
2298struct taskstats;
2299#line 518
2300struct tty_audit_buf;
2301#line 518 "include/linux/sched.h"
2302struct signal_struct {
2303 atomic_t sigcnt ;
2304 atomic_t live ;
2305 int nr_threads ;
2306 wait_queue_head_t wait_chldexit ;
2307 struct task_struct *curr_target ;
2308 struct sigpending shared_pending ;
2309 int group_exit_code ;
2310 int notify_count ;
2311 struct task_struct *group_exit_task ;
2312 int group_stop_count ;
2313 unsigned int flags ;
2314 unsigned char is_child_subreaper : 1 ;
2315 unsigned char has_child_subreaper : 1 ;
2316 struct list_head posix_timers ;
2317 struct hrtimer real_timer ;
2318 struct pid *leader_pid ;
2319 ktime_t it_real_incr ;
2320 struct cpu_itimer it[2U] ;
2321 struct thread_group_cputimer cputimer ;
2322 struct task_cputime cputime_expires ;
2323 struct list_head cpu_timers[3U] ;
2324 struct pid *tty_old_pgrp ;
2325 int leader ;
2326 struct tty_struct *tty ;
2327 struct autogroup *autogroup ;
2328 cputime_t utime ;
2329 cputime_t stime ;
2330 cputime_t cutime ;
2331 cputime_t cstime ;
2332 cputime_t gtime ;
2333 cputime_t cgtime ;
2334 cputime_t prev_utime ;
2335 cputime_t prev_stime ;
2336 unsigned long nvcsw ;
2337 unsigned long nivcsw ;
2338 unsigned long cnvcsw ;
2339 unsigned long cnivcsw ;
2340 unsigned long min_flt ;
2341 unsigned long maj_flt ;
2342 unsigned long cmin_flt ;
2343 unsigned long cmaj_flt ;
2344 unsigned long inblock ;
2345 unsigned long oublock ;
2346 unsigned long cinblock ;
2347 unsigned long coublock ;
2348 unsigned long maxrss ;
2349 unsigned long cmaxrss ;
2350 struct task_io_accounting ioac ;
2351 unsigned long long sum_sched_runtime ;
2352 struct rlimit rlim[16U] ;
2353 struct pacct_struct pacct ;
2354 struct taskstats *stats ;
2355 unsigned int audit_tty ;
2356 struct tty_audit_buf *tty_audit_buf ;
2357 struct rw_semaphore group_rwsem ;
2358 int oom_adj ;
2359 int oom_score_adj ;
2360 int oom_score_adj_min ;
2361 struct mutex cred_guard_mutex ;
2362};
2363#line 699 "include/linux/sched.h"
2364struct user_struct {
2365 atomic_t __count ;
2366 atomic_t processes ;
2367 atomic_t files ;
2368 atomic_t sigpending ;
2369 atomic_t inotify_watches ;
2370 atomic_t inotify_devs ;
2371 atomic_t fanotify_listeners ;
2372 atomic_long_t epoll_watches ;
2373 unsigned long mq_bytes ;
2374 unsigned long locked_shm ;
2375 struct key *uid_keyring ;
2376 struct key *session_keyring ;
2377 struct hlist_node uidhash_node ;
2378 uid_t uid ;
2379 struct user_namespace *user_ns ;
2380 atomic_long_t locked_vm ;
2381};
2382#line 744
2383struct reclaim_state;
2384#line 744
2385struct reclaim_state;
2386#line 745 "include/linux/sched.h"
2387struct sched_info {
2388 unsigned long pcount ;
2389 unsigned long long run_delay ;
2390 unsigned long long last_arrival ;
2391 unsigned long long last_queued ;
2392};
2393#line 760 "include/linux/sched.h"
2394struct task_delay_info {
2395 spinlock_t lock ;
2396 unsigned int flags ;
2397 struct timespec blkio_start ;
2398 struct timespec blkio_end ;
2399 u64 blkio_delay ;
2400 u64 swapin_delay ;
2401 u32 blkio_count ;
2402 u32 swapin_count ;
2403 struct timespec freepages_start ;
2404 struct timespec freepages_end ;
2405 u64 freepages_delay ;
2406 u32 freepages_count ;
2407};
2408#line 1069
2409struct io_context;
2410#line 1069
2411struct io_context;
2412#line 1097
2413struct pipe_inode_info;
2414#line 1097
2415struct pipe_inode_info;
2416#line 1099
2417struct rq;
2418#line 1099
2419struct rq;
2420#line 1100 "include/linux/sched.h"
2421struct sched_class {
2422 struct sched_class const *next ;
2423 void (*enqueue_task)(struct rq * , struct task_struct * , int ) ;
2424 void (*dequeue_task)(struct rq * , struct task_struct * , int ) ;
2425 void (*yield_task)(struct rq * ) ;
2426 bool (*yield_to_task)(struct rq * , struct task_struct * , bool ) ;
2427 void (*check_preempt_curr)(struct rq * , struct task_struct * , int ) ;
2428 struct task_struct *(*pick_next_task)(struct rq * ) ;
2429 void (*put_prev_task)(struct rq * , struct task_struct * ) ;
2430 int (*select_task_rq)(struct task_struct * , int , int ) ;
2431 void (*pre_schedule)(struct rq * , struct task_struct * ) ;
2432 void (*post_schedule)(struct rq * ) ;
2433 void (*task_waking)(struct task_struct * ) ;
2434 void (*task_woken)(struct rq * , struct task_struct * ) ;
2435 void (*set_cpus_allowed)(struct task_struct * , struct cpumask const * ) ;
2436 void (*rq_online)(struct rq * ) ;
2437 void (*rq_offline)(struct rq * ) ;
2438 void (*set_curr_task)(struct rq * ) ;
2439 void (*task_tick)(struct rq * , struct task_struct * , int ) ;
2440 void (*task_fork)(struct task_struct * ) ;
2441 void (*switched_from)(struct rq * , struct task_struct * ) ;
2442 void (*switched_to)(struct rq * , struct task_struct * ) ;
2443 void (*prio_changed)(struct rq * , struct task_struct * , int ) ;
2444 unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
2445 void (*task_move_group)(struct task_struct * , int ) ;
2446};
2447#line 1165 "include/linux/sched.h"
2448struct load_weight {
2449 unsigned long weight ;
2450 unsigned long inv_weight ;
2451};
2452#line 1170 "include/linux/sched.h"
2453struct sched_statistics {
2454 u64 wait_start ;
2455 u64 wait_max ;
2456 u64 wait_count ;
2457 u64 wait_sum ;
2458 u64 iowait_count ;
2459 u64 iowait_sum ;
2460 u64 sleep_start ;
2461 u64 sleep_max ;
2462 s64 sum_sleep_runtime ;
2463 u64 block_start ;
2464 u64 block_max ;
2465 u64 exec_max ;
2466 u64 slice_max ;
2467 u64 nr_migrations_cold ;
2468 u64 nr_failed_migrations_affine ;
2469 u64 nr_failed_migrations_running ;
2470 u64 nr_failed_migrations_hot ;
2471 u64 nr_forced_migrations ;
2472 u64 nr_wakeups ;
2473 u64 nr_wakeups_sync ;
2474 u64 nr_wakeups_migrate ;
2475 u64 nr_wakeups_local ;
2476 u64 nr_wakeups_remote ;
2477 u64 nr_wakeups_affine ;
2478 u64 nr_wakeups_affine_attempts ;
2479 u64 nr_wakeups_passive ;
2480 u64 nr_wakeups_idle ;
2481};
2482#line 1205 "include/linux/sched.h"
2483struct sched_entity {
2484 struct load_weight load ;
2485 struct rb_node run_node ;
2486 struct list_head group_node ;
2487 unsigned int on_rq ;
2488 u64 exec_start ;
2489 u64 sum_exec_runtime ;
2490 u64 vruntime ;
2491 u64 prev_sum_exec_runtime ;
2492 u64 nr_migrations ;
2493 struct sched_statistics statistics ;
2494 struct sched_entity *parent ;
2495 struct cfs_rq *cfs_rq ;
2496 struct cfs_rq *my_q ;
2497};
2498#line 1231
2499struct rt_rq;
2500#line 1231 "include/linux/sched.h"
2501struct sched_rt_entity {
2502 struct list_head run_list ;
2503 unsigned long timeout ;
2504 unsigned int time_slice ;
2505 int nr_cpus_allowed ;
2506 struct sched_rt_entity *back ;
2507 struct sched_rt_entity *parent ;
2508 struct rt_rq *rt_rq ;
2509 struct rt_rq *my_q ;
2510};
2511#line 1255
2512struct mem_cgroup;
2513#line 1255 "include/linux/sched.h"
2514struct memcg_batch_info {
2515 int do_batch ;
2516 struct mem_cgroup *memcg ;
2517 unsigned long nr_pages ;
2518 unsigned long memsw_nr_pages ;
2519};
2520#line 1616
2521struct files_struct;
2522#line 1616
2523struct css_set;
2524#line 1616
2525struct compat_robust_list_head;
2526#line 1616 "include/linux/sched.h"
2527struct task_struct {
2528 long volatile state ;
2529 void *stack ;
2530 atomic_t usage ;
2531 unsigned int flags ;
2532 unsigned int ptrace ;
2533 struct llist_node wake_entry ;
2534 int on_cpu ;
2535 int on_rq ;
2536 int prio ;
2537 int static_prio ;
2538 int normal_prio ;
2539 unsigned int rt_priority ;
2540 struct sched_class const *sched_class ;
2541 struct sched_entity se ;
2542 struct sched_rt_entity rt ;
2543 struct hlist_head preempt_notifiers ;
2544 unsigned char fpu_counter ;
2545 unsigned int policy ;
2546 cpumask_t cpus_allowed ;
2547 struct sched_info sched_info ;
2548 struct list_head tasks ;
2549 struct plist_node pushable_tasks ;
2550 struct mm_struct *mm ;
2551 struct mm_struct *active_mm ;
2552 unsigned char brk_randomized : 1 ;
2553 int exit_state ;
2554 int exit_code ;
2555 int exit_signal ;
2556 int pdeath_signal ;
2557 unsigned int jobctl ;
2558 unsigned int personality ;
2559 unsigned char did_exec : 1 ;
2560 unsigned char in_execve : 1 ;
2561 unsigned char in_iowait : 1 ;
2562 unsigned char sched_reset_on_fork : 1 ;
2563 unsigned char sched_contributes_to_load : 1 ;
2564 unsigned char irq_thread : 1 ;
2565 pid_t pid ;
2566 pid_t tgid ;
2567 unsigned long stack_canary ;
2568 struct task_struct *real_parent ;
2569 struct task_struct *parent ;
2570 struct list_head children ;
2571 struct list_head sibling ;
2572 struct task_struct *group_leader ;
2573 struct list_head ptraced ;
2574 struct list_head ptrace_entry ;
2575 struct pid_link pids[3U] ;
2576 struct list_head thread_group ;
2577 struct completion *vfork_done ;
2578 int *set_child_tid ;
2579 int *clear_child_tid ;
2580 cputime_t utime ;
2581 cputime_t stime ;
2582 cputime_t utimescaled ;
2583 cputime_t stimescaled ;
2584 cputime_t gtime ;
2585 cputime_t prev_utime ;
2586 cputime_t prev_stime ;
2587 unsigned long nvcsw ;
2588 unsigned long nivcsw ;
2589 struct timespec start_time ;
2590 struct timespec real_start_time ;
2591 unsigned long min_flt ;
2592 unsigned long maj_flt ;
2593 struct task_cputime cputime_expires ;
2594 struct list_head cpu_timers[3U] ;
2595 struct cred const *real_cred ;
2596 struct cred const *cred ;
2597 struct cred *replacement_session_keyring ;
2598 char comm[16U] ;
2599 int link_count ;
2600 int total_link_count ;
2601 struct sysv_sem sysvsem ;
2602 unsigned long last_switch_count ;
2603 struct thread_struct thread ;
2604 struct fs_struct *fs ;
2605 struct files_struct *files ;
2606 struct nsproxy *nsproxy ;
2607 struct signal_struct *signal ;
2608 struct sighand_struct *sighand ;
2609 sigset_t blocked ;
2610 sigset_t real_blocked ;
2611 sigset_t saved_sigmask ;
2612 struct sigpending pending ;
2613 unsigned long sas_ss_sp ;
2614 size_t sas_ss_size ;
2615 int (*notifier)(void * ) ;
2616 void *notifier_data ;
2617 sigset_t *notifier_mask ;
2618 struct audit_context *audit_context ;
2619 uid_t loginuid ;
2620 unsigned int sessionid ;
2621 seccomp_t seccomp ;
2622 u32 parent_exec_id ;
2623 u32 self_exec_id ;
2624 spinlock_t alloc_lock ;
2625 raw_spinlock_t pi_lock ;
2626 struct plist_head pi_waiters ;
2627 struct rt_mutex_waiter *pi_blocked_on ;
2628 struct mutex_waiter *blocked_on ;
2629 unsigned int irq_events ;
2630 unsigned long hardirq_enable_ip ;
2631 unsigned long hardirq_disable_ip ;
2632 unsigned int hardirq_enable_event ;
2633 unsigned int hardirq_disable_event ;
2634 int hardirqs_enabled ;
2635 int hardirq_context ;
2636 unsigned long softirq_disable_ip ;
2637 unsigned long softirq_enable_ip ;
2638 unsigned int softirq_disable_event ;
2639 unsigned int softirq_enable_event ;
2640 int softirqs_enabled ;
2641 int softirq_context ;
2642 u64 curr_chain_key ;
2643 int lockdep_depth ;
2644 unsigned int lockdep_recursion ;
2645 struct held_lock held_locks[48U] ;
2646 gfp_t lockdep_reclaim_gfp ;
2647 void *journal_info ;
2648 struct bio_list *bio_list ;
2649 struct blk_plug *plug ;
2650 struct reclaim_state *reclaim_state ;
2651 struct backing_dev_info *backing_dev_info ;
2652 struct io_context *io_context ;
2653 unsigned long ptrace_message ;
2654 siginfo_t *last_siginfo ;
2655 struct task_io_accounting ioac ;
2656 u64 acct_rss_mem1 ;
2657 u64 acct_vm_mem1 ;
2658 cputime_t acct_timexpd ;
2659 nodemask_t mems_allowed ;
2660 seqcount_t mems_allowed_seq ;
2661 int cpuset_mem_spread_rotor ;
2662 int cpuset_slab_spread_rotor ;
2663 struct css_set *cgroups ;
2664 struct list_head cg_list ;
2665 struct robust_list_head *robust_list ;
2666 struct compat_robust_list_head *compat_robust_list ;
2667 struct list_head pi_state_list ;
2668 struct futex_pi_state *pi_state_cache ;
2669 struct perf_event_context *perf_event_ctxp[2U] ;
2670 struct mutex perf_event_mutex ;
2671 struct list_head perf_event_list ;
2672 struct mempolicy *mempolicy ;
2673 short il_next ;
2674 short pref_node_fork ;
2675 struct rcu_head rcu ;
2676 struct pipe_inode_info *splice_pipe ;
2677 struct task_delay_info *delays ;
2678 int make_it_fail ;
2679 int nr_dirtied ;
2680 int nr_dirtied_pause ;
2681 unsigned long dirty_paused_when ;
2682 int latency_record_count ;
2683 struct latency_record latency_record[32U] ;
2684 unsigned long timer_slack_ns ;
2685 unsigned long default_timer_slack_ns ;
2686 struct list_head *scm_work_list ;
2687 unsigned long trace ;
2688 unsigned long trace_recursion ;
2689 struct memcg_batch_info memcg_batch ;
2690 atomic_t ptrace_bp_refcnt ;
2691};
2692#line 413 "include/linux/ptrace.h"
2693struct block_device;
2694#line 413
2695struct block_device;
2696#line 93 "include/linux/bit_spinlock.h"
2697struct hlist_bl_node;
2698#line 93 "include/linux/bit_spinlock.h"
2699struct hlist_bl_head {
2700 struct hlist_bl_node *first ;
2701};
2702#line 36 "include/linux/list_bl.h"
2703struct hlist_bl_node {
2704 struct hlist_bl_node *next ;
2705 struct hlist_bl_node **pprev ;
2706};
2707#line 114 "include/linux/rculist_bl.h"
2708struct nameidata;
2709#line 114
2710struct nameidata;
2711#line 115
2712struct path;
2713#line 115
2714struct path;
2715#line 116
2716struct vfsmount;
2717#line 116
2718struct vfsmount;
2719#line 117 "include/linux/rculist_bl.h"
2720struct qstr {
2721 unsigned int hash ;
2722 unsigned int len ;
2723 unsigned char const *name ;
2724};
2725#line 72 "include/linux/dcache.h"
2726struct dentry_operations;
2727#line 72
2728struct super_block;
2729#line 72 "include/linux/dcache.h"
2730union __anonunion_d_u_163 {
2731 struct list_head d_child ;
2732 struct rcu_head d_rcu ;
2733};
2734#line 72 "include/linux/dcache.h"
2735struct dentry {
2736 unsigned int d_flags ;
2737 seqcount_t d_seq ;
2738 struct hlist_bl_node d_hash ;
2739 struct dentry *d_parent ;
2740 struct qstr d_name ;
2741 struct inode *d_inode ;
2742 unsigned char d_iname[32U] ;
2743 unsigned int d_count ;
2744 spinlock_t d_lock ;
2745 struct dentry_operations const *d_op ;
2746 struct super_block *d_sb ;
2747 unsigned long d_time ;
2748 void *d_fsdata ;
2749 struct list_head d_lru ;
2750 union __anonunion_d_u_163 d_u ;
2751 struct list_head d_subdirs ;
2752 struct list_head d_alias ;
2753};
2754#line 123 "include/linux/dcache.h"
2755struct dentry_operations {
2756 int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
2757 int (*d_hash)(struct dentry const * , struct inode const * , struct qstr * ) ;
2758 int (*d_compare)(struct dentry const * , struct inode const * , struct dentry const * ,
2759 struct inode const * , unsigned int , char const * , struct qstr const * ) ;
2760 int (*d_delete)(struct dentry const * ) ;
2761 void (*d_release)(struct dentry * ) ;
2762 void (*d_prune)(struct dentry * ) ;
2763 void (*d_iput)(struct dentry * , struct inode * ) ;
2764 char *(*d_dname)(struct dentry * , char * , int ) ;
2765 struct vfsmount *(*d_automount)(struct path * ) ;
2766 int (*d_manage)(struct dentry * , bool ) ;
2767};
2768#line 402 "include/linux/dcache.h"
2769struct path {
2770 struct vfsmount *mnt ;
2771 struct dentry *dentry ;
2772};
2773#line 58 "include/linux/radix-tree.h"
2774struct radix_tree_node;
2775#line 58 "include/linux/radix-tree.h"
2776struct radix_tree_root {
2777 unsigned int height ;
2778 gfp_t gfp_mask ;
2779 struct radix_tree_node *rnode ;
2780};
2781#line 45 "include/linux/semaphore.h"
2782struct fiemap_extent {
2783 __u64 fe_logical ;
2784 __u64 fe_physical ;
2785 __u64 fe_length ;
2786 __u64 fe_reserved64[2U] ;
2787 __u32 fe_flags ;
2788 __u32 fe_reserved[3U] ;
2789};
2790#line 38 "include/linux/fiemap.h"
2791struct shrink_control {
2792 gfp_t gfp_mask ;
2793 unsigned long nr_to_scan ;
2794};
2795#line 14 "include/linux/shrinker.h"
2796struct shrinker {
2797 int (*shrink)(struct shrinker * , struct shrink_control * ) ;
2798 int seeks ;
2799 long batch ;
2800 struct list_head list ;
2801 atomic_long_t nr_in_batch ;
2802};
2803#line 43
2804enum migrate_mode {
2805 MIGRATE_ASYNC = 0,
2806 MIGRATE_SYNC_LIGHT = 1,
2807 MIGRATE_SYNC = 2
2808} ;
2809#line 49
2810struct export_operations;
2811#line 49
2812struct export_operations;
2813#line 50
2814struct poll_table_struct;
2815#line 50
2816struct poll_table_struct;
2817#line 51
2818struct kstatfs;
2819#line 51
2820struct kstatfs;
2821#line 435 "include/linux/fs.h"
2822struct iattr {
2823 unsigned int ia_valid ;
2824 umode_t ia_mode ;
2825 uid_t ia_uid ;
2826 gid_t ia_gid ;
2827 loff_t ia_size ;
2828 struct timespec ia_atime ;
2829 struct timespec ia_mtime ;
2830 struct timespec ia_ctime ;
2831 struct file *ia_file ;
2832};
2833#line 119 "include/linux/quota.h"
2834struct if_dqinfo {
2835 __u64 dqi_bgrace ;
2836 __u64 dqi_igrace ;
2837 __u32 dqi_flags ;
2838 __u32 dqi_valid ;
2839};
2840#line 152 "include/linux/quota.h"
2841struct fs_disk_quota {
2842 __s8 d_version ;
2843 __s8 d_flags ;
2844 __u16 d_fieldmask ;
2845 __u32 d_id ;
2846 __u64 d_blk_hardlimit ;
2847 __u64 d_blk_softlimit ;
2848 __u64 d_ino_hardlimit ;
2849 __u64 d_ino_softlimit ;
2850 __u64 d_bcount ;
2851 __u64 d_icount ;
2852 __s32 d_itimer ;
2853 __s32 d_btimer ;
2854 __u16 d_iwarns ;
2855 __u16 d_bwarns ;
2856 __s32 d_padding2 ;
2857 __u64 d_rtb_hardlimit ;
2858 __u64 d_rtb_softlimit ;
2859 __u64 d_rtbcount ;
2860 __s32 d_rtbtimer ;
2861 __u16 d_rtbwarns ;
2862 __s16 d_padding3 ;
2863 char d_padding4[8U] ;
2864};
2865#line 75 "include/linux/dqblk_xfs.h"
2866struct fs_qfilestat {
2867 __u64 qfs_ino ;
2868 __u64 qfs_nblks ;
2869 __u32 qfs_nextents ;
2870};
2871#line 150 "include/linux/dqblk_xfs.h"
2872typedef struct fs_qfilestat fs_qfilestat_t;
2873#line 151 "include/linux/dqblk_xfs.h"
2874struct fs_quota_stat {
2875 __s8 qs_version ;
2876 __u16 qs_flags ;
2877 __s8 qs_pad ;
2878 fs_qfilestat_t qs_uquota ;
2879 fs_qfilestat_t qs_gquota ;
2880 __u32 qs_incoredqs ;
2881 __s32 qs_btimelimit ;
2882 __s32 qs_itimelimit ;
2883 __s32 qs_rtbtimelimit ;
2884 __u16 qs_bwarnlimit ;
2885 __u16 qs_iwarnlimit ;
2886};
2887#line 165
2888struct dquot;
2889#line 165
2890struct dquot;
2891#line 185 "include/linux/quota.h"
2892typedef __kernel_uid32_t qid_t;
2893#line 186 "include/linux/quota.h"
2894typedef long long qsize_t;
2895#line 189 "include/linux/quota.h"
2896struct mem_dqblk {
2897 qsize_t dqb_bhardlimit ;
2898 qsize_t dqb_bsoftlimit ;
2899 qsize_t dqb_curspace ;
2900 qsize_t dqb_rsvspace ;
2901 qsize_t dqb_ihardlimit ;
2902 qsize_t dqb_isoftlimit ;
2903 qsize_t dqb_curinodes ;
2904 time_t dqb_btime ;
2905 time_t dqb_itime ;
2906};
2907#line 211
2908struct quota_format_type;
2909#line 211
2910struct quota_format_type;
2911#line 212 "include/linux/quota.h"
2912struct mem_dqinfo {
2913 struct quota_format_type *dqi_format ;
2914 int dqi_fmt_id ;
2915 struct list_head dqi_dirty_list ;
2916 unsigned long dqi_flags ;
2917 unsigned int dqi_bgrace ;
2918 unsigned int dqi_igrace ;
2919 qsize_t dqi_maxblimit ;
2920 qsize_t dqi_maxilimit ;
2921 void *dqi_priv ;
2922};
2923#line 275 "include/linux/quota.h"
2924struct dquot {
2925 struct hlist_node dq_hash ;
2926 struct list_head dq_inuse ;
2927 struct list_head dq_free ;
2928 struct list_head dq_dirty ;
2929 struct mutex dq_lock ;
2930 atomic_t dq_count ;
2931 wait_queue_head_t dq_wait_unused ;
2932 struct super_block *dq_sb ;
2933 unsigned int dq_id ;
2934 loff_t dq_off ;
2935 unsigned long dq_flags ;
2936 short dq_type ;
2937 struct mem_dqblk dq_dqb ;
2938};
2939#line 303 "include/linux/quota.h"
2940struct quota_format_ops {
2941 int (*check_quota_file)(struct super_block * , int ) ;
2942 int (*read_file_info)(struct super_block * , int ) ;
2943 int (*write_file_info)(struct super_block * , int ) ;
2944 int (*free_file_info)(struct super_block * , int ) ;
2945 int (*read_dqblk)(struct dquot * ) ;
2946 int (*commit_dqblk)(struct dquot * ) ;
2947 int (*release_dqblk)(struct dquot * ) ;
2948};
2949#line 314 "include/linux/quota.h"
2950struct dquot_operations {
2951 int (*write_dquot)(struct dquot * ) ;
2952 struct dquot *(*alloc_dquot)(struct super_block * , int ) ;
2953 void (*destroy_dquot)(struct dquot * ) ;
2954 int (*acquire_dquot)(struct dquot * ) ;
2955 int (*release_dquot)(struct dquot * ) ;
2956 int (*mark_dirty)(struct dquot * ) ;
2957 int (*write_info)(struct super_block * , int ) ;
2958 qsize_t *(*get_reserved_space)(struct inode * ) ;
2959};
2960#line 328 "include/linux/quota.h"
2961struct quotactl_ops {
2962 int (*quota_on)(struct super_block * , int , int , struct path * ) ;
2963 int (*quota_on_meta)(struct super_block * , int , int ) ;
2964 int (*quota_off)(struct super_block * , int ) ;
2965 int (*quota_sync)(struct super_block * , int , int ) ;
2966 int (*get_info)(struct super_block * , int , struct if_dqinfo * ) ;
2967 int (*set_info)(struct super_block * , int , struct if_dqinfo * ) ;
2968 int (*get_dqblk)(struct super_block * , int , qid_t , struct fs_disk_quota * ) ;
2969 int (*set_dqblk)(struct super_block * , int , qid_t , struct fs_disk_quota * ) ;
2970 int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
2971 int (*set_xstate)(struct super_block * , unsigned int , int ) ;
2972};
2973#line 344 "include/linux/quota.h"
2974struct quota_format_type {
2975 int qf_fmt_id ;
2976 struct quota_format_ops const *qf_ops ;
2977 struct module *qf_owner ;
2978 struct quota_format_type *qf_next ;
2979};
2980#line 390 "include/linux/quota.h"
2981struct quota_info {
2982 unsigned int flags ;
2983 struct mutex dqio_mutex ;
2984 struct mutex dqonoff_mutex ;
2985 struct rw_semaphore dqptr_sem ;
2986 struct inode *files[2U] ;
2987 struct mem_dqinfo info[2U] ;
2988 struct quota_format_ops const *ops[2U] ;
2989};
2990#line 421
2991struct writeback_control;
2992#line 421
2993struct writeback_control;
2994#line 585 "include/linux/fs.h"
2995union __anonunion_arg_165 {
2996 char *buf ;
2997 void *data ;
2998};
2999#line 585 "include/linux/fs.h"
3000struct __anonstruct_read_descriptor_t_164 {
3001 size_t written ;
3002 size_t count ;
3003 union __anonunion_arg_165 arg ;
3004 int error ;
3005};
3006#line 585 "include/linux/fs.h"
3007typedef struct __anonstruct_read_descriptor_t_164 read_descriptor_t;
3008#line 588 "include/linux/fs.h"
3009struct address_space_operations {
3010 int (*writepage)(struct page * , struct writeback_control * ) ;
3011 int (*readpage)(struct file * , struct page * ) ;
3012 int (*writepages)(struct address_space * , struct writeback_control * ) ;
3013 int (*set_page_dirty)(struct page * ) ;
3014 int (*readpages)(struct file * , struct address_space * , struct list_head * ,
3015 unsigned int ) ;
3016 int (*write_begin)(struct file * , struct address_space * , loff_t , unsigned int ,
3017 unsigned int , struct page ** , void ** ) ;
3018 int (*write_end)(struct file * , struct address_space * , loff_t , unsigned int ,
3019 unsigned int , struct page * , void * ) ;
3020 sector_t (*bmap)(struct address_space * , sector_t ) ;
3021 void (*invalidatepage)(struct page * , unsigned long ) ;
3022 int (*releasepage)(struct page * , gfp_t ) ;
3023 void (*freepage)(struct page * ) ;
3024 ssize_t (*direct_IO)(int , struct kiocb * , struct iovec const * , loff_t ,
3025 unsigned long ) ;
3026 int (*get_xip_mem)(struct address_space * , unsigned long , int , void ** , unsigned long * ) ;
3027 int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode ) ;
3028 int (*launder_page)(struct page * ) ;
3029 int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long ) ;
3030 int (*error_remove_page)(struct address_space * , struct page * ) ;
3031};
3032#line 642 "include/linux/fs.h"
3033struct address_space {
3034 struct inode *host ;
3035 struct radix_tree_root page_tree ;
3036 spinlock_t tree_lock ;
3037 unsigned int i_mmap_writable ;
3038 struct prio_tree_root i_mmap ;
3039 struct list_head i_mmap_nonlinear ;
3040 struct mutex i_mmap_mutex ;
3041 unsigned long nrpages ;
3042 unsigned long writeback_index ;
3043 struct address_space_operations const *a_ops ;
3044 unsigned long flags ;
3045 struct backing_dev_info *backing_dev_info ;
3046 spinlock_t private_lock ;
3047 struct list_head private_list ;
3048 struct address_space *assoc_mapping ;
3049};
3050#line 664
3051struct hd_struct;
3052#line 664 "include/linux/fs.h"
3053struct block_device {
3054 dev_t bd_dev ;
3055 int bd_openers ;
3056 struct inode *bd_inode ;
3057 struct super_block *bd_super ;
3058 struct mutex bd_mutex ;
3059 struct list_head bd_inodes ;
3060 void *bd_claiming ;
3061 void *bd_holder ;
3062 int bd_holders ;
3063 bool bd_write_holder ;
3064 struct list_head bd_holder_disks ;
3065 struct block_device *bd_contains ;
3066 unsigned int bd_block_size ;
3067 struct hd_struct *bd_part ;
3068 unsigned int bd_part_count ;
3069 int bd_invalidated ;
3070 struct gendisk *bd_disk ;
3071 struct request_queue *bd_queue ;
3072 struct list_head bd_list ;
3073 unsigned long bd_private ;
3074 int bd_fsfreeze_count ;
3075 struct mutex bd_fsfreeze_mutex ;
3076};
3077#line 737
3078struct posix_acl;
3079#line 737
3080struct posix_acl;
3081#line 738
3082struct inode_operations;
3083#line 738 "include/linux/fs.h"
3084union __anonunion_ldv_20011_166 {
3085 unsigned int const i_nlink ;
3086 unsigned int __i_nlink ;
3087};
3088#line 738 "include/linux/fs.h"
3089union __anonunion_ldv_20030_167 {
3090 struct list_head i_dentry ;
3091 struct rcu_head i_rcu ;
3092};
3093#line 738
3094struct file_operations;
3095#line 738
3096struct file_lock;
3097#line 738
3098struct cdev;
3099#line 738 "include/linux/fs.h"
3100union __anonunion_ldv_20048_168 {
3101 struct pipe_inode_info *i_pipe ;
3102 struct block_device *i_bdev ;
3103 struct cdev *i_cdev ;
3104};
3105#line 738 "include/linux/fs.h"
3106struct inode {
3107 umode_t i_mode ;
3108 unsigned short i_opflags ;
3109 uid_t i_uid ;
3110 gid_t i_gid ;
3111 unsigned int i_flags ;
3112 struct posix_acl *i_acl ;
3113 struct posix_acl *i_default_acl ;
3114 struct inode_operations const *i_op ;
3115 struct super_block *i_sb ;
3116 struct address_space *i_mapping ;
3117 void *i_security ;
3118 unsigned long i_ino ;
3119 union __anonunion_ldv_20011_166 ldv_20011 ;
3120 dev_t i_rdev ;
3121 struct timespec i_atime ;
3122 struct timespec i_mtime ;
3123 struct timespec i_ctime ;
3124 spinlock_t i_lock ;
3125 unsigned short i_bytes ;
3126 blkcnt_t i_blocks ;
3127 loff_t i_size ;
3128 unsigned long i_state ;
3129 struct mutex i_mutex ;
3130 unsigned long dirtied_when ;
3131 struct hlist_node i_hash ;
3132 struct list_head i_wb_list ;
3133 struct list_head i_lru ;
3134 struct list_head i_sb_list ;
3135 union __anonunion_ldv_20030_167 ldv_20030 ;
3136 atomic_t i_count ;
3137 unsigned int i_blkbits ;
3138 u64 i_version ;
3139 atomic_t i_dio_count ;
3140 atomic_t i_writecount ;
3141 struct file_operations const *i_fop ;
3142 struct file_lock *i_flock ;
3143 struct address_space i_data ;
3144 struct dquot *i_dquot[2U] ;
3145 struct list_head i_devices ;
3146 union __anonunion_ldv_20048_168 ldv_20048 ;
3147 __u32 i_generation ;
3148 __u32 i_fsnotify_mask ;
3149 struct hlist_head i_fsnotify_marks ;
3150 atomic_t i_readcount ;
3151 void *i_private ;
3152};
3153#line 941 "include/linux/fs.h"
3154struct fown_struct {
3155 rwlock_t lock ;
3156 struct pid *pid ;
3157 enum pid_type pid_type ;
3158 uid_t uid ;
3159 uid_t euid ;
3160 int signum ;
3161};
3162#line 949 "include/linux/fs.h"
3163struct file_ra_state {
3164 unsigned long start ;
3165 unsigned int size ;
3166 unsigned int async_size ;
3167 unsigned int ra_pages ;
3168 unsigned int mmap_miss ;
3169 loff_t prev_pos ;
3170};
3171#line 972 "include/linux/fs.h"
3172union __anonunion_f_u_169 {
3173 struct list_head fu_list ;
3174 struct rcu_head fu_rcuhead ;
3175};
3176#line 972 "include/linux/fs.h"
3177struct file {
3178 union __anonunion_f_u_169 f_u ;
3179 struct path f_path ;
3180 struct file_operations const *f_op ;
3181 spinlock_t f_lock ;
3182 int f_sb_list_cpu ;
3183 atomic_long_t f_count ;
3184 unsigned int f_flags ;
3185 fmode_t f_mode ;
3186 loff_t f_pos ;
3187 struct fown_struct f_owner ;
3188 struct cred const *f_cred ;
3189 struct file_ra_state f_ra ;
3190 u64 f_version ;
3191 void *f_security ;
3192 void *private_data ;
3193 struct list_head f_ep_links ;
3194 struct list_head f_tfile_llink ;
3195 struct address_space *f_mapping ;
3196 unsigned long f_mnt_write_state ;
3197};
3198#line 1111 "include/linux/fs.h"
3199typedef struct files_struct *fl_owner_t;
3200#line 1112 "include/linux/fs.h"
3201struct file_lock_operations {
3202 void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
3203 void (*fl_release_private)(struct file_lock * ) ;
3204};
3205#line 1117 "include/linux/fs.h"
3206struct lock_manager_operations {
3207 int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ;
3208 void (*lm_notify)(struct file_lock * ) ;
3209 int (*lm_grant)(struct file_lock * , struct file_lock * , int ) ;
3210 void (*lm_release_private)(struct file_lock * ) ;
3211 void (*lm_break)(struct file_lock * ) ;
3212 int (*lm_change)(struct file_lock ** , int ) ;
3213};
3214#line 1134
3215struct nlm_lockowner;
3216#line 1134
3217struct nlm_lockowner;
3218#line 1135 "include/linux/fs.h"
3219struct nfs_lock_info {
3220 u32 state ;
3221 struct nlm_lockowner *owner ;
3222 struct list_head list ;
3223};
3224#line 14 "include/linux/nfs_fs_i.h"
3225struct nfs4_lock_state;
3226#line 14
3227struct nfs4_lock_state;
3228#line 15 "include/linux/nfs_fs_i.h"
3229struct nfs4_lock_info {
3230 struct nfs4_lock_state *owner ;
3231};
3232#line 19
3233struct fasync_struct;
3234#line 19 "include/linux/nfs_fs_i.h"
3235struct __anonstruct_afs_171 {
3236 struct list_head link ;
3237 int state ;
3238};
3239#line 19 "include/linux/nfs_fs_i.h"
3240union __anonunion_fl_u_170 {
3241 struct nfs_lock_info nfs_fl ;
3242 struct nfs4_lock_info nfs4_fl ;
3243 struct __anonstruct_afs_171 afs ;
3244};
3245#line 19 "include/linux/nfs_fs_i.h"
3246struct file_lock {
3247 struct file_lock *fl_next ;
3248 struct list_head fl_link ;
3249 struct list_head fl_block ;
3250 fl_owner_t fl_owner ;
3251 unsigned int fl_flags ;
3252 unsigned char fl_type ;
3253 unsigned int fl_pid ;
3254 struct pid *fl_nspid ;
3255 wait_queue_head_t fl_wait ;
3256 struct file *fl_file ;
3257 loff_t fl_start ;
3258 loff_t fl_end ;
3259 struct fasync_struct *fl_fasync ;
3260 unsigned long fl_break_time ;
3261 unsigned long fl_downgrade_time ;
3262 struct file_lock_operations const *fl_ops ;
3263 struct lock_manager_operations const *fl_lmops ;
3264 union __anonunion_fl_u_170 fl_u ;
3265};
3266#line 1221 "include/linux/fs.h"
3267struct fasync_struct {
3268 spinlock_t fa_lock ;
3269 int magic ;
3270 int fa_fd ;
3271 struct fasync_struct *fa_next ;
3272 struct file *fa_file ;
3273 struct rcu_head fa_rcu ;
3274};
3275#line 1417
3276struct file_system_type;
3277#line 1417
3278struct super_operations;
3279#line 1417
3280struct xattr_handler;
3281#line 1417 "include/linux/fs.h"
3282struct super_block {
3283 struct list_head s_list ;
3284 dev_t s_dev ;
3285 unsigned char s_dirt ;
3286 unsigned char s_blocksize_bits ;
3287 unsigned long s_blocksize ;
3288 loff_t s_maxbytes ;
3289 struct file_system_type *s_type ;
3290 struct super_operations const *s_op ;
3291 struct dquot_operations const *dq_op ;
3292 struct quotactl_ops const *s_qcop ;
3293 struct export_operations const *s_export_op ;
3294 unsigned long s_flags ;
3295 unsigned long s_magic ;
3296 struct dentry *s_root ;
3297 struct rw_semaphore s_umount ;
3298 struct mutex s_lock ;
3299 int s_count ;
3300 atomic_t s_active ;
3301 void *s_security ;
3302 struct xattr_handler const **s_xattr ;
3303 struct list_head s_inodes ;
3304 struct hlist_bl_head s_anon ;
3305 struct list_head *s_files ;
3306 struct list_head s_mounts ;
3307 struct list_head s_dentry_lru ;
3308 int s_nr_dentry_unused ;
3309 spinlock_t s_inode_lru_lock ;
3310 struct list_head s_inode_lru ;
3311 int s_nr_inodes_unused ;
3312 struct block_device *s_bdev ;
3313 struct backing_dev_info *s_bdi ;
3314 struct mtd_info *s_mtd ;
3315 struct hlist_node s_instances ;
3316 struct quota_info s_dquot ;
3317 int s_frozen ;
3318 wait_queue_head_t s_wait_unfrozen ;
3319 char s_id[32U] ;
3320 u8 s_uuid[16U] ;
3321 void *s_fs_info ;
3322 unsigned int s_max_links ;
3323 fmode_t s_mode ;
3324 u32 s_time_gran ;
3325 struct mutex s_vfs_rename_mutex ;
3326 char *s_subtype ;
3327 char *s_options ;
3328 struct dentry_operations const *s_d_op ;
3329 int cleancache_poolid ;
3330 struct shrinker s_shrink ;
3331 atomic_long_t s_remove_count ;
3332 int s_readonly_remount ;
3333};
3334#line 1563 "include/linux/fs.h"
3335struct fiemap_extent_info {
3336 unsigned int fi_flags ;
3337 unsigned int fi_extents_mapped ;
3338 unsigned int fi_extents_max ;
3339 struct fiemap_extent *fi_extents_start ;
3340};
3341#line 1602 "include/linux/fs.h"
3342struct file_operations {
3343 struct module *owner ;
3344 loff_t (*llseek)(struct file * , loff_t , int ) ;
3345 ssize_t (*read)(struct file * , char * , size_t , loff_t * ) ;
3346 ssize_t (*write)(struct file * , char const * , size_t , loff_t * ) ;
3347 ssize_t (*aio_read)(struct kiocb * , struct iovec const * , unsigned long ,
3348 loff_t ) ;
3349 ssize_t (*aio_write)(struct kiocb * , struct iovec const * , unsigned long ,
3350 loff_t ) ;
3351 int (*readdir)(struct file * , void * , int (*)(void * , char const * , int ,
3352 loff_t , u64 , unsigned int ) ) ;
3353 unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
3354 long (*unlocked_ioctl)(struct file * , unsigned int , unsigned long ) ;
3355 long (*compat_ioctl)(struct file * , unsigned int , unsigned long ) ;
3356 int (*mmap)(struct file * , struct vm_area_struct * ) ;
3357 int (*open)(struct inode * , struct file * ) ;
3358 int (*flush)(struct file * , fl_owner_t ) ;
3359 int (*release)(struct inode * , struct file * ) ;
3360 int (*fsync)(struct file * , loff_t , loff_t , int ) ;
3361 int (*aio_fsync)(struct kiocb * , int ) ;
3362 int (*fasync)(int , struct file * , int ) ;
3363 int (*lock)(struct file * , int , struct file_lock * ) ;
3364 ssize_t (*sendpage)(struct file * , struct page * , int , size_t , loff_t * ,
3365 int ) ;
3366 unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long ,
3367 unsigned long , unsigned long ) ;
3368 int (*check_flags)(int ) ;
3369 int (*flock)(struct file * , int , struct file_lock * ) ;
3370 ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t ,
3371 unsigned int ) ;
3372 ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t ,
3373 unsigned int ) ;
3374 int (*setlease)(struct file * , long , struct file_lock ** ) ;
3375 long (*fallocate)(struct file * , int , loff_t , loff_t ) ;
3376};
3377#line 1637 "include/linux/fs.h"
3378struct inode_operations {
3379 struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
3380 void *(*follow_link)(struct dentry * , struct nameidata * ) ;
3381 int (*permission)(struct inode * , int ) ;
3382 struct posix_acl *(*get_acl)(struct inode * , int ) ;
3383 int (*readlink)(struct dentry * , char * , int ) ;
3384 void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
3385 int (*create)(struct inode * , struct dentry * , umode_t , struct nameidata * ) ;
3386 int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
3387 int (*unlink)(struct inode * , struct dentry * ) ;
3388 int (*symlink)(struct inode * , struct dentry * , char const * ) ;
3389 int (*mkdir)(struct inode * , struct dentry * , umode_t ) ;
3390 int (*rmdir)(struct inode * , struct dentry * ) ;
3391 int (*mknod)(struct inode * , struct dentry * , umode_t , dev_t ) ;
3392 int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
3393 void (*truncate)(struct inode * ) ;
3394 int (*setattr)(struct dentry * , struct iattr * ) ;
3395 int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
3396 int (*setxattr)(struct dentry * , char const * , void const * , size_t , int ) ;
3397 ssize_t (*getxattr)(struct dentry * , char const * , void * , size_t ) ;
3398 ssize_t (*listxattr)(struct dentry * , char * , size_t ) ;
3399 int (*removexattr)(struct dentry * , char const * ) ;
3400 void (*truncate_range)(struct inode * , loff_t , loff_t ) ;
3401 int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 , u64 ) ;
3402};
3403#line 1682 "include/linux/fs.h"
3404struct super_operations {
3405 struct inode *(*alloc_inode)(struct super_block * ) ;
3406 void (*destroy_inode)(struct inode * ) ;
3407 void (*dirty_inode)(struct inode * , int ) ;
3408 int (*write_inode)(struct inode * , struct writeback_control * ) ;
3409 int (*drop_inode)(struct inode * ) ;
3410 void (*evict_inode)(struct inode * ) ;
3411 void (*put_super)(struct super_block * ) ;
3412 void (*write_super)(struct super_block * ) ;
3413 int (*sync_fs)(struct super_block * , int ) ;
3414 int (*freeze_fs)(struct super_block * ) ;
3415 int (*unfreeze_fs)(struct super_block * ) ;
3416 int (*statfs)(struct dentry * , struct kstatfs * ) ;
3417 int (*remount_fs)(struct super_block * , int * , char * ) ;
3418 void (*umount_begin)(struct super_block * ) ;
3419 int (*show_options)(struct seq_file * , struct dentry * ) ;
3420 int (*show_devname)(struct seq_file * , struct dentry * ) ;
3421 int (*show_path)(struct seq_file * , struct dentry * ) ;
3422 int (*show_stats)(struct seq_file * , struct dentry * ) ;
3423 ssize_t (*quota_read)(struct super_block * , int , char * , size_t , loff_t ) ;
3424 ssize_t (*quota_write)(struct super_block * , int , char const * , size_t ,
3425 loff_t ) ;
3426 int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t ) ;
3427 int (*nr_cached_objects)(struct super_block * ) ;
3428 void (*free_cached_objects)(struct super_block * , int ) ;
3429};
3430#line 1834 "include/linux/fs.h"
3431struct file_system_type {
3432 char const *name ;
3433 int fs_flags ;
3434 struct dentry *(*mount)(struct file_system_type * , int , char const * , void * ) ;
3435 void (*kill_sb)(struct super_block * ) ;
3436 struct module *owner ;
3437 struct file_system_type *next ;
3438 struct hlist_head fs_supers ;
3439 struct lock_class_key s_lock_key ;
3440 struct lock_class_key s_umount_key ;
3441 struct lock_class_key s_vfs_rename_key ;
3442 struct lock_class_key i_lock_key ;
3443 struct lock_class_key i_mutex_key ;
3444 struct lock_class_key i_mutex_dir_key ;
3445};
3446#line 82 "include/linux/hdreg.h"
3447struct hd_geometry {
3448 unsigned char heads ;
3449 unsigned char sectors ;
3450 unsigned short cylinders ;
3451 unsigned long start ;
3452};
3453#line 57 "include/linux/blkpg.h"
3454struct exception_table_entry {
3455 unsigned long insn ;
3456 unsigned long fixup ;
3457};
3458#line 248 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
3459struct erase_unit_header_t {
3460 uint8_t LinkTargetTuple[5U] ;
3461 uint8_t DataOrgTuple[10U] ;
3462 uint8_t NumTransferUnits ;
3463 uint32_t EraseCount ;
3464 uint16_t LogicalEUN ;
3465 uint8_t BlockSize ;
3466 uint8_t EraseUnitSize ;
3467 uint16_t FirstPhysicalEUN ;
3468 uint16_t NumEraseUnits ;
3469 uint32_t FormattedSize ;
3470 uint32_t FirstVMAddress ;
3471 uint16_t NumVMPages ;
3472 uint8_t Flags ;
3473 uint8_t Code ;
3474 uint32_t SerialNumber ;
3475 uint32_t AltEUHOffset ;
3476 uint32_t BAMOffset ;
3477 uint8_t Reserved[12U] ;
3478 uint8_t EndTuple[2U] ;
3479};
3480#line 54 "include/linux/mtd/ftl.h"
3481typedef struct erase_unit_header_t erase_unit_header_t;
3482#line 97 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3483struct eun_info_t {
3484 uint32_t Offset ;
3485 uint32_t EraseCount ;
3486 uint32_t Free ;
3487 uint32_t Deleted ;
3488};
3489#line 137 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3490struct xfer_info_t {
3491 uint32_t Offset ;
3492 uint32_t EraseCount ;
3493 uint16_t state ;
3494};
3495#line 142 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3496struct partition_t {
3497 struct mtd_blktrans_dev mbd ;
3498 uint32_t state ;
3499 uint32_t *VirtualBlockMap ;
3500 uint32_t *VirtualPageMap ;
3501 uint32_t FreeTotal ;
3502 struct eun_info_t *EUNInfo ;
3503 struct xfer_info_t *XferInfo ;
3504 uint16_t bam_index ;
3505 uint32_t *bam_cache ;
3506 uint16_t DataUnits ;
3507 uint32_t BlocksPerUnit ;
3508 erase_unit_header_t header ;
3509};
3510#line 147 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3511typedef struct partition_t partition_t;
3512#line 1 "<compiler builtins>"
3513long __builtin_expect(long , long ) ;
3514#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3515void ldv_spin_lock(void) ;
3516#line 3
3517void ldv_spin_unlock(void) ;
3518#line 4
3519int ldv_spin_trylock(void) ;
3520#line 101 "include/linux/printk.h"
3521extern int printk(char const * , ...) ;
3522#line 45 "include/linux/dynamic_debug.h"
3523extern int __dynamic_pr_debug(struct _ddebug * , char const * , ...) ;
3524#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
3525extern void *memset(void * , int , size_t ) ;
3526#line 64
3527extern int strcmp(char const * , char const * ) ;
3528#line 82 "include/linux/jiffies.h"
3529extern unsigned long volatile jiffies ;
3530#line 54 "include/linux/vmalloc.h"
3531extern void *vmalloc(unsigned long ) ;
3532#line 57
3533void *ldv_vmalloc_19(unsigned long ldv_func_arg1 ) ;
3534#line 70
3535extern void vfree(void const * ) ;
3536#line 26 "include/linux/export.h"
3537extern struct module __this_module ;
3538#line 161 "include/linux/slab.h"
3539extern void kfree(void const * ) ;
3540#line 220 "include/linux/slub_def.h"
3541extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t ) ;
3542#line 223
3543void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
3544#line 225
3545extern void *__kmalloc(size_t , gfp_t ) ;
3546#line 268 "include/linux/slub_def.h"
3547__inline static void *ldv_kmalloc_12(size_t size , gfp_t flags )
3548{ void *tmp___2 ;
3549
3550 {
3551 {
3552#line 283
3553 tmp___2 = __kmalloc(size, flags);
3554 }
3555#line 283
3556 return (tmp___2);
3557}
3558}
3559#line 268
3560__inline static void *kmalloc(size_t size , gfp_t flags ) ;
3561#line 353 "include/linux/slab.h"
3562__inline static void *kzalloc(size_t size , gfp_t flags ) ;
3563#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3564extern void *__VERIFIER_nondet_pointer(void) ;
3565#line 11
3566void ldv_check_alloc_flags(gfp_t flags ) ;
3567#line 12
3568void ldv_check_alloc_nonatomic(void) ;
3569#line 14
3570struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
3571#line 87 "include/linux/mtd/blktrans.h"
3572extern int register_mtd_blktrans(struct mtd_blktrans_ops * ) ;
3573#line 88
3574extern int deregister_mtd_blktrans(struct mtd_blktrans_ops * ) ;
3575#line 89
3576extern int add_mtd_blktrans_dev(struct mtd_blktrans_dev * ) ;
3577#line 90
3578extern int del_mtd_blktrans_dev(struct mtd_blktrans_dev * ) ;
3579#line 246 "include/linux/mtd/mtd.h"
3580extern int mtd_erase(struct mtd_info * , struct erase_info * ) ;
3581#line 252
3582extern int mtd_read(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
3583#line 254
3584extern int mtd_write(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
3585#line 294 "include/linux/mtd/mtd.h"
3586__inline static void mtd_sync(struct mtd_info *mtd )
3587{ void (*__cil_tmp2)(struct mtd_info * ) ;
3588 unsigned long __cil_tmp3 ;
3589 unsigned long __cil_tmp4 ;
3590 unsigned long __cil_tmp5 ;
3591 void (*__cil_tmp6)(struct mtd_info * ) ;
3592 unsigned long __cil_tmp7 ;
3593 unsigned long __cil_tmp8 ;
3594 unsigned long __cil_tmp9 ;
3595 void (*__cil_tmp10)(struct mtd_info * ) ;
3596
3597 {
3598 {
3599#line 296
3600 __cil_tmp2 = (void (*)(struct mtd_info * ))0;
3601#line 296
3602 __cil_tmp3 = (unsigned long )__cil_tmp2;
3603#line 296
3604 __cil_tmp4 = (unsigned long )mtd;
3605#line 296
3606 __cil_tmp5 = __cil_tmp4 + 224;
3607#line 296
3608 __cil_tmp6 = *((void (**)(struct mtd_info * ))__cil_tmp5);
3609#line 296
3610 __cil_tmp7 = (unsigned long )__cil_tmp6;
3611#line 296
3612 if (__cil_tmp7 != __cil_tmp3) {
3613 {
3614#line 297
3615 __cil_tmp8 = (unsigned long )mtd;
3616#line 297
3617 __cil_tmp9 = __cil_tmp8 + 224;
3618#line 297
3619 __cil_tmp10 = *((void (**)(struct mtd_info * ))__cil_tmp9);
3620#line 297
3621 (*__cil_tmp10)(mtd);
3622 }
3623 } else {
3624
3625 }
3626 }
3627#line 298
3628 return;
3629}
3630}
3631#line 95 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3632static int shuffle_freq = 50;
3633#line 162
3634static void ftl_erase_callback(struct erase_info *erase ) ;
3635#line 173 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
3636static int scan_header(partition_t *part )
3637{ erase_unit_header_t header ;
3638 loff_t offset ;
3639 loff_t max_offset ;
3640 size_t ret ;
3641 int err ;
3642 unsigned long long tmp ;
3643 int tmp___0 ;
3644 loff_t tmp___1 ;
3645 unsigned long __cil_tmp10 ;
3646 unsigned long __cil_tmp11 ;
3647 unsigned long __cil_tmp12 ;
3648 unsigned long __cil_tmp13 ;
3649 unsigned long __cil_tmp14 ;
3650 unsigned long __cil_tmp15 ;
3651 struct mtd_info *__cil_tmp16 ;
3652 unsigned long __cil_tmp17 ;
3653 unsigned long __cil_tmp18 ;
3654 uint64_t __cil_tmp19 ;
3655 unsigned long __cil_tmp20 ;
3656 unsigned long __cil_tmp21 ;
3657 unsigned long __cil_tmp22 ;
3658 struct mtd_info *__cil_tmp23 ;
3659 unsigned long __cil_tmp24 ;
3660 unsigned long __cil_tmp25 ;
3661 unsigned long __cil_tmp26 ;
3662 unsigned long __cil_tmp27 ;
3663 unsigned long __cil_tmp28 ;
3664 struct mtd_info *__cil_tmp29 ;
3665 u_char *__cil_tmp30 ;
3666 unsigned long __cil_tmp31 ;
3667 uint8_t (*__cil_tmp32)[10U] ;
3668 char const *__cil_tmp33 ;
3669 char const *__cil_tmp34 ;
3670 unsigned long __cil_tmp35 ;
3671 unsigned long __cil_tmp36 ;
3672 unsigned long __cil_tmp37 ;
3673 struct mtd_info *__cil_tmp38 ;
3674 unsigned long __cil_tmp39 ;
3675 unsigned long __cil_tmp40 ;
3676 uint32_t __cil_tmp41 ;
3677 unsigned long __cil_tmp42 ;
3678 unsigned long __cil_tmp43 ;
3679 unsigned long __cil_tmp44 ;
3680 struct mtd_info *__cil_tmp45 ;
3681 unsigned long __cil_tmp46 ;
3682 unsigned long __cil_tmp47 ;
3683 uint32_t __cil_tmp48 ;
3684 unsigned long long __cil_tmp49 ;
3685 unsigned long long __cil_tmp50 ;
3686 unsigned long long __cil_tmp51 ;
3687 unsigned long __cil_tmp52 ;
3688 uint8_t __cil_tmp53 ;
3689 unsigned int __cil_tmp54 ;
3690 unsigned long __cil_tmp55 ;
3691 uint8_t __cil_tmp56 ;
3692 unsigned int __cil_tmp57 ;
3693 unsigned long __cil_tmp58 ;
3694 uint8_t __cil_tmp59 ;
3695 unsigned int __cil_tmp60 ;
3696 unsigned long __cil_tmp61 ;
3697 uint16_t __cil_tmp62 ;
3698 int __cil_tmp63 ;
3699 unsigned long __cil_tmp64 ;
3700 uint8_t __cil_tmp65 ;
3701 unsigned short __cil_tmp66 ;
3702 int __cil_tmp67 ;
3703 unsigned long __cil_tmp68 ;
3704 unsigned long __cil_tmp69 ;
3705 unsigned long __cil_tmp70 ;
3706 struct mtd_info *__cil_tmp71 ;
3707 unsigned long __cil_tmp72 ;
3708 unsigned long __cil_tmp73 ;
3709 uint32_t __cil_tmp74 ;
3710 unsigned long __cil_tmp75 ;
3711 uint8_t __cil_tmp76 ;
3712 int __cil_tmp77 ;
3713 int __cil_tmp78 ;
3714 uint32_t __cil_tmp79 ;
3715 unsigned long __cil_tmp80 ;
3716 uint8_t __cil_tmp81 ;
3717 int __cil_tmp82 ;
3718 int __cil_tmp83 ;
3719 unsigned long __cil_tmp84 ;
3720 unsigned long __cil_tmp85 ;
3721 unsigned long __cil_tmp86 ;
3722 struct mtd_info *__cil_tmp87 ;
3723 unsigned long __cil_tmp88 ;
3724 unsigned long __cil_tmp89 ;
3725 uint32_t __cil_tmp90 ;
3726 unsigned long __cil_tmp91 ;
3727 unsigned long __cil_tmp92 ;
3728 erase_unit_header_t *__cil_tmp93 ;
3729
3730 {
3731#line 179
3732 __cil_tmp10 = 424 + 28;
3733#line 179
3734 __cil_tmp11 = (unsigned long )part;
3735#line 179
3736 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
3737#line 179
3738 *((uint32_t *)__cil_tmp12) = 0U;
3739 {
3740#line 180
3741 __cil_tmp13 = 0 + 24;
3742#line 180
3743 __cil_tmp14 = (unsigned long )part;
3744#line 180
3745 __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
3746#line 180
3747 __cil_tmp16 = *((struct mtd_info **)__cil_tmp15);
3748#line 180
3749 __cil_tmp17 = (unsigned long )__cil_tmp16;
3750#line 180
3751 __cil_tmp18 = __cil_tmp17 + 8;
3752#line 180
3753 __cil_tmp19 = *((uint64_t *)__cil_tmp18);
3754#line 180
3755 if (1048576ULL < __cil_tmp19) {
3756#line 180
3757 tmp = 1048576ULL;
3758 } else {
3759#line 180
3760 __cil_tmp20 = 0 + 24;
3761#line 180
3762 __cil_tmp21 = (unsigned long )part;
3763#line 180
3764 __cil_tmp22 = __cil_tmp21 + __cil_tmp20;
3765#line 180
3766 __cil_tmp23 = *((struct mtd_info **)__cil_tmp22);
3767#line 180
3768 __cil_tmp24 = (unsigned long )__cil_tmp23;
3769#line 180
3770 __cil_tmp25 = __cil_tmp24 + 8;
3771#line 180
3772 tmp = *((uint64_t *)__cil_tmp25);
3773 }
3774 }
3775#line 180
3776 max_offset = (loff_t )tmp;
3777#line 182
3778 offset = 0LL;
3779#line 182
3780 goto ldv_22220;
3781 ldv_22219:
3782 {
3783#line 186
3784 __cil_tmp26 = 0 + 24;
3785#line 186
3786 __cil_tmp27 = (unsigned long )part;
3787#line 186
3788 __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
3789#line 186
3790 __cil_tmp29 = *((struct mtd_info **)__cil_tmp28);
3791#line 186
3792 __cil_tmp30 = (u_char *)(& header);
3793#line 186
3794 err = mtd_read(__cil_tmp29, offset, 68UL, & ret, __cil_tmp30);
3795 }
3796#line 189
3797 if (err != 0) {
3798#line 190
3799 return (err);
3800 } else {
3801
3802 }
3803 {
3804#line 192
3805 __cil_tmp31 = (unsigned long )(& header) + 5;
3806#line 192
3807 __cil_tmp32 = (uint8_t (*)[10U])__cil_tmp31;
3808#line 192
3809 __cil_tmp33 = (char const *)__cil_tmp32;
3810#line 192
3811 __cil_tmp34 = __cil_tmp33 + 3U;
3812#line 192
3813 tmp___0 = strcmp(__cil_tmp34, "FTL100");
3814 }
3815#line 192
3816 if (tmp___0 == 0) {
3817#line 192
3818 goto ldv_22218;
3819 } else {
3820
3821 }
3822 {
3823#line 184
3824 __cil_tmp35 = 0 + 24;
3825#line 184
3826 __cil_tmp36 = (unsigned long )part;
3827#line 184
3828 __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
3829#line 184
3830 __cil_tmp38 = *((struct mtd_info **)__cil_tmp37);
3831#line 184
3832 __cil_tmp39 = (unsigned long )__cil_tmp38;
3833#line 184
3834 __cil_tmp40 = __cil_tmp39 + 16;
3835#line 184
3836 __cil_tmp41 = *((uint32_t *)__cil_tmp40);
3837#line 184
3838 if (__cil_tmp41 != 0U) {
3839#line 184
3840 __cil_tmp42 = 0 + 24;
3841#line 184
3842 __cil_tmp43 = (unsigned long )part;
3843#line 184
3844 __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
3845#line 184
3846 __cil_tmp45 = *((struct mtd_info **)__cil_tmp44);
3847#line 184
3848 __cil_tmp46 = (unsigned long )__cil_tmp45;
3849#line 184
3850 __cil_tmp47 = __cil_tmp46 + 16;
3851#line 184
3852 __cil_tmp48 = *((uint32_t *)__cil_tmp47);
3853#line 184
3854 tmp___1 = (loff_t )__cil_tmp48;
3855 } else {
3856#line 184
3857 tmp___1 = 8192LL;
3858 }
3859 }
3860#line 184
3861 offset = tmp___1 + offset;
3862 ldv_22220: ;
3863 {
3864#line 182
3865 __cil_tmp49 = (unsigned long long )max_offset;
3866#line 182
3867 __cil_tmp50 = (unsigned long long )offset;
3868#line 182
3869 __cil_tmp51 = __cil_tmp50 + 68ULL;
3870#line 182
3871 if (__cil_tmp51 < __cil_tmp49) {
3872#line 184
3873 goto ldv_22219;
3874 } else {
3875#line 186
3876 goto ldv_22218;
3877 }
3878 }
3879 ldv_22218: ;
3880#line 195
3881 if (offset == max_offset) {
3882 {
3883#line 196
3884 printk("<5>ftl_cs: FTL header not found.\n");
3885 }
3886#line 197
3887 return (-2);
3888 } else {
3889
3890 }
3891 {
3892#line 199
3893 __cil_tmp52 = (unsigned long )(& header) + 22;
3894#line 199
3895 __cil_tmp53 = *((uint8_t *)__cil_tmp52);
3896#line 199
3897 __cil_tmp54 = (unsigned int )__cil_tmp53;
3898#line 199
3899 if (__cil_tmp54 != 9U) {
3900 {
3901#line 202
3902 printk("<5>ftl_cs: FTL header corrupt!\n");
3903 }
3904#line 203
3905 return (-1);
3906 } else {
3907 {
3908#line 199
3909 __cil_tmp55 = (unsigned long )(& header) + 23;
3910#line 199
3911 __cil_tmp56 = *((uint8_t *)__cil_tmp55);
3912#line 199
3913 __cil_tmp57 = (unsigned int )__cil_tmp56;
3914#line 199
3915 if (__cil_tmp57 <= 9U) {
3916 {
3917#line 202
3918 printk("<5>ftl_cs: FTL header corrupt!\n");
3919 }
3920#line 203
3921 return (-1);
3922 } else {
3923 {
3924#line 199
3925 __cil_tmp58 = (unsigned long )(& header) + 23;
3926#line 199
3927 __cil_tmp59 = *((uint8_t *)__cil_tmp58);
3928#line 199
3929 __cil_tmp60 = (unsigned int )__cil_tmp59;
3930#line 199
3931 if (__cil_tmp60 > 31U) {
3932 {
3933#line 202
3934 printk("<5>ftl_cs: FTL header corrupt!\n");
3935 }
3936#line 203
3937 return (-1);
3938 } else {
3939 {
3940#line 199
3941 __cil_tmp61 = (unsigned long )(& header) + 26;
3942#line 199
3943 __cil_tmp62 = *((uint16_t *)__cil_tmp61);
3944#line 199
3945 __cil_tmp63 = (int )__cil_tmp62;
3946#line 199
3947 __cil_tmp64 = (unsigned long )(& header) + 15;
3948#line 199
3949 __cil_tmp65 = *((uint8_t *)__cil_tmp64);
3950#line 199
3951 __cil_tmp66 = (unsigned short )__cil_tmp65;
3952#line 199
3953 __cil_tmp67 = (int )__cil_tmp66;
3954#line 199
3955 if (__cil_tmp67 >= __cil_tmp63) {
3956 {
3957#line 202
3958 printk("<5>ftl_cs: FTL header corrupt!\n");
3959 }
3960#line 203
3961 return (-1);
3962 } else {
3963
3964 }
3965 }
3966 }
3967 }
3968 }
3969 }
3970 }
3971 }
3972 {
3973#line 205
3974 __cil_tmp68 = 0 + 24;
3975#line 205
3976 __cil_tmp69 = (unsigned long )part;
3977#line 205
3978 __cil_tmp70 = __cil_tmp69 + __cil_tmp68;
3979#line 205
3980 __cil_tmp71 = *((struct mtd_info **)__cil_tmp70);
3981#line 205
3982 __cil_tmp72 = (unsigned long )__cil_tmp71;
3983#line 205
3984 __cil_tmp73 = __cil_tmp72 + 16;
3985#line 205
3986 __cil_tmp74 = *((uint32_t *)__cil_tmp73);
3987#line 205
3988 __cil_tmp75 = (unsigned long )(& header) + 23;
3989#line 205
3990 __cil_tmp76 = *((uint8_t *)__cil_tmp75);
3991#line 205
3992 __cil_tmp77 = (int )__cil_tmp76;
3993#line 205
3994 __cil_tmp78 = 1 << __cil_tmp77;
3995#line 205
3996 __cil_tmp79 = (uint32_t )__cil_tmp78;
3997#line 205
3998 if (__cil_tmp79 != __cil_tmp74) {
3999 {
4000#line 206
4001 __cil_tmp80 = (unsigned long )(& header) + 23;
4002#line 206
4003 __cil_tmp81 = *((uint8_t *)__cil_tmp80);
4004#line 206
4005 __cil_tmp82 = (int )__cil_tmp81;
4006#line 206
4007 __cil_tmp83 = 1 << __cil_tmp82;
4008#line 206
4009 __cil_tmp84 = 0 + 24;
4010#line 206
4011 __cil_tmp85 = (unsigned long )part;
4012#line 206
4013 __cil_tmp86 = __cil_tmp85 + __cil_tmp84;
4014#line 206
4015 __cil_tmp87 = *((struct mtd_info **)__cil_tmp86);
4016#line 206
4017 __cil_tmp88 = (unsigned long )__cil_tmp87;
4018#line 206
4019 __cil_tmp89 = __cil_tmp88 + 16;
4020#line 206
4021 __cil_tmp90 = *((uint32_t *)__cil_tmp89);
4022#line 206
4023 printk("<5>ftl: FTL EraseUnitSize %x != MTD erasesize %x\n", __cil_tmp83, __cil_tmp90);
4024 }
4025#line 208
4026 return (-1);
4027 } else {
4028
4029 }
4030 }
4031#line 210
4032 __cil_tmp91 = (unsigned long )part;
4033#line 210
4034 __cil_tmp92 = __cil_tmp91 + 424;
4035#line 210
4036 __cil_tmp93 = & header;
4037#line 210
4038 *((erase_unit_header_t *)__cil_tmp92) = *__cil_tmp93;
4039#line 211
4040 return (0);
4041}
4042}
4043#line 214 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
4044static int build_maps(partition_t *part )
4045{ erase_unit_header_t header ;
4046 uint16_t xvalid ;
4047 uint16_t xtrans ;
4048 uint16_t i ;
4049 unsigned int blocks ;
4050 unsigned int j ;
4051 int hdr_ok ;
4052 int ret ;
4053 ssize_t retval ;
4054 loff_t offset ;
4055 void *tmp ;
4056 void *tmp___0 ;
4057 int tmp___1 ;
4058 void *tmp___2 ;
4059 void *tmp___3 ;
4060 unsigned long __cil_tmp17 ;
4061 unsigned long __cil_tmp18 ;
4062 unsigned long __cil_tmp19 ;
4063 unsigned long __cil_tmp20 ;
4064 unsigned long __cil_tmp21 ;
4065 uint8_t __cil_tmp22 ;
4066 uint16_t __cil_tmp23 ;
4067 int __cil_tmp24 ;
4068 unsigned long __cil_tmp25 ;
4069 unsigned long __cil_tmp26 ;
4070 unsigned long __cil_tmp27 ;
4071 uint16_t __cil_tmp28 ;
4072 int __cil_tmp29 ;
4073 int __cil_tmp30 ;
4074 unsigned long __cil_tmp31 ;
4075 unsigned long __cil_tmp32 ;
4076 uint16_t __cil_tmp33 ;
4077 unsigned long __cil_tmp34 ;
4078 unsigned long __cil_tmp35 ;
4079 unsigned long __cil_tmp36 ;
4080 unsigned long __cil_tmp37 ;
4081 struct eun_info_t *__cil_tmp38 ;
4082 unsigned long __cil_tmp39 ;
4083 unsigned long __cil_tmp40 ;
4084 unsigned long __cil_tmp41 ;
4085 struct eun_info_t *__cil_tmp42 ;
4086 unsigned long __cil_tmp43 ;
4087 unsigned long __cil_tmp44 ;
4088 unsigned long __cil_tmp45 ;
4089 unsigned long __cil_tmp46 ;
4090 struct eun_info_t *__cil_tmp47 ;
4091 struct eun_info_t *__cil_tmp48 ;
4092 int __cil_tmp49 ;
4093 int __cil_tmp50 ;
4094 int __cil_tmp51 ;
4095 unsigned long __cil_tmp52 ;
4096 unsigned long __cil_tmp53 ;
4097 uint16_t __cil_tmp54 ;
4098 int __cil_tmp55 ;
4099 unsigned long __cil_tmp56 ;
4100 unsigned long __cil_tmp57 ;
4101 unsigned long __cil_tmp58 ;
4102 uint8_t __cil_tmp59 ;
4103 unsigned long __cil_tmp60 ;
4104 unsigned long __cil_tmp61 ;
4105 unsigned long __cil_tmp62 ;
4106 unsigned long __cil_tmp63 ;
4107 struct xfer_info_t *__cil_tmp64 ;
4108 unsigned long __cil_tmp65 ;
4109 unsigned long __cil_tmp66 ;
4110 unsigned long __cil_tmp67 ;
4111 struct xfer_info_t *__cil_tmp68 ;
4112 unsigned long __cil_tmp69 ;
4113 unsigned long __cil_tmp70 ;
4114 unsigned long __cil_tmp71 ;
4115 unsigned long __cil_tmp72 ;
4116 uint8_t __cil_tmp73 ;
4117 int __cil_tmp74 ;
4118 unsigned long __cil_tmp75 ;
4119 unsigned long __cil_tmp76 ;
4120 unsigned long __cil_tmp77 ;
4121 uint16_t __cil_tmp78 ;
4122 int __cil_tmp79 ;
4123 int __cil_tmp80 ;
4124 int __cil_tmp81 ;
4125 int __cil_tmp82 ;
4126 unsigned long __cil_tmp83 ;
4127 unsigned long __cil_tmp84 ;
4128 unsigned long __cil_tmp85 ;
4129 struct mtd_info *__cil_tmp86 ;
4130 size_t *__cil_tmp87 ;
4131 u_char *__cil_tmp88 ;
4132 unsigned long __cil_tmp89 ;
4133 uint8_t (*__cil_tmp90)[10U] ;
4134 char const *__cil_tmp91 ;
4135 char const *__cil_tmp92 ;
4136 unsigned long __cil_tmp93 ;
4137 unsigned long __cil_tmp94 ;
4138 uint16_t __cil_tmp95 ;
4139 int __cil_tmp96 ;
4140 unsigned long __cil_tmp97 ;
4141 uint16_t __cil_tmp98 ;
4142 int __cil_tmp99 ;
4143 unsigned long __cil_tmp100 ;
4144 uint16_t __cil_tmp101 ;
4145 unsigned long __cil_tmp102 ;
4146 unsigned long __cil_tmp103 ;
4147 unsigned long __cil_tmp104 ;
4148 struct eun_info_t *__cil_tmp105 ;
4149 struct eun_info_t *__cil_tmp106 ;
4150 uint32_t __cil_tmp107 ;
4151 unsigned long __cil_tmp108 ;
4152 uint16_t __cil_tmp109 ;
4153 unsigned long __cil_tmp110 ;
4154 unsigned long __cil_tmp111 ;
4155 unsigned long __cil_tmp112 ;
4156 struct eun_info_t *__cil_tmp113 ;
4157 struct eun_info_t *__cil_tmp114 ;
4158 unsigned long __cil_tmp115 ;
4159 uint16_t __cil_tmp116 ;
4160 unsigned long __cil_tmp117 ;
4161 unsigned long __cil_tmp118 ;
4162 unsigned long __cil_tmp119 ;
4163 struct eun_info_t *__cil_tmp120 ;
4164 struct eun_info_t *__cil_tmp121 ;
4165 unsigned long __cil_tmp122 ;
4166 unsigned long __cil_tmp123 ;
4167 unsigned long __cil_tmp124 ;
4168 int __cil_tmp125 ;
4169 int __cil_tmp126 ;
4170 int __cil_tmp127 ;
4171 unsigned long __cil_tmp128 ;
4172 unsigned long __cil_tmp129 ;
4173 unsigned long __cil_tmp130 ;
4174 uint8_t __cil_tmp131 ;
4175 unsigned short __cil_tmp132 ;
4176 int __cil_tmp133 ;
4177 unsigned long __cil_tmp134 ;
4178 uint16_t __cil_tmp135 ;
4179 unsigned int __cil_tmp136 ;
4180 unsigned long __cil_tmp137 ;
4181 unsigned long __cil_tmp138 ;
4182 unsigned long __cil_tmp139 ;
4183 struct xfer_info_t *__cil_tmp140 ;
4184 struct xfer_info_t *__cil_tmp141 ;
4185 unsigned long __cil_tmp142 ;
4186 unsigned long __cil_tmp143 ;
4187 unsigned long __cil_tmp144 ;
4188 unsigned long __cil_tmp145 ;
4189 unsigned long __cil_tmp146 ;
4190 struct xfer_info_t *__cil_tmp147 ;
4191 struct xfer_info_t *__cil_tmp148 ;
4192 unsigned long __cil_tmp149 ;
4193 unsigned long __cil_tmp150 ;
4194 unsigned long __cil_tmp151 ;
4195 unsigned long __cil_tmp152 ;
4196 unsigned long __cil_tmp153 ;
4197 unsigned long __cil_tmp154 ;
4198 struct xfer_info_t *__cil_tmp155 ;
4199 struct xfer_info_t *__cil_tmp156 ;
4200 unsigned long __cil_tmp157 ;
4201 unsigned long __cil_tmp158 ;
4202 unsigned long __cil_tmp159 ;
4203 unsigned long __cil_tmp160 ;
4204 unsigned long __cil_tmp161 ;
4205 struct xfer_info_t *__cil_tmp162 ;
4206 struct xfer_info_t *__cil_tmp163 ;
4207 unsigned long __cil_tmp164 ;
4208 unsigned long __cil_tmp165 ;
4209 unsigned long __cil_tmp166 ;
4210 unsigned long __cil_tmp167 ;
4211 unsigned long __cil_tmp168 ;
4212 unsigned long __cil_tmp169 ;
4213 unsigned long __cil_tmp170 ;
4214 unsigned long __cil_tmp171 ;
4215 struct xfer_info_t *__cil_tmp172 ;
4216 struct xfer_info_t *__cil_tmp173 ;
4217 unsigned long __cil_tmp174 ;
4218 unsigned long __cil_tmp175 ;
4219 unsigned long __cil_tmp176 ;
4220 unsigned long __cil_tmp177 ;
4221 unsigned long __cil_tmp178 ;
4222 struct xfer_info_t *__cil_tmp179 ;
4223 struct xfer_info_t *__cil_tmp180 ;
4224 unsigned long __cil_tmp181 ;
4225 unsigned long __cil_tmp182 ;
4226 unsigned long __cil_tmp183 ;
4227 unsigned long __cil_tmp184 ;
4228 unsigned long __cil_tmp185 ;
4229 unsigned long __cil_tmp186 ;
4230 unsigned long __cil_tmp187 ;
4231 unsigned long __cil_tmp188 ;
4232 struct xfer_info_t *__cil_tmp189 ;
4233 struct xfer_info_t *__cil_tmp190 ;
4234 int __cil_tmp191 ;
4235 int __cil_tmp192 ;
4236 int __cil_tmp193 ;
4237 int __cil_tmp194 ;
4238 int __cil_tmp195 ;
4239 unsigned long __cil_tmp196 ;
4240 unsigned long __cil_tmp197 ;
4241 unsigned long __cil_tmp198 ;
4242 uint16_t __cil_tmp199 ;
4243 int __cil_tmp200 ;
4244 erase_unit_header_t *__cil_tmp201 ;
4245 unsigned long __cil_tmp202 ;
4246 unsigned long __cil_tmp203 ;
4247 int __cil_tmp204 ;
4248 unsigned long __cil_tmp205 ;
4249 uint8_t __cil_tmp206 ;
4250 unsigned short __cil_tmp207 ;
4251 int __cil_tmp208 ;
4252 unsigned long __cil_tmp209 ;
4253 uint16_t __cil_tmp210 ;
4254 int __cil_tmp211 ;
4255 int __cil_tmp212 ;
4256 int __cil_tmp213 ;
4257 int __cil_tmp214 ;
4258 unsigned long __cil_tmp215 ;
4259 uint8_t __cil_tmp216 ;
4260 int __cil_tmp217 ;
4261 unsigned long __cil_tmp218 ;
4262 uint32_t __cil_tmp219 ;
4263 unsigned long __cil_tmp220 ;
4264 unsigned long __cil_tmp221 ;
4265 unsigned long __cil_tmp222 ;
4266 unsigned long __cil_tmp223 ;
4267 uint32_t *__cil_tmp224 ;
4268 unsigned long __cil_tmp225 ;
4269 unsigned long __cil_tmp226 ;
4270 unsigned long __cil_tmp227 ;
4271 uint32_t *__cil_tmp228 ;
4272 unsigned long __cil_tmp229 ;
4273 unsigned long __cil_tmp230 ;
4274 unsigned long __cil_tmp231 ;
4275 uint32_t *__cil_tmp232 ;
4276 void *__cil_tmp233 ;
4277 unsigned long __cil_tmp234 ;
4278 unsigned long __cil_tmp235 ;
4279 unsigned long __cil_tmp236 ;
4280 unsigned long __cil_tmp237 ;
4281 unsigned long __cil_tmp238 ;
4282 uint8_t __cil_tmp239 ;
4283 int __cil_tmp240 ;
4284 unsigned long __cil_tmp241 ;
4285 uint8_t __cil_tmp242 ;
4286 int __cil_tmp243 ;
4287 int __cil_tmp244 ;
4288 int __cil_tmp245 ;
4289 unsigned long __cil_tmp246 ;
4290 unsigned long __cil_tmp247 ;
4291 uint32_t __cil_tmp248 ;
4292 unsigned long __cil_tmp249 ;
4293 unsigned long __cil_tmp250 ;
4294 unsigned long __cil_tmp251 ;
4295 unsigned long __cil_tmp252 ;
4296 uint32_t *__cil_tmp253 ;
4297 unsigned long __cil_tmp254 ;
4298 unsigned long __cil_tmp255 ;
4299 unsigned long __cil_tmp256 ;
4300 uint32_t *__cil_tmp257 ;
4301 unsigned long __cil_tmp258 ;
4302 unsigned long __cil_tmp259 ;
4303 unsigned long __cil_tmp260 ;
4304 unsigned long __cil_tmp261 ;
4305 unsigned long __cil_tmp262 ;
4306 unsigned long __cil_tmp263 ;
4307 unsigned long __cil_tmp264 ;
4308 unsigned long __cil_tmp265 ;
4309 struct eun_info_t *__cil_tmp266 ;
4310 struct eun_info_t *__cil_tmp267 ;
4311 unsigned long __cil_tmp268 ;
4312 unsigned long __cil_tmp269 ;
4313 unsigned long __cil_tmp270 ;
4314 unsigned long __cil_tmp271 ;
4315 unsigned long __cil_tmp272 ;
4316 struct eun_info_t *__cil_tmp273 ;
4317 struct eun_info_t *__cil_tmp274 ;
4318 unsigned long __cil_tmp275 ;
4319 unsigned long __cil_tmp276 ;
4320 unsigned long __cil_tmp277 ;
4321 uint32_t __cil_tmp278 ;
4322 unsigned long __cil_tmp279 ;
4323 unsigned long __cil_tmp280 ;
4324 unsigned long __cil_tmp281 ;
4325 struct eun_info_t *__cil_tmp282 ;
4326 struct eun_info_t *__cil_tmp283 ;
4327 uint32_t __cil_tmp284 ;
4328 uint32_t __cil_tmp285 ;
4329 unsigned long __cil_tmp286 ;
4330 unsigned long __cil_tmp287 ;
4331 unsigned long __cil_tmp288 ;
4332 struct mtd_info *__cil_tmp289 ;
4333 unsigned long __cil_tmp290 ;
4334 unsigned long __cil_tmp291 ;
4335 uint32_t __cil_tmp292 ;
4336 unsigned long __cil_tmp293 ;
4337 unsigned long __cil_tmp294 ;
4338 size_t *__cil_tmp295 ;
4339 unsigned long __cil_tmp296 ;
4340 unsigned long __cil_tmp297 ;
4341 uint32_t *__cil_tmp298 ;
4342 u_char *__cil_tmp299 ;
4343 unsigned long __cil_tmp300 ;
4344 unsigned long __cil_tmp301 ;
4345 unsigned long __cil_tmp302 ;
4346 uint32_t *__cil_tmp303 ;
4347 uint32_t *__cil_tmp304 ;
4348 uint32_t __cil_tmp305 ;
4349 unsigned long __cil_tmp306 ;
4350 unsigned long __cil_tmp307 ;
4351 unsigned long __cil_tmp308 ;
4352 struct eun_info_t *__cil_tmp309 ;
4353 struct eun_info_t *__cil_tmp310 ;
4354 unsigned long __cil_tmp311 ;
4355 unsigned long __cil_tmp312 ;
4356 unsigned long __cil_tmp313 ;
4357 unsigned long __cil_tmp314 ;
4358 unsigned long __cil_tmp315 ;
4359 struct eun_info_t *__cil_tmp316 ;
4360 struct eun_info_t *__cil_tmp317 ;
4361 unsigned long __cil_tmp318 ;
4362 unsigned long __cil_tmp319 ;
4363 uint32_t __cil_tmp320 ;
4364 unsigned long __cil_tmp321 ;
4365 unsigned long __cil_tmp322 ;
4366 unsigned long __cil_tmp323 ;
4367 unsigned long __cil_tmp324 ;
4368 uint32_t __cil_tmp325 ;
4369 unsigned long __cil_tmp326 ;
4370 unsigned long __cil_tmp327 ;
4371 unsigned long __cil_tmp328 ;
4372 uint32_t *__cil_tmp329 ;
4373 uint32_t *__cil_tmp330 ;
4374 uint32_t __cil_tmp331 ;
4375 unsigned int __cil_tmp332 ;
4376 unsigned long __cil_tmp333 ;
4377 unsigned long __cil_tmp334 ;
4378 unsigned long __cil_tmp335 ;
4379 uint32_t *__cil_tmp336 ;
4380 uint32_t *__cil_tmp337 ;
4381 uint32_t __cil_tmp338 ;
4382 uint32_t __cil_tmp339 ;
4383 unsigned long __cil_tmp340 ;
4384 unsigned long __cil_tmp341 ;
4385 unsigned long __cil_tmp342 ;
4386 uint32_t *__cil_tmp343 ;
4387 uint32_t *__cil_tmp344 ;
4388 uint32_t __cil_tmp345 ;
4389 uint32_t __cil_tmp346 ;
4390 unsigned long __cil_tmp347 ;
4391 unsigned long __cil_tmp348 ;
4392 unsigned long __cil_tmp349 ;
4393 uint32_t *__cil_tmp350 ;
4394 uint32_t *__cil_tmp351 ;
4395 unsigned long __cil_tmp352 ;
4396 uint8_t __cil_tmp353 ;
4397 int __cil_tmp354 ;
4398 unsigned int __cil_tmp355 ;
4399 unsigned long __cil_tmp356 ;
4400 uint8_t __cil_tmp357 ;
4401 int __cil_tmp358 ;
4402 int __cil_tmp359 ;
4403 int __cil_tmp360 ;
4404 unsigned int __cil_tmp361 ;
4405 unsigned long __cil_tmp362 ;
4406 unsigned long __cil_tmp363 ;
4407 unsigned long __cil_tmp364 ;
4408 uint32_t *__cil_tmp365 ;
4409 uint32_t *__cil_tmp366 ;
4410 uint32_t __cil_tmp367 ;
4411 unsigned long __cil_tmp368 ;
4412 unsigned long __cil_tmp369 ;
4413 unsigned long __cil_tmp370 ;
4414 struct eun_info_t *__cil_tmp371 ;
4415 struct eun_info_t *__cil_tmp372 ;
4416 unsigned long __cil_tmp373 ;
4417 unsigned long __cil_tmp374 ;
4418 unsigned long __cil_tmp375 ;
4419 unsigned long __cil_tmp376 ;
4420 unsigned long __cil_tmp377 ;
4421 struct eun_info_t *__cil_tmp378 ;
4422 struct eun_info_t *__cil_tmp379 ;
4423 unsigned long __cil_tmp380 ;
4424 unsigned long __cil_tmp381 ;
4425 uint32_t __cil_tmp382 ;
4426 unsigned long __cil_tmp383 ;
4427 unsigned long __cil_tmp384 ;
4428 unsigned long __cil_tmp385 ;
4429 uint32_t *__cil_tmp386 ;
4430 uint32_t *__cil_tmp387 ;
4431 uint32_t __cil_tmp388 ;
4432 unsigned long __cil_tmp389 ;
4433 unsigned long __cil_tmp390 ;
4434 unsigned long __cil_tmp391 ;
4435 struct eun_info_t *__cil_tmp392 ;
4436 struct eun_info_t *__cil_tmp393 ;
4437 unsigned long __cil_tmp394 ;
4438 unsigned long __cil_tmp395 ;
4439 unsigned long __cil_tmp396 ;
4440 unsigned long __cil_tmp397 ;
4441 unsigned long __cil_tmp398 ;
4442 struct eun_info_t *__cil_tmp399 ;
4443 struct eun_info_t *__cil_tmp400 ;
4444 unsigned long __cil_tmp401 ;
4445 unsigned long __cil_tmp402 ;
4446 uint32_t __cil_tmp403 ;
4447 unsigned long __cil_tmp404 ;
4448 unsigned long __cil_tmp405 ;
4449 uint32_t __cil_tmp406 ;
4450 int __cil_tmp407 ;
4451 int __cil_tmp408 ;
4452 int __cil_tmp409 ;
4453 unsigned long __cil_tmp410 ;
4454 unsigned long __cil_tmp411 ;
4455 uint16_t __cil_tmp412 ;
4456 int __cil_tmp413 ;
4457 unsigned long __cil_tmp414 ;
4458 unsigned long __cil_tmp415 ;
4459 uint32_t *__cil_tmp416 ;
4460 void const *__cil_tmp417 ;
4461 unsigned long __cil_tmp418 ;
4462 unsigned long __cil_tmp419 ;
4463 uint32_t *__cil_tmp420 ;
4464 void const *__cil_tmp421 ;
4465 unsigned long __cil_tmp422 ;
4466 unsigned long __cil_tmp423 ;
4467 struct xfer_info_t *__cil_tmp424 ;
4468 void const *__cil_tmp425 ;
4469 unsigned long __cil_tmp426 ;
4470 unsigned long __cil_tmp427 ;
4471 struct eun_info_t *__cil_tmp428 ;
4472 void const *__cil_tmp429 ;
4473
4474 {
4475 {
4476#line 219
4477 ret = -1;
4478#line 224
4479 __cil_tmp17 = (unsigned long )part;
4480#line 224
4481 __cil_tmp18 = __cil_tmp17 + 416;
4482#line 224
4483 __cil_tmp19 = 424 + 15;
4484#line 224
4485 __cil_tmp20 = (unsigned long )part;
4486#line 224
4487 __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
4488#line 224
4489 __cil_tmp22 = *((uint8_t *)__cil_tmp21);
4490#line 224
4491 __cil_tmp23 = (uint16_t )__cil_tmp22;
4492#line 224
4493 __cil_tmp24 = (int )__cil_tmp23;
4494#line 224
4495 __cil_tmp25 = 424 + 26;
4496#line 224
4497 __cil_tmp26 = (unsigned long )part;
4498#line 224
4499 __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
4500#line 224
4501 __cil_tmp28 = *((uint16_t *)__cil_tmp27);
4502#line 224
4503 __cil_tmp29 = (int )__cil_tmp28;
4504#line 224
4505 __cil_tmp30 = __cil_tmp29 - __cil_tmp24;
4506#line 224
4507 *((uint16_t *)__cil_tmp18) = (uint16_t )__cil_tmp30;
4508#line 226
4509 __cil_tmp31 = (unsigned long )part;
4510#line 226
4511 __cil_tmp32 = __cil_tmp31 + 416;
4512#line 226
4513 __cil_tmp33 = *((uint16_t *)__cil_tmp32);
4514#line 226
4515 __cil_tmp34 = (unsigned long )__cil_tmp33;
4516#line 226
4517 __cil_tmp35 = __cil_tmp34 * 16UL;
4518#line 226
4519 tmp = kmalloc(__cil_tmp35, 208U);
4520#line 226
4521 __cil_tmp36 = (unsigned long )part;
4522#line 226
4523 __cil_tmp37 = __cil_tmp36 + 384;
4524#line 226
4525 *((struct eun_info_t **)__cil_tmp37) = (struct eun_info_t *)tmp;
4526 }
4527 {
4528#line 228
4529 __cil_tmp38 = (struct eun_info_t *)0;
4530#line 228
4531 __cil_tmp39 = (unsigned long )__cil_tmp38;
4532#line 228
4533 __cil_tmp40 = (unsigned long )part;
4534#line 228
4535 __cil_tmp41 = __cil_tmp40 + 384;
4536#line 228
4537 __cil_tmp42 = *((struct eun_info_t **)__cil_tmp41);
4538#line 228
4539 __cil_tmp43 = (unsigned long )__cil_tmp42;
4540#line 228
4541 if (__cil_tmp43 == __cil_tmp39) {
4542#line 229
4543 goto out;
4544 } else {
4545
4546 }
4547 }
4548#line 230
4549 i = (uint16_t )0U;
4550#line 230
4551 goto ldv_22236;
4552 ldv_22235:
4553#line 231
4554 __cil_tmp44 = (unsigned long )i;
4555#line 231
4556 __cil_tmp45 = (unsigned long )part;
4557#line 231
4558 __cil_tmp46 = __cil_tmp45 + 384;
4559#line 231
4560 __cil_tmp47 = *((struct eun_info_t **)__cil_tmp46);
4561#line 231
4562 __cil_tmp48 = __cil_tmp47 + __cil_tmp44;
4563#line 231
4564 *((uint32_t *)__cil_tmp48) = 4294967295U;
4565#line 230
4566 __cil_tmp49 = (int )i;
4567#line 230
4568 __cil_tmp50 = __cil_tmp49 + 1;
4569#line 230
4570 i = (uint16_t )__cil_tmp50;
4571 ldv_22236: ;
4572 {
4573#line 230
4574 __cil_tmp51 = (int )i;
4575#line 230
4576 __cil_tmp52 = (unsigned long )part;
4577#line 230
4578 __cil_tmp53 = __cil_tmp52 + 416;
4579#line 230
4580 __cil_tmp54 = *((uint16_t *)__cil_tmp53);
4581#line 230
4582 __cil_tmp55 = (int )__cil_tmp54;
4583#line 230
4584 if (__cil_tmp55 > __cil_tmp51) {
4585#line 231
4586 goto ldv_22235;
4587 } else {
4588#line 233
4589 goto ldv_22237;
4590 }
4591 }
4592 ldv_22237:
4593 {
4594#line 232
4595 __cil_tmp56 = 424 + 15;
4596#line 232
4597 __cil_tmp57 = (unsigned long )part;
4598#line 232
4599 __cil_tmp58 = __cil_tmp57 + __cil_tmp56;
4600#line 232
4601 __cil_tmp59 = *((uint8_t *)__cil_tmp58);
4602#line 232
4603 __cil_tmp60 = (unsigned long )__cil_tmp59;
4604#line 232
4605 __cil_tmp61 = __cil_tmp60 * 12UL;
4606#line 232
4607 tmp___0 = kmalloc(__cil_tmp61, 208U);
4608#line 232
4609 __cil_tmp62 = (unsigned long )part;
4610#line 232
4611 __cil_tmp63 = __cil_tmp62 + 392;
4612#line 232
4613 *((struct xfer_info_t **)__cil_tmp63) = (struct xfer_info_t *)tmp___0;
4614 }
4615 {
4616#line 235
4617 __cil_tmp64 = (struct xfer_info_t *)0;
4618#line 235
4619 __cil_tmp65 = (unsigned long )__cil_tmp64;
4620#line 235
4621 __cil_tmp66 = (unsigned long )part;
4622#line 235
4623 __cil_tmp67 = __cil_tmp66 + 392;
4624#line 235
4625 __cil_tmp68 = *((struct xfer_info_t **)__cil_tmp67);
4626#line 235
4627 __cil_tmp69 = (unsigned long )__cil_tmp68;
4628#line 235
4629 if (__cil_tmp69 == __cil_tmp65) {
4630#line 236
4631 goto out_EUNInfo;
4632 } else {
4633
4634 }
4635 }
4636#line 238
4637 xtrans = (uint16_t )0U;
4638#line 238
4639 xvalid = xtrans;
4640#line 239
4641 i = (uint16_t )0U;
4642#line 239
4643 goto ldv_22241;
4644 ldv_22240:
4645 {
4646#line 240
4647 __cil_tmp70 = 424 + 23;
4648#line 240
4649 __cil_tmp71 = (unsigned long )part;
4650#line 240
4651 __cil_tmp72 = __cil_tmp71 + __cil_tmp70;
4652#line 240
4653 __cil_tmp73 = *((uint8_t *)__cil_tmp72);
4654#line 240
4655 __cil_tmp74 = (int )__cil_tmp73;
4656#line 240
4657 __cil_tmp75 = 424 + 24;
4658#line 240
4659 __cil_tmp76 = (unsigned long )part;
4660#line 240
4661 __cil_tmp77 = __cil_tmp76 + __cil_tmp75;
4662#line 240
4663 __cil_tmp78 = *((uint16_t *)__cil_tmp77);
4664#line 240
4665 __cil_tmp79 = (int )__cil_tmp78;
4666#line 240
4667 __cil_tmp80 = (int )i;
4668#line 240
4669 __cil_tmp81 = __cil_tmp80 + __cil_tmp79;
4670#line 240
4671 __cil_tmp82 = __cil_tmp81 << __cil_tmp74;
4672#line 240
4673 offset = (loff_t )__cil_tmp82;
4674#line 242
4675 __cil_tmp83 = 0 + 24;
4676#line 242
4677 __cil_tmp84 = (unsigned long )part;
4678#line 242
4679 __cil_tmp85 = __cil_tmp84 + __cil_tmp83;
4680#line 242
4681 __cil_tmp86 = *((struct mtd_info **)__cil_tmp85);
4682#line 242
4683 __cil_tmp87 = (size_t *)(& retval);
4684#line 242
4685 __cil_tmp88 = (u_char *)(& header);
4686#line 242
4687 ret = mtd_read(__cil_tmp86, offset, 68UL, __cil_tmp87, __cil_tmp88);
4688 }
4689#line 245
4690 if (ret != 0) {
4691#line 246
4692 goto out_XferInfo;
4693 } else {
4694
4695 }
4696 {
4697#line 248
4698 ret = -1;
4699#line 250
4700 __cil_tmp89 = (unsigned long )(& header) + 5;
4701#line 250
4702 __cil_tmp90 = (uint8_t (*)[10U])__cil_tmp89;
4703#line 250
4704 __cil_tmp91 = (char const *)__cil_tmp90;
4705#line 250
4706 __cil_tmp92 = __cil_tmp91 + 3U;
4707#line 250
4708 tmp___1 = strcmp(__cil_tmp92, "FTL100");
4709#line 250
4710 hdr_ok = tmp___1 == 0;
4711 }
4712#line 251
4713 if (hdr_ok != 0) {
4714 {
4715#line 251
4716 __cil_tmp93 = (unsigned long )part;
4717#line 251
4718 __cil_tmp94 = __cil_tmp93 + 416;
4719#line 251
4720 __cil_tmp95 = *((uint16_t *)__cil_tmp94);
4721#line 251
4722 __cil_tmp96 = (int )__cil_tmp95;
4723#line 251
4724 __cil_tmp97 = (unsigned long )(& header) + 20;
4725#line 251
4726 __cil_tmp98 = *((uint16_t *)__cil_tmp97);
4727#line 251
4728 __cil_tmp99 = (int )__cil_tmp98;
4729#line 251
4730 if (__cil_tmp99 < __cil_tmp96) {
4731 {
4732#line 251
4733 __cil_tmp100 = (unsigned long )(& header) + 20;
4734#line 251
4735 __cil_tmp101 = *((uint16_t *)__cil_tmp100);
4736#line 251
4737 __cil_tmp102 = (unsigned long )__cil_tmp101;
4738#line 251
4739 __cil_tmp103 = (unsigned long )part;
4740#line 251
4741 __cil_tmp104 = __cil_tmp103 + 384;
4742#line 251
4743 __cil_tmp105 = *((struct eun_info_t **)__cil_tmp104);
4744#line 251
4745 __cil_tmp106 = __cil_tmp105 + __cil_tmp102;
4746#line 251
4747 __cil_tmp107 = *((uint32_t *)__cil_tmp106);
4748#line 251
4749 if (__cil_tmp107 == 4294967295U) {
4750#line 253
4751 __cil_tmp108 = (unsigned long )(& header) + 20;
4752#line 253
4753 __cil_tmp109 = *((uint16_t *)__cil_tmp108);
4754#line 253
4755 __cil_tmp110 = (unsigned long )__cil_tmp109;
4756#line 253
4757 __cil_tmp111 = (unsigned long )part;
4758#line 253
4759 __cil_tmp112 = __cil_tmp111 + 384;
4760#line 253
4761 __cil_tmp113 = *((struct eun_info_t **)__cil_tmp112);
4762#line 253
4763 __cil_tmp114 = __cil_tmp113 + __cil_tmp110;
4764#line 253
4765 *((uint32_t *)__cil_tmp114) = (uint32_t )offset;
4766#line 254
4767 __cil_tmp115 = (unsigned long )(& header) + 20;
4768#line 254
4769 __cil_tmp116 = *((uint16_t *)__cil_tmp115);
4770#line 254
4771 __cil_tmp117 = (unsigned long )__cil_tmp116;
4772#line 254
4773 __cil_tmp118 = (unsigned long )part;
4774#line 254
4775 __cil_tmp119 = __cil_tmp118 + 384;
4776#line 254
4777 __cil_tmp120 = *((struct eun_info_t **)__cil_tmp119);
4778#line 254
4779 __cil_tmp121 = __cil_tmp120 + __cil_tmp117;
4780#line 254
4781 __cil_tmp122 = (unsigned long )__cil_tmp121;
4782#line 254
4783 __cil_tmp123 = __cil_tmp122 + 4;
4784#line 254
4785 __cil_tmp124 = (unsigned long )(& header) + 16;
4786#line 254
4787 *((uint32_t *)__cil_tmp123) = *((uint32_t *)__cil_tmp124);
4788#line 256
4789 __cil_tmp125 = (int )xvalid;
4790#line 256
4791 __cil_tmp126 = __cil_tmp125 + 1;
4792#line 256
4793 xvalid = (uint16_t )__cil_tmp126;
4794 } else {
4795#line 251
4796 goto _L___0;
4797 }
4798 }
4799 } else {
4800#line 251
4801 goto _L___0;
4802 }
4803 }
4804 } else {
4805 _L___0:
4806 {
4807#line 258
4808 __cil_tmp127 = (int )xtrans;
4809#line 258
4810 __cil_tmp128 = 424 + 15;
4811#line 258
4812 __cil_tmp129 = (unsigned long )part;
4813#line 258
4814 __cil_tmp130 = __cil_tmp129 + __cil_tmp128;
4815#line 258
4816 __cil_tmp131 = *((uint8_t *)__cil_tmp130);
4817#line 258
4818 __cil_tmp132 = (unsigned short )__cil_tmp131;
4819#line 258
4820 __cil_tmp133 = (int )__cil_tmp132;
4821#line 258
4822 if (__cil_tmp133 == __cil_tmp127) {
4823 {
4824#line 259
4825 printk("<5>ftl_cs: format error: too many transfer units!\n");
4826 }
4827#line 261
4828 goto out_XferInfo;
4829 } else {
4830
4831 }
4832 }
4833#line 263
4834 if (hdr_ok != 0) {
4835 {
4836#line 263
4837 __cil_tmp134 = (unsigned long )(& header) + 20;
4838#line 263
4839 __cil_tmp135 = *((uint16_t *)__cil_tmp134);
4840#line 263
4841 __cil_tmp136 = (unsigned int )__cil_tmp135;
4842#line 263
4843 if (__cil_tmp136 == 65535U) {
4844#line 264
4845 __cil_tmp137 = (unsigned long )xtrans;
4846#line 264
4847 __cil_tmp138 = (unsigned long )part;
4848#line 264
4849 __cil_tmp139 = __cil_tmp138 + 392;
4850#line 264
4851 __cil_tmp140 = *((struct xfer_info_t **)__cil_tmp139);
4852#line 264
4853 __cil_tmp141 = __cil_tmp140 + __cil_tmp137;
4854#line 264
4855 __cil_tmp142 = (unsigned long )__cil_tmp141;
4856#line 264
4857 __cil_tmp143 = __cil_tmp142 + 8;
4858#line 264
4859 *((uint16_t *)__cil_tmp143) = (uint16_t )3U;
4860#line 265
4861 __cil_tmp144 = (unsigned long )xtrans;
4862#line 265
4863 __cil_tmp145 = (unsigned long )part;
4864#line 265
4865 __cil_tmp146 = __cil_tmp145 + 392;
4866#line 265
4867 __cil_tmp147 = *((struct xfer_info_t **)__cil_tmp146);
4868#line 265
4869 __cil_tmp148 = __cil_tmp147 + __cil_tmp144;
4870#line 265
4871 __cil_tmp149 = (unsigned long )__cil_tmp148;
4872#line 265
4873 __cil_tmp150 = __cil_tmp149 + 4;
4874#line 265
4875 __cil_tmp151 = (unsigned long )(& header) + 16;
4876#line 265
4877 *((uint32_t *)__cil_tmp150) = *((uint32_t *)__cil_tmp151);
4878 } else {
4879#line 267
4880 __cil_tmp152 = (unsigned long )xtrans;
4881#line 267
4882 __cil_tmp153 = (unsigned long )part;
4883#line 267
4884 __cil_tmp154 = __cil_tmp153 + 392;
4885#line 267
4886 __cil_tmp155 = *((struct xfer_info_t **)__cil_tmp154);
4887#line 267
4888 __cil_tmp156 = __cil_tmp155 + __cil_tmp152;
4889#line 267
4890 __cil_tmp157 = (unsigned long )__cil_tmp156;
4891#line 267
4892 __cil_tmp158 = __cil_tmp157 + 8;
4893#line 267
4894 *((uint16_t *)__cil_tmp158) = (uint16_t )0U;
4895#line 269
4896 __cil_tmp159 = (unsigned long )xtrans;
4897#line 269
4898 __cil_tmp160 = (unsigned long )part;
4899#line 269
4900 __cil_tmp161 = __cil_tmp160 + 392;
4901#line 269
4902 __cil_tmp162 = *((struct xfer_info_t **)__cil_tmp161);
4903#line 269
4904 __cil_tmp163 = __cil_tmp162 + __cil_tmp159;
4905#line 269
4906 __cil_tmp164 = (unsigned long )__cil_tmp163;
4907#line 269
4908 __cil_tmp165 = __cil_tmp164 + 4;
4909#line 269
4910 __cil_tmp166 = 424 + 16;
4911#line 269
4912 __cil_tmp167 = (unsigned long )part;
4913#line 269
4914 __cil_tmp168 = __cil_tmp167 + __cil_tmp166;
4915#line 269
4916 *((uint32_t *)__cil_tmp165) = *((uint32_t *)__cil_tmp168);
4917 }
4918 }
4919 } else {
4920#line 267
4921 __cil_tmp169 = (unsigned long )xtrans;
4922#line 267
4923 __cil_tmp170 = (unsigned long )part;
4924#line 267
4925 __cil_tmp171 = __cil_tmp170 + 392;
4926#line 267
4927 __cil_tmp172 = *((struct xfer_info_t **)__cil_tmp171);
4928#line 267
4929 __cil_tmp173 = __cil_tmp172 + __cil_tmp169;
4930#line 267
4931 __cil_tmp174 = (unsigned long )__cil_tmp173;
4932#line 267
4933 __cil_tmp175 = __cil_tmp174 + 8;
4934#line 267
4935 *((uint16_t *)__cil_tmp175) = (uint16_t )0U;
4936#line 269
4937 __cil_tmp176 = (unsigned long )xtrans;
4938#line 269
4939 __cil_tmp177 = (unsigned long )part;
4940#line 269
4941 __cil_tmp178 = __cil_tmp177 + 392;
4942#line 269
4943 __cil_tmp179 = *((struct xfer_info_t **)__cil_tmp178);
4944#line 269
4945 __cil_tmp180 = __cil_tmp179 + __cil_tmp176;
4946#line 269
4947 __cil_tmp181 = (unsigned long )__cil_tmp180;
4948#line 269
4949 __cil_tmp182 = __cil_tmp181 + 4;
4950#line 269
4951 __cil_tmp183 = 424 + 16;
4952#line 269
4953 __cil_tmp184 = (unsigned long )part;
4954#line 269
4955 __cil_tmp185 = __cil_tmp184 + __cil_tmp183;
4956#line 269
4957 *((uint32_t *)__cil_tmp182) = *((uint32_t *)__cil_tmp185);
4958 }
4959#line 272
4960 __cil_tmp186 = (unsigned long )xtrans;
4961#line 272
4962 __cil_tmp187 = (unsigned long )part;
4963#line 272
4964 __cil_tmp188 = __cil_tmp187 + 392;
4965#line 272
4966 __cil_tmp189 = *((struct xfer_info_t **)__cil_tmp188);
4967#line 272
4968 __cil_tmp190 = __cil_tmp189 + __cil_tmp186;
4969#line 272
4970 *((uint32_t *)__cil_tmp190) = (uint32_t )offset;
4971#line 273
4972 __cil_tmp191 = (int )xtrans;
4973#line 273
4974 __cil_tmp192 = __cil_tmp191 + 1;
4975#line 273
4976 xtrans = (uint16_t )__cil_tmp192;
4977 }
4978#line 239
4979 __cil_tmp193 = (int )i;
4980#line 239
4981 __cil_tmp194 = __cil_tmp193 + 1;
4982#line 239
4983 i = (uint16_t )__cil_tmp194;
4984 ldv_22241: ;
4985 {
4986#line 239
4987 __cil_tmp195 = (int )i;
4988#line 239
4989 __cil_tmp196 = 424 + 26;
4990#line 239
4991 __cil_tmp197 = (unsigned long )part;
4992#line 239
4993 __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
4994#line 239
4995 __cil_tmp199 = *((uint16_t *)__cil_tmp198);
4996#line 239
4997 __cil_tmp200 = (int )__cil_tmp199;
4998#line 239
4999 if (__cil_tmp200 > __cil_tmp195) {
5000#line 240
5001 goto ldv_22240;
5002 } else {
5003#line 242
5004 goto ldv_22242;
5005 }
5006 }
5007 ldv_22242:
5008#line 277
5009 __cil_tmp201 = & header;
5010#line 277
5011 __cil_tmp202 = (unsigned long )part;
5012#line 277
5013 __cil_tmp203 = __cil_tmp202 + 424;
5014#line 277
5015 *__cil_tmp201 = *((erase_unit_header_t *)__cil_tmp203);
5016 {
5017#line 278
5018 __cil_tmp204 = (int )xtrans;
5019#line 278
5020 __cil_tmp205 = (unsigned long )(& header) + 15;
5021#line 278
5022 __cil_tmp206 = *((uint8_t *)__cil_tmp205);
5023#line 278
5024 __cil_tmp207 = (unsigned short )__cil_tmp206;
5025#line 278
5026 __cil_tmp208 = (int )__cil_tmp207;
5027#line 278
5028 if (__cil_tmp208 != __cil_tmp204) {
5029 {
5030#line 280
5031 printk("<5>ftl_cs: format error: erase units don\'t add up!\n");
5032 }
5033#line 282
5034 goto out_XferInfo;
5035 } else {
5036 {
5037#line 278
5038 __cil_tmp209 = (unsigned long )(& header) + 26;
5039#line 278
5040 __cil_tmp210 = *((uint16_t *)__cil_tmp209);
5041#line 278
5042 __cil_tmp211 = (int )__cil_tmp210;
5043#line 278
5044 __cil_tmp212 = (int )xtrans;
5045#line 278
5046 __cil_tmp213 = (int )xvalid;
5047#line 278
5048 __cil_tmp214 = __cil_tmp213 + __cil_tmp212;
5049#line 278
5050 if (__cil_tmp214 != __cil_tmp211) {
5051 {
5052#line 280
5053 printk("<5>ftl_cs: format error: erase units don\'t add up!\n");
5054 }
5055#line 282
5056 goto out_XferInfo;
5057 } else {
5058
5059 }
5060 }
5061 }
5062 }
5063 {
5064#line 286
5065 __cil_tmp215 = (unsigned long )(& header) + 22;
5066#line 286
5067 __cil_tmp216 = *((uint8_t *)__cil_tmp215);
5068#line 286
5069 __cil_tmp217 = (int )__cil_tmp216;
5070#line 286
5071 __cil_tmp218 = (unsigned long )(& header) + 28;
5072#line 286
5073 __cil_tmp219 = *((uint32_t *)__cil_tmp218);
5074#line 286
5075 blocks = __cil_tmp219 >> __cil_tmp217;
5076#line 287
5077 __cil_tmp220 = (unsigned long )blocks;
5078#line 287
5079 __cil_tmp221 = __cil_tmp220 * 4UL;
5080#line 287
5081 tmp___2 = ldv_vmalloc_19(__cil_tmp221);
5082#line 287
5083 __cil_tmp222 = (unsigned long )part;
5084#line 287
5085 __cil_tmp223 = __cil_tmp222 + 360;
5086#line 287
5087 *((uint32_t **)__cil_tmp223) = (uint32_t *)tmp___2;
5088 }
5089 {
5090#line 288
5091 __cil_tmp224 = (uint32_t *)0;
5092#line 288
5093 __cil_tmp225 = (unsigned long )__cil_tmp224;
5094#line 288
5095 __cil_tmp226 = (unsigned long )part;
5096#line 288
5097 __cil_tmp227 = __cil_tmp226 + 360;
5098#line 288
5099 __cil_tmp228 = *((uint32_t **)__cil_tmp227);
5100#line 288
5101 __cil_tmp229 = (unsigned long )__cil_tmp228;
5102#line 288
5103 if (__cil_tmp229 == __cil_tmp225) {
5104#line 289
5105 goto out_XferInfo;
5106 } else {
5107
5108 }
5109 }
5110 {
5111#line 291
5112 __cil_tmp230 = (unsigned long )part;
5113#line 291
5114 __cil_tmp231 = __cil_tmp230 + 360;
5115#line 291
5116 __cil_tmp232 = *((uint32_t **)__cil_tmp231);
5117#line 291
5118 __cil_tmp233 = (void *)__cil_tmp232;
5119#line 291
5120 __cil_tmp234 = (unsigned long )blocks;
5121#line 291
5122 __cil_tmp235 = __cil_tmp234 * 4UL;
5123#line 291
5124 memset(__cil_tmp233, 255, __cil_tmp235);
5125#line 292
5126 __cil_tmp236 = (unsigned long )part;
5127#line 292
5128 __cil_tmp237 = __cil_tmp236 + 420;
5129#line 292
5130 __cil_tmp238 = (unsigned long )(& header) + 22;
5131#line 292
5132 __cil_tmp239 = *((uint8_t *)__cil_tmp238);
5133#line 292
5134 __cil_tmp240 = (int )__cil_tmp239;
5135#line 292
5136 __cil_tmp241 = (unsigned long )(& header) + 23;
5137#line 292
5138 __cil_tmp242 = *((uint8_t *)__cil_tmp241);
5139#line 292
5140 __cil_tmp243 = (int )__cil_tmp242;
5141#line 292
5142 __cil_tmp244 = 1 << __cil_tmp243;
5143#line 292
5144 __cil_tmp245 = __cil_tmp244 >> __cil_tmp240;
5145#line 292
5146 *((uint32_t *)__cil_tmp237) = (uint32_t )__cil_tmp245;
5147#line 294
5148 __cil_tmp246 = (unsigned long )part;
5149#line 294
5150 __cil_tmp247 = __cil_tmp246 + 420;
5151#line 294
5152 __cil_tmp248 = *((uint32_t *)__cil_tmp247);
5153#line 294
5154 __cil_tmp249 = (unsigned long )__cil_tmp248;
5155#line 294
5156 __cil_tmp250 = __cil_tmp249 * 4UL;
5157#line 294
5158 tmp___3 = kmalloc(__cil_tmp250, 208U);
5159#line 294
5160 __cil_tmp251 = (unsigned long )part;
5161#line 294
5162 __cil_tmp252 = __cil_tmp251 + 408;
5163#line 294
5164 *((uint32_t **)__cil_tmp252) = (uint32_t *)tmp___3;
5165 }
5166 {
5167#line 296
5168 __cil_tmp253 = (uint32_t *)0;
5169#line 296
5170 __cil_tmp254 = (unsigned long )__cil_tmp253;
5171#line 296
5172 __cil_tmp255 = (unsigned long )part;
5173#line 296
5174 __cil_tmp256 = __cil_tmp255 + 408;
5175#line 296
5176 __cil_tmp257 = *((uint32_t **)__cil_tmp256);
5177#line 296
5178 __cil_tmp258 = (unsigned long )__cil_tmp257;
5179#line 296
5180 if (__cil_tmp258 == __cil_tmp254) {
5181#line 297
5182 goto out_VirtualBlockMap;
5183 } else {
5184
5185 }
5186 }
5187#line 299
5188 __cil_tmp259 = (unsigned long )part;
5189#line 299
5190 __cil_tmp260 = __cil_tmp259 + 400;
5191#line 299
5192 *((uint16_t *)__cil_tmp260) = (uint16_t )65535U;
5193#line 300
5194 __cil_tmp261 = (unsigned long )part;
5195#line 300
5196 __cil_tmp262 = __cil_tmp261 + 376;
5197#line 300
5198 *((uint32_t *)__cil_tmp262) = 0U;
5199#line 302
5200 i = (uint16_t )0U;
5201#line 302
5202 goto ldv_22249;
5203 ldv_22248:
5204 {
5205#line 303
5206 __cil_tmp263 = (unsigned long )i;
5207#line 303
5208 __cil_tmp264 = (unsigned long )part;
5209#line 303
5210 __cil_tmp265 = __cil_tmp264 + 384;
5211#line 303
5212 __cil_tmp266 = *((struct eun_info_t **)__cil_tmp265);
5213#line 303
5214 __cil_tmp267 = __cil_tmp266 + __cil_tmp263;
5215#line 303
5216 __cil_tmp268 = (unsigned long )__cil_tmp267;
5217#line 303
5218 __cil_tmp269 = __cil_tmp268 + 8;
5219#line 303
5220 *((uint32_t *)__cil_tmp269) = 0U;
5221#line 304
5222 __cil_tmp270 = (unsigned long )i;
5223#line 304
5224 __cil_tmp271 = (unsigned long )part;
5225#line 304
5226 __cil_tmp272 = __cil_tmp271 + 384;
5227#line 304
5228 __cil_tmp273 = *((struct eun_info_t **)__cil_tmp272);
5229#line 304
5230 __cil_tmp274 = __cil_tmp273 + __cil_tmp270;
5231#line 304
5232 __cil_tmp275 = (unsigned long )__cil_tmp274;
5233#line 304
5234 __cil_tmp276 = __cil_tmp275 + 12;
5235#line 304
5236 *((uint32_t *)__cil_tmp276) = 0U;
5237#line 305
5238 __cil_tmp277 = (unsigned long )(& header) + 48;
5239#line 305
5240 __cil_tmp278 = *((uint32_t *)__cil_tmp277);
5241#line 305
5242 __cil_tmp279 = (unsigned long )i;
5243#line 305
5244 __cil_tmp280 = (unsigned long )part;
5245#line 305
5246 __cil_tmp281 = __cil_tmp280 + 384;
5247#line 305
5248 __cil_tmp282 = *((struct eun_info_t **)__cil_tmp281);
5249#line 305
5250 __cil_tmp283 = __cil_tmp282 + __cil_tmp279;
5251#line 305
5252 __cil_tmp284 = *((uint32_t *)__cil_tmp283);
5253#line 305
5254 __cil_tmp285 = __cil_tmp284 + __cil_tmp278;
5255#line 305
5256 offset = (loff_t )__cil_tmp285;
5257#line 307
5258 __cil_tmp286 = 0 + 24;
5259#line 307
5260 __cil_tmp287 = (unsigned long )part;
5261#line 307
5262 __cil_tmp288 = __cil_tmp287 + __cil_tmp286;
5263#line 307
5264 __cil_tmp289 = *((struct mtd_info **)__cil_tmp288);
5265#line 307
5266 __cil_tmp290 = (unsigned long )part;
5267#line 307
5268 __cil_tmp291 = __cil_tmp290 + 420;
5269#line 307
5270 __cil_tmp292 = *((uint32_t *)__cil_tmp291);
5271#line 307
5272 __cil_tmp293 = (unsigned long )__cil_tmp292;
5273#line 307
5274 __cil_tmp294 = __cil_tmp293 * 4UL;
5275#line 307
5276 __cil_tmp295 = (size_t *)(& retval);
5277#line 307
5278 __cil_tmp296 = (unsigned long )part;
5279#line 307
5280 __cil_tmp297 = __cil_tmp296 + 408;
5281#line 307
5282 __cil_tmp298 = *((uint32_t **)__cil_tmp297);
5283#line 307
5284 __cil_tmp299 = (u_char *)__cil_tmp298;
5285#line 307
5286 ret = mtd_read(__cil_tmp289, offset, __cil_tmp294, __cil_tmp295, __cil_tmp299);
5287 }
5288#line 311
5289 if (ret != 0) {
5290#line 312
5291 goto out_bam_cache;
5292 } else {
5293
5294 }
5295#line 314
5296 j = 0U;
5297#line 314
5298 goto ldv_22246;
5299 ldv_22245: ;
5300 {
5301#line 315
5302 __cil_tmp300 = (unsigned long )j;
5303#line 315
5304 __cil_tmp301 = (unsigned long )part;
5305#line 315
5306 __cil_tmp302 = __cil_tmp301 + 408;
5307#line 315
5308 __cil_tmp303 = *((uint32_t **)__cil_tmp302);
5309#line 315
5310 __cil_tmp304 = __cil_tmp303 + __cil_tmp300;
5311#line 315
5312 __cil_tmp305 = *__cil_tmp304;
5313#line 315
5314 if (__cil_tmp305 == 4294967295U) {
5315#line 316
5316 __cil_tmp306 = (unsigned long )i;
5317#line 316
5318 __cil_tmp307 = (unsigned long )part;
5319#line 316
5320 __cil_tmp308 = __cil_tmp307 + 384;
5321#line 316
5322 __cil_tmp309 = *((struct eun_info_t **)__cil_tmp308);
5323#line 316
5324 __cil_tmp310 = __cil_tmp309 + __cil_tmp306;
5325#line 316
5326 __cil_tmp311 = (unsigned long )__cil_tmp310;
5327#line 316
5328 __cil_tmp312 = __cil_tmp311 + 8;
5329#line 316
5330 __cil_tmp313 = (unsigned long )i;
5331#line 316
5332 __cil_tmp314 = (unsigned long )part;
5333#line 316
5334 __cil_tmp315 = __cil_tmp314 + 384;
5335#line 316
5336 __cil_tmp316 = *((struct eun_info_t **)__cil_tmp315);
5337#line 316
5338 __cil_tmp317 = __cil_tmp316 + __cil_tmp313;
5339#line 316
5340 __cil_tmp318 = (unsigned long )__cil_tmp317;
5341#line 316
5342 __cil_tmp319 = __cil_tmp318 + 8;
5343#line 316
5344 __cil_tmp320 = *((uint32_t *)__cil_tmp319);
5345#line 316
5346 *((uint32_t *)__cil_tmp312) = __cil_tmp320 + 1U;
5347#line 317
5348 __cil_tmp321 = (unsigned long )part;
5349#line 317
5350 __cil_tmp322 = __cil_tmp321 + 376;
5351#line 317
5352 __cil_tmp323 = (unsigned long )part;
5353#line 317
5354 __cil_tmp324 = __cil_tmp323 + 376;
5355#line 317
5356 __cil_tmp325 = *((uint32_t *)__cil_tmp324);
5357#line 317
5358 *((uint32_t *)__cil_tmp322) = __cil_tmp325 + 1U;
5359 } else {
5360 {
5361#line 318
5362 __cil_tmp326 = (unsigned long )j;
5363#line 318
5364 __cil_tmp327 = (unsigned long )part;
5365#line 318
5366 __cil_tmp328 = __cil_tmp327 + 408;
5367#line 318
5368 __cil_tmp329 = *((uint32_t **)__cil_tmp328);
5369#line 318
5370 __cil_tmp330 = __cil_tmp329 + __cil_tmp326;
5371#line 318
5372 __cil_tmp331 = *__cil_tmp330;
5373#line 318
5374 __cil_tmp332 = __cil_tmp331 & 127U;
5375#line 318
5376 if (__cil_tmp332 == 64U) {
5377 {
5378#line 318
5379 __cil_tmp333 = (unsigned long )j;
5380#line 318
5381 __cil_tmp334 = (unsigned long )part;
5382#line 318
5383 __cil_tmp335 = __cil_tmp334 + 408;
5384#line 318
5385 __cil_tmp336 = *((uint32_t **)__cil_tmp335);
5386#line 318
5387 __cil_tmp337 = __cil_tmp336 + __cil_tmp333;
5388#line 318
5389 __cil_tmp338 = *__cil_tmp337;
5390#line 318
5391 __cil_tmp339 = __cil_tmp338 >> 9;
5392#line 318
5393 if (__cil_tmp339 < blocks) {
5394#line 320
5395 __cil_tmp340 = (unsigned long )j;
5396#line 320
5397 __cil_tmp341 = (unsigned long )part;
5398#line 320
5399 __cil_tmp342 = __cil_tmp341 + 408;
5400#line 320
5401 __cil_tmp343 = *((uint32_t **)__cil_tmp342);
5402#line 320
5403 __cil_tmp344 = __cil_tmp343 + __cil_tmp340;
5404#line 320
5405 __cil_tmp345 = *__cil_tmp344;
5406#line 320
5407 __cil_tmp346 = __cil_tmp345 >> 9;
5408#line 320
5409 __cil_tmp347 = (unsigned long )__cil_tmp346;
5410#line 320
5411 __cil_tmp348 = (unsigned long )part;
5412#line 320
5413 __cil_tmp349 = __cil_tmp348 + 360;
5414#line 320
5415 __cil_tmp350 = *((uint32_t **)__cil_tmp349);
5416#line 320
5417 __cil_tmp351 = __cil_tmp350 + __cil_tmp347;
5418#line 320
5419 __cil_tmp352 = (unsigned long )(& header) + 22;
5420#line 320
5421 __cil_tmp353 = *((uint8_t *)__cil_tmp352);
5422#line 320
5423 __cil_tmp354 = (int )__cil_tmp353;
5424#line 320
5425 __cil_tmp355 = j << __cil_tmp354;
5426#line 320
5427 __cil_tmp356 = (unsigned long )(& header) + 23;
5428#line 320
5429 __cil_tmp357 = *((uint8_t *)__cil_tmp356);
5430#line 320
5431 __cil_tmp358 = (int )__cil_tmp357;
5432#line 320
5433 __cil_tmp359 = (int )i;
5434#line 320
5435 __cil_tmp360 = __cil_tmp359 << __cil_tmp358;
5436#line 320
5437 __cil_tmp361 = (unsigned int )__cil_tmp360;
5438#line 320
5439 *__cil_tmp351 = __cil_tmp361 + __cil_tmp355;
5440 } else {
5441#line 318
5442 goto _L___1;
5443 }
5444 }
5445 } else {
5446 _L___1:
5447 {
5448#line 322
5449 __cil_tmp362 = (unsigned long )j;
5450#line 322
5451 __cil_tmp363 = (unsigned long )part;
5452#line 322
5453 __cil_tmp364 = __cil_tmp363 + 408;
5454#line 322
5455 __cil_tmp365 = *((uint32_t **)__cil_tmp364);
5456#line 322
5457 __cil_tmp366 = __cil_tmp365 + __cil_tmp362;
5458#line 322
5459 __cil_tmp367 = *__cil_tmp366;
5460#line 322
5461 if (__cil_tmp367 == 0U) {
5462#line 323
5463 __cil_tmp368 = (unsigned long )i;
5464#line 323
5465 __cil_tmp369 = (unsigned long )part;
5466#line 323
5467 __cil_tmp370 = __cil_tmp369 + 384;
5468#line 323
5469 __cil_tmp371 = *((struct eun_info_t **)__cil_tmp370);
5470#line 323
5471 __cil_tmp372 = __cil_tmp371 + __cil_tmp368;
5472#line 323
5473 __cil_tmp373 = (unsigned long )__cil_tmp372;
5474#line 323
5475 __cil_tmp374 = __cil_tmp373 + 12;
5476#line 323
5477 __cil_tmp375 = (unsigned long )i;
5478#line 323
5479 __cil_tmp376 = (unsigned long )part;
5480#line 323
5481 __cil_tmp377 = __cil_tmp376 + 384;
5482#line 323
5483 __cil_tmp378 = *((struct eun_info_t **)__cil_tmp377);
5484#line 323
5485 __cil_tmp379 = __cil_tmp378 + __cil_tmp375;
5486#line 323
5487 __cil_tmp380 = (unsigned long )__cil_tmp379;
5488#line 323
5489 __cil_tmp381 = __cil_tmp380 + 12;
5490#line 323
5491 __cil_tmp382 = *((uint32_t *)__cil_tmp381);
5492#line 323
5493 *((uint32_t *)__cil_tmp374) = __cil_tmp382 + 1U;
5494 } else {
5495 {
5496#line 322
5497 __cil_tmp383 = (unsigned long )j;
5498#line 322
5499 __cil_tmp384 = (unsigned long )part;
5500#line 322
5501 __cil_tmp385 = __cil_tmp384 + 408;
5502#line 322
5503 __cil_tmp386 = *((uint32_t **)__cil_tmp385);
5504#line 322
5505 __cil_tmp387 = __cil_tmp386 + __cil_tmp383;
5506#line 322
5507 __cil_tmp388 = *__cil_tmp387;
5508#line 322
5509 if (__cil_tmp388 == 4294967294U) {
5510#line 323
5511 __cil_tmp389 = (unsigned long )i;
5512#line 323
5513 __cil_tmp390 = (unsigned long )part;
5514#line 323
5515 __cil_tmp391 = __cil_tmp390 + 384;
5516#line 323
5517 __cil_tmp392 = *((struct eun_info_t **)__cil_tmp391);
5518#line 323
5519 __cil_tmp393 = __cil_tmp392 + __cil_tmp389;
5520#line 323
5521 __cil_tmp394 = (unsigned long )__cil_tmp393;
5522#line 323
5523 __cil_tmp395 = __cil_tmp394 + 12;
5524#line 323
5525 __cil_tmp396 = (unsigned long )i;
5526#line 323
5527 __cil_tmp397 = (unsigned long )part;
5528#line 323
5529 __cil_tmp398 = __cil_tmp397 + 384;
5530#line 323
5531 __cil_tmp399 = *((struct eun_info_t **)__cil_tmp398);
5532#line 323
5533 __cil_tmp400 = __cil_tmp399 + __cil_tmp396;
5534#line 323
5535 __cil_tmp401 = (unsigned long )__cil_tmp400;
5536#line 323
5537 __cil_tmp402 = __cil_tmp401 + 12;
5538#line 323
5539 __cil_tmp403 = *((uint32_t *)__cil_tmp402);
5540#line 323
5541 *((uint32_t *)__cil_tmp395) = __cil_tmp403 + 1U;
5542 } else {
5543
5544 }
5545 }
5546 }
5547 }
5548 }
5549 }
5550 }
5551 }
5552#line 314
5553 j = j + 1U;
5554 ldv_22246: ;
5555 {
5556#line 314
5557 __cil_tmp404 = (unsigned long )part;
5558#line 314
5559 __cil_tmp405 = __cil_tmp404 + 420;
5560#line 314
5561 __cil_tmp406 = *((uint32_t *)__cil_tmp405);
5562#line 314
5563 if (__cil_tmp406 > j) {
5564#line 315
5565 goto ldv_22245;
5566 } else {
5567#line 317
5568 goto ldv_22247;
5569 }
5570 }
5571 ldv_22247:
5572#line 302
5573 __cil_tmp407 = (int )i;
5574#line 302
5575 __cil_tmp408 = __cil_tmp407 + 1;
5576#line 302
5577 i = (uint16_t )__cil_tmp408;
5578 ldv_22249: ;
5579 {
5580#line 302
5581 __cil_tmp409 = (int )i;
5582#line 302
5583 __cil_tmp410 = (unsigned long )part;
5584#line 302
5585 __cil_tmp411 = __cil_tmp410 + 416;
5586#line 302
5587 __cil_tmp412 = *((uint16_t *)__cil_tmp411);
5588#line 302
5589 __cil_tmp413 = (int )__cil_tmp412;
5590#line 302
5591 if (__cil_tmp413 > __cil_tmp409) {
5592#line 303
5593 goto ldv_22248;
5594 } else {
5595#line 305
5596 goto ldv_22250;
5597 }
5598 }
5599 ldv_22250:
5600#line 327
5601 ret = 0;
5602#line 328
5603 goto out;
5604 out_bam_cache:
5605 {
5606#line 331
5607 __cil_tmp414 = (unsigned long )part;
5608#line 331
5609 __cil_tmp415 = __cil_tmp414 + 408;
5610#line 331
5611 __cil_tmp416 = *((uint32_t **)__cil_tmp415);
5612#line 331
5613 __cil_tmp417 = (void const *)__cil_tmp416;
5614#line 331
5615 kfree(__cil_tmp417);
5616 }
5617 out_VirtualBlockMap:
5618 {
5619#line 333
5620 __cil_tmp418 = (unsigned long )part;
5621#line 333
5622 __cil_tmp419 = __cil_tmp418 + 360;
5623#line 333
5624 __cil_tmp420 = *((uint32_t **)__cil_tmp419);
5625#line 333
5626 __cil_tmp421 = (void const *)__cil_tmp420;
5627#line 333
5628 vfree(__cil_tmp421);
5629 }
5630 out_XferInfo:
5631 {
5632#line 335
5633 __cil_tmp422 = (unsigned long )part;
5634#line 335
5635 __cil_tmp423 = __cil_tmp422 + 392;
5636#line 335
5637 __cil_tmp424 = *((struct xfer_info_t **)__cil_tmp423);
5638#line 335
5639 __cil_tmp425 = (void const *)__cil_tmp424;
5640#line 335
5641 kfree(__cil_tmp425);
5642 }
5643 out_EUNInfo:
5644 {
5645#line 337
5646 __cil_tmp426 = (unsigned long )part;
5647#line 337
5648 __cil_tmp427 = __cil_tmp426 + 384;
5649#line 337
5650 __cil_tmp428 = *((struct eun_info_t **)__cil_tmp427);
5651#line 337
5652 __cil_tmp429 = (void const *)__cil_tmp428;
5653#line 337
5654 kfree(__cil_tmp429);
5655 }
5656 out: ;
5657#line 339
5658 return (ret);
5659}
5660}
5661#line 349 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
5662static int erase_xfer(partition_t *part , uint16_t xfernum )
5663{ int ret ;
5664 struct xfer_info_t *xfer ;
5665 struct erase_info *erase ;
5666 struct _ddebug descriptor ;
5667 long tmp ;
5668 void *tmp___0 ;
5669 unsigned long __cil_tmp9 ;
5670 unsigned long __cil_tmp10 ;
5671 unsigned long __cil_tmp11 ;
5672 struct xfer_info_t *__cil_tmp12 ;
5673 struct _ddebug *__cil_tmp13 ;
5674 unsigned long __cil_tmp14 ;
5675 unsigned long __cil_tmp15 ;
5676 unsigned long __cil_tmp16 ;
5677 unsigned long __cil_tmp17 ;
5678 unsigned long __cil_tmp18 ;
5679 unsigned long __cil_tmp19 ;
5680 unsigned char __cil_tmp20 ;
5681 long __cil_tmp21 ;
5682 long __cil_tmp22 ;
5683 uint32_t __cil_tmp23 ;
5684 unsigned long __cil_tmp24 ;
5685 unsigned long __cil_tmp25 ;
5686 struct erase_info *__cil_tmp26 ;
5687 unsigned long __cil_tmp27 ;
5688 unsigned long __cil_tmp28 ;
5689 unsigned long __cil_tmp29 ;
5690 unsigned long __cil_tmp30 ;
5691 unsigned long __cil_tmp31 ;
5692 unsigned long __cil_tmp32 ;
5693 unsigned long __cil_tmp33 ;
5694 unsigned long __cil_tmp34 ;
5695 unsigned long __cil_tmp35 ;
5696 uint32_t __cil_tmp36 ;
5697 unsigned long __cil_tmp37 ;
5698 unsigned long __cil_tmp38 ;
5699 unsigned long __cil_tmp39 ;
5700 unsigned long __cil_tmp40 ;
5701 unsigned long __cil_tmp41 ;
5702 uint8_t __cil_tmp42 ;
5703 int __cil_tmp43 ;
5704 int __cil_tmp44 ;
5705 unsigned long __cil_tmp45 ;
5706 unsigned long __cil_tmp46 ;
5707 unsigned long __cil_tmp47 ;
5708 unsigned long __cil_tmp48 ;
5709 unsigned long __cil_tmp49 ;
5710 struct mtd_info *__cil_tmp50 ;
5711 unsigned long __cil_tmp51 ;
5712 unsigned long __cil_tmp52 ;
5713 unsigned long __cil_tmp53 ;
5714 unsigned long __cil_tmp54 ;
5715 uint32_t __cil_tmp55 ;
5716 void const *__cil_tmp56 ;
5717
5718 {
5719 {
5720#line 356
5721 __cil_tmp9 = (unsigned long )xfernum;
5722#line 356
5723 __cil_tmp10 = (unsigned long )part;
5724#line 356
5725 __cil_tmp11 = __cil_tmp10 + 392;
5726#line 356
5727 __cil_tmp12 = *((struct xfer_info_t **)__cil_tmp11);
5728#line 356
5729 xfer = __cil_tmp12 + __cil_tmp9;
5730#line 357
5731 __cil_tmp13 = & descriptor;
5732#line 357
5733 *((char const **)__cil_tmp13) = "ftl";
5734#line 357
5735 __cil_tmp14 = (unsigned long )(& descriptor) + 8;
5736#line 357
5737 *((char const **)__cil_tmp14) = "erase_xfer";
5738#line 357
5739 __cil_tmp15 = (unsigned long )(& descriptor) + 16;
5740#line 357
5741 *((char const **)__cil_tmp15) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
5742#line 357
5743 __cil_tmp16 = (unsigned long )(& descriptor) + 24;
5744#line 357
5745 *((char const **)__cil_tmp16) = "ftl_cs: erasing xfer unit at 0x%x\n";
5746#line 357
5747 __cil_tmp17 = (unsigned long )(& descriptor) + 32;
5748#line 357
5749 *((unsigned int *)__cil_tmp17) = 357U;
5750#line 357
5751 __cil_tmp18 = (unsigned long )(& descriptor) + 35;
5752#line 357
5753 *((unsigned char *)__cil_tmp18) = (unsigned char)0;
5754#line 357
5755 __cil_tmp19 = (unsigned long )(& descriptor) + 35;
5756#line 357
5757 __cil_tmp20 = *((unsigned char *)__cil_tmp19);
5758#line 357
5759 __cil_tmp21 = (long )__cil_tmp20;
5760#line 357
5761 __cil_tmp22 = __cil_tmp21 & 1L;
5762#line 357
5763 tmp = __builtin_expect(__cil_tmp22, 0L);
5764 }
5765#line 357
5766 if (tmp != 0L) {
5767 {
5768#line 357
5769 __cil_tmp23 = *((uint32_t *)xfer);
5770#line 357
5771 __dynamic_pr_debug(& descriptor, "ftl_cs: erasing xfer unit at 0x%x\n", __cil_tmp23);
5772 }
5773 } else {
5774
5775 }
5776 {
5777#line 358
5778 __cil_tmp24 = (unsigned long )xfer;
5779#line 358
5780 __cil_tmp25 = __cil_tmp24 + 8;
5781#line 358
5782 *((uint16_t *)__cil_tmp25) = (uint16_t )1U;
5783#line 363
5784 tmp___0 = kmalloc(88UL, 208U);
5785#line 363
5786 erase = (struct erase_info *)tmp___0;
5787 }
5788 {
5789#line 364
5790 __cil_tmp26 = (struct erase_info *)0;
5791#line 364
5792 __cil_tmp27 = (unsigned long )__cil_tmp26;
5793#line 364
5794 __cil_tmp28 = (unsigned long )erase;
5795#line 364
5796 if (__cil_tmp28 == __cil_tmp27) {
5797#line 365
5798 return (-12);
5799 } else {
5800
5801 }
5802 }
5803 {
5804#line 367
5805 __cil_tmp29 = 0 + 24;
5806#line 367
5807 __cil_tmp30 = (unsigned long )part;
5808#line 367
5809 __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
5810#line 367
5811 *((struct mtd_info **)erase) = *((struct mtd_info **)__cil_tmp31);
5812#line 368
5813 __cil_tmp32 = (unsigned long )erase;
5814#line 368
5815 __cil_tmp33 = __cil_tmp32 + 56;
5816#line 368
5817 *((void (**)(struct erase_info * ))__cil_tmp33) = & ftl_erase_callback;
5818#line 369
5819 __cil_tmp34 = (unsigned long )erase;
5820#line 369
5821 __cil_tmp35 = __cil_tmp34 + 8;
5822#line 369
5823 __cil_tmp36 = *((uint32_t *)xfer);
5824#line 369
5825 *((uint64_t *)__cil_tmp35) = (uint64_t )__cil_tmp36;
5826#line 370
5827 __cil_tmp37 = (unsigned long )erase;
5828#line 370
5829 __cil_tmp38 = __cil_tmp37 + 16;
5830#line 370
5831 __cil_tmp39 = 424 + 23;
5832#line 370
5833 __cil_tmp40 = (unsigned long )part;
5834#line 370
5835 __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
5836#line 370
5837 __cil_tmp42 = *((uint8_t *)__cil_tmp41);
5838#line 370
5839 __cil_tmp43 = (int )__cil_tmp42;
5840#line 370
5841 __cil_tmp44 = 1 << __cil_tmp43;
5842#line 370
5843 *((uint64_t *)__cil_tmp38) = (uint64_t )__cil_tmp44;
5844#line 371
5845 __cil_tmp45 = (unsigned long )erase;
5846#line 371
5847 __cil_tmp46 = __cil_tmp45 + 64;
5848#line 371
5849 *((u_long *)__cil_tmp46) = (unsigned long )part;
5850#line 373
5851 __cil_tmp47 = 0 + 24;
5852#line 373
5853 __cil_tmp48 = (unsigned long )part;
5854#line 373
5855 __cil_tmp49 = __cil_tmp48 + __cil_tmp47;
5856#line 373
5857 __cil_tmp50 = *((struct mtd_info **)__cil_tmp49);
5858#line 373
5859 ret = mtd_erase(__cil_tmp50, erase);
5860 }
5861#line 375
5862 if (ret == 0) {
5863#line 376
5864 __cil_tmp51 = (unsigned long )xfer;
5865#line 376
5866 __cil_tmp52 = __cil_tmp51 + 4;
5867#line 376
5868 __cil_tmp53 = (unsigned long )xfer;
5869#line 376
5870 __cil_tmp54 = __cil_tmp53 + 4;
5871#line 376
5872 __cil_tmp55 = *((uint32_t *)__cil_tmp54);
5873#line 376
5874 *((uint32_t *)__cil_tmp52) = __cil_tmp55 + 1U;
5875 } else {
5876 {
5877#line 378
5878 __cil_tmp56 = (void const *)erase;
5879#line 378
5880 kfree(__cil_tmp56);
5881 }
5882 }
5883#line 380
5884 return (ret);
5885}
5886}
5887#line 390 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
5888static void ftl_erase_callback(struct erase_info *erase )
5889{ partition_t *part ;
5890 struct xfer_info_t *xfer ;
5891 int i ;
5892 unsigned long __cil_tmp5 ;
5893 unsigned long __cil_tmp6 ;
5894 u_long __cil_tmp7 ;
5895 unsigned long __cil_tmp8 ;
5896 unsigned long __cil_tmp9 ;
5897 uint64_t __cil_tmp10 ;
5898 unsigned long __cil_tmp11 ;
5899 unsigned long __cil_tmp12 ;
5900 unsigned long __cil_tmp13 ;
5901 struct xfer_info_t *__cil_tmp14 ;
5902 struct xfer_info_t *__cil_tmp15 ;
5903 uint32_t __cil_tmp16 ;
5904 uint64_t __cil_tmp17 ;
5905 unsigned long __cil_tmp18 ;
5906 unsigned long __cil_tmp19 ;
5907 unsigned long __cil_tmp20 ;
5908 uint8_t __cil_tmp21 ;
5909 int __cil_tmp22 ;
5910 unsigned long __cil_tmp23 ;
5911 unsigned long __cil_tmp24 ;
5912 unsigned long __cil_tmp25 ;
5913 uint8_t __cil_tmp26 ;
5914 int __cil_tmp27 ;
5915 unsigned long __cil_tmp28 ;
5916 unsigned long __cil_tmp29 ;
5917 unsigned long __cil_tmp30 ;
5918 struct xfer_info_t *__cil_tmp31 ;
5919 unsigned long __cil_tmp32 ;
5920 unsigned long __cil_tmp33 ;
5921 u_char __cil_tmp34 ;
5922 unsigned int __cil_tmp35 ;
5923 unsigned long __cil_tmp36 ;
5924 unsigned long __cil_tmp37 ;
5925 unsigned long __cil_tmp38 ;
5926 unsigned long __cil_tmp39 ;
5927 unsigned long __cil_tmp40 ;
5928 unsigned long __cil_tmp41 ;
5929 u_char __cil_tmp42 ;
5930 int __cil_tmp43 ;
5931 void const *__cil_tmp44 ;
5932
5933 {
5934#line 397
5935 __cil_tmp5 = (unsigned long )erase;
5936#line 397
5937 __cil_tmp6 = __cil_tmp5 + 64;
5938#line 397
5939 __cil_tmp7 = *((u_long *)__cil_tmp6);
5940#line 397
5941 part = (partition_t *)__cil_tmp7;
5942#line 399
5943 i = 0;
5944#line 399
5945 goto ldv_22268;
5946 ldv_22267: ;
5947 {
5948#line 400
5949 __cil_tmp8 = (unsigned long )erase;
5950#line 400
5951 __cil_tmp9 = __cil_tmp8 + 8;
5952#line 400
5953 __cil_tmp10 = *((uint64_t *)__cil_tmp9);
5954#line 400
5955 __cil_tmp11 = (unsigned long )i;
5956#line 400
5957 __cil_tmp12 = (unsigned long )part;
5958#line 400
5959 __cil_tmp13 = __cil_tmp12 + 392;
5960#line 400
5961 __cil_tmp14 = *((struct xfer_info_t **)__cil_tmp13);
5962#line 400
5963 __cil_tmp15 = __cil_tmp14 + __cil_tmp11;
5964#line 400
5965 __cil_tmp16 = *((uint32_t *)__cil_tmp15);
5966#line 400
5967 __cil_tmp17 = (uint64_t )__cil_tmp16;
5968#line 400
5969 if (__cil_tmp17 == __cil_tmp10) {
5970#line 400
5971 goto ldv_22266;
5972 } else {
5973
5974 }
5975 }
5976#line 399
5977 i = i + 1;
5978 ldv_22268: ;
5979 {
5980#line 399
5981 __cil_tmp18 = 424 + 15;
5982#line 399
5983 __cil_tmp19 = (unsigned long )part;
5984#line 399
5985 __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
5986#line 399
5987 __cil_tmp21 = *((uint8_t *)__cil_tmp20);
5988#line 399
5989 __cil_tmp22 = (int )__cil_tmp21;
5990#line 399
5991 if (__cil_tmp22 > i) {
5992#line 400
5993 goto ldv_22267;
5994 } else {
5995#line 402
5996 goto ldv_22266;
5997 }
5998 }
5999 ldv_22266: ;
6000 {
6001#line 402
6002 __cil_tmp23 = 424 + 15;
6003#line 402
6004 __cil_tmp24 = (unsigned long )part;
6005#line 402
6006 __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
6007#line 402
6008 __cil_tmp26 = *((uint8_t *)__cil_tmp25);
6009#line 402
6010 __cil_tmp27 = (int )__cil_tmp26;
6011#line 402
6012 if (__cil_tmp27 == i) {
6013 {
6014#line 403
6015 printk("<5>ftl_cs: internal error: erase lookup failed!\n");
6016 }
6017#line 405
6018 return;
6019 } else {
6020
6021 }
6022 }
6023#line 408
6024 __cil_tmp28 = (unsigned long )i;
6025#line 408
6026 __cil_tmp29 = (unsigned long )part;
6027#line 408
6028 __cil_tmp30 = __cil_tmp29 + 392;
6029#line 408
6030 __cil_tmp31 = *((struct xfer_info_t **)__cil_tmp30);
6031#line 408
6032 xfer = __cil_tmp31 + __cil_tmp28;
6033 {
6034#line 409
6035 __cil_tmp32 = (unsigned long )erase;
6036#line 409
6037 __cil_tmp33 = __cil_tmp32 + 72;
6038#line 409
6039 __cil_tmp34 = *((u_char *)__cil_tmp33);
6040#line 409
6041 __cil_tmp35 = (unsigned int )__cil_tmp34;
6042#line 409
6043 if (__cil_tmp35 == 8U) {
6044#line 410
6045 __cil_tmp36 = (unsigned long )xfer;
6046#line 410
6047 __cil_tmp37 = __cil_tmp36 + 8;
6048#line 410
6049 *((uint16_t *)__cil_tmp37) = (uint16_t )2U;
6050 } else {
6051 {
6052#line 412
6053 __cil_tmp38 = (unsigned long )xfer;
6054#line 412
6055 __cil_tmp39 = __cil_tmp38 + 8;
6056#line 412
6057 *((uint16_t *)__cil_tmp39) = (uint16_t )4U;
6058#line 413
6059 __cil_tmp40 = (unsigned long )erase;
6060#line 413
6061 __cil_tmp41 = __cil_tmp40 + 72;
6062#line 413
6063 __cil_tmp42 = *((u_char *)__cil_tmp41);
6064#line 413
6065 __cil_tmp43 = (int )__cil_tmp42;
6066#line 413
6067 printk("<5>ftl_cs: erase failed: state = %d\n", __cil_tmp43);
6068 }
6069 }
6070 }
6071 {
6072#line 417
6073 __cil_tmp44 = (void const *)erase;
6074#line 417
6075 kfree(__cil_tmp44);
6076 }
6077#line 418
6078 return;
6079}
6080}
6081#line 421 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
6082static int prepare_xfer(partition_t *part , int i )
6083{ erase_unit_header_t header ;
6084 struct xfer_info_t *xfer ;
6085 int nbam ;
6086 int ret ;
6087 uint32_t ctl ;
6088 ssize_t retlen ;
6089 loff_t offset ;
6090 struct _ddebug descriptor ;
6091 long tmp ;
6092 unsigned long __cil_tmp12 ;
6093 unsigned long __cil_tmp13 ;
6094 unsigned long __cil_tmp14 ;
6095 struct xfer_info_t *__cil_tmp15 ;
6096 unsigned long __cil_tmp16 ;
6097 unsigned long __cil_tmp17 ;
6098 struct _ddebug *__cil_tmp18 ;
6099 unsigned long __cil_tmp19 ;
6100 unsigned long __cil_tmp20 ;
6101 unsigned long __cil_tmp21 ;
6102 unsigned long __cil_tmp22 ;
6103 unsigned long __cil_tmp23 ;
6104 unsigned long __cil_tmp24 ;
6105 unsigned char __cil_tmp25 ;
6106 long __cil_tmp26 ;
6107 long __cil_tmp27 ;
6108 uint32_t __cil_tmp28 ;
6109 erase_unit_header_t *__cil_tmp29 ;
6110 unsigned long __cil_tmp30 ;
6111 unsigned long __cil_tmp31 ;
6112 unsigned long __cil_tmp32 ;
6113 unsigned long __cil_tmp33 ;
6114 unsigned long __cil_tmp34 ;
6115 unsigned long __cil_tmp35 ;
6116 unsigned long __cil_tmp36 ;
6117 unsigned long __cil_tmp37 ;
6118 unsigned long __cil_tmp38 ;
6119 struct mtd_info *__cil_tmp39 ;
6120 uint32_t __cil_tmp40 ;
6121 loff_t __cil_tmp41 ;
6122 size_t *__cil_tmp42 ;
6123 u_char const *__cil_tmp43 ;
6124 unsigned long __cil_tmp44 ;
6125 unsigned long __cil_tmp45 ;
6126 unsigned long __cil_tmp46 ;
6127 uint32_t __cil_tmp47 ;
6128 unsigned long __cil_tmp48 ;
6129 unsigned long __cil_tmp49 ;
6130 unsigned long __cil_tmp50 ;
6131 uint32_t __cil_tmp51 ;
6132 unsigned long __cil_tmp52 ;
6133 unsigned long __cil_tmp53 ;
6134 unsigned long __cil_tmp54 ;
6135 unsigned long __cil_tmp55 ;
6136 unsigned long __cil_tmp56 ;
6137 unsigned long __cil_tmp57 ;
6138 unsigned long __cil_tmp58 ;
6139 unsigned long __cil_tmp59 ;
6140 uint32_t __cil_tmp60 ;
6141 uint32_t __cil_tmp61 ;
6142 uint32_t __cil_tmp62 ;
6143 uint32_t *__cil_tmp63 ;
6144 unsigned long __cil_tmp64 ;
6145 unsigned long __cil_tmp65 ;
6146 unsigned long __cil_tmp66 ;
6147 struct mtd_info *__cil_tmp67 ;
6148 size_t *__cil_tmp68 ;
6149 u_char const *__cil_tmp69 ;
6150 unsigned long long __cil_tmp70 ;
6151 unsigned long long __cil_tmp71 ;
6152 unsigned long __cil_tmp72 ;
6153 unsigned long __cil_tmp73 ;
6154
6155 {
6156 {
6157#line 430
6158 __cil_tmp12 = (unsigned long )i;
6159#line 430
6160 __cil_tmp13 = (unsigned long )part;
6161#line 430
6162 __cil_tmp14 = __cil_tmp13 + 392;
6163#line 430
6164 __cil_tmp15 = *((struct xfer_info_t **)__cil_tmp14);
6165#line 430
6166 xfer = __cil_tmp15 + __cil_tmp12;
6167#line 431
6168 __cil_tmp16 = (unsigned long )xfer;
6169#line 431
6170 __cil_tmp17 = __cil_tmp16 + 8;
6171#line 431
6172 *((uint16_t *)__cil_tmp17) = (uint16_t )4U;
6173#line 433
6174 __cil_tmp18 = & descriptor;
6175#line 433
6176 *((char const **)__cil_tmp18) = "ftl";
6177#line 433
6178 __cil_tmp19 = (unsigned long )(& descriptor) + 8;
6179#line 433
6180 *((char const **)__cil_tmp19) = "prepare_xfer";
6181#line 433
6182 __cil_tmp20 = (unsigned long )(& descriptor) + 16;
6183#line 433
6184 *((char const **)__cil_tmp20) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
6185#line 433
6186 __cil_tmp21 = (unsigned long )(& descriptor) + 24;
6187#line 433
6188 *((char const **)__cil_tmp21) = "ftl_cs: preparing xfer unit at 0x%x\n";
6189#line 433
6190 __cil_tmp22 = (unsigned long )(& descriptor) + 32;
6191#line 433
6192 *((unsigned int *)__cil_tmp22) = 433U;
6193#line 433
6194 __cil_tmp23 = (unsigned long )(& descriptor) + 35;
6195#line 433
6196 *((unsigned char *)__cil_tmp23) = (unsigned char)0;
6197#line 433
6198 __cil_tmp24 = (unsigned long )(& descriptor) + 35;
6199#line 433
6200 __cil_tmp25 = *((unsigned char *)__cil_tmp24);
6201#line 433
6202 __cil_tmp26 = (long )__cil_tmp25;
6203#line 433
6204 __cil_tmp27 = __cil_tmp26 & 1L;
6205#line 433
6206 tmp = __builtin_expect(__cil_tmp27, 0L);
6207 }
6208#line 433
6209 if (tmp != 0L) {
6210 {
6211#line 433
6212 __cil_tmp28 = *((uint32_t *)xfer);
6213#line 433
6214 __dynamic_pr_debug(& descriptor, "ftl_cs: preparing xfer unit at 0x%x\n", __cil_tmp28);
6215 }
6216 } else {
6217
6218 }
6219 {
6220#line 436
6221 __cil_tmp29 = & header;
6222#line 436
6223 __cil_tmp30 = (unsigned long )part;
6224#line 436
6225 __cil_tmp31 = __cil_tmp30 + 424;
6226#line 436
6227 *__cil_tmp29 = *((erase_unit_header_t *)__cil_tmp31);
6228#line 437
6229 __cil_tmp32 = (unsigned long )(& header) + 20;
6230#line 437
6231 *((uint16_t *)__cil_tmp32) = (uint16_t )65535U;
6232#line 438
6233 __cil_tmp33 = (unsigned long )(& header) + 16;
6234#line 438
6235 __cil_tmp34 = (unsigned long )xfer;
6236#line 438
6237 __cil_tmp35 = __cil_tmp34 + 4;
6238#line 438
6239 *((uint32_t *)__cil_tmp33) = *((uint32_t *)__cil_tmp35);
6240#line 440
6241 __cil_tmp36 = 0 + 24;
6242#line 440
6243 __cil_tmp37 = (unsigned long )part;
6244#line 440
6245 __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
6246#line 440
6247 __cil_tmp39 = *((struct mtd_info **)__cil_tmp38);
6248#line 440
6249 __cil_tmp40 = *((uint32_t *)xfer);
6250#line 440
6251 __cil_tmp41 = (loff_t )__cil_tmp40;
6252#line 440
6253 __cil_tmp42 = (size_t *)(& retlen);
6254#line 440
6255 __cil_tmp43 = (u_char const *)(& header);
6256#line 440
6257 ret = mtd_write(__cil_tmp39, __cil_tmp41, 68UL, __cil_tmp42, __cil_tmp43);
6258 }
6259#line 443
6260 if (ret != 0) {
6261#line 444
6262 return (ret);
6263 } else {
6264
6265 }
6266#line 448
6267 __cil_tmp44 = 424 + 48;
6268#line 448
6269 __cil_tmp45 = (unsigned long )part;
6270#line 448
6271 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
6272#line 448
6273 __cil_tmp47 = *((uint32_t *)__cil_tmp46);
6274#line 448
6275 __cil_tmp48 = (unsigned long )__cil_tmp47;
6276#line 448
6277 __cil_tmp49 = (unsigned long )part;
6278#line 448
6279 __cil_tmp50 = __cil_tmp49 + 420;
6280#line 448
6281 __cil_tmp51 = *((uint32_t *)__cil_tmp50);
6282#line 448
6283 __cil_tmp52 = (unsigned long )__cil_tmp51;
6284#line 448
6285 __cil_tmp53 = __cil_tmp52 * 4UL;
6286#line 448
6287 __cil_tmp54 = __cil_tmp53 + __cil_tmp48;
6288#line 448
6289 __cil_tmp55 = __cil_tmp54 + 511UL;
6290#line 448
6291 __cil_tmp56 = __cil_tmp55 / 512UL;
6292#line 448
6293 nbam = (int )__cil_tmp56;
6294#line 451
6295 __cil_tmp57 = 424 + 48;
6296#line 451
6297 __cil_tmp58 = (unsigned long )part;
6298#line 451
6299 __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
6300#line 451
6301 __cil_tmp60 = *((uint32_t *)__cil_tmp59);
6302#line 451
6303 __cil_tmp61 = *((uint32_t *)xfer);
6304#line 451
6305 __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
6306#line 451
6307 offset = (loff_t )__cil_tmp62;
6308#line 452
6309 __cil_tmp63 = & ctl;
6310#line 452
6311 *__cil_tmp63 = 48U;
6312#line 454
6313 i = 0;
6314#line 454
6315 goto ldv_22283;
6316 ldv_22282:
6317 {
6318#line 456
6319 __cil_tmp64 = 0 + 24;
6320#line 456
6321 __cil_tmp65 = (unsigned long )part;
6322#line 456
6323 __cil_tmp66 = __cil_tmp65 + __cil_tmp64;
6324#line 456
6325 __cil_tmp67 = *((struct mtd_info **)__cil_tmp66);
6326#line 456
6327 __cil_tmp68 = (size_t *)(& retlen);
6328#line 456
6329 __cil_tmp69 = (u_char const *)(& ctl);
6330#line 456
6331 ret = mtd_write(__cil_tmp67, offset, 4UL, __cil_tmp68, __cil_tmp69);
6332 }
6333#line 459
6334 if (ret != 0) {
6335#line 460
6336 return (ret);
6337 } else {
6338
6339 }
6340#line 454
6341 i = i + 1;
6342#line 454
6343 __cil_tmp70 = (unsigned long long )offset;
6344#line 454
6345 __cil_tmp71 = __cil_tmp70 + 4ULL;
6346#line 454
6347 offset = (loff_t )__cil_tmp71;
6348 ldv_22283: ;
6349#line 454
6350 if (i < nbam) {
6351#line 455
6352 goto ldv_22282;
6353 } else {
6354#line 457
6355 goto ldv_22284;
6356 }
6357 ldv_22284:
6358#line 462
6359 __cil_tmp72 = (unsigned long )xfer;
6360#line 462
6361 __cil_tmp73 = __cil_tmp72 + 8;
6362#line 462
6363 *((uint16_t *)__cil_tmp73) = (uint16_t )3U;
6364#line 463
6365 return (0);
6366}
6367}
6368#line 479 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
6369static int copy_erase_unit(partition_t *part , uint16_t srcunit , uint16_t xferunit )
6370{ u_char buf[512U] ;
6371 struct eun_info_t *eun ;
6372 struct xfer_info_t *xfer ;
6373 uint32_t src ;
6374 uint32_t dest ;
6375 uint32_t free ;
6376 uint32_t i ;
6377 uint16_t unit ;
6378 int ret ;
6379 ssize_t retlen ;
6380 loff_t offset ;
6381 uint16_t srcunitswap ;
6382 struct _ddebug descriptor ;
6383 long tmp ;
6384 uint16_t *__cil_tmp18 ;
6385 unsigned long __cil_tmp19 ;
6386 unsigned long __cil_tmp20 ;
6387 unsigned long __cil_tmp21 ;
6388 struct eun_info_t *__cil_tmp22 ;
6389 unsigned long __cil_tmp23 ;
6390 unsigned long __cil_tmp24 ;
6391 unsigned long __cil_tmp25 ;
6392 struct xfer_info_t *__cil_tmp26 ;
6393 struct _ddebug *__cil_tmp27 ;
6394 unsigned long __cil_tmp28 ;
6395 unsigned long __cil_tmp29 ;
6396 unsigned long __cil_tmp30 ;
6397 unsigned long __cil_tmp31 ;
6398 unsigned long __cil_tmp32 ;
6399 unsigned long __cil_tmp33 ;
6400 unsigned char __cil_tmp34 ;
6401 long __cil_tmp35 ;
6402 long __cil_tmp36 ;
6403 uint32_t __cil_tmp37 ;
6404 uint32_t __cil_tmp38 ;
6405 int __cil_tmp39 ;
6406 unsigned long __cil_tmp40 ;
6407 unsigned long __cil_tmp41 ;
6408 uint16_t __cil_tmp42 ;
6409 int __cil_tmp43 ;
6410 unsigned long __cil_tmp44 ;
6411 unsigned long __cil_tmp45 ;
6412 unsigned long __cil_tmp46 ;
6413 uint32_t __cil_tmp47 ;
6414 uint32_t __cil_tmp48 ;
6415 uint32_t __cil_tmp49 ;
6416 unsigned long __cil_tmp50 ;
6417 unsigned long __cil_tmp51 ;
6418 unsigned long __cil_tmp52 ;
6419 struct mtd_info *__cil_tmp53 ;
6420 unsigned long __cil_tmp54 ;
6421 unsigned long __cil_tmp55 ;
6422 uint32_t __cil_tmp56 ;
6423 unsigned long __cil_tmp57 ;
6424 unsigned long __cil_tmp58 ;
6425 size_t *__cil_tmp59 ;
6426 unsigned long __cil_tmp60 ;
6427 unsigned long __cil_tmp61 ;
6428 uint32_t *__cil_tmp62 ;
6429 u_char *__cil_tmp63 ;
6430 unsigned long __cil_tmp64 ;
6431 unsigned long __cil_tmp65 ;
6432 unsigned long __cil_tmp66 ;
6433 unsigned long __cil_tmp67 ;
6434 uint32_t __cil_tmp68 ;
6435 uint32_t __cil_tmp69 ;
6436 uint16_t *__cil_tmp70 ;
6437 unsigned long __cil_tmp71 ;
6438 unsigned long __cil_tmp72 ;
6439 unsigned long __cil_tmp73 ;
6440 struct mtd_info *__cil_tmp74 ;
6441 size_t *__cil_tmp75 ;
6442 u_char const *__cil_tmp76 ;
6443 unsigned long __cil_tmp77 ;
6444 unsigned long __cil_tmp78 ;
6445 unsigned long __cil_tmp79 ;
6446 uint32_t *__cil_tmp80 ;
6447 uint32_t *__cil_tmp81 ;
6448 uint32_t __cil_tmp82 ;
6449 unsigned int __cil_tmp83 ;
6450 unsigned long __cil_tmp84 ;
6451 unsigned long __cil_tmp85 ;
6452 unsigned long __cil_tmp86 ;
6453 struct mtd_info *__cil_tmp87 ;
6454 loff_t __cil_tmp88 ;
6455 size_t *__cil_tmp89 ;
6456 u_char *__cil_tmp90 ;
6457 unsigned long __cil_tmp91 ;
6458 unsigned long __cil_tmp92 ;
6459 unsigned long __cil_tmp93 ;
6460 struct mtd_info *__cil_tmp94 ;
6461 loff_t __cil_tmp95 ;
6462 size_t *__cil_tmp96 ;
6463 u_char const *__cil_tmp97 ;
6464 unsigned long __cil_tmp98 ;
6465 unsigned long __cil_tmp99 ;
6466 unsigned long __cil_tmp100 ;
6467 uint32_t *__cil_tmp101 ;
6468 uint32_t *__cil_tmp102 ;
6469 unsigned long __cil_tmp103 ;
6470 unsigned long __cil_tmp104 ;
6471 uint32_t __cil_tmp105 ;
6472 unsigned long __cil_tmp106 ;
6473 unsigned long __cil_tmp107 ;
6474 unsigned long __cil_tmp108 ;
6475 struct mtd_info *__cil_tmp109 ;
6476 unsigned long __cil_tmp110 ;
6477 unsigned long __cil_tmp111 ;
6478 unsigned long __cil_tmp112 ;
6479 uint32_t __cil_tmp113 ;
6480 uint32_t __cil_tmp114 ;
6481 uint32_t __cil_tmp115 ;
6482 loff_t __cil_tmp116 ;
6483 unsigned long __cil_tmp117 ;
6484 unsigned long __cil_tmp118 ;
6485 uint32_t __cil_tmp119 ;
6486 unsigned long __cil_tmp120 ;
6487 unsigned long __cil_tmp121 ;
6488 size_t *__cil_tmp122 ;
6489 unsigned long __cil_tmp123 ;
6490 unsigned long __cil_tmp124 ;
6491 uint32_t *__cil_tmp125 ;
6492 u_char const *__cil_tmp126 ;
6493 unsigned long __cil_tmp127 ;
6494 unsigned long __cil_tmp128 ;
6495 unsigned long __cil_tmp129 ;
6496 struct mtd_info *__cil_tmp130 ;
6497 uint32_t __cil_tmp131 ;
6498 uint32_t __cil_tmp132 ;
6499 loff_t __cil_tmp133 ;
6500 size_t *__cil_tmp134 ;
6501 u_char const *__cil_tmp135 ;
6502 unsigned long __cil_tmp136 ;
6503 unsigned long __cil_tmp137 ;
6504 unsigned long __cil_tmp138 ;
6505 unsigned long __cil_tmp139 ;
6506 unsigned long __cil_tmp140 ;
6507 unsigned long __cil_tmp141 ;
6508 unsigned long __cil_tmp142 ;
6509 unsigned long __cil_tmp143 ;
6510 unsigned long __cil_tmp144 ;
6511 unsigned long __cil_tmp145 ;
6512 unsigned long __cil_tmp146 ;
6513 unsigned long __cil_tmp147 ;
6514 uint32_t __cil_tmp148 ;
6515 unsigned long __cil_tmp149 ;
6516 unsigned long __cil_tmp150 ;
6517 uint32_t __cil_tmp151 ;
6518 unsigned long __cil_tmp152 ;
6519 unsigned long __cil_tmp153 ;
6520 unsigned long __cil_tmp154 ;
6521 unsigned long __cil_tmp155 ;
6522 uint32_t __cil_tmp156 ;
6523 unsigned long __cil_tmp157 ;
6524 unsigned long __cil_tmp158 ;
6525 unsigned long __cil_tmp159 ;
6526 unsigned long __cil_tmp160 ;
6527 unsigned long __cil_tmp161 ;
6528 unsigned long __cil_tmp162 ;
6529
6530 {
6531 {
6532#line 490
6533 __cil_tmp18 = & srcunitswap;
6534#line 490
6535 *__cil_tmp18 = srcunit;
6536#line 492
6537 __cil_tmp19 = (unsigned long )srcunit;
6538#line 492
6539 __cil_tmp20 = (unsigned long )part;
6540#line 492
6541 __cil_tmp21 = __cil_tmp20 + 384;
6542#line 492
6543 __cil_tmp22 = *((struct eun_info_t **)__cil_tmp21);
6544#line 492
6545 eun = __cil_tmp22 + __cil_tmp19;
6546#line 493
6547 __cil_tmp23 = (unsigned long )xferunit;
6548#line 493
6549 __cil_tmp24 = (unsigned long )part;
6550#line 493
6551 __cil_tmp25 = __cil_tmp24 + 392;
6552#line 493
6553 __cil_tmp26 = *((struct xfer_info_t **)__cil_tmp25);
6554#line 493
6555 xfer = __cil_tmp26 + __cil_tmp23;
6556#line 494
6557 __cil_tmp27 = & descriptor;
6558#line 494
6559 *((char const **)__cil_tmp27) = "ftl";
6560#line 494
6561 __cil_tmp28 = (unsigned long )(& descriptor) + 8;
6562#line 494
6563 *((char const **)__cil_tmp28) = "copy_erase_unit";
6564#line 494
6565 __cil_tmp29 = (unsigned long )(& descriptor) + 16;
6566#line 494
6567 *((char const **)__cil_tmp29) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
6568#line 494
6569 __cil_tmp30 = (unsigned long )(& descriptor) + 24;
6570#line 494
6571 *((char const **)__cil_tmp30) = "ftl_cs: copying block 0x%x to 0x%x\n";
6572#line 494
6573 __cil_tmp31 = (unsigned long )(& descriptor) + 32;
6574#line 494
6575 *((unsigned int *)__cil_tmp31) = 495U;
6576#line 494
6577 __cil_tmp32 = (unsigned long )(& descriptor) + 35;
6578#line 494
6579 *((unsigned char *)__cil_tmp32) = (unsigned char)0;
6580#line 494
6581 __cil_tmp33 = (unsigned long )(& descriptor) + 35;
6582#line 494
6583 __cil_tmp34 = *((unsigned char *)__cil_tmp33);
6584#line 494
6585 __cil_tmp35 = (long )__cil_tmp34;
6586#line 494
6587 __cil_tmp36 = __cil_tmp35 & 1L;
6588#line 494
6589 tmp = __builtin_expect(__cil_tmp36, 0L);
6590 }
6591#line 494
6592 if (tmp != 0L) {
6593 {
6594#line 494
6595 __cil_tmp37 = *((uint32_t *)eun);
6596#line 494
6597 __cil_tmp38 = *((uint32_t *)xfer);
6598#line 494
6599 __dynamic_pr_debug(& descriptor, "ftl_cs: copying block 0x%x to 0x%x\n", __cil_tmp37,
6600 __cil_tmp38);
6601 }
6602 } else {
6603
6604 }
6605 {
6606#line 499
6607 __cil_tmp39 = (int )srcunit;
6608#line 499
6609 __cil_tmp40 = (unsigned long )part;
6610#line 499
6611 __cil_tmp41 = __cil_tmp40 + 400;
6612#line 499
6613 __cil_tmp42 = *((uint16_t *)__cil_tmp41);
6614#line 499
6615 __cil_tmp43 = (int )__cil_tmp42;
6616#line 499
6617 if (__cil_tmp43 != __cil_tmp39) {
6618 {
6619#line 501
6620 __cil_tmp44 = 424 + 48;
6621#line 501
6622 __cil_tmp45 = (unsigned long )part;
6623#line 501
6624 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
6625#line 501
6626 __cil_tmp47 = *((uint32_t *)__cil_tmp46);
6627#line 501
6628 __cil_tmp48 = *((uint32_t *)eun);
6629#line 501
6630 __cil_tmp49 = __cil_tmp48 + __cil_tmp47;
6631#line 501
6632 offset = (loff_t )__cil_tmp49;
6633#line 503
6634 __cil_tmp50 = 0 + 24;
6635#line 503
6636 __cil_tmp51 = (unsigned long )part;
6637#line 503
6638 __cil_tmp52 = __cil_tmp51 + __cil_tmp50;
6639#line 503
6640 __cil_tmp53 = *((struct mtd_info **)__cil_tmp52);
6641#line 503
6642 __cil_tmp54 = (unsigned long )part;
6643#line 503
6644 __cil_tmp55 = __cil_tmp54 + 420;
6645#line 503
6646 __cil_tmp56 = *((uint32_t *)__cil_tmp55);
6647#line 503
6648 __cil_tmp57 = (unsigned long )__cil_tmp56;
6649#line 503
6650 __cil_tmp58 = __cil_tmp57 * 4UL;
6651#line 503
6652 __cil_tmp59 = (size_t *)(& retlen);
6653#line 503
6654 __cil_tmp60 = (unsigned long )part;
6655#line 503
6656 __cil_tmp61 = __cil_tmp60 + 408;
6657#line 503
6658 __cil_tmp62 = *((uint32_t **)__cil_tmp61);
6659#line 503
6660 __cil_tmp63 = (u_char *)__cil_tmp62;
6661#line 503
6662 ret = mtd_read(__cil_tmp53, offset, __cil_tmp58, __cil_tmp59, __cil_tmp63);
6663#line 508
6664 __cil_tmp64 = (unsigned long )part;
6665#line 508
6666 __cil_tmp65 = __cil_tmp64 + 400;
6667#line 508
6668 *((uint16_t *)__cil_tmp65) = (uint16_t )65535U;
6669 }
6670#line 510
6671 if (ret != 0) {
6672 {
6673#line 511
6674 printk("<4>ftl: Failed to read BAM cache in copy_erase_unit()!\n");
6675 }
6676#line 512
6677 return (ret);
6678 } else {
6679
6680 }
6681 } else {
6682
6683 }
6684 }
6685 {
6686#line 517
6687 __cil_tmp66 = (unsigned long )xfer;
6688#line 517
6689 __cil_tmp67 = __cil_tmp66 + 8;
6690#line 517
6691 *((uint16_t *)__cil_tmp67) = (uint16_t )0U;
6692#line 518
6693 __cil_tmp68 = *((uint32_t *)xfer);
6694#line 518
6695 __cil_tmp69 = __cil_tmp68 + 20U;
6696#line 518
6697 offset = (loff_t )__cil_tmp69;
6698#line 519
6699 __cil_tmp70 = & unit;
6700#line 519
6701 *__cil_tmp70 = (uint16_t )32767U;
6702#line 521
6703 __cil_tmp71 = 0 + 24;
6704#line 521
6705 __cil_tmp72 = (unsigned long )part;
6706#line 521
6707 __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
6708#line 521
6709 __cil_tmp74 = *((struct mtd_info **)__cil_tmp73);
6710#line 521
6711 __cil_tmp75 = (size_t *)(& retlen);
6712#line 521
6713 __cil_tmp76 = (u_char const *)(& unit);
6714#line 521
6715 ret = mtd_write(__cil_tmp74, offset, 2UL, __cil_tmp75, __cil_tmp76);
6716 }
6717#line 524
6718 if (ret != 0) {
6719 {
6720#line 525
6721 printk("<4>ftl: Failed to write back to BAM cache in copy_erase_unit()!\n");
6722 }
6723#line 526
6724 return (ret);
6725 } else {
6726
6727 }
6728#line 530
6729 src = *((uint32_t *)eun);
6730#line 530
6731 dest = *((uint32_t *)xfer);
6732#line 532
6733 free = 0U;
6734#line 533
6735 ret = 0;
6736#line 534
6737 i = 0U;
6738#line 534
6739 goto ldv_22310;
6740 ldv_22309: ;
6741 {
6742#line 535
6743 __cil_tmp77 = (unsigned long )i;
6744#line 535
6745 __cil_tmp78 = (unsigned long )part;
6746#line 535
6747 __cil_tmp79 = __cil_tmp78 + 408;
6748#line 535
6749 __cil_tmp80 = *((uint32_t **)__cil_tmp79);
6750#line 535
6751 __cil_tmp81 = __cil_tmp80 + __cil_tmp77;
6752#line 535
6753 __cil_tmp82 = *__cil_tmp81;
6754#line 535
6755 __cil_tmp83 = __cil_tmp82 & 127U;
6756#line 536
6757 if ((int )__cil_tmp83 == 48) {
6758#line 536
6759 goto case_48;
6760 } else
6761#line 539
6762 if ((int )__cil_tmp83 == 64) {
6763#line 539
6764 goto case_64;
6765 } else
6766#line 540
6767 if ((int )__cil_tmp83 == 96) {
6768#line 540
6769 goto case_96;
6770 } else {
6771 {
6772#line 557
6773 goto switch_default;
6774#line 535
6775 if (0) {
6776 case_48: ;
6777#line 538
6778 goto ldv_22305;
6779 case_64: ;
6780 case_96:
6781 {
6782#line 541
6783 __cil_tmp84 = 0 + 24;
6784#line 541
6785 __cil_tmp85 = (unsigned long )part;
6786#line 541
6787 __cil_tmp86 = __cil_tmp85 + __cil_tmp84;
6788#line 541
6789 __cil_tmp87 = *((struct mtd_info **)__cil_tmp86);
6790#line 541
6791 __cil_tmp88 = (loff_t )src;
6792#line 541
6793 __cil_tmp89 = (size_t *)(& retlen);
6794#line 541
6795 __cil_tmp90 = (u_char *)(& buf);
6796#line 541
6797 ret = mtd_read(__cil_tmp87, __cil_tmp88, 512UL, __cil_tmp89, __cil_tmp90);
6798 }
6799#line 543
6800 if (ret != 0) {
6801 {
6802#line 544
6803 printk("<4>ftl: Error reading old xfer unit in copy_erase_unit\n");
6804 }
6805#line 545
6806 return (ret);
6807 } else {
6808
6809 }
6810 {
6811#line 549
6812 __cil_tmp91 = 0 + 24;
6813#line 549
6814 __cil_tmp92 = (unsigned long )part;
6815#line 549
6816 __cil_tmp93 = __cil_tmp92 + __cil_tmp91;
6817#line 549
6818 __cil_tmp94 = *((struct mtd_info **)__cil_tmp93);
6819#line 549
6820 __cil_tmp95 = (loff_t )dest;
6821#line 549
6822 __cil_tmp96 = (size_t *)(& retlen);
6823#line 549
6824 __cil_tmp97 = (u_char const *)(& buf);
6825#line 549
6826 ret = mtd_write(__cil_tmp94, __cil_tmp95, 512UL, __cil_tmp96, __cil_tmp97);
6827 }
6828#line 551
6829 if (ret != 0) {
6830 {
6831#line 552
6832 printk("<4>ftl: Error writing new xfer unit in copy_erase_unit\n");
6833 }
6834#line 553
6835 return (ret);
6836 } else {
6837
6838 }
6839#line 556
6840 goto ldv_22305;
6841 switch_default:
6842#line 559
6843 __cil_tmp98 = (unsigned long )i;
6844#line 559
6845 __cil_tmp99 = (unsigned long )part;
6846#line 559
6847 __cil_tmp100 = __cil_tmp99 + 408;
6848#line 559
6849 __cil_tmp101 = *((uint32_t **)__cil_tmp100);
6850#line 559
6851 __cil_tmp102 = __cil_tmp101 + __cil_tmp98;
6852#line 559
6853 *__cil_tmp102 = 4294967295U;
6854#line 560
6855 free = free + 1U;
6856#line 561
6857 goto ldv_22305;
6858 } else {
6859 switch_break: ;
6860 }
6861 }
6862 }
6863 }
6864 ldv_22305:
6865#line 563
6866 src = src + 512U;
6867#line 564
6868 dest = dest + 512U;
6869#line 534
6870 i = i + 1U;
6871 ldv_22310: ;
6872 {
6873#line 534
6874 __cil_tmp103 = (unsigned long )part;
6875#line 534
6876 __cil_tmp104 = __cil_tmp103 + 420;
6877#line 534
6878 __cil_tmp105 = *((uint32_t *)__cil_tmp104);
6879#line 534
6880 if (__cil_tmp105 > i) {
6881#line 535
6882 goto ldv_22309;
6883 } else {
6884#line 537
6885 goto ldv_22311;
6886 }
6887 }
6888 ldv_22311:
6889 {
6890#line 568
6891 __cil_tmp106 = 0 + 24;
6892#line 568
6893 __cil_tmp107 = (unsigned long )part;
6894#line 568
6895 __cil_tmp108 = __cil_tmp107 + __cil_tmp106;
6896#line 568
6897 __cil_tmp109 = *((struct mtd_info **)__cil_tmp108);
6898#line 568
6899 __cil_tmp110 = 424 + 48;
6900#line 568
6901 __cil_tmp111 = (unsigned long )part;
6902#line 568
6903 __cil_tmp112 = __cil_tmp111 + __cil_tmp110;
6904#line 568
6905 __cil_tmp113 = *((uint32_t *)__cil_tmp112);
6906#line 568
6907 __cil_tmp114 = *((uint32_t *)xfer);
6908#line 568
6909 __cil_tmp115 = __cil_tmp114 + __cil_tmp113;
6910#line 568
6911 __cil_tmp116 = (loff_t )__cil_tmp115;
6912#line 568
6913 __cil_tmp117 = (unsigned long )part;
6914#line 568
6915 __cil_tmp118 = __cil_tmp117 + 420;
6916#line 568
6917 __cil_tmp119 = *((uint32_t *)__cil_tmp118);
6918#line 568
6919 __cil_tmp120 = (unsigned long )__cil_tmp119;
6920#line 568
6921 __cil_tmp121 = __cil_tmp120 * 4UL;
6922#line 568
6923 __cil_tmp122 = (size_t *)(& retlen);
6924#line 568
6925 __cil_tmp123 = (unsigned long )part;
6926#line 568
6927 __cil_tmp124 = __cil_tmp123 + 408;
6928#line 568
6929 __cil_tmp125 = *((uint32_t **)__cil_tmp124);
6930#line 568
6931 __cil_tmp126 = (u_char const *)__cil_tmp125;
6932#line 568
6933 ret = mtd_write(__cil_tmp109, __cil_tmp116, __cil_tmp121, __cil_tmp122, __cil_tmp126);
6934 }
6935#line 573
6936 if (ret != 0) {
6937 {
6938#line 574
6939 printk("<4>ftl: Error writing BAM in copy_erase_unit\n");
6940 }
6941#line 575
6942 return (ret);
6943 } else {
6944
6945 }
6946 {
6947#line 580
6948 __cil_tmp127 = 0 + 24;
6949#line 580
6950 __cil_tmp128 = (unsigned long )part;
6951#line 580
6952 __cil_tmp129 = __cil_tmp128 + __cil_tmp127;
6953#line 580
6954 __cil_tmp130 = *((struct mtd_info **)__cil_tmp129);
6955#line 580
6956 __cil_tmp131 = *((uint32_t *)xfer);
6957#line 580
6958 __cil_tmp132 = __cil_tmp131 + 20U;
6959#line 580
6960 __cil_tmp133 = (loff_t )__cil_tmp132;
6961#line 580
6962 __cil_tmp134 = (size_t *)(& retlen);
6963#line 580
6964 __cil_tmp135 = (u_char const *)(& srcunitswap);
6965#line 580
6966 ret = mtd_write(__cil_tmp130, __cil_tmp133, 2UL, __cil_tmp134, __cil_tmp135);
6967 }
6968#line 583
6969 if (ret != 0) {
6970 {
6971#line 584
6972 printk("<4>ftl: Error writing new LogicalEUN in copy_erase_unit\n");
6973 }
6974#line 585
6975 return (ret);
6976 } else {
6977
6978 }
6979#line 590
6980 __cil_tmp136 = (unsigned long )xfer;
6981#line 590
6982 __cil_tmp137 = __cil_tmp136 + 4;
6983#line 590
6984 i = *((uint32_t *)__cil_tmp137);
6985#line 591
6986 __cil_tmp138 = (unsigned long )xfer;
6987#line 591
6988 __cil_tmp139 = __cil_tmp138 + 4;
6989#line 591
6990 __cil_tmp140 = (unsigned long )eun;
6991#line 591
6992 __cil_tmp141 = __cil_tmp140 + 4;
6993#line 591
6994 *((uint32_t *)__cil_tmp139) = *((uint32_t *)__cil_tmp141);
6995#line 592
6996 __cil_tmp142 = (unsigned long )eun;
6997#line 592
6998 __cil_tmp143 = __cil_tmp142 + 4;
6999#line 592
7000 *((uint32_t *)__cil_tmp143) = i;
7001#line 593
7002 i = *((uint32_t *)xfer);
7003#line 594
7004 *((uint32_t *)xfer) = *((uint32_t *)eun);
7005#line 595
7006 *((uint32_t *)eun) = i;
7007#line 596
7008 __cil_tmp144 = (unsigned long )part;
7009#line 596
7010 __cil_tmp145 = __cil_tmp144 + 376;
7011#line 596
7012 __cil_tmp146 = (unsigned long )eun;
7013#line 596
7014 __cil_tmp147 = __cil_tmp146 + 8;
7015#line 596
7016 __cil_tmp148 = *((uint32_t *)__cil_tmp147);
7017#line 596
7018 __cil_tmp149 = (unsigned long )part;
7019#line 596
7020 __cil_tmp150 = __cil_tmp149 + 376;
7021#line 596
7022 __cil_tmp151 = *((uint32_t *)__cil_tmp150);
7023#line 596
7024 *((uint32_t *)__cil_tmp145) = __cil_tmp151 - __cil_tmp148;
7025#line 597
7026 __cil_tmp152 = (unsigned long )part;
7027#line 597
7028 __cil_tmp153 = __cil_tmp152 + 376;
7029#line 597
7030 __cil_tmp154 = (unsigned long )part;
7031#line 597
7032 __cil_tmp155 = __cil_tmp154 + 376;
7033#line 597
7034 __cil_tmp156 = *((uint32_t *)__cil_tmp155);
7035#line 597
7036 *((uint32_t *)__cil_tmp153) = __cil_tmp156 + free;
7037#line 598
7038 __cil_tmp157 = (unsigned long )eun;
7039#line 598
7040 __cil_tmp158 = __cil_tmp157 + 8;
7041#line 598
7042 *((uint32_t *)__cil_tmp158) = free;
7043#line 599
7044 __cil_tmp159 = (unsigned long )eun;
7045#line 599
7046 __cil_tmp160 = __cil_tmp159 + 12;
7047#line 599
7048 *((uint32_t *)__cil_tmp160) = 0U;
7049#line 602
7050 __cil_tmp161 = (unsigned long )part;
7051#line 602
7052 __cil_tmp162 = __cil_tmp161 + 400;
7053#line 602
7054 *((uint16_t *)__cil_tmp162) = srcunit;
7055#line 604
7056 return (0);
7057}
7058}
7059#line 623 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
7060static int reclaim_block(partition_t *part )
7061{ uint16_t i ;
7062 uint16_t eun ;
7063 uint16_t xfer ;
7064 uint32_t best ;
7065 int queued ;
7066 int ret ;
7067 struct _ddebug descriptor ;
7068 long tmp ;
7069 struct _ddebug descriptor___0 ;
7070 long tmp___0 ;
7071 int n ;
7072 struct _ddebug descriptor___1 ;
7073 long tmp___1 ;
7074 struct _ddebug descriptor___2 ;
7075 long tmp___2 ;
7076 struct _ddebug descriptor___3 ;
7077 long tmp___3 ;
7078 struct _ddebug descriptor___4 ;
7079 long tmp___4 ;
7080 struct _ddebug descriptor___5 ;
7081 long tmp___5 ;
7082 struct _ddebug descriptor___6 ;
7083 long tmp___6 ;
7084 int ne ;
7085 struct _ddebug descriptor___7 ;
7086 long tmp___7 ;
7087 struct _ddebug descriptor___8 ;
7088 long tmp___8 ;
7089 int ne___0 ;
7090 struct _ddebug descriptor___9 ;
7091 long tmp___9 ;
7092 struct _ddebug *__cil_tmp33 ;
7093 unsigned long __cil_tmp34 ;
7094 unsigned long __cil_tmp35 ;
7095 unsigned long __cil_tmp36 ;
7096 unsigned long __cil_tmp37 ;
7097 unsigned long __cil_tmp38 ;
7098 unsigned long __cil_tmp39 ;
7099 unsigned char __cil_tmp40 ;
7100 long __cil_tmp41 ;
7101 long __cil_tmp42 ;
7102 struct _ddebug *__cil_tmp43 ;
7103 unsigned long __cil_tmp44 ;
7104 unsigned long __cil_tmp45 ;
7105 unsigned long __cil_tmp46 ;
7106 unsigned long __cil_tmp47 ;
7107 unsigned long __cil_tmp48 ;
7108 unsigned long __cil_tmp49 ;
7109 unsigned char __cil_tmp50 ;
7110 long __cil_tmp51 ;
7111 long __cil_tmp52 ;
7112 unsigned long __cil_tmp53 ;
7113 unsigned long __cil_tmp54 ;
7114 unsigned long __cil_tmp55 ;
7115 uint8_t __cil_tmp56 ;
7116 int __cil_tmp57 ;
7117 unsigned long __cil_tmp58 ;
7118 unsigned long __cil_tmp59 ;
7119 unsigned long __cil_tmp60 ;
7120 struct xfer_info_t *__cil_tmp61 ;
7121 struct xfer_info_t *__cil_tmp62 ;
7122 unsigned long __cil_tmp63 ;
7123 unsigned long __cil_tmp64 ;
7124 uint16_t __cil_tmp65 ;
7125 unsigned int __cil_tmp66 ;
7126 struct _ddebug *__cil_tmp67 ;
7127 unsigned long __cil_tmp68 ;
7128 unsigned long __cil_tmp69 ;
7129 unsigned long __cil_tmp70 ;
7130 unsigned long __cil_tmp71 ;
7131 unsigned long __cil_tmp72 ;
7132 unsigned long __cil_tmp73 ;
7133 unsigned char __cil_tmp74 ;
7134 long __cil_tmp75 ;
7135 long __cil_tmp76 ;
7136 int __cil_tmp77 ;
7137 int __cil_tmp78 ;
7138 uint16_t __cil_tmp79 ;
7139 unsigned long __cil_tmp80 ;
7140 unsigned long __cil_tmp81 ;
7141 unsigned long __cil_tmp82 ;
7142 struct xfer_info_t *__cil_tmp83 ;
7143 struct xfer_info_t *__cil_tmp84 ;
7144 unsigned long __cil_tmp85 ;
7145 unsigned long __cil_tmp86 ;
7146 uint16_t __cil_tmp87 ;
7147 unsigned int __cil_tmp88 ;
7148 struct _ddebug *__cil_tmp89 ;
7149 unsigned long __cil_tmp90 ;
7150 unsigned long __cil_tmp91 ;
7151 unsigned long __cil_tmp92 ;
7152 unsigned long __cil_tmp93 ;
7153 unsigned long __cil_tmp94 ;
7154 unsigned long __cil_tmp95 ;
7155 unsigned char __cil_tmp96 ;
7156 long __cil_tmp97 ;
7157 long __cil_tmp98 ;
7158 int __cil_tmp99 ;
7159 unsigned long __cil_tmp100 ;
7160 unsigned long __cil_tmp101 ;
7161 unsigned long __cil_tmp102 ;
7162 struct xfer_info_t *__cil_tmp103 ;
7163 struct xfer_info_t *__cil_tmp104 ;
7164 unsigned long __cil_tmp105 ;
7165 unsigned long __cil_tmp106 ;
7166 uint16_t __cil_tmp107 ;
7167 unsigned int __cil_tmp108 ;
7168 struct _ddebug *__cil_tmp109 ;
7169 unsigned long __cil_tmp110 ;
7170 unsigned long __cil_tmp111 ;
7171 unsigned long __cil_tmp112 ;
7172 unsigned long __cil_tmp113 ;
7173 unsigned long __cil_tmp114 ;
7174 unsigned long __cil_tmp115 ;
7175 unsigned char __cil_tmp116 ;
7176 long __cil_tmp117 ;
7177 long __cil_tmp118 ;
7178 int __cil_tmp119 ;
7179 int __cil_tmp120 ;
7180 unsigned long __cil_tmp121 ;
7181 unsigned long __cil_tmp122 ;
7182 unsigned long __cil_tmp123 ;
7183 struct xfer_info_t *__cil_tmp124 ;
7184 struct xfer_info_t *__cil_tmp125 ;
7185 unsigned long __cil_tmp126 ;
7186 unsigned long __cil_tmp127 ;
7187 uint16_t __cil_tmp128 ;
7188 unsigned int __cil_tmp129 ;
7189 struct _ddebug *__cil_tmp130 ;
7190 unsigned long __cil_tmp131 ;
7191 unsigned long __cil_tmp132 ;
7192 unsigned long __cil_tmp133 ;
7193 unsigned long __cil_tmp134 ;
7194 unsigned long __cil_tmp135 ;
7195 unsigned long __cil_tmp136 ;
7196 unsigned char __cil_tmp137 ;
7197 long __cil_tmp138 ;
7198 long __cil_tmp139 ;
7199 int __cil_tmp140 ;
7200 unsigned long __cil_tmp141 ;
7201 unsigned long __cil_tmp142 ;
7202 unsigned long __cil_tmp143 ;
7203 struct xfer_info_t *__cil_tmp144 ;
7204 struct xfer_info_t *__cil_tmp145 ;
7205 unsigned long __cil_tmp146 ;
7206 unsigned long __cil_tmp147 ;
7207 uint32_t __cil_tmp148 ;
7208 unsigned long __cil_tmp149 ;
7209 unsigned long __cil_tmp150 ;
7210 unsigned long __cil_tmp151 ;
7211 struct xfer_info_t *__cil_tmp152 ;
7212 struct xfer_info_t *__cil_tmp153 ;
7213 unsigned long __cil_tmp154 ;
7214 unsigned long __cil_tmp155 ;
7215 struct _ddebug *__cil_tmp156 ;
7216 unsigned long __cil_tmp157 ;
7217 unsigned long __cil_tmp158 ;
7218 unsigned long __cil_tmp159 ;
7219 unsigned long __cil_tmp160 ;
7220 unsigned long __cil_tmp161 ;
7221 unsigned long __cil_tmp162 ;
7222 unsigned char __cil_tmp163 ;
7223 long __cil_tmp164 ;
7224 long __cil_tmp165 ;
7225 int __cil_tmp166 ;
7226 unsigned long __cil_tmp167 ;
7227 unsigned long __cil_tmp168 ;
7228 unsigned long __cil_tmp169 ;
7229 struct xfer_info_t *__cil_tmp170 ;
7230 struct xfer_info_t *__cil_tmp171 ;
7231 unsigned long __cil_tmp172 ;
7232 unsigned long __cil_tmp173 ;
7233 uint16_t __cil_tmp174 ;
7234 int __cil_tmp175 ;
7235 int __cil_tmp176 ;
7236 int __cil_tmp177 ;
7237 int __cil_tmp178 ;
7238 unsigned long __cil_tmp179 ;
7239 unsigned long __cil_tmp180 ;
7240 unsigned long __cil_tmp181 ;
7241 uint8_t __cil_tmp182 ;
7242 unsigned short __cil_tmp183 ;
7243 int __cil_tmp184 ;
7244 unsigned int __cil_tmp185 ;
7245 struct _ddebug *__cil_tmp186 ;
7246 unsigned long __cil_tmp187 ;
7247 unsigned long __cil_tmp188 ;
7248 unsigned long __cil_tmp189 ;
7249 unsigned long __cil_tmp190 ;
7250 unsigned long __cil_tmp191 ;
7251 unsigned long __cil_tmp192 ;
7252 unsigned char __cil_tmp193 ;
7253 long __cil_tmp194 ;
7254 long __cil_tmp195 ;
7255 unsigned long __cil_tmp196 ;
7256 unsigned long __cil_tmp197 ;
7257 unsigned long __cil_tmp198 ;
7258 struct mtd_info *__cil_tmp199 ;
7259 struct _ddebug *__cil_tmp200 ;
7260 unsigned long __cil_tmp201 ;
7261 unsigned long __cil_tmp202 ;
7262 unsigned long __cil_tmp203 ;
7263 unsigned long __cil_tmp204 ;
7264 unsigned long __cil_tmp205 ;
7265 unsigned long __cil_tmp206 ;
7266 unsigned char __cil_tmp207 ;
7267 long __cil_tmp208 ;
7268 long __cil_tmp209 ;
7269 unsigned int __cil_tmp210 ;
7270 int *__cil_tmp211 ;
7271 int __cil_tmp212 ;
7272 unsigned long __cil_tmp213 ;
7273 unsigned long __cil_tmp214 ;
7274 unsigned long __cil_tmp215 ;
7275 struct _ddebug *__cil_tmp216 ;
7276 unsigned long __cil_tmp217 ;
7277 unsigned long __cil_tmp218 ;
7278 unsigned long __cil_tmp219 ;
7279 unsigned long __cil_tmp220 ;
7280 unsigned long __cil_tmp221 ;
7281 unsigned long __cil_tmp222 ;
7282 unsigned char __cil_tmp223 ;
7283 long __cil_tmp224 ;
7284 long __cil_tmp225 ;
7285 unsigned long __cil_tmp226 ;
7286 unsigned long __cil_tmp227 ;
7287 unsigned long __cil_tmp228 ;
7288 struct eun_info_t *__cil_tmp229 ;
7289 struct eun_info_t *__cil_tmp230 ;
7290 unsigned long __cil_tmp231 ;
7291 unsigned long __cil_tmp232 ;
7292 uint32_t __cil_tmp233 ;
7293 unsigned long __cil_tmp234 ;
7294 unsigned long __cil_tmp235 ;
7295 unsigned long __cil_tmp236 ;
7296 struct eun_info_t *__cil_tmp237 ;
7297 struct eun_info_t *__cil_tmp238 ;
7298 unsigned long __cil_tmp239 ;
7299 unsigned long __cil_tmp240 ;
7300 int __cil_tmp241 ;
7301 int __cil_tmp242 ;
7302 int __cil_tmp243 ;
7303 unsigned long __cil_tmp244 ;
7304 unsigned long __cil_tmp245 ;
7305 uint16_t __cil_tmp246 ;
7306 int __cil_tmp247 ;
7307 unsigned long __cil_tmp248 ;
7308 unsigned long __cil_tmp249 ;
7309 unsigned long __cil_tmp250 ;
7310 struct eun_info_t *__cil_tmp251 ;
7311 struct eun_info_t *__cil_tmp252 ;
7312 unsigned long __cil_tmp253 ;
7313 unsigned long __cil_tmp254 ;
7314 uint32_t __cil_tmp255 ;
7315 unsigned long __cil_tmp256 ;
7316 unsigned long __cil_tmp257 ;
7317 unsigned long __cil_tmp258 ;
7318 struct eun_info_t *__cil_tmp259 ;
7319 struct eun_info_t *__cil_tmp260 ;
7320 unsigned long __cil_tmp261 ;
7321 unsigned long __cil_tmp262 ;
7322 int __cil_tmp263 ;
7323 int __cil_tmp264 ;
7324 int __cil_tmp265 ;
7325 unsigned long __cil_tmp266 ;
7326 unsigned long __cil_tmp267 ;
7327 uint16_t __cil_tmp268 ;
7328 int __cil_tmp269 ;
7329 struct _ddebug *__cil_tmp270 ;
7330 unsigned long __cil_tmp271 ;
7331 unsigned long __cil_tmp272 ;
7332 unsigned long __cil_tmp273 ;
7333 unsigned long __cil_tmp274 ;
7334 unsigned long __cil_tmp275 ;
7335 unsigned long __cil_tmp276 ;
7336 unsigned char __cil_tmp277 ;
7337 long __cil_tmp278 ;
7338 long __cil_tmp279 ;
7339 int __cil_tmp280 ;
7340 uint16_t __cil_tmp281 ;
7341 int __cil_tmp282 ;
7342 uint16_t __cil_tmp283 ;
7343 int __cil_tmp284 ;
7344 uint16_t __cil_tmp285 ;
7345
7346 {
7347 {
7348#line 629
7349 __cil_tmp33 = & descriptor;
7350#line 629
7351 *((char const **)__cil_tmp33) = "ftl";
7352#line 629
7353 __cil_tmp34 = (unsigned long )(& descriptor) + 8;
7354#line 629
7355 *((char const **)__cil_tmp34) = "reclaim_block";
7356#line 629
7357 __cil_tmp35 = (unsigned long )(& descriptor) + 16;
7358#line 629
7359 *((char const **)__cil_tmp35) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7360#line 629
7361 __cil_tmp36 = (unsigned long )(& descriptor) + 24;
7362#line 629
7363 *((char const **)__cil_tmp36) = "ftl_cs: reclaiming space...\n";
7364#line 629
7365 __cil_tmp37 = (unsigned long )(& descriptor) + 32;
7366#line 629
7367 *((unsigned int *)__cil_tmp37) = 629U;
7368#line 629
7369 __cil_tmp38 = (unsigned long )(& descriptor) + 35;
7370#line 629
7371 *((unsigned char *)__cil_tmp38) = (unsigned char)0;
7372#line 629
7373 __cil_tmp39 = (unsigned long )(& descriptor) + 35;
7374#line 629
7375 __cil_tmp40 = *((unsigned char *)__cil_tmp39);
7376#line 629
7377 __cil_tmp41 = (long )__cil_tmp40;
7378#line 629
7379 __cil_tmp42 = __cil_tmp41 & 1L;
7380#line 629
7381 tmp = __builtin_expect(__cil_tmp42, 0L);
7382 }
7383#line 629
7384 if (tmp != 0L) {
7385 {
7386#line 629
7387 __dynamic_pr_debug(& descriptor, "ftl_cs: reclaiming space...\n");
7388 }
7389 } else {
7390
7391 }
7392 {
7393#line 630
7394 __cil_tmp43 = & descriptor___0;
7395#line 630
7396 *((char const **)__cil_tmp43) = "ftl";
7397#line 630
7398 __cil_tmp44 = (unsigned long )(& descriptor___0) + 8;
7399#line 630
7400 *((char const **)__cil_tmp44) = "reclaim_block";
7401#line 630
7402 __cil_tmp45 = (unsigned long )(& descriptor___0) + 16;
7403#line 630
7404 *((char const **)__cil_tmp45) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7405#line 630
7406 __cil_tmp46 = (unsigned long )(& descriptor___0) + 24;
7407#line 630
7408 *((char const **)__cil_tmp46) = "NumTransferUnits == %x\n";
7409#line 630
7410 __cil_tmp47 = (unsigned long )(& descriptor___0) + 32;
7411#line 630
7412 *((unsigned int *)__cil_tmp47) = 630U;
7413#line 630
7414 __cil_tmp48 = (unsigned long )(& descriptor___0) + 35;
7415#line 630
7416 *((unsigned char *)__cil_tmp48) = (unsigned char)0;
7417#line 630
7418 __cil_tmp49 = (unsigned long )(& descriptor___0) + 35;
7419#line 630
7420 __cil_tmp50 = *((unsigned char *)__cil_tmp49);
7421#line 630
7422 __cil_tmp51 = (long )__cil_tmp50;
7423#line 630
7424 __cil_tmp52 = __cil_tmp51 & 1L;
7425#line 630
7426 tmp___0 = __builtin_expect(__cil_tmp52, 0L);
7427 }
7428#line 630
7429 if (tmp___0 != 0L) {
7430 {
7431#line 630
7432 __cil_tmp53 = 424 + 15;
7433#line 630
7434 __cil_tmp54 = (unsigned long )part;
7435#line 630
7436 __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
7437#line 630
7438 __cil_tmp56 = *((uint8_t *)__cil_tmp55);
7439#line 630
7440 __cil_tmp57 = (int )__cil_tmp56;
7441#line 630
7442 __dynamic_pr_debug(& descriptor___0, "NumTransferUnits == %x\n", __cil_tmp57);
7443 }
7444 } else {
7445
7446 }
7447#line 632
7448 best = 4294967295U;
7449#line 632
7450 xfer = (uint16_t )65535U;
7451 ldv_22336:
7452#line 634
7453 queued = 0;
7454#line 635
7455 i = (uint16_t )0U;
7456#line 635
7457 goto ldv_22331;
7458 ldv_22330:
7459#line 636
7460 n = 0;
7461 {
7462#line 637
7463 __cil_tmp58 = (unsigned long )i;
7464#line 637
7465 __cil_tmp59 = (unsigned long )part;
7466#line 637
7467 __cil_tmp60 = __cil_tmp59 + 392;
7468#line 637
7469 __cil_tmp61 = *((struct xfer_info_t **)__cil_tmp60);
7470#line 637
7471 __cil_tmp62 = __cil_tmp61 + __cil_tmp58;
7472#line 637
7473 __cil_tmp63 = (unsigned long )__cil_tmp62;
7474#line 637
7475 __cil_tmp64 = __cil_tmp63 + 8;
7476#line 637
7477 __cil_tmp65 = *((uint16_t *)__cil_tmp64);
7478#line 637
7479 __cil_tmp66 = (unsigned int )__cil_tmp65;
7480#line 637
7481 if (__cil_tmp66 == 0U) {
7482 {
7483#line 638
7484 __cil_tmp67 = & descriptor___1;
7485#line 638
7486 *((char const **)__cil_tmp67) = "ftl";
7487#line 638
7488 __cil_tmp68 = (unsigned long )(& descriptor___1) + 8;
7489#line 638
7490 *((char const **)__cil_tmp68) = "reclaim_block";
7491#line 638
7492 __cil_tmp69 = (unsigned long )(& descriptor___1) + 16;
7493#line 638
7494 *((char const **)__cil_tmp69) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7495#line 638
7496 __cil_tmp70 = (unsigned long )(& descriptor___1) + 24;
7497#line 638
7498 *((char const **)__cil_tmp70) = "XferInfo[%d].state == XFER_UNKNOWN\n";
7499#line 638
7500 __cil_tmp71 = (unsigned long )(& descriptor___1) + 32;
7501#line 638
7502 *((unsigned int *)__cil_tmp71) = 638U;
7503#line 638
7504 __cil_tmp72 = (unsigned long )(& descriptor___1) + 35;
7505#line 638
7506 *((unsigned char *)__cil_tmp72) = (unsigned char)0;
7507#line 638
7508 __cil_tmp73 = (unsigned long )(& descriptor___1) + 35;
7509#line 638
7510 __cil_tmp74 = *((unsigned char *)__cil_tmp73);
7511#line 638
7512 __cil_tmp75 = (long )__cil_tmp74;
7513#line 638
7514 __cil_tmp76 = __cil_tmp75 & 1L;
7515#line 638
7516 tmp___1 = __builtin_expect(__cil_tmp76, 0L);
7517 }
7518#line 638
7519 if (tmp___1 != 0L) {
7520 {
7521#line 638
7522 __cil_tmp77 = (int )i;
7523#line 638
7524 __dynamic_pr_debug(& descriptor___1, "XferInfo[%d].state == XFER_UNKNOWN\n",
7525 __cil_tmp77);
7526 }
7527 } else {
7528
7529 }
7530 {
7531#line 639
7532 n = 1;
7533#line 640
7534 __cil_tmp78 = (int )i;
7535#line 640
7536 __cil_tmp79 = (uint16_t )__cil_tmp78;
7537#line 640
7538 erase_xfer(part, __cil_tmp79);
7539 }
7540 } else {
7541
7542 }
7543 }
7544 {
7545#line 642
7546 __cil_tmp80 = (unsigned long )i;
7547#line 642
7548 __cil_tmp81 = (unsigned long )part;
7549#line 642
7550 __cil_tmp82 = __cil_tmp81 + 392;
7551#line 642
7552 __cil_tmp83 = *((struct xfer_info_t **)__cil_tmp82);
7553#line 642
7554 __cil_tmp84 = __cil_tmp83 + __cil_tmp80;
7555#line 642
7556 __cil_tmp85 = (unsigned long )__cil_tmp84;
7557#line 642
7558 __cil_tmp86 = __cil_tmp85 + 8;
7559#line 642
7560 __cil_tmp87 = *((uint16_t *)__cil_tmp86);
7561#line 642
7562 __cil_tmp88 = (unsigned int )__cil_tmp87;
7563#line 642
7564 if (__cil_tmp88 == 1U) {
7565 {
7566#line 643
7567 __cil_tmp89 = & descriptor___2;
7568#line 643
7569 *((char const **)__cil_tmp89) = "ftl";
7570#line 643
7571 __cil_tmp90 = (unsigned long )(& descriptor___2) + 8;
7572#line 643
7573 *((char const **)__cil_tmp90) = "reclaim_block";
7574#line 643
7575 __cil_tmp91 = (unsigned long )(& descriptor___2) + 16;
7576#line 643
7577 *((char const **)__cil_tmp91) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7578#line 643
7579 __cil_tmp92 = (unsigned long )(& descriptor___2) + 24;
7580#line 643
7581 *((char const **)__cil_tmp92) = "XferInfo[%d].state == XFER_ERASING\n";
7582#line 643
7583 __cil_tmp93 = (unsigned long )(& descriptor___2) + 32;
7584#line 643
7585 *((unsigned int *)__cil_tmp93) = 643U;
7586#line 643
7587 __cil_tmp94 = (unsigned long )(& descriptor___2) + 35;
7588#line 643
7589 *((unsigned char *)__cil_tmp94) = (unsigned char)0;
7590#line 643
7591 __cil_tmp95 = (unsigned long )(& descriptor___2) + 35;
7592#line 643
7593 __cil_tmp96 = *((unsigned char *)__cil_tmp95);
7594#line 643
7595 __cil_tmp97 = (long )__cil_tmp96;
7596#line 643
7597 __cil_tmp98 = __cil_tmp97 & 1L;
7598#line 643
7599 tmp___2 = __builtin_expect(__cil_tmp98, 0L);
7600 }
7601#line 643
7602 if (tmp___2 != 0L) {
7603 {
7604#line 643
7605 __cil_tmp99 = (int )i;
7606#line 643
7607 __dynamic_pr_debug(& descriptor___2, "XferInfo[%d].state == XFER_ERASING\n",
7608 __cil_tmp99);
7609 }
7610 } else {
7611
7612 }
7613#line 644
7614 n = 1;
7615#line 645
7616 queued = 1;
7617 } else {
7618 {
7619#line 647
7620 __cil_tmp100 = (unsigned long )i;
7621#line 647
7622 __cil_tmp101 = (unsigned long )part;
7623#line 647
7624 __cil_tmp102 = __cil_tmp101 + 392;
7625#line 647
7626 __cil_tmp103 = *((struct xfer_info_t **)__cil_tmp102);
7627#line 647
7628 __cil_tmp104 = __cil_tmp103 + __cil_tmp100;
7629#line 647
7630 __cil_tmp105 = (unsigned long )__cil_tmp104;
7631#line 647
7632 __cil_tmp106 = __cil_tmp105 + 8;
7633#line 647
7634 __cil_tmp107 = *((uint16_t *)__cil_tmp106);
7635#line 647
7636 __cil_tmp108 = (unsigned int )__cil_tmp107;
7637#line 647
7638 if (__cil_tmp108 == 2U) {
7639 {
7640#line 648
7641 __cil_tmp109 = & descriptor___3;
7642#line 648
7643 *((char const **)__cil_tmp109) = "ftl";
7644#line 648
7645 __cil_tmp110 = (unsigned long )(& descriptor___3) + 8;
7646#line 648
7647 *((char const **)__cil_tmp110) = "reclaim_block";
7648#line 648
7649 __cil_tmp111 = (unsigned long )(& descriptor___3) + 16;
7650#line 648
7651 *((char const **)__cil_tmp111) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7652#line 648
7653 __cil_tmp112 = (unsigned long )(& descriptor___3) + 24;
7654#line 648
7655 *((char const **)__cil_tmp112) = "XferInfo[%d].state == XFER_ERASED\n";
7656#line 648
7657 __cil_tmp113 = (unsigned long )(& descriptor___3) + 32;
7658#line 648
7659 *((unsigned int *)__cil_tmp113) = 648U;
7660#line 648
7661 __cil_tmp114 = (unsigned long )(& descriptor___3) + 35;
7662#line 648
7663 *((unsigned char *)__cil_tmp114) = (unsigned char)0;
7664#line 648
7665 __cil_tmp115 = (unsigned long )(& descriptor___3) + 35;
7666#line 648
7667 __cil_tmp116 = *((unsigned char *)__cil_tmp115);
7668#line 648
7669 __cil_tmp117 = (long )__cil_tmp116;
7670#line 648
7671 __cil_tmp118 = __cil_tmp117 & 1L;
7672#line 648
7673 tmp___3 = __builtin_expect(__cil_tmp118, 0L);
7674 }
7675#line 648
7676 if (tmp___3 != 0L) {
7677 {
7678#line 648
7679 __cil_tmp119 = (int )i;
7680#line 648
7681 __dynamic_pr_debug(& descriptor___3, "XferInfo[%d].state == XFER_ERASED\n",
7682 __cil_tmp119);
7683 }
7684 } else {
7685
7686 }
7687 {
7688#line 649
7689 n = 1;
7690#line 650
7691 __cil_tmp120 = (int )i;
7692#line 650
7693 prepare_xfer(part, __cil_tmp120);
7694 }
7695 } else {
7696
7697 }
7698 }
7699 }
7700 }
7701 {
7702#line 652
7703 __cil_tmp121 = (unsigned long )i;
7704#line 652
7705 __cil_tmp122 = (unsigned long )part;
7706#line 652
7707 __cil_tmp123 = __cil_tmp122 + 392;
7708#line 652
7709 __cil_tmp124 = *((struct xfer_info_t **)__cil_tmp123);
7710#line 652
7711 __cil_tmp125 = __cil_tmp124 + __cil_tmp121;
7712#line 652
7713 __cil_tmp126 = (unsigned long )__cil_tmp125;
7714#line 652
7715 __cil_tmp127 = __cil_tmp126 + 8;
7716#line 652
7717 __cil_tmp128 = *((uint16_t *)__cil_tmp127);
7718#line 652
7719 __cil_tmp129 = (unsigned int )__cil_tmp128;
7720#line 652
7721 if (__cil_tmp129 == 3U) {
7722 {
7723#line 653
7724 __cil_tmp130 = & descriptor___4;
7725#line 653
7726 *((char const **)__cil_tmp130) = "ftl";
7727#line 653
7728 __cil_tmp131 = (unsigned long )(& descriptor___4) + 8;
7729#line 653
7730 *((char const **)__cil_tmp131) = "reclaim_block";
7731#line 653
7732 __cil_tmp132 = (unsigned long )(& descriptor___4) + 16;
7733#line 653
7734 *((char const **)__cil_tmp132) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7735#line 653
7736 __cil_tmp133 = (unsigned long )(& descriptor___4) + 24;
7737#line 653
7738 *((char const **)__cil_tmp133) = "XferInfo[%d].state == XFER_PREPARED\n";
7739#line 653
7740 __cil_tmp134 = (unsigned long )(& descriptor___4) + 32;
7741#line 653
7742 *((unsigned int *)__cil_tmp134) = 653U;
7743#line 653
7744 __cil_tmp135 = (unsigned long )(& descriptor___4) + 35;
7745#line 653
7746 *((unsigned char *)__cil_tmp135) = (unsigned char)0;
7747#line 653
7748 __cil_tmp136 = (unsigned long )(& descriptor___4) + 35;
7749#line 653
7750 __cil_tmp137 = *((unsigned char *)__cil_tmp136);
7751#line 653
7752 __cil_tmp138 = (long )__cil_tmp137;
7753#line 653
7754 __cil_tmp139 = __cil_tmp138 & 1L;
7755#line 653
7756 tmp___4 = __builtin_expect(__cil_tmp139, 0L);
7757 }
7758#line 653
7759 if (tmp___4 != 0L) {
7760 {
7761#line 653
7762 __cil_tmp140 = (int )i;
7763#line 653
7764 __dynamic_pr_debug(& descriptor___4, "XferInfo[%d].state == XFER_PREPARED\n",
7765 __cil_tmp140);
7766 }
7767 } else {
7768
7769 }
7770#line 654
7771 n = 1;
7772 {
7773#line 655
7774 __cil_tmp141 = (unsigned long )i;
7775#line 655
7776 __cil_tmp142 = (unsigned long )part;
7777#line 655
7778 __cil_tmp143 = __cil_tmp142 + 392;
7779#line 655
7780 __cil_tmp144 = *((struct xfer_info_t **)__cil_tmp143);
7781#line 655
7782 __cil_tmp145 = __cil_tmp144 + __cil_tmp141;
7783#line 655
7784 __cil_tmp146 = (unsigned long )__cil_tmp145;
7785#line 655
7786 __cil_tmp147 = __cil_tmp146 + 4;
7787#line 655
7788 __cil_tmp148 = *((uint32_t *)__cil_tmp147);
7789#line 655
7790 if (__cil_tmp148 <= best) {
7791#line 656
7792 __cil_tmp149 = (unsigned long )i;
7793#line 656
7794 __cil_tmp150 = (unsigned long )part;
7795#line 656
7796 __cil_tmp151 = __cil_tmp150 + 392;
7797#line 656
7798 __cil_tmp152 = *((struct xfer_info_t **)__cil_tmp151);
7799#line 656
7800 __cil_tmp153 = __cil_tmp152 + __cil_tmp149;
7801#line 656
7802 __cil_tmp154 = (unsigned long )__cil_tmp153;
7803#line 656
7804 __cil_tmp155 = __cil_tmp154 + 4;
7805#line 656
7806 best = *((uint32_t *)__cil_tmp155);
7807#line 657
7808 xfer = i;
7809 } else {
7810
7811 }
7812 }
7813 } else {
7814
7815 }
7816 }
7817#line 660
7818 if (n == 0) {
7819 {
7820#line 661
7821 __cil_tmp156 = & descriptor___5;
7822#line 661
7823 *((char const **)__cil_tmp156) = "ftl";
7824#line 661
7825 __cil_tmp157 = (unsigned long )(& descriptor___5) + 8;
7826#line 661
7827 *((char const **)__cil_tmp157) = "reclaim_block";
7828#line 661
7829 __cil_tmp158 = (unsigned long )(& descriptor___5) + 16;
7830#line 661
7831 *((char const **)__cil_tmp158) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7832#line 661
7833 __cil_tmp159 = (unsigned long )(& descriptor___5) + 24;
7834#line 661
7835 *((char const **)__cil_tmp159) = "XferInfo[%d].state == %x\n";
7836#line 661
7837 __cil_tmp160 = (unsigned long )(& descriptor___5) + 32;
7838#line 661
7839 *((unsigned int *)__cil_tmp160) = 661U;
7840#line 661
7841 __cil_tmp161 = (unsigned long )(& descriptor___5) + 35;
7842#line 661
7843 *((unsigned char *)__cil_tmp161) = (unsigned char)0;
7844#line 661
7845 __cil_tmp162 = (unsigned long )(& descriptor___5) + 35;
7846#line 661
7847 __cil_tmp163 = *((unsigned char *)__cil_tmp162);
7848#line 661
7849 __cil_tmp164 = (long )__cil_tmp163;
7850#line 661
7851 __cil_tmp165 = __cil_tmp164 & 1L;
7852#line 661
7853 tmp___5 = __builtin_expect(__cil_tmp165, 0L);
7854 }
7855#line 661
7856 if (tmp___5 != 0L) {
7857 {
7858#line 661
7859 __cil_tmp166 = (int )i;
7860#line 661
7861 __cil_tmp167 = (unsigned long )i;
7862#line 661
7863 __cil_tmp168 = (unsigned long )part;
7864#line 661
7865 __cil_tmp169 = __cil_tmp168 + 392;
7866#line 661
7867 __cil_tmp170 = *((struct xfer_info_t **)__cil_tmp169);
7868#line 661
7869 __cil_tmp171 = __cil_tmp170 + __cil_tmp167;
7870#line 661
7871 __cil_tmp172 = (unsigned long )__cil_tmp171;
7872#line 661
7873 __cil_tmp173 = __cil_tmp172 + 8;
7874#line 661
7875 __cil_tmp174 = *((uint16_t *)__cil_tmp173);
7876#line 661
7877 __cil_tmp175 = (int )__cil_tmp174;
7878#line 661
7879 __dynamic_pr_debug(& descriptor___5, "XferInfo[%d].state == %x\n", __cil_tmp166,
7880 __cil_tmp175);
7881 }
7882 } else {
7883
7884 }
7885 } else {
7886
7887 }
7888#line 635
7889 __cil_tmp176 = (int )i;
7890#line 635
7891 __cil_tmp177 = __cil_tmp176 + 1;
7892#line 635
7893 i = (uint16_t )__cil_tmp177;
7894 ldv_22331: ;
7895 {
7896#line 635
7897 __cil_tmp178 = (int )i;
7898#line 635
7899 __cil_tmp179 = 424 + 15;
7900#line 635
7901 __cil_tmp180 = (unsigned long )part;
7902#line 635
7903 __cil_tmp181 = __cil_tmp180 + __cil_tmp179;
7904#line 635
7905 __cil_tmp182 = *((uint8_t *)__cil_tmp181);
7906#line 635
7907 __cil_tmp183 = (unsigned short )__cil_tmp182;
7908#line 635
7909 __cil_tmp184 = (int )__cil_tmp183;
7910#line 635
7911 if (__cil_tmp184 > __cil_tmp178) {
7912#line 636
7913 goto ldv_22330;
7914 } else {
7915#line 638
7916 goto ldv_22332;
7917 }
7918 }
7919 ldv_22332: ;
7920 {
7921#line 664
7922 __cil_tmp185 = (unsigned int )xfer;
7923#line 664
7924 if (__cil_tmp185 == 65535U) {
7925#line 665
7926 if (queued != 0) {
7927 {
7928#line 666
7929 __cil_tmp186 = & descriptor___6;
7930#line 666
7931 *((char const **)__cil_tmp186) = "ftl";
7932#line 666
7933 __cil_tmp187 = (unsigned long )(& descriptor___6) + 8;
7934#line 666
7935 *((char const **)__cil_tmp187) = "reclaim_block";
7936#line 666
7937 __cil_tmp188 = (unsigned long )(& descriptor___6) + 16;
7938#line 666
7939 *((char const **)__cil_tmp188) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
7940#line 666
7941 __cil_tmp189 = (unsigned long )(& descriptor___6) + 24;
7942#line 666
7943 *((char const **)__cil_tmp189) = "ftl_cs: waiting for transfer unit to be prepared...\n";
7944#line 666
7945 __cil_tmp190 = (unsigned long )(& descriptor___6) + 32;
7946#line 666
7947 *((unsigned int *)__cil_tmp190) = 667U;
7948#line 666
7949 __cil_tmp191 = (unsigned long )(& descriptor___6) + 35;
7950#line 666
7951 *((unsigned char *)__cil_tmp191) = (unsigned char)0;
7952#line 666
7953 __cil_tmp192 = (unsigned long )(& descriptor___6) + 35;
7954#line 666
7955 __cil_tmp193 = *((unsigned char *)__cil_tmp192);
7956#line 666
7957 __cil_tmp194 = (long )__cil_tmp193;
7958#line 666
7959 __cil_tmp195 = __cil_tmp194 & 1L;
7960#line 666
7961 tmp___6 = __builtin_expect(__cil_tmp195, 0L);
7962 }
7963#line 666
7964 if (tmp___6 != 0L) {
7965 {
7966#line 666
7967 __dynamic_pr_debug(& descriptor___6, "ftl_cs: waiting for transfer unit to be prepared...\n");
7968 }
7969 } else {
7970
7971 }
7972 {
7973#line 668
7974 __cil_tmp196 = 0 + 24;
7975#line 668
7976 __cil_tmp197 = (unsigned long )part;
7977#line 668
7978 __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
7979#line 668
7980 __cil_tmp199 = *((struct mtd_info **)__cil_tmp198);
7981#line 668
7982 mtd_sync(__cil_tmp199);
7983 }
7984 } else {
7985#line 670
7986 ne = 0;
7987#line 671
7988 ne = ne + 1;
7989#line 671
7990 if (ne <= 4) {
7991 {
7992#line 672
7993 printk("<5>ftl_cs: reclaim failed: no suitable transfer units!\n");
7994 }
7995 } else {
7996 {
7997#line 675
7998 __cil_tmp200 = & descriptor___7;
7999#line 675
8000 *((char const **)__cil_tmp200) = "ftl";
8001#line 675
8002 __cil_tmp201 = (unsigned long )(& descriptor___7) + 8;
8003#line 675
8004 *((char const **)__cil_tmp201) = "reclaim_block";
8005#line 675
8006 __cil_tmp202 = (unsigned long )(& descriptor___7) + 16;
8007#line 675
8008 *((char const **)__cil_tmp202) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
8009#line 675
8010 __cil_tmp203 = (unsigned long )(& descriptor___7) + 24;
8011#line 675
8012 *((char const **)__cil_tmp203) = "ftl_cs: reclaim failed: no suitable transfer units!\n";
8013#line 675
8014 __cil_tmp204 = (unsigned long )(& descriptor___7) + 32;
8015#line 675
8016 *((unsigned int *)__cil_tmp204) = 676U;
8017#line 675
8018 __cil_tmp205 = (unsigned long )(& descriptor___7) + 35;
8019#line 675
8020 *((unsigned char *)__cil_tmp205) = (unsigned char)0;
8021#line 675
8022 __cil_tmp206 = (unsigned long )(& descriptor___7) + 35;
8023#line 675
8024 __cil_tmp207 = *((unsigned char *)__cil_tmp206);
8025#line 675
8026 __cil_tmp208 = (long )__cil_tmp207;
8027#line 675
8028 __cil_tmp209 = __cil_tmp208 & 1L;
8029#line 675
8030 tmp___7 = __builtin_expect(__cil_tmp209, 0L);
8031 }
8032#line 675
8033 if (tmp___7 != 0L) {
8034 {
8035#line 675
8036 __dynamic_pr_debug(& descriptor___7, "ftl_cs: reclaim failed: no suitable transfer units!\n");
8037 }
8038 } else {
8039
8040 }
8041 }
8042#line 678
8043 return (-5);
8044 }
8045 } else {
8046
8047 }
8048 }
8049 {
8050#line 681
8051 __cil_tmp210 = (unsigned int )xfer;
8052#line 681
8053 if (__cil_tmp210 == 65535U) {
8054#line 682
8055 goto ldv_22336;
8056 } else {
8057#line 684
8058 goto ldv_22337;
8059 }
8060 }
8061 ldv_22337:
8062#line 683
8063 eun = (uint16_t )0U;
8064 {
8065#line 684
8066 __cil_tmp211 = & shuffle_freq;
8067#line 684
8068 __cil_tmp212 = *__cil_tmp211;
8069#line 684
8070 __cil_tmp213 = (unsigned long )__cil_tmp212;
8071#line 684
8072 __cil_tmp214 = (unsigned long )jiffies;
8073#line 684
8074 __cil_tmp215 = __cil_tmp214 % __cil_tmp213;
8075#line 684
8076 if (__cil_tmp215 == 0UL) {
8077 {
8078#line 685
8079 __cil_tmp216 = & descriptor___8;
8080#line 685
8081 *((char const **)__cil_tmp216) = "ftl";
8082#line 685
8083 __cil_tmp217 = (unsigned long )(& descriptor___8) + 8;
8084#line 685
8085 *((char const **)__cil_tmp217) = "reclaim_block";
8086#line 685
8087 __cil_tmp218 = (unsigned long )(& descriptor___8) + 16;
8088#line 685
8089 *((char const **)__cil_tmp218) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
8090#line 685
8091 __cil_tmp219 = (unsigned long )(& descriptor___8) + 24;
8092#line 685
8093 *((char const **)__cil_tmp219) = "ftl_cs: recycling freshest block...\n";
8094#line 685
8095 __cil_tmp220 = (unsigned long )(& descriptor___8) + 32;
8096#line 685
8097 *((unsigned int *)__cil_tmp220) = 685U;
8098#line 685
8099 __cil_tmp221 = (unsigned long )(& descriptor___8) + 35;
8100#line 685
8101 *((unsigned char *)__cil_tmp221) = (unsigned char)0;
8102#line 685
8103 __cil_tmp222 = (unsigned long )(& descriptor___8) + 35;
8104#line 685
8105 __cil_tmp223 = *((unsigned char *)__cil_tmp222);
8106#line 685
8107 __cil_tmp224 = (long )__cil_tmp223;
8108#line 685
8109 __cil_tmp225 = __cil_tmp224 & 1L;
8110#line 685
8111 tmp___8 = __builtin_expect(__cil_tmp225, 0L);
8112 }
8113#line 685
8114 if (tmp___8 != 0L) {
8115 {
8116#line 685
8117 __dynamic_pr_debug(& descriptor___8, "ftl_cs: recycling freshest block...\n");
8118 }
8119 } else {
8120
8121 }
8122#line 686
8123 best = 4294967295U;
8124#line 687
8125 i = (uint16_t )0U;
8126#line 687
8127 goto ldv_22340;
8128 ldv_22339: ;
8129 {
8130#line 688
8131 __cil_tmp226 = (unsigned long )i;
8132#line 688
8133 __cil_tmp227 = (unsigned long )part;
8134#line 688
8135 __cil_tmp228 = __cil_tmp227 + 384;
8136#line 688
8137 __cil_tmp229 = *((struct eun_info_t **)__cil_tmp228);
8138#line 688
8139 __cil_tmp230 = __cil_tmp229 + __cil_tmp226;
8140#line 688
8141 __cil_tmp231 = (unsigned long )__cil_tmp230;
8142#line 688
8143 __cil_tmp232 = __cil_tmp231 + 4;
8144#line 688
8145 __cil_tmp233 = *((uint32_t *)__cil_tmp232);
8146#line 688
8147 if (__cil_tmp233 <= best) {
8148#line 689
8149 __cil_tmp234 = (unsigned long )i;
8150#line 689
8151 __cil_tmp235 = (unsigned long )part;
8152#line 689
8153 __cil_tmp236 = __cil_tmp235 + 384;
8154#line 689
8155 __cil_tmp237 = *((struct eun_info_t **)__cil_tmp236);
8156#line 689
8157 __cil_tmp238 = __cil_tmp237 + __cil_tmp234;
8158#line 689
8159 __cil_tmp239 = (unsigned long )__cil_tmp238;
8160#line 689
8161 __cil_tmp240 = __cil_tmp239 + 4;
8162#line 689
8163 best = *((uint32_t *)__cil_tmp240);
8164#line 690
8165 eun = i;
8166 } else {
8167
8168 }
8169 }
8170#line 687
8171 __cil_tmp241 = (int )i;
8172#line 687
8173 __cil_tmp242 = __cil_tmp241 + 1;
8174#line 687
8175 i = (uint16_t )__cil_tmp242;
8176 ldv_22340: ;
8177 {
8178#line 687
8179 __cil_tmp243 = (int )i;
8180#line 687
8181 __cil_tmp244 = (unsigned long )part;
8182#line 687
8183 __cil_tmp245 = __cil_tmp244 + 416;
8184#line 687
8185 __cil_tmp246 = *((uint16_t *)__cil_tmp245);
8186#line 687
8187 __cil_tmp247 = (int )__cil_tmp246;
8188#line 687
8189 if (__cil_tmp247 > __cil_tmp243) {
8190#line 688
8191 goto ldv_22339;
8192 } else {
8193#line 690
8194 goto ldv_22341;
8195 }
8196 }
8197 ldv_22341: ;
8198 } else {
8199#line 693
8200 best = 0U;
8201#line 694
8202 i = (uint16_t )0U;
8203#line 694
8204 goto ldv_22343;
8205 ldv_22342: ;
8206 {
8207#line 695
8208 __cil_tmp248 = (unsigned long )i;
8209#line 695
8210 __cil_tmp249 = (unsigned long )part;
8211#line 695
8212 __cil_tmp250 = __cil_tmp249 + 384;
8213#line 695
8214 __cil_tmp251 = *((struct eun_info_t **)__cil_tmp250);
8215#line 695
8216 __cil_tmp252 = __cil_tmp251 + __cil_tmp248;
8217#line 695
8218 __cil_tmp253 = (unsigned long )__cil_tmp252;
8219#line 695
8220 __cil_tmp254 = __cil_tmp253 + 12;
8221#line 695
8222 __cil_tmp255 = *((uint32_t *)__cil_tmp254);
8223#line 695
8224 if (__cil_tmp255 >= best) {
8225#line 696
8226 __cil_tmp256 = (unsigned long )i;
8227#line 696
8228 __cil_tmp257 = (unsigned long )part;
8229#line 696
8230 __cil_tmp258 = __cil_tmp257 + 384;
8231#line 696
8232 __cil_tmp259 = *((struct eun_info_t **)__cil_tmp258);
8233#line 696
8234 __cil_tmp260 = __cil_tmp259 + __cil_tmp256;
8235#line 696
8236 __cil_tmp261 = (unsigned long )__cil_tmp260;
8237#line 696
8238 __cil_tmp262 = __cil_tmp261 + 12;
8239#line 696
8240 best = *((uint32_t *)__cil_tmp262);
8241#line 697
8242 eun = i;
8243 } else {
8244
8245 }
8246 }
8247#line 694
8248 __cil_tmp263 = (int )i;
8249#line 694
8250 __cil_tmp264 = __cil_tmp263 + 1;
8251#line 694
8252 i = (uint16_t )__cil_tmp264;
8253 ldv_22343: ;
8254 {
8255#line 694
8256 __cil_tmp265 = (int )i;
8257#line 694
8258 __cil_tmp266 = (unsigned long )part;
8259#line 694
8260 __cil_tmp267 = __cil_tmp266 + 416;
8261#line 694
8262 __cil_tmp268 = *((uint16_t *)__cil_tmp267);
8263#line 694
8264 __cil_tmp269 = (int )__cil_tmp268;
8265#line 694
8266 if (__cil_tmp269 > __cil_tmp265) {
8267#line 695
8268 goto ldv_22342;
8269 } else {
8270#line 697
8271 goto ldv_22344;
8272 }
8273 }
8274 ldv_22344: ;
8275#line 699
8276 if (best == 0U) {
8277#line 700
8278 ne___0 = 0;
8279#line 701
8280 ne___0 = ne___0 + 1;
8281#line 701
8282 if (ne___0 <= 4) {
8283 {
8284#line 702
8285 printk("<5>ftl_cs: reclaim failed: no free blocks!\n");
8286 }
8287 } else {
8288 {
8289#line 705
8290 __cil_tmp270 = & descriptor___9;
8291#line 705
8292 *((char const **)__cil_tmp270) = "ftl";
8293#line 705
8294 __cil_tmp271 = (unsigned long )(& descriptor___9) + 8;
8295#line 705
8296 *((char const **)__cil_tmp271) = "reclaim_block";
8297#line 705
8298 __cil_tmp272 = (unsigned long )(& descriptor___9) + 16;
8299#line 705
8300 *((char const **)__cil_tmp272) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
8301#line 705
8302 __cil_tmp273 = (unsigned long )(& descriptor___9) + 24;
8303#line 705
8304 *((char const **)__cil_tmp273) = "ftl_cs: reclaim failed: no free blocks!\n";
8305#line 705
8306 __cil_tmp274 = (unsigned long )(& descriptor___9) + 32;
8307#line 705
8308 *((unsigned int *)__cil_tmp274) = 706U;
8309#line 705
8310 __cil_tmp275 = (unsigned long )(& descriptor___9) + 35;
8311#line 705
8312 *((unsigned char *)__cil_tmp275) = (unsigned char)0;
8313#line 705
8314 __cil_tmp276 = (unsigned long )(& descriptor___9) + 35;
8315#line 705
8316 __cil_tmp277 = *((unsigned char *)__cil_tmp276);
8317#line 705
8318 __cil_tmp278 = (long )__cil_tmp277;
8319#line 705
8320 __cil_tmp279 = __cil_tmp278 & 1L;
8321#line 705
8322 tmp___9 = __builtin_expect(__cil_tmp279, 0L);
8323 }
8324#line 705
8325 if (tmp___9 != 0L) {
8326 {
8327#line 705
8328 __dynamic_pr_debug(& descriptor___9, "ftl_cs: reclaim failed: no free blocks!\n");
8329 }
8330 } else {
8331
8332 }
8333 }
8334#line 708
8335 return (-5);
8336 } else {
8337
8338 }
8339 }
8340 }
8341 {
8342#line 711
8343 __cil_tmp280 = (int )eun;
8344#line 711
8345 __cil_tmp281 = (uint16_t )__cil_tmp280;
8346#line 711
8347 __cil_tmp282 = (int )xfer;
8348#line 711
8349 __cil_tmp283 = (uint16_t )__cil_tmp282;
8350#line 711
8351 ret = copy_erase_unit(part, __cil_tmp281, __cil_tmp283);
8352 }
8353#line 712
8354 if (ret == 0) {
8355 {
8356#line 713
8357 __cil_tmp284 = (int )xfer;
8358#line 713
8359 __cil_tmp285 = (uint16_t )__cil_tmp284;
8360#line 713
8361 erase_xfer(part, __cil_tmp285);
8362 }
8363 } else {
8364 {
8365#line 715
8366 printk("<5>ftl_cs: copy_erase_unit failed!\n");
8367 }
8368 }
8369#line 716
8370 return (ret);
8371}
8372}
8373#line 742 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
8374static uint32_t find_free(partition_t *part )
8375{ uint16_t stop ;
8376 uint16_t eun ;
8377 uint32_t blk ;
8378 size_t retlen ;
8379 int ret ;
8380 struct _ddebug descriptor ;
8381 long tmp ;
8382 unsigned long __cil_tmp9 ;
8383 unsigned long __cil_tmp10 ;
8384 uint16_t __cil_tmp11 ;
8385 unsigned int __cil_tmp12 ;
8386 unsigned long __cil_tmp13 ;
8387 unsigned long __cil_tmp14 ;
8388 unsigned long __cil_tmp15 ;
8389 unsigned long __cil_tmp16 ;
8390 unsigned long __cil_tmp17 ;
8391 struct eun_info_t *__cil_tmp18 ;
8392 struct eun_info_t *__cil_tmp19 ;
8393 unsigned long __cil_tmp20 ;
8394 unsigned long __cil_tmp21 ;
8395 uint32_t __cil_tmp22 ;
8396 int __cil_tmp23 ;
8397 int __cil_tmp24 ;
8398 unsigned long __cil_tmp25 ;
8399 unsigned long __cil_tmp26 ;
8400 uint16_t __cil_tmp27 ;
8401 int __cil_tmp28 ;
8402 unsigned short __cil_tmp29 ;
8403 int __cil_tmp30 ;
8404 int __cil_tmp31 ;
8405 int __cil_tmp32 ;
8406 unsigned long __cil_tmp33 ;
8407 unsigned long __cil_tmp34 ;
8408 unsigned long __cil_tmp35 ;
8409 struct eun_info_t *__cil_tmp36 ;
8410 struct eun_info_t *__cil_tmp37 ;
8411 unsigned long __cil_tmp38 ;
8412 unsigned long __cil_tmp39 ;
8413 uint32_t __cil_tmp40 ;
8414 int __cil_tmp41 ;
8415 unsigned long __cil_tmp42 ;
8416 unsigned long __cil_tmp43 ;
8417 uint16_t __cil_tmp44 ;
8418 int __cil_tmp45 ;
8419 unsigned long __cil_tmp46 ;
8420 unsigned long __cil_tmp47 ;
8421 unsigned long __cil_tmp48 ;
8422 unsigned long __cil_tmp49 ;
8423 unsigned long __cil_tmp50 ;
8424 struct mtd_info *__cil_tmp51 ;
8425 unsigned long __cil_tmp52 ;
8426 unsigned long __cil_tmp53 ;
8427 unsigned long __cil_tmp54 ;
8428 uint32_t __cil_tmp55 ;
8429 unsigned long __cil_tmp56 ;
8430 unsigned long __cil_tmp57 ;
8431 unsigned long __cil_tmp58 ;
8432 struct eun_info_t *__cil_tmp59 ;
8433 struct eun_info_t *__cil_tmp60 ;
8434 uint32_t __cil_tmp61 ;
8435 uint32_t __cil_tmp62 ;
8436 loff_t __cil_tmp63 ;
8437 unsigned long __cil_tmp64 ;
8438 unsigned long __cil_tmp65 ;
8439 uint32_t __cil_tmp66 ;
8440 unsigned long __cil_tmp67 ;
8441 unsigned long __cil_tmp68 ;
8442 unsigned long __cil_tmp69 ;
8443 unsigned long __cil_tmp70 ;
8444 uint32_t *__cil_tmp71 ;
8445 u_char *__cil_tmp72 ;
8446 unsigned long __cil_tmp73 ;
8447 unsigned long __cil_tmp74 ;
8448 unsigned long __cil_tmp75 ;
8449 unsigned long __cil_tmp76 ;
8450 unsigned long __cil_tmp77 ;
8451 uint32_t *__cil_tmp78 ;
8452 uint32_t *__cil_tmp79 ;
8453 uint32_t __cil_tmp80 ;
8454 unsigned long __cil_tmp81 ;
8455 unsigned long __cil_tmp82 ;
8456 uint32_t __cil_tmp83 ;
8457 unsigned long __cil_tmp84 ;
8458 unsigned long __cil_tmp85 ;
8459 uint32_t __cil_tmp86 ;
8460 struct _ddebug *__cil_tmp87 ;
8461 unsigned long __cil_tmp88 ;
8462 unsigned long __cil_tmp89 ;
8463 unsigned long __cil_tmp90 ;
8464 unsigned long __cil_tmp91 ;
8465 unsigned long __cil_tmp92 ;
8466 unsigned long __cil_tmp93 ;
8467 unsigned char __cil_tmp94 ;
8468 long __cil_tmp95 ;
8469 long __cil_tmp96 ;
8470 int __cil_tmp97 ;
8471
8472 {
8473 {
8474#line 750
8475 __cil_tmp9 = (unsigned long )part;
8476#line 750
8477 __cil_tmp10 = __cil_tmp9 + 400;
8478#line 750
8479 __cil_tmp11 = *((uint16_t *)__cil_tmp10);
8480#line 750
8481 __cil_tmp12 = (unsigned int )__cil_tmp11;
8482#line 750
8483 if (__cil_tmp12 != 65535U) {
8484#line 750
8485 __cil_tmp13 = (unsigned long )part;
8486#line 750
8487 __cil_tmp14 = __cil_tmp13 + 400;
8488#line 750
8489 stop = *((uint16_t *)__cil_tmp14);
8490 } else {
8491#line 750
8492 stop = (uint16_t )0U;
8493 }
8494 }
8495#line 751
8496 eun = stop;
8497 ldv_22356: ;
8498 {
8499#line 753
8500 __cil_tmp15 = (unsigned long )eun;
8501#line 753
8502 __cil_tmp16 = (unsigned long )part;
8503#line 753
8504 __cil_tmp17 = __cil_tmp16 + 384;
8505#line 753
8506 __cil_tmp18 = *((struct eun_info_t **)__cil_tmp17);
8507#line 753
8508 __cil_tmp19 = __cil_tmp18 + __cil_tmp15;
8509#line 753
8510 __cil_tmp20 = (unsigned long )__cil_tmp19;
8511#line 753
8512 __cil_tmp21 = __cil_tmp20 + 8;
8513#line 753
8514 __cil_tmp22 = *((uint32_t *)__cil_tmp21);
8515#line 753
8516 if (__cil_tmp22 != 0U) {
8517#line 753
8518 goto ldv_22355;
8519 } else {
8520
8521 }
8522 }
8523#line 755
8524 __cil_tmp23 = (int )eun;
8525#line 755
8526 __cil_tmp24 = __cil_tmp23 + 1;
8527#line 755
8528 eun = (uint16_t )__cil_tmp24;
8529 {
8530#line 755
8531 __cil_tmp25 = (unsigned long )part;
8532#line 755
8533 __cil_tmp26 = __cil_tmp25 + 416;
8534#line 755
8535 __cil_tmp27 = *((uint16_t *)__cil_tmp26);
8536#line 755
8537 __cil_tmp28 = (int )__cil_tmp27;
8538#line 755
8539 __cil_tmp29 = (unsigned short )eun;
8540#line 755
8541 __cil_tmp30 = (int )__cil_tmp29;
8542#line 755
8543 if (__cil_tmp30 == __cil_tmp28) {
8544#line 755
8545 eun = (uint16_t )0U;
8546 } else {
8547
8548 }
8549 }
8550 {
8551#line 756
8552 __cil_tmp31 = (int )stop;
8553#line 756
8554 __cil_tmp32 = (int )eun;
8555#line 756
8556 if (__cil_tmp32 != __cil_tmp31) {
8557#line 757
8558 goto ldv_22356;
8559 } else {
8560#line 759
8561 goto ldv_22355;
8562 }
8563 }
8564 ldv_22355: ;
8565 {
8566#line 758
8567 __cil_tmp33 = (unsigned long )eun;
8568#line 758
8569 __cil_tmp34 = (unsigned long )part;
8570#line 758
8571 __cil_tmp35 = __cil_tmp34 + 384;
8572#line 758
8573 __cil_tmp36 = *((struct eun_info_t **)__cil_tmp35);
8574#line 758
8575 __cil_tmp37 = __cil_tmp36 + __cil_tmp33;
8576#line 758
8577 __cil_tmp38 = (unsigned long )__cil_tmp37;
8578#line 758
8579 __cil_tmp39 = __cil_tmp38 + 8;
8580#line 758
8581 __cil_tmp40 = *((uint32_t *)__cil_tmp39);
8582#line 758
8583 if (__cil_tmp40 == 0U) {
8584#line 759
8585 return (0U);
8586 } else {
8587
8588 }
8589 }
8590 {
8591#line 762
8592 __cil_tmp41 = (int )eun;
8593#line 762
8594 __cil_tmp42 = (unsigned long )part;
8595#line 762
8596 __cil_tmp43 = __cil_tmp42 + 400;
8597#line 762
8598 __cil_tmp44 = *((uint16_t *)__cil_tmp43);
8599#line 762
8600 __cil_tmp45 = (int )__cil_tmp44;
8601#line 762
8602 if (__cil_tmp45 != __cil_tmp41) {
8603 {
8604#line 764
8605 __cil_tmp46 = (unsigned long )part;
8606#line 764
8607 __cil_tmp47 = __cil_tmp46 + 400;
8608#line 764
8609 *((uint16_t *)__cil_tmp47) = (uint16_t )65535U;
8610#line 766
8611 __cil_tmp48 = 0 + 24;
8612#line 766
8613 __cil_tmp49 = (unsigned long )part;
8614#line 766
8615 __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
8616#line 766
8617 __cil_tmp51 = *((struct mtd_info **)__cil_tmp50);
8618#line 766
8619 __cil_tmp52 = 424 + 48;
8620#line 766
8621 __cil_tmp53 = (unsigned long )part;
8622#line 766
8623 __cil_tmp54 = __cil_tmp53 + __cil_tmp52;
8624#line 766
8625 __cil_tmp55 = *((uint32_t *)__cil_tmp54);
8626#line 766
8627 __cil_tmp56 = (unsigned long )eun;
8628#line 766
8629 __cil_tmp57 = (unsigned long )part;
8630#line 766
8631 __cil_tmp58 = __cil_tmp57 + 384;
8632#line 766
8633 __cil_tmp59 = *((struct eun_info_t **)__cil_tmp58);
8634#line 766
8635 __cil_tmp60 = __cil_tmp59 + __cil_tmp56;
8636#line 766
8637 __cil_tmp61 = *((uint32_t *)__cil_tmp60);
8638#line 766
8639 __cil_tmp62 = __cil_tmp61 + __cil_tmp55;
8640#line 766
8641 __cil_tmp63 = (loff_t )__cil_tmp62;
8642#line 766
8643 __cil_tmp64 = (unsigned long )part;
8644#line 766
8645 __cil_tmp65 = __cil_tmp64 + 420;
8646#line 766
8647 __cil_tmp66 = *((uint32_t *)__cil_tmp65);
8648#line 766
8649 __cil_tmp67 = (unsigned long )__cil_tmp66;
8650#line 766
8651 __cil_tmp68 = __cil_tmp67 * 4UL;
8652#line 766
8653 __cil_tmp69 = (unsigned long )part;
8654#line 766
8655 __cil_tmp70 = __cil_tmp69 + 408;
8656#line 766
8657 __cil_tmp71 = *((uint32_t **)__cil_tmp70);
8658#line 766
8659 __cil_tmp72 = (u_char *)__cil_tmp71;
8660#line 766
8661 ret = mtd_read(__cil_tmp51, __cil_tmp63, __cil_tmp68, & retlen, __cil_tmp72);
8662 }
8663#line 772
8664 if (ret != 0) {
8665 {
8666#line 773
8667 printk("<4>ftl: Error reading BAM in find_free\n");
8668 }
8669#line 774
8670 return (0U);
8671 } else {
8672
8673 }
8674#line 776
8675 __cil_tmp73 = (unsigned long )part;
8676#line 776
8677 __cil_tmp74 = __cil_tmp73 + 400;
8678#line 776
8679 *((uint16_t *)__cil_tmp74) = eun;
8680 } else {
8681
8682 }
8683 }
8684#line 780
8685 blk = 0U;
8686#line 780
8687 goto ldv_22359;
8688 ldv_22358: ;
8689 {
8690#line 781
8691 __cil_tmp75 = (unsigned long )blk;
8692#line 781
8693 __cil_tmp76 = (unsigned long )part;
8694#line 781
8695 __cil_tmp77 = __cil_tmp76 + 408;
8696#line 781
8697 __cil_tmp78 = *((uint32_t **)__cil_tmp77);
8698#line 781
8699 __cil_tmp79 = __cil_tmp78 + __cil_tmp75;
8700#line 781
8701 __cil_tmp80 = *__cil_tmp79;
8702#line 781
8703 if (__cil_tmp80 == 4294967295U) {
8704#line 781
8705 goto ldv_22357;
8706 } else {
8707
8708 }
8709 }
8710#line 780
8711 blk = blk + 1U;
8712 ldv_22359: ;
8713 {
8714#line 780
8715 __cil_tmp81 = (unsigned long )part;
8716#line 780
8717 __cil_tmp82 = __cil_tmp81 + 420;
8718#line 780
8719 __cil_tmp83 = *((uint32_t *)__cil_tmp82);
8720#line 780
8721 if (__cil_tmp83 > blk) {
8722#line 781
8723 goto ldv_22358;
8724 } else {
8725#line 783
8726 goto ldv_22357;
8727 }
8728 }
8729 ldv_22357: ;
8730 {
8731#line 782
8732 __cil_tmp84 = (unsigned long )part;
8733#line 782
8734 __cil_tmp85 = __cil_tmp84 + 420;
8735#line 782
8736 __cil_tmp86 = *((uint32_t *)__cil_tmp85);
8737#line 782
8738 if (__cil_tmp86 == blk) {
8739 {
8740#line 788
8741 printk("<5>ftl_cs: bad free list!\n");
8742 }
8743#line 789
8744 return (0U);
8745 } else {
8746
8747 }
8748 }
8749 {
8750#line 791
8751 __cil_tmp87 = & descriptor;
8752#line 791
8753 *((char const **)__cil_tmp87) = "ftl";
8754#line 791
8755 __cil_tmp88 = (unsigned long )(& descriptor) + 8;
8756#line 791
8757 *((char const **)__cil_tmp88) = "find_free";
8758#line 791
8759 __cil_tmp89 = (unsigned long )(& descriptor) + 16;
8760#line 791
8761 *((char const **)__cil_tmp89) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
8762#line 791
8763 __cil_tmp90 = (unsigned long )(& descriptor) + 24;
8764#line 791
8765 *((char const **)__cil_tmp90) = "ftl_cs: found free block at %d in %d\n";
8766#line 791
8767 __cil_tmp91 = (unsigned long )(& descriptor) + 32;
8768#line 791
8769 *((unsigned int *)__cil_tmp91) = 791U;
8770#line 791
8771 __cil_tmp92 = (unsigned long )(& descriptor) + 35;
8772#line 791
8773 *((unsigned char *)__cil_tmp92) = (unsigned char)0;
8774#line 791
8775 __cil_tmp93 = (unsigned long )(& descriptor) + 35;
8776#line 791
8777 __cil_tmp94 = *((unsigned char *)__cil_tmp93);
8778#line 791
8779 __cil_tmp95 = (long )__cil_tmp94;
8780#line 791
8781 __cil_tmp96 = __cil_tmp95 & 1L;
8782#line 791
8783 tmp = __builtin_expect(__cil_tmp96, 0L);
8784 }
8785#line 791
8786 if (tmp != 0L) {
8787 {
8788#line 791
8789 __cil_tmp97 = (int )eun;
8790#line 791
8791 __dynamic_pr_debug(& descriptor, "ftl_cs: found free block at %d in %d\n", blk,
8792 __cil_tmp97);
8793 }
8794 } else {
8795
8796 }
8797#line 792
8798 return (blk);
8799}
8800}
8801#line 803 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
8802static int ftl_read(partition_t *part , caddr_t buffer , u_long sector , u_long nblocks )
8803{ uint32_t log_addr ;
8804 uint32_t bsize ;
8805 u_long i ;
8806 int ret ;
8807 size_t offset ;
8808 size_t retlen ;
8809 struct _ddebug descriptor ;
8810 long tmp ;
8811 struct _ddebug *__cil_tmp13 ;
8812 unsigned long __cil_tmp14 ;
8813 unsigned long __cil_tmp15 ;
8814 unsigned long __cil_tmp16 ;
8815 unsigned long __cil_tmp17 ;
8816 unsigned long __cil_tmp18 ;
8817 unsigned long __cil_tmp19 ;
8818 unsigned char __cil_tmp20 ;
8819 long __cil_tmp21 ;
8820 long __cil_tmp22 ;
8821 unsigned long __cil_tmp23 ;
8822 unsigned long __cil_tmp24 ;
8823 uint32_t __cil_tmp25 ;
8824 unsigned int __cil_tmp26 ;
8825 unsigned long __cil_tmp27 ;
8826 unsigned long __cil_tmp28 ;
8827 unsigned long __cil_tmp29 ;
8828 uint8_t __cil_tmp30 ;
8829 int __cil_tmp31 ;
8830 int __cil_tmp32 ;
8831 unsigned long __cil_tmp33 ;
8832 unsigned long __cil_tmp34 ;
8833 unsigned long __cil_tmp35 ;
8834 uint32_t __cil_tmp36 ;
8835 u_long __cil_tmp37 ;
8836 u_long __cil_tmp38 ;
8837 u_long __cil_tmp39 ;
8838 u_long __cil_tmp40 ;
8839 unsigned long __cil_tmp41 ;
8840 unsigned long __cil_tmp42 ;
8841 uint32_t *__cil_tmp43 ;
8842 uint32_t *__cil_tmp44 ;
8843 void *__cil_tmp45 ;
8844 unsigned int __cil_tmp46 ;
8845 uint32_t __cil_tmp47 ;
8846 unsigned long __cil_tmp48 ;
8847 unsigned long __cil_tmp49 ;
8848 unsigned long __cil_tmp50 ;
8849 struct eun_info_t *__cil_tmp51 ;
8850 struct eun_info_t *__cil_tmp52 ;
8851 uint32_t __cil_tmp53 ;
8852 uint32_t __cil_tmp54 ;
8853 unsigned long __cil_tmp55 ;
8854 unsigned long __cil_tmp56 ;
8855 unsigned long __cil_tmp57 ;
8856 struct mtd_info *__cil_tmp58 ;
8857 loff_t __cil_tmp59 ;
8858 u_char *__cil_tmp60 ;
8859
8860 {
8861 {
8862#line 811
8863 __cil_tmp13 = & descriptor;
8864#line 811
8865 *((char const **)__cil_tmp13) = "ftl";
8866#line 811
8867 __cil_tmp14 = (unsigned long )(& descriptor) + 8;
8868#line 811
8869 *((char const **)__cil_tmp14) = "ftl_read";
8870#line 811
8871 __cil_tmp15 = (unsigned long )(& descriptor) + 16;
8872#line 811
8873 *((char const **)__cil_tmp15) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
8874#line 811
8875 __cil_tmp16 = (unsigned long )(& descriptor) + 24;
8876#line 811
8877 *((char const **)__cil_tmp16) = "ftl_cs: ftl_read(0x%p, 0x%lx, %ld)\n";
8878#line 811
8879 __cil_tmp17 = (unsigned long )(& descriptor) + 32;
8880#line 811
8881 *((unsigned int *)__cil_tmp17) = 812U;
8882#line 811
8883 __cil_tmp18 = (unsigned long )(& descriptor) + 35;
8884#line 811
8885 *((unsigned char *)__cil_tmp18) = (unsigned char)0;
8886#line 811
8887 __cil_tmp19 = (unsigned long )(& descriptor) + 35;
8888#line 811
8889 __cil_tmp20 = *((unsigned char *)__cil_tmp19);
8890#line 811
8891 __cil_tmp21 = (long )__cil_tmp20;
8892#line 811
8893 __cil_tmp22 = __cil_tmp21 & 1L;
8894#line 811
8895 tmp = __builtin_expect(__cil_tmp22, 0L);
8896 }
8897#line 811
8898 if (tmp != 0L) {
8899 {
8900#line 811
8901 __dynamic_pr_debug(& descriptor, "ftl_cs: ftl_read(0x%p, 0x%lx, %ld)\n", part,
8902 sector, nblocks);
8903 }
8904 } else {
8905
8906 }
8907 {
8908#line 813
8909 __cil_tmp23 = (unsigned long )part;
8910#line 813
8911 __cil_tmp24 = __cil_tmp23 + 352;
8912#line 813
8913 __cil_tmp25 = *((uint32_t *)__cil_tmp24);
8914#line 813
8915 __cil_tmp26 = __cil_tmp25 & 1U;
8916#line 813
8917 if (__cil_tmp26 == 0U) {
8918 {
8919#line 814
8920 printk("<5>ftl_cs: bad partition\n");
8921 }
8922#line 815
8923 return (-5);
8924 } else {
8925
8926 }
8927 }
8928#line 817
8929 __cil_tmp27 = 424 + 23;
8930#line 817
8931 __cil_tmp28 = (unsigned long )part;
8932#line 817
8933 __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
8934#line 817
8935 __cil_tmp30 = *((uint8_t *)__cil_tmp29);
8936#line 817
8937 __cil_tmp31 = (int )__cil_tmp30;
8938#line 817
8939 __cil_tmp32 = 1 << __cil_tmp31;
8940#line 817
8941 bsize = (uint32_t )__cil_tmp32;
8942#line 819
8943 i = 0UL;
8944#line 819
8945 goto ldv_22377;
8946 ldv_22376: ;
8947 {
8948#line 820
8949 __cil_tmp33 = 424 + 28;
8950#line 820
8951 __cil_tmp34 = (unsigned long )part;
8952#line 820
8953 __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
8954#line 820
8955 __cil_tmp36 = *((uint32_t *)__cil_tmp35);
8956#line 820
8957 __cil_tmp37 = (u_long )__cil_tmp36;
8958#line 820
8959 __cil_tmp38 = sector + i;
8960#line 820
8961 __cil_tmp39 = __cil_tmp38 * 512UL;
8962#line 820
8963 if (__cil_tmp39 >= __cil_tmp37) {
8964 {
8965#line 821
8966 printk("<5>ftl_cs: bad read offset\n");
8967 }
8968#line 822
8969 return (-5);
8970 } else {
8971
8972 }
8973 }
8974#line 824
8975 __cil_tmp40 = sector + i;
8976#line 824
8977 __cil_tmp41 = (unsigned long )part;
8978#line 824
8979 __cil_tmp42 = __cil_tmp41 + 360;
8980#line 824
8981 __cil_tmp43 = *((uint32_t **)__cil_tmp42);
8982#line 824
8983 __cil_tmp44 = __cil_tmp43 + __cil_tmp40;
8984#line 824
8985 log_addr = *__cil_tmp44;
8986#line 825
8987 if (log_addr == 4294967295U) {
8988 {
8989#line 826
8990 __cil_tmp45 = (void *)buffer;
8991#line 826
8992 memset(__cil_tmp45, 0, 512UL);
8993 }
8994 } else {
8995 {
8996#line 828
8997 __cil_tmp46 = log_addr % bsize;
8998#line 828
8999 __cil_tmp47 = log_addr / bsize;
9000#line 828
9001 __cil_tmp48 = (unsigned long )__cil_tmp47;
9002#line 828
9003 __cil_tmp49 = (unsigned long )part;
9004#line 828
9005 __cil_tmp50 = __cil_tmp49 + 384;
9006#line 828
9007 __cil_tmp51 = *((struct eun_info_t **)__cil_tmp50);
9008#line 828
9009 __cil_tmp52 = __cil_tmp51 + __cil_tmp48;
9010#line 828
9011 __cil_tmp53 = *((uint32_t *)__cil_tmp52);
9012#line 828
9013 __cil_tmp54 = __cil_tmp53 + __cil_tmp46;
9014#line 828
9015 offset = (size_t )__cil_tmp54;
9016#line 830
9017 __cil_tmp55 = 0 + 24;
9018#line 830
9019 __cil_tmp56 = (unsigned long )part;
9020#line 830
9021 __cil_tmp57 = __cil_tmp56 + __cil_tmp55;
9022#line 830
9023 __cil_tmp58 = *((struct mtd_info **)__cil_tmp57);
9024#line 830
9025 __cil_tmp59 = (loff_t )offset;
9026#line 830
9027 __cil_tmp60 = (u_char *)buffer;
9028#line 830
9029 ret = mtd_read(__cil_tmp58, __cil_tmp59, 512UL, & retlen, __cil_tmp60);
9030 }
9031#line 833
9032 if (ret != 0) {
9033 {
9034#line 834
9035 printk("<4>Error reading MTD device in ftl_read()\n");
9036 }
9037#line 835
9038 return (ret);
9039 } else {
9040
9041 }
9042 }
9043#line 838
9044 buffer = buffer + 512UL;
9045#line 819
9046 i = i + 1UL;
9047 ldv_22377: ;
9048#line 819
9049 if (i < nblocks) {
9050#line 820
9051 goto ldv_22376;
9052 } else {
9053#line 822
9054 goto ldv_22378;
9055 }
9056 ldv_22378: ;
9057#line 840
9058 return (0);
9059}
9060}
9061#line 849 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
9062static int set_bam_entry(partition_t *part , uint32_t log_addr , uint32_t virt_addr )
9063{ uint32_t bsize ;
9064 uint32_t blk ;
9065 uint32_t le_virt_addr ;
9066 uint16_t eun ;
9067 int ret ;
9068 size_t retlen ;
9069 size_t offset ;
9070 struct _ddebug descriptor ;
9071 long tmp ;
9072 struct _ddebug *__cil_tmp13 ;
9073 unsigned long __cil_tmp14 ;
9074 unsigned long __cil_tmp15 ;
9075 unsigned long __cil_tmp16 ;
9076 unsigned long __cil_tmp17 ;
9077 unsigned long __cil_tmp18 ;
9078 unsigned long __cil_tmp19 ;
9079 unsigned char __cil_tmp20 ;
9080 long __cil_tmp21 ;
9081 long __cil_tmp22 ;
9082 unsigned long __cil_tmp23 ;
9083 unsigned long __cil_tmp24 ;
9084 unsigned long __cil_tmp25 ;
9085 uint8_t __cil_tmp26 ;
9086 int __cil_tmp27 ;
9087 int __cil_tmp28 ;
9088 uint32_t __cil_tmp29 ;
9089 unsigned int __cil_tmp30 ;
9090 unsigned long __cil_tmp31 ;
9091 unsigned long __cil_tmp32 ;
9092 unsigned long __cil_tmp33 ;
9093 uint32_t __cil_tmp34 ;
9094 unsigned long __cil_tmp35 ;
9095 unsigned long __cil_tmp36 ;
9096 unsigned long __cil_tmp37 ;
9097 unsigned long __cil_tmp38 ;
9098 unsigned long __cil_tmp39 ;
9099 unsigned long __cil_tmp40 ;
9100 struct eun_info_t *__cil_tmp41 ;
9101 struct eun_info_t *__cil_tmp42 ;
9102 uint32_t __cil_tmp43 ;
9103 unsigned long __cil_tmp44 ;
9104 unsigned long __cil_tmp45 ;
9105 uint32_t *__cil_tmp46 ;
9106 int __cil_tmp47 ;
9107 unsigned long __cil_tmp48 ;
9108 unsigned long __cil_tmp49 ;
9109 uint16_t __cil_tmp50 ;
9110 int __cil_tmp51 ;
9111 unsigned long __cil_tmp52 ;
9112 unsigned long __cil_tmp53 ;
9113 unsigned long __cil_tmp54 ;
9114 uint32_t *__cil_tmp55 ;
9115 uint32_t *__cil_tmp56 ;
9116 uint32_t *__cil_tmp57 ;
9117 unsigned long __cil_tmp58 ;
9118 unsigned long __cil_tmp59 ;
9119 unsigned long __cil_tmp60 ;
9120 struct mtd_info *__cil_tmp61 ;
9121 loff_t __cil_tmp62 ;
9122 u_char const *__cil_tmp63 ;
9123
9124 {
9125 {
9126#line 860
9127 __cil_tmp13 = & descriptor;
9128#line 860
9129 *((char const **)__cil_tmp13) = "ftl";
9130#line 860
9131 __cil_tmp14 = (unsigned long )(& descriptor) + 8;
9132#line 860
9133 *((char const **)__cil_tmp14) = "set_bam_entry";
9134#line 860
9135 __cil_tmp15 = (unsigned long )(& descriptor) + 16;
9136#line 860
9137 *((char const **)__cil_tmp15) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
9138#line 860
9139 __cil_tmp16 = (unsigned long )(& descriptor) + 24;
9140#line 860
9141 *((char const **)__cil_tmp16) = "ftl_cs: set_bam_entry(0x%p, 0x%x, 0x%x)\n";
9142#line 860
9143 __cil_tmp17 = (unsigned long )(& descriptor) + 32;
9144#line 860
9145 *((unsigned int *)__cil_tmp17) = 861U;
9146#line 860
9147 __cil_tmp18 = (unsigned long )(& descriptor) + 35;
9148#line 860
9149 *((unsigned char *)__cil_tmp18) = (unsigned char)0;
9150#line 860
9151 __cil_tmp19 = (unsigned long )(& descriptor) + 35;
9152#line 860
9153 __cil_tmp20 = *((unsigned char *)__cil_tmp19);
9154#line 860
9155 __cil_tmp21 = (long )__cil_tmp20;
9156#line 860
9157 __cil_tmp22 = __cil_tmp21 & 1L;
9158#line 860
9159 tmp = __builtin_expect(__cil_tmp22, 0L);
9160 }
9161#line 860
9162 if (tmp != 0L) {
9163 {
9164#line 860
9165 __dynamic_pr_debug(& descriptor, "ftl_cs: set_bam_entry(0x%p, 0x%x, 0x%x)\n",
9166 part, log_addr, virt_addr);
9167 }
9168 } else {
9169
9170 }
9171#line 862
9172 __cil_tmp23 = 424 + 23;
9173#line 862
9174 __cil_tmp24 = (unsigned long )part;
9175#line 862
9176 __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
9177#line 862
9178 __cil_tmp26 = *((uint8_t *)__cil_tmp25);
9179#line 862
9180 __cil_tmp27 = (int )__cil_tmp26;
9181#line 862
9182 __cil_tmp28 = 1 << __cil_tmp27;
9183#line 862
9184 bsize = (uint32_t )__cil_tmp28;
9185#line 863
9186 __cil_tmp29 = log_addr / bsize;
9187#line 863
9188 eun = (uint16_t )__cil_tmp29;
9189#line 864
9190 __cil_tmp30 = log_addr % bsize;
9191#line 864
9192 blk = __cil_tmp30 / 512U;
9193#line 865
9194 __cil_tmp31 = 424 + 48;
9195#line 865
9196 __cil_tmp32 = (unsigned long )part;
9197#line 865
9198 __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
9199#line 865
9200 __cil_tmp34 = *((uint32_t *)__cil_tmp33);
9201#line 865
9202 __cil_tmp35 = (unsigned long )__cil_tmp34;
9203#line 865
9204 __cil_tmp36 = (unsigned long )blk;
9205#line 865
9206 __cil_tmp37 = __cil_tmp36 * 4UL;
9207#line 865
9208 __cil_tmp38 = (unsigned long )eun;
9209#line 865
9210 __cil_tmp39 = (unsigned long )part;
9211#line 865
9212 __cil_tmp40 = __cil_tmp39 + 384;
9213#line 865
9214 __cil_tmp41 = *((struct eun_info_t **)__cil_tmp40);
9215#line 865
9216 __cil_tmp42 = __cil_tmp41 + __cil_tmp38;
9217#line 865
9218 __cil_tmp43 = *((uint32_t *)__cil_tmp42);
9219#line 865
9220 __cil_tmp44 = (unsigned long )__cil_tmp43;
9221#line 865
9222 __cil_tmp45 = __cil_tmp44 + __cil_tmp37;
9223#line 865
9224 offset = __cil_tmp45 + __cil_tmp35;
9225#line 889
9226 __cil_tmp46 = & le_virt_addr;
9227#line 889
9228 *__cil_tmp46 = virt_addr;
9229 {
9230#line 890
9231 __cil_tmp47 = (int )eun;
9232#line 890
9233 __cil_tmp48 = (unsigned long )part;
9234#line 890
9235 __cil_tmp49 = __cil_tmp48 + 400;
9236#line 890
9237 __cil_tmp50 = *((uint16_t *)__cil_tmp49);
9238#line 890
9239 __cil_tmp51 = (int )__cil_tmp50;
9240#line 890
9241 if (__cil_tmp51 == __cil_tmp47) {
9242#line 904
9243 __cil_tmp52 = (unsigned long )blk;
9244#line 904
9245 __cil_tmp53 = (unsigned long )part;
9246#line 904
9247 __cil_tmp54 = __cil_tmp53 + 408;
9248#line 904
9249 __cil_tmp55 = *((uint32_t **)__cil_tmp54);
9250#line 904
9251 __cil_tmp56 = __cil_tmp55 + __cil_tmp52;
9252#line 904
9253 __cil_tmp57 = & le_virt_addr;
9254#line 904
9255 *__cil_tmp56 = *__cil_tmp57;
9256 } else {
9257
9258 }
9259 }
9260 {
9261#line 906
9262 __cil_tmp58 = 0 + 24;
9263#line 906
9264 __cil_tmp59 = (unsigned long )part;
9265#line 906
9266 __cil_tmp60 = __cil_tmp59 + __cil_tmp58;
9267#line 906
9268 __cil_tmp61 = *((struct mtd_info **)__cil_tmp60);
9269#line 906
9270 __cil_tmp62 = (loff_t )offset;
9271#line 906
9272 __cil_tmp63 = (u_char const *)(& le_virt_addr);
9273#line 906
9274 ret = mtd_write(__cil_tmp61, __cil_tmp62, 4UL, & retlen, __cil_tmp63);
9275 }
9276#line 909
9277 if (ret != 0) {
9278 {
9279#line 910
9280 printk("<5>ftl_cs: set_bam_entry() failed!\n");
9281#line 911
9282 printk("<5>ftl_cs: log_addr = 0x%x, new = 0x%x\n", log_addr, virt_addr);
9283 }
9284 } else {
9285
9286 }
9287#line 914
9288 return (ret);
9289}
9290}
9291#line 917 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
9292static int ftl_write(partition_t *part , caddr_t buffer , u_long sector , u_long nblocks )
9293{ uint32_t bsize ;
9294 uint32_t log_addr ;
9295 uint32_t virt_addr ;
9296 uint32_t old_addr ;
9297 uint32_t blk ;
9298 u_long i ;
9299 int ret ;
9300 size_t retlen ;
9301 size_t offset ;
9302 struct _ddebug descriptor ;
9303 long tmp ;
9304 int ne ;
9305 int tmp___0 ;
9306 int tmp___1 ;
9307 int tmp___2 ;
9308 struct _ddebug *__cil_tmp20 ;
9309 unsigned long __cil_tmp21 ;
9310 unsigned long __cil_tmp22 ;
9311 unsigned long __cil_tmp23 ;
9312 unsigned long __cil_tmp24 ;
9313 unsigned long __cil_tmp25 ;
9314 unsigned long __cil_tmp26 ;
9315 unsigned char __cil_tmp27 ;
9316 long __cil_tmp28 ;
9317 long __cil_tmp29 ;
9318 unsigned long __cil_tmp30 ;
9319 unsigned long __cil_tmp31 ;
9320 uint32_t __cil_tmp32 ;
9321 unsigned int __cil_tmp33 ;
9322 unsigned long __cil_tmp34 ;
9323 unsigned long __cil_tmp35 ;
9324 uint32_t __cil_tmp36 ;
9325 u_long __cil_tmp37 ;
9326 unsigned long __cil_tmp38 ;
9327 unsigned long __cil_tmp39 ;
9328 unsigned long __cil_tmp40 ;
9329 uint8_t __cil_tmp41 ;
9330 int __cil_tmp42 ;
9331 int __cil_tmp43 ;
9332 uint32_t __cil_tmp44 ;
9333 uint32_t __cil_tmp45 ;
9334 unsigned long __cil_tmp46 ;
9335 unsigned long __cil_tmp47 ;
9336 unsigned long __cil_tmp48 ;
9337 uint32_t __cil_tmp49 ;
9338 uint32_t __cil_tmp50 ;
9339 unsigned long __cil_tmp51 ;
9340 unsigned long __cil_tmp52 ;
9341 uint16_t __cil_tmp53 ;
9342 uint32_t __cil_tmp54 ;
9343 uint32_t __cil_tmp55 ;
9344 unsigned long __cil_tmp56 ;
9345 unsigned long __cil_tmp57 ;
9346 uint16_t __cil_tmp58 ;
9347 unsigned long __cil_tmp59 ;
9348 unsigned long __cil_tmp60 ;
9349 unsigned long __cil_tmp61 ;
9350 struct eun_info_t *__cil_tmp62 ;
9351 struct eun_info_t *__cil_tmp63 ;
9352 unsigned long __cil_tmp64 ;
9353 unsigned long __cil_tmp65 ;
9354 unsigned long __cil_tmp66 ;
9355 unsigned long __cil_tmp67 ;
9356 uint16_t __cil_tmp68 ;
9357 unsigned long __cil_tmp69 ;
9358 unsigned long __cil_tmp70 ;
9359 unsigned long __cil_tmp71 ;
9360 struct eun_info_t *__cil_tmp72 ;
9361 struct eun_info_t *__cil_tmp73 ;
9362 unsigned long __cil_tmp74 ;
9363 unsigned long __cil_tmp75 ;
9364 uint32_t __cil_tmp76 ;
9365 unsigned long __cil_tmp77 ;
9366 unsigned long __cil_tmp78 ;
9367 unsigned long __cil_tmp79 ;
9368 unsigned long __cil_tmp80 ;
9369 uint32_t __cil_tmp81 ;
9370 unsigned long __cil_tmp82 ;
9371 unsigned long __cil_tmp83 ;
9372 uint16_t __cil_tmp84 ;
9373 unsigned long __cil_tmp85 ;
9374 unsigned long __cil_tmp86 ;
9375 unsigned long __cil_tmp87 ;
9376 struct eun_info_t *__cil_tmp88 ;
9377 struct eun_info_t *__cil_tmp89 ;
9378 unsigned long __cil_tmp90 ;
9379 unsigned long __cil_tmp91 ;
9380 unsigned long __cil_tmp92 ;
9381 unsigned long __cil_tmp93 ;
9382 uint16_t __cil_tmp94 ;
9383 unsigned long __cil_tmp95 ;
9384 unsigned long __cil_tmp96 ;
9385 unsigned long __cil_tmp97 ;
9386 struct eun_info_t *__cil_tmp98 ;
9387 struct eun_info_t *__cil_tmp99 ;
9388 unsigned long __cil_tmp100 ;
9389 unsigned long __cil_tmp101 ;
9390 uint32_t __cil_tmp102 ;
9391 uint32_t __cil_tmp103 ;
9392 unsigned long __cil_tmp104 ;
9393 unsigned long __cil_tmp105 ;
9394 uint16_t __cil_tmp106 ;
9395 unsigned long __cil_tmp107 ;
9396 unsigned long __cil_tmp108 ;
9397 unsigned long __cil_tmp109 ;
9398 struct eun_info_t *__cil_tmp110 ;
9399 struct eun_info_t *__cil_tmp111 ;
9400 uint32_t __cil_tmp112 ;
9401 uint32_t __cil_tmp113 ;
9402 unsigned long __cil_tmp114 ;
9403 unsigned long __cil_tmp115 ;
9404 unsigned long __cil_tmp116 ;
9405 struct mtd_info *__cil_tmp117 ;
9406 loff_t __cil_tmp118 ;
9407 u_char const *__cil_tmp119 ;
9408 u_long __cil_tmp120 ;
9409 unsigned long __cil_tmp121 ;
9410 unsigned long __cil_tmp122 ;
9411 uint32_t *__cil_tmp123 ;
9412 uint32_t *__cil_tmp124 ;
9413 u_long __cil_tmp125 ;
9414 unsigned long __cil_tmp126 ;
9415 unsigned long __cil_tmp127 ;
9416 uint32_t *__cil_tmp128 ;
9417 uint32_t *__cil_tmp129 ;
9418 uint32_t __cil_tmp130 ;
9419 unsigned long __cil_tmp131 ;
9420 unsigned long __cil_tmp132 ;
9421 unsigned long __cil_tmp133 ;
9422 struct eun_info_t *__cil_tmp134 ;
9423 struct eun_info_t *__cil_tmp135 ;
9424 unsigned long __cil_tmp136 ;
9425 unsigned long __cil_tmp137 ;
9426 uint32_t __cil_tmp138 ;
9427 unsigned long __cil_tmp139 ;
9428 unsigned long __cil_tmp140 ;
9429 unsigned long __cil_tmp141 ;
9430 struct eun_info_t *__cil_tmp142 ;
9431 struct eun_info_t *__cil_tmp143 ;
9432 unsigned long __cil_tmp144 ;
9433 unsigned long __cil_tmp145 ;
9434 uint32_t __cil_tmp146 ;
9435 u_long __cil_tmp147 ;
9436 unsigned long __cil_tmp148 ;
9437 unsigned long __cil_tmp149 ;
9438 uint32_t *__cil_tmp150 ;
9439 uint32_t *__cil_tmp151 ;
9440 unsigned long __cil_tmp152 ;
9441 unsigned long __cil_tmp153 ;
9442 uint16_t __cil_tmp154 ;
9443 unsigned long __cil_tmp155 ;
9444 unsigned long __cil_tmp156 ;
9445 unsigned long __cil_tmp157 ;
9446 struct eun_info_t *__cil_tmp158 ;
9447 struct eun_info_t *__cil_tmp159 ;
9448 unsigned long __cil_tmp160 ;
9449 unsigned long __cil_tmp161 ;
9450 unsigned long __cil_tmp162 ;
9451 unsigned long __cil_tmp163 ;
9452 uint16_t __cil_tmp164 ;
9453 unsigned long __cil_tmp165 ;
9454 unsigned long __cil_tmp166 ;
9455 unsigned long __cil_tmp167 ;
9456 struct eun_info_t *__cil_tmp168 ;
9457 struct eun_info_t *__cil_tmp169 ;
9458 unsigned long __cil_tmp170 ;
9459 unsigned long __cil_tmp171 ;
9460 uint32_t __cil_tmp172 ;
9461
9462 {
9463 {
9464#line 925
9465 __cil_tmp20 = & descriptor;
9466#line 925
9467 *((char const **)__cil_tmp20) = "ftl";
9468#line 925
9469 __cil_tmp21 = (unsigned long )(& descriptor) + 8;
9470#line 925
9471 *((char const **)__cil_tmp21) = "ftl_write";
9472#line 925
9473 __cil_tmp22 = (unsigned long )(& descriptor) + 16;
9474#line 925
9475 *((char const **)__cil_tmp22) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
9476#line 925
9477 __cil_tmp23 = (unsigned long )(& descriptor) + 24;
9478#line 925
9479 *((char const **)__cil_tmp23) = "ftl_cs: ftl_write(0x%p, %ld, %ld)\n";
9480#line 925
9481 __cil_tmp24 = (unsigned long )(& descriptor) + 32;
9482#line 925
9483 *((unsigned int *)__cil_tmp24) = 926U;
9484#line 925
9485 __cil_tmp25 = (unsigned long )(& descriptor) + 35;
9486#line 925
9487 *((unsigned char *)__cil_tmp25) = (unsigned char)0;
9488#line 925
9489 __cil_tmp26 = (unsigned long )(& descriptor) + 35;
9490#line 925
9491 __cil_tmp27 = *((unsigned char *)__cil_tmp26);
9492#line 925
9493 __cil_tmp28 = (long )__cil_tmp27;
9494#line 925
9495 __cil_tmp29 = __cil_tmp28 & 1L;
9496#line 925
9497 tmp = __builtin_expect(__cil_tmp29, 0L);
9498 }
9499#line 925
9500 if (tmp != 0L) {
9501 {
9502#line 925
9503 __dynamic_pr_debug(& descriptor, "ftl_cs: ftl_write(0x%p, %ld, %ld)\n", part,
9504 sector, nblocks);
9505 }
9506 } else {
9507
9508 }
9509 {
9510#line 927
9511 __cil_tmp30 = (unsigned long )part;
9512#line 927
9513 __cil_tmp31 = __cil_tmp30 + 352;
9514#line 927
9515 __cil_tmp32 = *((uint32_t *)__cil_tmp31);
9516#line 927
9517 __cil_tmp33 = __cil_tmp32 & 1U;
9518#line 927
9519 if (__cil_tmp33 == 0U) {
9520 {
9521#line 928
9522 printk("<5>ftl_cs: bad partition\n");
9523 }
9524#line 929
9525 return (-5);
9526 } else {
9527
9528 }
9529 }
9530#line 932
9531 goto ldv_22411;
9532 ldv_22410:
9533 {
9534#line 933
9535 ret = reclaim_block(part);
9536 }
9537#line 934
9538 if (ret != 0) {
9539#line 935
9540 return (ret);
9541 } else {
9542
9543 }
9544 ldv_22411: ;
9545 {
9546#line 932
9547 __cil_tmp34 = (unsigned long )part;
9548#line 932
9549 __cil_tmp35 = __cil_tmp34 + 376;
9550#line 932
9551 __cil_tmp36 = *((uint32_t *)__cil_tmp35);
9552#line 932
9553 __cil_tmp37 = (u_long )__cil_tmp36;
9554#line 932
9555 if (__cil_tmp37 < nblocks) {
9556#line 933
9557 goto ldv_22410;
9558 } else {
9559#line 935
9560 goto ldv_22412;
9561 }
9562 }
9563 ldv_22412:
9564#line 938
9565 __cil_tmp38 = 424 + 23;
9566#line 938
9567 __cil_tmp39 = (unsigned long )part;
9568#line 938
9569 __cil_tmp40 = __cil_tmp39 + __cil_tmp38;
9570#line 938
9571 __cil_tmp41 = *((uint8_t *)__cil_tmp40);
9572#line 938
9573 __cil_tmp42 = (int )__cil_tmp41;
9574#line 938
9575 __cil_tmp43 = 1 << __cil_tmp42;
9576#line 938
9577 bsize = (uint32_t )__cil_tmp43;
9578#line 940
9579 __cil_tmp44 = (uint32_t )sector;
9580#line 940
9581 __cil_tmp45 = __cil_tmp44 * 512U;
9582#line 940
9583 virt_addr = __cil_tmp45 | 64U;
9584#line 941
9585 i = 0UL;
9586#line 941
9587 goto ldv_22415;
9588 ldv_22414: ;
9589 {
9590#line 942
9591 __cil_tmp46 = 424 + 28;
9592#line 942
9593 __cil_tmp47 = (unsigned long )part;
9594#line 942
9595 __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
9596#line 942
9597 __cil_tmp49 = *((uint32_t *)__cil_tmp48);
9598#line 942
9599 if (__cil_tmp49 <= virt_addr) {
9600 {
9601#line 943
9602 printk("<5>ftl_cs: bad write offset\n");
9603 }
9604#line 944
9605 return (-5);
9606 } else {
9607
9608 }
9609 }
9610 {
9611#line 948
9612 blk = find_free(part);
9613 }
9614#line 949
9615 if (blk == 0U) {
9616#line 950
9617 ne = 0;
9618#line 951
9619 ne = ne + 1;
9620#line 951
9621 if (ne <= 4) {
9622 {
9623#line 952
9624 printk("<5>ftl_cs: internal error: no free blocks!\n");
9625 }
9626 } else {
9627
9628 }
9629#line 954
9630 return (-28);
9631 } else {
9632
9633 }
9634 {
9635#line 958
9636 __cil_tmp50 = blk * 512U;
9637#line 958
9638 __cil_tmp51 = (unsigned long )part;
9639#line 958
9640 __cil_tmp52 = __cil_tmp51 + 400;
9641#line 958
9642 __cil_tmp53 = *((uint16_t *)__cil_tmp52);
9643#line 958
9644 __cil_tmp54 = (uint32_t )__cil_tmp53;
9645#line 958
9646 __cil_tmp55 = __cil_tmp54 * bsize;
9647#line 958
9648 log_addr = __cil_tmp55 + __cil_tmp50;
9649#line 959
9650 __cil_tmp56 = (unsigned long )part;
9651#line 959
9652 __cil_tmp57 = __cil_tmp56 + 400;
9653#line 959
9654 __cil_tmp58 = *((uint16_t *)__cil_tmp57);
9655#line 959
9656 __cil_tmp59 = (unsigned long )__cil_tmp58;
9657#line 959
9658 __cil_tmp60 = (unsigned long )part;
9659#line 959
9660 __cil_tmp61 = __cil_tmp60 + 384;
9661#line 959
9662 __cil_tmp62 = *((struct eun_info_t **)__cil_tmp61);
9663#line 959
9664 __cil_tmp63 = __cil_tmp62 + __cil_tmp59;
9665#line 959
9666 __cil_tmp64 = (unsigned long )__cil_tmp63;
9667#line 959
9668 __cil_tmp65 = __cil_tmp64 + 8;
9669#line 959
9670 __cil_tmp66 = (unsigned long )part;
9671#line 959
9672 __cil_tmp67 = __cil_tmp66 + 400;
9673#line 959
9674 __cil_tmp68 = *((uint16_t *)__cil_tmp67);
9675#line 959
9676 __cil_tmp69 = (unsigned long )__cil_tmp68;
9677#line 959
9678 __cil_tmp70 = (unsigned long )part;
9679#line 959
9680 __cil_tmp71 = __cil_tmp70 + 384;
9681#line 959
9682 __cil_tmp72 = *((struct eun_info_t **)__cil_tmp71);
9683#line 959
9684 __cil_tmp73 = __cil_tmp72 + __cil_tmp69;
9685#line 959
9686 __cil_tmp74 = (unsigned long )__cil_tmp73;
9687#line 959
9688 __cil_tmp75 = __cil_tmp74 + 8;
9689#line 959
9690 __cil_tmp76 = *((uint32_t *)__cil_tmp75);
9691#line 959
9692 *((uint32_t *)__cil_tmp65) = __cil_tmp76 - 1U;
9693#line 960
9694 __cil_tmp77 = (unsigned long )part;
9695#line 960
9696 __cil_tmp78 = __cil_tmp77 + 376;
9697#line 960
9698 __cil_tmp79 = (unsigned long )part;
9699#line 960
9700 __cil_tmp80 = __cil_tmp79 + 376;
9701#line 960
9702 __cil_tmp81 = *((uint32_t *)__cil_tmp80);
9703#line 960
9704 *((uint32_t *)__cil_tmp78) = __cil_tmp81 - 1U;
9705#line 961
9706 tmp___0 = set_bam_entry(part, log_addr, 4294967294U);
9707 }
9708#line 961
9709 if (tmp___0 != 0) {
9710#line 962
9711 return (-5);
9712 } else {
9713
9714 }
9715 {
9716#line 963
9717 __cil_tmp82 = (unsigned long )part;
9718#line 963
9719 __cil_tmp83 = __cil_tmp82 + 400;
9720#line 963
9721 __cil_tmp84 = *((uint16_t *)__cil_tmp83);
9722#line 963
9723 __cil_tmp85 = (unsigned long )__cil_tmp84;
9724#line 963
9725 __cil_tmp86 = (unsigned long )part;
9726#line 963
9727 __cil_tmp87 = __cil_tmp86 + 384;
9728#line 963
9729 __cil_tmp88 = *((struct eun_info_t **)__cil_tmp87);
9730#line 963
9731 __cil_tmp89 = __cil_tmp88 + __cil_tmp85;
9732#line 963
9733 __cil_tmp90 = (unsigned long )__cil_tmp89;
9734#line 963
9735 __cil_tmp91 = __cil_tmp90 + 12;
9736#line 963
9737 __cil_tmp92 = (unsigned long )part;
9738#line 963
9739 __cil_tmp93 = __cil_tmp92 + 400;
9740#line 963
9741 __cil_tmp94 = *((uint16_t *)__cil_tmp93);
9742#line 963
9743 __cil_tmp95 = (unsigned long )__cil_tmp94;
9744#line 963
9745 __cil_tmp96 = (unsigned long )part;
9746#line 963
9747 __cil_tmp97 = __cil_tmp96 + 384;
9748#line 963
9749 __cil_tmp98 = *((struct eun_info_t **)__cil_tmp97);
9750#line 963
9751 __cil_tmp99 = __cil_tmp98 + __cil_tmp95;
9752#line 963
9753 __cil_tmp100 = (unsigned long )__cil_tmp99;
9754#line 963
9755 __cil_tmp101 = __cil_tmp100 + 12;
9756#line 963
9757 __cil_tmp102 = *((uint32_t *)__cil_tmp101);
9758#line 963
9759 *((uint32_t *)__cil_tmp91) = __cil_tmp102 + 1U;
9760#line 964
9761 __cil_tmp103 = blk * 512U;
9762#line 964
9763 __cil_tmp104 = (unsigned long )part;
9764#line 964
9765 __cil_tmp105 = __cil_tmp104 + 400;
9766#line 964
9767 __cil_tmp106 = *((uint16_t *)__cil_tmp105);
9768#line 964
9769 __cil_tmp107 = (unsigned long )__cil_tmp106;
9770#line 964
9771 __cil_tmp108 = (unsigned long )part;
9772#line 964
9773 __cil_tmp109 = __cil_tmp108 + 384;
9774#line 964
9775 __cil_tmp110 = *((struct eun_info_t **)__cil_tmp109);
9776#line 964
9777 __cil_tmp111 = __cil_tmp110 + __cil_tmp107;
9778#line 964
9779 __cil_tmp112 = *((uint32_t *)__cil_tmp111);
9780#line 964
9781 __cil_tmp113 = __cil_tmp112 + __cil_tmp103;
9782#line 964
9783 offset = (size_t )__cil_tmp113;
9784#line 966
9785 __cil_tmp114 = 0 + 24;
9786#line 966
9787 __cil_tmp115 = (unsigned long )part;
9788#line 966
9789 __cil_tmp116 = __cil_tmp115 + __cil_tmp114;
9790#line 966
9791 __cil_tmp117 = *((struct mtd_info **)__cil_tmp116);
9792#line 966
9793 __cil_tmp118 = (loff_t )offset;
9794#line 966
9795 __cil_tmp119 = (u_char const *)buffer;
9796#line 966
9797 ret = mtd_write(__cil_tmp117, __cil_tmp118, 512UL, & retlen, __cil_tmp119);
9798 }
9799#line 968
9800 if (ret != 0) {
9801 {
9802#line 969
9803 printk("<5>ftl_cs: block write failed!\n");
9804#line 970
9805 printk("<5>ftl_cs: log_addr = 0x%x, virt_addr = 0x%x, Offset = 0x%zx\n", log_addr,
9806 virt_addr, offset);
9807 }
9808#line 973
9809 return (-5);
9810 } else {
9811
9812 }
9813#line 977
9814 __cil_tmp120 = sector + i;
9815#line 977
9816 __cil_tmp121 = (unsigned long )part;
9817#line 977
9818 __cil_tmp122 = __cil_tmp121 + 360;
9819#line 977
9820 __cil_tmp123 = *((uint32_t **)__cil_tmp122);
9821#line 977
9822 __cil_tmp124 = __cil_tmp123 + __cil_tmp120;
9823#line 977
9824 old_addr = *__cil_tmp124;
9825#line 978
9826 if (old_addr != 4294967295U) {
9827 {
9828#line 979
9829 __cil_tmp125 = sector + i;
9830#line 979
9831 __cil_tmp126 = (unsigned long )part;
9832#line 979
9833 __cil_tmp127 = __cil_tmp126 + 360;
9834#line 979
9835 __cil_tmp128 = *((uint32_t **)__cil_tmp127);
9836#line 979
9837 __cil_tmp129 = __cil_tmp128 + __cil_tmp125;
9838#line 979
9839 *__cil_tmp129 = 4294967295U;
9840#line 980
9841 __cil_tmp130 = old_addr / bsize;
9842#line 980
9843 __cil_tmp131 = (unsigned long )__cil_tmp130;
9844#line 980
9845 __cil_tmp132 = (unsigned long )part;
9846#line 980
9847 __cil_tmp133 = __cil_tmp132 + 384;
9848#line 980
9849 __cil_tmp134 = *((struct eun_info_t **)__cil_tmp133);
9850#line 980
9851 __cil_tmp135 = __cil_tmp134 + __cil_tmp131;
9852#line 980
9853 __cil_tmp136 = (unsigned long )__cil_tmp135;
9854#line 980
9855 __cil_tmp137 = __cil_tmp136 + 12;
9856#line 980
9857 __cil_tmp138 = old_addr / bsize;
9858#line 980
9859 __cil_tmp139 = (unsigned long )__cil_tmp138;
9860#line 980
9861 __cil_tmp140 = (unsigned long )part;
9862#line 980
9863 __cil_tmp141 = __cil_tmp140 + 384;
9864#line 980
9865 __cil_tmp142 = *((struct eun_info_t **)__cil_tmp141);
9866#line 980
9867 __cil_tmp143 = __cil_tmp142 + __cil_tmp139;
9868#line 980
9869 __cil_tmp144 = (unsigned long )__cil_tmp143;
9870#line 980
9871 __cil_tmp145 = __cil_tmp144 + 12;
9872#line 980
9873 __cil_tmp146 = *((uint32_t *)__cil_tmp145);
9874#line 980
9875 *((uint32_t *)__cil_tmp137) = __cil_tmp146 + 1U;
9876#line 981
9877 tmp___1 = set_bam_entry(part, old_addr, 0U);
9878 }
9879#line 981
9880 if (tmp___1 != 0) {
9881#line 982
9882 return (-5);
9883 } else {
9884
9885 }
9886 } else {
9887
9888 }
9889 {
9890#line 986
9891 tmp___2 = set_bam_entry(part, log_addr, virt_addr);
9892 }
9893#line 986
9894 if (tmp___2 != 0) {
9895#line 987
9896 return (-5);
9897 } else {
9898
9899 }
9900#line 988
9901 __cil_tmp147 = sector + i;
9902#line 988
9903 __cil_tmp148 = (unsigned long )part;
9904#line 988
9905 __cil_tmp149 = __cil_tmp148 + 360;
9906#line 988
9907 __cil_tmp150 = *((uint32_t **)__cil_tmp149);
9908#line 988
9909 __cil_tmp151 = __cil_tmp150 + __cil_tmp147;
9910#line 988
9911 *__cil_tmp151 = log_addr;
9912#line 989
9913 __cil_tmp152 = (unsigned long )part;
9914#line 989
9915 __cil_tmp153 = __cil_tmp152 + 400;
9916#line 989
9917 __cil_tmp154 = *((uint16_t *)__cil_tmp153);
9918#line 989
9919 __cil_tmp155 = (unsigned long )__cil_tmp154;
9920#line 989
9921 __cil_tmp156 = (unsigned long )part;
9922#line 989
9923 __cil_tmp157 = __cil_tmp156 + 384;
9924#line 989
9925 __cil_tmp158 = *((struct eun_info_t **)__cil_tmp157);
9926#line 989
9927 __cil_tmp159 = __cil_tmp158 + __cil_tmp155;
9928#line 989
9929 __cil_tmp160 = (unsigned long )__cil_tmp159;
9930#line 989
9931 __cil_tmp161 = __cil_tmp160 + 12;
9932#line 989
9933 __cil_tmp162 = (unsigned long )part;
9934#line 989
9935 __cil_tmp163 = __cil_tmp162 + 400;
9936#line 989
9937 __cil_tmp164 = *((uint16_t *)__cil_tmp163);
9938#line 989
9939 __cil_tmp165 = (unsigned long )__cil_tmp164;
9940#line 989
9941 __cil_tmp166 = (unsigned long )part;
9942#line 989
9943 __cil_tmp167 = __cil_tmp166 + 384;
9944#line 989
9945 __cil_tmp168 = *((struct eun_info_t **)__cil_tmp167);
9946#line 989
9947 __cil_tmp169 = __cil_tmp168 + __cil_tmp165;
9948#line 989
9949 __cil_tmp170 = (unsigned long )__cil_tmp169;
9950#line 989
9951 __cil_tmp171 = __cil_tmp170 + 12;
9952#line 989
9953 __cil_tmp172 = *((uint32_t *)__cil_tmp171);
9954#line 989
9955 *((uint32_t *)__cil_tmp161) = __cil_tmp172 - 1U;
9956#line 991
9957 buffer = buffer + 512UL;
9958#line 992
9959 virt_addr = virt_addr + 512U;
9960#line 941
9961 i = i + 1UL;
9962 ldv_22415: ;
9963#line 941
9964 if (i < nblocks) {
9965#line 942
9966 goto ldv_22414;
9967 } else {
9968#line 944
9969 goto ldv_22416;
9970 }
9971 ldv_22416: ;
9972#line 994
9973 return (0);
9974}
9975}
9976#line 997 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
9977static int ftl_getgeo(struct mtd_blktrans_dev *dev , struct hd_geometry *geo )
9978{ partition_t *part ;
9979 u_long sect ;
9980 unsigned long __cil_tmp5 ;
9981 unsigned long __cil_tmp6 ;
9982 unsigned long __cil_tmp7 ;
9983 uint32_t __cil_tmp8 ;
9984 uint32_t __cil_tmp9 ;
9985 unsigned long __cil_tmp10 ;
9986 unsigned long __cil_tmp11 ;
9987 unsigned long __cil_tmp12 ;
9988 unsigned long __cil_tmp13 ;
9989 u_long __cil_tmp14 ;
9990
9991 {
9992#line 999
9993 part = (partition_t *)dev;
9994#line 1003
9995 __cil_tmp5 = 424 + 28;
9996#line 1003
9997 __cil_tmp6 = (unsigned long )part;
9998#line 1003
9999 __cil_tmp7 = __cil_tmp6 + __cil_tmp5;
10000#line 1003
10001 __cil_tmp8 = *((uint32_t *)__cil_tmp7);
10002#line 1003
10003 __cil_tmp9 = __cil_tmp8 / 512U;
10004#line 1003
10005 sect = (u_long )__cil_tmp9;
10006#line 1005
10007 *((unsigned char *)geo) = (unsigned char)1;
10008#line 1006
10009 __cil_tmp10 = (unsigned long )geo;
10010#line 1006
10011 __cil_tmp11 = __cil_tmp10 + 1;
10012#line 1006
10013 *((unsigned char *)__cil_tmp11) = (unsigned char)8;
10014#line 1007
10015 __cil_tmp12 = (unsigned long )geo;
10016#line 1007
10017 __cil_tmp13 = __cil_tmp12 + 2;
10018#line 1007
10019 __cil_tmp14 = sect >> 3;
10020#line 1007
10021 *((unsigned short *)__cil_tmp13) = (unsigned short )__cil_tmp14;
10022#line 1009
10023 return (0);
10024}
10025}
10026#line 1012 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10027static int ftl_readsect(struct mtd_blktrans_dev *dev , unsigned long block , char *buf )
10028{ int tmp ;
10029 partition_t *__cil_tmp5 ;
10030 caddr_t __cil_tmp6 ;
10031
10032 {
10033 {
10034#line 1015
10035 __cil_tmp5 = (partition_t *)dev;
10036#line 1015
10037 __cil_tmp6 = (caddr_t )buf;
10038#line 1015
10039 tmp = ftl_read(__cil_tmp5, __cil_tmp6, block, 1UL);
10040 }
10041#line 1015
10042 return (tmp);
10043}
10044}
10045#line 1018 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10046static int ftl_writesect(struct mtd_blktrans_dev *dev , unsigned long block , char *buf )
10047{ int tmp ;
10048 partition_t *__cil_tmp5 ;
10049 caddr_t __cil_tmp6 ;
10050
10051 {
10052 {
10053#line 1021
10054 __cil_tmp5 = (partition_t *)dev;
10055#line 1021
10056 __cil_tmp6 = (caddr_t )buf;
10057#line 1021
10058 tmp = ftl_write(__cil_tmp5, __cil_tmp6, block, 1UL);
10059 }
10060#line 1021
10061 return (tmp);
10062}
10063}
10064#line 1024 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10065static int ftl_discardsect(struct mtd_blktrans_dev *dev , unsigned long sector , unsigned int nr_sects )
10066{ partition_t *part ;
10067 uint32_t bsize ;
10068 struct _ddebug descriptor ;
10069 long tmp ;
10070 uint32_t old_addr ;
10071 int tmp___0 ;
10072 unsigned long __cil_tmp10 ;
10073 unsigned long __cil_tmp11 ;
10074 unsigned long __cil_tmp12 ;
10075 uint8_t __cil_tmp13 ;
10076 int __cil_tmp14 ;
10077 int __cil_tmp15 ;
10078 struct _ddebug *__cil_tmp16 ;
10079 unsigned long __cil_tmp17 ;
10080 unsigned long __cil_tmp18 ;
10081 unsigned long __cil_tmp19 ;
10082 unsigned long __cil_tmp20 ;
10083 unsigned long __cil_tmp21 ;
10084 unsigned long __cil_tmp22 ;
10085 unsigned char __cil_tmp23 ;
10086 long __cil_tmp24 ;
10087 long __cil_tmp25 ;
10088 unsigned long __cil_tmp26 ;
10089 unsigned long __cil_tmp27 ;
10090 uint32_t *__cil_tmp28 ;
10091 uint32_t *__cil_tmp29 ;
10092 unsigned long __cil_tmp30 ;
10093 unsigned long __cil_tmp31 ;
10094 uint32_t *__cil_tmp32 ;
10095 uint32_t *__cil_tmp33 ;
10096 uint32_t __cil_tmp34 ;
10097 unsigned long __cil_tmp35 ;
10098 unsigned long __cil_tmp36 ;
10099 unsigned long __cil_tmp37 ;
10100 struct eun_info_t *__cil_tmp38 ;
10101 struct eun_info_t *__cil_tmp39 ;
10102 unsigned long __cil_tmp40 ;
10103 unsigned long __cil_tmp41 ;
10104 uint32_t __cil_tmp42 ;
10105 unsigned long __cil_tmp43 ;
10106 unsigned long __cil_tmp44 ;
10107 unsigned long __cil_tmp45 ;
10108 struct eun_info_t *__cil_tmp46 ;
10109 struct eun_info_t *__cil_tmp47 ;
10110 unsigned long __cil_tmp48 ;
10111 unsigned long __cil_tmp49 ;
10112 uint32_t __cil_tmp50 ;
10113
10114 {
10115 {
10116#line 1027
10117 part = (partition_t *)dev;
10118#line 1028
10119 __cil_tmp10 = 424 + 23;
10120#line 1028
10121 __cil_tmp11 = (unsigned long )part;
10122#line 1028
10123 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
10124#line 1028
10125 __cil_tmp13 = *((uint8_t *)__cil_tmp12);
10126#line 1028
10127 __cil_tmp14 = (int )__cil_tmp13;
10128#line 1028
10129 __cil_tmp15 = 1 << __cil_tmp14;
10130#line 1028
10131 bsize = (uint32_t )__cil_tmp15;
10132#line 1030
10133 __cil_tmp16 = & descriptor;
10134#line 1030
10135 *((char const **)__cil_tmp16) = "ftl";
10136#line 1030
10137 __cil_tmp17 = (unsigned long )(& descriptor) + 8;
10138#line 1030
10139 *((char const **)__cil_tmp17) = "ftl_discardsect";
10140#line 1030
10141 __cil_tmp18 = (unsigned long )(& descriptor) + 16;
10142#line 1030
10143 *((char const **)__cil_tmp18) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
10144#line 1030
10145 __cil_tmp19 = (unsigned long )(& descriptor) + 24;
10146#line 1030
10147 *((char const **)__cil_tmp19) = "FTL erase sector %ld for %d sectors\n";
10148#line 1030
10149 __cil_tmp20 = (unsigned long )(& descriptor) + 32;
10150#line 1030
10151 *((unsigned int *)__cil_tmp20) = 1031U;
10152#line 1030
10153 __cil_tmp21 = (unsigned long )(& descriptor) + 35;
10154#line 1030
10155 *((unsigned char *)__cil_tmp21) = (unsigned char)0;
10156#line 1030
10157 __cil_tmp22 = (unsigned long )(& descriptor) + 35;
10158#line 1030
10159 __cil_tmp23 = *((unsigned char *)__cil_tmp22);
10160#line 1030
10161 __cil_tmp24 = (long )__cil_tmp23;
10162#line 1030
10163 __cil_tmp25 = __cil_tmp24 & 1L;
10164#line 1030
10165 tmp = __builtin_expect(__cil_tmp25, 0L);
10166 }
10167#line 1030
10168 if (tmp != 0L) {
10169 {
10170#line 1030
10171 __dynamic_pr_debug(& descriptor, "FTL erase sector %ld for %d sectors\n", sector,
10172 nr_sects);
10173 }
10174 } else {
10175
10176 }
10177#line 1033
10178 goto ldv_22444;
10179 ldv_22443:
10180#line 1034
10181 __cil_tmp26 = (unsigned long )part;
10182#line 1034
10183 __cil_tmp27 = __cil_tmp26 + 360;
10184#line 1034
10185 __cil_tmp28 = *((uint32_t **)__cil_tmp27);
10186#line 1034
10187 __cil_tmp29 = __cil_tmp28 + sector;
10188#line 1034
10189 old_addr = *__cil_tmp29;
10190#line 1035
10191 if (old_addr != 4294967295U) {
10192 {
10193#line 1036
10194 __cil_tmp30 = (unsigned long )part;
10195#line 1036
10196 __cil_tmp31 = __cil_tmp30 + 360;
10197#line 1036
10198 __cil_tmp32 = *((uint32_t **)__cil_tmp31);
10199#line 1036
10200 __cil_tmp33 = __cil_tmp32 + sector;
10201#line 1036
10202 *__cil_tmp33 = 4294967295U;
10203#line 1037
10204 __cil_tmp34 = old_addr / bsize;
10205#line 1037
10206 __cil_tmp35 = (unsigned long )__cil_tmp34;
10207#line 1037
10208 __cil_tmp36 = (unsigned long )part;
10209#line 1037
10210 __cil_tmp37 = __cil_tmp36 + 384;
10211#line 1037
10212 __cil_tmp38 = *((struct eun_info_t **)__cil_tmp37);
10213#line 1037
10214 __cil_tmp39 = __cil_tmp38 + __cil_tmp35;
10215#line 1037
10216 __cil_tmp40 = (unsigned long )__cil_tmp39;
10217#line 1037
10218 __cil_tmp41 = __cil_tmp40 + 12;
10219#line 1037
10220 __cil_tmp42 = old_addr / bsize;
10221#line 1037
10222 __cil_tmp43 = (unsigned long )__cil_tmp42;
10223#line 1037
10224 __cil_tmp44 = (unsigned long )part;
10225#line 1037
10226 __cil_tmp45 = __cil_tmp44 + 384;
10227#line 1037
10228 __cil_tmp46 = *((struct eun_info_t **)__cil_tmp45);
10229#line 1037
10230 __cil_tmp47 = __cil_tmp46 + __cil_tmp43;
10231#line 1037
10232 __cil_tmp48 = (unsigned long )__cil_tmp47;
10233#line 1037
10234 __cil_tmp49 = __cil_tmp48 + 12;
10235#line 1037
10236 __cil_tmp50 = *((uint32_t *)__cil_tmp49);
10237#line 1037
10238 *((uint32_t *)__cil_tmp41) = __cil_tmp50 + 1U;
10239#line 1038
10240 tmp___0 = set_bam_entry(part, old_addr, 0U);
10241 }
10242#line 1038
10243 if (tmp___0 != 0) {
10244#line 1039
10245 return (-5);
10246 } else {
10247
10248 }
10249 } else {
10250
10251 }
10252#line 1041
10253 nr_sects = nr_sects - 1U;
10254#line 1042
10255 sector = sector + 1UL;
10256 ldv_22444: ;
10257#line 1033
10258 if (nr_sects != 0U) {
10259#line 1034
10260 goto ldv_22443;
10261 } else {
10262#line 1036
10263 goto ldv_22445;
10264 }
10265 ldv_22445: ;
10266#line 1045
10267 return (0);
10268}
10269}
10270#line 1049 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10271static void ftl_freepart(partition_t *part )
10272{ unsigned long __cil_tmp2 ;
10273 unsigned long __cil_tmp3 ;
10274 uint32_t *__cil_tmp4 ;
10275 void const *__cil_tmp5 ;
10276 unsigned long __cil_tmp6 ;
10277 unsigned long __cil_tmp7 ;
10278 unsigned long __cil_tmp8 ;
10279 unsigned long __cil_tmp9 ;
10280 uint32_t *__cil_tmp10 ;
10281 void const *__cil_tmp11 ;
10282 unsigned long __cil_tmp12 ;
10283 unsigned long __cil_tmp13 ;
10284 unsigned long __cil_tmp14 ;
10285 unsigned long __cil_tmp15 ;
10286 struct eun_info_t *__cil_tmp16 ;
10287 void const *__cil_tmp17 ;
10288 unsigned long __cil_tmp18 ;
10289 unsigned long __cil_tmp19 ;
10290 unsigned long __cil_tmp20 ;
10291 unsigned long __cil_tmp21 ;
10292 struct xfer_info_t *__cil_tmp22 ;
10293 void const *__cil_tmp23 ;
10294 unsigned long __cil_tmp24 ;
10295 unsigned long __cil_tmp25 ;
10296 unsigned long __cil_tmp26 ;
10297 unsigned long __cil_tmp27 ;
10298 uint32_t *__cil_tmp28 ;
10299 void const *__cil_tmp29 ;
10300 unsigned long __cil_tmp30 ;
10301 unsigned long __cil_tmp31 ;
10302
10303 {
10304 {
10305#line 1051
10306 __cil_tmp2 = (unsigned long )part;
10307#line 1051
10308 __cil_tmp3 = __cil_tmp2 + 360;
10309#line 1051
10310 __cil_tmp4 = *((uint32_t **)__cil_tmp3);
10311#line 1051
10312 __cil_tmp5 = (void const *)__cil_tmp4;
10313#line 1051
10314 vfree(__cil_tmp5);
10315#line 1052
10316 __cil_tmp6 = (unsigned long )part;
10317#line 1052
10318 __cil_tmp7 = __cil_tmp6 + 360;
10319#line 1052
10320 *((uint32_t **)__cil_tmp7) = (uint32_t *)0;
10321#line 1053
10322 __cil_tmp8 = (unsigned long )part;
10323#line 1053
10324 __cil_tmp9 = __cil_tmp8 + 368;
10325#line 1053
10326 __cil_tmp10 = *((uint32_t **)__cil_tmp9);
10327#line 1053
10328 __cil_tmp11 = (void const *)__cil_tmp10;
10329#line 1053
10330 kfree(__cil_tmp11);
10331#line 1054
10332 __cil_tmp12 = (unsigned long )part;
10333#line 1054
10334 __cil_tmp13 = __cil_tmp12 + 368;
10335#line 1054
10336 *((uint32_t **)__cil_tmp13) = (uint32_t *)0;
10337#line 1055
10338 __cil_tmp14 = (unsigned long )part;
10339#line 1055
10340 __cil_tmp15 = __cil_tmp14 + 384;
10341#line 1055
10342 __cil_tmp16 = *((struct eun_info_t **)__cil_tmp15);
10343#line 1055
10344 __cil_tmp17 = (void const *)__cil_tmp16;
10345#line 1055
10346 kfree(__cil_tmp17);
10347#line 1056
10348 __cil_tmp18 = (unsigned long )part;
10349#line 1056
10350 __cil_tmp19 = __cil_tmp18 + 384;
10351#line 1056
10352 *((struct eun_info_t **)__cil_tmp19) = (struct eun_info_t *)0;
10353#line 1057
10354 __cil_tmp20 = (unsigned long )part;
10355#line 1057
10356 __cil_tmp21 = __cil_tmp20 + 392;
10357#line 1057
10358 __cil_tmp22 = *((struct xfer_info_t **)__cil_tmp21);
10359#line 1057
10360 __cil_tmp23 = (void const *)__cil_tmp22;
10361#line 1057
10362 kfree(__cil_tmp23);
10363#line 1058
10364 __cil_tmp24 = (unsigned long )part;
10365#line 1058
10366 __cil_tmp25 = __cil_tmp24 + 392;
10367#line 1058
10368 *((struct xfer_info_t **)__cil_tmp25) = (struct xfer_info_t *)0;
10369#line 1059
10370 __cil_tmp26 = (unsigned long )part;
10371#line 1059
10372 __cil_tmp27 = __cil_tmp26 + 408;
10373#line 1059
10374 __cil_tmp28 = *((uint32_t **)__cil_tmp27);
10375#line 1059
10376 __cil_tmp29 = (void const *)__cil_tmp28;
10377#line 1059
10378 kfree(__cil_tmp29);
10379#line 1060
10380 __cil_tmp30 = (unsigned long )part;
10381#line 1060
10382 __cil_tmp31 = __cil_tmp30 + 408;
10383#line 1060
10384 *((uint32_t **)__cil_tmp31) = (uint32_t *)0;
10385 }
10386#line 1061
10387 return;
10388}
10389}
10390#line 1063 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10391static void ftl_add_mtd(struct mtd_blktrans_ops *tr , struct mtd_info *mtd )
10392{ partition_t *partition ;
10393 void *tmp ;
10394 int tmp___0 ;
10395 int tmp___1 ;
10396 int tmp___2 ;
10397 partition_t *__cil_tmp8 ;
10398 unsigned long __cil_tmp9 ;
10399 unsigned long __cil_tmp10 ;
10400 unsigned long __cil_tmp11 ;
10401 unsigned long __cil_tmp12 ;
10402 char const *__cil_tmp13 ;
10403 unsigned long __cil_tmp14 ;
10404 unsigned long __cil_tmp15 ;
10405 unsigned long __cil_tmp16 ;
10406 unsigned long __cil_tmp17 ;
10407 unsigned long __cil_tmp18 ;
10408 unsigned long __cil_tmp19 ;
10409 unsigned long __cil_tmp20 ;
10410 unsigned long __cil_tmp21 ;
10411 unsigned long __cil_tmp22 ;
10412 unsigned long __cil_tmp23 ;
10413 unsigned long __cil_tmp24 ;
10414 uint32_t __cil_tmp25 ;
10415 uint32_t __cil_tmp26 ;
10416 unsigned long __cil_tmp27 ;
10417 unsigned long __cil_tmp28 ;
10418 unsigned long __cil_tmp29 ;
10419 struct mtd_blktrans_dev *__cil_tmp30 ;
10420 void const *__cil_tmp31 ;
10421
10422 {
10423 {
10424#line 1067
10425 tmp = kzalloc(496UL, 208U);
10426#line 1067
10427 partition = (partition_t *)tmp;
10428 }
10429 {
10430#line 1069
10431 __cil_tmp8 = (partition_t *)0;
10432#line 1069
10433 __cil_tmp9 = (unsigned long )__cil_tmp8;
10434#line 1069
10435 __cil_tmp10 = (unsigned long )partition;
10436#line 1069
10437 if (__cil_tmp10 == __cil_tmp9) {
10438 {
10439#line 1070
10440 __cil_tmp11 = (unsigned long )mtd;
10441#line 1070
10442 __cil_tmp12 = __cil_tmp11 + 56;
10443#line 1070
10444 __cil_tmp13 = *((char const **)__cil_tmp12);
10445#line 1070
10446 printk("<4>No memory to scan for FTL on %s\n", __cil_tmp13);
10447 }
10448#line 1072
10449 return;
10450 } else {
10451
10452 }
10453 }
10454 {
10455#line 1075
10456 __cil_tmp14 = 0 + 24;
10457#line 1075
10458 __cil_tmp15 = (unsigned long )partition;
10459#line 1075
10460 __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
10461#line 1075
10462 *((struct mtd_info **)__cil_tmp16) = mtd;
10463#line 1077
10464 tmp___1 = scan_header(partition);
10465 }
10466#line 1077
10467 if (tmp___1 == 0) {
10468 {
10469#line 1077
10470 tmp___2 = build_maps(partition);
10471 }
10472#line 1077
10473 if (tmp___2 == 0) {
10474 {
10475#line 1080
10476 __cil_tmp17 = (unsigned long )partition;
10477#line 1080
10478 __cil_tmp18 = __cil_tmp17 + 352;
10479#line 1080
10480 *((uint32_t *)__cil_tmp18) = 1U;
10481#line 1085
10482 __cil_tmp19 = 0 + 208;
10483#line 1085
10484 __cil_tmp20 = (unsigned long )partition;
10485#line 1085
10486 __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
10487#line 1085
10488 __cil_tmp22 = 424 + 28;
10489#line 1085
10490 __cil_tmp23 = (unsigned long )partition;
10491#line 1085
10492 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
10493#line 1085
10494 __cil_tmp25 = *((uint32_t *)__cil_tmp24);
10495#line 1085
10496 __cil_tmp26 = __cil_tmp25 >> 9;
10497#line 1085
10498 *((unsigned long *)__cil_tmp21) = (unsigned long )__cil_tmp26;
10499#line 1087
10500 *((struct mtd_blktrans_ops **)partition) = tr;
10501#line 1088
10502 __cil_tmp27 = 0 + 200;
10503#line 1088
10504 __cil_tmp28 = (unsigned long )partition;
10505#line 1088
10506 __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
10507#line 1088
10508 *((int *)__cil_tmp29) = -1;
10509#line 1089
10510 __cil_tmp30 = (struct mtd_blktrans_dev *)partition;
10511#line 1089
10512 tmp___0 = add_mtd_blktrans_dev(__cil_tmp30);
10513 }
10514#line 1089
10515 if (tmp___0 == 0) {
10516#line 1090
10517 return;
10518 } else {
10519
10520 }
10521 } else {
10522
10523 }
10524 } else {
10525
10526 }
10527 {
10528#line 1093
10529 ftl_freepart(partition);
10530#line 1094
10531 __cil_tmp31 = (void const *)partition;
10532#line 1094
10533 kfree(__cil_tmp31);
10534 }
10535#line 1095
10536 return;
10537}
10538}
10539#line 1097 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10540static void ftl_remove_dev(struct mtd_blktrans_dev *dev )
10541{ partition_t *__cil_tmp2 ;
10542
10543 {
10544 {
10545#line 1099
10546 del_mtd_blktrans_dev(dev);
10547#line 1100
10548 __cil_tmp2 = (partition_t *)dev;
10549#line 1100
10550 ftl_freepart(__cil_tmp2);
10551 }
10552#line 1101
10553 return;
10554}
10555}
10556#line 1103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10557static struct mtd_blktrans_ops ftl_tr =
10558#line 1103
10559 {(char *)"ftl", 44, 4, 512, 0, & ftl_readsect, & ftl_writesect, & ftl_discardsect,
10560 (void (*)(struct mtd_blktrans_dev * ))0, & ftl_getgeo, (int (*)(struct mtd_blktrans_dev * ))0,
10561 (int (*)(struct mtd_blktrans_dev * ))0, (int (*)(struct mtd_blktrans_dev * ))0,
10562 & ftl_add_mtd, & ftl_remove_dev, {(struct list_head *)0, (struct list_head *)0},
10563 {(struct list_head *)0, (struct list_head *)0}, & __this_module};
10564#line 1117 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10565static int init_ftl(void)
10566{ int tmp ;
10567
10568 {
10569 {
10570#line 1119
10571 tmp = register_mtd_blktrans(& ftl_tr);
10572 }
10573#line 1119
10574 return (tmp);
10575}
10576}
10577#line 1122 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10578static void cleanup_ftl(void)
10579{
10580
10581 {
10582 {
10583#line 1124
10584 deregister_mtd_blktrans(& ftl_tr);
10585 }
10586#line 1125
10587 return;
10588}
10589}
10590#line 1151
10591extern void ldv_check_final_state(void) ;
10592#line 1157
10593extern void ldv_initialize(void) ;
10594#line 1160
10595extern int __VERIFIER_nondet_int(void) ;
10596#line 1163 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10597int LDV_IN_INTERRUPT ;
10598#line 1166 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10599void main(void)
10600{ struct mtd_blktrans_dev *var_group1 ;
10601 unsigned long var_ftl_readsect_13_p1 ;
10602 char *var_ftl_readsect_13_p2 ;
10603 unsigned long var_ftl_writesect_14_p1 ;
10604 char *var_ftl_writesect_14_p2 ;
10605 unsigned long var_ftl_discardsect_15_p1 ;
10606 unsigned int var_ftl_discardsect_15_p2 ;
10607 struct hd_geometry *var_group2 ;
10608 struct mtd_blktrans_ops *var_group3 ;
10609 struct mtd_info *var_group4 ;
10610 int tmp ;
10611 int tmp___0 ;
10612 int tmp___1 ;
10613
10614 {
10615 {
10616#line 1380
10617 LDV_IN_INTERRUPT = 1;
10618#line 1389
10619 ldv_initialize();
10620#line 1422
10621 tmp = init_ftl();
10622 }
10623#line 1422
10624 if (tmp != 0) {
10625#line 1423
10626 goto ldv_final;
10627 } else {
10628
10629 }
10630#line 1427
10631 goto ldv_22509;
10632 ldv_22508:
10633 {
10634#line 1430
10635 tmp___0 = __VERIFIER_nondet_int();
10636 }
10637#line 1432
10638 if (tmp___0 == 0) {
10639#line 1432
10640 goto case_0;
10641 } else
10642#line 1477
10643 if (tmp___0 == 1) {
10644#line 1477
10645 goto case_1;
10646 } else
10647#line 1522
10648 if (tmp___0 == 2) {
10649#line 1522
10650 goto case_2;
10651 } else
10652#line 1567
10653 if (tmp___0 == 3) {
10654#line 1567
10655 goto case_3;
10656 } else
10657#line 1612
10658 if (tmp___0 == 4) {
10659#line 1612
10660 goto case_4;
10661 } else
10662#line 1653
10663 if (tmp___0 == 5) {
10664#line 1653
10665 goto case_5;
10666 } else {
10667 {
10668#line 1696
10669 goto switch_default;
10670#line 1430
10671 if (0) {
10672 case_0:
10673 {
10674#line 1465
10675 ftl_readsect(var_group1, var_ftl_readsect_13_p1, var_ftl_readsect_13_p2);
10676 }
10677#line 1476
10678 goto ldv_22501;
10679 case_1:
10680 {
10681#line 1510
10682 ftl_writesect(var_group1, var_ftl_writesect_14_p1, var_ftl_writesect_14_p2);
10683 }
10684#line 1521
10685 goto ldv_22501;
10686 case_2:
10687 {
10688#line 1555
10689 ftl_discardsect(var_group1, var_ftl_discardsect_15_p1, var_ftl_discardsect_15_p2);
10690 }
10691#line 1566
10692 goto ldv_22501;
10693 case_3:
10694 {
10695#line 1600
10696 ftl_getgeo(var_group1, var_group2);
10697 }
10698#line 1611
10699 goto ldv_22501;
10700 case_4:
10701 {
10702#line 1645
10703 ftl_add_mtd(var_group3, var_group4);
10704 }
10705#line 1652
10706 goto ldv_22501;
10707 case_5:
10708 {
10709#line 1688
10710 ftl_remove_dev(var_group1);
10711 }
10712#line 1695
10713 goto ldv_22501;
10714 switch_default: ;
10715#line 1696
10716 goto ldv_22501;
10717 } else {
10718 switch_break: ;
10719 }
10720 }
10721 }
10722 ldv_22501: ;
10723 ldv_22509:
10724 {
10725#line 1427
10726 tmp___1 = __VERIFIER_nondet_int();
10727 }
10728#line 1427
10729 if (tmp___1 != 0) {
10730#line 1428
10731 goto ldv_22508;
10732 } else {
10733#line 1430
10734 goto ldv_22510;
10735 }
10736 ldv_22510: ;
10737 {
10738#line 1735
10739 cleanup_ftl();
10740 }
10741 ldv_final:
10742 {
10743#line 1738
10744 ldv_check_final_state();
10745 }
10746#line 1741
10747 return;
10748}
10749}
10750#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
10751void ldv_blast_assert(void)
10752{
10753
10754 {
10755 ERROR: ;
10756#line 6
10757 goto ERROR;
10758}
10759}
10760#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
10761extern int __VERIFIER_nondet_int(void) ;
10762#line 1762 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10763int ldv_spin = 0;
10764#line 1766 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10765void ldv_check_alloc_flags(gfp_t flags )
10766{
10767
10768 {
10769#line 1769
10770 if (ldv_spin != 0) {
10771#line 1769
10772 if (flags != 32U) {
10773 {
10774#line 1769
10775 ldv_blast_assert();
10776 }
10777 } else {
10778
10779 }
10780 } else {
10781
10782 }
10783#line 1772
10784 return;
10785}
10786}
10787#line 1772
10788extern struct page *ldv_some_page(void) ;
10789#line 1775 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10790struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags )
10791{ struct page *tmp ;
10792
10793 {
10794#line 1778
10795 if (ldv_spin != 0) {
10796#line 1778
10797 if (flags != 32U) {
10798 {
10799#line 1778
10800 ldv_blast_assert();
10801 }
10802 } else {
10803
10804 }
10805 } else {
10806
10807 }
10808 {
10809#line 1780
10810 tmp = ldv_some_page();
10811 }
10812#line 1780
10813 return (tmp);
10814}
10815}
10816#line 1784 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10817void ldv_check_alloc_nonatomic(void)
10818{
10819
10820 {
10821#line 1787
10822 if (ldv_spin != 0) {
10823 {
10824#line 1787
10825 ldv_blast_assert();
10826 }
10827 } else {
10828
10829 }
10830#line 1790
10831 return;
10832}
10833}
10834#line 1791 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10835void ldv_spin_lock(void)
10836{
10837
10838 {
10839#line 1794
10840 ldv_spin = 1;
10841#line 1795
10842 return;
10843}
10844}
10845#line 1798 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10846void ldv_spin_unlock(void)
10847{
10848
10849 {
10850#line 1801
10851 ldv_spin = 0;
10852#line 1802
10853 return;
10854}
10855}
10856#line 1805 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10857int ldv_spin_trylock(void)
10858{ int is_lock ;
10859
10860 {
10861 {
10862#line 1810
10863 is_lock = __VERIFIER_nondet_int();
10864 }
10865#line 1812
10866 if (is_lock != 0) {
10867#line 1815
10868 return (0);
10869 } else {
10870#line 1820
10871 ldv_spin = 1;
10872#line 1822
10873 return (1);
10874 }
10875}
10876}
10877#line 1944 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10878__inline static void *kmalloc(size_t size , gfp_t flags )
10879{
10880
10881 {
10882 {
10883#line 1950
10884 ldv_check_alloc_flags(flags);
10885#line 1952
10886 ldv_kmalloc_12(size, flags);
10887 }
10888#line 1953
10889 return ((void *)0);
10890}
10891}
10892#line 1989 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10893void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 )
10894{
10895
10896 {
10897 {
10898#line 1995
10899 ldv_check_alloc_flags(ldv_func_arg2);
10900#line 1997
10901 kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
10902 }
10903#line 1998
10904 return ((void *)0);
10905}
10906}
10907#line 2000 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10908__inline static void *kzalloc(size_t size , gfp_t flags )
10909{ void *tmp ;
10910
10911 {
10912 {
10913#line 2006
10914 ldv_check_alloc_flags(flags);
10915#line 2007
10916 tmp = __VERIFIER_nondet_pointer();
10917 }
10918#line 2007
10919 return (tmp);
10920}
10921}
10922#line 2021 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10923void *ldv_vmalloc_19(unsigned long ldv_func_arg1 )
10924{
10925
10926 {
10927 {
10928#line 2026
10929 ldv_check_alloc_nonatomic();
10930#line 2028
10931 vmalloc(ldv_func_arg1);
10932 }
10933#line 2029
10934 return ((void *)0);
10935}
10936}