1
2
3
4#line 20 "include/asm-generic/int-ll64.h"
5typedef unsigned char __u8;
6#line 23 "include/asm-generic/int-ll64.h"
7typedef unsigned short __u16;
8#line 25 "include/asm-generic/int-ll64.h"
9typedef int __s32;
10#line 26 "include/asm-generic/int-ll64.h"
11typedef unsigned int __u32;
12#line 30 "include/asm-generic/int-ll64.h"
13typedef unsigned long long __u64;
14#line 43 "include/asm-generic/int-ll64.h"
15typedef unsigned char u8;
16#line 45 "include/asm-generic/int-ll64.h"
17typedef short s16;
18#line 46 "include/asm-generic/int-ll64.h"
19typedef unsigned short u16;
20#line 49 "include/asm-generic/int-ll64.h"
21typedef unsigned int u32;
22#line 51 "include/asm-generic/int-ll64.h"
23typedef long long s64;
24#line 52 "include/asm-generic/int-ll64.h"
25typedef unsigned long long u64;
26#line 14 "include/asm-generic/posix_types.h"
27typedef long __kernel_long_t;
28#line 15 "include/asm-generic/posix_types.h"
29typedef unsigned long __kernel_ulong_t;
30#line 31 "include/asm-generic/posix_types.h"
31typedef int __kernel_pid_t;
32#line 52 "include/asm-generic/posix_types.h"
33typedef unsigned int __kernel_uid32_t;
34#line 53 "include/asm-generic/posix_types.h"
35typedef unsigned int __kernel_gid32_t;
36#line 75 "include/asm-generic/posix_types.h"
37typedef __kernel_ulong_t __kernel_size_t;
38#line 76 "include/asm-generic/posix_types.h"
39typedef __kernel_long_t __kernel_ssize_t;
40#line 91 "include/asm-generic/posix_types.h"
41typedef long long __kernel_loff_t;
42#line 92 "include/asm-generic/posix_types.h"
43typedef __kernel_long_t __kernel_time_t;
44#line 93 "include/asm-generic/posix_types.h"
45typedef __kernel_long_t __kernel_clock_t;
46#line 94 "include/asm-generic/posix_types.h"
47typedef int __kernel_timer_t;
48#line 95 "include/asm-generic/posix_types.h"
49typedef int __kernel_clockid_t;
50#line 21 "include/linux/types.h"
51typedef __u32 __kernel_dev_t;
52#line 24 "include/linux/types.h"
53typedef __kernel_dev_t dev_t;
54#line 27 "include/linux/types.h"
55typedef unsigned short umode_t;
56#line 30 "include/linux/types.h"
57typedef __kernel_pid_t pid_t;
58#line 35 "include/linux/types.h"
59typedef __kernel_clockid_t clockid_t;
60#line 38 "include/linux/types.h"
61typedef _Bool bool;
62#line 40 "include/linux/types.h"
63typedef __kernel_uid32_t uid_t;
64#line 41 "include/linux/types.h"
65typedef __kernel_gid32_t gid_t;
66#line 54 "include/linux/types.h"
67typedef __kernel_loff_t loff_t;
68#line 63 "include/linux/types.h"
69typedef __kernel_size_t size_t;
70#line 68 "include/linux/types.h"
71typedef __kernel_ssize_t ssize_t;
72#line 78 "include/linux/types.h"
73typedef __kernel_time_t time_t;
74#line 92 "include/linux/types.h"
75typedef unsigned char u_char;
76#line 95 "include/linux/types.h"
77typedef unsigned long u_long;
78#line 111 "include/linux/types.h"
79typedef __s32 int32_t;
80#line 115 "include/linux/types.h"
81typedef __u8 uint8_t;
82#line 117 "include/linux/types.h"
83typedef __u32 uint32_t;
84#line 120 "include/linux/types.h"
85typedef __u64 uint64_t;
86#line 202 "include/linux/types.h"
87typedef unsigned int gfp_t;
88#line 206 "include/linux/types.h"
89typedef u64 phys_addr_t;
90#line 211 "include/linux/types.h"
91typedef phys_addr_t resource_size_t;
92#line 221 "include/linux/types.h"
93struct __anonstruct_atomic_t_6 {
94 int counter ;
95};
96#line 221 "include/linux/types.h"
97typedef struct __anonstruct_atomic_t_6 atomic_t;
98#line 226 "include/linux/types.h"
99struct __anonstruct_atomic64_t_7 {
100 long counter ;
101};
102#line 226 "include/linux/types.h"
103typedef struct __anonstruct_atomic64_t_7 atomic64_t;
104#line 227 "include/linux/types.h"
105struct list_head {
106 struct list_head *next ;
107 struct list_head *prev ;
108};
109#line 232
110struct hlist_node;
111#line 232 "include/linux/types.h"
112struct hlist_head {
113 struct hlist_node *first ;
114};
115#line 236 "include/linux/types.h"
116struct hlist_node {
117 struct hlist_node *next ;
118 struct hlist_node **pprev ;
119};
120#line 247 "include/linux/types.h"
121struct rcu_head {
122 struct rcu_head *next ;
123 void (*func)(struct rcu_head * ) ;
124};
125#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
126struct module;
127#line 55
128struct module;
129#line 146 "include/linux/init.h"
130typedef void (*ctor_fn_t)(void);
131#line 305 "include/linux/printk.h"
132struct _ddebug {
133 char const *modname ;
134 char const *function ;
135 char const *filename ;
136 char const *format ;
137 unsigned int lineno : 18 ;
138 unsigned char flags ;
139};
140#line 46 "include/linux/dynamic_debug.h"
141struct device;
142#line 46
143struct device;
144#line 57
145struct completion;
146#line 57
147struct completion;
148#line 58
149struct pt_regs;
150#line 58
151struct pt_regs;
152#line 348 "include/linux/kernel.h"
153struct pid;
154#line 348
155struct pid;
156#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
157struct timespec;
158#line 112
159struct timespec;
160#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
161struct page;
162#line 58
163struct page;
164#line 26 "include/asm-generic/getorder.h"
165struct task_struct;
166#line 26
167struct task_struct;
168#line 28
169struct mm_struct;
170#line 28
171struct mm_struct;
172#line 268 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/segment.h"
173struct pt_regs {
174 unsigned long r15 ;
175 unsigned long r14 ;
176 unsigned long r13 ;
177 unsigned long r12 ;
178 unsigned long bp ;
179 unsigned long bx ;
180 unsigned long r11 ;
181 unsigned long r10 ;
182 unsigned long r9 ;
183 unsigned long r8 ;
184 unsigned long ax ;
185 unsigned long cx ;
186 unsigned long dx ;
187 unsigned long si ;
188 unsigned long di ;
189 unsigned long orig_ax ;
190 unsigned long ip ;
191 unsigned long cs ;
192 unsigned long flags ;
193 unsigned long sp ;
194 unsigned long ss ;
195};
196#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
197struct __anonstruct_ldv_2180_13 {
198 unsigned int a ;
199 unsigned int b ;
200};
201#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
202struct __anonstruct_ldv_2195_14 {
203 u16 limit0 ;
204 u16 base0 ;
205 unsigned char base1 ;
206 unsigned char type : 4 ;
207 unsigned char s : 1 ;
208 unsigned char dpl : 2 ;
209 unsigned char p : 1 ;
210 unsigned char limit : 4 ;
211 unsigned char avl : 1 ;
212 unsigned char l : 1 ;
213 unsigned char d : 1 ;
214 unsigned char g : 1 ;
215 unsigned char base2 ;
216};
217#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
218union __anonunion_ldv_2196_12 {
219 struct __anonstruct_ldv_2180_13 ldv_2180 ;
220 struct __anonstruct_ldv_2195_14 ldv_2195 ;
221};
222#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
223struct desc_struct {
224 union __anonunion_ldv_2196_12 ldv_2196 ;
225};
226#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
227typedef unsigned long pgdval_t;
228#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
229typedef unsigned long pgprotval_t;
230#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
231struct pgprot {
232 pgprotval_t pgprot ;
233};
234#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
235typedef struct pgprot pgprot_t;
236#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
237struct __anonstruct_pgd_t_16 {
238 pgdval_t pgd ;
239};
240#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
241typedef struct __anonstruct_pgd_t_16 pgd_t;
242#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
243typedef struct page *pgtable_t;
244#line 290
245struct file;
246#line 290
247struct file;
248#line 337
249struct thread_struct;
250#line 337
251struct thread_struct;
252#line 339
253struct cpumask;
254#line 339
255struct cpumask;
256#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
257struct arch_spinlock;
258#line 327
259struct arch_spinlock;
260#line 300 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
261struct kernel_vm86_regs {
262 struct pt_regs pt ;
263 unsigned short es ;
264 unsigned short __esh ;
265 unsigned short ds ;
266 unsigned short __dsh ;
267 unsigned short fs ;
268 unsigned short __fsh ;
269 unsigned short gs ;
270 unsigned short __gsh ;
271};
272#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
273union __anonunion_ldv_2824_19 {
274 struct pt_regs *regs ;
275 struct kernel_vm86_regs *vm86 ;
276};
277#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
278struct math_emu_info {
279 long ___orig_eip ;
280 union __anonunion_ldv_2824_19 ldv_2824 ;
281};
282#line 306 "include/linux/bitmap.h"
283struct bug_entry {
284 int bug_addr_disp ;
285 int file_disp ;
286 unsigned short line ;
287 unsigned short flags ;
288};
289#line 89 "include/linux/bug.h"
290struct cpumask {
291 unsigned long bits[64U] ;
292};
293#line 14 "include/linux/cpumask.h"
294typedef struct cpumask cpumask_t;
295#line 637 "include/linux/cpumask.h"
296typedef struct cpumask *cpumask_var_t;
297#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
298struct static_key;
299#line 234
300struct static_key;
301#line 287 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
302struct i387_fsave_struct {
303 u32 cwd ;
304 u32 swd ;
305 u32 twd ;
306 u32 fip ;
307 u32 fcs ;
308 u32 foo ;
309 u32 fos ;
310 u32 st_space[20U] ;
311 u32 status ;
312};
313#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
314struct __anonstruct_ldv_5180_24 {
315 u64 rip ;
316 u64 rdp ;
317};
318#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
319struct __anonstruct_ldv_5186_25 {
320 u32 fip ;
321 u32 fcs ;
322 u32 foo ;
323 u32 fos ;
324};
325#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
326union __anonunion_ldv_5187_23 {
327 struct __anonstruct_ldv_5180_24 ldv_5180 ;
328 struct __anonstruct_ldv_5186_25 ldv_5186 ;
329};
330#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
331union __anonunion_ldv_5196_26 {
332 u32 padding1[12U] ;
333 u32 sw_reserved[12U] ;
334};
335#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
336struct i387_fxsave_struct {
337 u16 cwd ;
338 u16 swd ;
339 u16 twd ;
340 u16 fop ;
341 union __anonunion_ldv_5187_23 ldv_5187 ;
342 u32 mxcsr ;
343 u32 mxcsr_mask ;
344 u32 st_space[32U] ;
345 u32 xmm_space[64U] ;
346 u32 padding[12U] ;
347 union __anonunion_ldv_5196_26 ldv_5196 ;
348};
349#line 339 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
350struct i387_soft_struct {
351 u32 cwd ;
352 u32 swd ;
353 u32 twd ;
354 u32 fip ;
355 u32 fcs ;
356 u32 foo ;
357 u32 fos ;
358 u32 st_space[20U] ;
359 u8 ftop ;
360 u8 changed ;
361 u8 lookahead ;
362 u8 no_update ;
363 u8 rm ;
364 u8 alimit ;
365 struct math_emu_info *info ;
366 u32 entry_eip ;
367};
368#line 360 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
369struct ymmh_struct {
370 u32 ymmh_space[64U] ;
371};
372#line 365 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
373struct xsave_hdr_struct {
374 u64 xstate_bv ;
375 u64 reserved1[2U] ;
376 u64 reserved2[5U] ;
377};
378#line 371 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
379struct xsave_struct {
380 struct i387_fxsave_struct i387 ;
381 struct xsave_hdr_struct xsave_hdr ;
382 struct ymmh_struct ymmh ;
383};
384#line 377 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
385union thread_xstate {
386 struct i387_fsave_struct fsave ;
387 struct i387_fxsave_struct fxsave ;
388 struct i387_soft_struct soft ;
389 struct xsave_struct xsave ;
390};
391#line 385 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
392struct fpu {
393 unsigned int last_cpu ;
394 unsigned int has_fpu ;
395 union thread_xstate *state ;
396};
397#line 433
398struct kmem_cache;
399#line 434
400struct perf_event;
401#line 434
402struct perf_event;
403#line 435 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
404struct thread_struct {
405 struct desc_struct tls_array[3U] ;
406 unsigned long sp0 ;
407 unsigned long sp ;
408 unsigned long usersp ;
409 unsigned short es ;
410 unsigned short ds ;
411 unsigned short fsindex ;
412 unsigned short gsindex ;
413 unsigned long fs ;
414 unsigned long gs ;
415 struct perf_event *ptrace_bps[4U] ;
416 unsigned long debugreg6 ;
417 unsigned long ptrace_dr7 ;
418 unsigned long cr2 ;
419 unsigned long trap_nr ;
420 unsigned long error_code ;
421 struct fpu fpu ;
422 unsigned long *io_bitmap_ptr ;
423 unsigned long iopl ;
424 unsigned int io_bitmap_max ;
425};
426#line 23 "include/asm-generic/atomic-long.h"
427typedef atomic64_t atomic_long_t;
428#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
429typedef u16 __ticket_t;
430#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
431typedef u32 __ticketpair_t;
432#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
433struct __raw_tickets {
434 __ticket_t head ;
435 __ticket_t tail ;
436};
437#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
438union __anonunion_ldv_5907_29 {
439 __ticketpair_t head_tail ;
440 struct __raw_tickets tickets ;
441};
442#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
443struct arch_spinlock {
444 union __anonunion_ldv_5907_29 ldv_5907 ;
445};
446#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
447typedef struct arch_spinlock arch_spinlock_t;
448#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
449struct lockdep_map;
450#line 34
451struct lockdep_map;
452#line 55 "include/linux/debug_locks.h"
453struct stack_trace {
454 unsigned int nr_entries ;
455 unsigned int max_entries ;
456 unsigned long *entries ;
457 int skip ;
458};
459#line 26 "include/linux/stacktrace.h"
460struct lockdep_subclass_key {
461 char __one_byte ;
462};
463#line 53 "include/linux/lockdep.h"
464struct lock_class_key {
465 struct lockdep_subclass_key subkeys[8U] ;
466};
467#line 59 "include/linux/lockdep.h"
468struct lock_class {
469 struct list_head hash_entry ;
470 struct list_head lock_entry ;
471 struct lockdep_subclass_key *key ;
472 unsigned int subclass ;
473 unsigned int dep_gen_id ;
474 unsigned long usage_mask ;
475 struct stack_trace usage_traces[13U] ;
476 struct list_head locks_after ;
477 struct list_head locks_before ;
478 unsigned int version ;
479 unsigned long ops ;
480 char const *name ;
481 int name_version ;
482 unsigned long contention_point[4U] ;
483 unsigned long contending_point[4U] ;
484};
485#line 144 "include/linux/lockdep.h"
486struct lockdep_map {
487 struct lock_class_key *key ;
488 struct lock_class *class_cache[2U] ;
489 char const *name ;
490 int cpu ;
491 unsigned long ip ;
492};
493#line 187 "include/linux/lockdep.h"
494struct held_lock {
495 u64 prev_chain_key ;
496 unsigned long acquire_ip ;
497 struct lockdep_map *instance ;
498 struct lockdep_map *nest_lock ;
499 u64 waittime_stamp ;
500 u64 holdtime_stamp ;
501 unsigned short class_idx : 13 ;
502 unsigned char irq_context : 2 ;
503 unsigned char trylock : 1 ;
504 unsigned char read : 2 ;
505 unsigned char check : 2 ;
506 unsigned char hardirqs_off : 1 ;
507 unsigned short references : 11 ;
508};
509#line 556 "include/linux/lockdep.h"
510struct raw_spinlock {
511 arch_spinlock_t raw_lock ;
512 unsigned int magic ;
513 unsigned int owner_cpu ;
514 void *owner ;
515 struct lockdep_map dep_map ;
516};
517#line 32 "include/linux/spinlock_types.h"
518typedef struct raw_spinlock raw_spinlock_t;
519#line 33 "include/linux/spinlock_types.h"
520struct __anonstruct_ldv_6122_33 {
521 u8 __padding[24U] ;
522 struct lockdep_map dep_map ;
523};
524#line 33 "include/linux/spinlock_types.h"
525union __anonunion_ldv_6123_32 {
526 struct raw_spinlock rlock ;
527 struct __anonstruct_ldv_6122_33 ldv_6122 ;
528};
529#line 33 "include/linux/spinlock_types.h"
530struct spinlock {
531 union __anonunion_ldv_6123_32 ldv_6123 ;
532};
533#line 76 "include/linux/spinlock_types.h"
534typedef struct spinlock spinlock_t;
535#line 110 "include/linux/seqlock.h"
536struct seqcount {
537 unsigned int sequence ;
538};
539#line 121 "include/linux/seqlock.h"
540typedef struct seqcount seqcount_t;
541#line 254 "include/linux/seqlock.h"
542struct timespec {
543 __kernel_time_t tv_sec ;
544 long tv_nsec ;
545};
546#line 48 "include/linux/wait.h"
547struct __wait_queue_head {
548 spinlock_t lock ;
549 struct list_head task_list ;
550};
551#line 53 "include/linux/wait.h"
552typedef struct __wait_queue_head wait_queue_head_t;
553#line 98 "include/linux/nodemask.h"
554struct __anonstruct_nodemask_t_36 {
555 unsigned long bits[16U] ;
556};
557#line 98 "include/linux/nodemask.h"
558typedef struct __anonstruct_nodemask_t_36 nodemask_t;
559#line 670 "include/linux/mmzone.h"
560struct mutex {
561 atomic_t count ;
562 spinlock_t wait_lock ;
563 struct list_head wait_list ;
564 struct task_struct *owner ;
565 char const *name ;
566 void *magic ;
567 struct lockdep_map dep_map ;
568};
569#line 63 "include/linux/mutex.h"
570struct mutex_waiter {
571 struct list_head list ;
572 struct task_struct *task ;
573 void *magic ;
574};
575#line 171
576struct rw_semaphore;
577#line 171
578struct rw_semaphore;
579#line 172 "include/linux/mutex.h"
580struct rw_semaphore {
581 long count ;
582 raw_spinlock_t wait_lock ;
583 struct list_head wait_list ;
584 struct lockdep_map dep_map ;
585};
586#line 128 "include/linux/rwsem.h"
587struct completion {
588 unsigned int done ;
589 wait_queue_head_t wait ;
590};
591#line 188 "include/linux/rcupdate.h"
592struct notifier_block;
593#line 188
594struct notifier_block;
595#line 239 "include/linux/srcu.h"
596struct notifier_block {
597 int (*notifier_call)(struct notifier_block * , unsigned long , void * ) ;
598 struct notifier_block *next ;
599 int priority ;
600};
601#line 312 "include/linux/jiffies.h"
602union ktime {
603 s64 tv64 ;
604};
605#line 59 "include/linux/ktime.h"
606typedef union ktime ktime_t;
607#line 341
608struct tvec_base;
609#line 341
610struct tvec_base;
611#line 342 "include/linux/ktime.h"
612struct timer_list {
613 struct list_head entry ;
614 unsigned long expires ;
615 struct tvec_base *base ;
616 void (*function)(unsigned long ) ;
617 unsigned long data ;
618 int slack ;
619 int start_pid ;
620 void *start_site ;
621 char start_comm[16U] ;
622 struct lockdep_map lockdep_map ;
623};
624#line 289 "include/linux/timer.h"
625struct hrtimer;
626#line 289
627struct hrtimer;
628#line 290
629enum hrtimer_restart;
630#line 302
631struct work_struct;
632#line 302
633struct work_struct;
634#line 45 "include/linux/workqueue.h"
635struct work_struct {
636 atomic_long_t data ;
637 struct list_head entry ;
638 void (*func)(struct work_struct * ) ;
639 struct lockdep_map lockdep_map ;
640};
641#line 46 "include/linux/pm.h"
642struct pm_message {
643 int event ;
644};
645#line 52 "include/linux/pm.h"
646typedef struct pm_message pm_message_t;
647#line 53 "include/linux/pm.h"
648struct dev_pm_ops {
649 int (*prepare)(struct device * ) ;
650 void (*complete)(struct device * ) ;
651 int (*suspend)(struct device * ) ;
652 int (*resume)(struct device * ) ;
653 int (*freeze)(struct device * ) ;
654 int (*thaw)(struct device * ) ;
655 int (*poweroff)(struct device * ) ;
656 int (*restore)(struct device * ) ;
657 int (*suspend_late)(struct device * ) ;
658 int (*resume_early)(struct device * ) ;
659 int (*freeze_late)(struct device * ) ;
660 int (*thaw_early)(struct device * ) ;
661 int (*poweroff_late)(struct device * ) ;
662 int (*restore_early)(struct device * ) ;
663 int (*suspend_noirq)(struct device * ) ;
664 int (*resume_noirq)(struct device * ) ;
665 int (*freeze_noirq)(struct device * ) ;
666 int (*thaw_noirq)(struct device * ) ;
667 int (*poweroff_noirq)(struct device * ) ;
668 int (*restore_noirq)(struct device * ) ;
669 int (*runtime_suspend)(struct device * ) ;
670 int (*runtime_resume)(struct device * ) ;
671 int (*runtime_idle)(struct device * ) ;
672};
673#line 289
674enum rpm_status {
675 RPM_ACTIVE = 0,
676 RPM_RESUMING = 1,
677 RPM_SUSPENDED = 2,
678 RPM_SUSPENDING = 3
679} ;
680#line 296
681enum rpm_request {
682 RPM_REQ_NONE = 0,
683 RPM_REQ_IDLE = 1,
684 RPM_REQ_SUSPEND = 2,
685 RPM_REQ_AUTOSUSPEND = 3,
686 RPM_REQ_RESUME = 4
687} ;
688#line 304
689struct wakeup_source;
690#line 304
691struct wakeup_source;
692#line 494 "include/linux/pm.h"
693struct pm_subsys_data {
694 spinlock_t lock ;
695 unsigned int refcount ;
696};
697#line 499
698struct dev_pm_qos_request;
699#line 499
700struct pm_qos_constraints;
701#line 499 "include/linux/pm.h"
702struct dev_pm_info {
703 pm_message_t power_state ;
704 unsigned char can_wakeup : 1 ;
705 unsigned char async_suspend : 1 ;
706 bool is_prepared ;
707 bool is_suspended ;
708 bool ignore_children ;
709 spinlock_t lock ;
710 struct list_head entry ;
711 struct completion completion ;
712 struct wakeup_source *wakeup ;
713 bool wakeup_path ;
714 struct timer_list suspend_timer ;
715 unsigned long timer_expires ;
716 struct work_struct work ;
717 wait_queue_head_t wait_queue ;
718 atomic_t usage_count ;
719 atomic_t child_count ;
720 unsigned char disable_depth : 3 ;
721 unsigned char idle_notification : 1 ;
722 unsigned char request_pending : 1 ;
723 unsigned char deferred_resume : 1 ;
724 unsigned char run_wake : 1 ;
725 unsigned char runtime_auto : 1 ;
726 unsigned char no_callbacks : 1 ;
727 unsigned char irq_safe : 1 ;
728 unsigned char use_autosuspend : 1 ;
729 unsigned char timer_autosuspends : 1 ;
730 enum rpm_request request ;
731 enum rpm_status runtime_status ;
732 int runtime_error ;
733 int autosuspend_delay ;
734 unsigned long last_busy ;
735 unsigned long active_jiffies ;
736 unsigned long suspended_jiffies ;
737 unsigned long accounting_timestamp ;
738 ktime_t suspend_time ;
739 s64 max_time_suspended_ns ;
740 struct dev_pm_qos_request *pq_req ;
741 struct pm_subsys_data *subsys_data ;
742 struct pm_qos_constraints *constraints ;
743};
744#line 558 "include/linux/pm.h"
745struct dev_pm_domain {
746 struct dev_pm_ops ops ;
747};
748#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
749struct __anonstruct_mm_context_t_101 {
750 void *ldt ;
751 int size ;
752 unsigned short ia32_compat ;
753 struct mutex lock ;
754 void *vdso ;
755};
756#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
757typedef struct __anonstruct_mm_context_t_101 mm_context_t;
758#line 18 "include/asm-generic/pci_iomap.h"
759struct vm_area_struct;
760#line 18
761struct vm_area_struct;
762#line 835 "include/linux/sysctl.h"
763struct rb_node {
764 unsigned long rb_parent_color ;
765 struct rb_node *rb_right ;
766 struct rb_node *rb_left ;
767};
768#line 108 "include/linux/rbtree.h"
769struct rb_root {
770 struct rb_node *rb_node ;
771};
772#line 176
773struct nsproxy;
774#line 176
775struct nsproxy;
776#line 37 "include/linux/kmod.h"
777struct cred;
778#line 37
779struct cred;
780#line 18 "include/linux/elf.h"
781typedef __u64 Elf64_Addr;
782#line 19 "include/linux/elf.h"
783typedef __u16 Elf64_Half;
784#line 23 "include/linux/elf.h"
785typedef __u32 Elf64_Word;
786#line 24 "include/linux/elf.h"
787typedef __u64 Elf64_Xword;
788#line 193 "include/linux/elf.h"
789struct elf64_sym {
790 Elf64_Word st_name ;
791 unsigned char st_info ;
792 unsigned char st_other ;
793 Elf64_Half st_shndx ;
794 Elf64_Addr st_value ;
795 Elf64_Xword st_size ;
796};
797#line 201 "include/linux/elf.h"
798typedef struct elf64_sym Elf64_Sym;
799#line 445
800struct sock;
801#line 445
802struct sock;
803#line 446
804struct kobject;
805#line 446
806struct kobject;
807#line 447
808enum kobj_ns_type {
809 KOBJ_NS_TYPE_NONE = 0,
810 KOBJ_NS_TYPE_NET = 1,
811 KOBJ_NS_TYPES = 2
812} ;
813#line 453 "include/linux/elf.h"
814struct kobj_ns_type_operations {
815 enum kobj_ns_type type ;
816 void *(*grab_current_ns)(void) ;
817 void const *(*netlink_ns)(struct sock * ) ;
818 void const *(*initial_ns)(void) ;
819 void (*drop_ns)(void * ) ;
820};
821#line 57 "include/linux/kobject_ns.h"
822struct attribute {
823 char const *name ;
824 umode_t mode ;
825 struct lock_class_key *key ;
826 struct lock_class_key skey ;
827};
828#line 33 "include/linux/sysfs.h"
829struct attribute_group {
830 char const *name ;
831 umode_t (*is_visible)(struct kobject * , struct attribute * , int ) ;
832 struct attribute **attrs ;
833};
834#line 62 "include/linux/sysfs.h"
835struct bin_attribute {
836 struct attribute attr ;
837 size_t size ;
838 void *private ;
839 ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
840 loff_t , size_t ) ;
841 ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
842 loff_t , size_t ) ;
843 int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
844};
845#line 98 "include/linux/sysfs.h"
846struct sysfs_ops {
847 ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
848 ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ;
849 void const *(*namespace)(struct kobject * , struct attribute const * ) ;
850};
851#line 117
852struct sysfs_dirent;
853#line 117
854struct sysfs_dirent;
855#line 182 "include/linux/sysfs.h"
856struct kref {
857 atomic_t refcount ;
858};
859#line 49 "include/linux/kobject.h"
860struct kset;
861#line 49
862struct kobj_type;
863#line 49 "include/linux/kobject.h"
864struct kobject {
865 char const *name ;
866 struct list_head entry ;
867 struct kobject *parent ;
868 struct kset *kset ;
869 struct kobj_type *ktype ;
870 struct sysfs_dirent *sd ;
871 struct kref kref ;
872 unsigned char state_initialized : 1 ;
873 unsigned char state_in_sysfs : 1 ;
874 unsigned char state_add_uevent_sent : 1 ;
875 unsigned char state_remove_uevent_sent : 1 ;
876 unsigned char uevent_suppress : 1 ;
877};
878#line 107 "include/linux/kobject.h"
879struct kobj_type {
880 void (*release)(struct kobject * ) ;
881 struct sysfs_ops const *sysfs_ops ;
882 struct attribute **default_attrs ;
883 struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject * ) ;
884 void const *(*namespace)(struct kobject * ) ;
885};
886#line 115 "include/linux/kobject.h"
887struct kobj_uevent_env {
888 char *envp[32U] ;
889 int envp_idx ;
890 char buf[2048U] ;
891 int buflen ;
892};
893#line 122 "include/linux/kobject.h"
894struct kset_uevent_ops {
895 int (* const filter)(struct kset * , struct kobject * ) ;
896 char const *(* const name)(struct kset * , struct kobject * ) ;
897 int (* const uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
898};
899#line 139 "include/linux/kobject.h"
900struct kset {
901 struct list_head list ;
902 spinlock_t list_lock ;
903 struct kobject kobj ;
904 struct kset_uevent_ops const *uevent_ops ;
905};
906#line 215
907struct kernel_param;
908#line 215
909struct kernel_param;
910#line 216 "include/linux/kobject.h"
911struct kernel_param_ops {
912 int (*set)(char const * , struct kernel_param const * ) ;
913 int (*get)(char * , struct kernel_param const * ) ;
914 void (*free)(void * ) ;
915};
916#line 49 "include/linux/moduleparam.h"
917struct kparam_string;
918#line 49
919struct kparam_array;
920#line 49 "include/linux/moduleparam.h"
921union __anonunion_ldv_13363_134 {
922 void *arg ;
923 struct kparam_string const *str ;
924 struct kparam_array const *arr ;
925};
926#line 49 "include/linux/moduleparam.h"
927struct kernel_param {
928 char const *name ;
929 struct kernel_param_ops const *ops ;
930 u16 perm ;
931 s16 level ;
932 union __anonunion_ldv_13363_134 ldv_13363 ;
933};
934#line 61 "include/linux/moduleparam.h"
935struct kparam_string {
936 unsigned int maxlen ;
937 char *string ;
938};
939#line 67 "include/linux/moduleparam.h"
940struct kparam_array {
941 unsigned int max ;
942 unsigned int elemsize ;
943 unsigned int *num ;
944 struct kernel_param_ops const *ops ;
945 void *elem ;
946};
947#line 458 "include/linux/moduleparam.h"
948struct static_key {
949 atomic_t enabled ;
950};
951#line 225 "include/linux/jump_label.h"
952struct tracepoint;
953#line 225
954struct tracepoint;
955#line 226 "include/linux/jump_label.h"
956struct tracepoint_func {
957 void *func ;
958 void *data ;
959};
960#line 29 "include/linux/tracepoint.h"
961struct tracepoint {
962 char const *name ;
963 struct static_key key ;
964 void (*regfunc)(void) ;
965 void (*unregfunc)(void) ;
966 struct tracepoint_func *funcs ;
967};
968#line 86 "include/linux/tracepoint.h"
969struct kernel_symbol {
970 unsigned long value ;
971 char const *name ;
972};
973#line 27 "include/linux/export.h"
974struct mod_arch_specific {
975
976};
977#line 34 "include/linux/module.h"
978struct module_param_attrs;
979#line 34 "include/linux/module.h"
980struct module_kobject {
981 struct kobject kobj ;
982 struct module *mod ;
983 struct kobject *drivers_dir ;
984 struct module_param_attrs *mp ;
985};
986#line 43 "include/linux/module.h"
987struct module_attribute {
988 struct attribute attr ;
989 ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
990 ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const * ,
991 size_t ) ;
992 void (*setup)(struct module * , char const * ) ;
993 int (*test)(struct module * ) ;
994 void (*free)(struct module * ) ;
995};
996#line 69
997struct exception_table_entry;
998#line 69
999struct exception_table_entry;
1000#line 198
1001enum module_state {
1002 MODULE_STATE_LIVE = 0,
1003 MODULE_STATE_COMING = 1,
1004 MODULE_STATE_GOING = 2
1005} ;
1006#line 204 "include/linux/module.h"
1007struct module_ref {
1008 unsigned long incs ;
1009 unsigned long decs ;
1010};
1011#line 219
1012struct module_sect_attrs;
1013#line 219
1014struct module_notes_attrs;
1015#line 219
1016struct ftrace_event_call;
1017#line 219 "include/linux/module.h"
1018struct module {
1019 enum module_state state ;
1020 struct list_head list ;
1021 char name[56U] ;
1022 struct module_kobject mkobj ;
1023 struct module_attribute *modinfo_attrs ;
1024 char const *version ;
1025 char const *srcversion ;
1026 struct kobject *holders_dir ;
1027 struct kernel_symbol const *syms ;
1028 unsigned long const *crcs ;
1029 unsigned int num_syms ;
1030 struct kernel_param *kp ;
1031 unsigned int num_kp ;
1032 unsigned int num_gpl_syms ;
1033 struct kernel_symbol const *gpl_syms ;
1034 unsigned long const *gpl_crcs ;
1035 struct kernel_symbol const *unused_syms ;
1036 unsigned long const *unused_crcs ;
1037 unsigned int num_unused_syms ;
1038 unsigned int num_unused_gpl_syms ;
1039 struct kernel_symbol const *unused_gpl_syms ;
1040 unsigned long const *unused_gpl_crcs ;
1041 struct kernel_symbol const *gpl_future_syms ;
1042 unsigned long const *gpl_future_crcs ;
1043 unsigned int num_gpl_future_syms ;
1044 unsigned int num_exentries ;
1045 struct exception_table_entry *extable ;
1046 int (*init)(void) ;
1047 void *module_init ;
1048 void *module_core ;
1049 unsigned int init_size ;
1050 unsigned int core_size ;
1051 unsigned int init_text_size ;
1052 unsigned int core_text_size ;
1053 unsigned int init_ro_size ;
1054 unsigned int core_ro_size ;
1055 struct mod_arch_specific arch ;
1056 unsigned int taints ;
1057 unsigned int num_bugs ;
1058 struct list_head bug_list ;
1059 struct bug_entry *bug_table ;
1060 Elf64_Sym *symtab ;
1061 Elf64_Sym *core_symtab ;
1062 unsigned int num_symtab ;
1063 unsigned int core_num_syms ;
1064 char *strtab ;
1065 char *core_strtab ;
1066 struct module_sect_attrs *sect_attrs ;
1067 struct module_notes_attrs *notes_attrs ;
1068 char *args ;
1069 void *percpu ;
1070 unsigned int percpu_size ;
1071 unsigned int num_tracepoints ;
1072 struct tracepoint * const *tracepoints_ptrs ;
1073 unsigned int num_trace_bprintk_fmt ;
1074 char const **trace_bprintk_fmt_start ;
1075 struct ftrace_event_call **trace_events ;
1076 unsigned int num_trace_events ;
1077 struct list_head source_list ;
1078 struct list_head target_list ;
1079 struct task_struct *waiter ;
1080 void (*exit)(void) ;
1081 struct module_ref *refptr ;
1082 ctor_fn_t (**ctors)(void) ;
1083 unsigned int num_ctors ;
1084};
1085#line 88 "include/linux/kmemleak.h"
1086struct kmem_cache_cpu {
1087 void **freelist ;
1088 unsigned long tid ;
1089 struct page *page ;
1090 struct page *partial ;
1091 int node ;
1092 unsigned int stat[26U] ;
1093};
1094#line 55 "include/linux/slub_def.h"
1095struct kmem_cache_node {
1096 spinlock_t list_lock ;
1097 unsigned long nr_partial ;
1098 struct list_head partial ;
1099 atomic_long_t nr_slabs ;
1100 atomic_long_t total_objects ;
1101 struct list_head full ;
1102};
1103#line 66 "include/linux/slub_def.h"
1104struct kmem_cache_order_objects {
1105 unsigned long x ;
1106};
1107#line 76 "include/linux/slub_def.h"
1108struct kmem_cache {
1109 struct kmem_cache_cpu *cpu_slab ;
1110 unsigned long flags ;
1111 unsigned long min_partial ;
1112 int size ;
1113 int objsize ;
1114 int offset ;
1115 int cpu_partial ;
1116 struct kmem_cache_order_objects oo ;
1117 struct kmem_cache_order_objects max ;
1118 struct kmem_cache_order_objects min ;
1119 gfp_t allocflags ;
1120 int refcount ;
1121 void (*ctor)(void * ) ;
1122 int inuse ;
1123 int align ;
1124 int reserved ;
1125 char const *name ;
1126 struct list_head list ;
1127 struct kobject kobj ;
1128 int remote_node_defrag_ratio ;
1129 struct kmem_cache_node *node[1024U] ;
1130};
1131#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
1132struct exception_table_entry {
1133 unsigned long insn ;
1134 unsigned long fixup ;
1135};
1136#line 21 "include/linux/uio.h"
1137struct kvec {
1138 void *iov_base ;
1139 size_t iov_len ;
1140};
1141#line 54
1142struct klist_node;
1143#line 54
1144struct klist_node;
1145#line 37 "include/linux/klist.h"
1146struct klist_node {
1147 void *n_klist ;
1148 struct list_head n_node ;
1149 struct kref n_ref ;
1150};
1151#line 67
1152struct dma_map_ops;
1153#line 67 "include/linux/klist.h"
1154struct dev_archdata {
1155 void *acpi_handle ;
1156 struct dma_map_ops *dma_ops ;
1157 void *iommu ;
1158};
1159#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1160struct device_private;
1161#line 17
1162struct device_private;
1163#line 18
1164struct device_driver;
1165#line 18
1166struct device_driver;
1167#line 19
1168struct driver_private;
1169#line 19
1170struct driver_private;
1171#line 20
1172struct class;
1173#line 20
1174struct class;
1175#line 21
1176struct subsys_private;
1177#line 21
1178struct subsys_private;
1179#line 22
1180struct bus_type;
1181#line 22
1182struct bus_type;
1183#line 23
1184struct device_node;
1185#line 23
1186struct device_node;
1187#line 24
1188struct iommu_ops;
1189#line 24
1190struct iommu_ops;
1191#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1192struct bus_attribute {
1193 struct attribute attr ;
1194 ssize_t (*show)(struct bus_type * , char * ) ;
1195 ssize_t (*store)(struct bus_type * , char const * , size_t ) ;
1196};
1197#line 51 "include/linux/device.h"
1198struct device_attribute;
1199#line 51
1200struct driver_attribute;
1201#line 51 "include/linux/device.h"
1202struct bus_type {
1203 char const *name ;
1204 char const *dev_name ;
1205 struct device *dev_root ;
1206 struct bus_attribute *bus_attrs ;
1207 struct device_attribute *dev_attrs ;
1208 struct driver_attribute *drv_attrs ;
1209 int (*match)(struct device * , struct device_driver * ) ;
1210 int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1211 int (*probe)(struct device * ) ;
1212 int (*remove)(struct device * ) ;
1213 void (*shutdown)(struct device * ) ;
1214 int (*suspend)(struct device * , pm_message_t ) ;
1215 int (*resume)(struct device * ) ;
1216 struct dev_pm_ops const *pm ;
1217 struct iommu_ops *iommu_ops ;
1218 struct subsys_private *p ;
1219};
1220#line 125
1221struct device_type;
1222#line 182
1223struct of_device_id;
1224#line 182 "include/linux/device.h"
1225struct device_driver {
1226 char const *name ;
1227 struct bus_type *bus ;
1228 struct module *owner ;
1229 char const *mod_name ;
1230 bool suppress_bind_attrs ;
1231 struct of_device_id const *of_match_table ;
1232 int (*probe)(struct device * ) ;
1233 int (*remove)(struct device * ) ;
1234 void (*shutdown)(struct device * ) ;
1235 int (*suspend)(struct device * , pm_message_t ) ;
1236 int (*resume)(struct device * ) ;
1237 struct attribute_group const **groups ;
1238 struct dev_pm_ops const *pm ;
1239 struct driver_private *p ;
1240};
1241#line 245 "include/linux/device.h"
1242struct driver_attribute {
1243 struct attribute attr ;
1244 ssize_t (*show)(struct device_driver * , char * ) ;
1245 ssize_t (*store)(struct device_driver * , char const * , size_t ) ;
1246};
1247#line 299
1248struct class_attribute;
1249#line 299 "include/linux/device.h"
1250struct class {
1251 char const *name ;
1252 struct module *owner ;
1253 struct class_attribute *class_attrs ;
1254 struct device_attribute *dev_attrs ;
1255 struct bin_attribute *dev_bin_attrs ;
1256 struct kobject *dev_kobj ;
1257 int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1258 char *(*devnode)(struct device * , umode_t * ) ;
1259 void (*class_release)(struct class * ) ;
1260 void (*dev_release)(struct device * ) ;
1261 int (*suspend)(struct device * , pm_message_t ) ;
1262 int (*resume)(struct device * ) ;
1263 struct kobj_ns_type_operations const *ns_type ;
1264 void const *(*namespace)(struct device * ) ;
1265 struct dev_pm_ops const *pm ;
1266 struct subsys_private *p ;
1267};
1268#line 394 "include/linux/device.h"
1269struct class_attribute {
1270 struct attribute attr ;
1271 ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1272 ssize_t (*store)(struct class * , struct class_attribute * , char const * , size_t ) ;
1273 void const *(*namespace)(struct class * , struct class_attribute const * ) ;
1274};
1275#line 447 "include/linux/device.h"
1276struct device_type {
1277 char const *name ;
1278 struct attribute_group const **groups ;
1279 int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1280 char *(*devnode)(struct device * , umode_t * ) ;
1281 void (*release)(struct device * ) ;
1282 struct dev_pm_ops const *pm ;
1283};
1284#line 474 "include/linux/device.h"
1285struct device_attribute {
1286 struct attribute attr ;
1287 ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1288 ssize_t (*store)(struct device * , struct device_attribute * , char const * ,
1289 size_t ) ;
1290};
1291#line 557 "include/linux/device.h"
1292struct device_dma_parameters {
1293 unsigned int max_segment_size ;
1294 unsigned long segment_boundary_mask ;
1295};
1296#line 567
1297struct dma_coherent_mem;
1298#line 567 "include/linux/device.h"
1299struct device {
1300 struct device *parent ;
1301 struct device_private *p ;
1302 struct kobject kobj ;
1303 char const *init_name ;
1304 struct device_type const *type ;
1305 struct mutex mutex ;
1306 struct bus_type *bus ;
1307 struct device_driver *driver ;
1308 void *platform_data ;
1309 struct dev_pm_info power ;
1310 struct dev_pm_domain *pm_domain ;
1311 int numa_node ;
1312 u64 *dma_mask ;
1313 u64 coherent_dma_mask ;
1314 struct device_dma_parameters *dma_parms ;
1315 struct list_head dma_pools ;
1316 struct dma_coherent_mem *dma_mem ;
1317 struct dev_archdata archdata ;
1318 struct device_node *of_node ;
1319 dev_t devt ;
1320 u32 id ;
1321 spinlock_t devres_lock ;
1322 struct list_head devres_head ;
1323 struct klist_node knode_class ;
1324 struct class *class ;
1325 struct attribute_group const **groups ;
1326 void (*release)(struct device * ) ;
1327};
1328#line 681 "include/linux/device.h"
1329struct wakeup_source {
1330 char const *name ;
1331 struct list_head entry ;
1332 spinlock_t lock ;
1333 struct timer_list timer ;
1334 unsigned long timer_expires ;
1335 ktime_t total_time ;
1336 ktime_t max_time ;
1337 ktime_t last_time ;
1338 unsigned long event_count ;
1339 unsigned long active_count ;
1340 unsigned long relax_count ;
1341 unsigned long hit_count ;
1342 unsigned char active : 1 ;
1343};
1344#line 142 "include/mtd/mtd-abi.h"
1345struct otp_info {
1346 __u32 start ;
1347 __u32 length ;
1348 __u32 locked ;
1349};
1350#line 216 "include/mtd/mtd-abi.h"
1351struct nand_oobfree {
1352 __u32 offset ;
1353 __u32 length ;
1354};
1355#line 238 "include/mtd/mtd-abi.h"
1356struct mtd_ecc_stats {
1357 __u32 corrected ;
1358 __u32 failed ;
1359 __u32 badblocks ;
1360 __u32 bbtblocks ;
1361};
1362#line 260
1363struct mtd_info;
1364#line 260 "include/mtd/mtd-abi.h"
1365struct erase_info {
1366 struct mtd_info *mtd ;
1367 uint64_t addr ;
1368 uint64_t len ;
1369 uint64_t fail_addr ;
1370 u_long time ;
1371 u_long retries ;
1372 unsigned int dev ;
1373 unsigned int cell ;
1374 void (*callback)(struct erase_info * ) ;
1375 u_long priv ;
1376 u_char state ;
1377 struct erase_info *next ;
1378};
1379#line 62 "include/linux/mtd/mtd.h"
1380struct mtd_erase_region_info {
1381 uint64_t offset ;
1382 uint32_t erasesize ;
1383 uint32_t numblocks ;
1384 unsigned long *lockmap ;
1385};
1386#line 69 "include/linux/mtd/mtd.h"
1387struct mtd_oob_ops {
1388 unsigned int mode ;
1389 size_t len ;
1390 size_t retlen ;
1391 size_t ooblen ;
1392 size_t oobretlen ;
1393 uint32_t ooboffs ;
1394 uint8_t *datbuf ;
1395 uint8_t *oobbuf ;
1396};
1397#line 99 "include/linux/mtd/mtd.h"
1398struct nand_ecclayout {
1399 __u32 eccbytes ;
1400 __u32 eccpos[448U] ;
1401 __u32 oobavail ;
1402 struct nand_oobfree oobfree[32U] ;
1403};
1404#line 114
1405struct backing_dev_info;
1406#line 114 "include/linux/mtd/mtd.h"
1407struct mtd_info {
1408 u_char type ;
1409 uint32_t flags ;
1410 uint64_t size ;
1411 uint32_t erasesize ;
1412 uint32_t writesize ;
1413 uint32_t writebufsize ;
1414 uint32_t oobsize ;
1415 uint32_t oobavail ;
1416 unsigned int erasesize_shift ;
1417 unsigned int writesize_shift ;
1418 unsigned int erasesize_mask ;
1419 unsigned int writesize_mask ;
1420 char const *name ;
1421 int index ;
1422 struct nand_ecclayout *ecclayout ;
1423 unsigned int ecc_strength ;
1424 int numeraseregions ;
1425 struct mtd_erase_region_info *eraseregions ;
1426 int (*_erase)(struct mtd_info * , struct erase_info * ) ;
1427 int (*_point)(struct mtd_info * , loff_t , size_t , size_t * , void ** , resource_size_t * ) ;
1428 int (*_unpoint)(struct mtd_info * , loff_t , size_t ) ;
1429 unsigned long (*_get_unmapped_area)(struct mtd_info * , unsigned long , unsigned long ,
1430 unsigned long ) ;
1431 int (*_read)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1432 int (*_write)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
1433 int (*_panic_write)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ) ;
1434 int (*_read_oob)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
1435 int (*_write_oob)(struct mtd_info * , loff_t , struct mtd_oob_ops * ) ;
1436 int (*_get_fact_prot_info)(struct mtd_info * , struct otp_info * , size_t ) ;
1437 int (*_read_fact_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1438 int (*_get_user_prot_info)(struct mtd_info * , struct otp_info * , size_t ) ;
1439 int (*_read_user_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ) ;
1440 int (*_write_user_prot_reg)(struct mtd_info * , loff_t , size_t , size_t * ,
1441 u_char * ) ;
1442 int (*_lock_user_prot_reg)(struct mtd_info * , loff_t , size_t ) ;
1443 int (*_writev)(struct mtd_info * , struct kvec const * , unsigned long , loff_t ,
1444 size_t * ) ;
1445 void (*_sync)(struct mtd_info * ) ;
1446 int (*_lock)(struct mtd_info * , loff_t , uint64_t ) ;
1447 int (*_unlock)(struct mtd_info * , loff_t , uint64_t ) ;
1448 int (*_is_locked)(struct mtd_info * , loff_t , uint64_t ) ;
1449 int (*_block_isbad)(struct mtd_info * , loff_t ) ;
1450 int (*_block_markbad)(struct mtd_info * , loff_t ) ;
1451 int (*_suspend)(struct mtd_info * ) ;
1452 void (*_resume)(struct mtd_info * ) ;
1453 int (*_get_device)(struct mtd_info * ) ;
1454 void (*_put_device)(struct mtd_info * ) ;
1455 struct backing_dev_info *backing_dev_info ;
1456 struct notifier_block reboot_notifier ;
1457 struct mtd_ecc_stats ecc_stats ;
1458 int subpage_sft ;
1459 void *priv ;
1460 struct module *owner ;
1461 struct device dev ;
1462 int usecount ;
1463};
1464#line 356
1465struct mtd_partition;
1466#line 356
1467struct mtd_partition;
1468#line 357
1469struct mtd_part_parser_data;
1470#line 357
1471struct mtd_part_parser_data;
1472#line 93 "include/linux/capability.h"
1473struct kernel_cap_struct {
1474 __u32 cap[2U] ;
1475};
1476#line 96 "include/linux/capability.h"
1477typedef struct kernel_cap_struct kernel_cap_t;
1478#line 105
1479struct user_namespace;
1480#line 105
1481struct user_namespace;
1482#line 554
1483struct prio_tree_node;
1484#line 554 "include/linux/capability.h"
1485struct raw_prio_tree_node {
1486 struct prio_tree_node *left ;
1487 struct prio_tree_node *right ;
1488 struct prio_tree_node *parent ;
1489};
1490#line 19 "include/linux/prio_tree.h"
1491struct prio_tree_node {
1492 struct prio_tree_node *left ;
1493 struct prio_tree_node *right ;
1494 struct prio_tree_node *parent ;
1495 unsigned long start ;
1496 unsigned long last ;
1497};
1498#line 116
1499struct address_space;
1500#line 116
1501struct address_space;
1502#line 117 "include/linux/prio_tree.h"
1503union __anonunion_ldv_15734_137 {
1504 unsigned long index ;
1505 void *freelist ;
1506};
1507#line 117 "include/linux/prio_tree.h"
1508struct __anonstruct_ldv_15744_141 {
1509 unsigned short inuse ;
1510 unsigned short objects : 15 ;
1511 unsigned char frozen : 1 ;
1512};
1513#line 117 "include/linux/prio_tree.h"
1514union __anonunion_ldv_15745_140 {
1515 atomic_t _mapcount ;
1516 struct __anonstruct_ldv_15744_141 ldv_15744 ;
1517};
1518#line 117 "include/linux/prio_tree.h"
1519struct __anonstruct_ldv_15747_139 {
1520 union __anonunion_ldv_15745_140 ldv_15745 ;
1521 atomic_t _count ;
1522};
1523#line 117 "include/linux/prio_tree.h"
1524union __anonunion_ldv_15748_138 {
1525 unsigned long counters ;
1526 struct __anonstruct_ldv_15747_139 ldv_15747 ;
1527};
1528#line 117 "include/linux/prio_tree.h"
1529struct __anonstruct_ldv_15749_136 {
1530 union __anonunion_ldv_15734_137 ldv_15734 ;
1531 union __anonunion_ldv_15748_138 ldv_15748 ;
1532};
1533#line 117 "include/linux/prio_tree.h"
1534struct __anonstruct_ldv_15756_143 {
1535 struct page *next ;
1536 int pages ;
1537 int pobjects ;
1538};
1539#line 117 "include/linux/prio_tree.h"
1540union __anonunion_ldv_15757_142 {
1541 struct list_head lru ;
1542 struct __anonstruct_ldv_15756_143 ldv_15756 ;
1543};
1544#line 117 "include/linux/prio_tree.h"
1545union __anonunion_ldv_15762_144 {
1546 unsigned long private ;
1547 struct kmem_cache *slab ;
1548 struct page *first_page ;
1549};
1550#line 117 "include/linux/prio_tree.h"
1551struct page {
1552 unsigned long flags ;
1553 struct address_space *mapping ;
1554 struct __anonstruct_ldv_15749_136 ldv_15749 ;
1555 union __anonunion_ldv_15757_142 ldv_15757 ;
1556 union __anonunion_ldv_15762_144 ldv_15762 ;
1557 unsigned long debug_flags ;
1558};
1559#line 192 "include/linux/mm_types.h"
1560struct __anonstruct_vm_set_146 {
1561 struct list_head list ;
1562 void *parent ;
1563 struct vm_area_struct *head ;
1564};
1565#line 192 "include/linux/mm_types.h"
1566union __anonunion_shared_145 {
1567 struct __anonstruct_vm_set_146 vm_set ;
1568 struct raw_prio_tree_node prio_tree_node ;
1569};
1570#line 192
1571struct anon_vma;
1572#line 192
1573struct vm_operations_struct;
1574#line 192
1575struct mempolicy;
1576#line 192 "include/linux/mm_types.h"
1577struct vm_area_struct {
1578 struct mm_struct *vm_mm ;
1579 unsigned long vm_start ;
1580 unsigned long vm_end ;
1581 struct vm_area_struct *vm_next ;
1582 struct vm_area_struct *vm_prev ;
1583 pgprot_t vm_page_prot ;
1584 unsigned long vm_flags ;
1585 struct rb_node vm_rb ;
1586 union __anonunion_shared_145 shared ;
1587 struct list_head anon_vma_chain ;
1588 struct anon_vma *anon_vma ;
1589 struct vm_operations_struct const *vm_ops ;
1590 unsigned long vm_pgoff ;
1591 struct file *vm_file ;
1592 void *vm_private_data ;
1593 struct mempolicy *vm_policy ;
1594};
1595#line 255 "include/linux/mm_types.h"
1596struct core_thread {
1597 struct task_struct *task ;
1598 struct core_thread *next ;
1599};
1600#line 261 "include/linux/mm_types.h"
1601struct core_state {
1602 atomic_t nr_threads ;
1603 struct core_thread dumper ;
1604 struct completion startup ;
1605};
1606#line 274 "include/linux/mm_types.h"
1607struct mm_rss_stat {
1608 atomic_long_t count[3U] ;
1609};
1610#line 287
1611struct linux_binfmt;
1612#line 287
1613struct mmu_notifier_mm;
1614#line 287 "include/linux/mm_types.h"
1615struct mm_struct {
1616 struct vm_area_struct *mmap ;
1617 struct rb_root mm_rb ;
1618 struct vm_area_struct *mmap_cache ;
1619 unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long ,
1620 unsigned long , unsigned long ) ;
1621 void (*unmap_area)(struct mm_struct * , unsigned long ) ;
1622 unsigned long mmap_base ;
1623 unsigned long task_size ;
1624 unsigned long cached_hole_size ;
1625 unsigned long free_area_cache ;
1626 pgd_t *pgd ;
1627 atomic_t mm_users ;
1628 atomic_t mm_count ;
1629 int map_count ;
1630 spinlock_t page_table_lock ;
1631 struct rw_semaphore mmap_sem ;
1632 struct list_head mmlist ;
1633 unsigned long hiwater_rss ;
1634 unsigned long hiwater_vm ;
1635 unsigned long total_vm ;
1636 unsigned long locked_vm ;
1637 unsigned long pinned_vm ;
1638 unsigned long shared_vm ;
1639 unsigned long exec_vm ;
1640 unsigned long stack_vm ;
1641 unsigned long reserved_vm ;
1642 unsigned long def_flags ;
1643 unsigned long nr_ptes ;
1644 unsigned long start_code ;
1645 unsigned long end_code ;
1646 unsigned long start_data ;
1647 unsigned long end_data ;
1648 unsigned long start_brk ;
1649 unsigned long brk ;
1650 unsigned long start_stack ;
1651 unsigned long arg_start ;
1652 unsigned long arg_end ;
1653 unsigned long env_start ;
1654 unsigned long env_end ;
1655 unsigned long saved_auxv[44U] ;
1656 struct mm_rss_stat rss_stat ;
1657 struct linux_binfmt *binfmt ;
1658 cpumask_var_t cpu_vm_mask_var ;
1659 mm_context_t context ;
1660 unsigned int faultstamp ;
1661 unsigned int token_priority ;
1662 unsigned int last_interval ;
1663 unsigned long flags ;
1664 struct core_state *core_state ;
1665 spinlock_t ioctx_lock ;
1666 struct hlist_head ioctx_list ;
1667 struct task_struct *owner ;
1668 struct file *exe_file ;
1669 unsigned long num_exe_file_vmas ;
1670 struct mmu_notifier_mm *mmu_notifier_mm ;
1671 pgtable_t pmd_huge_pte ;
1672 struct cpumask cpumask_allocation ;
1673};
1674#line 7 "include/asm-generic/cputime.h"
1675typedef unsigned long cputime_t;
1676#line 98 "include/linux/sem.h"
1677struct sem_undo_list;
1678#line 98 "include/linux/sem.h"
1679struct sysv_sem {
1680 struct sem_undo_list *undo_list ;
1681};
1682#line 107
1683struct siginfo;
1684#line 107
1685struct siginfo;
1686#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1687struct __anonstruct_sigset_t_147 {
1688 unsigned long sig[1U] ;
1689};
1690#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1691typedef struct __anonstruct_sigset_t_147 sigset_t;
1692#line 17 "include/asm-generic/signal-defs.h"
1693typedef void __signalfn_t(int );
1694#line 18 "include/asm-generic/signal-defs.h"
1695typedef __signalfn_t *__sighandler_t;
1696#line 20 "include/asm-generic/signal-defs.h"
1697typedef void __restorefn_t(void);
1698#line 21 "include/asm-generic/signal-defs.h"
1699typedef __restorefn_t *__sigrestore_t;
1700#line 126 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1701struct sigaction {
1702 __sighandler_t sa_handler ;
1703 unsigned long sa_flags ;
1704 __sigrestore_t sa_restorer ;
1705 sigset_t sa_mask ;
1706};
1707#line 173 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1708struct k_sigaction {
1709 struct sigaction sa ;
1710};
1711#line 185 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1712union sigval {
1713 int sival_int ;
1714 void *sival_ptr ;
1715};
1716#line 10 "include/asm-generic/siginfo.h"
1717typedef union sigval sigval_t;
1718#line 11 "include/asm-generic/siginfo.h"
1719struct __anonstruct__kill_149 {
1720 __kernel_pid_t _pid ;
1721 __kernel_uid32_t _uid ;
1722};
1723#line 11 "include/asm-generic/siginfo.h"
1724struct __anonstruct__timer_150 {
1725 __kernel_timer_t _tid ;
1726 int _overrun ;
1727 char _pad[0U] ;
1728 sigval_t _sigval ;
1729 int _sys_private ;
1730};
1731#line 11 "include/asm-generic/siginfo.h"
1732struct __anonstruct__rt_151 {
1733 __kernel_pid_t _pid ;
1734 __kernel_uid32_t _uid ;
1735 sigval_t _sigval ;
1736};
1737#line 11 "include/asm-generic/siginfo.h"
1738struct __anonstruct__sigchld_152 {
1739 __kernel_pid_t _pid ;
1740 __kernel_uid32_t _uid ;
1741 int _status ;
1742 __kernel_clock_t _utime ;
1743 __kernel_clock_t _stime ;
1744};
1745#line 11 "include/asm-generic/siginfo.h"
1746struct __anonstruct__sigfault_153 {
1747 void *_addr ;
1748 short _addr_lsb ;
1749};
1750#line 11 "include/asm-generic/siginfo.h"
1751struct __anonstruct__sigpoll_154 {
1752 long _band ;
1753 int _fd ;
1754};
1755#line 11 "include/asm-generic/siginfo.h"
1756union __anonunion__sifields_148 {
1757 int _pad[28U] ;
1758 struct __anonstruct__kill_149 _kill ;
1759 struct __anonstruct__timer_150 _timer ;
1760 struct __anonstruct__rt_151 _rt ;
1761 struct __anonstruct__sigchld_152 _sigchld ;
1762 struct __anonstruct__sigfault_153 _sigfault ;
1763 struct __anonstruct__sigpoll_154 _sigpoll ;
1764};
1765#line 11 "include/asm-generic/siginfo.h"
1766struct siginfo {
1767 int si_signo ;
1768 int si_errno ;
1769 int si_code ;
1770 union __anonunion__sifields_148 _sifields ;
1771};
1772#line 102 "include/asm-generic/siginfo.h"
1773typedef struct siginfo siginfo_t;
1774#line 14 "include/linux/signal.h"
1775struct user_struct;
1776#line 24 "include/linux/signal.h"
1777struct sigpending {
1778 struct list_head list ;
1779 sigset_t signal ;
1780};
1781#line 395
1782struct pid_namespace;
1783#line 395 "include/linux/signal.h"
1784struct upid {
1785 int nr ;
1786 struct pid_namespace *ns ;
1787 struct hlist_node pid_chain ;
1788};
1789#line 56 "include/linux/pid.h"
1790struct pid {
1791 atomic_t count ;
1792 unsigned int level ;
1793 struct hlist_head tasks[3U] ;
1794 struct rcu_head rcu ;
1795 struct upid numbers[1U] ;
1796};
1797#line 68 "include/linux/pid.h"
1798struct pid_link {
1799 struct hlist_node node ;
1800 struct pid *pid ;
1801};
1802#line 10 "include/linux/seccomp.h"
1803struct __anonstruct_seccomp_t_157 {
1804 int mode ;
1805};
1806#line 10 "include/linux/seccomp.h"
1807typedef struct __anonstruct_seccomp_t_157 seccomp_t;
1808#line 427 "include/linux/rculist.h"
1809struct plist_head {
1810 struct list_head node_list ;
1811};
1812#line 84 "include/linux/plist.h"
1813struct plist_node {
1814 int prio ;
1815 struct list_head prio_list ;
1816 struct list_head node_list ;
1817};
1818#line 38 "include/linux/rtmutex.h"
1819struct rt_mutex_waiter;
1820#line 38
1821struct rt_mutex_waiter;
1822#line 41 "include/linux/resource.h"
1823struct rlimit {
1824 unsigned long rlim_cur ;
1825 unsigned long rlim_max ;
1826};
1827#line 85 "include/linux/resource.h"
1828struct timerqueue_node {
1829 struct rb_node node ;
1830 ktime_t expires ;
1831};
1832#line 12 "include/linux/timerqueue.h"
1833struct timerqueue_head {
1834 struct rb_root head ;
1835 struct timerqueue_node *next ;
1836};
1837#line 50
1838struct hrtimer_clock_base;
1839#line 50
1840struct hrtimer_clock_base;
1841#line 51
1842struct hrtimer_cpu_base;
1843#line 51
1844struct hrtimer_cpu_base;
1845#line 60
1846enum hrtimer_restart {
1847 HRTIMER_NORESTART = 0,
1848 HRTIMER_RESTART = 1
1849} ;
1850#line 65 "include/linux/timerqueue.h"
1851struct hrtimer {
1852 struct timerqueue_node node ;
1853 ktime_t _softexpires ;
1854 enum hrtimer_restart (*function)(struct hrtimer * ) ;
1855 struct hrtimer_clock_base *base ;
1856 unsigned long state ;
1857 int start_pid ;
1858 void *start_site ;
1859 char start_comm[16U] ;
1860};
1861#line 132 "include/linux/hrtimer.h"
1862struct hrtimer_clock_base {
1863 struct hrtimer_cpu_base *cpu_base ;
1864 int index ;
1865 clockid_t clockid ;
1866 struct timerqueue_head active ;
1867 ktime_t resolution ;
1868 ktime_t (*get_time)(void) ;
1869 ktime_t softirq_time ;
1870 ktime_t offset ;
1871};
1872#line 162 "include/linux/hrtimer.h"
1873struct hrtimer_cpu_base {
1874 raw_spinlock_t lock ;
1875 unsigned long active_bases ;
1876 ktime_t expires_next ;
1877 int hres_active ;
1878 int hang_detected ;
1879 unsigned long nr_events ;
1880 unsigned long nr_retries ;
1881 unsigned long nr_hangs ;
1882 ktime_t max_hang_time ;
1883 struct hrtimer_clock_base clock_base[3U] ;
1884};
1885#line 452 "include/linux/hrtimer.h"
1886struct task_io_accounting {
1887 u64 rchar ;
1888 u64 wchar ;
1889 u64 syscr ;
1890 u64 syscw ;
1891 u64 read_bytes ;
1892 u64 write_bytes ;
1893 u64 cancelled_write_bytes ;
1894};
1895#line 45 "include/linux/task_io_accounting.h"
1896struct latency_record {
1897 unsigned long backtrace[12U] ;
1898 unsigned int count ;
1899 unsigned long time ;
1900 unsigned long max ;
1901};
1902#line 29 "include/linux/key.h"
1903typedef int32_t key_serial_t;
1904#line 32 "include/linux/key.h"
1905typedef uint32_t key_perm_t;
1906#line 33
1907struct key;
1908#line 33
1909struct key;
1910#line 34
1911struct signal_struct;
1912#line 34
1913struct signal_struct;
1914#line 35
1915struct key_type;
1916#line 35
1917struct key_type;
1918#line 37
1919struct keyring_list;
1920#line 37
1921struct keyring_list;
1922#line 115
1923struct key_user;
1924#line 115 "include/linux/key.h"
1925union __anonunion_ldv_16998_158 {
1926 time_t expiry ;
1927 time_t revoked_at ;
1928};
1929#line 115 "include/linux/key.h"
1930union __anonunion_type_data_159 {
1931 struct list_head link ;
1932 unsigned long x[2U] ;
1933 void *p[2U] ;
1934 int reject_error ;
1935};
1936#line 115 "include/linux/key.h"
1937union __anonunion_payload_160 {
1938 unsigned long value ;
1939 void *rcudata ;
1940 void *data ;
1941 struct keyring_list *subscriptions ;
1942};
1943#line 115 "include/linux/key.h"
1944struct key {
1945 atomic_t usage ;
1946 key_serial_t serial ;
1947 struct rb_node serial_node ;
1948 struct key_type *type ;
1949 struct rw_semaphore sem ;
1950 struct key_user *user ;
1951 void *security ;
1952 union __anonunion_ldv_16998_158 ldv_16998 ;
1953 uid_t uid ;
1954 gid_t gid ;
1955 key_perm_t perm ;
1956 unsigned short quotalen ;
1957 unsigned short datalen ;
1958 unsigned long flags ;
1959 char *description ;
1960 union __anonunion_type_data_159 type_data ;
1961 union __anonunion_payload_160 payload ;
1962};
1963#line 316
1964struct audit_context;
1965#line 316
1966struct audit_context;
1967#line 28 "include/linux/selinux.h"
1968struct group_info {
1969 atomic_t usage ;
1970 int ngroups ;
1971 int nblocks ;
1972 gid_t small_block[32U] ;
1973 gid_t *blocks[0U] ;
1974};
1975#line 77 "include/linux/cred.h"
1976struct thread_group_cred {
1977 atomic_t usage ;
1978 pid_t tgid ;
1979 spinlock_t lock ;
1980 struct key *session_keyring ;
1981 struct key *process_keyring ;
1982 struct rcu_head rcu ;
1983};
1984#line 91 "include/linux/cred.h"
1985struct cred {
1986 atomic_t usage ;
1987 atomic_t subscribers ;
1988 void *put_addr ;
1989 unsigned int magic ;
1990 uid_t uid ;
1991 gid_t gid ;
1992 uid_t suid ;
1993 gid_t sgid ;
1994 uid_t euid ;
1995 gid_t egid ;
1996 uid_t fsuid ;
1997 gid_t fsgid ;
1998 unsigned int securebits ;
1999 kernel_cap_t cap_inheritable ;
2000 kernel_cap_t cap_permitted ;
2001 kernel_cap_t cap_effective ;
2002 kernel_cap_t cap_bset ;
2003 unsigned char jit_keyring ;
2004 struct key *thread_keyring ;
2005 struct key *request_key_auth ;
2006 struct thread_group_cred *tgcred ;
2007 void *security ;
2008 struct user_struct *user ;
2009 struct user_namespace *user_ns ;
2010 struct group_info *group_info ;
2011 struct rcu_head rcu ;
2012};
2013#line 264
2014struct llist_node;
2015#line 64 "include/linux/llist.h"
2016struct llist_node {
2017 struct llist_node *next ;
2018};
2019#line 185
2020struct futex_pi_state;
2021#line 185
2022struct futex_pi_state;
2023#line 186
2024struct robust_list_head;
2025#line 186
2026struct robust_list_head;
2027#line 187
2028struct bio_list;
2029#line 187
2030struct bio_list;
2031#line 188
2032struct fs_struct;
2033#line 188
2034struct fs_struct;
2035#line 189
2036struct perf_event_context;
2037#line 189
2038struct perf_event_context;
2039#line 190
2040struct blk_plug;
2041#line 190
2042struct blk_plug;
2043#line 149 "include/linux/sched.h"
2044struct cfs_rq;
2045#line 149
2046struct cfs_rq;
2047#line 406 "include/linux/sched.h"
2048struct sighand_struct {
2049 atomic_t count ;
2050 struct k_sigaction action[64U] ;
2051 spinlock_t siglock ;
2052 wait_queue_head_t signalfd_wqh ;
2053};
2054#line 449 "include/linux/sched.h"
2055struct pacct_struct {
2056 int ac_flag ;
2057 long ac_exitcode ;
2058 unsigned long ac_mem ;
2059 cputime_t ac_utime ;
2060 cputime_t ac_stime ;
2061 unsigned long ac_minflt ;
2062 unsigned long ac_majflt ;
2063};
2064#line 457 "include/linux/sched.h"
2065struct cpu_itimer {
2066 cputime_t expires ;
2067 cputime_t incr ;
2068 u32 error ;
2069 u32 incr_error ;
2070};
2071#line 464 "include/linux/sched.h"
2072struct task_cputime {
2073 cputime_t utime ;
2074 cputime_t stime ;
2075 unsigned long long sum_exec_runtime ;
2076};
2077#line 481 "include/linux/sched.h"
2078struct thread_group_cputimer {
2079 struct task_cputime cputime ;
2080 int running ;
2081 raw_spinlock_t lock ;
2082};
2083#line 517
2084struct autogroup;
2085#line 517
2086struct autogroup;
2087#line 518
2088struct tty_struct;
2089#line 518
2090struct taskstats;
2091#line 518
2092struct tty_audit_buf;
2093#line 518 "include/linux/sched.h"
2094struct signal_struct {
2095 atomic_t sigcnt ;
2096 atomic_t live ;
2097 int nr_threads ;
2098 wait_queue_head_t wait_chldexit ;
2099 struct task_struct *curr_target ;
2100 struct sigpending shared_pending ;
2101 int group_exit_code ;
2102 int notify_count ;
2103 struct task_struct *group_exit_task ;
2104 int group_stop_count ;
2105 unsigned int flags ;
2106 unsigned char is_child_subreaper : 1 ;
2107 unsigned char has_child_subreaper : 1 ;
2108 struct list_head posix_timers ;
2109 struct hrtimer real_timer ;
2110 struct pid *leader_pid ;
2111 ktime_t it_real_incr ;
2112 struct cpu_itimer it[2U] ;
2113 struct thread_group_cputimer cputimer ;
2114 struct task_cputime cputime_expires ;
2115 struct list_head cpu_timers[3U] ;
2116 struct pid *tty_old_pgrp ;
2117 int leader ;
2118 struct tty_struct *tty ;
2119 struct autogroup *autogroup ;
2120 cputime_t utime ;
2121 cputime_t stime ;
2122 cputime_t cutime ;
2123 cputime_t cstime ;
2124 cputime_t gtime ;
2125 cputime_t cgtime ;
2126 cputime_t prev_utime ;
2127 cputime_t prev_stime ;
2128 unsigned long nvcsw ;
2129 unsigned long nivcsw ;
2130 unsigned long cnvcsw ;
2131 unsigned long cnivcsw ;
2132 unsigned long min_flt ;
2133 unsigned long maj_flt ;
2134 unsigned long cmin_flt ;
2135 unsigned long cmaj_flt ;
2136 unsigned long inblock ;
2137 unsigned long oublock ;
2138 unsigned long cinblock ;
2139 unsigned long coublock ;
2140 unsigned long maxrss ;
2141 unsigned long cmaxrss ;
2142 struct task_io_accounting ioac ;
2143 unsigned long long sum_sched_runtime ;
2144 struct rlimit rlim[16U] ;
2145 struct pacct_struct pacct ;
2146 struct taskstats *stats ;
2147 unsigned int audit_tty ;
2148 struct tty_audit_buf *tty_audit_buf ;
2149 struct rw_semaphore group_rwsem ;
2150 int oom_adj ;
2151 int oom_score_adj ;
2152 int oom_score_adj_min ;
2153 struct mutex cred_guard_mutex ;
2154};
2155#line 699 "include/linux/sched.h"
2156struct user_struct {
2157 atomic_t __count ;
2158 atomic_t processes ;
2159 atomic_t files ;
2160 atomic_t sigpending ;
2161 atomic_t inotify_watches ;
2162 atomic_t inotify_devs ;
2163 atomic_t fanotify_listeners ;
2164 atomic_long_t epoll_watches ;
2165 unsigned long mq_bytes ;
2166 unsigned long locked_shm ;
2167 struct key *uid_keyring ;
2168 struct key *session_keyring ;
2169 struct hlist_node uidhash_node ;
2170 uid_t uid ;
2171 struct user_namespace *user_ns ;
2172 atomic_long_t locked_vm ;
2173};
2174#line 744
2175struct reclaim_state;
2176#line 744
2177struct reclaim_state;
2178#line 745 "include/linux/sched.h"
2179struct sched_info {
2180 unsigned long pcount ;
2181 unsigned long long run_delay ;
2182 unsigned long long last_arrival ;
2183 unsigned long long last_queued ;
2184};
2185#line 760 "include/linux/sched.h"
2186struct task_delay_info {
2187 spinlock_t lock ;
2188 unsigned int flags ;
2189 struct timespec blkio_start ;
2190 struct timespec blkio_end ;
2191 u64 blkio_delay ;
2192 u64 swapin_delay ;
2193 u32 blkio_count ;
2194 u32 swapin_count ;
2195 struct timespec freepages_start ;
2196 struct timespec freepages_end ;
2197 u64 freepages_delay ;
2198 u32 freepages_count ;
2199};
2200#line 1069
2201struct io_context;
2202#line 1069
2203struct io_context;
2204#line 1097
2205struct pipe_inode_info;
2206#line 1097
2207struct pipe_inode_info;
2208#line 1099
2209struct rq;
2210#line 1099
2211struct rq;
2212#line 1100 "include/linux/sched.h"
2213struct sched_class {
2214 struct sched_class const *next ;
2215 void (*enqueue_task)(struct rq * , struct task_struct * , int ) ;
2216 void (*dequeue_task)(struct rq * , struct task_struct * , int ) ;
2217 void (*yield_task)(struct rq * ) ;
2218 bool (*yield_to_task)(struct rq * , struct task_struct * , bool ) ;
2219 void (*check_preempt_curr)(struct rq * , struct task_struct * , int ) ;
2220 struct task_struct *(*pick_next_task)(struct rq * ) ;
2221 void (*put_prev_task)(struct rq * , struct task_struct * ) ;
2222 int (*select_task_rq)(struct task_struct * , int , int ) ;
2223 void (*pre_schedule)(struct rq * , struct task_struct * ) ;
2224 void (*post_schedule)(struct rq * ) ;
2225 void (*task_waking)(struct task_struct * ) ;
2226 void (*task_woken)(struct rq * , struct task_struct * ) ;
2227 void (*set_cpus_allowed)(struct task_struct * , struct cpumask const * ) ;
2228 void (*rq_online)(struct rq * ) ;
2229 void (*rq_offline)(struct rq * ) ;
2230 void (*set_curr_task)(struct rq * ) ;
2231 void (*task_tick)(struct rq * , struct task_struct * , int ) ;
2232 void (*task_fork)(struct task_struct * ) ;
2233 void (*switched_from)(struct rq * , struct task_struct * ) ;
2234 void (*switched_to)(struct rq * , struct task_struct * ) ;
2235 void (*prio_changed)(struct rq * , struct task_struct * , int ) ;
2236 unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
2237 void (*task_move_group)(struct task_struct * , int ) ;
2238};
2239#line 1165 "include/linux/sched.h"
2240struct load_weight {
2241 unsigned long weight ;
2242 unsigned long inv_weight ;
2243};
2244#line 1170 "include/linux/sched.h"
2245struct sched_statistics {
2246 u64 wait_start ;
2247 u64 wait_max ;
2248 u64 wait_count ;
2249 u64 wait_sum ;
2250 u64 iowait_count ;
2251 u64 iowait_sum ;
2252 u64 sleep_start ;
2253 u64 sleep_max ;
2254 s64 sum_sleep_runtime ;
2255 u64 block_start ;
2256 u64 block_max ;
2257 u64 exec_max ;
2258 u64 slice_max ;
2259 u64 nr_migrations_cold ;
2260 u64 nr_failed_migrations_affine ;
2261 u64 nr_failed_migrations_running ;
2262 u64 nr_failed_migrations_hot ;
2263 u64 nr_forced_migrations ;
2264 u64 nr_wakeups ;
2265 u64 nr_wakeups_sync ;
2266 u64 nr_wakeups_migrate ;
2267 u64 nr_wakeups_local ;
2268 u64 nr_wakeups_remote ;
2269 u64 nr_wakeups_affine ;
2270 u64 nr_wakeups_affine_attempts ;
2271 u64 nr_wakeups_passive ;
2272 u64 nr_wakeups_idle ;
2273};
2274#line 1205 "include/linux/sched.h"
2275struct sched_entity {
2276 struct load_weight load ;
2277 struct rb_node run_node ;
2278 struct list_head group_node ;
2279 unsigned int on_rq ;
2280 u64 exec_start ;
2281 u64 sum_exec_runtime ;
2282 u64 vruntime ;
2283 u64 prev_sum_exec_runtime ;
2284 u64 nr_migrations ;
2285 struct sched_statistics statistics ;
2286 struct sched_entity *parent ;
2287 struct cfs_rq *cfs_rq ;
2288 struct cfs_rq *my_q ;
2289};
2290#line 1231
2291struct rt_rq;
2292#line 1231 "include/linux/sched.h"
2293struct sched_rt_entity {
2294 struct list_head run_list ;
2295 unsigned long timeout ;
2296 unsigned int time_slice ;
2297 int nr_cpus_allowed ;
2298 struct sched_rt_entity *back ;
2299 struct sched_rt_entity *parent ;
2300 struct rt_rq *rt_rq ;
2301 struct rt_rq *my_q ;
2302};
2303#line 1255
2304struct mem_cgroup;
2305#line 1255 "include/linux/sched.h"
2306struct memcg_batch_info {
2307 int do_batch ;
2308 struct mem_cgroup *memcg ;
2309 unsigned long nr_pages ;
2310 unsigned long memsw_nr_pages ;
2311};
2312#line 1616
2313struct files_struct;
2314#line 1616
2315struct css_set;
2316#line 1616
2317struct compat_robust_list_head;
2318#line 1616 "include/linux/sched.h"
2319struct task_struct {
2320 long volatile state ;
2321 void *stack ;
2322 atomic_t usage ;
2323 unsigned int flags ;
2324 unsigned int ptrace ;
2325 struct llist_node wake_entry ;
2326 int on_cpu ;
2327 int on_rq ;
2328 int prio ;
2329 int static_prio ;
2330 int normal_prio ;
2331 unsigned int rt_priority ;
2332 struct sched_class const *sched_class ;
2333 struct sched_entity se ;
2334 struct sched_rt_entity rt ;
2335 struct hlist_head preempt_notifiers ;
2336 unsigned char fpu_counter ;
2337 unsigned int policy ;
2338 cpumask_t cpus_allowed ;
2339 struct sched_info sched_info ;
2340 struct list_head tasks ;
2341 struct plist_node pushable_tasks ;
2342 struct mm_struct *mm ;
2343 struct mm_struct *active_mm ;
2344 unsigned char brk_randomized : 1 ;
2345 int exit_state ;
2346 int exit_code ;
2347 int exit_signal ;
2348 int pdeath_signal ;
2349 unsigned int jobctl ;
2350 unsigned int personality ;
2351 unsigned char did_exec : 1 ;
2352 unsigned char in_execve : 1 ;
2353 unsigned char in_iowait : 1 ;
2354 unsigned char sched_reset_on_fork : 1 ;
2355 unsigned char sched_contributes_to_load : 1 ;
2356 unsigned char irq_thread : 1 ;
2357 pid_t pid ;
2358 pid_t tgid ;
2359 unsigned long stack_canary ;
2360 struct task_struct *real_parent ;
2361 struct task_struct *parent ;
2362 struct list_head children ;
2363 struct list_head sibling ;
2364 struct task_struct *group_leader ;
2365 struct list_head ptraced ;
2366 struct list_head ptrace_entry ;
2367 struct pid_link pids[3U] ;
2368 struct list_head thread_group ;
2369 struct completion *vfork_done ;
2370 int *set_child_tid ;
2371 int *clear_child_tid ;
2372 cputime_t utime ;
2373 cputime_t stime ;
2374 cputime_t utimescaled ;
2375 cputime_t stimescaled ;
2376 cputime_t gtime ;
2377 cputime_t prev_utime ;
2378 cputime_t prev_stime ;
2379 unsigned long nvcsw ;
2380 unsigned long nivcsw ;
2381 struct timespec start_time ;
2382 struct timespec real_start_time ;
2383 unsigned long min_flt ;
2384 unsigned long maj_flt ;
2385 struct task_cputime cputime_expires ;
2386 struct list_head cpu_timers[3U] ;
2387 struct cred const *real_cred ;
2388 struct cred const *cred ;
2389 struct cred *replacement_session_keyring ;
2390 char comm[16U] ;
2391 int link_count ;
2392 int total_link_count ;
2393 struct sysv_sem sysvsem ;
2394 unsigned long last_switch_count ;
2395 struct thread_struct thread ;
2396 struct fs_struct *fs ;
2397 struct files_struct *files ;
2398 struct nsproxy *nsproxy ;
2399 struct signal_struct *signal ;
2400 struct sighand_struct *sighand ;
2401 sigset_t blocked ;
2402 sigset_t real_blocked ;
2403 sigset_t saved_sigmask ;
2404 struct sigpending pending ;
2405 unsigned long sas_ss_sp ;
2406 size_t sas_ss_size ;
2407 int (*notifier)(void * ) ;
2408 void *notifier_data ;
2409 sigset_t *notifier_mask ;
2410 struct audit_context *audit_context ;
2411 uid_t loginuid ;
2412 unsigned int sessionid ;
2413 seccomp_t seccomp ;
2414 u32 parent_exec_id ;
2415 u32 self_exec_id ;
2416 spinlock_t alloc_lock ;
2417 raw_spinlock_t pi_lock ;
2418 struct plist_head pi_waiters ;
2419 struct rt_mutex_waiter *pi_blocked_on ;
2420 struct mutex_waiter *blocked_on ;
2421 unsigned int irq_events ;
2422 unsigned long hardirq_enable_ip ;
2423 unsigned long hardirq_disable_ip ;
2424 unsigned int hardirq_enable_event ;
2425 unsigned int hardirq_disable_event ;
2426 int hardirqs_enabled ;
2427 int hardirq_context ;
2428 unsigned long softirq_disable_ip ;
2429 unsigned long softirq_enable_ip ;
2430 unsigned int softirq_disable_event ;
2431 unsigned int softirq_enable_event ;
2432 int softirqs_enabled ;
2433 int softirq_context ;
2434 u64 curr_chain_key ;
2435 int lockdep_depth ;
2436 unsigned int lockdep_recursion ;
2437 struct held_lock held_locks[48U] ;
2438 gfp_t lockdep_reclaim_gfp ;
2439 void *journal_info ;
2440 struct bio_list *bio_list ;
2441 struct blk_plug *plug ;
2442 struct reclaim_state *reclaim_state ;
2443 struct backing_dev_info *backing_dev_info ;
2444 struct io_context *io_context ;
2445 unsigned long ptrace_message ;
2446 siginfo_t *last_siginfo ;
2447 struct task_io_accounting ioac ;
2448 u64 acct_rss_mem1 ;
2449 u64 acct_vm_mem1 ;
2450 cputime_t acct_timexpd ;
2451 nodemask_t mems_allowed ;
2452 seqcount_t mems_allowed_seq ;
2453 int cpuset_mem_spread_rotor ;
2454 int cpuset_slab_spread_rotor ;
2455 struct css_set *cgroups ;
2456 struct list_head cg_list ;
2457 struct robust_list_head *robust_list ;
2458 struct compat_robust_list_head *compat_robust_list ;
2459 struct list_head pi_state_list ;
2460 struct futex_pi_state *pi_state_cache ;
2461 struct perf_event_context *perf_event_ctxp[2U] ;
2462 struct mutex perf_event_mutex ;
2463 struct list_head perf_event_list ;
2464 struct mempolicy *mempolicy ;
2465 short il_next ;
2466 short pref_node_fork ;
2467 struct rcu_head rcu ;
2468 struct pipe_inode_info *splice_pipe ;
2469 struct task_delay_info *delays ;
2470 int make_it_fail ;
2471 int nr_dirtied ;
2472 int nr_dirtied_pause ;
2473 unsigned long dirty_paused_when ;
2474 int latency_record_count ;
2475 struct latency_record latency_record[32U] ;
2476 unsigned long timer_slack_ns ;
2477 unsigned long default_timer_slack_ns ;
2478 struct list_head *scm_work_list ;
2479 unsigned long trace ;
2480 unsigned long trace_recursion ;
2481 struct memcg_batch_info memcg_batch ;
2482 atomic_t ptrace_bp_refcnt ;
2483};
2484#line 174 "include/linux/mtd/bbm.h"
2485struct nand_flash_dev;
2486#line 174
2487struct nand_flash_dev;
2488#line 548 "include/linux/mtd/nand.h"
2489struct nand_flash_dev {
2490 char *name ;
2491 int id ;
2492 unsigned long pagesize ;
2493 unsigned long chipsize ;
2494 unsigned long erasesize ;
2495 unsigned long options ;
2496};
2497#line 583 "include/linux/mtd/nand.h"
2498struct nand_manufacturers {
2499 int id ;
2500 char *name ;
2501};
2502#line 678 "include/linux/mtd/nand.h"
2503struct Nand {
2504 char floor ;
2505 char chip ;
2506 unsigned long curadr ;
2507 unsigned char curmode ;
2508};
2509#line 165 "include/linux/mtd/doc2000.h"
2510struct DiskOnChip {
2511 unsigned long physadr ;
2512 void *virtadr ;
2513 unsigned long totlen ;
2514 unsigned char ChipID ;
2515 int ioreg ;
2516 unsigned long mfr ;
2517 unsigned long id ;
2518 int chipshift ;
2519 char page256 ;
2520 char pageadrlen ;
2521 char interleave ;
2522 unsigned long erasesize ;
2523 int curfloor ;
2524 int curchip ;
2525 int numchips ;
2526 struct Nand *chips ;
2527 struct mtd_info *nextdoc ;
2528 struct mutex lock ;
2529};
2530#line 1 "<compiler builtins>"
2531long __builtin_expect(long , long ) ;
2532#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2533void ldv_spin_lock(void) ;
2534#line 3
2535void ldv_spin_unlock(void) ;
2536#line 4
2537int ldv_spin_trylock(void) ;
2538#line 397 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
2539__inline static int ffs(int x )
2540{ int r ;
2541 long tmp ;
2542
2543 {
2544#line 411
2545 tmp = -1L;
2546#line 412
2547 __asm__ ("bsfl %1,%0": "=r" (r): "rm" (x), "0" (tmp));
2548#line 425
2549 return (r + 1);
2550}
2551}
2552#line 101 "include/linux/printk.h"
2553extern int printk(char const * , ...) ;
2554#line 45 "include/linux/dynamic_debug.h"
2555extern int __dynamic_pr_debug(struct _ddebug * , char const * , ...) ;
2556#line 53 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
2557__inline static unsigned char readb(void const volatile *addr )
2558{ unsigned char ret ;
2559 unsigned char volatile *__cil_tmp3 ;
2560
2561 {
2562#line 53
2563 __cil_tmp3 = (unsigned char volatile *)addr;
2564#line 53
2565 __asm__ volatile ("movb %1,%0": "=q" (ret): "m" (*__cil_tmp3): "memory");
2566#line 53
2567 return (ret);
2568}
2569}
2570#line 61 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
2571__inline static void writeb(unsigned char val , void volatile *addr )
2572{ unsigned char volatile *__cil_tmp3 ;
2573
2574 {
2575#line 61
2576 __cil_tmp3 = (unsigned char volatile *)addr;
2577#line 61
2578 __asm__ volatile ("movb %0,%1": : "q" (val), "m" (*__cil_tmp3): "memory");
2579#line 62
2580 return;
2581}
2582}
2583#line 187
2584extern void iounmap(void volatile * ) ;
2585#line 26 "include/linux/export.h"
2586extern struct module __this_module ;
2587#line 161 "include/linux/slab.h"
2588extern void kfree(void const * ) ;
2589#line 220 "include/linux/slub_def.h"
2590extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t ) ;
2591#line 223
2592void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2593#line 225
2594extern void *__kmalloc(size_t , gfp_t ) ;
2595#line 268 "include/linux/slub_def.h"
2596__inline static void *ldv_kmalloc_12(size_t size , gfp_t flags )
2597{ void *tmp___2 ;
2598
2599 {
2600 {
2601#line 283
2602 tmp___2 = __kmalloc(size, flags);
2603 }
2604#line 283
2605 return (tmp___2);
2606}
2607}
2608#line 268
2609__inline static void *kmalloc(size_t size , gfp_t flags ) ;
2610#line 11 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2611void ldv_check_alloc_flags(gfp_t flags ) ;
2612#line 12
2613void ldv_check_alloc_nonatomic(void) ;
2614#line 14
2615struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2616#line 362 "include/linux/mtd/mtd.h"
2617extern int mtd_device_parse_register(struct mtd_info * , char const ** , struct mtd_part_parser_data * ,
2618 struct mtd_partition const * , int ) ;
2619#line 369
2620extern int mtd_device_unregister(struct mtd_info * ) ;
2621#line 388
2622extern void mtd_erase_callback(struct erase_info * ) ;
2623#line 594 "include/linux/mtd/nand.h"
2624extern struct nand_flash_dev nand_flash_ids[] ;
2625#line 595
2626extern struct nand_manufacturers nand_manuf_ids[] ;
2627#line 204 "include/linux/mtd/doc2000.h"
2628extern int doc_decode_ecc(unsigned char * , unsigned char * ) ;
2629#line 50 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2630static int doc_read(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
2631 u_char *buf ) ;
2632#line 52
2633static int doc_write(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
2634 u_char const *buf ) ;
2635#line 54
2636static int doc_read_oob(struct mtd_info *mtd , loff_t ofs , struct mtd_oob_ops *ops ) ;
2637#line 56
2638static int doc_write_oob(struct mtd_info *mtd , loff_t ofs , struct mtd_oob_ops *ops ) ;
2639#line 58
2640static int doc_erase(struct mtd_info *mtd , struct erase_info *instr ) ;
2641#line 60 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2642static struct mtd_info *docmilpluslist = (struct mtd_info *)0;
2643#line 64 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2644static void DoC_Delay(void *docptr , int cycles )
2645{ int i ;
2646 void volatile *__cil_tmp4 ;
2647 void volatile *__cil_tmp5 ;
2648
2649 {
2650#line 68
2651 i = 0;
2652#line 68
2653 goto ldv_19275;
2654 ldv_19274:
2655 {
2656#line 69
2657 __cil_tmp4 = (void volatile *)docptr;
2658#line 69
2659 __cil_tmp5 = __cil_tmp4 + 4098U;
2660#line 69
2661 writeb((unsigned char)0, __cil_tmp5);
2662#line 68
2663 i = i + 1;
2664 }
2665 ldv_19275: ;
2666#line 68
2667 if (i < cycles) {
2668#line 69
2669 goto ldv_19274;
2670 } else {
2671#line 71
2672 goto ldv_19276;
2673 }
2674 ldv_19276: ;
2675#line 73
2676 return;
2677}
2678}
2679#line 75 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2680static int _DoC_WaitReady(void *docptr )
2681{ unsigned int c ;
2682 struct _ddebug descriptor ;
2683 long tmp ;
2684 unsigned char tmp___0 ;
2685 struct _ddebug descriptor___0 ;
2686 long tmp___1 ;
2687 struct _ddebug *__cil_tmp8 ;
2688 unsigned long __cil_tmp9 ;
2689 unsigned long __cil_tmp10 ;
2690 unsigned long __cil_tmp11 ;
2691 unsigned long __cil_tmp12 ;
2692 unsigned long __cil_tmp13 ;
2693 unsigned long __cil_tmp14 ;
2694 unsigned char __cil_tmp15 ;
2695 long __cil_tmp16 ;
2696 long __cil_tmp17 ;
2697 void const volatile *__cil_tmp18 ;
2698 void const volatile *__cil_tmp19 ;
2699 int __cil_tmp20 ;
2700 int __cil_tmp21 ;
2701 struct _ddebug *__cil_tmp22 ;
2702 unsigned long __cil_tmp23 ;
2703 unsigned long __cil_tmp24 ;
2704 unsigned long __cil_tmp25 ;
2705 unsigned long __cil_tmp26 ;
2706 unsigned long __cil_tmp27 ;
2707 unsigned long __cil_tmp28 ;
2708 unsigned char __cil_tmp29 ;
2709 long __cil_tmp30 ;
2710 long __cil_tmp31 ;
2711
2712 {
2713 {
2714#line 77
2715 c = 65535U;
2716#line 79
2717 __cil_tmp8 = & descriptor;
2718#line 79
2719 *((char const **)__cil_tmp8) = "doc2001plus";
2720#line 79
2721 __cil_tmp9 = (unsigned long )(& descriptor) + 8;
2722#line 79
2723 *((char const **)__cil_tmp9) = "_DoC_WaitReady";
2724#line 79
2725 __cil_tmp10 = (unsigned long )(& descriptor) + 16;
2726#line 79
2727 *((char const **)__cil_tmp10) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p";
2728#line 79
2729 __cil_tmp11 = (unsigned long )(& descriptor) + 24;
2730#line 79
2731 *((char const **)__cil_tmp11) = "_DoC_WaitReady called for out-of-line wait\n";
2732#line 79
2733 __cil_tmp12 = (unsigned long )(& descriptor) + 32;
2734#line 79
2735 *((unsigned int *)__cil_tmp12) = 79U;
2736#line 79
2737 __cil_tmp13 = (unsigned long )(& descriptor) + 35;
2738#line 79
2739 *((unsigned char *)__cil_tmp13) = (unsigned char)0;
2740#line 79
2741 __cil_tmp14 = (unsigned long )(& descriptor) + 35;
2742#line 79
2743 __cil_tmp15 = *((unsigned char *)__cil_tmp14);
2744#line 79
2745 __cil_tmp16 = (long )__cil_tmp15;
2746#line 79
2747 __cil_tmp17 = __cil_tmp16 & 1L;
2748#line 79
2749 tmp = __builtin_expect(__cil_tmp17, 0L);
2750 }
2751#line 79
2752 if (tmp != 0L) {
2753 {
2754#line 79
2755 __dynamic_pr_debug(& descriptor, "_DoC_WaitReady called for out-of-line wait\n");
2756 }
2757 } else {
2758
2759 }
2760#line 82
2761 goto ldv_19284;
2762 ldv_19283: ;
2763 ldv_19284:
2764 {
2765#line 82
2766 __cil_tmp18 = (void const volatile *)docptr;
2767#line 82
2768 __cil_tmp19 = __cil_tmp18 + 4128U;
2769#line 82
2770 tmp___0 = readb(__cil_tmp19);
2771 }
2772 {
2773#line 82
2774 __cil_tmp20 = (int )tmp___0;
2775#line 82
2776 __cil_tmp21 = __cil_tmp20 & 192;
2777#line 82
2778 if (__cil_tmp21 != 192) {
2779#line 82
2780 c = c - 1U;
2781#line 82
2782 if (c != 0U) {
2783#line 83
2784 goto ldv_19283;
2785 } else {
2786#line 85
2787 goto ldv_19285;
2788 }
2789 } else {
2790#line 85
2791 goto ldv_19285;
2792 }
2793 }
2794 ldv_19285: ;
2795#line 85
2796 if (c == 0U) {
2797 {
2798#line 86
2799 __cil_tmp22 = & descriptor___0;
2800#line 86
2801 *((char const **)__cil_tmp22) = "doc2001plus";
2802#line 86
2803 __cil_tmp23 = (unsigned long )(& descriptor___0) + 8;
2804#line 86
2805 *((char const **)__cil_tmp23) = "_DoC_WaitReady";
2806#line 86
2807 __cil_tmp24 = (unsigned long )(& descriptor___0) + 16;
2808#line 86
2809 *((char const **)__cil_tmp24) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p";
2810#line 86
2811 __cil_tmp25 = (unsigned long )(& descriptor___0) + 24;
2812#line 86
2813 *((char const **)__cil_tmp25) = "_DoC_WaitReady timed out.\n";
2814#line 86
2815 __cil_tmp26 = (unsigned long )(& descriptor___0) + 32;
2816#line 86
2817 *((unsigned int *)__cil_tmp26) = 86U;
2818#line 86
2819 __cil_tmp27 = (unsigned long )(& descriptor___0) + 35;
2820#line 86
2821 *((unsigned char *)__cil_tmp27) = (unsigned char)0;
2822#line 86
2823 __cil_tmp28 = (unsigned long )(& descriptor___0) + 35;
2824#line 86
2825 __cil_tmp29 = *((unsigned char *)__cil_tmp28);
2826#line 86
2827 __cil_tmp30 = (long )__cil_tmp29;
2828#line 86
2829 __cil_tmp31 = __cil_tmp30 & 1L;
2830#line 86
2831 tmp___1 = __builtin_expect(__cil_tmp31, 0L);
2832 }
2833#line 86
2834 if (tmp___1 != 0L) {
2835 {
2836#line 86
2837 __dynamic_pr_debug(& descriptor___0, "_DoC_WaitReady timed out.\n");
2838 }
2839 } else {
2840
2841 }
2842 } else {
2843
2844 }
2845#line 88
2846 return (c == 0U);
2847}
2848}
2849#line 91 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2850__inline static int DoC_WaitReady(void *docptr )
2851{ int ret ;
2852 unsigned char tmp ;
2853 void const volatile *__cil_tmp4 ;
2854 void const volatile *__cil_tmp5 ;
2855 int __cil_tmp6 ;
2856 int __cil_tmp7 ;
2857
2858 {
2859 {
2860#line 94
2861 ret = 0;
2862#line 98
2863 DoC_Delay(docptr, 4);
2864#line 100
2865 __cil_tmp4 = (void const volatile *)docptr;
2866#line 100
2867 __cil_tmp5 = __cil_tmp4 + 4128U;
2868#line 100
2869 tmp = readb(__cil_tmp5);
2870 }
2871 {
2872#line 100
2873 __cil_tmp6 = (int )tmp;
2874#line 100
2875 __cil_tmp7 = __cil_tmp6 & 192;
2876#line 100
2877 if (__cil_tmp7 != 192) {
2878 {
2879#line 102
2880 ret = _DoC_WaitReady(docptr);
2881 }
2882 } else {
2883
2884 }
2885 }
2886#line 104
2887 return (ret);
2888}
2889}
2890#line 112 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2891__inline static void DoC_CheckASIC(void *docptr )
2892{ unsigned char tmp ;
2893 void const volatile *__cil_tmp3 ;
2894 void const volatile *__cil_tmp4 ;
2895 int __cil_tmp5 ;
2896 int __cil_tmp6 ;
2897 void volatile *__cil_tmp7 ;
2898 void volatile *__cil_tmp8 ;
2899 void volatile *__cil_tmp9 ;
2900 void volatile *__cil_tmp10 ;
2901
2902 {
2903 {
2904#line 115
2905 __cil_tmp3 = (void const volatile *)docptr;
2906#line 115
2907 __cil_tmp4 = __cil_tmp3 + 4102U;
2908#line 115
2909 tmp = readb(__cil_tmp4);
2910 }
2911 {
2912#line 115
2913 __cil_tmp5 = (int )tmp;
2914#line 115
2915 __cil_tmp6 = __cil_tmp5 & 1;
2916#line 115
2917 if (__cil_tmp6 == 0) {
2918 {
2919#line 116
2920 __cil_tmp7 = (void volatile *)docptr;
2921#line 116
2922 __cil_tmp8 = __cil_tmp7 + 4102U;
2923#line 116
2924 writeb((unsigned char)5, __cil_tmp8);
2925#line 117
2926 __cil_tmp9 = (void volatile *)docptr;
2927#line 117
2928 __cil_tmp10 = __cil_tmp9 + 4214U;
2929#line 117
2930 writeb((unsigned char)250, __cil_tmp10);
2931 }
2932 } else {
2933
2934 }
2935 }
2936#line 119
2937 return;
2938}
2939}
2940#line 124 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2941static void DoC_Command(void *docptr , unsigned char command , unsigned char xtraflags )
2942{ int __cil_tmp4 ;
2943 unsigned char __cil_tmp5 ;
2944 void volatile *__cil_tmp6 ;
2945 void volatile *__cil_tmp7 ;
2946 int __cil_tmp8 ;
2947 unsigned char __cil_tmp9 ;
2948 void volatile *__cil_tmp10 ;
2949 void volatile *__cil_tmp11 ;
2950 int __cil_tmp12 ;
2951 unsigned char __cil_tmp13 ;
2952 void volatile *__cil_tmp14 ;
2953 void volatile *__cil_tmp15 ;
2954
2955 {
2956 {
2957#line 127
2958 __cil_tmp4 = (int )command;
2959#line 127
2960 __cil_tmp5 = (unsigned char )__cil_tmp4;
2961#line 127
2962 __cil_tmp6 = (void volatile *)docptr;
2963#line 127
2964 __cil_tmp7 = __cil_tmp6 + 4132U;
2965#line 127
2966 writeb(__cil_tmp5, __cil_tmp7);
2967#line 128
2968 __cil_tmp8 = (int )command;
2969#line 128
2970 __cil_tmp9 = (unsigned char )__cil_tmp8;
2971#line 128
2972 __cil_tmp10 = (void volatile *)docptr;
2973#line 128
2974 __cil_tmp11 = __cil_tmp10 + 4142U;
2975#line 128
2976 writeb(__cil_tmp9, __cil_tmp11);
2977#line 129
2978 __cil_tmp12 = (int )command;
2979#line 129
2980 __cil_tmp13 = (unsigned char )__cil_tmp12;
2981#line 129
2982 __cil_tmp14 = (void volatile *)docptr;
2983#line 129
2984 __cil_tmp15 = __cil_tmp14 + 4142U;
2985#line 129
2986 writeb(__cil_tmp13, __cil_tmp15);
2987 }
2988#line 130
2989 return;
2990}
2991}
2992#line 135 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
2993__inline static void DoC_Address(struct DiskOnChip *doc , int numbytes , unsigned long ofs ,
2994 unsigned char xtraflags1 , unsigned char xtraflags2 )
2995{ void *docptr ;
2996 unsigned long __cil_tmp7 ;
2997 unsigned long __cil_tmp8 ;
2998 unsigned long __cil_tmp9 ;
2999 unsigned long __cil_tmp10 ;
3000 char __cil_tmp11 ;
3001 int __cil_tmp12 ;
3002 unsigned char __cil_tmp13 ;
3003 int __cil_tmp14 ;
3004 unsigned char __cil_tmp15 ;
3005 void volatile *__cil_tmp16 ;
3006 void volatile *__cil_tmp17 ;
3007 unsigned long __cil_tmp18 ;
3008 unsigned char __cil_tmp19 ;
3009 int __cil_tmp20 ;
3010 unsigned char __cil_tmp21 ;
3011 void volatile *__cil_tmp22 ;
3012 void volatile *__cil_tmp23 ;
3013 unsigned long __cil_tmp24 ;
3014 unsigned char __cil_tmp25 ;
3015 int __cil_tmp26 ;
3016 unsigned char __cil_tmp27 ;
3017 void volatile *__cil_tmp28 ;
3018 void volatile *__cil_tmp29 ;
3019 unsigned char __cil_tmp30 ;
3020 int __cil_tmp31 ;
3021 unsigned char __cil_tmp32 ;
3022 void volatile *__cil_tmp33 ;
3023 void volatile *__cil_tmp34 ;
3024 unsigned long __cil_tmp35 ;
3025 unsigned char __cil_tmp36 ;
3026 int __cil_tmp37 ;
3027 unsigned char __cil_tmp38 ;
3028 void volatile *__cil_tmp39 ;
3029 void volatile *__cil_tmp40 ;
3030 unsigned long __cil_tmp41 ;
3031 unsigned char __cil_tmp42 ;
3032 int __cil_tmp43 ;
3033 unsigned char __cil_tmp44 ;
3034 void volatile *__cil_tmp45 ;
3035 void volatile *__cil_tmp46 ;
3036 void volatile *__cil_tmp47 ;
3037 void volatile *__cil_tmp48 ;
3038 void volatile *__cil_tmp49 ;
3039 void volatile *__cil_tmp50 ;
3040
3041 {
3042#line 139
3043 __cil_tmp7 = (unsigned long )doc;
3044#line 139
3045 __cil_tmp8 = __cil_tmp7 + 8;
3046#line 139
3047 docptr = *((void **)__cil_tmp8);
3048#line 142
3049 __cil_tmp9 = (unsigned long )doc;
3050#line 142
3051 __cil_tmp10 = __cil_tmp9 + 54;
3052#line 142
3053 __cil_tmp11 = *((char *)__cil_tmp10);
3054#line 142
3055 __cil_tmp12 = (int )__cil_tmp11;
3056#line 142
3057 ofs = ofs >> __cil_tmp12;
3058#line 145
3059 if (numbytes == 1) {
3060#line 145
3061 goto case_1;
3062 } else
3063#line 149
3064 if (numbytes == 2) {
3065#line 149
3066 goto case_2;
3067 } else
3068#line 154
3069 if (numbytes == 3) {
3070#line 154
3071 goto case_3;
3072 } else {
3073 {
3074#line 160
3075 goto switch_default;
3076#line 144
3077 if (0) {
3078 case_1:
3079 {
3080#line 147
3081 __cil_tmp13 = (unsigned char )ofs;
3082#line 147
3083 __cil_tmp14 = (int )__cil_tmp13;
3084#line 147
3085 __cil_tmp15 = (unsigned char )__cil_tmp14;
3086#line 147
3087 __cil_tmp16 = (void volatile *)docptr;
3088#line 147
3089 __cil_tmp17 = __cil_tmp16 + 4134U;
3090#line 147
3091 writeb(__cil_tmp15, __cil_tmp17);
3092 }
3093#line 148
3094 goto ldv_19308;
3095 case_2:
3096 {
3097#line 151
3098 __cil_tmp18 = ofs >> 9;
3099#line 151
3100 __cil_tmp19 = (unsigned char )__cil_tmp18;
3101#line 151
3102 __cil_tmp20 = (int )__cil_tmp19;
3103#line 151
3104 __cil_tmp21 = (unsigned char )__cil_tmp20;
3105#line 151
3106 __cil_tmp22 = (void volatile *)docptr;
3107#line 151
3108 __cil_tmp23 = __cil_tmp22 + 4134U;
3109#line 151
3110 writeb(__cil_tmp21, __cil_tmp23);
3111#line 152
3112 __cil_tmp24 = ofs >> 17;
3113#line 152
3114 __cil_tmp25 = (unsigned char )__cil_tmp24;
3115#line 152
3116 __cil_tmp26 = (int )__cil_tmp25;
3117#line 152
3118 __cil_tmp27 = (unsigned char )__cil_tmp26;
3119#line 152
3120 __cil_tmp28 = (void volatile *)docptr;
3121#line 152
3122 __cil_tmp29 = __cil_tmp28 + 4134U;
3123#line 152
3124 writeb(__cil_tmp27, __cil_tmp29);
3125 }
3126#line 153
3127 goto ldv_19308;
3128 case_3:
3129 {
3130#line 156
3131 __cil_tmp30 = (unsigned char )ofs;
3132#line 156
3133 __cil_tmp31 = (int )__cil_tmp30;
3134#line 156
3135 __cil_tmp32 = (unsigned char )__cil_tmp31;
3136#line 156
3137 __cil_tmp33 = (void volatile *)docptr;
3138#line 156
3139 __cil_tmp34 = __cil_tmp33 + 4134U;
3140#line 156
3141 writeb(__cil_tmp32, __cil_tmp34);
3142#line 157
3143 __cil_tmp35 = ofs >> 9;
3144#line 157
3145 __cil_tmp36 = (unsigned char )__cil_tmp35;
3146#line 157
3147 __cil_tmp37 = (int )__cil_tmp36;
3148#line 157
3149 __cil_tmp38 = (unsigned char )__cil_tmp37;
3150#line 157
3151 __cil_tmp39 = (void volatile *)docptr;
3152#line 157
3153 __cil_tmp40 = __cil_tmp39 + 4134U;
3154#line 157
3155 writeb(__cil_tmp38, __cil_tmp40);
3156#line 158
3157 __cil_tmp41 = ofs >> 17;
3158#line 158
3159 __cil_tmp42 = (unsigned char )__cil_tmp41;
3160#line 158
3161 __cil_tmp43 = (int )__cil_tmp42;
3162#line 158
3163 __cil_tmp44 = (unsigned char )__cil_tmp43;
3164#line 158
3165 __cil_tmp45 = (void volatile *)docptr;
3166#line 158
3167 __cil_tmp46 = __cil_tmp45 + 4134U;
3168#line 158
3169 writeb(__cil_tmp44, __cil_tmp46);
3170 }
3171#line 159
3172 goto ldv_19308;
3173 switch_default: ;
3174#line 161
3175 return;
3176 } else {
3177 switch_break: ;
3178 }
3179 }
3180 }
3181 ldv_19308:
3182 {
3183#line 164
3184 __cil_tmp47 = (void volatile *)docptr;
3185#line 164
3186 __cil_tmp48 = __cil_tmp47 + 4142U;
3187#line 164
3188 writeb((unsigned char)0, __cil_tmp48);
3189#line 165
3190 __cil_tmp49 = (void volatile *)docptr;
3191#line 165
3192 __cil_tmp50 = __cil_tmp49 + 4142U;
3193#line 165
3194 writeb((unsigned char)0, __cil_tmp50);
3195 }
3196#line 166
3197 return;
3198}
3199}
3200#line 169 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3201static int DoC_SelectChip(void *docptr , int chip )
3202{
3203
3204 {
3205#line 172
3206 return (0);
3207}
3208}
3209#line 176 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3210static int DoC_SelectFloor(void *docptr , int floor )
3211{ unsigned char __cil_tmp3 ;
3212 int __cil_tmp4 ;
3213 int __cil_tmp5 ;
3214 unsigned char __cil_tmp6 ;
3215 void volatile *__cil_tmp7 ;
3216 void volatile *__cil_tmp8 ;
3217
3218 {
3219 {
3220#line 178
3221 __cil_tmp3 = (unsigned char )floor;
3222#line 178
3223 __cil_tmp4 = (int )__cil_tmp3;
3224#line 178
3225 __cil_tmp5 = __cil_tmp4 & 3;
3226#line 178
3227 __cil_tmp6 = (unsigned char )__cil_tmp5;
3228#line 178
3229 __cil_tmp7 = (void volatile *)docptr;
3230#line 178
3231 __cil_tmp8 = __cil_tmp7 + 4104U;
3232#line 178
3233 writeb(__cil_tmp6, __cil_tmp8);
3234 }
3235#line 179
3236 return (0);
3237}
3238}
3239#line 194 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3240static unsigned int DoC_GetDataOffset(struct mtd_info *mtd , loff_t *from )
3241{ struct DiskOnChip *this ;
3242 unsigned int ofs ;
3243 unsigned int cmd ;
3244 unsigned long __cil_tmp6 ;
3245 unsigned long __cil_tmp7 ;
3246 void *__cil_tmp8 ;
3247 unsigned long __cil_tmp9 ;
3248 unsigned long __cil_tmp10 ;
3249 char __cil_tmp11 ;
3250 signed char __cil_tmp12 ;
3251 int __cil_tmp13 ;
3252 loff_t __cil_tmp14 ;
3253 unsigned int __cil_tmp15 ;
3254 unsigned int __cil_tmp16 ;
3255 loff_t __cil_tmp17 ;
3256 loff_t __cil_tmp18 ;
3257 long long __cil_tmp19 ;
3258 loff_t __cil_tmp20 ;
3259 long long __cil_tmp21 ;
3260
3261 {
3262#line 196
3263 __cil_tmp6 = (unsigned long )mtd;
3264#line 196
3265 __cil_tmp7 = __cil_tmp6 + 360;
3266#line 196
3267 __cil_tmp8 = *((void **)__cil_tmp7);
3268#line 196
3269 this = (struct DiskOnChip *)__cil_tmp8;
3270 {
3271#line 198
3272 __cil_tmp9 = (unsigned long )this;
3273#line 198
3274 __cil_tmp10 = __cil_tmp9 + 54;
3275#line 198
3276 __cil_tmp11 = *((char *)__cil_tmp10);
3277#line 198
3278 __cil_tmp12 = (signed char )__cil_tmp11;
3279#line 198
3280 __cil_tmp13 = (int )__cil_tmp12;
3281#line 198
3282 if (__cil_tmp13 != 0) {
3283#line 199
3284 __cil_tmp14 = *from;
3285#line 199
3286 __cil_tmp15 = (unsigned int )__cil_tmp14;
3287#line 199
3288 ofs = __cil_tmp15 & 1023U;
3289#line 202
3290 if (ofs <= 511U) {
3291#line 203
3292 cmd = 0U;
3293#line 204
3294 ofs = ofs & 511U;
3295 } else
3296#line 205
3297 if (ofs <= 1013U) {
3298#line 206
3299 cmd = 1U;
3300#line 207
3301 __cil_tmp16 = ofs & 511U;
3302#line 207
3303 ofs = __cil_tmp16 + 10U;
3304 } else {
3305#line 209
3306 cmd = 80U;
3307#line 210
3308 ofs = ofs - 1014U;
3309 }
3310#line 213
3311 __cil_tmp17 = (loff_t )ofs;
3312#line 213
3313 __cil_tmp18 = *from;
3314#line 213
3315 __cil_tmp19 = __cil_tmp18 & -1024LL;
3316#line 213
3317 *from = __cil_tmp19 | __cil_tmp17;
3318#line 214
3319 return (cmd);
3320 } else {
3321 {
3322#line 217
3323 __cil_tmp20 = *from;
3324#line 217
3325 __cil_tmp21 = __cil_tmp20 & 256LL;
3326#line 217
3327 if (__cil_tmp21 != 0LL) {
3328#line 218
3329 return (1U);
3330 } else {
3331
3332 }
3333 }
3334#line 219
3335 return (0U);
3336 }
3337 }
3338}
3339}
3340#line 223 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3341static unsigned int DoC_GetECCOffset(struct mtd_info *mtd , loff_t *from )
3342{ unsigned int ofs ;
3343 unsigned int cmd ;
3344 loff_t __cil_tmp5 ;
3345 long long __cil_tmp6 ;
3346 loff_t __cil_tmp7 ;
3347 unsigned int __cil_tmp8 ;
3348 unsigned int __cil_tmp9 ;
3349 loff_t __cil_tmp10 ;
3350 unsigned int __cil_tmp11 ;
3351 loff_t __cil_tmp12 ;
3352 loff_t __cil_tmp13 ;
3353 long long __cil_tmp14 ;
3354
3355 {
3356 {
3357#line 227
3358 __cil_tmp5 = *from;
3359#line 227
3360 __cil_tmp6 = __cil_tmp5 & 512LL;
3361#line 227
3362 if (__cil_tmp6 != 0LL) {
3363#line 228
3364 cmd = 80U;
3365#line 229
3366 __cil_tmp7 = *from;
3367#line 229
3368 __cil_tmp8 = (unsigned int )__cil_tmp7;
3369#line 229
3370 __cil_tmp9 = __cil_tmp8 & 15U;
3371#line 229
3372 ofs = __cil_tmp9 + 10U;
3373 } else {
3374#line 231
3375 cmd = 1U;
3376#line 232
3377 __cil_tmp10 = *from;
3378#line 232
3379 __cil_tmp11 = (unsigned int )__cil_tmp10;
3380#line 232
3381 ofs = __cil_tmp11 & 15U;
3382 }
3383 }
3384#line 235
3385 __cil_tmp12 = (loff_t )ofs;
3386#line 235
3387 __cil_tmp13 = *from;
3388#line 235
3389 __cil_tmp14 = __cil_tmp13 & -1024LL;
3390#line 235
3391 *from = __cil_tmp14 | __cil_tmp12;
3392#line 236
3393 return (cmd);
3394}
3395}
3396#line 239 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3397static unsigned int DoC_GetFlagsOffset(struct mtd_info *mtd , loff_t *from )
3398{ unsigned int ofs ;
3399 unsigned int cmd ;
3400 loff_t __cil_tmp5 ;
3401 long long __cil_tmp6 ;
3402 loff_t __cil_tmp7 ;
3403 loff_t __cil_tmp8 ;
3404 long long __cil_tmp9 ;
3405
3406 {
3407#line 243
3408 cmd = 1U;
3409 {
3410#line 244
3411 __cil_tmp5 = *from;
3412#line 244
3413 __cil_tmp6 = __cil_tmp5 & 512LL;
3414#line 244
3415 if (__cil_tmp6 != 0LL) {
3416#line 244
3417 ofs = 8U;
3418 } else {
3419#line 244
3420 ofs = 6U;
3421 }
3422 }
3423#line 245
3424 __cil_tmp7 = (loff_t )ofs;
3425#line 245
3426 __cil_tmp8 = *from;
3427#line 245
3428 __cil_tmp9 = __cil_tmp8 & -1024LL;
3429#line 245
3430 *from = __cil_tmp9 | __cil_tmp7;
3431#line 246
3432 return (cmd);
3433}
3434}
3435#line 249 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3436static unsigned int DoC_GetHdrOffset(struct mtd_info *mtd , loff_t *from )
3437{ unsigned int ofs ;
3438 unsigned int cmd ;
3439 loff_t __cil_tmp5 ;
3440 long long __cil_tmp6 ;
3441 loff_t __cil_tmp7 ;
3442 loff_t __cil_tmp8 ;
3443 long long __cil_tmp9 ;
3444
3445 {
3446#line 253
3447 cmd = 80U;
3448 {
3449#line 254
3450 __cil_tmp5 = *from;
3451#line 254
3452 __cil_tmp6 = __cil_tmp5 & 512LL;
3453#line 254
3454 if (__cil_tmp6 != 0LL) {
3455#line 254
3456 ofs = 24U;
3457 } else {
3458#line 254
3459 ofs = 16U;
3460 }
3461 }
3462#line 255
3463 __cil_tmp7 = (loff_t )ofs;
3464#line 255
3465 __cil_tmp8 = *from;
3466#line 255
3467 __cil_tmp9 = __cil_tmp8 & -1024LL;
3468#line 255
3469 *from = __cil_tmp9 | __cil_tmp7;
3470#line 256
3471 return (cmd);
3472}
3473}
3474#line 259 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3475__inline static void MemReadDOC(void *docptr , unsigned char *buf , int len )
3476{ int i ;
3477 unsigned long __cil_tmp5 ;
3478 unsigned char *__cil_tmp6 ;
3479 int __cil_tmp7 ;
3480 unsigned long __cil_tmp8 ;
3481 void const volatile *__cil_tmp9 ;
3482 void const volatile *__cil_tmp10 ;
3483
3484 {
3485#line 263
3486 i = 0;
3487#line 263
3488 goto ldv_19352;
3489 ldv_19351:
3490 {
3491#line 264
3492 __cil_tmp5 = (unsigned long )i;
3493#line 264
3494 __cil_tmp6 = buf + __cil_tmp5;
3495#line 264
3496 __cil_tmp7 = i + 2048;
3497#line 264
3498 __cil_tmp8 = (unsigned long )__cil_tmp7;
3499#line 264
3500 __cil_tmp9 = (void const volatile *)docptr;
3501#line 264
3502 __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
3503#line 264
3504 *__cil_tmp6 = readb(__cil_tmp10);
3505#line 263
3506 i = i + 1;
3507 }
3508 ldv_19352: ;
3509#line 263
3510 if (i < len) {
3511#line 264
3512 goto ldv_19351;
3513 } else {
3514#line 266
3515 goto ldv_19353;
3516 }
3517 ldv_19353: ;
3518#line 268
3519 return;
3520}
3521}
3522#line 270 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3523__inline static void MemWriteDOC(void *docptr , unsigned char *buf , int len )
3524{ int i ;
3525 unsigned long __cil_tmp5 ;
3526 unsigned char *__cil_tmp6 ;
3527 unsigned char __cil_tmp7 ;
3528 int __cil_tmp8 ;
3529 unsigned char __cil_tmp9 ;
3530 int __cil_tmp10 ;
3531 unsigned long __cil_tmp11 ;
3532 void volatile *__cil_tmp12 ;
3533 void volatile *__cil_tmp13 ;
3534
3535 {
3536#line 274
3537 i = 0;
3538#line 274
3539 goto ldv_19361;
3540 ldv_19360:
3541 {
3542#line 275
3543 __cil_tmp5 = (unsigned long )i;
3544#line 275
3545 __cil_tmp6 = buf + __cil_tmp5;
3546#line 275
3547 __cil_tmp7 = *__cil_tmp6;
3548#line 275
3549 __cil_tmp8 = (int )__cil_tmp7;
3550#line 275
3551 __cil_tmp9 = (unsigned char )__cil_tmp8;
3552#line 275
3553 __cil_tmp10 = i + 2048;
3554#line 275
3555 __cil_tmp11 = (unsigned long )__cil_tmp10;
3556#line 275
3557 __cil_tmp12 = (void volatile *)docptr;
3558#line 275
3559 __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
3560#line 275
3561 writeb(__cil_tmp9, __cil_tmp13);
3562#line 274
3563 i = i + 1;
3564 }
3565 ldv_19361: ;
3566#line 274
3567 if (i < len) {
3568#line 275
3569 goto ldv_19360;
3570 } else {
3571#line 277
3572 goto ldv_19362;
3573 }
3574 ldv_19362: ;
3575#line 279
3576 return;
3577}
3578}
3579#line 282 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
3580static int DoC_IdentChip(struct DiskOnChip *doc , int floor , int chip )
3581{ int mfr ;
3582 int id ;
3583 int i ;
3584 int j ;
3585 char volatile dummy ;
3586 void *docptr ;
3587 unsigned char tmp ;
3588 unsigned char tmp___0 ;
3589 unsigned char tmp___1 ;
3590 unsigned char tmp___2 ;
3591 unsigned char tmp___3 ;
3592 unsigned char tmp___4 ;
3593 unsigned char tmp___5 ;
3594 unsigned char tmp___6 ;
3595 int tmp___7 ;
3596 unsigned long __cil_tmp19 ;
3597 unsigned long __cil_tmp20 ;
3598 void volatile *__cil_tmp21 ;
3599 void volatile *__cil_tmp22 ;
3600 void volatile *__cil_tmp23 ;
3601 void volatile *__cil_tmp24 ;
3602 void const volatile *__cil_tmp25 ;
3603 void const volatile *__cil_tmp26 ;
3604 void const volatile *__cil_tmp27 ;
3605 void const volatile *__cil_tmp28 ;
3606 void const volatile *__cil_tmp29 ;
3607 void const volatile *__cil_tmp30 ;
3608 unsigned long __cil_tmp31 ;
3609 unsigned long __cil_tmp32 ;
3610 char __cil_tmp33 ;
3611 signed char __cil_tmp34 ;
3612 int __cil_tmp35 ;
3613 void const volatile *__cil_tmp36 ;
3614 void const volatile *__cil_tmp37 ;
3615 void const volatile *__cil_tmp38 ;
3616 void const volatile *__cil_tmp39 ;
3617 unsigned long __cil_tmp40 ;
3618 unsigned long __cil_tmp41 ;
3619 char __cil_tmp42 ;
3620 signed char __cil_tmp43 ;
3621 int __cil_tmp44 ;
3622 void const volatile *__cil_tmp45 ;
3623 void const volatile *__cil_tmp46 ;
3624 void const volatile *__cil_tmp47 ;
3625 void const volatile *__cil_tmp48 ;
3626 void const volatile *__cil_tmp49 ;
3627 void const volatile *__cil_tmp50 ;
3628 void volatile *__cil_tmp51 ;
3629 void volatile *__cil_tmp52 ;
3630 unsigned long __cil_tmp53 ;
3631 unsigned long __cil_tmp54 ;
3632 unsigned long __cil_tmp55 ;
3633 int __cil_tmp56 ;
3634 unsigned long __cil_tmp57 ;
3635 unsigned long __cil_tmp58 ;
3636 int __cil_tmp59 ;
3637 unsigned long __cil_tmp60 ;
3638 unsigned long __cil_tmp61 ;
3639 int __cil_tmp62 ;
3640 unsigned long __cil_tmp63 ;
3641 unsigned long __cil_tmp64 ;
3642 unsigned long __cil_tmp65 ;
3643 char *__cil_tmp66 ;
3644 unsigned long __cil_tmp67 ;
3645 unsigned long __cil_tmp68 ;
3646 char *__cil_tmp69 ;
3647 unsigned long __cil_tmp70 ;
3648 unsigned long __cil_tmp71 ;
3649 unsigned long __cil_tmp72 ;
3650 unsigned long __cil_tmp73 ;
3651 unsigned long __cil_tmp74 ;
3652 unsigned long __cil_tmp75 ;
3653 unsigned long __cil_tmp76 ;
3654 unsigned long __cil_tmp77 ;
3655 unsigned long __cil_tmp78 ;
3656 int __cil_tmp79 ;
3657 unsigned long __cil_tmp80 ;
3658 unsigned long __cil_tmp81 ;
3659 unsigned long __cil_tmp82 ;
3660 unsigned long __cil_tmp83 ;
3661 unsigned long __cil_tmp84 ;
3662 unsigned long __cil_tmp85 ;
3663 char __cil_tmp86 ;
3664 int __cil_tmp87 ;
3665 unsigned long __cil_tmp88 ;
3666 unsigned long __cil_tmp89 ;
3667 unsigned long __cil_tmp90 ;
3668 unsigned long __cil_tmp91 ;
3669 char *__cil_tmp92 ;
3670 unsigned long __cil_tmp93 ;
3671 unsigned long __cil_tmp94 ;
3672 unsigned long __cil_tmp95 ;
3673 char *__cil_tmp96 ;
3674 unsigned long __cil_tmp97 ;
3675 char *__cil_tmp98 ;
3676 unsigned long __cil_tmp99 ;
3677 unsigned long __cil_tmp100 ;
3678 unsigned long __cil_tmp101 ;
3679 char *__cil_tmp102 ;
3680 unsigned long __cil_tmp103 ;
3681
3682 {
3683 {
3684#line 286
3685 __cil_tmp19 = (unsigned long )doc;
3686#line 286
3687 __cil_tmp20 = __cil_tmp19 + 8;
3688#line 286
3689 docptr = *((void **)__cil_tmp20);
3690#line 289
3691 DoC_SelectFloor(docptr, floor);
3692#line 290
3693 DoC_SelectChip(docptr, chip);
3694#line 293
3695 __cil_tmp21 = (void volatile *)docptr;
3696#line 293
3697 __cil_tmp22 = __cil_tmp21 + 4130U;
3698#line 293
3699 writeb((unsigned char)192, __cil_tmp22);
3700#line 296
3701 DoC_Command(docptr, (unsigned char)255, (unsigned char)0);
3702#line 297
3703 DoC_WaitReady(docptr);
3704#line 300
3705 DoC_Command(docptr, (unsigned char)144, (unsigned char)0);
3706#line 303
3707 DoC_Address(doc, 1, 0UL, (unsigned char)0, (unsigned char)0);
3708#line 305
3709 __cil_tmp23 = (void volatile *)docptr;
3710#line 305
3711 __cil_tmp24 = __cil_tmp23 + 4128U;
3712#line 305
3713 writeb((unsigned char)0, __cil_tmp24);
3714#line 306
3715 DoC_WaitReady(docptr);
3716#line 310
3717 __cil_tmp25 = (void const volatile *)docptr;
3718#line 310
3719 __cil_tmp26 = __cil_tmp25 + 4138U;
3720#line 310
3721 tmp = readb(__cil_tmp26);
3722#line 310
3723 dummy = (char volatile )tmp;
3724#line 311
3725 __cil_tmp27 = (void const volatile *)docptr;
3726#line 311
3727 __cil_tmp28 = __cil_tmp27 + 4138U;
3728#line 311
3729 tmp___0 = readb(__cil_tmp28);
3730#line 311
3731 dummy = (char volatile )tmp___0;
3732#line 313
3733 __cil_tmp29 = (void const volatile *)docptr;
3734#line 313
3735 __cil_tmp30 = __cil_tmp29 + 2048U;
3736#line 313
3737 tmp___1 = readb(__cil_tmp30);
3738#line 313
3739 mfr = (int )tmp___1;
3740 }
3741 {
3742#line 314
3743 __cil_tmp31 = (unsigned long )doc;
3744#line 314
3745 __cil_tmp32 = __cil_tmp31 + 54;
3746#line 314
3747 __cil_tmp33 = *((char *)__cil_tmp32);
3748#line 314
3749 __cil_tmp34 = (signed char )__cil_tmp33;
3750#line 314
3751 __cil_tmp35 = (int )__cil_tmp34;
3752#line 314
3753 if (__cil_tmp35 != 0) {
3754 {
3755#line 315
3756 __cil_tmp36 = (void const volatile *)docptr;
3757#line 315
3758 __cil_tmp37 = __cil_tmp36 + 2048U;
3759#line 315
3760 tmp___2 = readb(__cil_tmp37);
3761#line 315
3762 dummy = (char volatile )tmp___2;
3763 }
3764 } else {
3765
3766 }
3767 }
3768 {
3769#line 317
3770 __cil_tmp38 = (void const volatile *)docptr;
3771#line 317
3772 __cil_tmp39 = __cil_tmp38 + 2048U;
3773#line 317
3774 tmp___3 = readb(__cil_tmp39);
3775#line 317
3776 id = (int )tmp___3;
3777 }
3778 {
3779#line 318
3780 __cil_tmp40 = (unsigned long )doc;
3781#line 318
3782 __cil_tmp41 = __cil_tmp40 + 54;
3783#line 318
3784 __cil_tmp42 = *((char *)__cil_tmp41);
3785#line 318
3786 __cil_tmp43 = (signed char )__cil_tmp42;
3787#line 318
3788 __cil_tmp44 = (int )__cil_tmp43;
3789#line 318
3790 if (__cil_tmp44 != 0) {
3791 {
3792#line 319
3793 __cil_tmp45 = (void const volatile *)docptr;
3794#line 319
3795 __cil_tmp46 = __cil_tmp45 + 2048U;
3796#line 319
3797 tmp___4 = readb(__cil_tmp46);
3798#line 319
3799 dummy = (char volatile )tmp___4;
3800 }
3801 } else {
3802
3803 }
3804 }
3805 {
3806#line 321
3807 __cil_tmp47 = (void const volatile *)docptr;
3808#line 321
3809 __cil_tmp48 = __cil_tmp47 + 4140U;
3810#line 321
3811 tmp___5 = readb(__cil_tmp48);
3812#line 321
3813 dummy = (char volatile )tmp___5;
3814#line 322
3815 __cil_tmp49 = (void const volatile *)docptr;
3816#line 322
3817 __cil_tmp50 = __cil_tmp49 + 4140U;
3818#line 322
3819 tmp___6 = readb(__cil_tmp50);
3820#line 322
3821 dummy = (char volatile )tmp___6;
3822#line 325
3823 __cil_tmp51 = (void volatile *)docptr;
3824#line 325
3825 __cil_tmp52 = __cil_tmp51 + 4130U;
3826#line 325
3827 writeb((unsigned char)0, __cil_tmp52);
3828 }
3829#line 328
3830 if (mfr == 255) {
3831#line 329
3832 return (0);
3833 } else
3834#line 328
3835 if (mfr == 0) {
3836#line 329
3837 return (0);
3838 } else {
3839
3840 }
3841#line 331
3842 i = 0;
3843#line 331
3844 goto ldv_19379;
3845 ldv_19378: ;
3846 {
3847#line 332
3848 __cil_tmp53 = i * 48UL;
3849#line 332
3850 __cil_tmp54 = __cil_tmp53 + 8;
3851#line 332
3852 __cil_tmp55 = (unsigned long )(nand_flash_ids) + __cil_tmp54;
3853#line 332
3854 __cil_tmp56 = *((int *)__cil_tmp55);
3855#line 332
3856 if (__cil_tmp56 == id) {
3857#line 334
3858 j = 0;
3859#line 334
3860 goto ldv_19376;
3861 ldv_19375: ;
3862 {
3863#line 335
3864 __cil_tmp57 = j * 16UL;
3865#line 335
3866 __cil_tmp58 = (unsigned long )(nand_manuf_ids) + __cil_tmp57;
3867#line 335
3868 __cil_tmp59 = *((int *)__cil_tmp58);
3869#line 335
3870 if (__cil_tmp59 == mfr) {
3871#line 336
3872 goto ldv_19374;
3873 } else {
3874
3875 }
3876 }
3877#line 334
3878 j = j + 1;
3879 ldv_19376: ;
3880 {
3881#line 334
3882 __cil_tmp60 = j * 16UL;
3883#line 334
3884 __cil_tmp61 = (unsigned long )(nand_manuf_ids) + __cil_tmp60;
3885#line 334
3886 __cil_tmp62 = *((int *)__cil_tmp61);
3887#line 334
3888 if (__cil_tmp62 != 0) {
3889#line 335
3890 goto ldv_19375;
3891 } else {
3892#line 337
3893 goto ldv_19374;
3894 }
3895 }
3896 ldv_19374:
3897 {
3898#line 338
3899 __cil_tmp63 = j * 16UL;
3900#line 338
3901 __cil_tmp64 = __cil_tmp63 + 8;
3902#line 338
3903 __cil_tmp65 = (unsigned long )(nand_manuf_ids) + __cil_tmp64;
3904#line 338
3905 __cil_tmp66 = *((char **)__cil_tmp65);
3906#line 338
3907 __cil_tmp67 = i * 48UL;
3908#line 338
3909 __cil_tmp68 = (unsigned long )(nand_flash_ids) + __cil_tmp67;
3910#line 338
3911 __cil_tmp69 = *((char **)__cil_tmp68);
3912#line 338
3913 printk("<6>Flash chip found: Manufacturer ID: %2.2X, Chip ID: %2.2X (%s:%s)\n",
3914 mfr, id, __cil_tmp66, __cil_tmp69);
3915#line 341
3916 __cil_tmp70 = (unsigned long )doc;
3917#line 341
3918 __cil_tmp71 = __cil_tmp70 + 32;
3919#line 341
3920 *((unsigned long *)__cil_tmp71) = (unsigned long )mfr;
3921#line 342
3922 __cil_tmp72 = (unsigned long )doc;
3923#line 342
3924 __cil_tmp73 = __cil_tmp72 + 40;
3925#line 342
3926 *((unsigned long *)__cil_tmp73) = (unsigned long )id;
3927#line 343
3928 __cil_tmp74 = i * 48UL;
3929#line 343
3930 __cil_tmp75 = __cil_tmp74 + 24;
3931#line 343
3932 __cil_tmp76 = (unsigned long )(nand_flash_ids) + __cil_tmp75;
3933#line 343
3934 __cil_tmp77 = *((unsigned long *)__cil_tmp76);
3935#line 343
3936 __cil_tmp78 = __cil_tmp77 << 20;
3937#line 343
3938 __cil_tmp79 = (int )__cil_tmp78;
3939#line 343
3940 tmp___7 = ffs(__cil_tmp79);
3941#line 343
3942 __cil_tmp80 = (unsigned long )doc;
3943#line 343
3944 __cil_tmp81 = __cil_tmp80 + 48;
3945#line 343
3946 *((int *)__cil_tmp81) = tmp___7 + -1;
3947#line 344
3948 __cil_tmp82 = (unsigned long )doc;
3949#line 344
3950 __cil_tmp83 = __cil_tmp82 + 56;
3951#line 344
3952 __cil_tmp84 = (unsigned long )doc;
3953#line 344
3954 __cil_tmp85 = __cil_tmp84 + 54;
3955#line 344
3956 __cil_tmp86 = *((char *)__cil_tmp85);
3957#line 344
3958 __cil_tmp87 = (int )__cil_tmp86;
3959#line 344
3960 __cil_tmp88 = i * 48UL;
3961#line 344
3962 __cil_tmp89 = __cil_tmp88 + 32;
3963#line 344
3964 __cil_tmp90 = (unsigned long )(nand_flash_ids) + __cil_tmp89;
3965#line 344
3966 __cil_tmp91 = *((unsigned long *)__cil_tmp90);
3967#line 344
3968 *((unsigned long *)__cil_tmp83) = __cil_tmp91 << __cil_tmp87;
3969 }
3970#line 345
3971 goto ldv_19377;
3972 } else {
3973
3974 }
3975 }
3976#line 331
3977 i = i + 1;
3978 ldv_19379: ;
3979 {
3980#line 331
3981 __cil_tmp92 = (char *)0;
3982#line 331
3983 __cil_tmp93 = (unsigned long )__cil_tmp92;
3984#line 331
3985 __cil_tmp94 = i * 48UL;
3986#line 331
3987 __cil_tmp95 = (unsigned long )(nand_flash_ids) + __cil_tmp94;
3988#line 331
3989 __cil_tmp96 = *((char **)__cil_tmp95);
3990#line 331
3991 __cil_tmp97 = (unsigned long )__cil_tmp96;
3992#line 331
3993 if (__cil_tmp97 != __cil_tmp93) {
3994#line 332
3995 goto ldv_19378;
3996 } else {
3997#line 334
3998 goto ldv_19377;
3999 }
4000 }
4001 ldv_19377: ;
4002 {
4003#line 349
4004 __cil_tmp98 = (char *)0;
4005#line 349
4006 __cil_tmp99 = (unsigned long )__cil_tmp98;
4007#line 349
4008 __cil_tmp100 = i * 48UL;
4009#line 349
4010 __cil_tmp101 = (unsigned long )(nand_flash_ids) + __cil_tmp100;
4011#line 349
4012 __cil_tmp102 = *((char **)__cil_tmp101);
4013#line 349
4014 __cil_tmp103 = (unsigned long )__cil_tmp102;
4015#line 349
4016 if (__cil_tmp103 == __cil_tmp99) {
4017#line 350
4018 return (0);
4019 } else {
4020
4021 }
4022 }
4023#line 351
4024 return (1);
4025}
4026}
4027#line 355 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
4028static void DoC_ScanChips(struct DiskOnChip *this )
4029{ int floor ;
4030 int chip ;
4031 int numchips[2U] ;
4032 int ret ;
4033 u_char conf ;
4034 unsigned char tmp ;
4035 char *tmp___0 ;
4036 unsigned char tmp___1 ;
4037 void *tmp___2 ;
4038 unsigned long __cil_tmp11 ;
4039 unsigned long __cil_tmp12 ;
4040 unsigned long __cil_tmp13 ;
4041 unsigned long __cil_tmp14 ;
4042 unsigned long __cil_tmp15 ;
4043 unsigned long __cil_tmp16 ;
4044 unsigned long __cil_tmp17 ;
4045 unsigned long __cil_tmp18 ;
4046 unsigned long __cil_tmp19 ;
4047 unsigned long __cil_tmp20 ;
4048 unsigned char __cil_tmp21 ;
4049 unsigned int __cil_tmp22 ;
4050 unsigned long __cil_tmp23 ;
4051 unsigned long __cil_tmp24 ;
4052 unsigned long __cil_tmp25 ;
4053 unsigned long __cil_tmp26 ;
4054 void *__cil_tmp27 ;
4055 void const volatile *__cil_tmp28 ;
4056 void const volatile *__cil_tmp29 ;
4057 int __cil_tmp30 ;
4058 int __cil_tmp31 ;
4059 unsigned long __cil_tmp32 ;
4060 unsigned long __cil_tmp33 ;
4061 char __cil_tmp34 ;
4062 int __cil_tmp35 ;
4063 int __cil_tmp36 ;
4064 unsigned long __cil_tmp37 ;
4065 unsigned long __cil_tmp38 ;
4066 void *__cil_tmp39 ;
4067 void const volatile *__cil_tmp40 ;
4068 void const volatile *__cil_tmp41 ;
4069 unsigned long __cil_tmp42 ;
4070 unsigned long __cil_tmp43 ;
4071 char __cil_tmp44 ;
4072 signed char __cil_tmp45 ;
4073 int __cil_tmp46 ;
4074 unsigned int __cil_tmp47 ;
4075 unsigned int __cil_tmp48 ;
4076 int __cil_tmp49 ;
4077 unsigned char __cil_tmp50 ;
4078 unsigned long __cil_tmp51 ;
4079 unsigned long __cil_tmp52 ;
4080 void *__cil_tmp53 ;
4081 void volatile *__cil_tmp54 ;
4082 void volatile *__cil_tmp55 ;
4083 unsigned long __cil_tmp56 ;
4084 unsigned long __cil_tmp57 ;
4085 unsigned long __cil_tmp58 ;
4086 unsigned long __cil_tmp59 ;
4087 unsigned long __cil_tmp60 ;
4088 unsigned long __cil_tmp61 ;
4089 int __cil_tmp62 ;
4090 unsigned long __cil_tmp63 ;
4091 unsigned long __cil_tmp64 ;
4092 unsigned long __cil_tmp65 ;
4093 unsigned long __cil_tmp66 ;
4094 int __cil_tmp67 ;
4095 unsigned long __cil_tmp68 ;
4096 unsigned long __cil_tmp69 ;
4097 int __cil_tmp70 ;
4098 unsigned long __cil_tmp71 ;
4099 unsigned long __cil_tmp72 ;
4100 int __cil_tmp73 ;
4101 unsigned long __cil_tmp74 ;
4102 unsigned long __cil_tmp75 ;
4103 unsigned long __cil_tmp76 ;
4104 unsigned long __cil_tmp77 ;
4105 struct Nand *__cil_tmp78 ;
4106 unsigned long __cil_tmp79 ;
4107 unsigned long __cil_tmp80 ;
4108 unsigned long __cil_tmp81 ;
4109 struct Nand *__cil_tmp82 ;
4110 unsigned long __cil_tmp83 ;
4111 unsigned long __cil_tmp84 ;
4112 unsigned long __cil_tmp85 ;
4113 unsigned long __cil_tmp86 ;
4114 struct Nand *__cil_tmp87 ;
4115 struct Nand *__cil_tmp88 ;
4116 unsigned long __cil_tmp89 ;
4117 unsigned long __cil_tmp90 ;
4118 unsigned long __cil_tmp91 ;
4119 struct Nand *__cil_tmp92 ;
4120 struct Nand *__cil_tmp93 ;
4121 unsigned long __cil_tmp94 ;
4122 unsigned long __cil_tmp95 ;
4123 unsigned long __cil_tmp96 ;
4124 unsigned long __cil_tmp97 ;
4125 unsigned long __cil_tmp98 ;
4126 struct Nand *__cil_tmp99 ;
4127 struct Nand *__cil_tmp100 ;
4128 unsigned long __cil_tmp101 ;
4129 unsigned long __cil_tmp102 ;
4130 unsigned long __cil_tmp103 ;
4131 unsigned long __cil_tmp104 ;
4132 unsigned long __cil_tmp105 ;
4133 struct Nand *__cil_tmp106 ;
4134 struct Nand *__cil_tmp107 ;
4135 unsigned long __cil_tmp108 ;
4136 unsigned long __cil_tmp109 ;
4137 unsigned long __cil_tmp110 ;
4138 unsigned long __cil_tmp111 ;
4139 int __cil_tmp112 ;
4140 unsigned long __cil_tmp113 ;
4141 unsigned long __cil_tmp114 ;
4142 unsigned long __cil_tmp115 ;
4143 unsigned long __cil_tmp116 ;
4144 int __cil_tmp117 ;
4145 unsigned long __cil_tmp118 ;
4146 unsigned long __cil_tmp119 ;
4147 int __cil_tmp120 ;
4148 int __cil_tmp121 ;
4149 unsigned long __cil_tmp122 ;
4150 unsigned long __cil_tmp123 ;
4151 int __cil_tmp124 ;
4152 unsigned long __cil_tmp125 ;
4153 unsigned long __cil_tmp126 ;
4154 unsigned long __cil_tmp127 ;
4155 unsigned long __cil_tmp128 ;
4156
4157 {
4158#line 361
4159 __cil_tmp11 = (unsigned long )this;
4160#line 361
4161 __cil_tmp12 = __cil_tmp11 + 72;
4162#line 361
4163 *((int *)__cil_tmp12) = 0;
4164#line 362
4165 __cil_tmp13 = (unsigned long )this;
4166#line 362
4167 __cil_tmp14 = __cil_tmp13 + 32;
4168#line 362
4169 *((unsigned long *)__cil_tmp14) = 0UL;
4170#line 363
4171 __cil_tmp15 = (unsigned long )this;
4172#line 363
4173 __cil_tmp16 = __cil_tmp15 + 40;
4174#line 363
4175 *((unsigned long *)__cil_tmp16) = 0UL;
4176#line 366
4177 __cil_tmp17 = (unsigned long )this;
4178#line 366
4179 __cil_tmp18 = __cil_tmp17 + 54;
4180#line 366
4181 *((char *)__cil_tmp18) = (char)0;
4182 {
4183#line 367
4184 __cil_tmp19 = (unsigned long )this;
4185#line 367
4186 __cil_tmp20 = __cil_tmp19 + 24;
4187#line 367
4188 __cil_tmp21 = *((unsigned char *)__cil_tmp20);
4189#line 367
4190 __cil_tmp22 = (unsigned int )__cil_tmp21;
4191#line 367
4192 if (__cil_tmp22 == 64U) {
4193#line 368
4194 __cil_tmp23 = (unsigned long )this;
4195#line 368
4196 __cil_tmp24 = __cil_tmp23 + 54;
4197#line 368
4198 *((char *)__cil_tmp24) = (char)1;
4199 } else {
4200
4201 }
4202 }
4203 {
4204#line 371
4205 __cil_tmp25 = (unsigned long )this;
4206#line 371
4207 __cil_tmp26 = __cil_tmp25 + 8;
4208#line 371
4209 __cil_tmp27 = *((void **)__cil_tmp26);
4210#line 371
4211 __cil_tmp28 = (void const volatile *)__cil_tmp27;
4212#line 371
4213 __cil_tmp29 = __cil_tmp28 + 4106U;
4214#line 371
4215 tmp___1 = readb(__cil_tmp29);
4216 }
4217 {
4218#line 371
4219 __cil_tmp30 = (int )tmp___1;
4220#line 371
4221 __cil_tmp31 = __cil_tmp30 & 4;
4222#line 371
4223 __cil_tmp32 = (unsigned long )this;
4224#line 371
4225 __cil_tmp33 = __cil_tmp32 + 54;
4226#line 371
4227 __cil_tmp34 = *((char *)__cil_tmp33);
4228#line 371
4229 __cil_tmp35 = (int )__cil_tmp34;
4230#line 371
4231 __cil_tmp36 = __cil_tmp35 << 2;
4232#line 371
4233 if (__cil_tmp36 != __cil_tmp31) {
4234 {
4235#line 373
4236 __cil_tmp37 = (unsigned long )this;
4237#line 373
4238 __cil_tmp38 = __cil_tmp37 + 8;
4239#line 373
4240 __cil_tmp39 = *((void **)__cil_tmp38);
4241#line 373
4242 __cil_tmp40 = (void const volatile *)__cil_tmp39;
4243#line 373
4244 __cil_tmp41 = __cil_tmp40 + 4106U;
4245#line 373
4246 tmp = readb(__cil_tmp41);
4247#line 373
4248 conf = tmp;
4249 }
4250 {
4251#line 374
4252 __cil_tmp42 = (unsigned long )this;
4253#line 374
4254 __cil_tmp43 = __cil_tmp42 + 54;
4255#line 374
4256 __cil_tmp44 = *((char *)__cil_tmp43);
4257#line 374
4258 __cil_tmp45 = (signed char )__cil_tmp44;
4259#line 374
4260 __cil_tmp46 = (int )__cil_tmp45;
4261#line 374
4262 if (__cil_tmp46 != 0) {
4263#line 374
4264 tmp___0 = (char *)"on (16-bit)";
4265 } else {
4266#line 374
4267 tmp___0 = (char *)"off (8-bit)";
4268 }
4269 }
4270 {
4271#line 374
4272 printk("<5>Setting DiskOnChip Millennium Plus interleave to %s\n", tmp___0);
4273#line 376
4274 __cil_tmp47 = (unsigned int )conf;
4275#line 376
4276 __cil_tmp48 = __cil_tmp47 ^ 4U;
4277#line 376
4278 conf = (u_char )__cil_tmp48;
4279#line 377
4280 __cil_tmp49 = (int )conf;
4281#line 377
4282 __cil_tmp50 = (unsigned char )__cil_tmp49;
4283#line 377
4284 __cil_tmp51 = (unsigned long )this;
4285#line 377
4286 __cil_tmp52 = __cil_tmp51 + 8;
4287#line 377
4288 __cil_tmp53 = *((void **)__cil_tmp52);
4289#line 377
4290 __cil_tmp54 = (void volatile *)__cil_tmp53;
4291#line 377
4292 __cil_tmp55 = __cil_tmp54 + 4106U;
4293#line 377
4294 writeb(__cil_tmp50, __cil_tmp55);
4295 }
4296 } else {
4297
4298 }
4299 }
4300#line 381
4301 floor = 0;
4302#line 381
4303 ret = 1;
4304#line 381
4305 goto ldv_19392;
4306 ldv_19391:
4307#line 382
4308 __cil_tmp56 = floor * 4UL;
4309#line 382
4310 __cil_tmp57 = (unsigned long )(numchips) + __cil_tmp56;
4311#line 382
4312 *((int *)__cil_tmp57) = 0;
4313#line 383
4314 chip = 0;
4315#line 383
4316 goto ldv_19389;
4317 ldv_19388:
4318 {
4319#line 384
4320 ret = DoC_IdentChip(this, floor, chip);
4321 }
4322#line 385
4323 if (ret != 0) {
4324#line 386
4325 __cil_tmp58 = floor * 4UL;
4326#line 386
4327 __cil_tmp59 = (unsigned long )(numchips) + __cil_tmp58;
4328#line 386
4329 __cil_tmp60 = floor * 4UL;
4330#line 386
4331 __cil_tmp61 = (unsigned long )(numchips) + __cil_tmp60;
4332#line 386
4333 __cil_tmp62 = *((int *)__cil_tmp61);
4334#line 386
4335 *((int *)__cil_tmp59) = __cil_tmp62 + 1;
4336#line 387
4337 __cil_tmp63 = (unsigned long )this;
4338#line 387
4339 __cil_tmp64 = __cil_tmp63 + 72;
4340#line 387
4341 __cil_tmp65 = (unsigned long )this;
4342#line 387
4343 __cil_tmp66 = __cil_tmp65 + 72;
4344#line 387
4345 __cil_tmp67 = *((int *)__cil_tmp66);
4346#line 387
4347 *((int *)__cil_tmp64) = __cil_tmp67 + 1;
4348 } else {
4349
4350 }
4351#line 383
4352 chip = chip + 1;
4353 ldv_19389: ;
4354#line 383
4355 if (chip <= 0) {
4356#line 383
4357 if (ret != 0) {
4358#line 384
4359 goto ldv_19388;
4360 } else {
4361#line 386
4362 goto ldv_19390;
4363 }
4364 } else {
4365#line 386
4366 goto ldv_19390;
4367 }
4368 ldv_19390:
4369#line 381
4370 floor = floor + 1;
4371 ldv_19392: ;
4372#line 381
4373 if (floor <= 1) {
4374#line 382
4375 goto ldv_19391;
4376 } else {
4377#line 384
4378 goto ldv_19393;
4379 }
4380 ldv_19393: ;
4381 {
4382#line 392
4383 __cil_tmp68 = (unsigned long )this;
4384#line 392
4385 __cil_tmp69 = __cil_tmp68 + 72;
4386#line 392
4387 __cil_tmp70 = *((int *)__cil_tmp69);
4388#line 392
4389 if (__cil_tmp70 == 0) {
4390 {
4391#line 393
4392 printk("No flash chips recognised.\n");
4393 }
4394#line 394
4395 return;
4396 } else {
4397
4398 }
4399 }
4400 {
4401#line 398
4402 __cil_tmp71 = (unsigned long )this;
4403#line 398
4404 __cil_tmp72 = __cil_tmp71 + 72;
4405#line 398
4406 __cil_tmp73 = *((int *)__cil_tmp72);
4407#line 398
4408 __cil_tmp74 = (unsigned long )__cil_tmp73;
4409#line 398
4410 __cil_tmp75 = __cil_tmp74 * 24UL;
4411#line 398
4412 tmp___2 = kmalloc(__cil_tmp75, 208U);
4413#line 398
4414 __cil_tmp76 = (unsigned long )this;
4415#line 398
4416 __cil_tmp77 = __cil_tmp76 + 80;
4417#line 398
4418 *((struct Nand **)__cil_tmp77) = (struct Nand *)tmp___2;
4419 }
4420 {
4421#line 399
4422 __cil_tmp78 = (struct Nand *)0;
4423#line 399
4424 __cil_tmp79 = (unsigned long )__cil_tmp78;
4425#line 399
4426 __cil_tmp80 = (unsigned long )this;
4427#line 399
4428 __cil_tmp81 = __cil_tmp80 + 80;
4429#line 399
4430 __cil_tmp82 = *((struct Nand **)__cil_tmp81);
4431#line 399
4432 __cil_tmp83 = (unsigned long )__cil_tmp82;
4433#line 399
4434 if (__cil_tmp83 == __cil_tmp79) {
4435 {
4436#line 400
4437 printk("MTD: No memory for allocating chip info structures\n");
4438 }
4439#line 401
4440 return;
4441 } else {
4442
4443 }
4444 }
4445#line 406
4446 floor = 0;
4447#line 406
4448 ret = 0;
4449#line 406
4450 goto ldv_19398;
4451 ldv_19397:
4452#line 407
4453 chip = 0;
4454#line 407
4455 goto ldv_19395;
4456 ldv_19394:
4457#line 408
4458 __cil_tmp84 = (unsigned long )ret;
4459#line 408
4460 __cil_tmp85 = (unsigned long )this;
4461#line 408
4462 __cil_tmp86 = __cil_tmp85 + 80;
4463#line 408
4464 __cil_tmp87 = *((struct Nand **)__cil_tmp86);
4465#line 408
4466 __cil_tmp88 = __cil_tmp87 + __cil_tmp84;
4467#line 408
4468 *((char *)__cil_tmp88) = (char )floor;
4469#line 409
4470 __cil_tmp89 = (unsigned long )ret;
4471#line 409
4472 __cil_tmp90 = (unsigned long )this;
4473#line 409
4474 __cil_tmp91 = __cil_tmp90 + 80;
4475#line 409
4476 __cil_tmp92 = *((struct Nand **)__cil_tmp91);
4477#line 409
4478 __cil_tmp93 = __cil_tmp92 + __cil_tmp89;
4479#line 409
4480 __cil_tmp94 = (unsigned long )__cil_tmp93;
4481#line 409
4482 __cil_tmp95 = __cil_tmp94 + 1;
4483#line 409
4484 *((char *)__cil_tmp95) = (char )chip;
4485#line 410
4486 __cil_tmp96 = (unsigned long )ret;
4487#line 410
4488 __cil_tmp97 = (unsigned long )this;
4489#line 410
4490 __cil_tmp98 = __cil_tmp97 + 80;
4491#line 410
4492 __cil_tmp99 = *((struct Nand **)__cil_tmp98);
4493#line 410
4494 __cil_tmp100 = __cil_tmp99 + __cil_tmp96;
4495#line 410
4496 __cil_tmp101 = (unsigned long )__cil_tmp100;
4497#line 410
4498 __cil_tmp102 = __cil_tmp101 + 8;
4499#line 410
4500 *((unsigned long *)__cil_tmp102) = 0UL;
4501#line 411
4502 __cil_tmp103 = (unsigned long )ret;
4503#line 411
4504 __cil_tmp104 = (unsigned long )this;
4505#line 411
4506 __cil_tmp105 = __cil_tmp104 + 80;
4507#line 411
4508 __cil_tmp106 = *((struct Nand **)__cil_tmp105);
4509#line 411
4510 __cil_tmp107 = __cil_tmp106 + __cil_tmp103;
4511#line 411
4512 __cil_tmp108 = (unsigned long )__cil_tmp107;
4513#line 411
4514 __cil_tmp109 = __cil_tmp108 + 16;
4515#line 411
4516 *((unsigned char *)__cil_tmp109) = (unsigned char)80;
4517#line 412
4518 ret = ret + 1;
4519#line 407
4520 chip = chip + 1;
4521 ldv_19395: ;
4522 {
4523#line 407
4524 __cil_tmp110 = floor * 4UL;
4525#line 407
4526 __cil_tmp111 = (unsigned long )(numchips) + __cil_tmp110;
4527#line 407
4528 __cil_tmp112 = *((int *)__cil_tmp111);
4529#line 407
4530 if (__cil_tmp112 > chip) {
4531#line 408
4532 goto ldv_19394;
4533 } else {
4534#line 410
4535 goto ldv_19396;
4536 }
4537 }
4538 ldv_19396:
4539#line 406
4540 floor = floor + 1;
4541 ldv_19398: ;
4542#line 406
4543 if (floor <= 1) {
4544#line 407
4545 goto ldv_19397;
4546 } else {
4547#line 409
4548 goto ldv_19399;
4549 }
4550 ldv_19399:
4551 {
4552#line 417
4553 __cil_tmp113 = (unsigned long )this;
4554#line 417
4555 __cil_tmp114 = __cil_tmp113 + 16;
4556#line 417
4557 __cil_tmp115 = (unsigned long )this;
4558#line 417
4559 __cil_tmp116 = __cil_tmp115 + 48;
4560#line 417
4561 __cil_tmp117 = *((int *)__cil_tmp116);
4562#line 417
4563 __cil_tmp118 = (unsigned long )this;
4564#line 417
4565 __cil_tmp119 = __cil_tmp118 + 72;
4566#line 417
4567 __cil_tmp120 = *((int *)__cil_tmp119);
4568#line 417
4569 __cil_tmp121 = __cil_tmp120 << __cil_tmp117;
4570#line 417
4571 *((unsigned long *)__cil_tmp114) = (unsigned long )__cil_tmp121;
4572#line 418
4573 __cil_tmp122 = (unsigned long )this;
4574#line 418
4575 __cil_tmp123 = __cil_tmp122 + 72;
4576#line 418
4577 __cil_tmp124 = *((int *)__cil_tmp123);
4578#line 418
4579 __cil_tmp125 = (unsigned long )this;
4580#line 418
4581 __cil_tmp126 = __cil_tmp125 + 16;
4582#line 418
4583 __cil_tmp127 = *((unsigned long *)__cil_tmp126);
4584#line 418
4585 __cil_tmp128 = __cil_tmp127 >> 20;
4586#line 418
4587 printk("<6>%d flash chips found. Total DiskOnChip size: %ld MiB\n", __cil_tmp124,
4588 __cil_tmp128);
4589 }
4590#line 420
4591 return;
4592}
4593}
4594#line 422 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
4595static int DoCMilPlus_is_alias(struct DiskOnChip *doc1 , struct DiskOnChip *doc2 )
4596{ int tmp1 ;
4597 int tmp2 ;
4598 int retval ;
4599 unsigned char tmp ;
4600 unsigned char tmp___0 ;
4601 unsigned char tmp___1 ;
4602 unsigned long __cil_tmp9 ;
4603 unsigned long __cil_tmp10 ;
4604 unsigned long __cil_tmp11 ;
4605 unsigned long __cil_tmp12 ;
4606 void *__cil_tmp13 ;
4607 void const volatile *__cil_tmp14 ;
4608 void const volatile *__cil_tmp15 ;
4609 unsigned long __cil_tmp16 ;
4610 unsigned long __cil_tmp17 ;
4611 void *__cil_tmp18 ;
4612 void const volatile *__cil_tmp19 ;
4613 void const volatile *__cil_tmp20 ;
4614 int __cil_tmp21 ;
4615 int __cil_tmp22 ;
4616 unsigned char __cil_tmp23 ;
4617 int __cil_tmp24 ;
4618 unsigned char __cil_tmp25 ;
4619 unsigned long __cil_tmp26 ;
4620 unsigned long __cil_tmp27 ;
4621 void *__cil_tmp28 ;
4622 void volatile *__cil_tmp29 ;
4623 void volatile *__cil_tmp30 ;
4624 unsigned long __cil_tmp31 ;
4625 unsigned long __cil_tmp32 ;
4626 void *__cil_tmp33 ;
4627 void const volatile *__cil_tmp34 ;
4628 void const volatile *__cil_tmp35 ;
4629 int __cil_tmp36 ;
4630 int __cil_tmp37 ;
4631 unsigned char __cil_tmp38 ;
4632 int __cil_tmp39 ;
4633 unsigned char __cil_tmp40 ;
4634 unsigned long __cil_tmp41 ;
4635 unsigned long __cil_tmp42 ;
4636 void *__cil_tmp43 ;
4637 void volatile *__cil_tmp44 ;
4638 void volatile *__cil_tmp45 ;
4639
4640 {
4641 {
4642#line 426
4643 __cil_tmp9 = *((unsigned long *)doc2);
4644#line 426
4645 __cil_tmp10 = *((unsigned long *)doc1);
4646#line 426
4647 if (__cil_tmp10 == __cil_tmp9) {
4648#line 427
4649 return (1);
4650 } else {
4651
4652 }
4653 }
4654 {
4655#line 434
4656 __cil_tmp11 = (unsigned long )doc1;
4657#line 434
4658 __cil_tmp12 = __cil_tmp11 + 8;
4659#line 434
4660 __cil_tmp13 = *((void **)__cil_tmp12);
4661#line 434
4662 __cil_tmp14 = (void const volatile *)__cil_tmp13;
4663#line 434
4664 __cil_tmp15 = __cil_tmp14 + 4100U;
4665#line 434
4666 tmp = readb(__cil_tmp15);
4667#line 434
4668 tmp1 = (int )tmp;
4669#line 435
4670 __cil_tmp16 = (unsigned long )doc2;
4671#line 435
4672 __cil_tmp17 = __cil_tmp16 + 8;
4673#line 435
4674 __cil_tmp18 = *((void **)__cil_tmp17);
4675#line 435
4676 __cil_tmp19 = (void const volatile *)__cil_tmp18;
4677#line 435
4678 __cil_tmp20 = __cil_tmp19 + 4100U;
4679#line 435
4680 tmp___0 = readb(__cil_tmp20);
4681#line 435
4682 tmp2 = (int )tmp___0;
4683 }
4684#line 436
4685 if (tmp1 != tmp2) {
4686#line 437
4687 return (0);
4688 } else {
4689
4690 }
4691 {
4692#line 439
4693 __cil_tmp21 = tmp1 + 1;
4694#line 439
4695 __cil_tmp22 = __cil_tmp21 % 255;
4696#line 439
4697 __cil_tmp23 = (unsigned char )__cil_tmp22;
4698#line 439
4699 __cil_tmp24 = (int )__cil_tmp23;
4700#line 439
4701 __cil_tmp25 = (unsigned char )__cil_tmp24;
4702#line 439
4703 __cil_tmp26 = (unsigned long )doc1;
4704#line 439
4705 __cil_tmp27 = __cil_tmp26 + 8;
4706#line 439
4707 __cil_tmp28 = *((void **)__cil_tmp27);
4708#line 439
4709 __cil_tmp29 = (void volatile *)__cil_tmp28;
4710#line 439
4711 __cil_tmp30 = __cil_tmp29 + 4100U;
4712#line 439
4713 writeb(__cil_tmp25, __cil_tmp30);
4714#line 440
4715 __cil_tmp31 = (unsigned long )doc2;
4716#line 440
4717 __cil_tmp32 = __cil_tmp31 + 8;
4718#line 440
4719 __cil_tmp33 = *((void **)__cil_tmp32);
4720#line 440
4721 __cil_tmp34 = (void const volatile *)__cil_tmp33;
4722#line 440
4723 __cil_tmp35 = __cil_tmp34 + 4100U;
4724#line 440
4725 tmp___1 = readb(__cil_tmp35);
4726#line 440
4727 tmp2 = (int )tmp___1;
4728 }
4729 {
4730#line 441
4731 __cil_tmp36 = tmp1 + 1;
4732#line 441
4733 __cil_tmp37 = __cil_tmp36 % 255;
4734#line 441
4735 if (__cil_tmp37 == tmp2) {
4736#line 442
4737 retval = 1;
4738 } else {
4739#line 444
4740 retval = 0;
4741 }
4742 }
4743 {
4744#line 448
4745 __cil_tmp38 = (unsigned char )tmp1;
4746#line 448
4747 __cil_tmp39 = (int )__cil_tmp38;
4748#line 448
4749 __cil_tmp40 = (unsigned char )__cil_tmp39;
4750#line 448
4751 __cil_tmp41 = (unsigned long )doc1;
4752#line 448
4753 __cil_tmp42 = __cil_tmp41 + 8;
4754#line 448
4755 __cil_tmp43 = *((void **)__cil_tmp42);
4756#line 448
4757 __cil_tmp44 = (void volatile *)__cil_tmp43;
4758#line 448
4759 __cil_tmp45 = __cil_tmp44 + 4100U;
4760#line 448
4761 writeb(__cil_tmp40, __cil_tmp45);
4762 }
4763#line 450
4764 return (retval);
4765}
4766}
4767#line 455 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
4768void DoCMilPlus_init(struct mtd_info *mtd )
4769{ struct DiskOnChip *this ;
4770 struct DiskOnChip *old ;
4771 int tmp ;
4772 uint32_t tmp___0 ;
4773 unsigned long __cil_tmp6 ;
4774 unsigned long __cil_tmp7 ;
4775 void *__cil_tmp8 ;
4776 struct mtd_info *__cil_tmp9 ;
4777 unsigned long __cil_tmp10 ;
4778 unsigned long __cil_tmp11 ;
4779 unsigned long __cil_tmp12 ;
4780 unsigned long __cil_tmp13 ;
4781 void *__cil_tmp14 ;
4782 unsigned long __cil_tmp15 ;
4783 unsigned long __cil_tmp16 ;
4784 unsigned long __cil_tmp17 ;
4785 void *__cil_tmp18 ;
4786 void volatile *__cil_tmp19 ;
4787 void const *__cil_tmp20 ;
4788 struct mtd_info *__cil_tmp21 ;
4789 unsigned long __cil_tmp22 ;
4790 unsigned long __cil_tmp23 ;
4791 unsigned long __cil_tmp24 ;
4792 struct mtd_info *__cil_tmp25 ;
4793 unsigned long __cil_tmp26 ;
4794 unsigned long __cil_tmp27 ;
4795 unsigned long __cil_tmp28 ;
4796 struct mtd_info *__cil_tmp29 ;
4797 unsigned long __cil_tmp30 ;
4798 unsigned long __cil_tmp31 ;
4799 void *__cil_tmp32 ;
4800 struct DiskOnChip *__cil_tmp33 ;
4801 unsigned long __cil_tmp34 ;
4802 unsigned long __cil_tmp35 ;
4803 unsigned long __cil_tmp36 ;
4804 unsigned long __cil_tmp37 ;
4805 unsigned long __cil_tmp38 ;
4806 unsigned long __cil_tmp39 ;
4807 unsigned long __cil_tmp40 ;
4808 unsigned long __cil_tmp41 ;
4809 unsigned long __cil_tmp42 ;
4810 unsigned long __cil_tmp43 ;
4811 unsigned long __cil_tmp44 ;
4812 unsigned long __cil_tmp45 ;
4813 unsigned long __cil_tmp46 ;
4814 unsigned long __cil_tmp47 ;
4815 unsigned long __cil_tmp48 ;
4816 unsigned long __cil_tmp49 ;
4817 unsigned long __cil_tmp50 ;
4818 unsigned long __cil_tmp51 ;
4819 unsigned long __cil_tmp52 ;
4820 unsigned long __cil_tmp53 ;
4821 unsigned long __cil_tmp54 ;
4822 unsigned long __cil_tmp55 ;
4823 unsigned long __cil_tmp56 ;
4824 unsigned long __cil_tmp57 ;
4825 unsigned long __cil_tmp58 ;
4826 unsigned long __cil_tmp59 ;
4827 unsigned long __cil_tmp60 ;
4828 unsigned long __cil_tmp61 ;
4829 unsigned long __cil_tmp62 ;
4830 unsigned long __cil_tmp63 ;
4831 unsigned long __cil_tmp64 ;
4832 unsigned long __cil_tmp65 ;
4833 unsigned long __cil_tmp66 ;
4834 unsigned long __cil_tmp67 ;
4835 void const *__cil_tmp68 ;
4836 unsigned long __cil_tmp69 ;
4837 unsigned long __cil_tmp70 ;
4838 void *__cil_tmp71 ;
4839 void volatile *__cil_tmp72 ;
4840 unsigned long __cil_tmp73 ;
4841 unsigned long __cil_tmp74 ;
4842 unsigned long __cil_tmp75 ;
4843 unsigned long __cil_tmp76 ;
4844 unsigned long __cil_tmp77 ;
4845 unsigned long __cil_tmp78 ;
4846 unsigned long __cil_tmp79 ;
4847 unsigned long __cil_tmp80 ;
4848 unsigned long __cil_tmp81 ;
4849 unsigned long __cil_tmp82 ;
4850 unsigned long __cil_tmp83 ;
4851 unsigned long __cil_tmp84 ;
4852 char const **__cil_tmp85 ;
4853 struct mtd_part_parser_data *__cil_tmp86 ;
4854 struct mtd_partition const *__cil_tmp87 ;
4855
4856 {
4857#line 457
4858 __cil_tmp6 = (unsigned long )mtd;
4859#line 457
4860 __cil_tmp7 = __cil_tmp6 + 360;
4861#line 457
4862 __cil_tmp8 = *((void **)__cil_tmp7);
4863#line 457
4864 this = (struct DiskOnChip *)__cil_tmp8;
4865#line 458
4866 old = (struct DiskOnChip *)0;
4867 {
4868#line 461
4869 __cil_tmp9 = (struct mtd_info *)0;
4870#line 461
4871 __cil_tmp10 = (unsigned long )__cil_tmp9;
4872#line 461
4873 __cil_tmp11 = (unsigned long )docmilpluslist;
4874#line 461
4875 if (__cil_tmp11 != __cil_tmp10) {
4876#line 462
4877 __cil_tmp12 = (unsigned long )docmilpluslist;
4878#line 462
4879 __cil_tmp13 = __cil_tmp12 + 360;
4880#line 462
4881 __cil_tmp14 = *((void **)__cil_tmp13);
4882#line 462
4883 old = (struct DiskOnChip *)__cil_tmp14;
4884 } else {
4885
4886 }
4887 }
4888#line 464
4889 goto ldv_19413;
4890 ldv_19412:
4891 {
4892#line 465
4893 tmp = DoCMilPlus_is_alias(this, old);
4894 }
4895#line 465
4896 if (tmp != 0) {
4897 {
4898#line 466
4899 __cil_tmp15 = *((unsigned long *)this);
4900#line 466
4901 printk("<5>Ignoring DiskOnChip Millennium Plus at 0x%lX - already configured\n",
4902 __cil_tmp15);
4903#line 469
4904 __cil_tmp16 = (unsigned long )this;
4905#line 469
4906 __cil_tmp17 = __cil_tmp16 + 8;
4907#line 469
4908 __cil_tmp18 = *((void **)__cil_tmp17);
4909#line 469
4910 __cil_tmp19 = (void volatile *)__cil_tmp18;
4911#line 469
4912 iounmap(__cil_tmp19);
4913#line 470
4914 __cil_tmp20 = (void const *)mtd;
4915#line 470
4916 kfree(__cil_tmp20);
4917 }
4918#line 471
4919 return;
4920 } else {
4921
4922 }
4923 {
4924#line 473
4925 __cil_tmp21 = (struct mtd_info *)0;
4926#line 473
4927 __cil_tmp22 = (unsigned long )__cil_tmp21;
4928#line 473
4929 __cil_tmp23 = (unsigned long )old;
4930#line 473
4931 __cil_tmp24 = __cil_tmp23 + 88;
4932#line 473
4933 __cil_tmp25 = *((struct mtd_info **)__cil_tmp24);
4934#line 473
4935 __cil_tmp26 = (unsigned long )__cil_tmp25;
4936#line 473
4937 if (__cil_tmp26 != __cil_tmp22) {
4938#line 474
4939 __cil_tmp27 = (unsigned long )old;
4940#line 474
4941 __cil_tmp28 = __cil_tmp27 + 88;
4942#line 474
4943 __cil_tmp29 = *((struct mtd_info **)__cil_tmp28);
4944#line 474
4945 __cil_tmp30 = (unsigned long )__cil_tmp29;
4946#line 474
4947 __cil_tmp31 = __cil_tmp30 + 360;
4948#line 474
4949 __cil_tmp32 = *((void **)__cil_tmp31);
4950#line 474
4951 old = (struct DiskOnChip *)__cil_tmp32;
4952 } else {
4953#line 476
4954 old = (struct DiskOnChip *)0;
4955 }
4956 }
4957 ldv_19413: ;
4958 {
4959#line 464
4960 __cil_tmp33 = (struct DiskOnChip *)0;
4961#line 464
4962 __cil_tmp34 = (unsigned long )__cil_tmp33;
4963#line 464
4964 __cil_tmp35 = (unsigned long )old;
4965#line 464
4966 if (__cil_tmp35 != __cil_tmp34) {
4967#line 465
4968 goto ldv_19412;
4969 } else {
4970#line 467
4971 goto ldv_19414;
4972 }
4973 }
4974 ldv_19414:
4975 {
4976#line 479
4977 __cil_tmp36 = (unsigned long )mtd;
4978#line 479
4979 __cil_tmp37 = __cil_tmp36 + 56;
4980#line 479
4981 *((char const **)__cil_tmp37) = "DiskOnChip Millennium Plus";
4982#line 480
4983 __cil_tmp38 = *((unsigned long *)this);
4984#line 480
4985 printk("<5>DiskOnChip Millennium Plus found at address 0x%lX\n", __cil_tmp38);
4986#line 483
4987 *((u_char *)mtd) = (u_char )4U;
4988#line 484
4989 __cil_tmp39 = (unsigned long )mtd;
4990#line 484
4991 __cil_tmp40 = __cil_tmp39 + 4;
4992#line 484
4993 *((uint32_t *)__cil_tmp40) = 1024U;
4994#line 485
4995 tmp___0 = 512U;
4996#line 485
4997 __cil_tmp41 = (unsigned long )mtd;
4998#line 485
4999 __cil_tmp42 = __cil_tmp41 + 20;
5000#line 485
5001 *((uint32_t *)__cil_tmp42) = tmp___0;
5002#line 485
5003 __cil_tmp43 = (unsigned long )mtd;
5004#line 485
5005 __cil_tmp44 = __cil_tmp43 + 24;
5006#line 485
5007 *((uint32_t *)__cil_tmp44) = tmp___0;
5008#line 486
5009 __cil_tmp45 = (unsigned long )mtd;
5010#line 486
5011 __cil_tmp46 = __cil_tmp45 + 28;
5012#line 486
5013 *((uint32_t *)__cil_tmp46) = 16U;
5014#line 487
5015 __cil_tmp47 = (unsigned long )mtd;
5016#line 487
5017 __cil_tmp48 = __cil_tmp47 + 80;
5018#line 487
5019 *((unsigned int *)__cil_tmp48) = 2U;
5020#line 488
5021 __cil_tmp49 = (unsigned long )mtd;
5022#line 488
5023 __cil_tmp50 = __cil_tmp49 + 368;
5024#line 488
5025 *((struct module **)__cil_tmp50) = & __this_module;
5026#line 489
5027 __cil_tmp51 = (unsigned long )mtd;
5028#line 489
5029 __cil_tmp52 = __cil_tmp51 + 96;
5030#line 489
5031 *((int (**)(struct mtd_info * , struct erase_info * ))__cil_tmp52) = & doc_erase;
5032#line 490
5033 __cil_tmp53 = (unsigned long )mtd;
5034#line 490
5035 __cil_tmp54 = __cil_tmp53 + 128;
5036#line 490
5037 *((int (**)(struct mtd_info * , loff_t , size_t , size_t * , u_char * ))__cil_tmp54) = & doc_read;
5038#line 491
5039 __cil_tmp55 = (unsigned long )mtd;
5040#line 491
5041 __cil_tmp56 = __cil_tmp55 + 136;
5042#line 491
5043 *((int (**)(struct mtd_info * , loff_t , size_t , size_t * , u_char const * ))__cil_tmp56) = & doc_write;
5044#line 492
5045 __cil_tmp57 = (unsigned long )mtd;
5046#line 492
5047 __cil_tmp58 = __cil_tmp57 + 152;
5048#line 492
5049 *((int (**)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))__cil_tmp58) = & doc_read_oob;
5050#line 493
5051 __cil_tmp59 = (unsigned long )mtd;
5052#line 493
5053 __cil_tmp60 = __cil_tmp59 + 160;
5054#line 493
5055 *((int (**)(struct mtd_info * , loff_t , struct mtd_oob_ops * ))__cil_tmp60) = & doc_write_oob;
5056#line 494
5057 __cil_tmp61 = (unsigned long )this;
5058#line 494
5059 __cil_tmp62 = __cil_tmp61 + 64;
5060#line 494
5061 *((int *)__cil_tmp62) = -1;
5062#line 495
5063 __cil_tmp63 = (unsigned long )this;
5064#line 495
5065 __cil_tmp64 = __cil_tmp63 + 68;
5066#line 495
5067 *((int *)__cil_tmp64) = -1;
5068#line 498
5069 DoC_ScanChips(this);
5070 }
5071 {
5072#line 500
5073 __cil_tmp65 = (unsigned long )this;
5074#line 500
5075 __cil_tmp66 = __cil_tmp65 + 16;
5076#line 500
5077 __cil_tmp67 = *((unsigned long *)__cil_tmp66);
5078#line 500
5079 if (__cil_tmp67 == 0UL) {
5080 {
5081#line 501
5082 __cil_tmp68 = (void const *)mtd;
5083#line 501
5084 kfree(__cil_tmp68);
5085#line 502
5086 __cil_tmp69 = (unsigned long )this;
5087#line 502
5088 __cil_tmp70 = __cil_tmp69 + 8;
5089#line 502
5090 __cil_tmp71 = *((void **)__cil_tmp70);
5091#line 502
5092 __cil_tmp72 = (void volatile *)__cil_tmp71;
5093#line 502
5094 iounmap(__cil_tmp72);
5095 }
5096 } else {
5097 {
5098#line 504
5099 __cil_tmp73 = (unsigned long )this;
5100#line 504
5101 __cil_tmp74 = __cil_tmp73 + 88;
5102#line 504
5103 *((struct mtd_info **)__cil_tmp74) = docmilpluslist;
5104#line 505
5105 docmilpluslist = mtd;
5106#line 506
5107 __cil_tmp75 = (unsigned long )mtd;
5108#line 506
5109 __cil_tmp76 = __cil_tmp75 + 8;
5110#line 506
5111 __cil_tmp77 = (unsigned long )this;
5112#line 506
5113 __cil_tmp78 = __cil_tmp77 + 16;
5114#line 506
5115 __cil_tmp79 = *((unsigned long *)__cil_tmp78);
5116#line 506
5117 *((uint64_t *)__cil_tmp76) = (uint64_t )__cil_tmp79;
5118#line 507
5119 __cil_tmp80 = (unsigned long )mtd;
5120#line 507
5121 __cil_tmp81 = __cil_tmp80 + 16;
5122#line 507
5123 __cil_tmp82 = (unsigned long )this;
5124#line 507
5125 __cil_tmp83 = __cil_tmp82 + 56;
5126#line 507
5127 __cil_tmp84 = *((unsigned long *)__cil_tmp83);
5128#line 507
5129 *((uint32_t *)__cil_tmp81) = (uint32_t )__cil_tmp84;
5130#line 508
5131 __cil_tmp85 = (char const **)0;
5132#line 508
5133 __cil_tmp86 = (struct mtd_part_parser_data *)0;
5134#line 508
5135 __cil_tmp87 = (struct mtd_partition const *)0;
5136#line 508
5137 mtd_device_parse_register(mtd, __cil_tmp85, __cil_tmp86, __cil_tmp87, 0);
5138 }
5139#line 509
5140 return;
5141 }
5142 }
5143#line 511
5144 return;
5145}
5146}
5147#line 589 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
5148static int doc_read(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
5149 u_char *buf )
5150{ int ret ;
5151 int i ;
5152 char volatile dummy ;
5153 loff_t fofs ;
5154 unsigned char syndrome[6U] ;
5155 unsigned char eccbuf[6U] ;
5156 struct DiskOnChip *this ;
5157 void *docptr ;
5158 struct Nand *mychip ;
5159 unsigned int tmp ;
5160 unsigned char tmp___0 ;
5161 unsigned char tmp___1 ;
5162 int nb_errors ;
5163 unsigned char tmp___2 ;
5164 unsigned long __cil_tmp20 ;
5165 unsigned long __cil_tmp21 ;
5166 void *__cil_tmp22 ;
5167 unsigned long __cil_tmp23 ;
5168 unsigned long __cil_tmp24 ;
5169 unsigned long __cil_tmp25 ;
5170 unsigned long __cil_tmp26 ;
5171 int __cil_tmp27 ;
5172 loff_t __cil_tmp28 ;
5173 unsigned long __cil_tmp29 ;
5174 unsigned long __cil_tmp30 ;
5175 unsigned long __cil_tmp31 ;
5176 struct Nand *__cil_tmp32 ;
5177 long long __cil_tmp33 ;
5178 long long __cil_tmp34 ;
5179 unsigned long long __cil_tmp35 ;
5180 unsigned long long __cil_tmp36 ;
5181 unsigned long long __cil_tmp37 ;
5182 unsigned long long __cil_tmp38 ;
5183 long long __cil_tmp39 ;
5184 long long __cil_tmp40 ;
5185 long long __cil_tmp41 ;
5186 char __cil_tmp42 ;
5187 int __cil_tmp43 ;
5188 unsigned long __cil_tmp44 ;
5189 unsigned long __cil_tmp45 ;
5190 int __cil_tmp46 ;
5191 char __cil_tmp47 ;
5192 int __cil_tmp48 ;
5193 unsigned long __cil_tmp49 ;
5194 unsigned long __cil_tmp50 ;
5195 char __cil_tmp51 ;
5196 int __cil_tmp52 ;
5197 unsigned long __cil_tmp53 ;
5198 unsigned long __cil_tmp54 ;
5199 char __cil_tmp55 ;
5200 int __cil_tmp56 ;
5201 unsigned long __cil_tmp57 ;
5202 unsigned long __cil_tmp58 ;
5203 int __cil_tmp59 ;
5204 unsigned long __cil_tmp60 ;
5205 unsigned long __cil_tmp61 ;
5206 char __cil_tmp62 ;
5207 int __cil_tmp63 ;
5208 unsigned long __cil_tmp64 ;
5209 unsigned long __cil_tmp65 ;
5210 char __cil_tmp66 ;
5211 unsigned long __cil_tmp67 ;
5212 unsigned long __cil_tmp68 ;
5213 unsigned long __cil_tmp69 ;
5214 unsigned long __cil_tmp70 ;
5215 char __cil_tmp71 ;
5216 void volatile *__cil_tmp72 ;
5217 void volatile *__cil_tmp73 ;
5218 loff_t *__cil_tmp74 ;
5219 unsigned char __cil_tmp75 ;
5220 int __cil_tmp76 ;
5221 unsigned char __cil_tmp77 ;
5222 loff_t *__cil_tmp78 ;
5223 loff_t __cil_tmp79 ;
5224 unsigned long __cil_tmp80 ;
5225 void volatile *__cil_tmp81 ;
5226 void volatile *__cil_tmp82 ;
5227 void volatile *__cil_tmp83 ;
5228 void volatile *__cil_tmp84 ;
5229 void volatile *__cil_tmp85 ;
5230 void volatile *__cil_tmp86 ;
5231 void const volatile *__cil_tmp87 ;
5232 void const volatile *__cil_tmp88 ;
5233 void const volatile *__cil_tmp89 ;
5234 void const volatile *__cil_tmp90 ;
5235 int __cil_tmp91 ;
5236 unsigned char *__cil_tmp92 ;
5237 unsigned long __cil_tmp93 ;
5238 unsigned long __cil_tmp94 ;
5239 void const volatile *__cil_tmp95 ;
5240 void const volatile *__cil_tmp96 ;
5241 unsigned long __cil_tmp97 ;
5242 unsigned long __cil_tmp98 ;
5243 void const volatile *__cil_tmp99 ;
5244 void const volatile *__cil_tmp100 ;
5245 void const volatile *__cil_tmp101 ;
5246 void const volatile *__cil_tmp102 ;
5247 void const volatile *__cil_tmp103 ;
5248 void const volatile *__cil_tmp104 ;
5249 void const volatile *__cil_tmp105 ;
5250 void const volatile *__cil_tmp106 ;
5251 signed char __cil_tmp107 ;
5252 int __cil_tmp108 ;
5253 unsigned long __cil_tmp109 ;
5254 unsigned long __cil_tmp110 ;
5255 int __cil_tmp111 ;
5256 unsigned long __cil_tmp112 ;
5257 void const volatile *__cil_tmp113 ;
5258 void const volatile *__cil_tmp114 ;
5259 unsigned char *__cil_tmp115 ;
5260 void volatile *__cil_tmp116 ;
5261 void volatile *__cil_tmp117 ;
5262 void volatile *__cil_tmp118 ;
5263 void volatile *__cil_tmp119 ;
5264
5265 {
5266#line 596
5267 __cil_tmp20 = (unsigned long )mtd;
5268#line 596
5269 __cil_tmp21 = __cil_tmp20 + 360;
5270#line 596
5271 __cil_tmp22 = *((void **)__cil_tmp21);
5272#line 596
5273 this = (struct DiskOnChip *)__cil_tmp22;
5274#line 597
5275 __cil_tmp23 = (unsigned long )this;
5276#line 597
5277 __cil_tmp24 = __cil_tmp23 + 8;
5278#line 597
5279 docptr = *((void **)__cil_tmp24);
5280#line 598
5281 __cil_tmp25 = (unsigned long )this;
5282#line 598
5283 __cil_tmp26 = __cil_tmp25 + 48;
5284#line 598
5285 __cil_tmp27 = *((int *)__cil_tmp26);
5286#line 598
5287 __cil_tmp28 = from >> __cil_tmp27;
5288#line 598
5289 __cil_tmp29 = (unsigned long )__cil_tmp28;
5290#line 598
5291 __cil_tmp30 = (unsigned long )this;
5292#line 598
5293 __cil_tmp31 = __cil_tmp30 + 80;
5294#line 598
5295 __cil_tmp32 = *((struct Nand **)__cil_tmp31);
5296#line 598
5297 mychip = __cil_tmp32 + __cil_tmp29;
5298 {
5299#line 601
5300 __cil_tmp33 = from | 511LL;
5301#line 601
5302 __cil_tmp34 = __cil_tmp33 + 1LL;
5303#line 601
5304 __cil_tmp35 = (unsigned long long )__cil_tmp34;
5305#line 601
5306 __cil_tmp36 = (unsigned long long )len;
5307#line 601
5308 __cil_tmp37 = (unsigned long long )from;
5309#line 601
5310 __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
5311#line 601
5312 if (__cil_tmp38 > __cil_tmp35) {
5313#line 602
5314 __cil_tmp39 = from | 511LL;
5315#line 602
5316 __cil_tmp40 = __cil_tmp39 + 1LL;
5317#line 602
5318 __cil_tmp41 = __cil_tmp40 - from;
5319#line 602
5320 len = (size_t )__cil_tmp41;
5321 } else {
5322
5323 }
5324 }
5325 {
5326#line 604
5327 DoC_CheckASIC(docptr);
5328 }
5329 {
5330#line 607
5331 __cil_tmp42 = *((char *)mychip);
5332#line 607
5333 __cil_tmp43 = (int )__cil_tmp42;
5334#line 607
5335 __cil_tmp44 = (unsigned long )this;
5336#line 607
5337 __cil_tmp45 = __cil_tmp44 + 64;
5338#line 607
5339 __cil_tmp46 = *((int *)__cil_tmp45);
5340#line 607
5341 if (__cil_tmp46 != __cil_tmp43) {
5342 {
5343#line 608
5344 __cil_tmp47 = *((char *)mychip);
5345#line 608
5346 __cil_tmp48 = (int )__cil_tmp47;
5347#line 608
5348 DoC_SelectFloor(docptr, __cil_tmp48);
5349#line 609
5350 __cil_tmp49 = (unsigned long )mychip;
5351#line 609
5352 __cil_tmp50 = __cil_tmp49 + 1;
5353#line 609
5354 __cil_tmp51 = *((char *)__cil_tmp50);
5355#line 609
5356 __cil_tmp52 = (int )__cil_tmp51;
5357#line 609
5358 DoC_SelectChip(docptr, __cil_tmp52);
5359 }
5360 } else {
5361 {
5362#line 610
5363 __cil_tmp53 = (unsigned long )mychip;
5364#line 610
5365 __cil_tmp54 = __cil_tmp53 + 1;
5366#line 610
5367 __cil_tmp55 = *((char *)__cil_tmp54);
5368#line 610
5369 __cil_tmp56 = (int )__cil_tmp55;
5370#line 610
5371 __cil_tmp57 = (unsigned long )this;
5372#line 610
5373 __cil_tmp58 = __cil_tmp57 + 68;
5374#line 610
5375 __cil_tmp59 = *((int *)__cil_tmp58);
5376#line 610
5377 if (__cil_tmp59 != __cil_tmp56) {
5378 {
5379#line 611
5380 __cil_tmp60 = (unsigned long )mychip;
5381#line 611
5382 __cil_tmp61 = __cil_tmp60 + 1;
5383#line 611
5384 __cil_tmp62 = *((char *)__cil_tmp61);
5385#line 611
5386 __cil_tmp63 = (int )__cil_tmp62;
5387#line 611
5388 DoC_SelectChip(docptr, __cil_tmp63);
5389 }
5390 } else {
5391
5392 }
5393 }
5394 }
5395 }
5396 {
5397#line 613
5398 __cil_tmp64 = (unsigned long )this;
5399#line 613
5400 __cil_tmp65 = __cil_tmp64 + 64;
5401#line 613
5402 __cil_tmp66 = *((char *)mychip);
5403#line 613
5404 *((int *)__cil_tmp65) = (int )__cil_tmp66;
5405#line 614
5406 __cil_tmp67 = (unsigned long )this;
5407#line 614
5408 __cil_tmp68 = __cil_tmp67 + 68;
5409#line 614
5410 __cil_tmp69 = (unsigned long )mychip;
5411#line 614
5412 __cil_tmp70 = __cil_tmp69 + 1;
5413#line 614
5414 __cil_tmp71 = *((char *)__cil_tmp70);
5415#line 614
5416 *((int *)__cil_tmp68) = (int )__cil_tmp71;
5417#line 617
5418 __cil_tmp72 = (void volatile *)docptr;
5419#line 617
5420 __cil_tmp73 = __cil_tmp72 + 4130U;
5421#line 617
5422 writeb((unsigned char)192, __cil_tmp73);
5423#line 620
5424 DoC_Command(docptr, (unsigned char)255, (unsigned char)0);
5425#line 621
5426 DoC_WaitReady(docptr);
5427#line 623
5428 __cil_tmp74 = & fofs;
5429#line 623
5430 *__cil_tmp74 = from;
5431#line 624
5432 tmp = DoC_GetDataOffset(mtd, & fofs);
5433#line 624
5434 __cil_tmp75 = (unsigned char )tmp;
5435#line 624
5436 __cil_tmp76 = (int )__cil_tmp75;
5437#line 624
5438 __cil_tmp77 = (unsigned char )__cil_tmp76;
5439#line 624
5440 DoC_Command(docptr, __cil_tmp77, (unsigned char)0);
5441#line 625
5442 __cil_tmp78 = & fofs;
5443#line 625
5444 __cil_tmp79 = *__cil_tmp78;
5445#line 625
5446 __cil_tmp80 = (unsigned long )__cil_tmp79;
5447#line 625
5448 DoC_Address(this, 3, __cil_tmp80, (unsigned char)0, (unsigned char)0);
5449#line 626
5450 __cil_tmp81 = (void volatile *)docptr;
5451#line 626
5452 __cil_tmp82 = __cil_tmp81 + 4128U;
5453#line 626
5454 writeb((unsigned char)0, __cil_tmp82);
5455#line 627
5456 DoC_WaitReady(docptr);
5457#line 630
5458 __cil_tmp83 = (void volatile *)docptr;
5459#line 630
5460 __cil_tmp84 = __cil_tmp83 + 4166U;
5461#line 630
5462 writeb((unsigned char)0, __cil_tmp84);
5463#line 631
5464 __cil_tmp85 = (void volatile *)docptr;
5465#line 631
5466 __cil_tmp86 = __cil_tmp85 + 4166U;
5467#line 631
5468 writeb((unsigned char)10, __cil_tmp86);
5469#line 634
5470 *retlen = len;
5471#line 635
5472 ret = 0;
5473#line 637
5474 __cil_tmp87 = (void const volatile *)docptr;
5475#line 637
5476 __cil_tmp88 = __cil_tmp87 + 4138U;
5477#line 637
5478 readb(__cil_tmp88);
5479#line 638
5480 __cil_tmp89 = (void const volatile *)docptr;
5481#line 638
5482 __cil_tmp90 = __cil_tmp89 + 4138U;
5483#line 638
5484 readb(__cil_tmp90);
5485#line 642
5486 __cil_tmp91 = (int )len;
5487#line 642
5488 MemReadDOC(docptr, buf, __cil_tmp91);
5489#line 645
5490 __cil_tmp92 = (unsigned char *)(& eccbuf);
5491#line 645
5492 MemReadDOC(docptr, __cil_tmp92, 4);
5493#line 646
5494 __cil_tmp93 = 4 * 1UL;
5495#line 646
5496 __cil_tmp94 = (unsigned long )(eccbuf) + __cil_tmp93;
5497#line 646
5498 __cil_tmp95 = (void const volatile *)docptr;
5499#line 646
5500 __cil_tmp96 = __cil_tmp95 + 4140U;
5501#line 646
5502 *((unsigned char *)__cil_tmp94) = readb(__cil_tmp96);
5503#line 647
5504 __cil_tmp97 = 5 * 1UL;
5505#line 647
5506 __cil_tmp98 = (unsigned long )(eccbuf) + __cil_tmp97;
5507#line 647
5508 __cil_tmp99 = (void const volatile *)docptr;
5509#line 647
5510 __cil_tmp100 = __cil_tmp99 + 4140U;
5511#line 647
5512 *((unsigned char *)__cil_tmp98) = readb(__cil_tmp100);
5513#line 650
5514 __cil_tmp101 = (void const volatile *)docptr;
5515#line 650
5516 __cil_tmp102 = __cil_tmp101 + 4166U;
5517#line 650
5518 tmp___0 = readb(__cil_tmp102);
5519#line 650
5520 dummy = (char volatile )tmp___0;
5521#line 651
5522 __cil_tmp103 = (void const volatile *)docptr;
5523#line 651
5524 __cil_tmp104 = __cil_tmp103 + 4166U;
5525#line 651
5526 tmp___1 = readb(__cil_tmp104);
5527#line 651
5528 dummy = (char volatile )tmp___1;
5529#line 654
5530 __cil_tmp105 = (void const volatile *)docptr;
5531#line 654
5532 __cil_tmp106 = __cil_tmp105 + 4166U;
5533#line 654
5534 tmp___2 = readb(__cil_tmp106);
5535 }
5536 {
5537#line 654
5538 __cil_tmp107 = (signed char )tmp___2;
5539#line 654
5540 __cil_tmp108 = (int )__cil_tmp107;
5541#line 654
5542 if (__cil_tmp108 < 0) {
5543#line 662
5544 i = 0;
5545#line 662
5546 goto ldv_19439;
5547 ldv_19438:
5548 {
5549#line 663
5550 __cil_tmp109 = i * 1UL;
5551#line 663
5552 __cil_tmp110 = (unsigned long )(syndrome) + __cil_tmp109;
5553#line 663
5554 __cil_tmp111 = i + 4160;
5555#line 663
5556 __cil_tmp112 = (unsigned long )__cil_tmp111;
5557#line 663
5558 __cil_tmp113 = (void const volatile *)docptr;
5559#line 663
5560 __cil_tmp114 = __cil_tmp113 + __cil_tmp112;
5561#line 663
5562 *((unsigned char *)__cil_tmp110) = readb(__cil_tmp114);
5563#line 662
5564 i = i + 1;
5565 }
5566 ldv_19439: ;
5567#line 662
5568 if (i <= 5) {
5569#line 663
5570 goto ldv_19438;
5571 } else {
5572#line 665
5573 goto ldv_19440;
5574 }
5575 ldv_19440:
5576 {
5577#line 665
5578 __cil_tmp115 = (unsigned char *)(& syndrome);
5579#line 665
5580 nb_errors = doc_decode_ecc(buf, __cil_tmp115);
5581 }
5582#line 669
5583 if (nb_errors < 0) {
5584#line 686
5585 ret = -5;
5586 } else {
5587
5588 }
5589 } else {
5590
5591 }
5592 }
5593 {
5594#line 696
5595 __cil_tmp116 = (void volatile *)docptr;
5596#line 696
5597 __cil_tmp117 = __cil_tmp116 + 4166U;
5598#line 696
5599 writeb((unsigned char)2, __cil_tmp117);
5600#line 699
5601 __cil_tmp118 = (void volatile *)docptr;
5602#line 699
5603 __cil_tmp119 = __cil_tmp118 + 4130U;
5604#line 699
5605 writeb((unsigned char)0, __cil_tmp119);
5606 }
5607#line 701
5608 return (ret);
5609}
5610}
5611#line 704 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
5612static int doc_write(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
5613 u_char const *buf )
5614{ int i ;
5615 int before ;
5616 int ret ;
5617 loff_t fto ;
5618 char volatile dummy ;
5619 char eccbuf[6U] ;
5620 struct DiskOnChip *this ;
5621 void *docptr ;
5622 struct Nand *mychip ;
5623 int tmp ;
5624 unsigned int tmp___0 ;
5625 unsigned char tmp___1 ;
5626 unsigned char tmp___2 ;
5627 unsigned char tmp___3 ;
5628 unsigned char tmp___4 ;
5629 unsigned char tmp___5 ;
5630 unsigned long __cil_tmp22 ;
5631 unsigned long __cil_tmp23 ;
5632 void *__cil_tmp24 ;
5633 unsigned long __cil_tmp25 ;
5634 unsigned long __cil_tmp26 ;
5635 unsigned long __cil_tmp27 ;
5636 unsigned long __cil_tmp28 ;
5637 int __cil_tmp29 ;
5638 loff_t __cil_tmp30 ;
5639 unsigned long __cil_tmp31 ;
5640 unsigned long __cil_tmp32 ;
5641 unsigned long __cil_tmp33 ;
5642 struct Nand *__cil_tmp34 ;
5643 long long __cil_tmp35 ;
5644 unsigned long __cil_tmp36 ;
5645 unsigned long __cil_tmp37 ;
5646 char __cil_tmp38 ;
5647 signed char __cil_tmp39 ;
5648 int __cil_tmp40 ;
5649 long long __cil_tmp41 ;
5650 char __cil_tmp42 ;
5651 int __cil_tmp43 ;
5652 unsigned long __cil_tmp44 ;
5653 unsigned long __cil_tmp45 ;
5654 int __cil_tmp46 ;
5655 char __cil_tmp47 ;
5656 int __cil_tmp48 ;
5657 unsigned long __cil_tmp49 ;
5658 unsigned long __cil_tmp50 ;
5659 char __cil_tmp51 ;
5660 int __cil_tmp52 ;
5661 unsigned long __cil_tmp53 ;
5662 unsigned long __cil_tmp54 ;
5663 char __cil_tmp55 ;
5664 int __cil_tmp56 ;
5665 unsigned long __cil_tmp57 ;
5666 unsigned long __cil_tmp58 ;
5667 int __cil_tmp59 ;
5668 unsigned long __cil_tmp60 ;
5669 unsigned long __cil_tmp61 ;
5670 char __cil_tmp62 ;
5671 int __cil_tmp63 ;
5672 unsigned long __cil_tmp64 ;
5673 unsigned long __cil_tmp65 ;
5674 char __cil_tmp66 ;
5675 unsigned long __cil_tmp67 ;
5676 unsigned long __cil_tmp68 ;
5677 unsigned long __cil_tmp69 ;
5678 unsigned long __cil_tmp70 ;
5679 char __cil_tmp71 ;
5680 void volatile *__cil_tmp72 ;
5681 void volatile *__cil_tmp73 ;
5682 loff_t *__cil_tmp74 ;
5683 unsigned char __cil_tmp75 ;
5684 int __cil_tmp76 ;
5685 unsigned char __cil_tmp77 ;
5686 void volatile *__cil_tmp78 ;
5687 void volatile *__cil_tmp79 ;
5688 loff_t *__cil_tmp80 ;
5689 loff_t *__cil_tmp81 ;
5690 loff_t __cil_tmp82 ;
5691 loff_t *__cil_tmp83 ;
5692 loff_t __cil_tmp84 ;
5693 unsigned long __cil_tmp85 ;
5694 void volatile *__cil_tmp86 ;
5695 void volatile *__cil_tmp87 ;
5696 void volatile *__cil_tmp88 ;
5697 void volatile *__cil_tmp89 ;
5698 void volatile *__cil_tmp90 ;
5699 void volatile *__cil_tmp91 ;
5700 void volatile *__cil_tmp92 ;
5701 void volatile *__cil_tmp93 ;
5702 unsigned char *__cil_tmp94 ;
5703 int __cil_tmp95 ;
5704 int __cil_tmp96 ;
5705 unsigned long __cil_tmp97 ;
5706 void const volatile *__cil_tmp98 ;
5707 void const volatile *__cil_tmp99 ;
5708 unsigned long __cil_tmp100 ;
5709 unsigned long __cil_tmp101 ;
5710 void volatile *__cil_tmp102 ;
5711 void volatile *__cil_tmp103 ;
5712 unsigned char *__cil_tmp104 ;
5713 void volatile *__cil_tmp105 ;
5714 void volatile *__cil_tmp106 ;
5715 void volatile *__cil_tmp107 ;
5716 void volatile *__cil_tmp108 ;
5717 void volatile *__cil_tmp109 ;
5718 void volatile *__cil_tmp110 ;
5719 void volatile *__cil_tmp111 ;
5720 void volatile *__cil_tmp112 ;
5721 void const volatile *__cil_tmp113 ;
5722 void const volatile *__cil_tmp114 ;
5723 void const volatile *__cil_tmp115 ;
5724 void const volatile *__cil_tmp116 ;
5725 void const volatile *__cil_tmp117 ;
5726 void const volatile *__cil_tmp118 ;
5727 int __cil_tmp119 ;
5728 int __cil_tmp120 ;
5729 int __cil_tmp121 ;
5730 void const volatile *__cil_tmp122 ;
5731 void const volatile *__cil_tmp123 ;
5732 void volatile *__cil_tmp124 ;
5733 void volatile *__cil_tmp125 ;
5734
5735 {
5736#line 707
5737 ret = 0;
5738#line 711
5739 __cil_tmp22 = (unsigned long )mtd;
5740#line 711
5741 __cil_tmp23 = __cil_tmp22 + 360;
5742#line 711
5743 __cil_tmp24 = *((void **)__cil_tmp23);
5744#line 711
5745 this = (struct DiskOnChip *)__cil_tmp24;
5746#line 712
5747 __cil_tmp25 = (unsigned long )this;
5748#line 712
5749 __cil_tmp26 = __cil_tmp25 + 8;
5750#line 712
5751 docptr = *((void **)__cil_tmp26);
5752#line 713
5753 __cil_tmp27 = (unsigned long )this;
5754#line 713
5755 __cil_tmp28 = __cil_tmp27 + 48;
5756#line 713
5757 __cil_tmp29 = *((int *)__cil_tmp28);
5758#line 713
5759 __cil_tmp30 = to >> __cil_tmp29;
5760#line 713
5761 __cil_tmp31 = (unsigned long )__cil_tmp30;
5762#line 713
5763 __cil_tmp32 = (unsigned long )this;
5764#line 713
5765 __cil_tmp33 = __cil_tmp32 + 80;
5766#line 713
5767 __cil_tmp34 = *((struct Nand **)__cil_tmp33);
5768#line 713
5769 mychip = __cil_tmp34 + __cil_tmp31;
5770 {
5771#line 716
5772 __cil_tmp35 = to & 511LL;
5773#line 716
5774 if (__cil_tmp35 != 0LL) {
5775#line 717
5776 return (-22);
5777 } else
5778#line 716
5779 if (len != 512UL) {
5780#line 717
5781 return (-22);
5782 } else {
5783
5784 }
5785 }
5786 {
5787#line 720
5788 __cil_tmp36 = (unsigned long )this;
5789#line 720
5790 __cil_tmp37 = __cil_tmp36 + 54;
5791#line 720
5792 __cil_tmp38 = *((char *)__cil_tmp37);
5793#line 720
5794 __cil_tmp39 = (signed char )__cil_tmp38;
5795#line 720
5796 __cil_tmp40 = (int )__cil_tmp39;
5797#line 720
5798 if (__cil_tmp40 != 0) {
5799 {
5800#line 720
5801 __cil_tmp41 = to & 512LL;
5802#line 720
5803 if (__cil_tmp41 != 0LL) {
5804#line 720
5805 tmp = 1;
5806 } else {
5807#line 720
5808 tmp = 0;
5809 }
5810 }
5811 } else {
5812#line 720
5813 tmp = 0;
5814 }
5815 }
5816 {
5817#line 720
5818 before = tmp;
5819#line 722
5820 DoC_CheckASIC(docptr);
5821 }
5822 {
5823#line 725
5824 __cil_tmp42 = *((char *)mychip);
5825#line 725
5826 __cil_tmp43 = (int )__cil_tmp42;
5827#line 725
5828 __cil_tmp44 = (unsigned long )this;
5829#line 725
5830 __cil_tmp45 = __cil_tmp44 + 64;
5831#line 725
5832 __cil_tmp46 = *((int *)__cil_tmp45);
5833#line 725
5834 if (__cil_tmp46 != __cil_tmp43) {
5835 {
5836#line 726
5837 __cil_tmp47 = *((char *)mychip);
5838#line 726
5839 __cil_tmp48 = (int )__cil_tmp47;
5840#line 726
5841 DoC_SelectFloor(docptr, __cil_tmp48);
5842#line 727
5843 __cil_tmp49 = (unsigned long )mychip;
5844#line 727
5845 __cil_tmp50 = __cil_tmp49 + 1;
5846#line 727
5847 __cil_tmp51 = *((char *)__cil_tmp50);
5848#line 727
5849 __cil_tmp52 = (int )__cil_tmp51;
5850#line 727
5851 DoC_SelectChip(docptr, __cil_tmp52);
5852 }
5853 } else {
5854 {
5855#line 728
5856 __cil_tmp53 = (unsigned long )mychip;
5857#line 728
5858 __cil_tmp54 = __cil_tmp53 + 1;
5859#line 728
5860 __cil_tmp55 = *((char *)__cil_tmp54);
5861#line 728
5862 __cil_tmp56 = (int )__cil_tmp55;
5863#line 728
5864 __cil_tmp57 = (unsigned long )this;
5865#line 728
5866 __cil_tmp58 = __cil_tmp57 + 68;
5867#line 728
5868 __cil_tmp59 = *((int *)__cil_tmp58);
5869#line 728
5870 if (__cil_tmp59 != __cil_tmp56) {
5871 {
5872#line 729
5873 __cil_tmp60 = (unsigned long )mychip;
5874#line 729
5875 __cil_tmp61 = __cil_tmp60 + 1;
5876#line 729
5877 __cil_tmp62 = *((char *)__cil_tmp61);
5878#line 729
5879 __cil_tmp63 = (int )__cil_tmp62;
5880#line 729
5881 DoC_SelectChip(docptr, __cil_tmp63);
5882 }
5883 } else {
5884
5885 }
5886 }
5887 }
5888 }
5889 {
5890#line 731
5891 __cil_tmp64 = (unsigned long )this;
5892#line 731
5893 __cil_tmp65 = __cil_tmp64 + 64;
5894#line 731
5895 __cil_tmp66 = *((char *)mychip);
5896#line 731
5897 *((int *)__cil_tmp65) = (int )__cil_tmp66;
5898#line 732
5899 __cil_tmp67 = (unsigned long )this;
5900#line 732
5901 __cil_tmp68 = __cil_tmp67 + 68;
5902#line 732
5903 __cil_tmp69 = (unsigned long )mychip;
5904#line 732
5905 __cil_tmp70 = __cil_tmp69 + 1;
5906#line 732
5907 __cil_tmp71 = *((char *)__cil_tmp70);
5908#line 732
5909 *((int *)__cil_tmp68) = (int )__cil_tmp71;
5910#line 735
5911 __cil_tmp72 = (void volatile *)docptr;
5912#line 735
5913 __cil_tmp73 = __cil_tmp72 + 4130U;
5914#line 735
5915 writeb((unsigned char)128, __cil_tmp73);
5916#line 738
5917 DoC_Command(docptr, (unsigned char)255, (unsigned char)0);
5918#line 739
5919 DoC_WaitReady(docptr);
5920#line 742
5921 __cil_tmp74 = & fto;
5922#line 742
5923 *__cil_tmp74 = to;
5924#line 743
5925 tmp___0 = DoC_GetDataOffset(mtd, & fto);
5926#line 743
5927 __cil_tmp75 = (unsigned char )tmp___0;
5928#line 743
5929 __cil_tmp76 = (int )__cil_tmp75;
5930#line 743
5931 __cil_tmp77 = (unsigned char )__cil_tmp76;
5932#line 743
5933 __cil_tmp78 = (void volatile *)docptr;
5934#line 743
5935 __cil_tmp79 = __cil_tmp78 + 4132U;
5936#line 743
5937 writeb(__cil_tmp77, __cil_tmp79);
5938 }
5939#line 746
5940 if (before != 0) {
5941#line 747
5942 __cil_tmp80 = & fto;
5943#line 747
5944 __cil_tmp81 = & fto;
5945#line 747
5946 __cil_tmp82 = *__cil_tmp81;
5947#line 747
5948 *__cil_tmp80 = __cil_tmp82 + -2LL;
5949 } else {
5950
5951 }
5952 {
5953#line 750
5954 DoC_Command(docptr, (unsigned char)128, (unsigned char)0);
5955#line 751
5956 __cil_tmp83 = & fto;
5957#line 751
5958 __cil_tmp84 = *__cil_tmp83;
5959#line 751
5960 __cil_tmp85 = (unsigned long )__cil_tmp84;
5961#line 751
5962 DoC_Address(this, 3, __cil_tmp85, (unsigned char)0, (unsigned char)0);
5963#line 754
5964 __cil_tmp86 = (void volatile *)docptr;
5965#line 754
5966 __cil_tmp87 = __cil_tmp86 + 4166U;
5967#line 754
5968 writeb((unsigned char)0, __cil_tmp87);
5969 }
5970#line 756
5971 if (before != 0) {
5972 {
5973#line 758
5974 __cil_tmp88 = (void volatile *)docptr;
5975#line 758
5976 __cil_tmp89 = __cil_tmp88 + 2048U;
5977#line 758
5978 writeb((unsigned char)85, __cil_tmp89);
5979#line 759
5980 __cil_tmp90 = (void volatile *)docptr;
5981#line 759
5982 __cil_tmp91 = __cil_tmp90 + 2048U;
5983#line 759
5984 writeb((unsigned char)85, __cil_tmp91);
5985 }
5986 } else {
5987
5988 }
5989 {
5990#line 763
5991 __cil_tmp92 = (void volatile *)docptr;
5992#line 763
5993 __cil_tmp93 = __cil_tmp92 + 4166U;
5994#line 763
5995 writeb((unsigned char)42, __cil_tmp93);
5996#line 765
5997 __cil_tmp94 = (unsigned char *)buf;
5998#line 765
5999 __cil_tmp95 = (int )len;
6000#line 765
6001 MemWriteDOC(docptr, __cil_tmp94, __cil_tmp95);
6002#line 769
6003 DoC_Delay(docptr, 3);
6004#line 772
6005 i = 0;
6006 }
6007#line 772
6008 goto ldv_19458;
6009 ldv_19457:
6010 {
6011#line 773
6012 __cil_tmp96 = i + 4160;
6013#line 773
6014 __cil_tmp97 = (unsigned long )__cil_tmp96;
6015#line 773
6016 __cil_tmp98 = (void const volatile *)docptr;
6017#line 773
6018 __cil_tmp99 = __cil_tmp98 + __cil_tmp97;
6019#line 773
6020 tmp___1 = readb(__cil_tmp99);
6021#line 773
6022 __cil_tmp100 = i * 1UL;
6023#line 773
6024 __cil_tmp101 = (unsigned long )(eccbuf) + __cil_tmp100;
6025#line 773
6026 *((char *)__cil_tmp101) = (char )tmp___1;
6027#line 772
6028 i = i + 1;
6029 }
6030 ldv_19458: ;
6031#line 772
6032 if (i <= 5) {
6033#line 773
6034 goto ldv_19457;
6035 } else {
6036#line 775
6037 goto ldv_19459;
6038 }
6039 ldv_19459:
6040 {
6041#line 776
6042 __cil_tmp102 = (void volatile *)docptr;
6043#line 776
6044 __cil_tmp103 = __cil_tmp102 + 4166U;
6045#line 776
6046 writeb((unsigned char)2, __cil_tmp103);
6047#line 779
6048 __cil_tmp104 = (unsigned char *)(& eccbuf);
6049#line 779
6050 MemWriteDOC(docptr, __cil_tmp104, 6);
6051 }
6052#line 781
6053 if (before == 0) {
6054 {
6055#line 783
6056 __cil_tmp105 = (void volatile *)docptr;
6057#line 783
6058 __cil_tmp106 = __cil_tmp105 + 2054U;
6059#line 783
6060 writeb((unsigned char)85, __cil_tmp106);
6061#line 784
6062 __cil_tmp107 = (void volatile *)docptr;
6063#line 784
6064 __cil_tmp108 = __cil_tmp107 + 2055U;
6065#line 784
6066 writeb((unsigned char)85, __cil_tmp108);
6067 }
6068 } else {
6069
6070 }
6071 {
6072#line 793
6073 __cil_tmp109 = (void volatile *)docptr;
6074#line 793
6075 __cil_tmp110 = __cil_tmp109 + 4142U;
6076#line 793
6077 writeb((unsigned char)0, __cil_tmp110);
6078#line 794
6079 __cil_tmp111 = (void volatile *)docptr;
6080#line 794
6081 __cil_tmp112 = __cil_tmp111 + 4142U;
6082#line 794
6083 writeb((unsigned char)0, __cil_tmp112);
6084#line 798
6085 DoC_Command(docptr, (unsigned char)16, (unsigned char)0);
6086#line 799
6087 DoC_WaitReady(docptr);
6088#line 803
6089 DoC_Command(docptr, (unsigned char)112, (unsigned char)0);
6090#line 804
6091 __cil_tmp113 = (void const volatile *)docptr;
6092#line 804
6093 __cil_tmp114 = __cil_tmp113 + 4138U;
6094#line 804
6095 tmp___2 = readb(__cil_tmp114);
6096#line 804
6097 dummy = (char volatile )tmp___2;
6098#line 805
6099 __cil_tmp115 = (void const volatile *)docptr;
6100#line 805
6101 __cil_tmp116 = __cil_tmp115 + 4138U;
6102#line 805
6103 tmp___3 = readb(__cil_tmp116);
6104#line 805
6105 dummy = (char volatile )tmp___3;
6106#line 806
6107 DoC_Delay(docptr, 2);
6108#line 807
6109 __cil_tmp117 = (void const volatile *)docptr;
6110#line 807
6111 __cil_tmp118 = __cil_tmp117 + 4140U;
6112#line 807
6113 tmp___4 = readb(__cil_tmp118);
6114#line 807
6115 dummy = (char volatile )tmp___4;
6116 }
6117 {
6118#line 807
6119 __cil_tmp119 = (int )dummy;
6120#line 807
6121 if (__cil_tmp119 & 1) {
6122 {
6123#line 808
6124 __cil_tmp120 = (int )dummy;
6125#line 808
6126 __cil_tmp121 = (int )to;
6127#line 808
6128 printk("MTD: Error 0x%x programming at 0x%x\n", __cil_tmp120, __cil_tmp121);
6129#line 811
6130 ret = -5;
6131 }
6132 } else {
6133
6134 }
6135 }
6136 {
6137#line 813
6138 __cil_tmp122 = (void const volatile *)docptr;
6139#line 813
6140 __cil_tmp123 = __cil_tmp122 + 4140U;
6141#line 813
6142 tmp___5 = readb(__cil_tmp123);
6143#line 813
6144 dummy = (char volatile )tmp___5;
6145#line 816
6146 __cil_tmp124 = (void volatile *)docptr;
6147#line 816
6148 __cil_tmp125 = __cil_tmp124 + 4130U;
6149#line 816
6150 writeb((unsigned char)0, __cil_tmp125);
6151#line 819
6152 *retlen = len;
6153 }
6154#line 821
6155 return (ret);
6156}
6157}
6158#line 824 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
6159static int doc_read_oob(struct mtd_info *mtd , loff_t ofs , struct mtd_oob_ops *ops )
6160{ loff_t fofs ;
6161 loff_t base ;
6162 struct DiskOnChip *this ;
6163 void *docptr ;
6164 struct Nand *mychip ;
6165 size_t i ;
6166 size_t size ;
6167 size_t got ;
6168 size_t want ;
6169 uint8_t *buf ;
6170 size_t len ;
6171 long tmp ;
6172 unsigned int tmp___0 ;
6173 unsigned int tmp___1 ;
6174 unsigned int tmp___2 ;
6175 unsigned long __cil_tmp19 ;
6176 unsigned long __cil_tmp20 ;
6177 void *__cil_tmp21 ;
6178 unsigned long __cil_tmp22 ;
6179 unsigned long __cil_tmp23 ;
6180 unsigned long __cil_tmp24 ;
6181 unsigned long __cil_tmp25 ;
6182 int __cil_tmp26 ;
6183 loff_t __cil_tmp27 ;
6184 unsigned long __cil_tmp28 ;
6185 unsigned long __cil_tmp29 ;
6186 unsigned long __cil_tmp30 ;
6187 struct Nand *__cil_tmp31 ;
6188 unsigned long __cil_tmp32 ;
6189 unsigned long __cil_tmp33 ;
6190 unsigned long __cil_tmp34 ;
6191 unsigned long __cil_tmp35 ;
6192 unsigned int __cil_tmp36 ;
6193 int __cil_tmp37 ;
6194 long __cil_tmp38 ;
6195 unsigned long __cil_tmp39 ;
6196 unsigned long __cil_tmp40 ;
6197 uint32_t __cil_tmp41 ;
6198 loff_t __cil_tmp42 ;
6199 char __cil_tmp43 ;
6200 int __cil_tmp44 ;
6201 unsigned long __cil_tmp45 ;
6202 unsigned long __cil_tmp46 ;
6203 int __cil_tmp47 ;
6204 char __cil_tmp48 ;
6205 int __cil_tmp49 ;
6206 unsigned long __cil_tmp50 ;
6207 unsigned long __cil_tmp51 ;
6208 char __cil_tmp52 ;
6209 int __cil_tmp53 ;
6210 unsigned long __cil_tmp54 ;
6211 unsigned long __cil_tmp55 ;
6212 char __cil_tmp56 ;
6213 int __cil_tmp57 ;
6214 unsigned long __cil_tmp58 ;
6215 unsigned long __cil_tmp59 ;
6216 int __cil_tmp60 ;
6217 unsigned long __cil_tmp61 ;
6218 unsigned long __cil_tmp62 ;
6219 char __cil_tmp63 ;
6220 int __cil_tmp64 ;
6221 unsigned long __cil_tmp65 ;
6222 unsigned long __cil_tmp66 ;
6223 char __cil_tmp67 ;
6224 unsigned long __cil_tmp68 ;
6225 unsigned long __cil_tmp69 ;
6226 unsigned long __cil_tmp70 ;
6227 unsigned long __cil_tmp71 ;
6228 char __cil_tmp72 ;
6229 void volatile *__cil_tmp73 ;
6230 void volatile *__cil_tmp74 ;
6231 void volatile *__cil_tmp75 ;
6232 void volatile *__cil_tmp76 ;
6233 loff_t *__cil_tmp77 ;
6234 unsigned long __cil_tmp78 ;
6235 unsigned long __cil_tmp79 ;
6236 char __cil_tmp80 ;
6237 signed char __cil_tmp81 ;
6238 int __cil_tmp82 ;
6239 long long __cil_tmp83 ;
6240 unsigned char __cil_tmp84 ;
6241 int __cil_tmp85 ;
6242 unsigned char __cil_tmp86 ;
6243 long long __cil_tmp87 ;
6244 unsigned char __cil_tmp88 ;
6245 int __cil_tmp89 ;
6246 unsigned char __cil_tmp90 ;
6247 long long __cil_tmp91 ;
6248 unsigned char __cil_tmp92 ;
6249 int __cil_tmp93 ;
6250 unsigned char __cil_tmp94 ;
6251 long long __cil_tmp95 ;
6252 loff_t *__cil_tmp96 ;
6253 loff_t __cil_tmp97 ;
6254 unsigned long __cil_tmp98 ;
6255 void volatile *__cil_tmp99 ;
6256 void volatile *__cil_tmp100 ;
6257 void const volatile *__cil_tmp101 ;
6258 void const volatile *__cil_tmp102 ;
6259 void const volatile *__cil_tmp103 ;
6260 void const volatile *__cil_tmp104 ;
6261 uint8_t *__cil_tmp105 ;
6262 unsigned int __cil_tmp106 ;
6263 unsigned int __cil_tmp107 ;
6264 int __cil_tmp108 ;
6265 size_t __cil_tmp109 ;
6266 unsigned long __cil_tmp110 ;
6267 uint8_t *__cil_tmp111 ;
6268 void const volatile *__cil_tmp112 ;
6269 void const volatile *__cil_tmp113 ;
6270 size_t __cil_tmp114 ;
6271 unsigned long __cil_tmp115 ;
6272 uint8_t *__cil_tmp116 ;
6273 void const volatile *__cil_tmp117 ;
6274 void const volatile *__cil_tmp118 ;
6275 unsigned long long __cil_tmp119 ;
6276 unsigned long long __cil_tmp120 ;
6277 unsigned long long __cil_tmp121 ;
6278 void volatile *__cil_tmp122 ;
6279 void volatile *__cil_tmp123 ;
6280 unsigned long __cil_tmp124 ;
6281 unsigned long __cil_tmp125 ;
6282
6283 {
6284 {
6285#line 828
6286 __cil_tmp19 = (unsigned long )mtd;
6287#line 828
6288 __cil_tmp20 = __cil_tmp19 + 360;
6289#line 828
6290 __cil_tmp21 = *((void **)__cil_tmp20);
6291#line 828
6292 this = (struct DiskOnChip *)__cil_tmp21;
6293#line 829
6294 __cil_tmp22 = (unsigned long )this;
6295#line 829
6296 __cil_tmp23 = __cil_tmp22 + 8;
6297#line 829
6298 docptr = *((void **)__cil_tmp23);
6299#line 830
6300 __cil_tmp24 = (unsigned long )this;
6301#line 830
6302 __cil_tmp25 = __cil_tmp24 + 48;
6303#line 830
6304 __cil_tmp26 = *((int *)__cil_tmp25);
6305#line 830
6306 __cil_tmp27 = ofs >> __cil_tmp26;
6307#line 830
6308 __cil_tmp28 = (unsigned long )__cil_tmp27;
6309#line 830
6310 __cil_tmp29 = (unsigned long )this;
6311#line 830
6312 __cil_tmp30 = __cil_tmp29 + 80;
6313#line 830
6314 __cil_tmp31 = *((struct Nand **)__cil_tmp30);
6315#line 830
6316 mychip = __cil_tmp31 + __cil_tmp28;
6317#line 832
6318 __cil_tmp32 = (unsigned long )ops;
6319#line 832
6320 __cil_tmp33 = __cil_tmp32 + 56;
6321#line 832
6322 buf = *((uint8_t **)__cil_tmp33);
6323#line 833
6324 __cil_tmp34 = (unsigned long )ops;
6325#line 833
6326 __cil_tmp35 = __cil_tmp34 + 8;
6327#line 833
6328 len = *((size_t *)__cil_tmp35);
6329#line 835
6330 __cil_tmp36 = *((unsigned int *)ops);
6331#line 835
6332 __cil_tmp37 = __cil_tmp36 != 0U;
6333#line 835
6334 __cil_tmp38 = (long )__cil_tmp37;
6335#line 835
6336 tmp = __builtin_expect(__cil_tmp38, 0L);
6337 }
6338#line 835
6339 if (tmp != 0L) {
6340#line 835
6341 __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"),
6342 "i" (835), "i" (12UL));
6343 ldv_19476: ;
6344#line 835
6345 goto ldv_19476;
6346 } else {
6347
6348 }
6349 {
6350#line 837
6351 __cil_tmp39 = (unsigned long )ops;
6352#line 837
6353 __cil_tmp40 = __cil_tmp39 + 40;
6354#line 837
6355 __cil_tmp41 = *((uint32_t *)__cil_tmp40);
6356#line 837
6357 __cil_tmp42 = (loff_t )__cil_tmp41;
6358#line 837
6359 ofs = __cil_tmp42 + ofs;
6360#line 839
6361 DoC_CheckASIC(docptr);
6362 }
6363 {
6364#line 842
6365 __cil_tmp43 = *((char *)mychip);
6366#line 842
6367 __cil_tmp44 = (int )__cil_tmp43;
6368#line 842
6369 __cil_tmp45 = (unsigned long )this;
6370#line 842
6371 __cil_tmp46 = __cil_tmp45 + 64;
6372#line 842
6373 __cil_tmp47 = *((int *)__cil_tmp46);
6374#line 842
6375 if (__cil_tmp47 != __cil_tmp44) {
6376 {
6377#line 843
6378 __cil_tmp48 = *((char *)mychip);
6379#line 843
6380 __cil_tmp49 = (int )__cil_tmp48;
6381#line 843
6382 DoC_SelectFloor(docptr, __cil_tmp49);
6383#line 844
6384 __cil_tmp50 = (unsigned long )mychip;
6385#line 844
6386 __cil_tmp51 = __cil_tmp50 + 1;
6387#line 844
6388 __cil_tmp52 = *((char *)__cil_tmp51);
6389#line 844
6390 __cil_tmp53 = (int )__cil_tmp52;
6391#line 844
6392 DoC_SelectChip(docptr, __cil_tmp53);
6393 }
6394 } else {
6395 {
6396#line 845
6397 __cil_tmp54 = (unsigned long )mychip;
6398#line 845
6399 __cil_tmp55 = __cil_tmp54 + 1;
6400#line 845
6401 __cil_tmp56 = *((char *)__cil_tmp55);
6402#line 845
6403 __cil_tmp57 = (int )__cil_tmp56;
6404#line 845
6405 __cil_tmp58 = (unsigned long )this;
6406#line 845
6407 __cil_tmp59 = __cil_tmp58 + 68;
6408#line 845
6409 __cil_tmp60 = *((int *)__cil_tmp59);
6410#line 845
6411 if (__cil_tmp60 != __cil_tmp57) {
6412 {
6413#line 846
6414 __cil_tmp61 = (unsigned long )mychip;
6415#line 846
6416 __cil_tmp62 = __cil_tmp61 + 1;
6417#line 846
6418 __cil_tmp63 = *((char *)__cil_tmp62);
6419#line 846
6420 __cil_tmp64 = (int )__cil_tmp63;
6421#line 846
6422 DoC_SelectChip(docptr, __cil_tmp64);
6423 }
6424 } else {
6425
6426 }
6427 }
6428 }
6429 }
6430 {
6431#line 848
6432 __cil_tmp65 = (unsigned long )this;
6433#line 848
6434 __cil_tmp66 = __cil_tmp65 + 64;
6435#line 848
6436 __cil_tmp67 = *((char *)mychip);
6437#line 848
6438 *((int *)__cil_tmp66) = (int )__cil_tmp67;
6439#line 849
6440 __cil_tmp68 = (unsigned long )this;
6441#line 849
6442 __cil_tmp69 = __cil_tmp68 + 68;
6443#line 849
6444 __cil_tmp70 = (unsigned long )mychip;
6445#line 849
6446 __cil_tmp71 = __cil_tmp70 + 1;
6447#line 849
6448 __cil_tmp72 = *((char *)__cil_tmp71);
6449#line 849
6450 *((int *)__cil_tmp69) = (int )__cil_tmp72;
6451#line 852
6452 __cil_tmp73 = (void volatile *)docptr;
6453#line 852
6454 __cil_tmp74 = __cil_tmp73 + 4130U;
6455#line 852
6456 writeb((unsigned char)192, __cil_tmp74);
6457#line 855
6458 __cil_tmp75 = (void volatile *)docptr;
6459#line 855
6460 __cil_tmp76 = __cil_tmp75 + 4166U;
6461#line 855
6462 writeb((unsigned char)0, __cil_tmp76);
6463#line 856
6464 DoC_WaitReady(docptr);
6465 }
6466#line 859
6467 if (len > 16UL) {
6468#line 860
6469 len = 16UL;
6470 } else {
6471
6472 }
6473#line 861
6474 got = 0UL;
6475#line 862
6476 want = len;
6477#line 864
6478 i = 0UL;
6479#line 864
6480 goto ldv_19478;
6481 ldv_19477:
6482#line 866
6483 __cil_tmp77 = & fofs;
6484#line 866
6485 *__cil_tmp77 = ofs;
6486#line 867
6487 base = ofs & 15LL;
6488 {
6489#line 868
6490 __cil_tmp78 = (unsigned long )this;
6491#line 868
6492 __cil_tmp79 = __cil_tmp78 + 54;
6493#line 868
6494 __cil_tmp80 = *((char *)__cil_tmp79);
6495#line 868
6496 __cil_tmp81 = (signed char )__cil_tmp80;
6497#line 868
6498 __cil_tmp82 = (int )__cil_tmp81;
6499#line 868
6500 if (__cil_tmp82 == 0) {
6501 {
6502#line 869
6503 DoC_Command(docptr, (unsigned char)80, (unsigned char)0);
6504#line 870
6505 __cil_tmp83 = 16LL - base;
6506#line 870
6507 size = (size_t )__cil_tmp83;
6508 }
6509 } else
6510#line 871
6511 if (base <= 5LL) {
6512 {
6513#line 872
6514 tmp___0 = DoC_GetECCOffset(mtd, & fofs);
6515#line 872
6516 __cil_tmp84 = (unsigned char )tmp___0;
6517#line 872
6518 __cil_tmp85 = (int )__cil_tmp84;
6519#line 872
6520 __cil_tmp86 = (unsigned char )__cil_tmp85;
6521#line 872
6522 DoC_Command(docptr, __cil_tmp86, (unsigned char)0);
6523#line 873
6524 __cil_tmp87 = 6LL - base;
6525#line 873
6526 size = (size_t )__cil_tmp87;
6527 }
6528 } else
6529#line 874
6530 if (base <= 7LL) {
6531 {
6532#line 875
6533 tmp___1 = DoC_GetFlagsOffset(mtd, & fofs);
6534#line 875
6535 __cil_tmp88 = (unsigned char )tmp___1;
6536#line 875
6537 __cil_tmp89 = (int )__cil_tmp88;
6538#line 875
6539 __cil_tmp90 = (unsigned char )__cil_tmp89;
6540#line 875
6541 DoC_Command(docptr, __cil_tmp90, (unsigned char)0);
6542#line 876
6543 __cil_tmp91 = 8LL - base;
6544#line 876
6545 size = (size_t )__cil_tmp91;
6546 }
6547 } else {
6548 {
6549#line 878
6550 tmp___2 = DoC_GetHdrOffset(mtd, & fofs);
6551#line 878
6552 __cil_tmp92 = (unsigned char )tmp___2;
6553#line 878
6554 __cil_tmp93 = (int )__cil_tmp92;
6555#line 878
6556 __cil_tmp94 = (unsigned char )__cil_tmp93;
6557#line 878
6558 DoC_Command(docptr, __cil_tmp94, (unsigned char)0);
6559#line 879
6560 __cil_tmp95 = 16LL - base;
6561#line 879
6562 size = (size_t )__cil_tmp95;
6563 }
6564 }
6565 }
6566#line 881
6567 if (size > want) {
6568#line 882
6569 size = want;
6570 } else {
6571
6572 }
6573 {
6574#line 885
6575 __cil_tmp96 = & fofs;
6576#line 885
6577 __cil_tmp97 = *__cil_tmp96;
6578#line 885
6579 __cil_tmp98 = (unsigned long )__cil_tmp97;
6580#line 885
6581 DoC_Address(this, 3, __cil_tmp98, (unsigned char)0, (unsigned char)0);
6582#line 886
6583 __cil_tmp99 = (void volatile *)docptr;
6584#line 886
6585 __cil_tmp100 = __cil_tmp99 + 4128U;
6586#line 886
6587 writeb((unsigned char)0, __cil_tmp100);
6588#line 887
6589 DoC_WaitReady(docptr);
6590#line 889
6591 __cil_tmp101 = (void const volatile *)docptr;
6592#line 889
6593 __cil_tmp102 = __cil_tmp101 + 4138U;
6594#line 889
6595 readb(__cil_tmp102);
6596#line 890
6597 __cil_tmp103 = (void const volatile *)docptr;
6598#line 890
6599 __cil_tmp104 = __cil_tmp103 + 4138U;
6600#line 890
6601 readb(__cil_tmp104);
6602#line 891
6603 __cil_tmp105 = buf + got;
6604#line 891
6605 __cil_tmp106 = (unsigned int )size;
6606#line 891
6607 __cil_tmp107 = __cil_tmp106 - 2U;
6608#line 891
6609 __cil_tmp108 = (int )__cil_tmp107;
6610#line 891
6611 MemReadDOC(docptr, __cil_tmp105, __cil_tmp108);
6612#line 892
6613 __cil_tmp109 = got + size;
6614#line 892
6615 __cil_tmp110 = __cil_tmp109 + 0xfffffffffffffffeUL;
6616#line 892
6617 __cil_tmp111 = buf + __cil_tmp110;
6618#line 892
6619 __cil_tmp112 = (void const volatile *)docptr;
6620#line 892
6621 __cil_tmp113 = __cil_tmp112 + 4140U;
6622#line 892
6623 *__cil_tmp111 = readb(__cil_tmp113);
6624#line 893
6625 __cil_tmp114 = got + size;
6626#line 893
6627 __cil_tmp115 = __cil_tmp114 + 0xffffffffffffffffUL;
6628#line 893
6629 __cil_tmp116 = buf + __cil_tmp115;
6630#line 893
6631 __cil_tmp117 = (void const volatile *)docptr;
6632#line 893
6633 __cil_tmp118 = __cil_tmp117 + 4140U;
6634#line 893
6635 *__cil_tmp116 = readb(__cil_tmp118);
6636#line 895
6637 __cil_tmp119 = (unsigned long long )size;
6638#line 895
6639 __cil_tmp120 = (unsigned long long )ofs;
6640#line 895
6641 __cil_tmp121 = __cil_tmp120 + __cil_tmp119;
6642#line 895
6643 ofs = (loff_t )__cil_tmp121;
6644#line 896
6645 got = got + size;
6646#line 897
6647 want = want - size;
6648#line 864
6649 i = i + 1UL;
6650 }
6651 ldv_19478: ;
6652#line 864
6653 if (i <= 2UL) {
6654#line 864
6655 if (want != 0UL) {
6656#line 865
6657 goto ldv_19477;
6658 } else {
6659#line 867
6660 goto ldv_19479;
6661 }
6662 } else {
6663#line 867
6664 goto ldv_19479;
6665 }
6666 ldv_19479:
6667 {
6668#line 901
6669 __cil_tmp122 = (void volatile *)docptr;
6670#line 901
6671 __cil_tmp123 = __cil_tmp122 + 4130U;
6672#line 901
6673 writeb((unsigned char)0, __cil_tmp123);
6674#line 903
6675 __cil_tmp124 = (unsigned long )ops;
6676#line 903
6677 __cil_tmp125 = __cil_tmp124 + 16;
6678#line 903
6679 *((size_t *)__cil_tmp125) = len;
6680 }
6681#line 904
6682 return (0);
6683}
6684}
6685#line 907 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
6686static int doc_write_oob(struct mtd_info *mtd , loff_t ofs , struct mtd_oob_ops *ops )
6687{ char volatile dummy ;
6688 loff_t fofs ;
6689 loff_t base ;
6690 struct DiskOnChip *this ;
6691 void *docptr ;
6692 struct Nand *mychip ;
6693 size_t i ;
6694 size_t size ;
6695 size_t got ;
6696 size_t want ;
6697 int ret ;
6698 uint8_t *buf ;
6699 size_t len ;
6700 long tmp ;
6701 unsigned int tmp___0 ;
6702 unsigned int tmp___1 ;
6703 unsigned int tmp___2 ;
6704 unsigned char tmp___3 ;
6705 unsigned char tmp___4 ;
6706 unsigned char tmp___5 ;
6707 unsigned char tmp___6 ;
6708 unsigned long __cil_tmp25 ;
6709 unsigned long __cil_tmp26 ;
6710 void *__cil_tmp27 ;
6711 unsigned long __cil_tmp28 ;
6712 unsigned long __cil_tmp29 ;
6713 unsigned long __cil_tmp30 ;
6714 unsigned long __cil_tmp31 ;
6715 int __cil_tmp32 ;
6716 loff_t __cil_tmp33 ;
6717 unsigned long __cil_tmp34 ;
6718 unsigned long __cil_tmp35 ;
6719 unsigned long __cil_tmp36 ;
6720 struct Nand *__cil_tmp37 ;
6721 unsigned long __cil_tmp38 ;
6722 unsigned long __cil_tmp39 ;
6723 unsigned long __cil_tmp40 ;
6724 unsigned long __cil_tmp41 ;
6725 unsigned int __cil_tmp42 ;
6726 int __cil_tmp43 ;
6727 long __cil_tmp44 ;
6728 unsigned long __cil_tmp45 ;
6729 unsigned long __cil_tmp46 ;
6730 uint32_t __cil_tmp47 ;
6731 loff_t __cil_tmp48 ;
6732 char __cil_tmp49 ;
6733 int __cil_tmp50 ;
6734 unsigned long __cil_tmp51 ;
6735 unsigned long __cil_tmp52 ;
6736 int __cil_tmp53 ;
6737 char __cil_tmp54 ;
6738 int __cil_tmp55 ;
6739 unsigned long __cil_tmp56 ;
6740 unsigned long __cil_tmp57 ;
6741 char __cil_tmp58 ;
6742 int __cil_tmp59 ;
6743 unsigned long __cil_tmp60 ;
6744 unsigned long __cil_tmp61 ;
6745 char __cil_tmp62 ;
6746 int __cil_tmp63 ;
6747 unsigned long __cil_tmp64 ;
6748 unsigned long __cil_tmp65 ;
6749 int __cil_tmp66 ;
6750 unsigned long __cil_tmp67 ;
6751 unsigned long __cil_tmp68 ;
6752 char __cil_tmp69 ;
6753 int __cil_tmp70 ;
6754 unsigned long __cil_tmp71 ;
6755 unsigned long __cil_tmp72 ;
6756 char __cil_tmp73 ;
6757 unsigned long __cil_tmp74 ;
6758 unsigned long __cil_tmp75 ;
6759 unsigned long __cil_tmp76 ;
6760 unsigned long __cil_tmp77 ;
6761 char __cil_tmp78 ;
6762 void volatile *__cil_tmp79 ;
6763 void volatile *__cil_tmp80 ;
6764 loff_t *__cil_tmp81 ;
6765 unsigned long __cil_tmp82 ;
6766 unsigned long __cil_tmp83 ;
6767 char __cil_tmp84 ;
6768 signed char __cil_tmp85 ;
6769 int __cil_tmp86 ;
6770 void volatile *__cil_tmp87 ;
6771 void volatile *__cil_tmp88 ;
6772 long long __cil_tmp89 ;
6773 unsigned char __cil_tmp90 ;
6774 int __cil_tmp91 ;
6775 unsigned char __cil_tmp92 ;
6776 void volatile *__cil_tmp93 ;
6777 void volatile *__cil_tmp94 ;
6778 long long __cil_tmp95 ;
6779 unsigned char __cil_tmp96 ;
6780 int __cil_tmp97 ;
6781 unsigned char __cil_tmp98 ;
6782 void volatile *__cil_tmp99 ;
6783 void volatile *__cil_tmp100 ;
6784 long long __cil_tmp101 ;
6785 unsigned char __cil_tmp102 ;
6786 int __cil_tmp103 ;
6787 unsigned char __cil_tmp104 ;
6788 void volatile *__cil_tmp105 ;
6789 void volatile *__cil_tmp106 ;
6790 long long __cil_tmp107 ;
6791 loff_t *__cil_tmp108 ;
6792 loff_t __cil_tmp109 ;
6793 unsigned long __cil_tmp110 ;
6794 void volatile *__cil_tmp111 ;
6795 void volatile *__cil_tmp112 ;
6796 uint8_t *__cil_tmp113 ;
6797 int __cil_tmp114 ;
6798 void volatile *__cil_tmp115 ;
6799 void volatile *__cil_tmp116 ;
6800 void volatile *__cil_tmp117 ;
6801 void volatile *__cil_tmp118 ;
6802 void const volatile *__cil_tmp119 ;
6803 void const volatile *__cil_tmp120 ;
6804 void const volatile *__cil_tmp121 ;
6805 void const volatile *__cil_tmp122 ;
6806 void const volatile *__cil_tmp123 ;
6807 void const volatile *__cil_tmp124 ;
6808 int __cil_tmp125 ;
6809 int __cil_tmp126 ;
6810 int __cil_tmp127 ;
6811 unsigned long __cil_tmp128 ;
6812 unsigned long __cil_tmp129 ;
6813 void const volatile *__cil_tmp130 ;
6814 void const volatile *__cil_tmp131 ;
6815 unsigned long long __cil_tmp132 ;
6816 unsigned long long __cil_tmp133 ;
6817 unsigned long long __cil_tmp134 ;
6818 void volatile *__cil_tmp135 ;
6819 void volatile *__cil_tmp136 ;
6820 unsigned long __cil_tmp137 ;
6821 unsigned long __cil_tmp138 ;
6822
6823 {
6824 {
6825#line 912
6826 __cil_tmp25 = (unsigned long )mtd;
6827#line 912
6828 __cil_tmp26 = __cil_tmp25 + 360;
6829#line 912
6830 __cil_tmp27 = *((void **)__cil_tmp26);
6831#line 912
6832 this = (struct DiskOnChip *)__cil_tmp27;
6833#line 913
6834 __cil_tmp28 = (unsigned long )this;
6835#line 913
6836 __cil_tmp29 = __cil_tmp28 + 8;
6837#line 913
6838 docptr = *((void **)__cil_tmp29);
6839#line 914
6840 __cil_tmp30 = (unsigned long )this;
6841#line 914
6842 __cil_tmp31 = __cil_tmp30 + 48;
6843#line 914
6844 __cil_tmp32 = *((int *)__cil_tmp31);
6845#line 914
6846 __cil_tmp33 = ofs >> __cil_tmp32;
6847#line 914
6848 __cil_tmp34 = (unsigned long )__cil_tmp33;
6849#line 914
6850 __cil_tmp35 = (unsigned long )this;
6851#line 914
6852 __cil_tmp36 = __cil_tmp35 + 80;
6853#line 914
6854 __cil_tmp37 = *((struct Nand **)__cil_tmp36);
6855#line 914
6856 mychip = __cil_tmp37 + __cil_tmp34;
6857#line 916
6858 ret = 0;
6859#line 917
6860 __cil_tmp38 = (unsigned long )ops;
6861#line 917
6862 __cil_tmp39 = __cil_tmp38 + 56;
6863#line 917
6864 buf = *((uint8_t **)__cil_tmp39);
6865#line 918
6866 __cil_tmp40 = (unsigned long )ops;
6867#line 918
6868 __cil_tmp41 = __cil_tmp40 + 8;
6869#line 918
6870 len = *((size_t *)__cil_tmp41);
6871#line 920
6872 __cil_tmp42 = *((unsigned int *)ops);
6873#line 920
6874 __cil_tmp43 = __cil_tmp42 != 0U;
6875#line 920
6876 __cil_tmp44 = (long )__cil_tmp43;
6877#line 920
6878 tmp = __builtin_expect(__cil_tmp44, 0L);
6879 }
6880#line 920
6881 if (tmp != 0L) {
6882#line 920
6883 __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"),
6884 "i" (920), "i" (12UL));
6885 ldv_19498: ;
6886#line 920
6887 goto ldv_19498;
6888 } else {
6889
6890 }
6891 {
6892#line 922
6893 __cil_tmp45 = (unsigned long )ops;
6894#line 922
6895 __cil_tmp46 = __cil_tmp45 + 40;
6896#line 922
6897 __cil_tmp47 = *((uint32_t *)__cil_tmp46);
6898#line 922
6899 __cil_tmp48 = (loff_t )__cil_tmp47;
6900#line 922
6901 ofs = __cil_tmp48 + ofs;
6902#line 924
6903 DoC_CheckASIC(docptr);
6904 }
6905 {
6906#line 927
6907 __cil_tmp49 = *((char *)mychip);
6908#line 927
6909 __cil_tmp50 = (int )__cil_tmp49;
6910#line 927
6911 __cil_tmp51 = (unsigned long )this;
6912#line 927
6913 __cil_tmp52 = __cil_tmp51 + 64;
6914#line 927
6915 __cil_tmp53 = *((int *)__cil_tmp52);
6916#line 927
6917 if (__cil_tmp53 != __cil_tmp50) {
6918 {
6919#line 928
6920 __cil_tmp54 = *((char *)mychip);
6921#line 928
6922 __cil_tmp55 = (int )__cil_tmp54;
6923#line 928
6924 DoC_SelectFloor(docptr, __cil_tmp55);
6925#line 929
6926 __cil_tmp56 = (unsigned long )mychip;
6927#line 929
6928 __cil_tmp57 = __cil_tmp56 + 1;
6929#line 929
6930 __cil_tmp58 = *((char *)__cil_tmp57);
6931#line 929
6932 __cil_tmp59 = (int )__cil_tmp58;
6933#line 929
6934 DoC_SelectChip(docptr, __cil_tmp59);
6935 }
6936 } else {
6937 {
6938#line 930
6939 __cil_tmp60 = (unsigned long )mychip;
6940#line 930
6941 __cil_tmp61 = __cil_tmp60 + 1;
6942#line 930
6943 __cil_tmp62 = *((char *)__cil_tmp61);
6944#line 930
6945 __cil_tmp63 = (int )__cil_tmp62;
6946#line 930
6947 __cil_tmp64 = (unsigned long )this;
6948#line 930
6949 __cil_tmp65 = __cil_tmp64 + 68;
6950#line 930
6951 __cil_tmp66 = *((int *)__cil_tmp65);
6952#line 930
6953 if (__cil_tmp66 != __cil_tmp63) {
6954 {
6955#line 931
6956 __cil_tmp67 = (unsigned long )mychip;
6957#line 931
6958 __cil_tmp68 = __cil_tmp67 + 1;
6959#line 931
6960 __cil_tmp69 = *((char *)__cil_tmp68);
6961#line 931
6962 __cil_tmp70 = (int )__cil_tmp69;
6963#line 931
6964 DoC_SelectChip(docptr, __cil_tmp70);
6965 }
6966 } else {
6967
6968 }
6969 }
6970 }
6971 }
6972 {
6973#line 933
6974 __cil_tmp71 = (unsigned long )this;
6975#line 933
6976 __cil_tmp72 = __cil_tmp71 + 64;
6977#line 933
6978 __cil_tmp73 = *((char *)mychip);
6979#line 933
6980 *((int *)__cil_tmp72) = (int )__cil_tmp73;
6981#line 934
6982 __cil_tmp74 = (unsigned long )this;
6983#line 934
6984 __cil_tmp75 = __cil_tmp74 + 68;
6985#line 934
6986 __cil_tmp76 = (unsigned long )mychip;
6987#line 934
6988 __cil_tmp77 = __cil_tmp76 + 1;
6989#line 934
6990 __cil_tmp78 = *((char *)__cil_tmp77);
6991#line 934
6992 *((int *)__cil_tmp75) = (int )__cil_tmp78;
6993#line 937
6994 __cil_tmp79 = (void volatile *)docptr;
6995#line 937
6996 __cil_tmp80 = __cil_tmp79 + 4130U;
6997#line 937
6998 writeb((unsigned char)128, __cil_tmp80);
6999 }
7000#line 941
7001 if (len > 16UL) {
7002#line 942
7003 len = 16UL;
7004 } else {
7005
7006 }
7007#line 943
7008 got = 0UL;
7009#line 944
7010 want = len;
7011#line 946
7012 i = 0UL;
7013#line 946
7014 goto ldv_19500;
7015 ldv_19499:
7016 {
7017#line 948
7018 DoC_Command(docptr, (unsigned char)255, (unsigned char)0);
7019#line 949
7020 DoC_WaitReady(docptr);
7021#line 952
7022 __cil_tmp81 = & fofs;
7023#line 952
7024 *__cil_tmp81 = ofs;
7025#line 953
7026 base = ofs & 15LL;
7027 }
7028 {
7029#line 954
7030 __cil_tmp82 = (unsigned long )this;
7031#line 954
7032 __cil_tmp83 = __cil_tmp82 + 54;
7033#line 954
7034 __cil_tmp84 = *((char *)__cil_tmp83);
7035#line 954
7036 __cil_tmp85 = (signed char )__cil_tmp84;
7037#line 954
7038 __cil_tmp86 = (int )__cil_tmp85;
7039#line 954
7040 if (__cil_tmp86 == 0) {
7041 {
7042#line 955
7043 __cil_tmp87 = (void volatile *)docptr;
7044#line 955
7045 __cil_tmp88 = __cil_tmp87 + 4132U;
7046#line 955
7047 writeb((unsigned char)80, __cil_tmp88);
7048#line 956
7049 __cil_tmp89 = 16LL - base;
7050#line 956
7051 size = (size_t )__cil_tmp89;
7052 }
7053 } else
7054#line 957
7055 if (base <= 5LL) {
7056 {
7057#line 958
7058 tmp___0 = DoC_GetECCOffset(mtd, & fofs);
7059#line 958
7060 __cil_tmp90 = (unsigned char )tmp___0;
7061#line 958
7062 __cil_tmp91 = (int )__cil_tmp90;
7063#line 958
7064 __cil_tmp92 = (unsigned char )__cil_tmp91;
7065#line 958
7066 __cil_tmp93 = (void volatile *)docptr;
7067#line 958
7068 __cil_tmp94 = __cil_tmp93 + 4132U;
7069#line 958
7070 writeb(__cil_tmp92, __cil_tmp94);
7071#line 959
7072 __cil_tmp95 = 6LL - base;
7073#line 959
7074 size = (size_t )__cil_tmp95;
7075 }
7076 } else
7077#line 960
7078 if (base <= 7LL) {
7079 {
7080#line 961
7081 tmp___1 = DoC_GetFlagsOffset(mtd, & fofs);
7082#line 961
7083 __cil_tmp96 = (unsigned char )tmp___1;
7084#line 961
7085 __cil_tmp97 = (int )__cil_tmp96;
7086#line 961
7087 __cil_tmp98 = (unsigned char )__cil_tmp97;
7088#line 961
7089 __cil_tmp99 = (void volatile *)docptr;
7090#line 961
7091 __cil_tmp100 = __cil_tmp99 + 4132U;
7092#line 961
7093 writeb(__cil_tmp98, __cil_tmp100);
7094#line 962
7095 __cil_tmp101 = 8LL - base;
7096#line 962
7097 size = (size_t )__cil_tmp101;
7098 }
7099 } else {
7100 {
7101#line 964
7102 tmp___2 = DoC_GetHdrOffset(mtd, & fofs);
7103#line 964
7104 __cil_tmp102 = (unsigned char )tmp___2;
7105#line 964
7106 __cil_tmp103 = (int )__cil_tmp102;
7107#line 964
7108 __cil_tmp104 = (unsigned char )__cil_tmp103;
7109#line 964
7110 __cil_tmp105 = (void volatile *)docptr;
7111#line 964
7112 __cil_tmp106 = __cil_tmp105 + 4132U;
7113#line 964
7114 writeb(__cil_tmp104, __cil_tmp106);
7115#line 965
7116 __cil_tmp107 = 16LL - base;
7117#line 965
7118 size = (size_t )__cil_tmp107;
7119 }
7120 }
7121 }
7122#line 967
7123 if (size > want) {
7124#line 968
7125 size = want;
7126 } else {
7127
7128 }
7129 {
7130#line 971
7131 DoC_Command(docptr, (unsigned char)128, (unsigned char)0);
7132#line 972
7133 __cil_tmp108 = & fofs;
7134#line 972
7135 __cil_tmp109 = *__cil_tmp108;
7136#line 972
7137 __cil_tmp110 = (unsigned long )__cil_tmp109;
7138#line 972
7139 DoC_Address(this, 3, __cil_tmp110, (unsigned char)0, (unsigned char)0);
7140#line 975
7141 __cil_tmp111 = (void volatile *)docptr;
7142#line 975
7143 __cil_tmp112 = __cil_tmp111 + 4166U;
7144#line 975
7145 writeb((unsigned char)0, __cil_tmp112);
7146#line 979
7147 __cil_tmp113 = buf + got;
7148#line 979
7149 __cil_tmp114 = (int )size;
7150#line 979
7151 MemWriteDOC(docptr, __cil_tmp113, __cil_tmp114);
7152#line 980
7153 __cil_tmp115 = (void volatile *)docptr;
7154#line 980
7155 __cil_tmp116 = __cil_tmp115 + 4142U;
7156#line 980
7157 writeb((unsigned char)0, __cil_tmp116);
7158#line 981
7159 __cil_tmp117 = (void volatile *)docptr;
7160#line 981
7161 __cil_tmp118 = __cil_tmp117 + 4142U;
7162#line 981
7163 writeb((unsigned char)0, __cil_tmp118);
7164#line 985
7165 DoC_Command(docptr, (unsigned char)16, (unsigned char)0);
7166#line 986
7167 DoC_WaitReady(docptr);
7168#line 990
7169 DoC_Command(docptr, (unsigned char)112, (unsigned char)0);
7170#line 991
7171 __cil_tmp119 = (void const volatile *)docptr;
7172#line 991
7173 __cil_tmp120 = __cil_tmp119 + 4138U;
7174#line 991
7175 tmp___3 = readb(__cil_tmp120);
7176#line 991
7177 dummy = (char volatile )tmp___3;
7178#line 992
7179 __cil_tmp121 = (void const volatile *)docptr;
7180#line 992
7181 __cil_tmp122 = __cil_tmp121 + 4138U;
7182#line 992
7183 tmp___4 = readb(__cil_tmp122);
7184#line 992
7185 dummy = (char volatile )tmp___4;
7186#line 993
7187 DoC_Delay(docptr, 2);
7188#line 994
7189 __cil_tmp123 = (void const volatile *)docptr;
7190#line 994
7191 __cil_tmp124 = __cil_tmp123 + 4140U;
7192#line 994
7193 tmp___5 = readb(__cil_tmp124);
7194#line 994
7195 dummy = (char volatile )tmp___5;
7196 }
7197 {
7198#line 994
7199 __cil_tmp125 = (int )dummy;
7200#line 994
7201 if (__cil_tmp125 & 1) {
7202 {
7203#line 995
7204 __cil_tmp126 = (int )dummy;
7205#line 995
7206 __cil_tmp127 = (int )ofs;
7207#line 995
7208 printk("MTD: Error 0x%x programming oob at 0x%x\n", __cil_tmp126, __cil_tmp127);
7209#line 998
7210 __cil_tmp128 = (unsigned long )ops;
7211#line 998
7212 __cil_tmp129 = __cil_tmp128 + 16;
7213#line 998
7214 *((size_t *)__cil_tmp129) = 0UL;
7215#line 999
7216 ret = -5;
7217 }
7218 } else {
7219
7220 }
7221 }
7222 {
7223#line 1001
7224 __cil_tmp130 = (void const volatile *)docptr;
7225#line 1001
7226 __cil_tmp131 = __cil_tmp130 + 4140U;
7227#line 1001
7228 tmp___6 = readb(__cil_tmp131);
7229#line 1001
7230 dummy = (char volatile )tmp___6;
7231#line 1003
7232 __cil_tmp132 = (unsigned long long )size;
7233#line 1003
7234 __cil_tmp133 = (unsigned long long )ofs;
7235#line 1003
7236 __cil_tmp134 = __cil_tmp133 + __cil_tmp132;
7237#line 1003
7238 ofs = (loff_t )__cil_tmp134;
7239#line 1004
7240 got = got + size;
7241#line 1005
7242 want = want - size;
7243#line 946
7244 i = i + 1UL;
7245 }
7246 ldv_19500: ;
7247#line 946
7248 if (i <= 2UL) {
7249#line 946
7250 if (want != 0UL) {
7251#line 947
7252 goto ldv_19499;
7253 } else {
7254#line 949
7255 goto ldv_19501;
7256 }
7257 } else {
7258#line 949
7259 goto ldv_19501;
7260 }
7261 ldv_19501:
7262 {
7263#line 1009
7264 __cil_tmp135 = (void volatile *)docptr;
7265#line 1009
7266 __cil_tmp136 = __cil_tmp135 + 4130U;
7267#line 1009
7268 writeb((unsigned char)0, __cil_tmp136);
7269#line 1011
7270 __cil_tmp137 = (unsigned long )ops;
7271#line 1011
7272 __cil_tmp138 = __cil_tmp137 + 16;
7273#line 1011
7274 *((size_t *)__cil_tmp138) = len;
7275 }
7276#line 1012
7277 return (ret);
7278}
7279}
7280#line 1015 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7281static int doc_erase(struct mtd_info *mtd , struct erase_info *instr )
7282{ char volatile dummy ;
7283 struct DiskOnChip *this ;
7284 __u32 ofs ;
7285 __u32 len ;
7286 void *docptr ;
7287 struct Nand *mychip ;
7288 unsigned char tmp ;
7289 unsigned char tmp___0 ;
7290 unsigned char tmp___1 ;
7291 unsigned char tmp___2 ;
7292 unsigned long __cil_tmp13 ;
7293 unsigned long __cil_tmp14 ;
7294 void *__cil_tmp15 ;
7295 unsigned long __cil_tmp16 ;
7296 unsigned long __cil_tmp17 ;
7297 uint64_t __cil_tmp18 ;
7298 unsigned long __cil_tmp19 ;
7299 unsigned long __cil_tmp20 ;
7300 uint64_t __cil_tmp21 ;
7301 unsigned long __cil_tmp22 ;
7302 unsigned long __cil_tmp23 ;
7303 unsigned long __cil_tmp24 ;
7304 unsigned long __cil_tmp25 ;
7305 int __cil_tmp26 ;
7306 __u32 __cil_tmp27 ;
7307 unsigned long __cil_tmp28 ;
7308 unsigned long __cil_tmp29 ;
7309 unsigned long __cil_tmp30 ;
7310 struct Nand *__cil_tmp31 ;
7311 unsigned long __cil_tmp32 ;
7312 unsigned long __cil_tmp33 ;
7313 uint32_t __cil_tmp34 ;
7314 unsigned long __cil_tmp35 ;
7315 unsigned long __cil_tmp36 ;
7316 uint32_t __cil_tmp37 ;
7317 char __cil_tmp38 ;
7318 int __cil_tmp39 ;
7319 unsigned long __cil_tmp40 ;
7320 unsigned long __cil_tmp41 ;
7321 int __cil_tmp42 ;
7322 char __cil_tmp43 ;
7323 int __cil_tmp44 ;
7324 unsigned long __cil_tmp45 ;
7325 unsigned long __cil_tmp46 ;
7326 char __cil_tmp47 ;
7327 int __cil_tmp48 ;
7328 unsigned long __cil_tmp49 ;
7329 unsigned long __cil_tmp50 ;
7330 char __cil_tmp51 ;
7331 int __cil_tmp52 ;
7332 unsigned long __cil_tmp53 ;
7333 unsigned long __cil_tmp54 ;
7334 int __cil_tmp55 ;
7335 unsigned long __cil_tmp56 ;
7336 unsigned long __cil_tmp57 ;
7337 char __cil_tmp58 ;
7338 int __cil_tmp59 ;
7339 unsigned long __cil_tmp60 ;
7340 unsigned long __cil_tmp61 ;
7341 char __cil_tmp62 ;
7342 unsigned long __cil_tmp63 ;
7343 unsigned long __cil_tmp64 ;
7344 unsigned long __cil_tmp65 ;
7345 unsigned long __cil_tmp66 ;
7346 char __cil_tmp67 ;
7347 unsigned long __cil_tmp68 ;
7348 unsigned long __cil_tmp69 ;
7349 void volatile *__cil_tmp70 ;
7350 void volatile *__cil_tmp71 ;
7351 unsigned long __cil_tmp72 ;
7352 unsigned long __cil_tmp73 ;
7353 unsigned long __cil_tmp74 ;
7354 void const volatile *__cil_tmp75 ;
7355 void const volatile *__cil_tmp76 ;
7356 void const volatile *__cil_tmp77 ;
7357 void const volatile *__cil_tmp78 ;
7358 void const volatile *__cil_tmp79 ;
7359 void const volatile *__cil_tmp80 ;
7360 int __cil_tmp81 ;
7361 int __cil_tmp82 ;
7362 unsigned long __cil_tmp83 ;
7363 unsigned long __cil_tmp84 ;
7364 unsigned long __cil_tmp85 ;
7365 unsigned long __cil_tmp86 ;
7366 void const volatile *__cil_tmp87 ;
7367 void const volatile *__cil_tmp88 ;
7368 void volatile *__cil_tmp89 ;
7369 void volatile *__cil_tmp90 ;
7370
7371 {
7372 {
7373#line 1018
7374 __cil_tmp13 = (unsigned long )mtd;
7375#line 1018
7376 __cil_tmp14 = __cil_tmp13 + 360;
7377#line 1018
7378 __cil_tmp15 = *((void **)__cil_tmp14);
7379#line 1018
7380 this = (struct DiskOnChip *)__cil_tmp15;
7381#line 1019
7382 __cil_tmp16 = (unsigned long )instr;
7383#line 1019
7384 __cil_tmp17 = __cil_tmp16 + 8;
7385#line 1019
7386 __cil_tmp18 = *((uint64_t *)__cil_tmp17);
7387#line 1019
7388 ofs = (__u32 )__cil_tmp18;
7389#line 1020
7390 __cil_tmp19 = (unsigned long )instr;
7391#line 1020
7392 __cil_tmp20 = __cil_tmp19 + 16;
7393#line 1020
7394 __cil_tmp21 = *((uint64_t *)__cil_tmp20);
7395#line 1020
7396 len = (__u32 )__cil_tmp21;
7397#line 1021
7398 __cil_tmp22 = (unsigned long )this;
7399#line 1021
7400 __cil_tmp23 = __cil_tmp22 + 8;
7401#line 1021
7402 docptr = *((void **)__cil_tmp23);
7403#line 1022
7404 __cil_tmp24 = (unsigned long )this;
7405#line 1022
7406 __cil_tmp25 = __cil_tmp24 + 48;
7407#line 1022
7408 __cil_tmp26 = *((int *)__cil_tmp25);
7409#line 1022
7410 __cil_tmp27 = ofs >> __cil_tmp26;
7411#line 1022
7412 __cil_tmp28 = (unsigned long )__cil_tmp27;
7413#line 1022
7414 __cil_tmp29 = (unsigned long )this;
7415#line 1022
7416 __cil_tmp30 = __cil_tmp29 + 80;
7417#line 1022
7418 __cil_tmp31 = *((struct Nand **)__cil_tmp30);
7419#line 1022
7420 mychip = __cil_tmp31 + __cil_tmp28;
7421#line 1024
7422 DoC_CheckASIC(docptr);
7423 }
7424 {
7425#line 1026
7426 __cil_tmp32 = (unsigned long )mtd;
7427#line 1026
7428 __cil_tmp33 = __cil_tmp32 + 16;
7429#line 1026
7430 __cil_tmp34 = *((uint32_t *)__cil_tmp33);
7431#line 1026
7432 if (__cil_tmp34 != len) {
7433 {
7434#line 1027
7435 __cil_tmp35 = (unsigned long )mtd;
7436#line 1027
7437 __cil_tmp36 = __cil_tmp35 + 16;
7438#line 1027
7439 __cil_tmp37 = *((uint32_t *)__cil_tmp36);
7440#line 1027
7441 printk("<4>MTD: Erase not right size (%x != %x)n", len, __cil_tmp37);
7442 }
7443 } else {
7444
7445 }
7446 }
7447 {
7448#line 1031
7449 __cil_tmp38 = *((char *)mychip);
7450#line 1031
7451 __cil_tmp39 = (int )__cil_tmp38;
7452#line 1031
7453 __cil_tmp40 = (unsigned long )this;
7454#line 1031
7455 __cil_tmp41 = __cil_tmp40 + 64;
7456#line 1031
7457 __cil_tmp42 = *((int *)__cil_tmp41);
7458#line 1031
7459 if (__cil_tmp42 != __cil_tmp39) {
7460 {
7461#line 1032
7462 __cil_tmp43 = *((char *)mychip);
7463#line 1032
7464 __cil_tmp44 = (int )__cil_tmp43;
7465#line 1032
7466 DoC_SelectFloor(docptr, __cil_tmp44);
7467#line 1033
7468 __cil_tmp45 = (unsigned long )mychip;
7469#line 1033
7470 __cil_tmp46 = __cil_tmp45 + 1;
7471#line 1033
7472 __cil_tmp47 = *((char *)__cil_tmp46);
7473#line 1033
7474 __cil_tmp48 = (int )__cil_tmp47;
7475#line 1033
7476 DoC_SelectChip(docptr, __cil_tmp48);
7477 }
7478 } else {
7479 {
7480#line 1034
7481 __cil_tmp49 = (unsigned long )mychip;
7482#line 1034
7483 __cil_tmp50 = __cil_tmp49 + 1;
7484#line 1034
7485 __cil_tmp51 = *((char *)__cil_tmp50);
7486#line 1034
7487 __cil_tmp52 = (int )__cil_tmp51;
7488#line 1034
7489 __cil_tmp53 = (unsigned long )this;
7490#line 1034
7491 __cil_tmp54 = __cil_tmp53 + 68;
7492#line 1034
7493 __cil_tmp55 = *((int *)__cil_tmp54);
7494#line 1034
7495 if (__cil_tmp55 != __cil_tmp52) {
7496 {
7497#line 1035
7498 __cil_tmp56 = (unsigned long )mychip;
7499#line 1035
7500 __cil_tmp57 = __cil_tmp56 + 1;
7501#line 1035
7502 __cil_tmp58 = *((char *)__cil_tmp57);
7503#line 1035
7504 __cil_tmp59 = (int )__cil_tmp58;
7505#line 1035
7506 DoC_SelectChip(docptr, __cil_tmp59);
7507 }
7508 } else {
7509
7510 }
7511 }
7512 }
7513 }
7514 {
7515#line 1037
7516 __cil_tmp60 = (unsigned long )this;
7517#line 1037
7518 __cil_tmp61 = __cil_tmp60 + 64;
7519#line 1037
7520 __cil_tmp62 = *((char *)mychip);
7521#line 1037
7522 *((int *)__cil_tmp61) = (int )__cil_tmp62;
7523#line 1038
7524 __cil_tmp63 = (unsigned long )this;
7525#line 1038
7526 __cil_tmp64 = __cil_tmp63 + 68;
7527#line 1038
7528 __cil_tmp65 = (unsigned long )mychip;
7529#line 1038
7530 __cil_tmp66 = __cil_tmp65 + 1;
7531#line 1038
7532 __cil_tmp67 = *((char *)__cil_tmp66);
7533#line 1038
7534 *((int *)__cil_tmp64) = (int )__cil_tmp67;
7535#line 1040
7536 __cil_tmp68 = (unsigned long )instr;
7537#line 1040
7538 __cil_tmp69 = __cil_tmp68 + 72;
7539#line 1040
7540 *((u_char *)__cil_tmp69) = (u_char )1U;
7541#line 1043
7542 __cil_tmp70 = (void volatile *)docptr;
7543#line 1043
7544 __cil_tmp71 = __cil_tmp70 + 4130U;
7545#line 1043
7546 writeb((unsigned char)128, __cil_tmp71);
7547#line 1045
7548 DoC_Command(docptr, (unsigned char)255, (unsigned char)0);
7549#line 1046
7550 DoC_WaitReady(docptr);
7551#line 1048
7552 DoC_Command(docptr, (unsigned char)96, (unsigned char)0);
7553#line 1049
7554 __cil_tmp72 = (unsigned long )ofs;
7555#line 1049
7556 DoC_Address(this, 2, __cil_tmp72, (unsigned char)0, (unsigned char)0);
7557#line 1050
7558 DoC_Command(docptr, (unsigned char)208, (unsigned char)0);
7559#line 1051
7560 DoC_WaitReady(docptr);
7561#line 1052
7562 __cil_tmp73 = (unsigned long )instr;
7563#line 1052
7564 __cil_tmp74 = __cil_tmp73 + 72;
7565#line 1052
7566 *((u_char *)__cil_tmp74) = (u_char )2U;
7567#line 1056
7568 DoC_Command(docptr, (unsigned char)112, (unsigned char)0);
7569#line 1057
7570 __cil_tmp75 = (void const volatile *)docptr;
7571#line 1057
7572 __cil_tmp76 = __cil_tmp75 + 4138U;
7573#line 1057
7574 tmp = readb(__cil_tmp76);
7575#line 1057
7576 dummy = (char volatile )tmp;
7577#line 1058
7578 __cil_tmp77 = (void const volatile *)docptr;
7579#line 1058
7580 __cil_tmp78 = __cil_tmp77 + 4138U;
7581#line 1058
7582 tmp___0 = readb(__cil_tmp78);
7583#line 1058
7584 dummy = (char volatile )tmp___0;
7585#line 1059
7586 __cil_tmp79 = (void const volatile *)docptr;
7587#line 1059
7588 __cil_tmp80 = __cil_tmp79 + 4140U;
7589#line 1059
7590 tmp___1 = readb(__cil_tmp80);
7591#line 1059
7592 dummy = (char volatile )tmp___1;
7593 }
7594 {
7595#line 1059
7596 __cil_tmp81 = (int )dummy;
7597#line 1059
7598 if (__cil_tmp81 & 1) {
7599 {
7600#line 1060
7601 __cil_tmp82 = (int )dummy;
7602#line 1060
7603 printk("MTD: Error 0x%x erasing at 0x%x\n", __cil_tmp82, ofs);
7604#line 1062
7605 __cil_tmp83 = (unsigned long )instr;
7606#line 1062
7607 __cil_tmp84 = __cil_tmp83 + 72;
7608#line 1062
7609 *((u_char *)__cil_tmp84) = (u_char )16U;
7610 }
7611 } else {
7612#line 1064
7613 __cil_tmp85 = (unsigned long )instr;
7614#line 1064
7615 __cil_tmp86 = __cil_tmp85 + 72;
7616#line 1064
7617 *((u_char *)__cil_tmp86) = (u_char )8U;
7618 }
7619 }
7620 {
7621#line 1066
7622 __cil_tmp87 = (void const volatile *)docptr;
7623#line 1066
7624 __cil_tmp88 = __cil_tmp87 + 4140U;
7625#line 1066
7626 tmp___2 = readb(__cil_tmp88);
7627#line 1066
7628 dummy = (char volatile )tmp___2;
7629#line 1069
7630 __cil_tmp89 = (void volatile *)docptr;
7631#line 1069
7632 __cil_tmp90 = __cil_tmp89 + 4130U;
7633#line 1069
7634 writeb((unsigned char)0, __cil_tmp90);
7635#line 1071
7636 mtd_erase_callback(instr);
7637 }
7638#line 1073
7639 return (0);
7640}
7641}
7642#line 1082 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7643static void cleanup_doc2001plus(void)
7644{ struct mtd_info *mtd ;
7645 struct DiskOnChip *this ;
7646 unsigned long __cil_tmp3 ;
7647 unsigned long __cil_tmp4 ;
7648 void *__cil_tmp5 ;
7649 unsigned long __cil_tmp6 ;
7650 unsigned long __cil_tmp7 ;
7651 unsigned long __cil_tmp8 ;
7652 unsigned long __cil_tmp9 ;
7653 void *__cil_tmp10 ;
7654 void volatile *__cil_tmp11 ;
7655 unsigned long __cil_tmp12 ;
7656 unsigned long __cil_tmp13 ;
7657 struct Nand *__cil_tmp14 ;
7658 void const *__cil_tmp15 ;
7659 void const *__cil_tmp16 ;
7660 struct mtd_info *__cil_tmp17 ;
7661 unsigned long __cil_tmp18 ;
7662 unsigned long __cil_tmp19 ;
7663
7664 {
7665#line 1087
7666 goto ldv_19518;
7667 ldv_19517:
7668 {
7669#line 1088
7670 __cil_tmp3 = (unsigned long )mtd;
7671#line 1088
7672 __cil_tmp4 = __cil_tmp3 + 360;
7673#line 1088
7674 __cil_tmp5 = *((void **)__cil_tmp4);
7675#line 1088
7676 this = (struct DiskOnChip *)__cil_tmp5;
7677#line 1089
7678 __cil_tmp6 = (unsigned long )this;
7679#line 1089
7680 __cil_tmp7 = __cil_tmp6 + 88;
7681#line 1089
7682 docmilpluslist = *((struct mtd_info **)__cil_tmp7);
7683#line 1091
7684 mtd_device_unregister(mtd);
7685#line 1093
7686 __cil_tmp8 = (unsigned long )this;
7687#line 1093
7688 __cil_tmp9 = __cil_tmp8 + 8;
7689#line 1093
7690 __cil_tmp10 = *((void **)__cil_tmp9);
7691#line 1093
7692 __cil_tmp11 = (void volatile *)__cil_tmp10;
7693#line 1093
7694 iounmap(__cil_tmp11);
7695#line 1094
7696 __cil_tmp12 = (unsigned long )this;
7697#line 1094
7698 __cil_tmp13 = __cil_tmp12 + 80;
7699#line 1094
7700 __cil_tmp14 = *((struct Nand **)__cil_tmp13);
7701#line 1094
7702 __cil_tmp15 = (void const *)__cil_tmp14;
7703#line 1094
7704 kfree(__cil_tmp15);
7705#line 1095
7706 __cil_tmp16 = (void const *)mtd;
7707#line 1095
7708 kfree(__cil_tmp16);
7709 }
7710 ldv_19518:
7711#line 1087
7712 mtd = docmilpluslist;
7713 {
7714#line 1087
7715 __cil_tmp17 = (struct mtd_info *)0;
7716#line 1087
7717 __cil_tmp18 = (unsigned long )__cil_tmp17;
7718#line 1087
7719 __cil_tmp19 = (unsigned long )mtd;
7720#line 1087
7721 if (__cil_tmp19 != __cil_tmp18) {
7722#line 1088
7723 goto ldv_19517;
7724 } else {
7725#line 1090
7726 goto ldv_19519;
7727 }
7728 }
7729 ldv_19519: ;
7730#line 1092
7731 return;
7732}
7733}
7734#line 1121
7735extern void ldv_check_final_state(void) ;
7736#line 1127
7737extern void ldv_initialize(void) ;
7738#line 1130
7739extern int __VERIFIER_nondet_int(void) ;
7740#line 1133 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7741int LDV_IN_INTERRUPT ;
7742#line 1136 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7743void main(void)
7744{ int tmp ;
7745 int tmp___0 ;
7746
7747 {
7748 {
7749#line 1148
7750 LDV_IN_INTERRUPT = 1;
7751#line 1157
7752 ldv_initialize();
7753 }
7754#line 1159
7755 goto ldv_19543;
7756 ldv_19542:
7757 {
7758#line 1162
7759 tmp = __VERIFIER_nondet_int();
7760 }
7761 {
7762#line 1164
7763 goto switch_default;
7764#line 1162
7765 if (0) {
7766 switch_default: ;
7767#line 1164
7768 goto ldv_19541;
7769 } else {
7770 switch_break: ;
7771 }
7772 }
7773 ldv_19541: ;
7774 ldv_19543:
7775 {
7776#line 1159
7777 tmp___0 = __VERIFIER_nondet_int();
7778 }
7779#line 1159
7780 if (tmp___0 != 0) {
7781#line 1160
7782 goto ldv_19542;
7783 } else {
7784#line 1162
7785 goto ldv_19544;
7786 }
7787 ldv_19544: ;
7788 {
7789#line 1197
7790 cleanup_doc2001plus();
7791 }
7792 {
7793#line 1200
7794 ldv_check_final_state();
7795 }
7796#line 1203
7797 return;
7798}
7799}
7800#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
7801void ldv_blast_assert(void)
7802{
7803
7804 {
7805 ERROR: ;
7806#line 6
7807 goto ERROR;
7808}
7809}
7810#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
7811extern int __VERIFIER_nondet_int(void) ;
7812#line 1224 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7813int ldv_spin = 0;
7814#line 1228 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7815void ldv_check_alloc_flags(gfp_t flags )
7816{
7817
7818 {
7819#line 1231
7820 if (ldv_spin != 0) {
7821#line 1231
7822 if (flags != 32U) {
7823 {
7824#line 1231
7825 ldv_blast_assert();
7826 }
7827 } else {
7828
7829 }
7830 } else {
7831
7832 }
7833#line 1234
7834 return;
7835}
7836}
7837#line 1234
7838extern struct page *ldv_some_page(void) ;
7839#line 1237 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7840struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags )
7841{ struct page *tmp ;
7842
7843 {
7844#line 1240
7845 if (ldv_spin != 0) {
7846#line 1240
7847 if (flags != 32U) {
7848 {
7849#line 1240
7850 ldv_blast_assert();
7851 }
7852 } else {
7853
7854 }
7855 } else {
7856
7857 }
7858 {
7859#line 1242
7860 tmp = ldv_some_page();
7861 }
7862#line 1242
7863 return (tmp);
7864}
7865}
7866#line 1246 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7867void ldv_check_alloc_nonatomic(void)
7868{
7869
7870 {
7871#line 1249
7872 if (ldv_spin != 0) {
7873 {
7874#line 1249
7875 ldv_blast_assert();
7876 }
7877 } else {
7878
7879 }
7880#line 1252
7881 return;
7882}
7883}
7884#line 1253 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7885void ldv_spin_lock(void)
7886{
7887
7888 {
7889#line 1256
7890 ldv_spin = 1;
7891#line 1257
7892 return;
7893}
7894}
7895#line 1260 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7896void ldv_spin_unlock(void)
7897{
7898
7899 {
7900#line 1263
7901 ldv_spin = 0;
7902#line 1264
7903 return;
7904}
7905}
7906#line 1267 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7907int ldv_spin_trylock(void)
7908{ int is_lock ;
7909
7910 {
7911 {
7912#line 1272
7913 is_lock = __VERIFIER_nondet_int();
7914 }
7915#line 1274
7916 if (is_lock != 0) {
7917#line 1277
7918 return (0);
7919 } else {
7920#line 1282
7921 ldv_spin = 1;
7922#line 1284
7923 return (1);
7924 }
7925}
7926}
7927#line 1406 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7928__inline static void *kmalloc(size_t size , gfp_t flags )
7929{
7930
7931 {
7932 {
7933#line 1412
7934 ldv_check_alloc_flags(flags);
7935#line 1414
7936 ldv_kmalloc_12(size, flags);
7937 }
7938#line 1415
7939 return ((void *)0);
7940}
7941}
7942#line 1451 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11713/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/devices/doc2001plus.c.p"
7943void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 )
7944{
7945
7946 {
7947 {
7948#line 1457
7949 ldv_check_alloc_flags(ldv_func_arg2);
7950#line 1459
7951 kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
7952 }
7953#line 1460
7954 return ((void *)0);
7955}
7956}