Showing error 1107

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_pagetest.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 5792
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>"
2463
2464#line 1
2465long __builtin_expect(long  , long  ) ;
2466#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2467void ldv_spin_lock(void) ;
2468#line 3
2469void ldv_spin_unlock(void) ;
2470#line 4
2471int ldv_spin_trylock(void) ;
2472#line 101 "include/linux/printk.h"
2473extern int printk(char const   *  , ...) ;
2474#line 147 "include/linux/kernel.h"
2475extern void __might_sleep(char const   * , int  , int  ) ;
2476#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
2477extern void *memset(void * , int  , size_t  ) ;
2478#line 60
2479extern int memcmp(void const   * , void const   * , size_t  ) ;
2480#line 62
2481extern char *strcpy(char * , char const   * ) ;
2482#line 27 "include/linux/err.h"
2483__inline static long PTR_ERR(void const   *ptr ) 
2484{ 
2485
2486  {
2487#line 29
2488  return ((long )ptr);
2489}
2490}
2491#line 32 "include/linux/err.h"
2492__inline static long IS_ERR(void const   *ptr ) 
2493{ long tmp ;
2494  unsigned long __cil_tmp3 ;
2495  int __cil_tmp4 ;
2496  long __cil_tmp5 ;
2497
2498  {
2499  {
2500#line 34
2501  __cil_tmp3 = (unsigned long )ptr;
2502#line 34
2503  __cil_tmp4 = __cil_tmp3 > 0xfffffffffffff000UL;
2504#line 34
2505  __cil_tmp5 = (long )__cil_tmp4;
2506#line 34
2507  tmp = __builtin_expect(__cil_tmp5, 0L);
2508  }
2509#line 34
2510  return (tmp);
2511}
2512}
2513#line 161 "include/linux/slab.h"
2514extern void kfree(void const   * ) ;
2515#line 220 "include/linux/slub_def.h"
2516extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
2517#line 223
2518void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2519#line 225
2520extern void *__kmalloc(size_t  , gfp_t  ) ;
2521#line 268 "include/linux/slub_def.h"
2522__inline static void *ldv_kmalloc_12(size_t size , gfp_t flags ) 
2523{ void *tmp___2 ;
2524
2525  {
2526  {
2527#line 283
2528  tmp___2 = __kmalloc(size, flags);
2529  }
2530#line 283
2531  return (tmp___2);
2532}
2533}
2534#line 268
2535__inline static void *kmalloc(size_t size , gfp_t flags ) ;
2536#line 353 "include/linux/slab.h"
2537__inline static void *kzalloc(size_t size , gfp_t flags ) ;
2538#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2539extern void *__VERIFIER_nondet_pointer(void) ;
2540#line 11
2541void ldv_check_alloc_flags(gfp_t flags ) ;
2542#line 12
2543void ldv_check_alloc_nonatomic(void) ;
2544#line 14
2545struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2546#line 246 "include/linux/mtd/mtd.h"
2547extern int mtd_erase(struct mtd_info * , struct erase_info * ) ;
2548#line 252
2549extern int mtd_read(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
2550#line 254
2551extern int mtd_write(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
2552#line 303
2553extern int mtd_block_isbad(struct mtd_info * , loff_t  ) ;
2554#line 370
2555extern struct mtd_info *get_mtd_device(struct mtd_info * , int  ) ;
2556#line 374
2557extern void put_mtd_device(struct mtd_info * ) ;
2558#line 390 "include/linux/mtd/mtd.h"
2559__inline static int mtd_is_bitflip(int err ) 
2560{ 
2561
2562  {
2563#line 391
2564  return (err == -117);
2565}
2566}
2567#line 2626 "include/linux/sched.h"
2568extern int _cond_resched(void) ;
2569#line 48 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2570static int dev  =    -22;
2571#line 52 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2572static struct mtd_info *mtd  ;
2573#line 53 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2574static unsigned char *twopages  ;
2575#line 54 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2576static unsigned char *writebuf  ;
2577#line 55 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2578static unsigned char *boundary  ;
2579#line 56 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2580static unsigned char *bbt  ;
2581#line 58 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2582static int pgsize  ;
2583#line 59 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2584static int bufsize  ;
2585#line 60 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2586static int ebcnt  ;
2587#line 61 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2588static int pgcnt  ;
2589#line 62 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2590static int errcnt  ;
2591#line 63 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2592static unsigned long next  =    1UL;
2593#line 65 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2594__inline static unsigned int simple_rand(void) 
2595{ unsigned long __cil_tmp1 ;
2596  unsigned long __cil_tmp2 ;
2597  unsigned int __cil_tmp3 ;
2598
2599  {
2600#line 67
2601  __cil_tmp1 = next * 1103515245UL;
2602#line 67
2603  next = __cil_tmp1 + 12345UL;
2604  {
2605#line 68
2606  __cil_tmp2 = next / 65536UL;
2607#line 68
2608  __cil_tmp3 = (unsigned int )__cil_tmp2;
2609#line 68
2610  return (__cil_tmp3 & 32767U);
2611  }
2612}
2613}
2614#line 71 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2615__inline static void simple_srand(unsigned long seed ) 
2616{ 
2617
2618  {
2619#line 73
2620  next = seed;
2621#line 74
2622  return;
2623}
2624}
2625#line 76 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2626static void set_random_data(unsigned char *buf , size_t len ) 
2627{ size_t i ;
2628  unsigned int tmp ;
2629  unsigned char *__cil_tmp5 ;
2630
2631  {
2632#line 80
2633  i = 0UL;
2634#line 80
2635  goto ldv_18668;
2636  ldv_18667: 
2637  {
2638#line 81
2639  tmp = simple_rand();
2640#line 81
2641  __cil_tmp5 = buf + i;
2642#line 81
2643  *__cil_tmp5 = (unsigned char )tmp;
2644#line 80
2645  i = i + 1UL;
2646  }
2647  ldv_18668: ;
2648#line 80
2649  if (i < len) {
2650#line 81
2651    goto ldv_18667;
2652  } else {
2653#line 83
2654    goto ldv_18669;
2655  }
2656  ldv_18669: ;
2657#line 85
2658  return;
2659}
2660}
2661#line 84 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2662static int erase_eraseblock(int ebnum ) 
2663{ int err ;
2664  struct erase_info ei ;
2665  loff_t addr ;
2666  uint32_t __cil_tmp5 ;
2667  unsigned long __cil_tmp6 ;
2668  unsigned long __cil_tmp7 ;
2669  uint32_t __cil_tmp8 ;
2670  uint32_t __cil_tmp9 ;
2671  void *__cil_tmp10 ;
2672  struct erase_info *__cil_tmp11 ;
2673  unsigned long __cil_tmp12 ;
2674  unsigned long __cil_tmp13 ;
2675  unsigned long __cil_tmp14 ;
2676  unsigned long __cil_tmp15 ;
2677  uint32_t __cil_tmp16 ;
2678  unsigned long __cil_tmp17 ;
2679  u_char __cil_tmp18 ;
2680  unsigned int __cil_tmp19 ;
2681
2682  {
2683  {
2684#line 88
2685  __cil_tmp5 = (uint32_t )ebnum;
2686#line 88
2687  __cil_tmp6 = (unsigned long )mtd;
2688#line 88
2689  __cil_tmp7 = __cil_tmp6 + 16;
2690#line 88
2691  __cil_tmp8 = *((uint32_t *)__cil_tmp7);
2692#line 88
2693  __cil_tmp9 = __cil_tmp8 * __cil_tmp5;
2694#line 88
2695  addr = (loff_t )__cil_tmp9;
2696#line 90
2697  __cil_tmp10 = (void *)(& ei);
2698#line 90
2699  memset(__cil_tmp10, 0, 88UL);
2700#line 91
2701  __cil_tmp11 = & ei;
2702#line 91
2703  *((struct mtd_info **)__cil_tmp11) = mtd;
2704#line 92
2705  __cil_tmp12 = (unsigned long )(& ei) + 8;
2706#line 92
2707  *((uint64_t *)__cil_tmp12) = (uint64_t )addr;
2708#line 93
2709  __cil_tmp13 = (unsigned long )(& ei) + 16;
2710#line 93
2711  __cil_tmp14 = (unsigned long )mtd;
2712#line 93
2713  __cil_tmp15 = __cil_tmp14 + 16;
2714#line 93
2715  __cil_tmp16 = *((uint32_t *)__cil_tmp15);
2716#line 93
2717  *((uint64_t *)__cil_tmp13) = (uint64_t )__cil_tmp16;
2718#line 95
2719  err = mtd_erase(mtd, & ei);
2720  }
2721#line 96
2722  if (err != 0) {
2723    {
2724#line 97
2725    printk("<6>mtd_pagetest: error %d while erasing EB %d\n", err, ebnum);
2726    }
2727#line 98
2728    return (err);
2729  } else {
2730
2731  }
2732  {
2733#line 101
2734  __cil_tmp17 = (unsigned long )(& ei) + 72;
2735#line 101
2736  __cil_tmp18 = *((u_char *)__cil_tmp17);
2737#line 101
2738  __cil_tmp19 = (unsigned int )__cil_tmp18;
2739#line 101
2740  if (__cil_tmp19 == 16U) {
2741    {
2742#line 102
2743    printk("<6>mtd_pagetest: some erase error occurred at EB %d\n", ebnum);
2744    }
2745#line 104
2746    return (-5);
2747  } else {
2748
2749  }
2750  }
2751#line 107
2752  return (0);
2753}
2754}
2755#line 110 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2756static int write_eraseblock(int ebnum ) 
2757{ int err ;
2758  size_t written ;
2759  loff_t addr ;
2760  uint32_t __cil_tmp5 ;
2761  unsigned long __cil_tmp6 ;
2762  unsigned long __cil_tmp7 ;
2763  uint32_t __cil_tmp8 ;
2764  uint32_t __cil_tmp9 ;
2765  unsigned long __cil_tmp10 ;
2766  unsigned long __cil_tmp11 ;
2767  uint32_t __cil_tmp12 ;
2768  size_t __cil_tmp13 ;
2769  unsigned long __cil_tmp14 ;
2770  unsigned long __cil_tmp15 ;
2771  uint32_t __cil_tmp16 ;
2772  size_t __cil_tmp17 ;
2773  u_char const   *__cil_tmp18 ;
2774  size_t *__cil_tmp19 ;
2775  size_t __cil_tmp20 ;
2776  unsigned long __cil_tmp21 ;
2777  unsigned long __cil_tmp22 ;
2778  uint32_t __cil_tmp23 ;
2779  size_t __cil_tmp24 ;
2780
2781  {
2782  {
2783#line 112
2784  err = 0;
2785#line 114
2786  __cil_tmp5 = (uint32_t )ebnum;
2787#line 114
2788  __cil_tmp6 = (unsigned long )mtd;
2789#line 114
2790  __cil_tmp7 = __cil_tmp6 + 16;
2791#line 114
2792  __cil_tmp8 = *((uint32_t *)__cil_tmp7);
2793#line 114
2794  __cil_tmp9 = __cil_tmp8 * __cil_tmp5;
2795#line 114
2796  addr = (loff_t )__cil_tmp9;
2797#line 116
2798  __cil_tmp10 = (unsigned long )mtd;
2799#line 116
2800  __cil_tmp11 = __cil_tmp10 + 16;
2801#line 116
2802  __cil_tmp12 = *((uint32_t *)__cil_tmp11);
2803#line 116
2804  __cil_tmp13 = (size_t )__cil_tmp12;
2805#line 116
2806  set_random_data(writebuf, __cil_tmp13);
2807#line 117
2808  __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p",
2809                117, 0);
2810#line 117
2811  _cond_resched();
2812#line 118
2813  __cil_tmp14 = (unsigned long )mtd;
2814#line 118
2815  __cil_tmp15 = __cil_tmp14 + 16;
2816#line 118
2817  __cil_tmp16 = *((uint32_t *)__cil_tmp15);
2818#line 118
2819  __cil_tmp17 = (size_t )__cil_tmp16;
2820#line 118
2821  __cil_tmp18 = (u_char const   *)writebuf;
2822#line 118
2823  err = mtd_write(mtd, addr, __cil_tmp17, & written, __cil_tmp18);
2824  }
2825#line 119
2826  if (err != 0) {
2827    {
2828#line 120
2829    printk("<6>mtd_pagetest: error: write failed at %#llx\n", addr);
2830    }
2831  } else {
2832    {
2833#line 119
2834    __cil_tmp19 = & written;
2835#line 119
2836    __cil_tmp20 = *__cil_tmp19;
2837#line 119
2838    __cil_tmp21 = (unsigned long )mtd;
2839#line 119
2840    __cil_tmp22 = __cil_tmp21 + 16;
2841#line 119
2842    __cil_tmp23 = *((uint32_t *)__cil_tmp22);
2843#line 119
2844    __cil_tmp24 = (size_t )__cil_tmp23;
2845#line 119
2846    if (__cil_tmp24 != __cil_tmp20) {
2847      {
2848#line 120
2849      printk("<6>mtd_pagetest: error: write failed at %#llx\n", addr);
2850      }
2851    } else {
2852
2853    }
2854    }
2855  }
2856#line 123
2857  return (err);
2858}
2859}
2860#line 126 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
2861static int verify_eraseblock(int ebnum ) 
2862{ uint32_t j ;
2863  size_t read ;
2864  int err ;
2865  int i ;
2866  loff_t addr0 ;
2867  loff_t addrn ;
2868  loff_t addr ;
2869  int tmp ;
2870  int tmp___0 ;
2871  int tmp___1 ;
2872  int tmp___2 ;
2873  unsigned long oldnext ;
2874  int tmp___3 ;
2875  int tmp___4 ;
2876  int tmp___5 ;
2877  size_t __len ;
2878  void *__ret ;
2879  int tmp___6 ;
2880  uint32_t __cil_tmp20 ;
2881  unsigned long __cil_tmp21 ;
2882  unsigned long __cil_tmp22 ;
2883  uint32_t __cil_tmp23 ;
2884  uint32_t __cil_tmp24 ;
2885  unsigned long __cil_tmp25 ;
2886  unsigned long __cil_tmp26 ;
2887  uint32_t __cil_tmp27 ;
2888  loff_t __cil_tmp28 ;
2889  unsigned long __cil_tmp29 ;
2890  unsigned char *__cil_tmp30 ;
2891  unsigned char __cil_tmp31 ;
2892  unsigned int __cil_tmp32 ;
2893  unsigned long __cil_tmp33 ;
2894  unsigned long __cil_tmp34 ;
2895  uint64_t __cil_tmp35 ;
2896  unsigned long __cil_tmp36 ;
2897  unsigned long __cil_tmp37 ;
2898  uint32_t __cil_tmp38 ;
2899  loff_t __cil_tmp39 ;
2900  int __cil_tmp40 ;
2901  unsigned long __cil_tmp41 ;
2902  unsigned long __cil_tmp42 ;
2903  unsigned char *__cil_tmp43 ;
2904  unsigned char __cil_tmp44 ;
2905  unsigned int __cil_tmp45 ;
2906  unsigned long __cil_tmp46 ;
2907  unsigned long __cil_tmp47 ;
2908  uint32_t __cil_tmp48 ;
2909  size_t __cil_tmp49 ;
2910  size_t __cil_tmp50 ;
2911  size_t *__cil_tmp51 ;
2912  size_t __cil_tmp52 ;
2913  size_t __cil_tmp53 ;
2914  loff_t __cil_tmp54 ;
2915  loff_t __cil_tmp55 ;
2916  size_t __cil_tmp56 ;
2917  loff_t __cil_tmp57 ;
2918  loff_t __cil_tmp58 ;
2919  size_t *__cil_tmp59 ;
2920  size_t __cil_tmp60 ;
2921  size_t __cil_tmp61 ;
2922  loff_t __cil_tmp62 ;
2923  loff_t __cil_tmp63 ;
2924  void *__cil_tmp64 ;
2925  size_t __cil_tmp65 ;
2926  size_t __cil_tmp66 ;
2927  size_t *__cil_tmp67 ;
2928  size_t __cil_tmp68 ;
2929  size_t __cil_tmp69 ;
2930  void const   *__cil_tmp70 ;
2931  uint32_t __cil_tmp71 ;
2932  uint32_t __cil_tmp72 ;
2933  unsigned long __cil_tmp73 ;
2934  void const   *__cil_tmp74 ;
2935  void const   *__cil_tmp75 ;
2936  size_t __cil_tmp76 ;
2937  loff_t __cil_tmp77 ;
2938  int __cil_tmp78 ;
2939  uint32_t __cil_tmp79 ;
2940  loff_t __cil_tmp80 ;
2941  loff_t __cil_tmp81 ;
2942  loff_t __cil_tmp82 ;
2943  loff_t __cil_tmp83 ;
2944  unsigned long __cil_tmp84 ;
2945  unsigned long __cil_tmp85 ;
2946  unsigned char *__cil_tmp86 ;
2947  unsigned char __cil_tmp87 ;
2948  unsigned int __cil_tmp88 ;
2949  size_t __cil_tmp89 ;
2950  size_t *__cil_tmp90 ;
2951  size_t __cil_tmp91 ;
2952  size_t __cil_tmp92 ;
2953  loff_t __cil_tmp93 ;
2954  loff_t __cil_tmp94 ;
2955  size_t __cil_tmp95 ;
2956  loff_t __cil_tmp96 ;
2957  loff_t __cil_tmp97 ;
2958  size_t *__cil_tmp98 ;
2959  size_t __cil_tmp99 ;
2960  size_t __cil_tmp100 ;
2961  loff_t __cil_tmp101 ;
2962  loff_t __cil_tmp102 ;
2963  void *__cil_tmp103 ;
2964  size_t __cil_tmp104 ;
2965  size_t __cil_tmp105 ;
2966  size_t *__cil_tmp106 ;
2967  size_t __cil_tmp107 ;
2968  size_t __cil_tmp108 ;
2969  void *__cil_tmp109 ;
2970  unsigned long __cil_tmp110 ;
2971  unsigned long __cil_tmp111 ;
2972  unsigned long __cil_tmp112 ;
2973  uint32_t __cil_tmp113 ;
2974  unsigned long __cil_tmp114 ;
2975  unsigned long __cil_tmp115 ;
2976  unsigned char *__cil_tmp116 ;
2977  void const   *__cil_tmp117 ;
2978  unsigned long __cil_tmp118 ;
2979  unsigned char *__cil_tmp119 ;
2980  size_t __cil_tmp120 ;
2981  void const   *__cil_tmp121 ;
2982  void const   *__cil_tmp122 ;
2983  size_t __cil_tmp123 ;
2984
2985  {
2986#line 130
2987  err = 0;
2988#line 132
2989  __cil_tmp20 = (uint32_t )ebnum;
2990#line 132
2991  __cil_tmp21 = (unsigned long )mtd;
2992#line 132
2993  __cil_tmp22 = __cil_tmp21 + 16;
2994#line 132
2995  __cil_tmp23 = *((uint32_t *)__cil_tmp22);
2996#line 132
2997  __cil_tmp24 = __cil_tmp23 * __cil_tmp20;
2998#line 132
2999  addr = (loff_t )__cil_tmp24;
3000#line 134
3001  addr0 = 0LL;
3002#line 135
3003  i = 0;
3004#line 135
3005  goto ldv_18694;
3006  ldv_18693: 
3007#line 136
3008  __cil_tmp25 = (unsigned long )mtd;
3009#line 136
3010  __cil_tmp26 = __cil_tmp25 + 16;
3011#line 136
3012  __cil_tmp27 = *((uint32_t *)__cil_tmp26);
3013#line 136
3014  __cil_tmp28 = (loff_t )__cil_tmp27;
3015#line 136
3016  addr0 = __cil_tmp28 + addr0;
3017#line 135
3018  i = i + 1;
3019  ldv_18694: ;
3020#line 135
3021  if (i < ebcnt) {
3022    {
3023#line 135
3024    __cil_tmp29 = (unsigned long )i;
3025#line 135
3026    __cil_tmp30 = bbt + __cil_tmp29;
3027#line 135
3028    __cil_tmp31 = *__cil_tmp30;
3029#line 135
3030    __cil_tmp32 = (unsigned int )__cil_tmp31;
3031#line 135
3032    if (__cil_tmp32 != 0U) {
3033#line 136
3034      goto ldv_18693;
3035    } else {
3036#line 138
3037      goto ldv_18695;
3038    }
3039    }
3040  } else {
3041#line 138
3042    goto ldv_18695;
3043  }
3044  ldv_18695: 
3045#line 138
3046  __cil_tmp33 = (unsigned long )mtd;
3047#line 138
3048  __cil_tmp34 = __cil_tmp33 + 8;
3049#line 138
3050  __cil_tmp35 = *((uint64_t *)__cil_tmp34);
3051#line 138
3052  addrn = (loff_t )__cil_tmp35;
3053#line 139
3054  i = 0;
3055#line 139
3056  goto ldv_18697;
3057  ldv_18696: 
3058#line 140
3059  __cil_tmp36 = (unsigned long )mtd;
3060#line 140
3061  __cil_tmp37 = __cil_tmp36 + 16;
3062#line 140
3063  __cil_tmp38 = *((uint32_t *)__cil_tmp37);
3064#line 140
3065  __cil_tmp39 = (loff_t )__cil_tmp38;
3066#line 140
3067  addrn = addrn - __cil_tmp39;
3068#line 139
3069  i = i + 1;
3070  ldv_18697: ;
3071#line 139
3072  if (i < ebcnt) {
3073    {
3074#line 139
3075    __cil_tmp40 = ebcnt - i;
3076#line 139
3077    __cil_tmp41 = (unsigned long )__cil_tmp40;
3078#line 139
3079    __cil_tmp42 = __cil_tmp41 + 0xffffffffffffffffUL;
3080#line 139
3081    __cil_tmp43 = bbt + __cil_tmp42;
3082#line 139
3083    __cil_tmp44 = *__cil_tmp43;
3084#line 139
3085    __cil_tmp45 = (unsigned int )__cil_tmp44;
3086#line 139
3087    if (__cil_tmp45 != 0U) {
3088#line 140
3089      goto ldv_18696;
3090    } else {
3091#line 142
3092      goto ldv_18698;
3093    }
3094    }
3095  } else {
3096#line 142
3097    goto ldv_18698;
3098  }
3099  ldv_18698: 
3100  {
3101#line 142
3102  __cil_tmp46 = (unsigned long )mtd;
3103#line 142
3104  __cil_tmp47 = __cil_tmp46 + 16;
3105#line 142
3106  __cil_tmp48 = *((uint32_t *)__cil_tmp47);
3107#line 142
3108  __cil_tmp49 = (size_t )__cil_tmp48;
3109#line 142
3110  set_random_data(writebuf, __cil_tmp49);
3111#line 143
3112  j = 0U;
3113  }
3114#line 143
3115  goto ldv_18701;
3116  ldv_18700: 
3117  {
3118#line 145
3119  __cil_tmp50 = (size_t )bufsize;
3120#line 145
3121  err = mtd_read(mtd, addr0, __cil_tmp50, & read, twopages);
3122#line 146
3123  tmp = mtd_is_bitflip(err);
3124  }
3125#line 146
3126  if (tmp != 0) {
3127#line 147
3128    err = 0;
3129  } else {
3130
3131  }
3132#line 148
3133  if (err != 0) {
3134    {
3135#line 149
3136    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
3137    }
3138#line 151
3139    return (err);
3140  } else {
3141    {
3142#line 148
3143    __cil_tmp51 = & read;
3144#line 148
3145    __cil_tmp52 = *__cil_tmp51;
3146#line 148
3147    __cil_tmp53 = (size_t )bufsize;
3148#line 148
3149    if (__cil_tmp53 != __cil_tmp52) {
3150      {
3151#line 149
3152      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
3153      }
3154#line 151
3155      return (err);
3156    } else {
3157
3158    }
3159    }
3160  }
3161  {
3162#line 153
3163  __cil_tmp54 = (loff_t )bufsize;
3164#line 153
3165  __cil_tmp55 = addrn - __cil_tmp54;
3166#line 153
3167  __cil_tmp56 = (size_t )bufsize;
3168#line 153
3169  err = mtd_read(mtd, __cil_tmp55, __cil_tmp56, & read, twopages);
3170#line 154
3171  tmp___0 = mtd_is_bitflip(err);
3172  }
3173#line 154
3174  if (tmp___0 != 0) {
3175#line 155
3176    err = 0;
3177  } else {
3178
3179  }
3180#line 156
3181  if (err != 0) {
3182    {
3183#line 157
3184    __cil_tmp57 = (loff_t )bufsize;
3185#line 157
3186    __cil_tmp58 = addrn - __cil_tmp57;
3187#line 157
3188    printk("<6>mtd_pagetest: error: read failed at %#llx\n", __cil_tmp58);
3189    }
3190#line 159
3191    return (err);
3192  } else {
3193    {
3194#line 156
3195    __cil_tmp59 = & read;
3196#line 156
3197    __cil_tmp60 = *__cil_tmp59;
3198#line 156
3199    __cil_tmp61 = (size_t )bufsize;
3200#line 156
3201    if (__cil_tmp61 != __cil_tmp60) {
3202      {
3203#line 157
3204      __cil_tmp62 = (loff_t )bufsize;
3205#line 157
3206      __cil_tmp63 = addrn - __cil_tmp62;
3207#line 157
3208      printk("<6>mtd_pagetest: error: read failed at %#llx\n", __cil_tmp63);
3209      }
3210#line 159
3211      return (err);
3212    } else {
3213
3214    }
3215    }
3216  }
3217  {
3218#line 161
3219  __cil_tmp64 = (void *)twopages;
3220#line 161
3221  __cil_tmp65 = (size_t )bufsize;
3222#line 161
3223  memset(__cil_tmp64, 0, __cil_tmp65);
3224#line 162
3225  __cil_tmp66 = (size_t )bufsize;
3226#line 162
3227  err = mtd_read(mtd, addr, __cil_tmp66, & read, twopages);
3228#line 163
3229  tmp___1 = mtd_is_bitflip(err);
3230  }
3231#line 163
3232  if (tmp___1 != 0) {
3233#line 164
3234    err = 0;
3235  } else {
3236
3237  }
3238#line 165
3239  if (err != 0) {
3240    {
3241#line 166
3242    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3243    }
3244#line 168
3245    goto ldv_18699;
3246  } else {
3247    {
3248#line 165
3249    __cil_tmp67 = & read;
3250#line 165
3251    __cil_tmp68 = *__cil_tmp67;
3252#line 165
3253    __cil_tmp69 = (size_t )bufsize;
3254#line 165
3255    if (__cil_tmp69 != __cil_tmp68) {
3256      {
3257#line 166
3258      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3259      }
3260#line 168
3261      goto ldv_18699;
3262    } else {
3263
3264    }
3265    }
3266  }
3267  {
3268#line 170
3269  __cil_tmp70 = (void const   *)twopages;
3270#line 170
3271  __cil_tmp71 = (uint32_t )pgsize;
3272#line 170
3273  __cil_tmp72 = j * __cil_tmp71;
3274#line 170
3275  __cil_tmp73 = (unsigned long )__cil_tmp72;
3276#line 170
3277  __cil_tmp74 = (void const   *)writebuf;
3278#line 170
3279  __cil_tmp75 = __cil_tmp74 + __cil_tmp73;
3280#line 170
3281  __cil_tmp76 = (size_t )bufsize;
3282#line 170
3283  tmp___2 = memcmp(__cil_tmp70, __cil_tmp75, __cil_tmp76);
3284  }
3285#line 170
3286  if (tmp___2 != 0) {
3287    {
3288#line 171
3289    printk("<6>mtd_pagetest: error: verify failed at %#llx\n", addr);
3290#line 173
3291    errcnt = errcnt + 1;
3292    }
3293  } else {
3294
3295  }
3296#line 143
3297  j = j + 1U;
3298#line 143
3299  __cil_tmp77 = (loff_t )pgsize;
3300#line 143
3301  addr = __cil_tmp77 + addr;
3302  ldv_18701: ;
3303  {
3304#line 143
3305  __cil_tmp78 = pgcnt + -1;
3306#line 143
3307  __cil_tmp79 = (uint32_t )__cil_tmp78;
3308#line 143
3309  if (__cil_tmp79 > j) {
3310#line 144
3311    goto ldv_18700;
3312  } else {
3313#line 146
3314    goto ldv_18699;
3315  }
3316  }
3317  ldv_18699: ;
3318  {
3319#line 177
3320  __cil_tmp80 = (loff_t )pgsize;
3321#line 177
3322  __cil_tmp81 = (loff_t )pgsize;
3323#line 177
3324  __cil_tmp82 = addrn - __cil_tmp81;
3325#line 177
3326  __cil_tmp83 = __cil_tmp82 - __cil_tmp80;
3327#line 177
3328  if (__cil_tmp83 >= addr) {
3329    {
3330#line 177
3331    __cil_tmp84 = (unsigned long )ebnum;
3332#line 177
3333    __cil_tmp85 = __cil_tmp84 + 1UL;
3334#line 177
3335    __cil_tmp86 = bbt + __cil_tmp85;
3336#line 177
3337    __cil_tmp87 = *__cil_tmp86;
3338#line 177
3339    __cil_tmp88 = (unsigned int )__cil_tmp87;
3340#line 177
3341    if (__cil_tmp88 == 0U) {
3342      {
3343#line 178
3344      oldnext = next;
3345#line 180
3346      __cil_tmp89 = (size_t )bufsize;
3347#line 180
3348      err = mtd_read(mtd, addr0, __cil_tmp89, & read, twopages);
3349#line 181
3350      tmp___3 = mtd_is_bitflip(err);
3351      }
3352#line 181
3353      if (tmp___3 != 0) {
3354#line 182
3355        err = 0;
3356      } else {
3357
3358      }
3359#line 183
3360      if (err != 0) {
3361        {
3362#line 184
3363        printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
3364        }
3365#line 186
3366        return (err);
3367      } else {
3368        {
3369#line 183
3370        __cil_tmp90 = & read;
3371#line 183
3372        __cil_tmp91 = *__cil_tmp90;
3373#line 183
3374        __cil_tmp92 = (size_t )bufsize;
3375#line 183
3376        if (__cil_tmp92 != __cil_tmp91) {
3377          {
3378#line 184
3379          printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
3380          }
3381#line 186
3382          return (err);
3383        } else {
3384
3385        }
3386        }
3387      }
3388      {
3389#line 188
3390      __cil_tmp93 = (loff_t )bufsize;
3391#line 188
3392      __cil_tmp94 = addrn - __cil_tmp93;
3393#line 188
3394      __cil_tmp95 = (size_t )bufsize;
3395#line 188
3396      err = mtd_read(mtd, __cil_tmp94, __cil_tmp95, & read, twopages);
3397#line 189
3398      tmp___4 = mtd_is_bitflip(err);
3399      }
3400#line 189
3401      if (tmp___4 != 0) {
3402#line 190
3403        err = 0;
3404      } else {
3405
3406      }
3407#line 191
3408      if (err != 0) {
3409        {
3410#line 192
3411        __cil_tmp96 = (loff_t )bufsize;
3412#line 192
3413        __cil_tmp97 = addrn - __cil_tmp96;
3414#line 192
3415        printk("<6>mtd_pagetest: error: read failed at %#llx\n", __cil_tmp97);
3416        }
3417#line 194
3418        return (err);
3419      } else {
3420        {
3421#line 191
3422        __cil_tmp98 = & read;
3423#line 191
3424        __cil_tmp99 = *__cil_tmp98;
3425#line 191
3426        __cil_tmp100 = (size_t )bufsize;
3427#line 191
3428        if (__cil_tmp100 != __cil_tmp99) {
3429          {
3430#line 192
3431          __cil_tmp101 = (loff_t )bufsize;
3432#line 192
3433          __cil_tmp102 = addrn - __cil_tmp101;
3434#line 192
3435          printk("<6>mtd_pagetest: error: read failed at %#llx\n", __cil_tmp102);
3436          }
3437#line 194
3438          return (err);
3439        } else {
3440
3441        }
3442        }
3443      }
3444      {
3445#line 196
3446      __cil_tmp103 = (void *)twopages;
3447#line 196
3448      __cil_tmp104 = (size_t )bufsize;
3449#line 196
3450      memset(__cil_tmp103, 0, __cil_tmp104);
3451#line 197
3452      __cil_tmp105 = (size_t )bufsize;
3453#line 197
3454      err = mtd_read(mtd, addr, __cil_tmp105, & read, twopages);
3455#line 198
3456      tmp___5 = mtd_is_bitflip(err);
3457      }
3458#line 198
3459      if (tmp___5 != 0) {
3460#line 199
3461        err = 0;
3462      } else {
3463
3464      }
3465#line 200
3466      if (err != 0) {
3467        {
3468#line 201
3469        printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3470        }
3471#line 203
3472        return (err);
3473      } else {
3474        {
3475#line 200
3476        __cil_tmp106 = & read;
3477#line 200
3478        __cil_tmp107 = *__cil_tmp106;
3479#line 200
3480        __cil_tmp108 = (size_t )bufsize;
3481#line 200
3482        if (__cil_tmp108 != __cil_tmp107) {
3483          {
3484#line 201
3485          printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3486          }
3487#line 203
3488          return (err);
3489        } else {
3490
3491        }
3492        }
3493      }
3494      {
3495#line 205
3496      __len = (size_t )pgsize;
3497#line 205
3498      __cil_tmp109 = (void *)boundary;
3499#line 205
3500      __cil_tmp110 = (unsigned long )pgsize;
3501#line 205
3502      __cil_tmp111 = (unsigned long )mtd;
3503#line 205
3504      __cil_tmp112 = __cil_tmp111 + 16;
3505#line 205
3506      __cil_tmp113 = *((uint32_t *)__cil_tmp112);
3507#line 205
3508      __cil_tmp114 = (unsigned long )__cil_tmp113;
3509#line 205
3510      __cil_tmp115 = __cil_tmp114 - __cil_tmp110;
3511#line 205
3512      __cil_tmp116 = writebuf + __cil_tmp115;
3513#line 205
3514      __cil_tmp117 = (void const   *)__cil_tmp116;
3515#line 205
3516      __ret = __builtin_memcpy(__cil_tmp109, __cil_tmp117, __len);
3517#line 206
3518      __cil_tmp118 = (unsigned long )pgsize;
3519#line 206
3520      __cil_tmp119 = boundary + __cil_tmp118;
3521#line 206
3522      __cil_tmp120 = (size_t )pgsize;
3523#line 206
3524      set_random_data(__cil_tmp119, __cil_tmp120);
3525#line 207
3526      __cil_tmp121 = (void const   *)twopages;
3527#line 207
3528      __cil_tmp122 = (void const   *)boundary;
3529#line 207
3530      __cil_tmp123 = (size_t )bufsize;
3531#line 207
3532      tmp___6 = memcmp(__cil_tmp121, __cil_tmp122, __cil_tmp123);
3533      }
3534#line 207
3535      if (tmp___6 != 0) {
3536        {
3537#line 208
3538        printk("<6>mtd_pagetest: error: verify failed at %#llx\n", addr);
3539#line 210
3540        errcnt = errcnt + 1;
3541        }
3542      } else {
3543
3544      }
3545#line 212
3546      next = oldnext;
3547    } else {
3548
3549    }
3550    }
3551  } else {
3552
3553  }
3554  }
3555#line 214
3556  return (err);
3557}
3558}
3559#line 217 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
3560static int crosstest(void) 
3561{ size_t read ;
3562  int err ;
3563  int i ;
3564  loff_t addr ;
3565  loff_t addr0 ;
3566  loff_t addrn ;
3567  unsigned char *pp1 ;
3568  unsigned char *pp2 ;
3569  unsigned char *pp3 ;
3570  unsigned char *pp4 ;
3571  void *tmp ;
3572  int tmp___0 ;
3573  int tmp___1 ;
3574  int tmp___2 ;
3575  int tmp___3 ;
3576  int tmp___4 ;
3577  int tmp___5 ;
3578  int __cil_tmp18 ;
3579  size_t __cil_tmp19 ;
3580  unsigned char *__cil_tmp20 ;
3581  unsigned long __cil_tmp21 ;
3582  unsigned long __cil_tmp22 ;
3583  unsigned long __cil_tmp23 ;
3584  unsigned long __cil_tmp24 ;
3585  unsigned long __cil_tmp25 ;
3586  void *__cil_tmp26 ;
3587  int __cil_tmp27 ;
3588  size_t __cil_tmp28 ;
3589  unsigned long __cil_tmp29 ;
3590  unsigned long __cil_tmp30 ;
3591  uint32_t __cil_tmp31 ;
3592  loff_t __cil_tmp32 ;
3593  unsigned long __cil_tmp33 ;
3594  unsigned char *__cil_tmp34 ;
3595  unsigned char __cil_tmp35 ;
3596  unsigned int __cil_tmp36 ;
3597  unsigned long __cil_tmp37 ;
3598  unsigned long __cil_tmp38 ;
3599  uint64_t __cil_tmp39 ;
3600  unsigned long __cil_tmp40 ;
3601  unsigned long __cil_tmp41 ;
3602  uint32_t __cil_tmp42 ;
3603  loff_t __cil_tmp43 ;
3604  int __cil_tmp44 ;
3605  unsigned long __cil_tmp45 ;
3606  unsigned long __cil_tmp46 ;
3607  unsigned char *__cil_tmp47 ;
3608  unsigned char __cil_tmp48 ;
3609  unsigned int __cil_tmp49 ;
3610  loff_t __cil_tmp50 ;
3611  loff_t __cil_tmp51 ;
3612  loff_t __cil_tmp52 ;
3613  size_t __cil_tmp53 ;
3614  void const   *__cil_tmp54 ;
3615  size_t *__cil_tmp55 ;
3616  size_t __cil_tmp56 ;
3617  size_t __cil_tmp57 ;
3618  void const   *__cil_tmp58 ;
3619  loff_t __cil_tmp59 ;
3620  loff_t __cil_tmp60 ;
3621  loff_t __cil_tmp61 ;
3622  loff_t __cil_tmp62 ;
3623  loff_t __cil_tmp63 ;
3624  size_t __cil_tmp64 ;
3625  void const   *__cil_tmp65 ;
3626  size_t *__cil_tmp66 ;
3627  size_t __cil_tmp67 ;
3628  size_t __cil_tmp68 ;
3629  void const   *__cil_tmp69 ;
3630  size_t __cil_tmp70 ;
3631  void const   *__cil_tmp71 ;
3632  size_t *__cil_tmp72 ;
3633  size_t __cil_tmp73 ;
3634  size_t __cil_tmp74 ;
3635  void const   *__cil_tmp75 ;
3636  loff_t __cil_tmp76 ;
3637  size_t __cil_tmp77 ;
3638  void const   *__cil_tmp78 ;
3639  size_t *__cil_tmp79 ;
3640  size_t __cil_tmp80 ;
3641  size_t __cil_tmp81 ;
3642  void const   *__cil_tmp82 ;
3643  size_t __cil_tmp83 ;
3644  void const   *__cil_tmp84 ;
3645  size_t *__cil_tmp85 ;
3646  size_t __cil_tmp86 ;
3647  size_t __cil_tmp87 ;
3648  void const   *__cil_tmp88 ;
3649  void const   *__cil_tmp89 ;
3650  void const   *__cil_tmp90 ;
3651  size_t __cil_tmp91 ;
3652  void const   *__cil_tmp92 ;
3653
3654  {
3655  {
3656#line 220
3657  err = 0;
3658#line 224
3659  printk("<6>mtd_pagetest: crosstest\n");
3660#line 225
3661  __cil_tmp18 = pgsize * 4;
3662#line 225
3663  __cil_tmp19 = (size_t )__cil_tmp18;
3664#line 225
3665  tmp = kmalloc(__cil_tmp19, 208U);
3666#line 225
3667  pp1 = (unsigned char *)tmp;
3668  }
3669  {
3670#line 226
3671  __cil_tmp20 = (unsigned char *)0;
3672#line 226
3673  __cil_tmp21 = (unsigned long )__cil_tmp20;
3674#line 226
3675  __cil_tmp22 = (unsigned long )pp1;
3676#line 226
3677  if (__cil_tmp22 == __cil_tmp21) {
3678    {
3679#line 227
3680    printk("<6>mtd_pagetest: error: cannot allocate memory\n");
3681    }
3682#line 228
3683    return (-12);
3684  } else {
3685
3686  }
3687  }
3688  {
3689#line 230
3690  __cil_tmp23 = (unsigned long )pgsize;
3691#line 230
3692  pp2 = pp1 + __cil_tmp23;
3693#line 231
3694  __cil_tmp24 = (unsigned long )pgsize;
3695#line 231
3696  pp3 = pp2 + __cil_tmp24;
3697#line 232
3698  __cil_tmp25 = (unsigned long )pgsize;
3699#line 232
3700  pp4 = pp3 + __cil_tmp25;
3701#line 233
3702  __cil_tmp26 = (void *)pp1;
3703#line 233
3704  __cil_tmp27 = pgsize * 4;
3705#line 233
3706  __cil_tmp28 = (size_t )__cil_tmp27;
3707#line 233
3708  memset(__cil_tmp26, 0, __cil_tmp28);
3709#line 235
3710  addr0 = 0LL;
3711#line 236
3712  i = 0;
3713  }
3714#line 236
3715  goto ldv_18720;
3716  ldv_18719: 
3717#line 237
3718  __cil_tmp29 = (unsigned long )mtd;
3719#line 237
3720  __cil_tmp30 = __cil_tmp29 + 16;
3721#line 237
3722  __cil_tmp31 = *((uint32_t *)__cil_tmp30);
3723#line 237
3724  __cil_tmp32 = (loff_t )__cil_tmp31;
3725#line 237
3726  addr0 = __cil_tmp32 + addr0;
3727#line 236
3728  i = i + 1;
3729  ldv_18720: ;
3730#line 236
3731  if (i < ebcnt) {
3732    {
3733#line 236
3734    __cil_tmp33 = (unsigned long )i;
3735#line 236
3736    __cil_tmp34 = bbt + __cil_tmp33;
3737#line 236
3738    __cil_tmp35 = *__cil_tmp34;
3739#line 236
3740    __cil_tmp36 = (unsigned int )__cil_tmp35;
3741#line 236
3742    if (__cil_tmp36 != 0U) {
3743#line 237
3744      goto ldv_18719;
3745    } else {
3746#line 239
3747      goto ldv_18721;
3748    }
3749    }
3750  } else {
3751#line 239
3752    goto ldv_18721;
3753  }
3754  ldv_18721: 
3755#line 239
3756  __cil_tmp37 = (unsigned long )mtd;
3757#line 239
3758  __cil_tmp38 = __cil_tmp37 + 8;
3759#line 239
3760  __cil_tmp39 = *((uint64_t *)__cil_tmp38);
3761#line 239
3762  addrn = (loff_t )__cil_tmp39;
3763#line 240
3764  i = 0;
3765#line 240
3766  goto ldv_18723;
3767  ldv_18722: 
3768#line 241
3769  __cil_tmp40 = (unsigned long )mtd;
3770#line 241
3771  __cil_tmp41 = __cil_tmp40 + 16;
3772#line 241
3773  __cil_tmp42 = *((uint32_t *)__cil_tmp41);
3774#line 241
3775  __cil_tmp43 = (loff_t )__cil_tmp42;
3776#line 241
3777  addrn = addrn - __cil_tmp43;
3778#line 240
3779  i = i + 1;
3780  ldv_18723: ;
3781#line 240
3782  if (i < ebcnt) {
3783    {
3784#line 240
3785    __cil_tmp44 = ebcnt - i;
3786#line 240
3787    __cil_tmp45 = (unsigned long )__cil_tmp44;
3788#line 240
3789    __cil_tmp46 = __cil_tmp45 + 0xffffffffffffffffUL;
3790#line 240
3791    __cil_tmp47 = bbt + __cil_tmp46;
3792#line 240
3793    __cil_tmp48 = *__cil_tmp47;
3794#line 240
3795    __cil_tmp49 = (unsigned int )__cil_tmp48;
3796#line 240
3797    if (__cil_tmp49 != 0U) {
3798#line 241
3799      goto ldv_18722;
3800    } else {
3801#line 243
3802      goto ldv_18724;
3803    }
3804    }
3805  } else {
3806#line 243
3807    goto ldv_18724;
3808  }
3809  ldv_18724: 
3810  {
3811#line 244
3812  __cil_tmp50 = (loff_t )pgsize;
3813#line 244
3814  __cil_tmp51 = (loff_t )pgsize;
3815#line 244
3816  __cil_tmp52 = addrn - __cil_tmp51;
3817#line 244
3818  addr = __cil_tmp52 - __cil_tmp50;
3819#line 245
3820  __cil_tmp53 = (size_t )pgsize;
3821#line 245
3822  err = mtd_read(mtd, addr, __cil_tmp53, & read, pp1);
3823#line 246
3824  tmp___0 = mtd_is_bitflip(err);
3825  }
3826#line 246
3827  if (tmp___0 != 0) {
3828#line 247
3829    err = 0;
3830  } else {
3831
3832  }
3833#line 248
3834  if (err != 0) {
3835    {
3836#line 249
3837    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3838#line 251
3839    __cil_tmp54 = (void const   *)pp1;
3840#line 251
3841    kfree(__cil_tmp54);
3842    }
3843#line 252
3844    return (err);
3845  } else {
3846    {
3847#line 248
3848    __cil_tmp55 = & read;
3849#line 248
3850    __cil_tmp56 = *__cil_tmp55;
3851#line 248
3852    __cil_tmp57 = (size_t )pgsize;
3853#line 248
3854    if (__cil_tmp57 != __cil_tmp56) {
3855      {
3856#line 249
3857      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3858#line 251
3859      __cil_tmp58 = (void const   *)pp1;
3860#line 251
3861      kfree(__cil_tmp58);
3862      }
3863#line 252
3864      return (err);
3865    } else {
3866
3867    }
3868    }
3869  }
3870  {
3871#line 256
3872  __cil_tmp59 = (loff_t )pgsize;
3873#line 256
3874  __cil_tmp60 = (loff_t )pgsize;
3875#line 256
3876  __cil_tmp61 = (loff_t )pgsize;
3877#line 256
3878  __cil_tmp62 = addrn - __cil_tmp61;
3879#line 256
3880  __cil_tmp63 = __cil_tmp62 - __cil_tmp60;
3881#line 256
3882  addr = __cil_tmp63 - __cil_tmp59;
3883#line 257
3884  __cil_tmp64 = (size_t )pgsize;
3885#line 257
3886  err = mtd_read(mtd, addr, __cil_tmp64, & read, pp1);
3887#line 258
3888  tmp___1 = mtd_is_bitflip(err);
3889  }
3890#line 258
3891  if (tmp___1 != 0) {
3892#line 259
3893    err = 0;
3894  } else {
3895
3896  }
3897#line 260
3898  if (err != 0) {
3899    {
3900#line 261
3901    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3902#line 263
3903    __cil_tmp65 = (void const   *)pp1;
3904#line 263
3905    kfree(__cil_tmp65);
3906    }
3907#line 264
3908    return (err);
3909  } else {
3910    {
3911#line 260
3912    __cil_tmp66 = & read;
3913#line 260
3914    __cil_tmp67 = *__cil_tmp66;
3915#line 260
3916    __cil_tmp68 = (size_t )pgsize;
3917#line 260
3918    if (__cil_tmp68 != __cil_tmp67) {
3919      {
3920#line 261
3921      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3922#line 263
3923      __cil_tmp69 = (void const   *)pp1;
3924#line 263
3925      kfree(__cil_tmp69);
3926      }
3927#line 264
3928      return (err);
3929    } else {
3930
3931    }
3932    }
3933  }
3934  {
3935#line 268
3936  addr = addr0;
3937#line 269
3938  printk("<6>mtd_pagetest: reading page at %#llx\n", addr);
3939#line 270
3940  __cil_tmp70 = (size_t )pgsize;
3941#line 270
3942  err = mtd_read(mtd, addr, __cil_tmp70, & read, pp2);
3943#line 271
3944  tmp___2 = mtd_is_bitflip(err);
3945  }
3946#line 271
3947  if (tmp___2 != 0) {
3948#line 272
3949    err = 0;
3950  } else {
3951
3952  }
3953#line 273
3954  if (err != 0) {
3955    {
3956#line 274
3957    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3958#line 276
3959    __cil_tmp71 = (void const   *)pp1;
3960#line 276
3961    kfree(__cil_tmp71);
3962    }
3963#line 277
3964    return (err);
3965  } else {
3966    {
3967#line 273
3968    __cil_tmp72 = & read;
3969#line 273
3970    __cil_tmp73 = *__cil_tmp72;
3971#line 273
3972    __cil_tmp74 = (size_t )pgsize;
3973#line 273
3974    if (__cil_tmp74 != __cil_tmp73) {
3975      {
3976#line 274
3977      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
3978#line 276
3979      __cil_tmp75 = (void const   *)pp1;
3980#line 276
3981      kfree(__cil_tmp75);
3982      }
3983#line 277
3984      return (err);
3985    } else {
3986
3987    }
3988    }
3989  }
3990  {
3991#line 281
3992  __cil_tmp76 = (loff_t )pgsize;
3993#line 281
3994  addr = addrn - __cil_tmp76;
3995#line 282
3996  printk("<6>mtd_pagetest: reading page at %#llx\n", addr);
3997#line 283
3998  __cil_tmp77 = (size_t )pgsize;
3999#line 283
4000  err = mtd_read(mtd, addr, __cil_tmp77, & read, pp3);
4001#line 284
4002  tmp___3 = mtd_is_bitflip(err);
4003  }
4004#line 284
4005  if (tmp___3 != 0) {
4006#line 285
4007    err = 0;
4008  } else {
4009
4010  }
4011#line 286
4012  if (err != 0) {
4013    {
4014#line 287
4015    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
4016#line 289
4017    __cil_tmp78 = (void const   *)pp1;
4018#line 289
4019    kfree(__cil_tmp78);
4020    }
4021#line 290
4022    return (err);
4023  } else {
4024    {
4025#line 286
4026    __cil_tmp79 = & read;
4027#line 286
4028    __cil_tmp80 = *__cil_tmp79;
4029#line 286
4030    __cil_tmp81 = (size_t )pgsize;
4031#line 286
4032    if (__cil_tmp81 != __cil_tmp80) {
4033      {
4034#line 287
4035      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
4036#line 289
4037      __cil_tmp82 = (void const   *)pp1;
4038#line 289
4039      kfree(__cil_tmp82);
4040      }
4041#line 290
4042      return (err);
4043    } else {
4044
4045    }
4046    }
4047  }
4048  {
4049#line 294
4050  addr = addr0;
4051#line 295
4052  printk("<6>mtd_pagetest: reading page at %#llx\n", addr);
4053#line 296
4054  __cil_tmp83 = (size_t )pgsize;
4055#line 296
4056  err = mtd_read(mtd, addr, __cil_tmp83, & read, pp4);
4057#line 297
4058  tmp___4 = mtd_is_bitflip(err);
4059  }
4060#line 297
4061  if (tmp___4 != 0) {
4062#line 298
4063    err = 0;
4064  } else {
4065
4066  }
4067#line 299
4068  if (err != 0) {
4069    {
4070#line 300
4071    printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
4072#line 302
4073    __cil_tmp84 = (void const   *)pp1;
4074#line 302
4075    kfree(__cil_tmp84);
4076    }
4077#line 303
4078    return (err);
4079  } else {
4080    {
4081#line 299
4082    __cil_tmp85 = & read;
4083#line 299
4084    __cil_tmp86 = *__cil_tmp85;
4085#line 299
4086    __cil_tmp87 = (size_t )pgsize;
4087#line 299
4088    if (__cil_tmp87 != __cil_tmp86) {
4089      {
4090#line 300
4091      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr);
4092#line 302
4093      __cil_tmp88 = (void const   *)pp1;
4094#line 302
4095      kfree(__cil_tmp88);
4096      }
4097#line 303
4098      return (err);
4099    } else {
4100
4101    }
4102    }
4103  }
4104  {
4105#line 307
4106  printk("<6>mtd_pagetest: verifying pages read at %#llx match\n", addr0);
4107#line 309
4108  __cil_tmp89 = (void const   *)pp2;
4109#line 309
4110  __cil_tmp90 = (void const   *)pp4;
4111#line 309
4112  __cil_tmp91 = (size_t )pgsize;
4113#line 309
4114  tmp___5 = memcmp(__cil_tmp89, __cil_tmp90, __cil_tmp91);
4115  }
4116#line 309
4117  if (tmp___5 != 0) {
4118    {
4119#line 310
4120    printk("<6>mtd_pagetest: verify failed!\n");
4121#line 311
4122    errcnt = errcnt + 1;
4123    }
4124  } else
4125#line 312
4126  if (err == 0) {
4127    {
4128#line 313
4129    printk("<6>mtd_pagetest: crosstest ok\n");
4130    }
4131  } else {
4132
4133  }
4134  {
4135#line 314
4136  __cil_tmp92 = (void const   *)pp1;
4137#line 314
4138  kfree(__cil_tmp92);
4139  }
4140#line 315
4141  return (err);
4142}
4143}
4144#line 318 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
4145static int erasecrosstest(void) 
4146{ size_t read ;
4147  size_t written ;
4148  int err ;
4149  int i ;
4150  int ebnum ;
4151  int ebnum2 ;
4152  loff_t addr0 ;
4153  char *readbuf ;
4154  int tmp ;
4155  int tmp___0 ;
4156  int tmp___1 ;
4157  int tmp___2 ;
4158  int tmp___3 ;
4159  int tmp___4 ;
4160  int tmp___5 ;
4161  int tmp___6 ;
4162  unsigned long __cil_tmp17 ;
4163  unsigned long __cil_tmp18 ;
4164  uint32_t __cil_tmp19 ;
4165  loff_t __cil_tmp20 ;
4166  unsigned long __cil_tmp21 ;
4167  unsigned char *__cil_tmp22 ;
4168  unsigned char __cil_tmp23 ;
4169  unsigned int __cil_tmp24 ;
4170  unsigned long __cil_tmp25 ;
4171  unsigned char *__cil_tmp26 ;
4172  unsigned char __cil_tmp27 ;
4173  unsigned int __cil_tmp28 ;
4174  size_t __cil_tmp29 ;
4175  char *__cil_tmp30 ;
4176  size_t __cil_tmp31 ;
4177  u_char const   *__cil_tmp32 ;
4178  size_t *__cil_tmp33 ;
4179  size_t __cil_tmp34 ;
4180  size_t __cil_tmp35 ;
4181  void *__cil_tmp36 ;
4182  size_t __cil_tmp37 ;
4183  size_t __cil_tmp38 ;
4184  u_char *__cil_tmp39 ;
4185  size_t *__cil_tmp40 ;
4186  size_t __cil_tmp41 ;
4187  size_t __cil_tmp42 ;
4188  void const   *__cil_tmp43 ;
4189  void const   *__cil_tmp44 ;
4190  size_t __cil_tmp45 ;
4191  size_t __cil_tmp46 ;
4192  char *__cil_tmp47 ;
4193  size_t __cil_tmp48 ;
4194  u_char const   *__cil_tmp49 ;
4195  size_t *__cil_tmp50 ;
4196  size_t __cil_tmp51 ;
4197  size_t __cil_tmp52 ;
4198  void *__cil_tmp53 ;
4199  size_t __cil_tmp54 ;
4200  size_t __cil_tmp55 ;
4201  u_char *__cil_tmp56 ;
4202  size_t *__cil_tmp57 ;
4203  size_t __cil_tmp58 ;
4204  size_t __cil_tmp59 ;
4205  void const   *__cil_tmp60 ;
4206  void const   *__cil_tmp61 ;
4207  size_t __cil_tmp62 ;
4208
4209  {
4210  {
4211#line 321
4212  err = 0;
4213#line 323
4214  readbuf = (char *)twopages;
4215#line 325
4216  printk("<6>mtd_pagetest: erasecrosstest\n");
4217#line 327
4218  ebnum = 0;
4219#line 328
4220  addr0 = 0LL;
4221#line 329
4222  i = 0;
4223  }
4224#line 329
4225  goto ldv_18737;
4226  ldv_18736: 
4227#line 330
4228  __cil_tmp17 = (unsigned long )mtd;
4229#line 330
4230  __cil_tmp18 = __cil_tmp17 + 16;
4231#line 330
4232  __cil_tmp19 = *((uint32_t *)__cil_tmp18);
4233#line 330
4234  __cil_tmp20 = (loff_t )__cil_tmp19;
4235#line 330
4236  addr0 = __cil_tmp20 + addr0;
4237#line 331
4238  ebnum = ebnum + 1;
4239#line 329
4240  i = i + 1;
4241  ldv_18737: ;
4242#line 329
4243  if (i < ebcnt) {
4244    {
4245#line 329
4246    __cil_tmp21 = (unsigned long )i;
4247#line 329
4248    __cil_tmp22 = bbt + __cil_tmp21;
4249#line 329
4250    __cil_tmp23 = *__cil_tmp22;
4251#line 329
4252    __cil_tmp24 = (unsigned int )__cil_tmp23;
4253#line 329
4254    if (__cil_tmp24 != 0U) {
4255#line 330
4256      goto ldv_18736;
4257    } else {
4258#line 332
4259      goto ldv_18738;
4260    }
4261    }
4262  } else {
4263#line 332
4264    goto ldv_18738;
4265  }
4266  ldv_18738: 
4267#line 334
4268  ebnum2 = ebcnt + -1;
4269#line 335
4270  goto ldv_18740;
4271  ldv_18739: 
4272#line 336
4273  ebnum2 = ebnum2 + -1;
4274  ldv_18740: ;
4275#line 335
4276  if (ebnum2 != 0) {
4277    {
4278#line 335
4279    __cil_tmp25 = (unsigned long )ebnum2;
4280#line 335
4281    __cil_tmp26 = bbt + __cil_tmp25;
4282#line 335
4283    __cil_tmp27 = *__cil_tmp26;
4284#line 335
4285    __cil_tmp28 = (unsigned int )__cil_tmp27;
4286#line 335
4287    if (__cil_tmp28 != 0U) {
4288#line 336
4289      goto ldv_18739;
4290    } else {
4291#line 338
4292      goto ldv_18741;
4293    }
4294    }
4295  } else {
4296#line 338
4297    goto ldv_18741;
4298  }
4299  ldv_18741: 
4300  {
4301#line 338
4302  printk("<6>mtd_pagetest: erasing block %d\n", ebnum);
4303#line 339
4304  err = erase_eraseblock(ebnum);
4305  }
4306#line 340
4307  if (err != 0) {
4308#line 341
4309    return (err);
4310  } else {
4311
4312  }
4313  {
4314#line 343
4315  printk("<6>mtd_pagetest: writing 1st page of block %d\n", ebnum);
4316#line 344
4317  __cil_tmp29 = (size_t )pgsize;
4318#line 344
4319  set_random_data(writebuf, __cil_tmp29);
4320#line 345
4321  __cil_tmp30 = (char *)writebuf;
4322#line 345
4323  strcpy(__cil_tmp30, "There is no data like this!");
4324#line 346
4325  __cil_tmp31 = (size_t )pgsize;
4326#line 346
4327  __cil_tmp32 = (u_char const   *)writebuf;
4328#line 346
4329  err = mtd_write(mtd, addr0, __cil_tmp31, & written, __cil_tmp32);
4330  }
4331#line 347
4332  if (err != 0) {
4333#line 347
4334    goto _L;
4335  } else {
4336    {
4337#line 347
4338    __cil_tmp33 = & written;
4339#line 347
4340    __cil_tmp34 = *__cil_tmp33;
4341#line 347
4342    __cil_tmp35 = (size_t )pgsize;
4343#line 347
4344    if (__cil_tmp35 != __cil_tmp34) {
4345      _L: /* CIL Label */ 
4346      {
4347#line 348
4348      printk("<6>mtd_pagetest: error: write failed at %#llx\n", addr0);
4349      }
4350#line 350
4351      if (err != 0) {
4352#line 350
4353        tmp = err;
4354      } else {
4355#line 350
4356        tmp = -1;
4357      }
4358#line 350
4359      return (tmp);
4360    } else {
4361
4362    }
4363    }
4364  }
4365  {
4366#line 353
4367  printk("<6>mtd_pagetest: reading 1st page of block %d\n", ebnum);
4368#line 354
4369  __cil_tmp36 = (void *)readbuf;
4370#line 354
4371  __cil_tmp37 = (size_t )pgsize;
4372#line 354
4373  memset(__cil_tmp36, 0, __cil_tmp37);
4374#line 355
4375  __cil_tmp38 = (size_t )pgsize;
4376#line 355
4377  __cil_tmp39 = (u_char *)readbuf;
4378#line 355
4379  err = mtd_read(mtd, addr0, __cil_tmp38, & read, __cil_tmp39);
4380#line 356
4381  tmp___0 = mtd_is_bitflip(err);
4382  }
4383#line 356
4384  if (tmp___0 != 0) {
4385#line 357
4386    err = 0;
4387  } else {
4388
4389  }
4390#line 358
4391  if (err != 0) {
4392#line 358
4393    goto _L___0;
4394  } else {
4395    {
4396#line 358
4397    __cil_tmp40 = & read;
4398#line 358
4399    __cil_tmp41 = *__cil_tmp40;
4400#line 358
4401    __cil_tmp42 = (size_t )pgsize;
4402#line 358
4403    if (__cil_tmp42 != __cil_tmp41) {
4404      _L___0: /* CIL Label */ 
4405      {
4406#line 359
4407      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
4408      }
4409#line 361
4410      if (err != 0) {
4411#line 361
4412        tmp___1 = err;
4413      } else {
4414#line 361
4415        tmp___1 = -1;
4416      }
4417#line 361
4418      return (tmp___1);
4419    } else {
4420
4421    }
4422    }
4423  }
4424  {
4425#line 364
4426  printk("<6>mtd_pagetest: verifying 1st page of block %d\n", ebnum);
4427#line 365
4428  __cil_tmp43 = (void const   *)writebuf;
4429#line 365
4430  __cil_tmp44 = (void const   *)readbuf;
4431#line 365
4432  __cil_tmp45 = (size_t )pgsize;
4433#line 365
4434  tmp___2 = memcmp(__cil_tmp43, __cil_tmp44, __cil_tmp45);
4435  }
4436#line 365
4437  if (tmp___2 != 0) {
4438    {
4439#line 366
4440    printk("<6>mtd_pagetest: verify failed!\n");
4441#line 367
4442    errcnt = errcnt + 1;
4443    }
4444#line 368
4445    return (-1);
4446  } else {
4447
4448  }
4449  {
4450#line 371
4451  printk("<6>mtd_pagetest: erasing block %d\n", ebnum);
4452#line 372
4453  err = erase_eraseblock(ebnum);
4454  }
4455#line 373
4456  if (err != 0) {
4457#line 374
4458    return (err);
4459  } else {
4460
4461  }
4462  {
4463#line 376
4464  printk("<6>mtd_pagetest: writing 1st page of block %d\n", ebnum);
4465#line 377
4466  __cil_tmp46 = (size_t )pgsize;
4467#line 377
4468  set_random_data(writebuf, __cil_tmp46);
4469#line 378
4470  __cil_tmp47 = (char *)writebuf;
4471#line 378
4472  strcpy(__cil_tmp47, "There is no data like this!");
4473#line 379
4474  __cil_tmp48 = (size_t )pgsize;
4475#line 379
4476  __cil_tmp49 = (u_char const   *)writebuf;
4477#line 379
4478  err = mtd_write(mtd, addr0, __cil_tmp48, & written, __cil_tmp49);
4479  }
4480#line 380
4481  if (err != 0) {
4482#line 380
4483    goto _L___1;
4484  } else {
4485    {
4486#line 380
4487    __cil_tmp50 = & written;
4488#line 380
4489    __cil_tmp51 = *__cil_tmp50;
4490#line 380
4491    __cil_tmp52 = (size_t )pgsize;
4492#line 380
4493    if (__cil_tmp52 != __cil_tmp51) {
4494      _L___1: /* CIL Label */ 
4495      {
4496#line 381
4497      printk("<6>mtd_pagetest: error: write failed at %#llx\n", addr0);
4498      }
4499#line 383
4500      if (err != 0) {
4501#line 383
4502        tmp___3 = err;
4503      } else {
4504#line 383
4505        tmp___3 = -1;
4506      }
4507#line 383
4508      return (tmp___3);
4509    } else {
4510
4511    }
4512    }
4513  }
4514  {
4515#line 386
4516  printk("<6>mtd_pagetest: erasing block %d\n", ebnum2);
4517#line 387
4518  err = erase_eraseblock(ebnum2);
4519  }
4520#line 388
4521  if (err != 0) {
4522#line 389
4523    return (err);
4524  } else {
4525
4526  }
4527  {
4528#line 391
4529  printk("<6>mtd_pagetest: reading 1st page of block %d\n", ebnum);
4530#line 392
4531  __cil_tmp53 = (void *)readbuf;
4532#line 392
4533  __cil_tmp54 = (size_t )pgsize;
4534#line 392
4535  memset(__cil_tmp53, 0, __cil_tmp54);
4536#line 393
4537  __cil_tmp55 = (size_t )pgsize;
4538#line 393
4539  __cil_tmp56 = (u_char *)readbuf;
4540#line 393
4541  err = mtd_read(mtd, addr0, __cil_tmp55, & read, __cil_tmp56);
4542#line 394
4543  tmp___4 = mtd_is_bitflip(err);
4544  }
4545#line 394
4546  if (tmp___4 != 0) {
4547#line 395
4548    err = 0;
4549  } else {
4550
4551  }
4552#line 396
4553  if (err != 0) {
4554#line 396
4555    goto _L___2;
4556  } else {
4557    {
4558#line 396
4559    __cil_tmp57 = & read;
4560#line 396
4561    __cil_tmp58 = *__cil_tmp57;
4562#line 396
4563    __cil_tmp59 = (size_t )pgsize;
4564#line 396
4565    if (__cil_tmp59 != __cil_tmp58) {
4566      _L___2: /* CIL Label */ 
4567      {
4568#line 397
4569      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
4570      }
4571#line 399
4572      if (err != 0) {
4573#line 399
4574        tmp___5 = err;
4575      } else {
4576#line 399
4577        tmp___5 = -1;
4578      }
4579#line 399
4580      return (tmp___5);
4581    } else {
4582
4583    }
4584    }
4585  }
4586  {
4587#line 402
4588  printk("<6>mtd_pagetest: verifying 1st page of block %d\n", ebnum);
4589#line 403
4590  __cil_tmp60 = (void const   *)writebuf;
4591#line 403
4592  __cil_tmp61 = (void const   *)readbuf;
4593#line 403
4594  __cil_tmp62 = (size_t )pgsize;
4595#line 403
4596  tmp___6 = memcmp(__cil_tmp60, __cil_tmp61, __cil_tmp62);
4597  }
4598#line 403
4599  if (tmp___6 != 0) {
4600    {
4601#line 404
4602    printk("<6>mtd_pagetest: verify failed!\n");
4603#line 405
4604    errcnt = errcnt + 1;
4605    }
4606#line 406
4607    return (-1);
4608  } else {
4609
4610  }
4611#line 409
4612  if (err == 0) {
4613    {
4614#line 410
4615    printk("<6>mtd_pagetest: erasecrosstest ok\n");
4616    }
4617  } else {
4618
4619  }
4620#line 411
4621  return (err);
4622}
4623}
4624#line 414 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
4625static int erasetest(void) 
4626{ size_t read ;
4627  size_t written ;
4628  int err ;
4629  int i ;
4630  int ebnum ;
4631  int ok ;
4632  loff_t addr0 ;
4633  int tmp ;
4634  int tmp___0 ;
4635  int tmp___1 ;
4636  unsigned long __cil_tmp11 ;
4637  unsigned long __cil_tmp12 ;
4638  uint32_t __cil_tmp13 ;
4639  loff_t __cil_tmp14 ;
4640  unsigned long __cil_tmp15 ;
4641  unsigned char *__cil_tmp16 ;
4642  unsigned char __cil_tmp17 ;
4643  unsigned int __cil_tmp18 ;
4644  size_t __cil_tmp19 ;
4645  size_t __cil_tmp20 ;
4646  u_char const   *__cil_tmp21 ;
4647  size_t *__cil_tmp22 ;
4648  size_t __cil_tmp23 ;
4649  size_t __cil_tmp24 ;
4650  size_t __cil_tmp25 ;
4651  size_t *__cil_tmp26 ;
4652  size_t __cil_tmp27 ;
4653  size_t __cil_tmp28 ;
4654  unsigned long __cil_tmp29 ;
4655  unsigned char *__cil_tmp30 ;
4656  unsigned char __cil_tmp31 ;
4657  unsigned int __cil_tmp32 ;
4658
4659  {
4660  {
4661#line 417
4662  err = 0;
4663#line 417
4664  ok = 1;
4665#line 420
4666  printk("<6>mtd_pagetest: erasetest\n");
4667#line 422
4668  ebnum = 0;
4669#line 423
4670  addr0 = 0LL;
4671#line 424
4672  i = 0;
4673  }
4674#line 424
4675  goto ldv_18753;
4676  ldv_18752: 
4677#line 425
4678  __cil_tmp11 = (unsigned long )mtd;
4679#line 425
4680  __cil_tmp12 = __cil_tmp11 + 16;
4681#line 425
4682  __cil_tmp13 = *((uint32_t *)__cil_tmp12);
4683#line 425
4684  __cil_tmp14 = (loff_t )__cil_tmp13;
4685#line 425
4686  addr0 = __cil_tmp14 + addr0;
4687#line 426
4688  ebnum = ebnum + 1;
4689#line 424
4690  i = i + 1;
4691  ldv_18753: ;
4692#line 424
4693  if (i < ebcnt) {
4694    {
4695#line 424
4696    __cil_tmp15 = (unsigned long )i;
4697#line 424
4698    __cil_tmp16 = bbt + __cil_tmp15;
4699#line 424
4700    __cil_tmp17 = *__cil_tmp16;
4701#line 424
4702    __cil_tmp18 = (unsigned int )__cil_tmp17;
4703#line 424
4704    if (__cil_tmp18 != 0U) {
4705#line 425
4706      goto ldv_18752;
4707    } else {
4708#line 427
4709      goto ldv_18754;
4710    }
4711    }
4712  } else {
4713#line 427
4714    goto ldv_18754;
4715  }
4716  ldv_18754: 
4717  {
4718#line 429
4719  printk("<6>mtd_pagetest: erasing block %d\n", ebnum);
4720#line 430
4721  err = erase_eraseblock(ebnum);
4722  }
4723#line 431
4724  if (err != 0) {
4725#line 432
4726    return (err);
4727  } else {
4728
4729  }
4730  {
4731#line 434
4732  printk("<6>mtd_pagetest: writing 1st page of block %d\n", ebnum);
4733#line 435
4734  __cil_tmp19 = (size_t )pgsize;
4735#line 435
4736  set_random_data(writebuf, __cil_tmp19);
4737#line 436
4738  __cil_tmp20 = (size_t )pgsize;
4739#line 436
4740  __cil_tmp21 = (u_char const   *)writebuf;
4741#line 436
4742  err = mtd_write(mtd, addr0, __cil_tmp20, & written, __cil_tmp21);
4743  }
4744#line 437
4745  if (err != 0) {
4746#line 437
4747    goto _L;
4748  } else {
4749    {
4750#line 437
4751    __cil_tmp22 = & written;
4752#line 437
4753    __cil_tmp23 = *__cil_tmp22;
4754#line 437
4755    __cil_tmp24 = (size_t )pgsize;
4756#line 437
4757    if (__cil_tmp24 != __cil_tmp23) {
4758      _L: /* CIL Label */ 
4759      {
4760#line 438
4761      printk("<6>mtd_pagetest: error: write failed at %#llx\n", addr0);
4762      }
4763#line 440
4764      if (err != 0) {
4765#line 440
4766        tmp = err;
4767      } else {
4768#line 440
4769        tmp = -1;
4770      }
4771#line 440
4772      return (tmp);
4773    } else {
4774
4775    }
4776    }
4777  }
4778  {
4779#line 443
4780  printk("<6>mtd_pagetest: erasing block %d\n", ebnum);
4781#line 444
4782  err = erase_eraseblock(ebnum);
4783  }
4784#line 445
4785  if (err != 0) {
4786#line 446
4787    return (err);
4788  } else {
4789
4790  }
4791  {
4792#line 448
4793  printk("<6>mtd_pagetest: reading 1st page of block %d\n", ebnum);
4794#line 449
4795  __cil_tmp25 = (size_t )pgsize;
4796#line 449
4797  err = mtd_read(mtd, addr0, __cil_tmp25, & read, twopages);
4798#line 450
4799  tmp___0 = mtd_is_bitflip(err);
4800  }
4801#line 450
4802  if (tmp___0 != 0) {
4803#line 451
4804    err = 0;
4805  } else {
4806
4807  }
4808#line 452
4809  if (err != 0) {
4810#line 452
4811    goto _L___0;
4812  } else {
4813    {
4814#line 452
4815    __cil_tmp26 = & read;
4816#line 452
4817    __cil_tmp27 = *__cil_tmp26;
4818#line 452
4819    __cil_tmp28 = (size_t )pgsize;
4820#line 452
4821    if (__cil_tmp28 != __cil_tmp27) {
4822      _L___0: /* CIL Label */ 
4823      {
4824#line 453
4825      printk("<6>mtd_pagetest: error: read failed at %#llx\n", addr0);
4826      }
4827#line 455
4828      if (err != 0) {
4829#line 455
4830        tmp___1 = err;
4831      } else {
4832#line 455
4833        tmp___1 = -1;
4834      }
4835#line 455
4836      return (tmp___1);
4837    } else {
4838
4839    }
4840    }
4841  }
4842  {
4843#line 458
4844  printk("<6>mtd_pagetest: verifying 1st page of block %d is all 0xff\n", ebnum);
4845#line 460
4846  i = 0;
4847  }
4848#line 460
4849  goto ldv_18757;
4850  ldv_18756: ;
4851  {
4852#line 461
4853  __cil_tmp29 = (unsigned long )i;
4854#line 461
4855  __cil_tmp30 = twopages + __cil_tmp29;
4856#line 461
4857  __cil_tmp31 = *__cil_tmp30;
4858#line 461
4859  __cil_tmp32 = (unsigned int )__cil_tmp31;
4860#line 461
4861  if (__cil_tmp32 != 255U) {
4862    {
4863#line 462
4864    printk("<6>mtd_pagetest: verifying all 0xff failed at %d\n", i);
4865#line 464
4866    errcnt = errcnt + 1;
4867#line 465
4868    ok = 0;
4869    }
4870#line 466
4871    goto ldv_18755;
4872  } else {
4873
4874  }
4875  }
4876#line 460
4877  i = i + 1;
4878  ldv_18757: ;
4879#line 460
4880  if (i < pgsize) {
4881#line 461
4882    goto ldv_18756;
4883  } else {
4884#line 463
4885    goto ldv_18755;
4886  }
4887  ldv_18755: ;
4888#line 469
4889  if (ok != 0) {
4890#line 469
4891    if (err == 0) {
4892      {
4893#line 470
4894      printk("<6>mtd_pagetest: erasetest ok\n");
4895      }
4896    } else {
4897
4898    }
4899  } else {
4900
4901  }
4902#line 472
4903  return (err);
4904}
4905}
4906#line 475 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
4907static int is_block_bad(int ebnum ) 
4908{ loff_t addr ;
4909  int ret ;
4910  uint32_t __cil_tmp4 ;
4911  unsigned long __cil_tmp5 ;
4912  unsigned long __cil_tmp6 ;
4913  uint32_t __cil_tmp7 ;
4914  uint32_t __cil_tmp8 ;
4915
4916  {
4917  {
4918#line 477
4919  __cil_tmp4 = (uint32_t )ebnum;
4920#line 477
4921  __cil_tmp5 = (unsigned long )mtd;
4922#line 477
4923  __cil_tmp6 = __cil_tmp5 + 16;
4924#line 477
4925  __cil_tmp7 = *((uint32_t *)__cil_tmp6);
4926#line 477
4927  __cil_tmp8 = __cil_tmp7 * __cil_tmp4;
4928#line 477
4929  addr = (loff_t )__cil_tmp8;
4930#line 480
4931  ret = mtd_block_isbad(mtd, addr);
4932  }
4933#line 481
4934  if (ret != 0) {
4935    {
4936#line 482
4937    printk("<6>mtd_pagetest: block %d is bad\n", ebnum);
4938    }
4939  } else {
4940
4941  }
4942#line 483
4943  return (ret);
4944}
4945}
4946#line 486 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
4947static int scan_for_bad_eraseblocks(void) 
4948{ int i ;
4949  int bad ;
4950  void *tmp ;
4951  int tmp___0 ;
4952  size_t __cil_tmp5 ;
4953  unsigned char *__cil_tmp6 ;
4954  unsigned long __cil_tmp7 ;
4955  unsigned long __cil_tmp8 ;
4956  unsigned long __cil_tmp9 ;
4957  unsigned char *__cil_tmp10 ;
4958  int __cil_tmp11 ;
4959  unsigned long __cil_tmp12 ;
4960  unsigned char *__cil_tmp13 ;
4961  unsigned char __cil_tmp14 ;
4962  unsigned int __cil_tmp15 ;
4963
4964  {
4965  {
4966#line 488
4967  bad = 0;
4968#line 490
4969  __cil_tmp5 = (size_t )ebcnt;
4970#line 490
4971  tmp = kzalloc(__cil_tmp5, 208U);
4972#line 490
4973  bbt = (unsigned char *)tmp;
4974  }
4975  {
4976#line 491
4977  __cil_tmp6 = (unsigned char *)0;
4978#line 491
4979  __cil_tmp7 = (unsigned long )__cil_tmp6;
4980#line 491
4981  __cil_tmp8 = (unsigned long )bbt;
4982#line 491
4983  if (__cil_tmp8 == __cil_tmp7) {
4984    {
4985#line 492
4986    printk("<6>mtd_pagetest: error: cannot allocate memory\n");
4987    }
4988#line 493
4989    return (-12);
4990  } else {
4991
4992  }
4993  }
4994  {
4995#line 496
4996  printk("<6>mtd_pagetest: scanning for bad eraseblocks\n");
4997#line 497
4998  i = 0;
4999  }
5000#line 497
5001  goto ldv_18770;
5002  ldv_18769: 
5003  {
5004#line 498
5005  tmp___0 = is_block_bad(i);
5006#line 498
5007  __cil_tmp9 = (unsigned long )i;
5008#line 498
5009  __cil_tmp10 = bbt + __cil_tmp9;
5010#line 498
5011  __cil_tmp11 = tmp___0 != 0;
5012#line 498
5013  *__cil_tmp10 = (unsigned char )__cil_tmp11;
5014  }
5015  {
5016#line 499
5017  __cil_tmp12 = (unsigned long )i;
5018#line 499
5019  __cil_tmp13 = bbt + __cil_tmp12;
5020#line 499
5021  __cil_tmp14 = *__cil_tmp13;
5022#line 499
5023  __cil_tmp15 = (unsigned int )__cil_tmp14;
5024#line 499
5025  if (__cil_tmp15 != 0U) {
5026#line 500
5027    bad = bad + 1;
5028  } else {
5029
5030  }
5031  }
5032  {
5033#line 501
5034  __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p",
5035                501, 0);
5036#line 501
5037  _cond_resched();
5038#line 497
5039  i = i + 1;
5040  }
5041  ldv_18770: ;
5042#line 497
5043  if (i < ebcnt) {
5044#line 498
5045    goto ldv_18769;
5046  } else {
5047#line 500
5048    goto ldv_18771;
5049  }
5050  ldv_18771: 
5051  {
5052#line 503
5053  printk("<6>mtd_pagetest: scanned %d eraseblocks, %d are bad\n", i, bad);
5054  }
5055#line 504
5056  return (0);
5057}
5058}
5059#line 507 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5060static int mtd_pagetest_init(void) 
5061{ int err ;
5062  uint64_t tmp ;
5063  uint32_t i ;
5064  long tmp___0 ;
5065  long tmp___1 ;
5066  uint32_t __base ;
5067  uint32_t __rem ;
5068  void *tmp___2 ;
5069  void *tmp___3 ;
5070  void *tmp___4 ;
5071  int *__cil_tmp11 ;
5072  int __cil_tmp12 ;
5073  int *__cil_tmp13 ;
5074  int __cil_tmp14 ;
5075  struct mtd_info *__cil_tmp15 ;
5076  int *__cil_tmp16 ;
5077  int __cil_tmp17 ;
5078  void const   *__cil_tmp18 ;
5079  void const   *__cil_tmp19 ;
5080  u_char __cil_tmp20 ;
5081  unsigned int __cil_tmp21 ;
5082  unsigned long __cil_tmp22 ;
5083  unsigned long __cil_tmp23 ;
5084  unsigned long __cil_tmp24 ;
5085  unsigned long __cil_tmp25 ;
5086  uint64_t __cil_tmp26 ;
5087  unsigned long long __cil_tmp27 ;
5088  uint64_t __cil_tmp28 ;
5089  unsigned long __cil_tmp29 ;
5090  unsigned long __cil_tmp30 ;
5091  uint32_t __cil_tmp31 ;
5092  unsigned long __cil_tmp32 ;
5093  unsigned long __cil_tmp33 ;
5094  uint32_t __cil_tmp34 ;
5095  uint32_t __cil_tmp35 ;
5096  unsigned long __cil_tmp36 ;
5097  unsigned long __cil_tmp37 ;
5098  uint32_t __cil_tmp38 ;
5099  unsigned long __cil_tmp39 ;
5100  unsigned long __cil_tmp40 ;
5101  uint64_t __cil_tmp41 ;
5102  unsigned long __cil_tmp42 ;
5103  unsigned long __cil_tmp43 ;
5104  uint32_t __cil_tmp44 ;
5105  unsigned long __cil_tmp45 ;
5106  unsigned long __cil_tmp46 ;
5107  uint32_t __cil_tmp47 ;
5108  unsigned long __cil_tmp48 ;
5109  unsigned long __cil_tmp49 ;
5110  uint32_t __cil_tmp50 ;
5111  size_t __cil_tmp51 ;
5112  unsigned char *__cil_tmp52 ;
5113  unsigned long __cil_tmp53 ;
5114  unsigned long __cil_tmp54 ;
5115  size_t __cil_tmp55 ;
5116  unsigned char *__cil_tmp56 ;
5117  unsigned long __cil_tmp57 ;
5118  unsigned long __cil_tmp58 ;
5119  size_t __cil_tmp59 ;
5120  unsigned char *__cil_tmp60 ;
5121  unsigned long __cil_tmp61 ;
5122  unsigned long __cil_tmp62 ;
5123  unsigned long __cil_tmp63 ;
5124  unsigned char *__cil_tmp64 ;
5125  unsigned char __cil_tmp65 ;
5126  unsigned int __cil_tmp66 ;
5127  int __cil_tmp67 ;
5128  uint32_t __cil_tmp68 ;
5129  unsigned long __cil_tmp69 ;
5130  unsigned char *__cil_tmp70 ;
5131  unsigned char __cil_tmp71 ;
5132  unsigned int __cil_tmp72 ;
5133  int __cil_tmp73 ;
5134  unsigned int __cil_tmp74 ;
5135  uint32_t __cil_tmp75 ;
5136  unsigned long __cil_tmp76 ;
5137  unsigned char *__cil_tmp77 ;
5138  unsigned char __cil_tmp78 ;
5139  unsigned int __cil_tmp79 ;
5140  int __cil_tmp80 ;
5141  unsigned int __cil_tmp81 ;
5142  uint32_t __cil_tmp82 ;
5143  void const   *__cil_tmp83 ;
5144  void const   *__cil_tmp84 ;
5145  void const   *__cil_tmp85 ;
5146  void const   *__cil_tmp86 ;
5147
5148  {
5149  {
5150#line 509
5151  err = 0;
5152#line 513
5153  printk("<6>\n");
5154#line 514
5155  printk("<6>=================================================\n");
5156  }
5157  {
5158#line 516
5159  __cil_tmp11 = & dev;
5160#line 516
5161  __cil_tmp12 = *__cil_tmp11;
5162#line 516
5163  if (__cil_tmp12 < 0) {
5164    {
5165#line 517
5166    printk("<6>mtd_pagetest: Please specify a valid mtd-device via module paramter\n");
5167#line 518
5168    printk("<2>CAREFUL: This test wipes all data on the specified MTD device!\n");
5169    }
5170#line 519
5171    return (-22);
5172  } else {
5173
5174  }
5175  }
5176  {
5177#line 522
5178  __cil_tmp13 = & dev;
5179#line 522
5180  __cil_tmp14 = *__cil_tmp13;
5181#line 522
5182  printk("<6>mtd_pagetest: MTD device: %d\n", __cil_tmp14);
5183#line 524
5184  __cil_tmp15 = (struct mtd_info *)0;
5185#line 524
5186  __cil_tmp16 = & dev;
5187#line 524
5188  __cil_tmp17 = *__cil_tmp16;
5189#line 524
5190  mtd = get_mtd_device(__cil_tmp15, __cil_tmp17);
5191#line 525
5192  __cil_tmp18 = (void const   *)mtd;
5193#line 525
5194  tmp___1 = IS_ERR(__cil_tmp18);
5195  }
5196#line 525
5197  if (tmp___1 != 0L) {
5198    {
5199#line 526
5200    __cil_tmp19 = (void const   *)mtd;
5201#line 526
5202    tmp___0 = PTR_ERR(__cil_tmp19);
5203#line 526
5204    err = (int )tmp___0;
5205#line 527
5206    printk("<6>mtd_pagetest: error: cannot get MTD device\n");
5207    }
5208#line 528
5209    return (err);
5210  } else {
5211
5212  }
5213  {
5214#line 531
5215  __cil_tmp20 = *((u_char *)mtd);
5216#line 531
5217  __cil_tmp21 = (unsigned int )__cil_tmp20;
5218#line 531
5219  if (__cil_tmp21 != 4U) {
5220    {
5221#line 532
5222    printk("<6>mtd_pagetest: this test requires NAND flash\n");
5223    }
5224#line 533
5225    goto out;
5226  } else {
5227
5228  }
5229  }
5230  {
5231#line 536
5232  __cil_tmp22 = (unsigned long )mtd;
5233#line 536
5234  __cil_tmp23 = __cil_tmp22 + 8;
5235#line 536
5236  tmp = *((uint64_t *)__cil_tmp23);
5237#line 537
5238  __cil_tmp24 = (unsigned long )mtd;
5239#line 537
5240  __cil_tmp25 = __cil_tmp24 + 16;
5241#line 537
5242  __base = *((uint32_t *)__cil_tmp25);
5243#line 537
5244  __cil_tmp26 = (uint64_t )__base;
5245#line 537
5246  __cil_tmp27 = tmp % __cil_tmp26;
5247#line 537
5248  __rem = (uint32_t )__cil_tmp27;
5249#line 537
5250  __cil_tmp28 = (uint64_t )__base;
5251#line 537
5252  tmp = tmp / __cil_tmp28;
5253#line 538
5254  ebcnt = (int )tmp;
5255#line 539
5256  __cil_tmp29 = (unsigned long )mtd;
5257#line 539
5258  __cil_tmp30 = __cil_tmp29 + 20;
5259#line 539
5260  __cil_tmp31 = *((uint32_t *)__cil_tmp30);
5261#line 539
5262  __cil_tmp32 = (unsigned long )mtd;
5263#line 539
5264  __cil_tmp33 = __cil_tmp32 + 16;
5265#line 539
5266  __cil_tmp34 = *((uint32_t *)__cil_tmp33);
5267#line 539
5268  __cil_tmp35 = __cil_tmp34 / __cil_tmp31;
5269#line 539
5270  pgcnt = (int )__cil_tmp35;
5271#line 540
5272  __cil_tmp36 = (unsigned long )mtd;
5273#line 540
5274  __cil_tmp37 = __cil_tmp36 + 20;
5275#line 540
5276  __cil_tmp38 = *((uint32_t *)__cil_tmp37);
5277#line 540
5278  pgsize = (int )__cil_tmp38;
5279#line 542
5280  __cil_tmp39 = (unsigned long )mtd;
5281#line 542
5282  __cil_tmp40 = __cil_tmp39 + 8;
5283#line 542
5284  __cil_tmp41 = *((uint64_t *)__cil_tmp40);
5285#line 542
5286  __cil_tmp42 = (unsigned long )mtd;
5287#line 542
5288  __cil_tmp43 = __cil_tmp42 + 16;
5289#line 542
5290  __cil_tmp44 = *((uint32_t *)__cil_tmp43);
5291#line 542
5292  __cil_tmp45 = (unsigned long )mtd;
5293#line 542
5294  __cil_tmp46 = __cil_tmp45 + 28;
5295#line 542
5296  __cil_tmp47 = *((uint32_t *)__cil_tmp46);
5297#line 542
5298  printk("<6>mtd_pagetest: MTD device size %llu, eraseblock size %u, page size %u, count of eraseblocks %u, pages per eraseblock %u, OOB size %u\n",
5299         __cil_tmp41, __cil_tmp44, pgsize, ebcnt, pgcnt, __cil_tmp47);
5300#line 548
5301  err = -12;
5302#line 549
5303  bufsize = pgsize * 2;
5304#line 550
5305  __cil_tmp48 = (unsigned long )mtd;
5306#line 550
5307  __cil_tmp49 = __cil_tmp48 + 16;
5308#line 550
5309  __cil_tmp50 = *((uint32_t *)__cil_tmp49);
5310#line 550
5311  __cil_tmp51 = (size_t )__cil_tmp50;
5312#line 550
5313  tmp___2 = kmalloc(__cil_tmp51, 208U);
5314#line 550
5315  writebuf = (unsigned char *)tmp___2;
5316  }
5317  {
5318#line 551
5319  __cil_tmp52 = (unsigned char *)0;
5320#line 551
5321  __cil_tmp53 = (unsigned long )__cil_tmp52;
5322#line 551
5323  __cil_tmp54 = (unsigned long )writebuf;
5324#line 551
5325  if (__cil_tmp54 == __cil_tmp53) {
5326    {
5327#line 552
5328    printk("<6>mtd_pagetest: error: cannot allocate memory\n");
5329    }
5330#line 553
5331    goto out;
5332  } else {
5333
5334  }
5335  }
5336  {
5337#line 555
5338  __cil_tmp55 = (size_t )bufsize;
5339#line 555
5340  tmp___3 = kmalloc(__cil_tmp55, 208U);
5341#line 555
5342  twopages = (unsigned char *)tmp___3;
5343  }
5344  {
5345#line 556
5346  __cil_tmp56 = (unsigned char *)0;
5347#line 556
5348  __cil_tmp57 = (unsigned long )__cil_tmp56;
5349#line 556
5350  __cil_tmp58 = (unsigned long )twopages;
5351#line 556
5352  if (__cil_tmp58 == __cil_tmp57) {
5353    {
5354#line 557
5355    printk("<6>mtd_pagetest: error: cannot allocate memory\n");
5356    }
5357#line 558
5358    goto out;
5359  } else {
5360
5361  }
5362  }
5363  {
5364#line 560
5365  __cil_tmp59 = (size_t )bufsize;
5366#line 560
5367  tmp___4 = kmalloc(__cil_tmp59, 208U);
5368#line 560
5369  boundary = (unsigned char *)tmp___4;
5370  }
5371  {
5372#line 561
5373  __cil_tmp60 = (unsigned char *)0;
5374#line 561
5375  __cil_tmp61 = (unsigned long )__cil_tmp60;
5376#line 561
5377  __cil_tmp62 = (unsigned long )boundary;
5378#line 561
5379  if (__cil_tmp62 == __cil_tmp61) {
5380    {
5381#line 562
5382    printk("<6>mtd_pagetest: error: cannot allocate memory\n");
5383    }
5384#line 563
5385    goto out;
5386  } else {
5387
5388  }
5389  }
5390  {
5391#line 566
5392  err = scan_for_bad_eraseblocks();
5393  }
5394#line 567
5395  if (err != 0) {
5396#line 568
5397    goto out;
5398  } else {
5399
5400  }
5401  {
5402#line 571
5403  printk("<6>mtd_pagetest: erasing whole device\n");
5404#line 572
5405  i = 0U;
5406  }
5407#line 572
5408  goto ldv_18785;
5409  ldv_18784: ;
5410  {
5411#line 573
5412  __cil_tmp63 = (unsigned long )i;
5413#line 573
5414  __cil_tmp64 = bbt + __cil_tmp63;
5415#line 573
5416  __cil_tmp65 = *__cil_tmp64;
5417#line 573
5418  __cil_tmp66 = (unsigned int )__cil_tmp65;
5419#line 573
5420  if (__cil_tmp66 != 0U) {
5421#line 574
5422    goto ldv_18782;
5423  } else {
5424
5425  }
5426  }
5427  {
5428#line 575
5429  __cil_tmp67 = (int )i;
5430#line 575
5431  err = erase_eraseblock(__cil_tmp67);
5432  }
5433#line 576
5434  if (err != 0) {
5435#line 577
5436    goto out;
5437  } else {
5438
5439  }
5440  {
5441#line 578
5442  __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p",
5443                578, 0);
5444#line 578
5445  _cond_resched();
5446  }
5447  ldv_18782: 
5448#line 572
5449  i = i + 1U;
5450  ldv_18785: ;
5451  {
5452#line 572
5453  __cil_tmp68 = (uint32_t )ebcnt;
5454#line 572
5455  if (__cil_tmp68 > i) {
5456#line 573
5457    goto ldv_18784;
5458  } else {
5459#line 575
5460    goto ldv_18786;
5461  }
5462  }
5463  ldv_18786: 
5464  {
5465#line 580
5466  printk("<6>mtd_pagetest: erased %u eraseblocks\n", i);
5467#line 583
5468  simple_srand(1UL);
5469#line 584
5470  printk("<6>mtd_pagetest: writing whole device\n");
5471#line 585
5472  i = 0U;
5473  }
5474#line 585
5475  goto ldv_18790;
5476  ldv_18789: ;
5477  {
5478#line 586
5479  __cil_tmp69 = (unsigned long )i;
5480#line 586
5481  __cil_tmp70 = bbt + __cil_tmp69;
5482#line 586
5483  __cil_tmp71 = *__cil_tmp70;
5484#line 586
5485  __cil_tmp72 = (unsigned int )__cil_tmp71;
5486#line 586
5487  if (__cil_tmp72 != 0U) {
5488#line 587
5489    goto ldv_18787;
5490  } else {
5491
5492  }
5493  }
5494  {
5495#line 588
5496  __cil_tmp73 = (int )i;
5497#line 588
5498  err = write_eraseblock(__cil_tmp73);
5499  }
5500#line 589
5501  if (err != 0) {
5502#line 590
5503    goto out;
5504  } else {
5505
5506  }
5507  {
5508#line 591
5509  __cil_tmp74 = i & 255U;
5510#line 591
5511  if (__cil_tmp74 == 0U) {
5512    {
5513#line 592
5514    printk("<6>mtd_pagetest: written up to eraseblock %u\n", i);
5515    }
5516  } else {
5517
5518  }
5519  }
5520  {
5521#line 593
5522  __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p",
5523                593, 0);
5524#line 593
5525  _cond_resched();
5526  }
5527  ldv_18787: 
5528#line 585
5529  i = i + 1U;
5530  ldv_18790: ;
5531  {
5532#line 585
5533  __cil_tmp75 = (uint32_t )ebcnt;
5534#line 585
5535  if (__cil_tmp75 > i) {
5536#line 586
5537    goto ldv_18789;
5538  } else {
5539#line 588
5540    goto ldv_18791;
5541  }
5542  }
5543  ldv_18791: 
5544  {
5545#line 595
5546  printk("<6>mtd_pagetest: written %u eraseblocks\n", i);
5547#line 598
5548  simple_srand(1UL);
5549#line 599
5550  printk("<6>mtd_pagetest: verifying all eraseblocks\n");
5551#line 600
5552  i = 0U;
5553  }
5554#line 600
5555  goto ldv_18795;
5556  ldv_18794: ;
5557  {
5558#line 601
5559  __cil_tmp76 = (unsigned long )i;
5560#line 601
5561  __cil_tmp77 = bbt + __cil_tmp76;
5562#line 601
5563  __cil_tmp78 = *__cil_tmp77;
5564#line 601
5565  __cil_tmp79 = (unsigned int )__cil_tmp78;
5566#line 601
5567  if (__cil_tmp79 != 0U) {
5568#line 602
5569    goto ldv_18792;
5570  } else {
5571
5572  }
5573  }
5574  {
5575#line 603
5576  __cil_tmp80 = (int )i;
5577#line 603
5578  err = verify_eraseblock(__cil_tmp80);
5579  }
5580#line 604
5581  if (err != 0) {
5582#line 605
5583    goto out;
5584  } else {
5585
5586  }
5587  {
5588#line 606
5589  __cil_tmp81 = i & 255U;
5590#line 606
5591  if (__cil_tmp81 == 0U) {
5592    {
5593#line 607
5594    printk("<6>mtd_pagetest: verified up to eraseblock %u\n", i);
5595    }
5596  } else {
5597
5598  }
5599  }
5600  {
5601#line 608
5602  __might_sleep("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p",
5603                608, 0);
5604#line 608
5605  _cond_resched();
5606  }
5607  ldv_18792: 
5608#line 600
5609  i = i + 1U;
5610  ldv_18795: ;
5611  {
5612#line 600
5613  __cil_tmp82 = (uint32_t )ebcnt;
5614#line 600
5615  if (__cil_tmp82 > i) {
5616#line 601
5617    goto ldv_18794;
5618  } else {
5619#line 603
5620    goto ldv_18796;
5621  }
5622  }
5623  ldv_18796: 
5624  {
5625#line 610
5626  printk("<6>mtd_pagetest: verified %u eraseblocks\n", i);
5627#line 612
5628  err = crosstest();
5629  }
5630#line 613
5631  if (err != 0) {
5632#line 614
5633    goto out;
5634  } else {
5635
5636  }
5637  {
5638#line 616
5639  err = erasecrosstest();
5640  }
5641#line 617
5642  if (err != 0) {
5643#line 618
5644    goto out;
5645  } else {
5646
5647  }
5648  {
5649#line 620
5650  err = erasetest();
5651  }
5652#line 621
5653  if (err != 0) {
5654#line 622
5655    goto out;
5656  } else {
5657
5658  }
5659  {
5660#line 624
5661  printk("<6>mtd_pagetest: finished with %d errors\n", errcnt);
5662  }
5663  out: 
5664  {
5665#line 627
5666  __cil_tmp83 = (void const   *)bbt;
5667#line 627
5668  kfree(__cil_tmp83);
5669#line 628
5670  __cil_tmp84 = (void const   *)boundary;
5671#line 628
5672  kfree(__cil_tmp84);
5673#line 629
5674  __cil_tmp85 = (void const   *)twopages;
5675#line 629
5676  kfree(__cil_tmp85);
5677#line 630
5678  __cil_tmp86 = (void const   *)writebuf;
5679#line 630
5680  kfree(__cil_tmp86);
5681#line 631
5682  put_mtd_device(mtd);
5683  }
5684#line 632
5685  if (err != 0) {
5686    {
5687#line 633
5688    printk("<6>mtd_pagetest: error %d occurred\n", err);
5689    }
5690  } else {
5691
5692  }
5693  {
5694#line 634
5695  printk("<6>=================================================\n");
5696  }
5697#line 635
5698  return (err);
5699}
5700}
5701#line 639 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5702static void mtd_pagetest_exit(void) 
5703{ 
5704
5705  {
5706#line 641
5707  return;
5708}
5709}
5710#line 665
5711extern void ldv_check_final_state(void) ;
5712#line 671
5713extern void ldv_initialize(void) ;
5714#line 674
5715extern int __VERIFIER_nondet_int(void) ;
5716#line 677 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5717int LDV_IN_INTERRUPT  ;
5718#line 680 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5719void main(void) 
5720{ int tmp ;
5721  int tmp___0 ;
5722  int tmp___1 ;
5723
5724  {
5725  {
5726#line 692
5727  LDV_IN_INTERRUPT = 1;
5728#line 701
5729  ldv_initialize();
5730#line 709
5731  tmp = mtd_pagetest_init();
5732  }
5733#line 709
5734  if (tmp != 0) {
5735#line 710
5736    goto ldv_final;
5737  } else {
5738
5739  }
5740#line 712
5741  goto ldv_18829;
5742  ldv_18828: 
5743  {
5744#line 715
5745  tmp___0 = __VERIFIER_nondet_int();
5746  }
5747  {
5748#line 717
5749  goto switch_default;
5750#line 715
5751  if (0) {
5752    switch_default: /* CIL Label */ ;
5753#line 717
5754    goto ldv_18827;
5755  } else {
5756    switch_break: /* CIL Label */ ;
5757  }
5758  }
5759  ldv_18827: ;
5760  ldv_18829: 
5761  {
5762#line 712
5763  tmp___1 = __VERIFIER_nondet_int();
5764  }
5765#line 712
5766  if (tmp___1 != 0) {
5767#line 713
5768    goto ldv_18828;
5769  } else {
5770#line 715
5771    goto ldv_18830;
5772  }
5773  ldv_18830: ;
5774  {
5775#line 731
5776  mtd_pagetest_exit();
5777  }
5778  ldv_final: 
5779  {
5780#line 734
5781  ldv_check_final_state();
5782  }
5783#line 737
5784  return;
5785}
5786}
5787#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
5788void ldv_blast_assert(void) 
5789{ 
5790
5791  {
5792  ERROR: ;
5793#line 6
5794  goto ERROR;
5795}
5796}
5797#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
5798extern int __VERIFIER_nondet_int(void) ;
5799#line 758 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5800int ldv_spin  =    0;
5801#line 762 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5802void ldv_check_alloc_flags(gfp_t flags ) 
5803{ 
5804
5805  {
5806#line 765
5807  if (ldv_spin != 0) {
5808#line 765
5809    if (flags != 32U) {
5810      {
5811#line 765
5812      ldv_blast_assert();
5813      }
5814    } else {
5815
5816    }
5817  } else {
5818
5819  }
5820#line 768
5821  return;
5822}
5823}
5824#line 768
5825extern struct page *ldv_some_page(void) ;
5826#line 771 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5827struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
5828{ struct page *tmp ;
5829
5830  {
5831#line 774
5832  if (ldv_spin != 0) {
5833#line 774
5834    if (flags != 32U) {
5835      {
5836#line 774
5837      ldv_blast_assert();
5838      }
5839    } else {
5840
5841    }
5842  } else {
5843
5844  }
5845  {
5846#line 776
5847  tmp = ldv_some_page();
5848  }
5849#line 776
5850  return (tmp);
5851}
5852}
5853#line 780 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5854void ldv_check_alloc_nonatomic(void) 
5855{ 
5856
5857  {
5858#line 783
5859  if (ldv_spin != 0) {
5860    {
5861#line 783
5862    ldv_blast_assert();
5863    }
5864  } else {
5865
5866  }
5867#line 786
5868  return;
5869}
5870}
5871#line 787 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5872void ldv_spin_lock(void) 
5873{ 
5874
5875  {
5876#line 790
5877  ldv_spin = 1;
5878#line 791
5879  return;
5880}
5881}
5882#line 794 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5883void ldv_spin_unlock(void) 
5884{ 
5885
5886  {
5887#line 797
5888  ldv_spin = 0;
5889#line 798
5890  return;
5891}
5892}
5893#line 801 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5894int ldv_spin_trylock(void) 
5895{ int is_lock ;
5896
5897  {
5898  {
5899#line 806
5900  is_lock = __VERIFIER_nondet_int();
5901  }
5902#line 808
5903  if (is_lock != 0) {
5904#line 811
5905    return (0);
5906  } else {
5907#line 816
5908    ldv_spin = 1;
5909#line 818
5910    return (1);
5911  }
5912}
5913}
5914#line 940 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5915__inline static void *kmalloc(size_t size , gfp_t flags ) 
5916{ 
5917
5918  {
5919  {
5920#line 946
5921  ldv_check_alloc_flags(flags);
5922#line 948
5923  ldv_kmalloc_12(size, flags);
5924  }
5925#line 949
5926  return ((void *)0);
5927}
5928}
5929#line 985 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5930void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
5931{ 
5932
5933  {
5934  {
5935#line 991
5936  ldv_check_alloc_flags(ldv_func_arg2);
5937#line 993
5938  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
5939  }
5940#line 994
5941  return ((void *)0);
5942}
5943}
5944#line 996 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11604/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/tests/mtd_pagetest.c.p"
5945__inline static void *kzalloc(size_t size , gfp_t flags ) 
5946{ void *tmp ;
5947
5948  {
5949  {
5950#line 1002
5951  ldv_check_alloc_flags(flags);
5952#line 1003
5953  tmp = __VERIFIER_nondet_pointer();
5954  }
5955#line 1003
5956  return (tmp);
5957}
5958}