Showing error 1106

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