Showing error 1090

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-linux-3.4/43_1a_cilled_safe_ok_nondet_linux-43_1a-drivers--mtd--devices--doc2001plus.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 7805
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1/* Generated by CIL v. 1.3.7 */
   2/* print_CIL_Input is true */
   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: /* CIL Label */ 
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: /* CIL Label */ 
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: /* CIL Label */ 
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: /* CIL Label */ ;
3174#line 161
3175      return;
3176    } else {
3177      switch_break: /* CIL Label */ ;
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: /* CIL Label */ ;
7767#line 1164
7768    goto ldv_19541;
7769  } else {
7770    switch_break: /* CIL Label */ ;
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}