Showing error 1109

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--ubi--gluebi.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 5104
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 93 "include/linux/capability.h"
1123struct kernel_cap_struct {
1124   __u32 cap[2U] ;
1125};
1126#line 96 "include/linux/capability.h"
1127typedef struct kernel_cap_struct kernel_cap_t;
1128#line 105
1129struct user_namespace;
1130#line 105
1131struct user_namespace;
1132#line 554
1133struct prio_tree_node;
1134#line 554 "include/linux/capability.h"
1135struct raw_prio_tree_node {
1136   struct prio_tree_node *left ;
1137   struct prio_tree_node *right ;
1138   struct prio_tree_node *parent ;
1139};
1140#line 19 "include/linux/prio_tree.h"
1141struct prio_tree_node {
1142   struct prio_tree_node *left ;
1143   struct prio_tree_node *right ;
1144   struct prio_tree_node *parent ;
1145   unsigned long start ;
1146   unsigned long last ;
1147};
1148#line 116
1149struct address_space;
1150#line 116
1151struct address_space;
1152#line 117 "include/linux/prio_tree.h"
1153union __anonunion_ldv_14345_137 {
1154   unsigned long index ;
1155   void *freelist ;
1156};
1157#line 117 "include/linux/prio_tree.h"
1158struct __anonstruct_ldv_14355_141 {
1159   unsigned short inuse ;
1160   unsigned short objects : 15 ;
1161   unsigned char frozen : 1 ;
1162};
1163#line 117 "include/linux/prio_tree.h"
1164union __anonunion_ldv_14356_140 {
1165   atomic_t _mapcount ;
1166   struct __anonstruct_ldv_14355_141 ldv_14355 ;
1167};
1168#line 117 "include/linux/prio_tree.h"
1169struct __anonstruct_ldv_14358_139 {
1170   union __anonunion_ldv_14356_140 ldv_14356 ;
1171   atomic_t _count ;
1172};
1173#line 117 "include/linux/prio_tree.h"
1174union __anonunion_ldv_14359_138 {
1175   unsigned long counters ;
1176   struct __anonstruct_ldv_14358_139 ldv_14358 ;
1177};
1178#line 117 "include/linux/prio_tree.h"
1179struct __anonstruct_ldv_14360_136 {
1180   union __anonunion_ldv_14345_137 ldv_14345 ;
1181   union __anonunion_ldv_14359_138 ldv_14359 ;
1182};
1183#line 117 "include/linux/prio_tree.h"
1184struct __anonstruct_ldv_14367_143 {
1185   struct page *next ;
1186   int pages ;
1187   int pobjects ;
1188};
1189#line 117 "include/linux/prio_tree.h"
1190union __anonunion_ldv_14368_142 {
1191   struct list_head lru ;
1192   struct __anonstruct_ldv_14367_143 ldv_14367 ;
1193};
1194#line 117 "include/linux/prio_tree.h"
1195union __anonunion_ldv_14373_144 {
1196   unsigned long private ;
1197   struct kmem_cache *slab ;
1198   struct page *first_page ;
1199};
1200#line 117 "include/linux/prio_tree.h"
1201struct page {
1202   unsigned long flags ;
1203   struct address_space *mapping ;
1204   struct __anonstruct_ldv_14360_136 ldv_14360 ;
1205   union __anonunion_ldv_14368_142 ldv_14368 ;
1206   union __anonunion_ldv_14373_144 ldv_14373 ;
1207   unsigned long debug_flags ;
1208};
1209#line 192 "include/linux/mm_types.h"
1210struct __anonstruct_vm_set_146 {
1211   struct list_head list ;
1212   void *parent ;
1213   struct vm_area_struct *head ;
1214};
1215#line 192 "include/linux/mm_types.h"
1216union __anonunion_shared_145 {
1217   struct __anonstruct_vm_set_146 vm_set ;
1218   struct raw_prio_tree_node prio_tree_node ;
1219};
1220#line 192
1221struct anon_vma;
1222#line 192
1223struct vm_operations_struct;
1224#line 192
1225struct mempolicy;
1226#line 192 "include/linux/mm_types.h"
1227struct vm_area_struct {
1228   struct mm_struct *vm_mm ;
1229   unsigned long vm_start ;
1230   unsigned long vm_end ;
1231   struct vm_area_struct *vm_next ;
1232   struct vm_area_struct *vm_prev ;
1233   pgprot_t vm_page_prot ;
1234   unsigned long vm_flags ;
1235   struct rb_node vm_rb ;
1236   union __anonunion_shared_145 shared ;
1237   struct list_head anon_vma_chain ;
1238   struct anon_vma *anon_vma ;
1239   struct vm_operations_struct  const  *vm_ops ;
1240   unsigned long vm_pgoff ;
1241   struct file *vm_file ;
1242   void *vm_private_data ;
1243   struct mempolicy *vm_policy ;
1244};
1245#line 255 "include/linux/mm_types.h"
1246struct core_thread {
1247   struct task_struct *task ;
1248   struct core_thread *next ;
1249};
1250#line 261 "include/linux/mm_types.h"
1251struct core_state {
1252   atomic_t nr_threads ;
1253   struct core_thread dumper ;
1254   struct completion startup ;
1255};
1256#line 274 "include/linux/mm_types.h"
1257struct mm_rss_stat {
1258   atomic_long_t count[3U] ;
1259};
1260#line 287
1261struct linux_binfmt;
1262#line 287
1263struct mmu_notifier_mm;
1264#line 287 "include/linux/mm_types.h"
1265struct mm_struct {
1266   struct vm_area_struct *mmap ;
1267   struct rb_root mm_rb ;
1268   struct vm_area_struct *mmap_cache ;
1269   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
1270                                      unsigned long  , unsigned long  ) ;
1271   void (*unmap_area)(struct mm_struct * , unsigned long  ) ;
1272   unsigned long mmap_base ;
1273   unsigned long task_size ;
1274   unsigned long cached_hole_size ;
1275   unsigned long free_area_cache ;
1276   pgd_t *pgd ;
1277   atomic_t mm_users ;
1278   atomic_t mm_count ;
1279   int map_count ;
1280   spinlock_t page_table_lock ;
1281   struct rw_semaphore mmap_sem ;
1282   struct list_head mmlist ;
1283   unsigned long hiwater_rss ;
1284   unsigned long hiwater_vm ;
1285   unsigned long total_vm ;
1286   unsigned long locked_vm ;
1287   unsigned long pinned_vm ;
1288   unsigned long shared_vm ;
1289   unsigned long exec_vm ;
1290   unsigned long stack_vm ;
1291   unsigned long reserved_vm ;
1292   unsigned long def_flags ;
1293   unsigned long nr_ptes ;
1294   unsigned long start_code ;
1295   unsigned long end_code ;
1296   unsigned long start_data ;
1297   unsigned long end_data ;
1298   unsigned long start_brk ;
1299   unsigned long brk ;
1300   unsigned long start_stack ;
1301   unsigned long arg_start ;
1302   unsigned long arg_end ;
1303   unsigned long env_start ;
1304   unsigned long env_end ;
1305   unsigned long saved_auxv[44U] ;
1306   struct mm_rss_stat rss_stat ;
1307   struct linux_binfmt *binfmt ;
1308   cpumask_var_t cpu_vm_mask_var ;
1309   mm_context_t context ;
1310   unsigned int faultstamp ;
1311   unsigned int token_priority ;
1312   unsigned int last_interval ;
1313   unsigned long flags ;
1314   struct core_state *core_state ;
1315   spinlock_t ioctx_lock ;
1316   struct hlist_head ioctx_list ;
1317   struct task_struct *owner ;
1318   struct file *exe_file ;
1319   unsigned long num_exe_file_vmas ;
1320   struct mmu_notifier_mm *mmu_notifier_mm ;
1321   pgtable_t pmd_huge_pte ;
1322   struct cpumask cpumask_allocation ;
1323};
1324#line 7 "include/asm-generic/cputime.h"
1325typedef unsigned long cputime_t;
1326#line 98 "include/linux/sem.h"
1327struct sem_undo_list;
1328#line 98 "include/linux/sem.h"
1329struct sysv_sem {
1330   struct sem_undo_list *undo_list ;
1331};
1332#line 107
1333struct siginfo;
1334#line 107
1335struct siginfo;
1336#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1337struct __anonstruct_sigset_t_147 {
1338   unsigned long sig[1U] ;
1339};
1340#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1341typedef struct __anonstruct_sigset_t_147 sigset_t;
1342#line 17 "include/asm-generic/signal-defs.h"
1343typedef void __signalfn_t(int  );
1344#line 18 "include/asm-generic/signal-defs.h"
1345typedef __signalfn_t *__sighandler_t;
1346#line 20 "include/asm-generic/signal-defs.h"
1347typedef void __restorefn_t(void);
1348#line 21 "include/asm-generic/signal-defs.h"
1349typedef __restorefn_t *__sigrestore_t;
1350#line 126 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1351struct sigaction {
1352   __sighandler_t sa_handler ;
1353   unsigned long sa_flags ;
1354   __sigrestore_t sa_restorer ;
1355   sigset_t sa_mask ;
1356};
1357#line 173 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1358struct k_sigaction {
1359   struct sigaction sa ;
1360};
1361#line 185 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1362union sigval {
1363   int sival_int ;
1364   void *sival_ptr ;
1365};
1366#line 10 "include/asm-generic/siginfo.h"
1367typedef union sigval sigval_t;
1368#line 11 "include/asm-generic/siginfo.h"
1369struct __anonstruct__kill_149 {
1370   __kernel_pid_t _pid ;
1371   __kernel_uid32_t _uid ;
1372};
1373#line 11 "include/asm-generic/siginfo.h"
1374struct __anonstruct__timer_150 {
1375   __kernel_timer_t _tid ;
1376   int _overrun ;
1377   char _pad[0U] ;
1378   sigval_t _sigval ;
1379   int _sys_private ;
1380};
1381#line 11 "include/asm-generic/siginfo.h"
1382struct __anonstruct__rt_151 {
1383   __kernel_pid_t _pid ;
1384   __kernel_uid32_t _uid ;
1385   sigval_t _sigval ;
1386};
1387#line 11 "include/asm-generic/siginfo.h"
1388struct __anonstruct__sigchld_152 {
1389   __kernel_pid_t _pid ;
1390   __kernel_uid32_t _uid ;
1391   int _status ;
1392   __kernel_clock_t _utime ;
1393   __kernel_clock_t _stime ;
1394};
1395#line 11 "include/asm-generic/siginfo.h"
1396struct __anonstruct__sigfault_153 {
1397   void *_addr ;
1398   short _addr_lsb ;
1399};
1400#line 11 "include/asm-generic/siginfo.h"
1401struct __anonstruct__sigpoll_154 {
1402   long _band ;
1403   int _fd ;
1404};
1405#line 11 "include/asm-generic/siginfo.h"
1406union __anonunion__sifields_148 {
1407   int _pad[28U] ;
1408   struct __anonstruct__kill_149 _kill ;
1409   struct __anonstruct__timer_150 _timer ;
1410   struct __anonstruct__rt_151 _rt ;
1411   struct __anonstruct__sigchld_152 _sigchld ;
1412   struct __anonstruct__sigfault_153 _sigfault ;
1413   struct __anonstruct__sigpoll_154 _sigpoll ;
1414};
1415#line 11 "include/asm-generic/siginfo.h"
1416struct siginfo {
1417   int si_signo ;
1418   int si_errno ;
1419   int si_code ;
1420   union __anonunion__sifields_148 _sifields ;
1421};
1422#line 102 "include/asm-generic/siginfo.h"
1423typedef struct siginfo siginfo_t;
1424#line 14 "include/linux/signal.h"
1425struct user_struct;
1426#line 24 "include/linux/signal.h"
1427struct sigpending {
1428   struct list_head list ;
1429   sigset_t signal ;
1430};
1431#line 395
1432struct pid_namespace;
1433#line 395 "include/linux/signal.h"
1434struct upid {
1435   int nr ;
1436   struct pid_namespace *ns ;
1437   struct hlist_node pid_chain ;
1438};
1439#line 56 "include/linux/pid.h"
1440struct pid {
1441   atomic_t count ;
1442   unsigned int level ;
1443   struct hlist_head tasks[3U] ;
1444   struct rcu_head rcu ;
1445   struct upid numbers[1U] ;
1446};
1447#line 68 "include/linux/pid.h"
1448struct pid_link {
1449   struct hlist_node node ;
1450   struct pid *pid ;
1451};
1452#line 10 "include/linux/seccomp.h"
1453struct __anonstruct_seccomp_t_157 {
1454   int mode ;
1455};
1456#line 10 "include/linux/seccomp.h"
1457typedef struct __anonstruct_seccomp_t_157 seccomp_t;
1458#line 427 "include/linux/rculist.h"
1459struct plist_head {
1460   struct list_head node_list ;
1461};
1462#line 84 "include/linux/plist.h"
1463struct plist_node {
1464   int prio ;
1465   struct list_head prio_list ;
1466   struct list_head node_list ;
1467};
1468#line 38 "include/linux/rtmutex.h"
1469struct rt_mutex_waiter;
1470#line 38
1471struct rt_mutex_waiter;
1472#line 41 "include/linux/resource.h"
1473struct rlimit {
1474   unsigned long rlim_cur ;
1475   unsigned long rlim_max ;
1476};
1477#line 85 "include/linux/resource.h"
1478struct timerqueue_node {
1479   struct rb_node node ;
1480   ktime_t expires ;
1481};
1482#line 12 "include/linux/timerqueue.h"
1483struct timerqueue_head {
1484   struct rb_root head ;
1485   struct timerqueue_node *next ;
1486};
1487#line 50
1488struct hrtimer_clock_base;
1489#line 50
1490struct hrtimer_clock_base;
1491#line 51
1492struct hrtimer_cpu_base;
1493#line 51
1494struct hrtimer_cpu_base;
1495#line 60
1496enum hrtimer_restart {
1497    HRTIMER_NORESTART = 0,
1498    HRTIMER_RESTART = 1
1499} ;
1500#line 65 "include/linux/timerqueue.h"
1501struct hrtimer {
1502   struct timerqueue_node node ;
1503   ktime_t _softexpires ;
1504   enum hrtimer_restart (*function)(struct hrtimer * ) ;
1505   struct hrtimer_clock_base *base ;
1506   unsigned long state ;
1507   int start_pid ;
1508   void *start_site ;
1509   char start_comm[16U] ;
1510};
1511#line 132 "include/linux/hrtimer.h"
1512struct hrtimer_clock_base {
1513   struct hrtimer_cpu_base *cpu_base ;
1514   int index ;
1515   clockid_t clockid ;
1516   struct timerqueue_head active ;
1517   ktime_t resolution ;
1518   ktime_t (*get_time)(void) ;
1519   ktime_t softirq_time ;
1520   ktime_t offset ;
1521};
1522#line 162 "include/linux/hrtimer.h"
1523struct hrtimer_cpu_base {
1524   raw_spinlock_t lock ;
1525   unsigned long active_bases ;
1526   ktime_t expires_next ;
1527   int hres_active ;
1528   int hang_detected ;
1529   unsigned long nr_events ;
1530   unsigned long nr_retries ;
1531   unsigned long nr_hangs ;
1532   ktime_t max_hang_time ;
1533   struct hrtimer_clock_base clock_base[3U] ;
1534};
1535#line 452 "include/linux/hrtimer.h"
1536struct task_io_accounting {
1537   u64 rchar ;
1538   u64 wchar ;
1539   u64 syscr ;
1540   u64 syscw ;
1541   u64 read_bytes ;
1542   u64 write_bytes ;
1543   u64 cancelled_write_bytes ;
1544};
1545#line 45 "include/linux/task_io_accounting.h"
1546struct latency_record {
1547   unsigned long backtrace[12U] ;
1548   unsigned int count ;
1549   unsigned long time ;
1550   unsigned long max ;
1551};
1552#line 29 "include/linux/key.h"
1553typedef int32_t key_serial_t;
1554#line 32 "include/linux/key.h"
1555typedef uint32_t key_perm_t;
1556#line 33
1557struct key;
1558#line 33
1559struct key;
1560#line 34
1561struct signal_struct;
1562#line 34
1563struct signal_struct;
1564#line 35
1565struct key_type;
1566#line 35
1567struct key_type;
1568#line 37
1569struct keyring_list;
1570#line 37
1571struct keyring_list;
1572#line 115
1573struct key_user;
1574#line 115 "include/linux/key.h"
1575union __anonunion_ldv_15609_158 {
1576   time_t expiry ;
1577   time_t revoked_at ;
1578};
1579#line 115 "include/linux/key.h"
1580union __anonunion_type_data_159 {
1581   struct list_head link ;
1582   unsigned long x[2U] ;
1583   void *p[2U] ;
1584   int reject_error ;
1585};
1586#line 115 "include/linux/key.h"
1587union __anonunion_payload_160 {
1588   unsigned long value ;
1589   void *rcudata ;
1590   void *data ;
1591   struct keyring_list *subscriptions ;
1592};
1593#line 115 "include/linux/key.h"
1594struct key {
1595   atomic_t usage ;
1596   key_serial_t serial ;
1597   struct rb_node serial_node ;
1598   struct key_type *type ;
1599   struct rw_semaphore sem ;
1600   struct key_user *user ;
1601   void *security ;
1602   union __anonunion_ldv_15609_158 ldv_15609 ;
1603   uid_t uid ;
1604   gid_t gid ;
1605   key_perm_t perm ;
1606   unsigned short quotalen ;
1607   unsigned short datalen ;
1608   unsigned long flags ;
1609   char *description ;
1610   union __anonunion_type_data_159 type_data ;
1611   union __anonunion_payload_160 payload ;
1612};
1613#line 316
1614struct audit_context;
1615#line 316
1616struct audit_context;
1617#line 28 "include/linux/selinux.h"
1618struct group_info {
1619   atomic_t usage ;
1620   int ngroups ;
1621   int nblocks ;
1622   gid_t small_block[32U] ;
1623   gid_t *blocks[0U] ;
1624};
1625#line 77 "include/linux/cred.h"
1626struct thread_group_cred {
1627   atomic_t usage ;
1628   pid_t tgid ;
1629   spinlock_t lock ;
1630   struct key *session_keyring ;
1631   struct key *process_keyring ;
1632   struct rcu_head rcu ;
1633};
1634#line 91 "include/linux/cred.h"
1635struct cred {
1636   atomic_t usage ;
1637   atomic_t subscribers ;
1638   void *put_addr ;
1639   unsigned int magic ;
1640   uid_t uid ;
1641   gid_t gid ;
1642   uid_t suid ;
1643   gid_t sgid ;
1644   uid_t euid ;
1645   gid_t egid ;
1646   uid_t fsuid ;
1647   gid_t fsgid ;
1648   unsigned int securebits ;
1649   kernel_cap_t cap_inheritable ;
1650   kernel_cap_t cap_permitted ;
1651   kernel_cap_t cap_effective ;
1652   kernel_cap_t cap_bset ;
1653   unsigned char jit_keyring ;
1654   struct key *thread_keyring ;
1655   struct key *request_key_auth ;
1656   struct thread_group_cred *tgcred ;
1657   void *security ;
1658   struct user_struct *user ;
1659   struct user_namespace *user_ns ;
1660   struct group_info *group_info ;
1661   struct rcu_head rcu ;
1662};
1663#line 264
1664struct llist_node;
1665#line 64 "include/linux/llist.h"
1666struct llist_node {
1667   struct llist_node *next ;
1668};
1669#line 185
1670struct futex_pi_state;
1671#line 185
1672struct futex_pi_state;
1673#line 186
1674struct robust_list_head;
1675#line 186
1676struct robust_list_head;
1677#line 187
1678struct bio_list;
1679#line 187
1680struct bio_list;
1681#line 188
1682struct fs_struct;
1683#line 188
1684struct fs_struct;
1685#line 189
1686struct perf_event_context;
1687#line 189
1688struct perf_event_context;
1689#line 190
1690struct blk_plug;
1691#line 190
1692struct blk_plug;
1693#line 149 "include/linux/sched.h"
1694struct cfs_rq;
1695#line 149
1696struct cfs_rq;
1697#line 21 "include/linux/uio.h"
1698struct kvec {
1699   void *iov_base ;
1700   size_t iov_len ;
1701};
1702#line 406 "include/linux/sched.h"
1703struct sighand_struct {
1704   atomic_t count ;
1705   struct k_sigaction action[64U] ;
1706   spinlock_t siglock ;
1707   wait_queue_head_t signalfd_wqh ;
1708};
1709#line 449 "include/linux/sched.h"
1710struct pacct_struct {
1711   int ac_flag ;
1712   long ac_exitcode ;
1713   unsigned long ac_mem ;
1714   cputime_t ac_utime ;
1715   cputime_t ac_stime ;
1716   unsigned long ac_minflt ;
1717   unsigned long ac_majflt ;
1718};
1719#line 457 "include/linux/sched.h"
1720struct cpu_itimer {
1721   cputime_t expires ;
1722   cputime_t incr ;
1723   u32 error ;
1724   u32 incr_error ;
1725};
1726#line 464 "include/linux/sched.h"
1727struct task_cputime {
1728   cputime_t utime ;
1729   cputime_t stime ;
1730   unsigned long long sum_exec_runtime ;
1731};
1732#line 481 "include/linux/sched.h"
1733struct thread_group_cputimer {
1734   struct task_cputime cputime ;
1735   int running ;
1736   raw_spinlock_t lock ;
1737};
1738#line 517
1739struct autogroup;
1740#line 517
1741struct autogroup;
1742#line 518
1743struct tty_struct;
1744#line 518
1745struct taskstats;
1746#line 518
1747struct tty_audit_buf;
1748#line 518 "include/linux/sched.h"
1749struct signal_struct {
1750   atomic_t sigcnt ;
1751   atomic_t live ;
1752   int nr_threads ;
1753   wait_queue_head_t wait_chldexit ;
1754   struct task_struct *curr_target ;
1755   struct sigpending shared_pending ;
1756   int group_exit_code ;
1757   int notify_count ;
1758   struct task_struct *group_exit_task ;
1759   int group_stop_count ;
1760   unsigned int flags ;
1761   unsigned char is_child_subreaper : 1 ;
1762   unsigned char has_child_subreaper : 1 ;
1763   struct list_head posix_timers ;
1764   struct hrtimer real_timer ;
1765   struct pid *leader_pid ;
1766   ktime_t it_real_incr ;
1767   struct cpu_itimer it[2U] ;
1768   struct thread_group_cputimer cputimer ;
1769   struct task_cputime cputime_expires ;
1770   struct list_head cpu_timers[3U] ;
1771   struct pid *tty_old_pgrp ;
1772   int leader ;
1773   struct tty_struct *tty ;
1774   struct autogroup *autogroup ;
1775   cputime_t utime ;
1776   cputime_t stime ;
1777   cputime_t cutime ;
1778   cputime_t cstime ;
1779   cputime_t gtime ;
1780   cputime_t cgtime ;
1781   cputime_t prev_utime ;
1782   cputime_t prev_stime ;
1783   unsigned long nvcsw ;
1784   unsigned long nivcsw ;
1785   unsigned long cnvcsw ;
1786   unsigned long cnivcsw ;
1787   unsigned long min_flt ;
1788   unsigned long maj_flt ;
1789   unsigned long cmin_flt ;
1790   unsigned long cmaj_flt ;
1791   unsigned long inblock ;
1792   unsigned long oublock ;
1793   unsigned long cinblock ;
1794   unsigned long coublock ;
1795   unsigned long maxrss ;
1796   unsigned long cmaxrss ;
1797   struct task_io_accounting ioac ;
1798   unsigned long long sum_sched_runtime ;
1799   struct rlimit rlim[16U] ;
1800   struct pacct_struct pacct ;
1801   struct taskstats *stats ;
1802   unsigned int audit_tty ;
1803   struct tty_audit_buf *tty_audit_buf ;
1804   struct rw_semaphore group_rwsem ;
1805   int oom_adj ;
1806   int oom_score_adj ;
1807   int oom_score_adj_min ;
1808   struct mutex cred_guard_mutex ;
1809};
1810#line 699 "include/linux/sched.h"
1811struct user_struct {
1812   atomic_t __count ;
1813   atomic_t processes ;
1814   atomic_t files ;
1815   atomic_t sigpending ;
1816   atomic_t inotify_watches ;
1817   atomic_t inotify_devs ;
1818   atomic_t fanotify_listeners ;
1819   atomic_long_t epoll_watches ;
1820   unsigned long mq_bytes ;
1821   unsigned long locked_shm ;
1822   struct key *uid_keyring ;
1823   struct key *session_keyring ;
1824   struct hlist_node uidhash_node ;
1825   uid_t uid ;
1826   struct user_namespace *user_ns ;
1827   atomic_long_t locked_vm ;
1828};
1829#line 744
1830struct backing_dev_info;
1831#line 744
1832struct backing_dev_info;
1833#line 745
1834struct reclaim_state;
1835#line 745
1836struct reclaim_state;
1837#line 746 "include/linux/sched.h"
1838struct sched_info {
1839   unsigned long pcount ;
1840   unsigned long long run_delay ;
1841   unsigned long long last_arrival ;
1842   unsigned long long last_queued ;
1843};
1844#line 760 "include/linux/sched.h"
1845struct task_delay_info {
1846   spinlock_t lock ;
1847   unsigned int flags ;
1848   struct timespec blkio_start ;
1849   struct timespec blkio_end ;
1850   u64 blkio_delay ;
1851   u64 swapin_delay ;
1852   u32 blkio_count ;
1853   u32 swapin_count ;
1854   struct timespec freepages_start ;
1855   struct timespec freepages_end ;
1856   u64 freepages_delay ;
1857   u32 freepages_count ;
1858};
1859#line 1069
1860struct io_context;
1861#line 1069
1862struct io_context;
1863#line 1097
1864struct pipe_inode_info;
1865#line 1097
1866struct pipe_inode_info;
1867#line 1099
1868struct rq;
1869#line 1099
1870struct rq;
1871#line 1100 "include/linux/sched.h"
1872struct sched_class {
1873   struct sched_class  const  *next ;
1874   void (*enqueue_task)(struct rq * , struct task_struct * , int  ) ;
1875   void (*dequeue_task)(struct rq * , struct task_struct * , int  ) ;
1876   void (*yield_task)(struct rq * ) ;
1877   bool (*yield_to_task)(struct rq * , struct task_struct * , bool  ) ;
1878   void (*check_preempt_curr)(struct rq * , struct task_struct * , int  ) ;
1879   struct task_struct *(*pick_next_task)(struct rq * ) ;
1880   void (*put_prev_task)(struct rq * , struct task_struct * ) ;
1881   int (*select_task_rq)(struct task_struct * , int  , int  ) ;
1882   void (*pre_schedule)(struct rq * , struct task_struct * ) ;
1883   void (*post_schedule)(struct rq * ) ;
1884   void (*task_waking)(struct task_struct * ) ;
1885   void (*task_woken)(struct rq * , struct task_struct * ) ;
1886   void (*set_cpus_allowed)(struct task_struct * , struct cpumask  const  * ) ;
1887   void (*rq_online)(struct rq * ) ;
1888   void (*rq_offline)(struct rq * ) ;
1889   void (*set_curr_task)(struct rq * ) ;
1890   void (*task_tick)(struct rq * , struct task_struct * , int  ) ;
1891   void (*task_fork)(struct task_struct * ) ;
1892   void (*switched_from)(struct rq * , struct task_struct * ) ;
1893   void (*switched_to)(struct rq * , struct task_struct * ) ;
1894   void (*prio_changed)(struct rq * , struct task_struct * , int  ) ;
1895   unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
1896   void (*task_move_group)(struct task_struct * , int  ) ;
1897};
1898#line 1165 "include/linux/sched.h"
1899struct load_weight {
1900   unsigned long weight ;
1901   unsigned long inv_weight ;
1902};
1903#line 1170 "include/linux/sched.h"
1904struct sched_statistics {
1905   u64 wait_start ;
1906   u64 wait_max ;
1907   u64 wait_count ;
1908   u64 wait_sum ;
1909   u64 iowait_count ;
1910   u64 iowait_sum ;
1911   u64 sleep_start ;
1912   u64 sleep_max ;
1913   s64 sum_sleep_runtime ;
1914   u64 block_start ;
1915   u64 block_max ;
1916   u64 exec_max ;
1917   u64 slice_max ;
1918   u64 nr_migrations_cold ;
1919   u64 nr_failed_migrations_affine ;
1920   u64 nr_failed_migrations_running ;
1921   u64 nr_failed_migrations_hot ;
1922   u64 nr_forced_migrations ;
1923   u64 nr_wakeups ;
1924   u64 nr_wakeups_sync ;
1925   u64 nr_wakeups_migrate ;
1926   u64 nr_wakeups_local ;
1927   u64 nr_wakeups_remote ;
1928   u64 nr_wakeups_affine ;
1929   u64 nr_wakeups_affine_attempts ;
1930   u64 nr_wakeups_passive ;
1931   u64 nr_wakeups_idle ;
1932};
1933#line 1205 "include/linux/sched.h"
1934struct sched_entity {
1935   struct load_weight load ;
1936   struct rb_node run_node ;
1937   struct list_head group_node ;
1938   unsigned int on_rq ;
1939   u64 exec_start ;
1940   u64 sum_exec_runtime ;
1941   u64 vruntime ;
1942   u64 prev_sum_exec_runtime ;
1943   u64 nr_migrations ;
1944   struct sched_statistics statistics ;
1945   struct sched_entity *parent ;
1946   struct cfs_rq *cfs_rq ;
1947   struct cfs_rq *my_q ;
1948};
1949#line 1231
1950struct rt_rq;
1951#line 1231 "include/linux/sched.h"
1952struct sched_rt_entity {
1953   struct list_head run_list ;
1954   unsigned long timeout ;
1955   unsigned int time_slice ;
1956   int nr_cpus_allowed ;
1957   struct sched_rt_entity *back ;
1958   struct sched_rt_entity *parent ;
1959   struct rt_rq *rt_rq ;
1960   struct rt_rq *my_q ;
1961};
1962#line 1255
1963struct mem_cgroup;
1964#line 1255 "include/linux/sched.h"
1965struct memcg_batch_info {
1966   int do_batch ;
1967   struct mem_cgroup *memcg ;
1968   unsigned long nr_pages ;
1969   unsigned long memsw_nr_pages ;
1970};
1971#line 1616
1972struct files_struct;
1973#line 1616
1974struct css_set;
1975#line 1616
1976struct compat_robust_list_head;
1977#line 1616 "include/linux/sched.h"
1978struct task_struct {
1979   long volatile   state ;
1980   void *stack ;
1981   atomic_t usage ;
1982   unsigned int flags ;
1983   unsigned int ptrace ;
1984   struct llist_node wake_entry ;
1985   int on_cpu ;
1986   int on_rq ;
1987   int prio ;
1988   int static_prio ;
1989   int normal_prio ;
1990   unsigned int rt_priority ;
1991   struct sched_class  const  *sched_class ;
1992   struct sched_entity se ;
1993   struct sched_rt_entity rt ;
1994   struct hlist_head preempt_notifiers ;
1995   unsigned char fpu_counter ;
1996   unsigned int policy ;
1997   cpumask_t cpus_allowed ;
1998   struct sched_info sched_info ;
1999   struct list_head tasks ;
2000   struct plist_node pushable_tasks ;
2001   struct mm_struct *mm ;
2002   struct mm_struct *active_mm ;
2003   unsigned char brk_randomized : 1 ;
2004   int exit_state ;
2005   int exit_code ;
2006   int exit_signal ;
2007   int pdeath_signal ;
2008   unsigned int jobctl ;
2009   unsigned int personality ;
2010   unsigned char did_exec : 1 ;
2011   unsigned char in_execve : 1 ;
2012   unsigned char in_iowait : 1 ;
2013   unsigned char sched_reset_on_fork : 1 ;
2014   unsigned char sched_contributes_to_load : 1 ;
2015   unsigned char irq_thread : 1 ;
2016   pid_t pid ;
2017   pid_t tgid ;
2018   unsigned long stack_canary ;
2019   struct task_struct *real_parent ;
2020   struct task_struct *parent ;
2021   struct list_head children ;
2022   struct list_head sibling ;
2023   struct task_struct *group_leader ;
2024   struct list_head ptraced ;
2025   struct list_head ptrace_entry ;
2026   struct pid_link pids[3U] ;
2027   struct list_head thread_group ;
2028   struct completion *vfork_done ;
2029   int *set_child_tid ;
2030   int *clear_child_tid ;
2031   cputime_t utime ;
2032   cputime_t stime ;
2033   cputime_t utimescaled ;
2034   cputime_t stimescaled ;
2035   cputime_t gtime ;
2036   cputime_t prev_utime ;
2037   cputime_t prev_stime ;
2038   unsigned long nvcsw ;
2039   unsigned long nivcsw ;
2040   struct timespec start_time ;
2041   struct timespec real_start_time ;
2042   unsigned long min_flt ;
2043   unsigned long maj_flt ;
2044   struct task_cputime cputime_expires ;
2045   struct list_head cpu_timers[3U] ;
2046   struct cred  const  *real_cred ;
2047   struct cred  const  *cred ;
2048   struct cred *replacement_session_keyring ;
2049   char comm[16U] ;
2050   int link_count ;
2051   int total_link_count ;
2052   struct sysv_sem sysvsem ;
2053   unsigned long last_switch_count ;
2054   struct thread_struct thread ;
2055   struct fs_struct *fs ;
2056   struct files_struct *files ;
2057   struct nsproxy *nsproxy ;
2058   struct signal_struct *signal ;
2059   struct sighand_struct *sighand ;
2060   sigset_t blocked ;
2061   sigset_t real_blocked ;
2062   sigset_t saved_sigmask ;
2063   struct sigpending pending ;
2064   unsigned long sas_ss_sp ;
2065   size_t sas_ss_size ;
2066   int (*notifier)(void * ) ;
2067   void *notifier_data ;
2068   sigset_t *notifier_mask ;
2069   struct audit_context *audit_context ;
2070   uid_t loginuid ;
2071   unsigned int sessionid ;
2072   seccomp_t seccomp ;
2073   u32 parent_exec_id ;
2074   u32 self_exec_id ;
2075   spinlock_t alloc_lock ;
2076   raw_spinlock_t pi_lock ;
2077   struct plist_head pi_waiters ;
2078   struct rt_mutex_waiter *pi_blocked_on ;
2079   struct mutex_waiter *blocked_on ;
2080   unsigned int irq_events ;
2081   unsigned long hardirq_enable_ip ;
2082   unsigned long hardirq_disable_ip ;
2083   unsigned int hardirq_enable_event ;
2084   unsigned int hardirq_disable_event ;
2085   int hardirqs_enabled ;
2086   int hardirq_context ;
2087   unsigned long softirq_disable_ip ;
2088   unsigned long softirq_enable_ip ;
2089   unsigned int softirq_disable_event ;
2090   unsigned int softirq_enable_event ;
2091   int softirqs_enabled ;
2092   int softirq_context ;
2093   u64 curr_chain_key ;
2094   int lockdep_depth ;
2095   unsigned int lockdep_recursion ;
2096   struct held_lock held_locks[48U] ;
2097   gfp_t lockdep_reclaim_gfp ;
2098   void *journal_info ;
2099   struct bio_list *bio_list ;
2100   struct blk_plug *plug ;
2101   struct reclaim_state *reclaim_state ;
2102   struct backing_dev_info *backing_dev_info ;
2103   struct io_context *io_context ;
2104   unsigned long ptrace_message ;
2105   siginfo_t *last_siginfo ;
2106   struct task_io_accounting ioac ;
2107   u64 acct_rss_mem1 ;
2108   u64 acct_vm_mem1 ;
2109   cputime_t acct_timexpd ;
2110   nodemask_t mems_allowed ;
2111   seqcount_t mems_allowed_seq ;
2112   int cpuset_mem_spread_rotor ;
2113   int cpuset_slab_spread_rotor ;
2114   struct css_set *cgroups ;
2115   struct list_head cg_list ;
2116   struct robust_list_head *robust_list ;
2117   struct compat_robust_list_head *compat_robust_list ;
2118   struct list_head pi_state_list ;
2119   struct futex_pi_state *pi_state_cache ;
2120   struct perf_event_context *perf_event_ctxp[2U] ;
2121   struct mutex perf_event_mutex ;
2122   struct list_head perf_event_list ;
2123   struct mempolicy *mempolicy ;
2124   short il_next ;
2125   short pref_node_fork ;
2126   struct rcu_head rcu ;
2127   struct pipe_inode_info *splice_pipe ;
2128   struct task_delay_info *delays ;
2129   int make_it_fail ;
2130   int nr_dirtied ;
2131   int nr_dirtied_pause ;
2132   unsigned long dirty_paused_when ;
2133   int latency_record_count ;
2134   struct latency_record latency_record[32U] ;
2135   unsigned long timer_slack_ns ;
2136   unsigned long default_timer_slack_ns ;
2137   struct list_head *scm_work_list ;
2138   unsigned long trace ;
2139   unsigned long trace_recursion ;
2140   struct memcg_batch_info memcg_batch ;
2141   atomic_t ptrace_bp_refcnt ;
2142};
2143#line 419 "include/mtd/ubi-user.h"
2144struct ubi_volume_info {
2145   int ubi_num ;
2146   int vol_id ;
2147   int size ;
2148   long long used_bytes ;
2149   int used_ebs ;
2150   int vol_type ;
2151   int corrupted ;
2152   int upd_marker ;
2153   int alignment ;
2154   int usable_leb_size ;
2155   int name_len ;
2156   char const   *name ;
2157   dev_t cdev ;
2158};
2159#line 114 "include/linux/mtd/ubi.h"
2160struct ubi_device_info {
2161   int ubi_num ;
2162   int leb_size ;
2163   int leb_start ;
2164   int min_io_size ;
2165   int max_write_size ;
2166   int ro_mode ;
2167   dev_t cdev ;
2168};
2169#line 164 "include/linux/mtd/ubi.h"
2170struct ubi_notification {
2171   struct ubi_device_info di ;
2172   struct ubi_volume_info vi ;
2173};
2174#line 191
2175struct ubi_volume_desc;
2176#line 191
2177struct ubi_volume_desc;
2178#line 249
2179struct klist_node;
2180#line 249
2181struct klist_node;
2182#line 37 "include/linux/klist.h"
2183struct klist_node {
2184   void *n_klist ;
2185   struct list_head n_node ;
2186   struct kref n_ref ;
2187};
2188#line 67
2189struct dma_map_ops;
2190#line 67 "include/linux/klist.h"
2191struct dev_archdata {
2192   void *acpi_handle ;
2193   struct dma_map_ops *dma_ops ;
2194   void *iommu ;
2195};
2196#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
2197struct device_private;
2198#line 17
2199struct device_private;
2200#line 18
2201struct device_driver;
2202#line 18
2203struct device_driver;
2204#line 19
2205struct driver_private;
2206#line 19
2207struct driver_private;
2208#line 20
2209struct class;
2210#line 20
2211struct class;
2212#line 21
2213struct subsys_private;
2214#line 21
2215struct subsys_private;
2216#line 22
2217struct bus_type;
2218#line 22
2219struct bus_type;
2220#line 23
2221struct device_node;
2222#line 23
2223struct device_node;
2224#line 24
2225struct iommu_ops;
2226#line 24
2227struct iommu_ops;
2228#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
2229struct bus_attribute {
2230   struct attribute attr ;
2231   ssize_t (*show)(struct bus_type * , char * ) ;
2232   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
2233};
2234#line 51 "include/linux/device.h"
2235struct device_attribute;
2236#line 51
2237struct driver_attribute;
2238#line 51 "include/linux/device.h"
2239struct bus_type {
2240   char const   *name ;
2241   char const   *dev_name ;
2242   struct device *dev_root ;
2243   struct bus_attribute *bus_attrs ;
2244   struct device_attribute *dev_attrs ;
2245   struct driver_attribute *drv_attrs ;
2246   int (*match)(struct device * , struct device_driver * ) ;
2247   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
2248   int (*probe)(struct device * ) ;
2249   int (*remove)(struct device * ) ;
2250   void (*shutdown)(struct device * ) ;
2251   int (*suspend)(struct device * , pm_message_t  ) ;
2252   int (*resume)(struct device * ) ;
2253   struct dev_pm_ops  const  *pm ;
2254   struct iommu_ops *iommu_ops ;
2255   struct subsys_private *p ;
2256};
2257#line 125
2258struct device_type;
2259#line 182
2260struct of_device_id;
2261#line 182 "include/linux/device.h"
2262struct device_driver {
2263   char const   *name ;
2264   struct bus_type *bus ;
2265   struct module *owner ;
2266   char const   *mod_name ;
2267   bool suppress_bind_attrs ;
2268   struct of_device_id  const  *of_match_table ;
2269   int (*probe)(struct device * ) ;
2270   int (*remove)(struct device * ) ;
2271   void (*shutdown)(struct device * ) ;
2272   int (*suspend)(struct device * , pm_message_t  ) ;
2273   int (*resume)(struct device * ) ;
2274   struct attribute_group  const  **groups ;
2275   struct dev_pm_ops  const  *pm ;
2276   struct driver_private *p ;
2277};
2278#line 245 "include/linux/device.h"
2279struct driver_attribute {
2280   struct attribute attr ;
2281   ssize_t (*show)(struct device_driver * , char * ) ;
2282   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
2283};
2284#line 299
2285struct class_attribute;
2286#line 299 "include/linux/device.h"
2287struct class {
2288   char const   *name ;
2289   struct module *owner ;
2290   struct class_attribute *class_attrs ;
2291   struct device_attribute *dev_attrs ;
2292   struct bin_attribute *dev_bin_attrs ;
2293   struct kobject *dev_kobj ;
2294   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
2295   char *(*devnode)(struct device * , umode_t * ) ;
2296   void (*class_release)(struct class * ) ;
2297   void (*dev_release)(struct device * ) ;
2298   int (*suspend)(struct device * , pm_message_t  ) ;
2299   int (*resume)(struct device * ) ;
2300   struct kobj_ns_type_operations  const  *ns_type ;
2301   void const   *(*namespace)(struct device * ) ;
2302   struct dev_pm_ops  const  *pm ;
2303   struct subsys_private *p ;
2304};
2305#line 394 "include/linux/device.h"
2306struct class_attribute {
2307   struct attribute attr ;
2308   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
2309   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
2310   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
2311};
2312#line 447 "include/linux/device.h"
2313struct device_type {
2314   char const   *name ;
2315   struct attribute_group  const  **groups ;
2316   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
2317   char *(*devnode)(struct device * , umode_t * ) ;
2318   void (*release)(struct device * ) ;
2319   struct dev_pm_ops  const  *pm ;
2320};
2321#line 474 "include/linux/device.h"
2322struct device_attribute {
2323   struct attribute attr ;
2324   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
2325   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
2326                    size_t  ) ;
2327};
2328#line 557 "include/linux/device.h"
2329struct device_dma_parameters {
2330   unsigned int max_segment_size ;
2331   unsigned long segment_boundary_mask ;
2332};
2333#line 567
2334struct dma_coherent_mem;
2335#line 567 "include/linux/device.h"
2336struct device {
2337   struct device *parent ;
2338   struct device_private *p ;
2339   struct kobject kobj ;
2340   char const   *init_name ;
2341   struct device_type  const  *type ;
2342   struct mutex mutex ;
2343   struct bus_type *bus ;
2344   struct device_driver *driver ;
2345   void *platform_data ;
2346   struct dev_pm_info power ;
2347   struct dev_pm_domain *pm_domain ;
2348   int numa_node ;
2349   u64 *dma_mask ;
2350   u64 coherent_dma_mask ;
2351   struct device_dma_parameters *dma_parms ;
2352   struct list_head dma_pools ;
2353   struct dma_coherent_mem *dma_mem ;
2354   struct dev_archdata archdata ;
2355   struct device_node *of_node ;
2356   dev_t devt ;
2357   u32 id ;
2358   spinlock_t devres_lock ;
2359   struct list_head devres_head ;
2360   struct klist_node knode_class ;
2361   struct class *class ;
2362   struct attribute_group  const  **groups ;
2363   void (*release)(struct device * ) ;
2364};
2365#line 681 "include/linux/device.h"
2366struct wakeup_source {
2367   char const   *name ;
2368   struct list_head entry ;
2369   spinlock_t lock ;
2370   struct timer_list timer ;
2371   unsigned long timer_expires ;
2372   ktime_t total_time ;
2373   ktime_t max_time ;
2374   ktime_t last_time ;
2375   unsigned long event_count ;
2376   unsigned long active_count ;
2377   unsigned long relax_count ;
2378   unsigned long hit_count ;
2379   unsigned char active : 1 ;
2380};
2381#line 142 "include/mtd/mtd-abi.h"
2382struct otp_info {
2383   __u32 start ;
2384   __u32 length ;
2385   __u32 locked ;
2386};
2387#line 216 "include/mtd/mtd-abi.h"
2388struct nand_oobfree {
2389   __u32 offset ;
2390   __u32 length ;
2391};
2392#line 238 "include/mtd/mtd-abi.h"
2393struct mtd_ecc_stats {
2394   __u32 corrected ;
2395   __u32 failed ;
2396   __u32 badblocks ;
2397   __u32 bbtblocks ;
2398};
2399#line 260
2400struct mtd_info;
2401#line 260 "include/mtd/mtd-abi.h"
2402struct erase_info {
2403   struct mtd_info *mtd ;
2404   uint64_t addr ;
2405   uint64_t len ;
2406   uint64_t fail_addr ;
2407   u_long time ;
2408   u_long retries ;
2409   unsigned int dev ;
2410   unsigned int cell ;
2411   void (*callback)(struct erase_info * ) ;
2412   u_long priv ;
2413   u_char state ;
2414   struct erase_info *next ;
2415};
2416#line 62 "include/linux/mtd/mtd.h"
2417struct mtd_erase_region_info {
2418   uint64_t offset ;
2419   uint32_t erasesize ;
2420   uint32_t numblocks ;
2421   unsigned long *lockmap ;
2422};
2423#line 69 "include/linux/mtd/mtd.h"
2424struct mtd_oob_ops {
2425   unsigned int mode ;
2426   size_t len ;
2427   size_t retlen ;
2428   size_t ooblen ;
2429   size_t oobretlen ;
2430   uint32_t ooboffs ;
2431   uint8_t *datbuf ;
2432   uint8_t *oobbuf ;
2433};
2434#line 99 "include/linux/mtd/mtd.h"
2435struct nand_ecclayout {
2436   __u32 eccbytes ;
2437   __u32 eccpos[448U] ;
2438   __u32 oobavail ;
2439   struct nand_oobfree oobfree[32U] ;
2440};
2441#line 114 "include/linux/mtd/mtd.h"
2442struct mtd_info {
2443   u_char type ;
2444   uint32_t flags ;
2445   uint64_t size ;
2446   uint32_t erasesize ;
2447   uint32_t writesize ;
2448   uint32_t writebufsize ;
2449   uint32_t oobsize ;
2450   uint32_t oobavail ;
2451   unsigned int erasesize_shift ;
2452   unsigned int writesize_shift ;
2453   unsigned int erasesize_mask ;
2454   unsigned int writesize_mask ;
2455   char const   *name ;
2456   int index ;
2457   struct nand_ecclayout *ecclayout ;
2458   unsigned int ecc_strength ;
2459   int numeraseregions ;
2460   struct mtd_erase_region_info *eraseregions ;
2461   int (*_erase)(struct mtd_info * , struct erase_info * ) ;
2462   int (*_point)(struct mtd_info * , loff_t  , size_t  , size_t * , void ** , resource_size_t * ) ;
2463   int (*_unpoint)(struct mtd_info * , loff_t  , size_t  ) ;
2464   unsigned long (*_get_unmapped_area)(struct mtd_info * , unsigned long  , unsigned long  ,
2465                                       unsigned long  ) ;
2466   int (*_read)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
2467   int (*_write)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
2468   int (*_panic_write)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
2469   int (*_read_oob)(struct mtd_info * , loff_t  , struct mtd_oob_ops * ) ;
2470   int (*_write_oob)(struct mtd_info * , loff_t  , struct mtd_oob_ops * ) ;
2471   int (*_get_fact_prot_info)(struct mtd_info * , struct otp_info * , size_t  ) ;
2472   int (*_read_fact_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
2473   int (*_get_user_prot_info)(struct mtd_info * , struct otp_info * , size_t  ) ;
2474   int (*_read_user_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
2475   int (*_write_user_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * ,
2476                               u_char * ) ;
2477   int (*_lock_user_prot_reg)(struct mtd_info * , loff_t  , size_t  ) ;
2478   int (*_writev)(struct mtd_info * , struct kvec  const  * , unsigned long  , loff_t  ,
2479                  size_t * ) ;
2480   void (*_sync)(struct mtd_info * ) ;
2481   int (*_lock)(struct mtd_info * , loff_t  , uint64_t  ) ;
2482   int (*_unlock)(struct mtd_info * , loff_t  , uint64_t  ) ;
2483   int (*_is_locked)(struct mtd_info * , loff_t  , uint64_t  ) ;
2484   int (*_block_isbad)(struct mtd_info * , loff_t  ) ;
2485   int (*_block_markbad)(struct mtd_info * , loff_t  ) ;
2486   int (*_suspend)(struct mtd_info * ) ;
2487   void (*_resume)(struct mtd_info * ) ;
2488   int (*_get_device)(struct mtd_info * ) ;
2489   void (*_put_device)(struct mtd_info * ) ;
2490   struct backing_dev_info *backing_dev_info ;
2491   struct notifier_block reboot_notifier ;
2492   struct mtd_ecc_stats ecc_stats ;
2493   int subpage_sft ;
2494   void *priv ;
2495   struct module *owner ;
2496   struct device dev ;
2497   int usecount ;
2498};
2499#line 356
2500struct mtd_partition;
2501#line 356
2502struct mtd_partition;
2503#line 357
2504struct mtd_part_parser_data;
2505#line 357
2506struct mtd_part_parser_data;
2507#line 377 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/mtd/ubi/ubi-media.h"
2508struct gluebi_device {
2509   struct mtd_info mtd ;
2510   int refcnt ;
2511   struct ubi_volume_desc *desc ;
2512   int ubi_num ;
2513   int vol_id ;
2514   struct list_head list ;
2515};
2516#line 1 "<compiler builtins>"
2517long __builtin_expect(long  , long  ) ;
2518#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
2519void ldv_spin_lock(void) ;
2520#line 3
2521void ldv_spin_unlock(void) ;
2522#line 4
2523int ldv_spin_trylock(void) ;
2524#line 101 "include/linux/printk.h"
2525extern int printk(char const   *  , ...) ;
2526#line 47 "include/linux/list.h"
2527extern void __list_add(struct list_head * , struct list_head * , struct list_head * ) ;
2528#line 74 "include/linux/list.h"
2529__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
2530{ unsigned long __cil_tmp3 ;
2531  unsigned long __cil_tmp4 ;
2532  struct list_head *__cil_tmp5 ;
2533
2534  {
2535  {
2536#line 76
2537  __cil_tmp3 = (unsigned long )head;
2538#line 76
2539  __cil_tmp4 = __cil_tmp3 + 8;
2540#line 76
2541  __cil_tmp5 = *((struct list_head **)__cil_tmp4);
2542#line 76
2543  __list_add(new, __cil_tmp5, head);
2544  }
2545#line 77
2546  return;
2547}
2548}
2549#line 112
2550extern void list_del(struct list_head * ) ;
2551#line 88 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/percpu.h"
2552extern void __bad_percpu_size(void) ;
2553#line 10 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/current.h"
2554extern struct task_struct *current_task ;
2555#line 12 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/current.h"
2556__inline static struct task_struct *get_current(void) 
2557{ struct task_struct *pfo_ret__ ;
2558
2559  {
2560#line 14
2561  if (8 == 1) {
2562#line 14
2563    goto case_1;
2564  } else
2565#line 14
2566  if (8 == 2) {
2567#line 14
2568    goto case_2;
2569  } else
2570#line 14
2571  if (8 == 4) {
2572#line 14
2573    goto case_4;
2574  } else
2575#line 14
2576  if (8 == 8) {
2577#line 14
2578    goto case_8;
2579  } else {
2580    {
2581#line 14
2582    goto switch_default;
2583#line 14
2584    if (0) {
2585      case_1: /* CIL Label */ 
2586#line 14
2587      __asm__  ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& current_task));
2588#line 14
2589      goto ldv_2918;
2590      case_2: /* CIL Label */ 
2591#line 14
2592      __asm__  ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
2593#line 14
2594      goto ldv_2918;
2595      case_4: /* CIL Label */ 
2596#line 14
2597      __asm__  ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
2598#line 14
2599      goto ldv_2918;
2600      case_8: /* CIL Label */ 
2601#line 14
2602      __asm__  ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
2603#line 14
2604      goto ldv_2918;
2605      switch_default: /* CIL Label */ 
2606      {
2607#line 14
2608      __bad_percpu_size();
2609      }
2610    } else {
2611      switch_break: /* CIL Label */ ;
2612    }
2613    }
2614  }
2615  ldv_2918: ;
2616#line 14
2617  return (pfo_ret__);
2618}
2619}
2620#line 121 "include/linux/string.h"
2621extern void *kmemdup(void const   * , size_t  , gfp_t  ) ;
2622#line 17 "include/linux/math64.h"
2623__inline static u64 div_u64_rem(u64 dividend , u32 divisor , u32 *remainder ) 
2624{ u64 __cil_tmp4 ;
2625  unsigned long long __cil_tmp5 ;
2626  u64 __cil_tmp6 ;
2627
2628  {
2629#line 19
2630  __cil_tmp4 = (u64 )divisor;
2631#line 19
2632  __cil_tmp5 = dividend % __cil_tmp4;
2633#line 19
2634  *remainder = (u32 )__cil_tmp5;
2635  {
2636#line 20
2637  __cil_tmp6 = (u64 )divisor;
2638#line 20
2639  return (dividend / __cil_tmp6);
2640  }
2641}
2642}
2643#line 27 "include/linux/err.h"
2644__inline static long PTR_ERR(void const   *ptr ) 
2645{ 
2646
2647  {
2648#line 29
2649  return ((long )ptr);
2650}
2651}
2652#line 32 "include/linux/err.h"
2653__inline static long IS_ERR(void const   *ptr ) 
2654{ long tmp ;
2655  unsigned long __cil_tmp3 ;
2656  int __cil_tmp4 ;
2657  long __cil_tmp5 ;
2658
2659  {
2660  {
2661#line 34
2662  __cil_tmp3 = (unsigned long )ptr;
2663#line 34
2664  __cil_tmp4 = __cil_tmp3 > 0xfffffffffffff000UL;
2665#line 34
2666  __cil_tmp5 = (long )__cil_tmp4;
2667#line 34
2668  tmp = __builtin_expect(__cil_tmp5, 0L);
2669  }
2670#line 34
2671  return (tmp);
2672}
2673}
2674#line 134 "include/linux/mutex.h"
2675extern void mutex_lock_nested(struct mutex * , unsigned int  ) ;
2676#line 169
2677extern void mutex_unlock(struct mutex * ) ;
2678#line 26 "include/linux/export.h"
2679extern struct module __this_module ;
2680#line 457 "include/linux/module.h"
2681extern bool try_module_get(struct module * ) ;
2682#line 459
2683extern void module_put(struct module * ) ;
2684#line 161 "include/linux/slab.h"
2685extern void kfree(void const   * ) ;
2686#line 220 "include/linux/slub_def.h"
2687extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
2688#line 223
2689void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2690#line 353 "include/linux/slab.h"
2691__inline static void *kzalloc(size_t size , gfp_t flags ) ;
2692#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
2693extern void *__VERIFIER_nondet_pointer(void) ;
2694#line 11
2695void ldv_check_alloc_flags(gfp_t flags ) ;
2696#line 12
2697void ldv_check_alloc_nonatomic(void) ;
2698#line 14
2699struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2700#line 198 "include/linux/mtd/ubi.h"
2701extern struct ubi_volume_desc *ubi_open_volume(int  , int  , int  ) ;
2702#line 203
2703extern int ubi_register_volume_notifier(struct notifier_block * , int  ) ;
2704#line 205
2705extern int ubi_unregister_volume_notifier(struct notifier_block * ) ;
2706#line 207
2707extern void ubi_close_volume(struct ubi_volume_desc * ) ;
2708#line 208
2709extern int ubi_leb_read(struct ubi_volume_desc * , int  , char * , int  , int  , int  ) ;
2710#line 210
2711extern int ubi_leb_write(struct ubi_volume_desc * , int  , void const   * , int  ,
2712                         int  , int  ) ;
2713#line 214
2714extern int ubi_leb_erase(struct ubi_volume_desc * , int  ) ;
2715#line 215
2716extern int ubi_leb_unmap(struct ubi_volume_desc * , int  ) ;
2717#line 224 "include/linux/mtd/ubi.h"
2718__inline static int ubi_read(struct ubi_volume_desc *desc , int lnum , char *buf ,
2719                             int offset , int len ) 
2720{ int tmp ;
2721
2722  {
2723  {
2724#line 227
2725  tmp = ubi_leb_read(desc, lnum, buf, offset, len, 0);
2726  }
2727#line 227
2728  return (tmp);
2729}
2730}
2731#line 234 "include/linux/mtd/ubi.h"
2732__inline static int ubi_write(struct ubi_volume_desc *desc , int lnum , void const   *buf ,
2733                              int offset , int len ) 
2734{ int tmp ;
2735
2736  {
2737  {
2738#line 237
2739  tmp = ubi_leb_write(desc, lnum, buf, offset, len, 3);
2740  }
2741#line 237
2742  return (tmp);
2743}
2744}
2745#line 317 "include/linux/mtd/mtd.h"
2746__inline static uint32_t mtd_div_by_eb(uint64_t sz , struct mtd_info *mtd ) 
2747{ uint32_t __base ;
2748  uint32_t __rem ;
2749  unsigned long __cil_tmp5 ;
2750  unsigned long __cil_tmp6 ;
2751  unsigned int __cil_tmp7 ;
2752  unsigned long __cil_tmp8 ;
2753  unsigned long __cil_tmp9 ;
2754  unsigned int __cil_tmp10 ;
2755  int __cil_tmp11 ;
2756  uint64_t __cil_tmp12 ;
2757  unsigned long __cil_tmp13 ;
2758  unsigned long __cil_tmp14 ;
2759  uint64_t __cil_tmp15 ;
2760  unsigned long long __cil_tmp16 ;
2761  uint64_t __cil_tmp17 ;
2762
2763  {
2764  {
2765#line 319
2766  __cil_tmp5 = (unsigned long )mtd;
2767#line 319
2768  __cil_tmp6 = __cil_tmp5 + 36;
2769#line 319
2770  __cil_tmp7 = *((unsigned int *)__cil_tmp6);
2771#line 319
2772  if (__cil_tmp7 != 0U) {
2773    {
2774#line 320
2775    __cil_tmp8 = (unsigned long )mtd;
2776#line 320
2777    __cil_tmp9 = __cil_tmp8 + 36;
2778#line 320
2779    __cil_tmp10 = *((unsigned int *)__cil_tmp9);
2780#line 320
2781    __cil_tmp11 = (int )__cil_tmp10;
2782#line 320
2783    __cil_tmp12 = sz >> __cil_tmp11;
2784#line 320
2785    return ((uint32_t )__cil_tmp12);
2786    }
2787  } else {
2788
2789  }
2790  }
2791#line 321
2792  __cil_tmp13 = (unsigned long )mtd;
2793#line 321
2794  __cil_tmp14 = __cil_tmp13 + 16;
2795#line 321
2796  __base = *((uint32_t *)__cil_tmp14);
2797#line 321
2798  __cil_tmp15 = (uint64_t )__base;
2799#line 321
2800  __cil_tmp16 = sz % __cil_tmp15;
2801#line 321
2802  __rem = (uint32_t )__cil_tmp16;
2803#line 321
2804  __cil_tmp17 = (uint64_t )__base;
2805#line 321
2806  sz = sz / __cil_tmp17;
2807#line 322
2808  return ((uint32_t )sz);
2809}
2810}
2811#line 340 "include/linux/mtd/mtd.h"
2812__inline static uint32_t mtd_mod_by_ws(uint64_t sz , struct mtd_info *mtd ) 
2813{ uint32_t __base ;
2814  uint32_t __rem ;
2815  unsigned long __cil_tmp5 ;
2816  unsigned long __cil_tmp6 ;
2817  unsigned int __cil_tmp7 ;
2818  uint32_t __cil_tmp8 ;
2819  unsigned long __cil_tmp9 ;
2820  unsigned long __cil_tmp10 ;
2821  unsigned int __cil_tmp11 ;
2822  unsigned long __cil_tmp12 ;
2823  unsigned long __cil_tmp13 ;
2824  uint64_t __cil_tmp14 ;
2825  unsigned long long __cil_tmp15 ;
2826  uint64_t __cil_tmp16 ;
2827
2828  {
2829  {
2830#line 342
2831  __cil_tmp5 = (unsigned long )mtd;
2832#line 342
2833  __cil_tmp6 = __cil_tmp5 + 40;
2834#line 342
2835  __cil_tmp7 = *((unsigned int *)__cil_tmp6);
2836#line 342
2837  if (__cil_tmp7 != 0U) {
2838    {
2839#line 343
2840    __cil_tmp8 = (uint32_t )sz;
2841#line 343
2842    __cil_tmp9 = (unsigned long )mtd;
2843#line 343
2844    __cil_tmp10 = __cil_tmp9 + 48;
2845#line 343
2846    __cil_tmp11 = *((unsigned int *)__cil_tmp10);
2847#line 343
2848    return (__cil_tmp11 & __cil_tmp8);
2849    }
2850  } else {
2851
2852  }
2853  }
2854#line 344
2855  __cil_tmp12 = (unsigned long )mtd;
2856#line 344
2857  __cil_tmp13 = __cil_tmp12 + 20;
2858#line 344
2859  __base = *((uint32_t *)__cil_tmp13);
2860#line 344
2861  __cil_tmp14 = (uint64_t )__base;
2862#line 344
2863  __cil_tmp15 = sz % __cil_tmp14;
2864#line 344
2865  __rem = (uint32_t )__cil_tmp15;
2866#line 344
2867  __cil_tmp16 = (uint64_t )__base;
2868#line 344
2869  sz = sz / __cil_tmp16;
2870#line 344
2871  return (__rem);
2872}
2873}
2874#line 362
2875extern int mtd_device_parse_register(struct mtd_info * , char const   ** , struct mtd_part_parser_data * ,
2876                                     struct mtd_partition  const  * , int  ) ;
2877#line 369
2878extern int mtd_device_unregister(struct mtd_info * ) ;
2879#line 388
2880extern void mtd_erase_callback(struct erase_info * ) ;
2881#line 81 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
2882static struct list_head gluebi_devices  =    {& gluebi_devices, & gluebi_devices};
2883#line 82 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
2884static struct mutex devices_mutex  =    {{1}, {{{{{0U}}, 3735899821U, 4294967295U, (void *)0xffffffffffffffffUL, {(struct lock_class_key *)0,
2885                                                                             {(struct lock_class *)0,
2886                                                                              (struct lock_class *)0},
2887                                                                             "devices_mutex.wait_lock",
2888                                                                             0, 0UL}}}},
2889    {& devices_mutex.wait_list, & devices_mutex.wait_list}, (struct task_struct *)0,
2890    (char const   *)0, (void *)(& devices_mutex), {(struct lock_class_key *)0, {(struct lock_class *)0,
2891                                                                                (struct lock_class *)0},
2892                                                   "devices_mutex", 0, 0UL}};
2893#line 94 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
2894static struct gluebi_device *find_gluebi_nolock(int ubi_num , int vol_id ) 
2895{ struct gluebi_device *gluebi ;
2896  struct list_head  const  *__mptr ;
2897  struct list_head  const  *__mptr___0 ;
2898  struct list_head *__cil_tmp6 ;
2899  struct list_head *__cil_tmp7 ;
2900  struct gluebi_device *__cil_tmp8 ;
2901  unsigned long __cil_tmp9 ;
2902  unsigned long __cil_tmp10 ;
2903  int __cil_tmp11 ;
2904  unsigned long __cil_tmp12 ;
2905  unsigned long __cil_tmp13 ;
2906  int __cil_tmp14 ;
2907  unsigned long __cil_tmp15 ;
2908  unsigned long __cil_tmp16 ;
2909  struct list_head *__cil_tmp17 ;
2910  struct gluebi_device *__cil_tmp18 ;
2911  unsigned long __cil_tmp19 ;
2912  unsigned long __cil_tmp20 ;
2913  unsigned long __cil_tmp21 ;
2914  struct list_head *__cil_tmp22 ;
2915  unsigned long __cil_tmp23 ;
2916
2917  {
2918#line 98
2919  __cil_tmp6 = & gluebi_devices;
2920#line 98
2921  __cil_tmp7 = *((struct list_head **)__cil_tmp6);
2922#line 98
2923  __mptr = (struct list_head  const  *)__cil_tmp7;
2924#line 98
2925  __cil_tmp8 = (struct gluebi_device *)__mptr;
2926#line 98
2927  gluebi = __cil_tmp8 + 0xfffffffffffff9e8UL;
2928#line 98
2929  goto ldv_18863;
2930  ldv_18862: ;
2931  {
2932#line 99
2933  __cil_tmp9 = (unsigned long )gluebi;
2934#line 99
2935  __cil_tmp10 = __cil_tmp9 + 1552;
2936#line 99
2937  __cil_tmp11 = *((int *)__cil_tmp10);
2938#line 99
2939  if (__cil_tmp11 == ubi_num) {
2940    {
2941#line 99
2942    __cil_tmp12 = (unsigned long )gluebi;
2943#line 99
2944    __cil_tmp13 = __cil_tmp12 + 1556;
2945#line 99
2946    __cil_tmp14 = *((int *)__cil_tmp13);
2947#line 99
2948    if (__cil_tmp14 == vol_id) {
2949#line 100
2950      return (gluebi);
2951    } else {
2952
2953    }
2954    }
2955  } else {
2956
2957  }
2958  }
2959#line 98
2960  __cil_tmp15 = (unsigned long )gluebi;
2961#line 98
2962  __cil_tmp16 = __cil_tmp15 + 1560;
2963#line 98
2964  __cil_tmp17 = *((struct list_head **)__cil_tmp16);
2965#line 98
2966  __mptr___0 = (struct list_head  const  *)__cil_tmp17;
2967#line 98
2968  __cil_tmp18 = (struct gluebi_device *)__mptr___0;
2969#line 98
2970  gluebi = __cil_tmp18 + 0xfffffffffffff9e8UL;
2971  ldv_18863: ;
2972  {
2973#line 98
2974  __cil_tmp19 = (unsigned long )(& gluebi_devices);
2975#line 98
2976  __cil_tmp20 = (unsigned long )gluebi;
2977#line 98
2978  __cil_tmp21 = __cil_tmp20 + 1560;
2979#line 98
2980  __cil_tmp22 = (struct list_head *)__cil_tmp21;
2981#line 98
2982  __cil_tmp23 = (unsigned long )__cil_tmp22;
2983#line 98
2984  if (__cil_tmp23 != __cil_tmp19) {
2985#line 99
2986    goto ldv_18862;
2987  } else {
2988#line 101
2989    goto ldv_18864;
2990  }
2991  }
2992  ldv_18864: ;
2993#line 101
2994  return ((struct gluebi_device *)0);
2995}
2996}
2997#line 112 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
2998static int gluebi_get_device(struct mtd_info *mtd ) 
2999{ struct gluebi_device *gluebi ;
3000  int ubi_mode ;
3001  bool tmp ;
3002  int tmp___0 ;
3003  struct mtd_info  const  *__mptr ;
3004  long tmp___1 ;
3005  long tmp___2 ;
3006  unsigned long __cil_tmp9 ;
3007  unsigned long __cil_tmp10 ;
3008  uint32_t __cil_tmp11 ;
3009  unsigned int __cil_tmp12 ;
3010  unsigned long __cil_tmp13 ;
3011  unsigned long __cil_tmp14 ;
3012  int __cil_tmp15 ;
3013  unsigned long __cil_tmp16 ;
3014  unsigned long __cil_tmp17 ;
3015  unsigned long __cil_tmp18 ;
3016  unsigned long __cil_tmp19 ;
3017  int __cil_tmp20 ;
3018  unsigned long __cil_tmp21 ;
3019  unsigned long __cil_tmp22 ;
3020  unsigned long __cil_tmp23 ;
3021  unsigned long __cil_tmp24 ;
3022  int __cil_tmp25 ;
3023  unsigned long __cil_tmp26 ;
3024  unsigned long __cil_tmp27 ;
3025  int __cil_tmp28 ;
3026  unsigned long __cil_tmp29 ;
3027  unsigned long __cil_tmp30 ;
3028  struct ubi_volume_desc *__cil_tmp31 ;
3029  void const   *__cil_tmp32 ;
3030  unsigned long __cil_tmp33 ;
3031  unsigned long __cil_tmp34 ;
3032  struct ubi_volume_desc *__cil_tmp35 ;
3033  void const   *__cil_tmp36 ;
3034  unsigned long __cil_tmp37 ;
3035  unsigned long __cil_tmp38 ;
3036  unsigned long __cil_tmp39 ;
3037  unsigned long __cil_tmp40 ;
3038  int __cil_tmp41 ;
3039
3040  {
3041  {
3042#line 115
3043  ubi_mode = 1;
3044#line 117
3045  tmp = try_module_get(& __this_module);
3046  }
3047#line 117
3048  if (tmp) {
3049#line 117
3050    tmp___0 = 0;
3051  } else {
3052#line 117
3053    tmp___0 = 1;
3054  }
3055#line 117
3056  if (tmp___0) {
3057#line 118
3058    return (-19);
3059  } else {
3060
3061  }
3062  {
3063#line 120
3064  __cil_tmp9 = (unsigned long )mtd;
3065#line 120
3066  __cil_tmp10 = __cil_tmp9 + 4;
3067#line 120
3068  __cil_tmp11 = *((uint32_t *)__cil_tmp10);
3069#line 120
3070  __cil_tmp12 = __cil_tmp11 & 1024U;
3071#line 120
3072  if (__cil_tmp12 != 0U) {
3073#line 121
3074    ubi_mode = 2;
3075  } else {
3076
3077  }
3078  }
3079  {
3080#line 123
3081  __mptr = (struct mtd_info  const  *)mtd;
3082#line 123
3083  gluebi = (struct gluebi_device *)__mptr;
3084#line 124
3085  mutex_lock_nested(& devices_mutex, 0U);
3086  }
3087  {
3088#line 125
3089  __cil_tmp13 = (unsigned long )gluebi;
3090#line 125
3091  __cil_tmp14 = __cil_tmp13 + 1536;
3092#line 125
3093  __cil_tmp15 = *((int *)__cil_tmp14);
3094#line 125
3095  if (__cil_tmp15 > 0) {
3096    {
3097#line 134
3098    __cil_tmp16 = (unsigned long )gluebi;
3099#line 134
3100    __cil_tmp17 = __cil_tmp16 + 1536;
3101#line 134
3102    __cil_tmp18 = (unsigned long )gluebi;
3103#line 134
3104    __cil_tmp19 = __cil_tmp18 + 1536;
3105#line 134
3106    __cil_tmp20 = *((int *)__cil_tmp19);
3107#line 134
3108    *((int *)__cil_tmp17) = __cil_tmp20 + 1;
3109#line 135
3110    mutex_unlock(& devices_mutex);
3111    }
3112#line 136
3113    return (0);
3114  } else {
3115
3116  }
3117  }
3118  {
3119#line 143
3120  __cil_tmp21 = (unsigned long )gluebi;
3121#line 143
3122  __cil_tmp22 = __cil_tmp21 + 1544;
3123#line 143
3124  __cil_tmp23 = (unsigned long )gluebi;
3125#line 143
3126  __cil_tmp24 = __cil_tmp23 + 1552;
3127#line 143
3128  __cil_tmp25 = *((int *)__cil_tmp24);
3129#line 143
3130  __cil_tmp26 = (unsigned long )gluebi;
3131#line 143
3132  __cil_tmp27 = __cil_tmp26 + 1556;
3133#line 143
3134  __cil_tmp28 = *((int *)__cil_tmp27);
3135#line 143
3136  *((struct ubi_volume_desc **)__cil_tmp22) = ubi_open_volume(__cil_tmp25, __cil_tmp28,
3137                                                              ubi_mode);
3138#line 145
3139  __cil_tmp29 = (unsigned long )gluebi;
3140#line 145
3141  __cil_tmp30 = __cil_tmp29 + 1544;
3142#line 145
3143  __cil_tmp31 = *((struct ubi_volume_desc **)__cil_tmp30);
3144#line 145
3145  __cil_tmp32 = (void const   *)__cil_tmp31;
3146#line 145
3147  tmp___2 = IS_ERR(__cil_tmp32);
3148  }
3149#line 145
3150  if (tmp___2 != 0L) {
3151    {
3152#line 146
3153    mutex_unlock(& devices_mutex);
3154#line 147
3155    module_put(& __this_module);
3156#line 148
3157    __cil_tmp33 = (unsigned long )gluebi;
3158#line 148
3159    __cil_tmp34 = __cil_tmp33 + 1544;
3160#line 148
3161    __cil_tmp35 = *((struct ubi_volume_desc **)__cil_tmp34);
3162#line 148
3163    __cil_tmp36 = (void const   *)__cil_tmp35;
3164#line 148
3165    tmp___1 = PTR_ERR(__cil_tmp36);
3166    }
3167#line 148
3168    return ((int )tmp___1);
3169  } else {
3170
3171  }
3172  {
3173#line 150
3174  __cil_tmp37 = (unsigned long )gluebi;
3175#line 150
3176  __cil_tmp38 = __cil_tmp37 + 1536;
3177#line 150
3178  __cil_tmp39 = (unsigned long )gluebi;
3179#line 150
3180  __cil_tmp40 = __cil_tmp39 + 1536;
3181#line 150
3182  __cil_tmp41 = *((int *)__cil_tmp40);
3183#line 150
3184  *((int *)__cil_tmp38) = __cil_tmp41 + 1;
3185#line 151
3186  mutex_unlock(& devices_mutex);
3187  }
3188#line 152
3189  return (0);
3190}
3191}
3192#line 162 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
3193static void gluebi_put_device(struct mtd_info *mtd ) 
3194{ struct gluebi_device *gluebi ;
3195  struct mtd_info  const  *__mptr ;
3196  unsigned long __cil_tmp4 ;
3197  unsigned long __cil_tmp5 ;
3198  unsigned long __cil_tmp6 ;
3199  unsigned long __cil_tmp7 ;
3200  int __cil_tmp8 ;
3201  unsigned long __cil_tmp9 ;
3202  unsigned long __cil_tmp10 ;
3203  int __cil_tmp11 ;
3204  unsigned long __cil_tmp12 ;
3205  unsigned long __cil_tmp13 ;
3206  struct ubi_volume_desc *__cil_tmp14 ;
3207
3208  {
3209  {
3210#line 166
3211  __mptr = (struct mtd_info  const  *)mtd;
3212#line 166
3213  gluebi = (struct gluebi_device *)__mptr;
3214#line 167
3215  mutex_lock_nested(& devices_mutex, 0U);
3216#line 168
3217  __cil_tmp4 = (unsigned long )gluebi;
3218#line 168
3219  __cil_tmp5 = __cil_tmp4 + 1536;
3220#line 168
3221  __cil_tmp6 = (unsigned long )gluebi;
3222#line 168
3223  __cil_tmp7 = __cil_tmp6 + 1536;
3224#line 168
3225  __cil_tmp8 = *((int *)__cil_tmp7);
3226#line 168
3227  *((int *)__cil_tmp5) = __cil_tmp8 + -1;
3228  }
3229  {
3230#line 169
3231  __cil_tmp9 = (unsigned long )gluebi;
3232#line 169
3233  __cil_tmp10 = __cil_tmp9 + 1536;
3234#line 169
3235  __cil_tmp11 = *((int *)__cil_tmp10);
3236#line 169
3237  if (__cil_tmp11 == 0) {
3238    {
3239#line 170
3240    __cil_tmp12 = (unsigned long )gluebi;
3241#line 170
3242    __cil_tmp13 = __cil_tmp12 + 1544;
3243#line 170
3244    __cil_tmp14 = *((struct ubi_volume_desc **)__cil_tmp13);
3245#line 170
3246    ubi_close_volume(__cil_tmp14);
3247    }
3248  } else {
3249
3250  }
3251  }
3252  {
3253#line 171
3254  module_put(& __this_module);
3255#line 172
3256  mutex_unlock(& devices_mutex);
3257  }
3258#line 173
3259  return;
3260}
3261}
3262#line 186 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
3263static int gluebi_read(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
3264                       unsigned char *buf ) 
3265{ int err ;
3266  int lnum ;
3267  int offs ;
3268  int total_read ;
3269  struct gluebi_device *gluebi ;
3270  struct mtd_info  const  *__mptr ;
3271  u64 tmp ;
3272  size_t to_read ;
3273  u64 __cil_tmp14 ;
3274  unsigned long __cil_tmp15 ;
3275  unsigned long __cil_tmp16 ;
3276  uint32_t __cil_tmp17 ;
3277  u32 *__cil_tmp18 ;
3278  int *__cil_tmp19 ;
3279  int __cil_tmp20 ;
3280  uint32_t __cil_tmp21 ;
3281  unsigned long __cil_tmp22 ;
3282  unsigned long __cil_tmp23 ;
3283  uint32_t __cil_tmp24 ;
3284  uint32_t __cil_tmp25 ;
3285  size_t __cil_tmp26 ;
3286  unsigned long __cil_tmp27 ;
3287  unsigned long __cil_tmp28 ;
3288  struct ubi_volume_desc *__cil_tmp29 ;
3289  char *__cil_tmp30 ;
3290  int *__cil_tmp31 ;
3291  int __cil_tmp32 ;
3292  int __cil_tmp33 ;
3293  int *__cil_tmp34 ;
3294  unsigned int __cil_tmp35 ;
3295  unsigned int __cil_tmp36 ;
3296  unsigned int __cil_tmp37 ;
3297  size_t __cil_tmp38 ;
3298
3299  {
3300  {
3301#line 189
3302  err = 0;
3303#line 192
3304  __mptr = (struct mtd_info  const  *)mtd;
3305#line 192
3306  gluebi = (struct gluebi_device *)__mptr;
3307#line 193
3308  __cil_tmp14 = (u64 )from;
3309#line 193
3310  __cil_tmp15 = (unsigned long )mtd;
3311#line 193
3312  __cil_tmp16 = __cil_tmp15 + 16;
3313#line 193
3314  __cil_tmp17 = *((uint32_t *)__cil_tmp16);
3315#line 193
3316  __cil_tmp18 = (u32 *)(& offs);
3317#line 193
3318  tmp = div_u64_rem(__cil_tmp14, __cil_tmp17, __cil_tmp18);
3319#line 193
3320  lnum = (int )tmp;
3321#line 194
3322  total_read = (int )len;
3323  }
3324#line 195
3325  goto ldv_18895;
3326  ldv_18894: 
3327#line 196
3328  __cil_tmp19 = & offs;
3329#line 196
3330  __cil_tmp20 = *__cil_tmp19;
3331#line 196
3332  __cil_tmp21 = (uint32_t )__cil_tmp20;
3333#line 196
3334  __cil_tmp22 = (unsigned long )mtd;
3335#line 196
3336  __cil_tmp23 = __cil_tmp22 + 16;
3337#line 196
3338  __cil_tmp24 = *((uint32_t *)__cil_tmp23);
3339#line 196
3340  __cil_tmp25 = __cil_tmp24 - __cil_tmp21;
3341#line 196
3342  to_read = (size_t )__cil_tmp25;
3343  {
3344#line 198
3345  __cil_tmp26 = (size_t )total_read;
3346#line 198
3347  if (__cil_tmp26 < to_read) {
3348#line 199
3349    to_read = (size_t )total_read;
3350  } else {
3351
3352  }
3353  }
3354  {
3355#line 201
3356  __cil_tmp27 = (unsigned long )gluebi;
3357#line 201
3358  __cil_tmp28 = __cil_tmp27 + 1544;
3359#line 201
3360  __cil_tmp29 = *((struct ubi_volume_desc **)__cil_tmp28);
3361#line 201
3362  __cil_tmp30 = (char *)buf;
3363#line 201
3364  __cil_tmp31 = & offs;
3365#line 201
3366  __cil_tmp32 = *__cil_tmp31;
3367#line 201
3368  __cil_tmp33 = (int )to_read;
3369#line 201
3370  err = ubi_read(__cil_tmp29, lnum, __cil_tmp30, __cil_tmp32, __cil_tmp33);
3371  }
3372#line 202
3373  if (err != 0) {
3374#line 203
3375    goto ldv_18893;
3376  } else {
3377
3378  }
3379#line 205
3380  lnum = lnum + 1;
3381#line 206
3382  __cil_tmp34 = & offs;
3383#line 206
3384  *__cil_tmp34 = 0;
3385#line 207
3386  __cil_tmp35 = (unsigned int )to_read;
3387#line 207
3388  __cil_tmp36 = (unsigned int )total_read;
3389#line 207
3390  __cil_tmp37 = __cil_tmp36 - __cil_tmp35;
3391#line 207
3392  total_read = (int )__cil_tmp37;
3393#line 208
3394  buf = buf + to_read;
3395  ldv_18895: ;
3396#line 195
3397  if (total_read != 0) {
3398#line 196
3399    goto ldv_18894;
3400  } else {
3401#line 198
3402    goto ldv_18893;
3403  }
3404  ldv_18893: 
3405#line 211
3406  __cil_tmp38 = (size_t )total_read;
3407#line 211
3408  *retlen = len - __cil_tmp38;
3409#line 212
3410  return (err);
3411}
3412}
3413#line 226 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
3414static int gluebi_write(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
3415                        u_char const   *buf ) 
3416{ int err ;
3417  int lnum ;
3418  int offs ;
3419  int total_written ;
3420  struct gluebi_device *gluebi ;
3421  struct mtd_info  const  *__mptr ;
3422  u64 tmp ;
3423  size_t to_write ;
3424  u64 __cil_tmp14 ;
3425  unsigned long __cil_tmp15 ;
3426  unsigned long __cil_tmp16 ;
3427  uint32_t __cil_tmp17 ;
3428  u32 *__cil_tmp18 ;
3429  unsigned long __cil_tmp19 ;
3430  unsigned long __cil_tmp20 ;
3431  uint32_t __cil_tmp21 ;
3432  size_t __cil_tmp22 ;
3433  unsigned long __cil_tmp23 ;
3434  unsigned long __cil_tmp24 ;
3435  unsigned long __cil_tmp25 ;
3436  uint32_t __cil_tmp26 ;
3437  int *__cil_tmp27 ;
3438  int __cil_tmp28 ;
3439  uint32_t __cil_tmp29 ;
3440  unsigned int __cil_tmp30 ;
3441  int *__cil_tmp31 ;
3442  int __cil_tmp32 ;
3443  uint32_t __cil_tmp33 ;
3444  unsigned long __cil_tmp34 ;
3445  unsigned long __cil_tmp35 ;
3446  uint32_t __cil_tmp36 ;
3447  uint32_t __cil_tmp37 ;
3448  size_t __cil_tmp38 ;
3449  unsigned long __cil_tmp39 ;
3450  unsigned long __cil_tmp40 ;
3451  struct ubi_volume_desc *__cil_tmp41 ;
3452  void const   *__cil_tmp42 ;
3453  int *__cil_tmp43 ;
3454  int __cil_tmp44 ;
3455  int __cil_tmp45 ;
3456  int *__cil_tmp46 ;
3457  unsigned int __cil_tmp47 ;
3458  unsigned int __cil_tmp48 ;
3459  unsigned int __cil_tmp49 ;
3460  size_t __cil_tmp50 ;
3461
3462  {
3463  {
3464#line 229
3465  err = 0;
3466#line 232
3467  __mptr = (struct mtd_info  const  *)mtd;
3468#line 232
3469  gluebi = (struct gluebi_device *)__mptr;
3470#line 233
3471  __cil_tmp14 = (u64 )to;
3472#line 233
3473  __cil_tmp15 = (unsigned long )mtd;
3474#line 233
3475  __cil_tmp16 = __cil_tmp15 + 16;
3476#line 233
3477  __cil_tmp17 = *((uint32_t *)__cil_tmp16);
3478#line 233
3479  __cil_tmp18 = (u32 *)(& offs);
3480#line 233
3481  tmp = div_u64_rem(__cil_tmp14, __cil_tmp17, __cil_tmp18);
3482#line 233
3483  lnum = (int )tmp;
3484  }
3485  {
3486#line 235
3487  __cil_tmp19 = (unsigned long )mtd;
3488#line 235
3489  __cil_tmp20 = __cil_tmp19 + 20;
3490#line 235
3491  __cil_tmp21 = *((uint32_t *)__cil_tmp20);
3492#line 235
3493  __cil_tmp22 = (size_t )__cil_tmp21;
3494#line 235
3495  __cil_tmp23 = len % __cil_tmp22;
3496#line 235
3497  if (__cil_tmp23 != 0UL) {
3498#line 236
3499    return (-22);
3500  } else {
3501    {
3502#line 235
3503    __cil_tmp24 = (unsigned long )mtd;
3504#line 235
3505    __cil_tmp25 = __cil_tmp24 + 20;
3506#line 235
3507    __cil_tmp26 = *((uint32_t *)__cil_tmp25);
3508#line 235
3509    __cil_tmp27 = & offs;
3510#line 235
3511    __cil_tmp28 = *__cil_tmp27;
3512#line 235
3513    __cil_tmp29 = (uint32_t )__cil_tmp28;
3514#line 235
3515    __cil_tmp30 = __cil_tmp29 % __cil_tmp26;
3516#line 235
3517    if (__cil_tmp30 != 0U) {
3518#line 236
3519      return (-22);
3520    } else {
3521
3522    }
3523    }
3524  }
3525  }
3526#line 238
3527  total_written = (int )len;
3528#line 239
3529  goto ldv_18913;
3530  ldv_18912: 
3531#line 240
3532  __cil_tmp31 = & offs;
3533#line 240
3534  __cil_tmp32 = *__cil_tmp31;
3535#line 240
3536  __cil_tmp33 = (uint32_t )__cil_tmp32;
3537#line 240
3538  __cil_tmp34 = (unsigned long )mtd;
3539#line 240
3540  __cil_tmp35 = __cil_tmp34 + 16;
3541#line 240
3542  __cil_tmp36 = *((uint32_t *)__cil_tmp35);
3543#line 240
3544  __cil_tmp37 = __cil_tmp36 - __cil_tmp33;
3545#line 240
3546  to_write = (size_t )__cil_tmp37;
3547  {
3548#line 242
3549  __cil_tmp38 = (size_t )total_written;
3550#line 242
3551  if (__cil_tmp38 < to_write) {
3552#line 243
3553    to_write = (size_t )total_written;
3554  } else {
3555
3556  }
3557  }
3558  {
3559#line 245
3560  __cil_tmp39 = (unsigned long )gluebi;
3561#line 245
3562  __cil_tmp40 = __cil_tmp39 + 1544;
3563#line 245
3564  __cil_tmp41 = *((struct ubi_volume_desc **)__cil_tmp40);
3565#line 245
3566  __cil_tmp42 = (void const   *)buf;
3567#line 245
3568  __cil_tmp43 = & offs;
3569#line 245
3570  __cil_tmp44 = *__cil_tmp43;
3571#line 245
3572  __cil_tmp45 = (int )to_write;
3573#line 245
3574  err = ubi_write(__cil_tmp41, lnum, __cil_tmp42, __cil_tmp44, __cil_tmp45);
3575  }
3576#line 246
3577  if (err != 0) {
3578#line 247
3579    goto ldv_18911;
3580  } else {
3581
3582  }
3583#line 249
3584  lnum = lnum + 1;
3585#line 250
3586  __cil_tmp46 = & offs;
3587#line 250
3588  *__cil_tmp46 = 0;
3589#line 251
3590  __cil_tmp47 = (unsigned int )to_write;
3591#line 251
3592  __cil_tmp48 = (unsigned int )total_written;
3593#line 251
3594  __cil_tmp49 = __cil_tmp48 - __cil_tmp47;
3595#line 251
3596  total_written = (int )__cil_tmp49;
3597#line 252
3598  buf = buf + to_write;
3599  ldv_18913: ;
3600#line 239
3601  if (total_written != 0) {
3602#line 240
3603    goto ldv_18912;
3604  } else {
3605#line 242
3606    goto ldv_18911;
3607  }
3608  ldv_18911: 
3609#line 255
3610  __cil_tmp50 = (size_t )total_written;
3611#line 255
3612  *retlen = len - __cil_tmp50;
3613#line 256
3614  return (err);
3615}
3616}
3617#line 267 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
3618static int gluebi_erase(struct mtd_info *mtd , struct erase_info *instr ) 
3619{ int err ;
3620  int i ;
3621  int lnum ;
3622  int count ;
3623  struct gluebi_device *gluebi ;
3624  uint32_t tmp ;
3625  uint32_t tmp___0 ;
3626  uint32_t tmp___1 ;
3627  uint32_t tmp___2 ;
3628  struct mtd_info  const  *__mptr ;
3629  unsigned long __cil_tmp13 ;
3630  unsigned long __cil_tmp14 ;
3631  uint64_t __cil_tmp15 ;
3632  unsigned long __cil_tmp16 ;
3633  unsigned long __cil_tmp17 ;
3634  uint64_t __cil_tmp18 ;
3635  unsigned long __cil_tmp19 ;
3636  unsigned long __cil_tmp20 ;
3637  uint64_t __cil_tmp21 ;
3638  unsigned long __cil_tmp22 ;
3639  unsigned long __cil_tmp23 ;
3640  uint64_t __cil_tmp24 ;
3641  unsigned long __cil_tmp25 ;
3642  unsigned long __cil_tmp26 ;
3643  struct ubi_volume_desc *__cil_tmp27 ;
3644  int __cil_tmp28 ;
3645  int __cil_tmp29 ;
3646  unsigned long __cil_tmp30 ;
3647  unsigned long __cil_tmp31 ;
3648  struct ubi_volume_desc *__cil_tmp32 ;
3649  int __cil_tmp33 ;
3650  unsigned long __cil_tmp34 ;
3651  unsigned long __cil_tmp35 ;
3652  unsigned long __cil_tmp36 ;
3653  unsigned long __cil_tmp37 ;
3654  unsigned long __cil_tmp38 ;
3655  unsigned long __cil_tmp39 ;
3656  unsigned long __cil_tmp40 ;
3657  unsigned long __cil_tmp41 ;
3658  uint32_t __cil_tmp42 ;
3659  long long __cil_tmp43 ;
3660  long long __cil_tmp44 ;
3661  long long __cil_tmp45 ;
3662
3663  {
3664  {
3665#line 272
3666  __cil_tmp13 = (unsigned long )instr;
3667#line 272
3668  __cil_tmp14 = __cil_tmp13 + 8;
3669#line 272
3670  __cil_tmp15 = *((uint64_t *)__cil_tmp14);
3671#line 272
3672  tmp = mtd_mod_by_ws(__cil_tmp15, mtd);
3673  }
3674#line 272
3675  if (tmp != 0U) {
3676#line 273
3677    return (-22);
3678  } else {
3679    {
3680#line 272
3681    __cil_tmp16 = (unsigned long )instr;
3682#line 272
3683    __cil_tmp17 = __cil_tmp16 + 16;
3684#line 272
3685    __cil_tmp18 = *((uint64_t *)__cil_tmp17);
3686#line 272
3687    tmp___0 = mtd_mod_by_ws(__cil_tmp18, mtd);
3688    }
3689#line 272
3690    if (tmp___0 != 0U) {
3691#line 273
3692      return (-22);
3693    } else {
3694
3695    }
3696  }
3697  {
3698#line 275
3699  __cil_tmp19 = (unsigned long )instr;
3700#line 275
3701  __cil_tmp20 = __cil_tmp19 + 8;
3702#line 275
3703  __cil_tmp21 = *((uint64_t *)__cil_tmp20);
3704#line 275
3705  tmp___1 = mtd_div_by_eb(__cil_tmp21, mtd);
3706#line 275
3707  lnum = (int )tmp___1;
3708#line 276
3709  __cil_tmp22 = (unsigned long )instr;
3710#line 276
3711  __cil_tmp23 = __cil_tmp22 + 16;
3712#line 276
3713  __cil_tmp24 = *((uint64_t *)__cil_tmp23);
3714#line 276
3715  tmp___2 = mtd_div_by_eb(__cil_tmp24, mtd);
3716#line 276
3717  count = (int )tmp___2;
3718#line 277
3719  __mptr = (struct mtd_info  const  *)mtd;
3720#line 277
3721  gluebi = (struct gluebi_device *)__mptr;
3722#line 279
3723  i = 0;
3724  }
3725#line 279
3726  goto ldv_18927;
3727  ldv_18926: 
3728  {
3729#line 280
3730  __cil_tmp25 = (unsigned long )gluebi;
3731#line 280
3732  __cil_tmp26 = __cil_tmp25 + 1544;
3733#line 280
3734  __cil_tmp27 = *((struct ubi_volume_desc **)__cil_tmp26);
3735#line 280
3736  __cil_tmp28 = lnum + i;
3737#line 280
3738  err = ubi_leb_unmap(__cil_tmp27, __cil_tmp28);
3739  }
3740#line 281
3741  if (err != 0) {
3742#line 282
3743    goto out_err;
3744  } else {
3745
3746  }
3747#line 279
3748  i = i + 1;
3749  ldv_18927: ;
3750  {
3751#line 279
3752  __cil_tmp29 = count + -1;
3753#line 279
3754  if (__cil_tmp29 > i) {
3755#line 280
3756    goto ldv_18926;
3757  } else {
3758#line 282
3759    goto ldv_18928;
3760  }
3761  }
3762  ldv_18928: 
3763  {
3764#line 291
3765  __cil_tmp30 = (unsigned long )gluebi;
3766#line 291
3767  __cil_tmp31 = __cil_tmp30 + 1544;
3768#line 291
3769  __cil_tmp32 = *((struct ubi_volume_desc **)__cil_tmp31);
3770#line 291
3771  __cil_tmp33 = lnum + i;
3772#line 291
3773  err = ubi_leb_erase(__cil_tmp32, __cil_tmp33);
3774  }
3775#line 292
3776  if (err != 0) {
3777#line 293
3778    goto out_err;
3779  } else {
3780
3781  }
3782  {
3783#line 295
3784  __cil_tmp34 = (unsigned long )instr;
3785#line 295
3786  __cil_tmp35 = __cil_tmp34 + 72;
3787#line 295
3788  *((u_char *)__cil_tmp35) = (u_char )8U;
3789#line 296
3790  mtd_erase_callback(instr);
3791  }
3792#line 297
3793  return (0);
3794  out_err: 
3795#line 300
3796  __cil_tmp36 = (unsigned long )instr;
3797#line 300
3798  __cil_tmp37 = __cil_tmp36 + 72;
3799#line 300
3800  *((u_char *)__cil_tmp37) = (u_char )16U;
3801#line 301
3802  __cil_tmp38 = (unsigned long )instr;
3803#line 301
3804  __cil_tmp39 = __cil_tmp38 + 24;
3805#line 301
3806  __cil_tmp40 = (unsigned long )mtd;
3807#line 301
3808  __cil_tmp41 = __cil_tmp40 + 16;
3809#line 301
3810  __cil_tmp42 = *((uint32_t *)__cil_tmp41);
3811#line 301
3812  __cil_tmp43 = (long long )__cil_tmp42;
3813#line 301
3814  __cil_tmp44 = (long long )lnum;
3815#line 301
3816  __cil_tmp45 = __cil_tmp44 * __cil_tmp43;
3817#line 301
3818  *((uint64_t *)__cil_tmp39) = (uint64_t )__cil_tmp45;
3819#line 302
3820  return (err);
3821}
3822}
3823#line 314 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
3824static int gluebi_create(struct ubi_device_info *di , struct ubi_volume_info *vi ) 
3825{ struct gluebi_device *gluebi ;
3826  struct gluebi_device *g ;
3827  struct mtd_info *mtd ;
3828  void *tmp ;
3829  void *tmp___0 ;
3830  struct task_struct *tmp___1 ;
3831  struct task_struct *tmp___2 ;
3832  int tmp___3 ;
3833  struct gluebi_device *__cil_tmp11 ;
3834  unsigned long __cil_tmp12 ;
3835  unsigned long __cil_tmp13 ;
3836  unsigned long __cil_tmp14 ;
3837  unsigned long __cil_tmp15 ;
3838  char const   *__cil_tmp16 ;
3839  void const   *__cil_tmp17 ;
3840  unsigned long __cil_tmp18 ;
3841  unsigned long __cil_tmp19 ;
3842  int __cil_tmp20 ;
3843  int __cil_tmp21 ;
3844  size_t __cil_tmp22 ;
3845  unsigned long __cil_tmp23 ;
3846  unsigned long __cil_tmp24 ;
3847  char const   *__cil_tmp25 ;
3848  unsigned long __cil_tmp26 ;
3849  unsigned long __cil_tmp27 ;
3850  unsigned long __cil_tmp28 ;
3851  char const   *__cil_tmp29 ;
3852  unsigned long __cil_tmp30 ;
3853  void const   *__cil_tmp31 ;
3854  unsigned long __cil_tmp32 ;
3855  unsigned long __cil_tmp33 ;
3856  unsigned long __cil_tmp34 ;
3857  unsigned long __cil_tmp35 ;
3858  unsigned long __cil_tmp36 ;
3859  unsigned long __cil_tmp37 ;
3860  unsigned long __cil_tmp38 ;
3861  unsigned long __cil_tmp39 ;
3862  int __cil_tmp40 ;
3863  unsigned long __cil_tmp41 ;
3864  unsigned long __cil_tmp42 ;
3865  unsigned long __cil_tmp43 ;
3866  unsigned long __cil_tmp44 ;
3867  unsigned long __cil_tmp45 ;
3868  unsigned long __cil_tmp46 ;
3869  unsigned long __cil_tmp47 ;
3870  unsigned long __cil_tmp48 ;
3871  int __cil_tmp49 ;
3872  unsigned long __cil_tmp50 ;
3873  unsigned long __cil_tmp51 ;
3874  unsigned long __cil_tmp52 ;
3875  unsigned long __cil_tmp53 ;
3876  int __cil_tmp54 ;
3877  unsigned long __cil_tmp55 ;
3878  unsigned long __cil_tmp56 ;
3879  unsigned long __cil_tmp57 ;
3880  unsigned long __cil_tmp58 ;
3881  unsigned long __cil_tmp59 ;
3882  unsigned long __cil_tmp60 ;
3883  unsigned long __cil_tmp61 ;
3884  unsigned long __cil_tmp62 ;
3885  unsigned long __cil_tmp63 ;
3886  unsigned long __cil_tmp64 ;
3887  unsigned long __cil_tmp65 ;
3888  unsigned long __cil_tmp66 ;
3889  int __cil_tmp67 ;
3890  unsigned long __cil_tmp68 ;
3891  unsigned long __cil_tmp69 ;
3892  unsigned long __cil_tmp70 ;
3893  unsigned long __cil_tmp71 ;
3894  int __cil_tmp72 ;
3895  unsigned long long __cil_tmp73 ;
3896  unsigned long __cil_tmp74 ;
3897  unsigned long __cil_tmp75 ;
3898  int __cil_tmp76 ;
3899  unsigned long long __cil_tmp77 ;
3900  unsigned long __cil_tmp78 ;
3901  unsigned long __cil_tmp79 ;
3902  unsigned long __cil_tmp80 ;
3903  unsigned long __cil_tmp81 ;
3904  long long __cil_tmp82 ;
3905  int __cil_tmp83 ;
3906  unsigned long __cil_tmp84 ;
3907  unsigned long __cil_tmp85 ;
3908  int __cil_tmp86 ;
3909  struct gluebi_device *__cil_tmp87 ;
3910  unsigned long __cil_tmp88 ;
3911  unsigned long __cil_tmp89 ;
3912  unsigned long __cil_tmp90 ;
3913  unsigned long __cil_tmp91 ;
3914  pid_t __cil_tmp92 ;
3915  unsigned long __cil_tmp93 ;
3916  unsigned long __cil_tmp94 ;
3917  unsigned long __cil_tmp95 ;
3918  int __cil_tmp96 ;
3919  int __cil_tmp97 ;
3920  unsigned long __cil_tmp98 ;
3921  unsigned long __cil_tmp99 ;
3922  int __cil_tmp100 ;
3923  char const   **__cil_tmp101 ;
3924  struct mtd_part_parser_data *__cil_tmp102 ;
3925  struct mtd_partition  const  *__cil_tmp103 ;
3926  unsigned long __cil_tmp104 ;
3927  unsigned long __cil_tmp105 ;
3928  pid_t __cil_tmp106 ;
3929  unsigned long __cil_tmp107 ;
3930  unsigned long __cil_tmp108 ;
3931  char const   *__cil_tmp109 ;
3932  void const   *__cil_tmp110 ;
3933  void const   *__cil_tmp111 ;
3934  unsigned long __cil_tmp112 ;
3935  unsigned long __cil_tmp113 ;
3936  struct list_head *__cil_tmp114 ;
3937
3938  {
3939  {
3940#line 320
3941  tmp = kzalloc(1576UL, 208U);
3942#line 320
3943  gluebi = (struct gluebi_device *)tmp;
3944  }
3945  {
3946#line 321
3947  __cil_tmp11 = (struct gluebi_device *)0;
3948#line 321
3949  __cil_tmp12 = (unsigned long )__cil_tmp11;
3950#line 321
3951  __cil_tmp13 = (unsigned long )gluebi;
3952#line 321
3953  if (__cil_tmp13 == __cil_tmp12) {
3954#line 322
3955    return (-12);
3956  } else {
3957
3958  }
3959  }
3960  {
3961#line 324
3962  mtd = (struct mtd_info *)gluebi;
3963#line 325
3964  __cil_tmp14 = (unsigned long )vi;
3965#line 325
3966  __cil_tmp15 = __cil_tmp14 + 56;
3967#line 325
3968  __cil_tmp16 = *((char const   **)__cil_tmp15);
3969#line 325
3970  __cil_tmp17 = (void const   *)__cil_tmp16;
3971#line 325
3972  __cil_tmp18 = (unsigned long )vi;
3973#line 325
3974  __cil_tmp19 = __cil_tmp18 + 48;
3975#line 325
3976  __cil_tmp20 = *((int *)__cil_tmp19);
3977#line 325
3978  __cil_tmp21 = __cil_tmp20 + 1;
3979#line 325
3980  __cil_tmp22 = (size_t )__cil_tmp21;
3981#line 325
3982  tmp___0 = kmemdup(__cil_tmp17, __cil_tmp22, 208U);
3983#line 325
3984  __cil_tmp23 = (unsigned long )mtd;
3985#line 325
3986  __cil_tmp24 = __cil_tmp23 + 56;
3987#line 325
3988  *((char const   **)__cil_tmp24) = (char const   *)tmp___0;
3989  }
3990  {
3991#line 326
3992  __cil_tmp25 = (char const   *)0;
3993#line 326
3994  __cil_tmp26 = (unsigned long )__cil_tmp25;
3995#line 326
3996  __cil_tmp27 = (unsigned long )mtd;
3997#line 326
3998  __cil_tmp28 = __cil_tmp27 + 56;
3999#line 326
4000  __cil_tmp29 = *((char const   **)__cil_tmp28);
4001#line 326
4002  __cil_tmp30 = (unsigned long )__cil_tmp29;
4003#line 326
4004  if (__cil_tmp30 == __cil_tmp26) {
4005    {
4006#line 327
4007    __cil_tmp31 = (void const   *)gluebi;
4008#line 327
4009    kfree(__cil_tmp31);
4010    }
4011#line 328
4012    return (-12);
4013  } else {
4014
4015  }
4016  }
4017#line 331
4018  __cil_tmp32 = (unsigned long )gluebi;
4019#line 331
4020  __cil_tmp33 = __cil_tmp32 + 1556;
4021#line 331
4022  __cil_tmp34 = (unsigned long )vi;
4023#line 331
4024  __cil_tmp35 = __cil_tmp34 + 4;
4025#line 331
4026  *((int *)__cil_tmp33) = *((int *)__cil_tmp35);
4027#line 332
4028  __cil_tmp36 = (unsigned long )gluebi;
4029#line 332
4030  __cil_tmp37 = __cil_tmp36 + 1552;
4031#line 332
4032  *((int *)__cil_tmp37) = *((int *)vi);
4033#line 333
4034  *((u_char *)mtd) = (u_char )7U;
4035  {
4036#line 334
4037  __cil_tmp38 = (unsigned long )di;
4038#line 334
4039  __cil_tmp39 = __cil_tmp38 + 20;
4040#line 334
4041  __cil_tmp40 = *((int *)__cil_tmp39);
4042#line 334
4043  if (__cil_tmp40 == 0) {
4044#line 335
4045    __cil_tmp41 = (unsigned long )mtd;
4046#line 335
4047    __cil_tmp42 = __cil_tmp41 + 4;
4048#line 335
4049    *((uint32_t *)__cil_tmp42) = 1024U;
4050  } else {
4051
4052  }
4053  }
4054#line 336
4055  __cil_tmp43 = (unsigned long )mtd;
4056#line 336
4057  __cil_tmp44 = __cil_tmp43 + 368;
4058#line 336
4059  *((struct module **)__cil_tmp44) = & __this_module;
4060#line 337
4061  __cil_tmp45 = (unsigned long )mtd;
4062#line 337
4063  __cil_tmp46 = __cil_tmp45 + 20;
4064#line 337
4065  __cil_tmp47 = (unsigned long )di;
4066#line 337
4067  __cil_tmp48 = __cil_tmp47 + 12;
4068#line 337
4069  __cil_tmp49 = *((int *)__cil_tmp48);
4070#line 337
4071  *((uint32_t *)__cil_tmp46) = (uint32_t )__cil_tmp49;
4072#line 338
4073  __cil_tmp50 = (unsigned long )mtd;
4074#line 338
4075  __cil_tmp51 = __cil_tmp50 + 16;
4076#line 338
4077  __cil_tmp52 = (unsigned long )vi;
4078#line 338
4079  __cil_tmp53 = __cil_tmp52 + 44;
4080#line 338
4081  __cil_tmp54 = *((int *)__cil_tmp53);
4082#line 338
4083  *((uint32_t *)__cil_tmp51) = (uint32_t )__cil_tmp54;
4084#line 339
4085  __cil_tmp55 = (unsigned long )mtd;
4086#line 339
4087  __cil_tmp56 = __cil_tmp55 + 128;
4088#line 339
4089  *((int (**)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ))__cil_tmp56) = & gluebi_read;
4090#line 340
4091  __cil_tmp57 = (unsigned long )mtd;
4092#line 340
4093  __cil_tmp58 = __cil_tmp57 + 136;
4094#line 340
4095  *((int (**)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ))__cil_tmp58) = & gluebi_write;
4096#line 341
4097  __cil_tmp59 = (unsigned long )mtd;
4098#line 341
4099  __cil_tmp60 = __cil_tmp59 + 96;
4100#line 341
4101  *((int (**)(struct mtd_info * , struct erase_info * ))__cil_tmp60) = & gluebi_erase;
4102#line 342
4103  __cil_tmp61 = (unsigned long )mtd;
4104#line 342
4105  __cil_tmp62 = __cil_tmp61 + 288;
4106#line 342
4107  *((int (**)(struct mtd_info * ))__cil_tmp62) = & gluebi_get_device;
4108#line 343
4109  __cil_tmp63 = (unsigned long )mtd;
4110#line 343
4111  __cil_tmp64 = __cil_tmp63 + 296;
4112#line 343
4113  *((void (**)(struct mtd_info * ))__cil_tmp64) = & gluebi_put_device;
4114  {
4115#line 350
4116  __cil_tmp65 = (unsigned long )vi;
4117#line 350
4118  __cil_tmp66 = __cil_tmp65 + 28;
4119#line 350
4120  __cil_tmp67 = *((int *)__cil_tmp66);
4121#line 350
4122  if (__cil_tmp67 == 3) {
4123#line 351
4124    __cil_tmp68 = (unsigned long )mtd;
4125#line 351
4126    __cil_tmp69 = __cil_tmp68 + 8;
4127#line 351
4128    __cil_tmp70 = (unsigned long )vi;
4129#line 351
4130    __cil_tmp71 = __cil_tmp70 + 8;
4131#line 351
4132    __cil_tmp72 = *((int *)__cil_tmp71);
4133#line 351
4134    __cil_tmp73 = (unsigned long long )__cil_tmp72;
4135#line 351
4136    __cil_tmp74 = (unsigned long )vi;
4137#line 351
4138    __cil_tmp75 = __cil_tmp74 + 44;
4139#line 351
4140    __cil_tmp76 = *((int *)__cil_tmp75);
4141#line 351
4142    __cil_tmp77 = (unsigned long long )__cil_tmp76;
4143#line 351
4144    *((uint64_t *)__cil_tmp69) = __cil_tmp77 * __cil_tmp73;
4145  } else {
4146#line 353
4147    __cil_tmp78 = (unsigned long )mtd;
4148#line 353
4149    __cil_tmp79 = __cil_tmp78 + 8;
4150#line 353
4151    __cil_tmp80 = (unsigned long )vi;
4152#line 353
4153    __cil_tmp81 = __cil_tmp80 + 16;
4154#line 353
4155    __cil_tmp82 = *((long long *)__cil_tmp81);
4156#line 353
4157    *((uint64_t *)__cil_tmp79) = (uint64_t )__cil_tmp82;
4158  }
4159  }
4160  {
4161#line 356
4162  mutex_lock_nested(& devices_mutex, 0U);
4163#line 357
4164  __cil_tmp83 = *((int *)vi);
4165#line 357
4166  __cil_tmp84 = (unsigned long )vi;
4167#line 357
4168  __cil_tmp85 = __cil_tmp84 + 4;
4169#line 357
4170  __cil_tmp86 = *((int *)__cil_tmp85);
4171#line 357
4172  g = find_gluebi_nolock(__cil_tmp83, __cil_tmp86);
4173  }
4174  {
4175#line 358
4176  __cil_tmp87 = (struct gluebi_device *)0;
4177#line 358
4178  __cil_tmp88 = (unsigned long )__cil_tmp87;
4179#line 358
4180  __cil_tmp89 = (unsigned long )g;
4181#line 358
4182  if (__cil_tmp89 != __cil_tmp88) {
4183    {
4184#line 359
4185    tmp___1 = get_current();
4186#line 359
4187    __cil_tmp90 = (unsigned long )tmp___1;
4188#line 359
4189    __cil_tmp91 = __cil_tmp90 + 1144;
4190#line 359
4191    __cil_tmp92 = *((pid_t *)__cil_tmp91);
4192#line 359
4193    __cil_tmp93 = 0 + 64;
4194#line 359
4195    __cil_tmp94 = (unsigned long )g;
4196#line 359
4197    __cil_tmp95 = __cil_tmp94 + __cil_tmp93;
4198#line 359
4199    __cil_tmp96 = *((int *)__cil_tmp95);
4200#line 359
4201    __cil_tmp97 = *((int *)vi);
4202#line 359
4203    __cil_tmp98 = (unsigned long )vi;
4204#line 359
4205    __cil_tmp99 = __cil_tmp98 + 4;
4206#line 359
4207    __cil_tmp100 = *((int *)__cil_tmp99);
4208#line 359
4209    printk("<7>gluebi (pid %d): %s: gluebi MTD device %d form UBI device %d volume %d already exists\n",
4210           __cil_tmp92, "gluebi_create", __cil_tmp96, __cil_tmp97, __cil_tmp100);
4211    }
4212  } else {
4213
4214  }
4215  }
4216  {
4217#line 362
4218  mutex_unlock(& devices_mutex);
4219#line 364
4220  __cil_tmp101 = (char const   **)0;
4221#line 364
4222  __cil_tmp102 = (struct mtd_part_parser_data *)0;
4223#line 364
4224  __cil_tmp103 = (struct mtd_partition  const  *)0;
4225#line 364
4226  tmp___3 = mtd_device_parse_register(mtd, __cil_tmp101, __cil_tmp102, __cil_tmp103,
4227                                      0);
4228  }
4229#line 364
4230  if (tmp___3 != 0) {
4231    {
4232#line 365
4233    tmp___2 = get_current();
4234#line 365
4235    __cil_tmp104 = (unsigned long )tmp___2;
4236#line 365
4237    __cil_tmp105 = __cil_tmp104 + 1144;
4238#line 365
4239    __cil_tmp106 = *((pid_t *)__cil_tmp105);
4240#line 365
4241    printk("<7>gluebi (pid %d): %s: cannot add MTD device\n", __cil_tmp106, "gluebi_create");
4242#line 366
4243    __cil_tmp107 = (unsigned long )mtd;
4244#line 366
4245    __cil_tmp108 = __cil_tmp107 + 56;
4246#line 366
4247    __cil_tmp109 = *((char const   **)__cil_tmp108);
4248#line 366
4249    __cil_tmp110 = (void const   *)__cil_tmp109;
4250#line 366
4251    kfree(__cil_tmp110);
4252#line 367
4253    __cil_tmp111 = (void const   *)gluebi;
4254#line 367
4255    kfree(__cil_tmp111);
4256    }
4257#line 368
4258    return (-23);
4259  } else {
4260
4261  }
4262  {
4263#line 371
4264  mutex_lock_nested(& devices_mutex, 0U);
4265#line 372
4266  __cil_tmp112 = (unsigned long )gluebi;
4267#line 372
4268  __cil_tmp113 = __cil_tmp112 + 1560;
4269#line 372
4270  __cil_tmp114 = (struct list_head *)__cil_tmp113;
4271#line 372
4272  list_add_tail(__cil_tmp114, & gluebi_devices);
4273#line 373
4274  mutex_unlock(& devices_mutex);
4275  }
4276#line 374
4277  return (0);
4278}
4279}
4280#line 385 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4281static int gluebi_remove(struct ubi_volume_info *vi ) 
4282{ int err ;
4283  struct mtd_info *mtd ;
4284  struct gluebi_device *gluebi ;
4285  struct task_struct *tmp ;
4286  struct task_struct *tmp___0 ;
4287  int __cil_tmp7 ;
4288  unsigned long __cil_tmp8 ;
4289  unsigned long __cil_tmp9 ;
4290  int __cil_tmp10 ;
4291  struct gluebi_device *__cil_tmp11 ;
4292  unsigned long __cil_tmp12 ;
4293  unsigned long __cil_tmp13 ;
4294  unsigned long __cil_tmp14 ;
4295  unsigned long __cil_tmp15 ;
4296  pid_t __cil_tmp16 ;
4297  int __cil_tmp17 ;
4298  unsigned long __cil_tmp18 ;
4299  unsigned long __cil_tmp19 ;
4300  int __cil_tmp20 ;
4301  unsigned long __cil_tmp21 ;
4302  unsigned long __cil_tmp22 ;
4303  int __cil_tmp23 ;
4304  unsigned long __cil_tmp24 ;
4305  unsigned long __cil_tmp25 ;
4306  struct list_head *__cil_tmp26 ;
4307  unsigned long __cil_tmp27 ;
4308  unsigned long __cil_tmp28 ;
4309  pid_t __cil_tmp29 ;
4310  unsigned long __cil_tmp30 ;
4311  unsigned long __cil_tmp31 ;
4312  int __cil_tmp32 ;
4313  unsigned long __cil_tmp33 ;
4314  unsigned long __cil_tmp34 ;
4315  int __cil_tmp35 ;
4316  unsigned long __cil_tmp36 ;
4317  unsigned long __cil_tmp37 ;
4318  int __cil_tmp38 ;
4319  unsigned long __cil_tmp39 ;
4320  unsigned long __cil_tmp40 ;
4321  struct list_head *__cil_tmp41 ;
4322  unsigned long __cil_tmp42 ;
4323  unsigned long __cil_tmp43 ;
4324  char const   *__cil_tmp44 ;
4325  void const   *__cil_tmp45 ;
4326  void const   *__cil_tmp46 ;
4327
4328  {
4329  {
4330#line 387
4331  err = 0;
4332#line 391
4333  mutex_lock_nested(& devices_mutex, 0U);
4334#line 392
4335  __cil_tmp7 = *((int *)vi);
4336#line 392
4337  __cil_tmp8 = (unsigned long )vi;
4338#line 392
4339  __cil_tmp9 = __cil_tmp8 + 4;
4340#line 392
4341  __cil_tmp10 = *((int *)__cil_tmp9);
4342#line 392
4343  gluebi = find_gluebi_nolock(__cil_tmp7, __cil_tmp10);
4344  }
4345  {
4346#line 393
4347  __cil_tmp11 = (struct gluebi_device *)0;
4348#line 393
4349  __cil_tmp12 = (unsigned long )__cil_tmp11;
4350#line 393
4351  __cil_tmp13 = (unsigned long )gluebi;
4352#line 393
4353  if (__cil_tmp13 == __cil_tmp12) {
4354    {
4355#line 394
4356    tmp = get_current();
4357#line 394
4358    __cil_tmp14 = (unsigned long )tmp;
4359#line 394
4360    __cil_tmp15 = __cil_tmp14 + 1144;
4361#line 394
4362    __cil_tmp16 = *((pid_t *)__cil_tmp15);
4363#line 394
4364    __cil_tmp17 = *((int *)vi);
4365#line 394
4366    __cil_tmp18 = (unsigned long )vi;
4367#line 394
4368    __cil_tmp19 = __cil_tmp18 + 4;
4369#line 394
4370    __cil_tmp20 = *((int *)__cil_tmp19);
4371#line 394
4372    printk("<7>gluebi (pid %d): %s: got remove notification for unknown UBI device %d volume %d\n",
4373           __cil_tmp16, "gluebi_remove", __cil_tmp17, __cil_tmp20);
4374#line 396
4375    err = -2;
4376    }
4377  } else {
4378    {
4379#line 397
4380    __cil_tmp21 = (unsigned long )gluebi;
4381#line 397
4382    __cil_tmp22 = __cil_tmp21 + 1536;
4383#line 397
4384    __cil_tmp23 = *((int *)__cil_tmp22);
4385#line 397
4386    if (__cil_tmp23 != 0) {
4387#line 398
4388      err = -16;
4389    } else {
4390      {
4391#line 400
4392      __cil_tmp24 = (unsigned long )gluebi;
4393#line 400
4394      __cil_tmp25 = __cil_tmp24 + 1560;
4395#line 400
4396      __cil_tmp26 = (struct list_head *)__cil_tmp25;
4397#line 400
4398      list_del(__cil_tmp26);
4399      }
4400    }
4401    }
4402  }
4403  }
4404  {
4405#line 401
4406  mutex_unlock(& devices_mutex);
4407  }
4408#line 402
4409  if (err != 0) {
4410#line 403
4411    return (err);
4412  } else {
4413
4414  }
4415  {
4416#line 405
4417  mtd = (struct mtd_info *)gluebi;
4418#line 406
4419  err = mtd_device_unregister(mtd);
4420  }
4421#line 407
4422  if (err != 0) {
4423    {
4424#line 408
4425    tmp___0 = get_current();
4426#line 408
4427    __cil_tmp27 = (unsigned long )tmp___0;
4428#line 408
4429    __cil_tmp28 = __cil_tmp27 + 1144;
4430#line 408
4431    __cil_tmp29 = *((pid_t *)__cil_tmp28);
4432#line 408
4433    __cil_tmp30 = (unsigned long )mtd;
4434#line 408
4435    __cil_tmp31 = __cil_tmp30 + 64;
4436#line 408
4437    __cil_tmp32 = *((int *)__cil_tmp31);
4438#line 408
4439    __cil_tmp33 = (unsigned long )gluebi;
4440#line 408
4441    __cil_tmp34 = __cil_tmp33 + 1552;
4442#line 408
4443    __cil_tmp35 = *((int *)__cil_tmp34);
4444#line 408
4445    __cil_tmp36 = (unsigned long )gluebi;
4446#line 408
4447    __cil_tmp37 = __cil_tmp36 + 1556;
4448#line 408
4449    __cil_tmp38 = *((int *)__cil_tmp37);
4450#line 408
4451    printk("<7>gluebi (pid %d): %s: cannot remove fake MTD device %d, UBI device %d, volume %d, error %d\n",
4452           __cil_tmp29, "gluebi_remove", __cil_tmp32, __cil_tmp35, __cil_tmp38, err);
4453#line 411
4454    mutex_lock_nested(& devices_mutex, 0U);
4455#line 412
4456    __cil_tmp39 = (unsigned long )gluebi;
4457#line 412
4458    __cil_tmp40 = __cil_tmp39 + 1560;
4459#line 412
4460    __cil_tmp41 = (struct list_head *)__cil_tmp40;
4461#line 412
4462    list_add_tail(__cil_tmp41, & gluebi_devices);
4463#line 413
4464    mutex_unlock(& devices_mutex);
4465    }
4466#line 414
4467    return (err);
4468  } else {
4469
4470  }
4471  {
4472#line 417
4473  __cil_tmp42 = (unsigned long )mtd;
4474#line 417
4475  __cil_tmp43 = __cil_tmp42 + 56;
4476#line 417
4477  __cil_tmp44 = *((char const   **)__cil_tmp43);
4478#line 417
4479  __cil_tmp45 = (void const   *)__cil_tmp44;
4480#line 417
4481  kfree(__cil_tmp45);
4482#line 418
4483  __cil_tmp46 = (void const   *)gluebi;
4484#line 418
4485  kfree(__cil_tmp46);
4486  }
4487#line 419
4488  return (0);
4489}
4490}
4491#line 432 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4492static int gluebi_updated(struct ubi_volume_info *vi ) 
4493{ struct gluebi_device *gluebi ;
4494  struct task_struct *tmp ;
4495  int __cil_tmp4 ;
4496  unsigned long __cil_tmp5 ;
4497  unsigned long __cil_tmp6 ;
4498  int __cil_tmp7 ;
4499  struct gluebi_device *__cil_tmp8 ;
4500  unsigned long __cil_tmp9 ;
4501  unsigned long __cil_tmp10 ;
4502  unsigned long __cil_tmp11 ;
4503  unsigned long __cil_tmp12 ;
4504  pid_t __cil_tmp13 ;
4505  int __cil_tmp14 ;
4506  unsigned long __cil_tmp15 ;
4507  unsigned long __cil_tmp16 ;
4508  int __cil_tmp17 ;
4509  unsigned long __cil_tmp18 ;
4510  unsigned long __cil_tmp19 ;
4511  int __cil_tmp20 ;
4512  unsigned long __cil_tmp21 ;
4513  unsigned long __cil_tmp22 ;
4514  unsigned long __cil_tmp23 ;
4515  unsigned long __cil_tmp24 ;
4516  unsigned long __cil_tmp25 ;
4517  long long __cil_tmp26 ;
4518
4519  {
4520  {
4521#line 436
4522  mutex_lock_nested(& devices_mutex, 0U);
4523#line 437
4524  __cil_tmp4 = *((int *)vi);
4525#line 437
4526  __cil_tmp5 = (unsigned long )vi;
4527#line 437
4528  __cil_tmp6 = __cil_tmp5 + 4;
4529#line 437
4530  __cil_tmp7 = *((int *)__cil_tmp6);
4531#line 437
4532  gluebi = find_gluebi_nolock(__cil_tmp4, __cil_tmp7);
4533  }
4534  {
4535#line 438
4536  __cil_tmp8 = (struct gluebi_device *)0;
4537#line 438
4538  __cil_tmp9 = (unsigned long )__cil_tmp8;
4539#line 438
4540  __cil_tmp10 = (unsigned long )gluebi;
4541#line 438
4542  if (__cil_tmp10 == __cil_tmp9) {
4543    {
4544#line 439
4545    mutex_unlock(& devices_mutex);
4546#line 440
4547    tmp = get_current();
4548#line 440
4549    __cil_tmp11 = (unsigned long )tmp;
4550#line 440
4551    __cil_tmp12 = __cil_tmp11 + 1144;
4552#line 440
4553    __cil_tmp13 = *((pid_t *)__cil_tmp12);
4554#line 440
4555    __cil_tmp14 = *((int *)vi);
4556#line 440
4557    __cil_tmp15 = (unsigned long )vi;
4558#line 440
4559    __cil_tmp16 = __cil_tmp15 + 4;
4560#line 440
4561    __cil_tmp17 = *((int *)__cil_tmp16);
4562#line 440
4563    printk("<7>gluebi (pid %d): %s: got update notification for unknown UBI device %d volume %d\n",
4564           __cil_tmp13, "gluebi_updated", __cil_tmp14, __cil_tmp17);
4565    }
4566#line 442
4567    return (-2);
4568  } else {
4569
4570  }
4571  }
4572  {
4573#line 445
4574  __cil_tmp18 = (unsigned long )vi;
4575#line 445
4576  __cil_tmp19 = __cil_tmp18 + 28;
4577#line 445
4578  __cil_tmp20 = *((int *)__cil_tmp19);
4579#line 445
4580  if (__cil_tmp20 == 4) {
4581#line 446
4582    __cil_tmp21 = 0 + 8;
4583#line 446
4584    __cil_tmp22 = (unsigned long )gluebi;
4585#line 446
4586    __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
4587#line 446
4588    __cil_tmp24 = (unsigned long )vi;
4589#line 446
4590    __cil_tmp25 = __cil_tmp24 + 16;
4591#line 446
4592    __cil_tmp26 = *((long long *)__cil_tmp25);
4593#line 446
4594    *((uint64_t *)__cil_tmp23) = (uint64_t )__cil_tmp26;
4595  } else {
4596
4597  }
4598  }
4599  {
4600#line 447
4601  mutex_unlock(& devices_mutex);
4602  }
4603#line 448
4604  return (0);
4605}
4606}
4607#line 459 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4608static int gluebi_resized(struct ubi_volume_info *vi ) 
4609{ struct gluebi_device *gluebi ;
4610  struct task_struct *tmp ;
4611  int __cil_tmp4 ;
4612  unsigned long __cil_tmp5 ;
4613  unsigned long __cil_tmp6 ;
4614  int __cil_tmp7 ;
4615  struct gluebi_device *__cil_tmp8 ;
4616  unsigned long __cil_tmp9 ;
4617  unsigned long __cil_tmp10 ;
4618  unsigned long __cil_tmp11 ;
4619  unsigned long __cil_tmp12 ;
4620  pid_t __cil_tmp13 ;
4621  int __cil_tmp14 ;
4622  unsigned long __cil_tmp15 ;
4623  unsigned long __cil_tmp16 ;
4624  int __cil_tmp17 ;
4625  unsigned long __cil_tmp18 ;
4626  unsigned long __cil_tmp19 ;
4627  unsigned long __cil_tmp20 ;
4628  unsigned long __cil_tmp21 ;
4629  unsigned long __cil_tmp22 ;
4630  long long __cil_tmp23 ;
4631
4632  {
4633  {
4634#line 463
4635  mutex_lock_nested(& devices_mutex, 0U);
4636#line 464
4637  __cil_tmp4 = *((int *)vi);
4638#line 464
4639  __cil_tmp5 = (unsigned long )vi;
4640#line 464
4641  __cil_tmp6 = __cil_tmp5 + 4;
4642#line 464
4643  __cil_tmp7 = *((int *)__cil_tmp6);
4644#line 464
4645  gluebi = find_gluebi_nolock(__cil_tmp4, __cil_tmp7);
4646  }
4647  {
4648#line 465
4649  __cil_tmp8 = (struct gluebi_device *)0;
4650#line 465
4651  __cil_tmp9 = (unsigned long )__cil_tmp8;
4652#line 465
4653  __cil_tmp10 = (unsigned long )gluebi;
4654#line 465
4655  if (__cil_tmp10 == __cil_tmp9) {
4656    {
4657#line 466
4658    mutex_unlock(& devices_mutex);
4659#line 467
4660    tmp = get_current();
4661#line 467
4662    __cil_tmp11 = (unsigned long )tmp;
4663#line 467
4664    __cil_tmp12 = __cil_tmp11 + 1144;
4665#line 467
4666    __cil_tmp13 = *((pid_t *)__cil_tmp12);
4667#line 467
4668    __cil_tmp14 = *((int *)vi);
4669#line 467
4670    __cil_tmp15 = (unsigned long )vi;
4671#line 467
4672    __cil_tmp16 = __cil_tmp15 + 4;
4673#line 467
4674    __cil_tmp17 = *((int *)__cil_tmp16);
4675#line 467
4676    printk("<7>gluebi (pid %d): %s: got update notification for unknown UBI device %d volume %d\n",
4677           __cil_tmp13, "gluebi_resized", __cil_tmp14, __cil_tmp17);
4678    }
4679#line 469
4680    return (-2);
4681  } else {
4682
4683  }
4684  }
4685  {
4686#line 471
4687  __cil_tmp18 = 0 + 8;
4688#line 471
4689  __cil_tmp19 = (unsigned long )gluebi;
4690#line 471
4691  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
4692#line 471
4693  __cil_tmp21 = (unsigned long )vi;
4694#line 471
4695  __cil_tmp22 = __cil_tmp21 + 16;
4696#line 471
4697  __cil_tmp23 = *((long long *)__cil_tmp22);
4698#line 471
4699  *((uint64_t *)__cil_tmp20) = (uint64_t )__cil_tmp23;
4700#line 472
4701  mutex_unlock(& devices_mutex);
4702  }
4703#line 473
4704  return (0);
4705}
4706}
4707#line 482 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4708static int gluebi_notify(struct notifier_block *nb , unsigned long l , void *ns_ptr ) 
4709{ struct ubi_notification *nt ;
4710  struct ubi_device_info *__cil_tmp5 ;
4711  unsigned long __cil_tmp6 ;
4712  unsigned long __cil_tmp7 ;
4713  struct ubi_volume_info *__cil_tmp8 ;
4714  unsigned long __cil_tmp9 ;
4715  unsigned long __cil_tmp10 ;
4716  struct ubi_volume_info *__cil_tmp11 ;
4717  unsigned long __cil_tmp12 ;
4718  unsigned long __cil_tmp13 ;
4719  struct ubi_volume_info *__cil_tmp14 ;
4720  unsigned long __cil_tmp15 ;
4721  unsigned long __cil_tmp16 ;
4722  struct ubi_volume_info *__cil_tmp17 ;
4723
4724  {
4725#line 485
4726  nt = (struct ubi_notification *)ns_ptr;
4727#line 488
4728  if ((int )l == 0) {
4729#line 488
4730    goto case_0;
4731  } else
4732#line 491
4733  if ((int )l == 1) {
4734#line 491
4735    goto case_1;
4736  } else
4737#line 494
4738  if ((int )l == 2) {
4739#line 494
4740    goto case_2;
4741  } else
4742#line 497
4743  if ((int )l == 4) {
4744#line 497
4745    goto case_4;
4746  } else {
4747    {
4748#line 500
4749    goto switch_default;
4750#line 487
4751    if (0) {
4752      case_0: /* CIL Label */ 
4753      {
4754#line 489
4755      __cil_tmp5 = (struct ubi_device_info *)nt;
4756#line 489
4757      __cil_tmp6 = (unsigned long )nt;
4758#line 489
4759      __cil_tmp7 = __cil_tmp6 + 32;
4760#line 489
4761      __cil_tmp8 = (struct ubi_volume_info *)__cil_tmp7;
4762#line 489
4763      gluebi_create(__cil_tmp5, __cil_tmp8);
4764      }
4765#line 490
4766      goto ldv_18961;
4767      case_1: /* CIL Label */ 
4768      {
4769#line 492
4770      __cil_tmp9 = (unsigned long )nt;
4771#line 492
4772      __cil_tmp10 = __cil_tmp9 + 32;
4773#line 492
4774      __cil_tmp11 = (struct ubi_volume_info *)__cil_tmp10;
4775#line 492
4776      gluebi_remove(__cil_tmp11);
4777      }
4778#line 493
4779      goto ldv_18961;
4780      case_2: /* CIL Label */ 
4781      {
4782#line 495
4783      __cil_tmp12 = (unsigned long )nt;
4784#line 495
4785      __cil_tmp13 = __cil_tmp12 + 32;
4786#line 495
4787      __cil_tmp14 = (struct ubi_volume_info *)__cil_tmp13;
4788#line 495
4789      gluebi_resized(__cil_tmp14);
4790      }
4791#line 496
4792      goto ldv_18961;
4793      case_4: /* CIL Label */ 
4794      {
4795#line 498
4796      __cil_tmp15 = (unsigned long )nt;
4797#line 498
4798      __cil_tmp16 = __cil_tmp15 + 32;
4799#line 498
4800      __cil_tmp17 = (struct ubi_volume_info *)__cil_tmp16;
4801#line 498
4802      gluebi_updated(__cil_tmp17);
4803      }
4804#line 499
4805      goto ldv_18961;
4806      switch_default: /* CIL Label */ ;
4807#line 501
4808      goto ldv_18961;
4809    } else {
4810      switch_break: /* CIL Label */ ;
4811    }
4812    }
4813  }
4814  ldv_18961: ;
4815#line 503
4816  return (1);
4817}
4818}
4819#line 506 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4820static struct notifier_block gluebi_notifier  =    {& gluebi_notify, (struct notifier_block *)0, 0};
4821#line 510 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4822static int ubi_gluebi_init(void) 
4823{ int tmp ;
4824
4825  {
4826  {
4827#line 512
4828  tmp = ubi_register_volume_notifier(& gluebi_notifier, 0);
4829  }
4830#line 512
4831  return (tmp);
4832}
4833}
4834#line 515 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
4835static void ubi_gluebi_exit(void) 
4836{ struct gluebi_device *gluebi ;
4837  struct gluebi_device *g ;
4838  struct list_head  const  *__mptr ;
4839  struct list_head  const  *__mptr___0 ;
4840  int err ;
4841  struct mtd_info *mtd ;
4842  struct task_struct *tmp ;
4843  struct list_head  const  *__mptr___1 ;
4844  struct list_head *__cil_tmp9 ;
4845  struct list_head *__cil_tmp10 ;
4846  struct gluebi_device *__cil_tmp11 ;
4847  unsigned long __cil_tmp12 ;
4848  unsigned long __cil_tmp13 ;
4849  struct list_head *__cil_tmp14 ;
4850  struct gluebi_device *__cil_tmp15 ;
4851  unsigned long __cil_tmp16 ;
4852  unsigned long __cil_tmp17 ;
4853  pid_t __cil_tmp18 ;
4854  unsigned long __cil_tmp19 ;
4855  unsigned long __cil_tmp20 ;
4856  int __cil_tmp21 ;
4857  unsigned long __cil_tmp22 ;
4858  unsigned long __cil_tmp23 ;
4859  int __cil_tmp24 ;
4860  unsigned long __cil_tmp25 ;
4861  unsigned long __cil_tmp26 ;
4862  int __cil_tmp27 ;
4863  unsigned long __cil_tmp28 ;
4864  unsigned long __cil_tmp29 ;
4865  char const   *__cil_tmp30 ;
4866  void const   *__cil_tmp31 ;
4867  void const   *__cil_tmp32 ;
4868  unsigned long __cil_tmp33 ;
4869  unsigned long __cil_tmp34 ;
4870  struct list_head *__cil_tmp35 ;
4871  struct gluebi_device *__cil_tmp36 ;
4872  unsigned long __cil_tmp37 ;
4873  unsigned long __cil_tmp38 ;
4874  unsigned long __cil_tmp39 ;
4875  struct list_head *__cil_tmp40 ;
4876  unsigned long __cil_tmp41 ;
4877
4878  {
4879#line 519
4880  __cil_tmp9 = & gluebi_devices;
4881#line 519
4882  __cil_tmp10 = *((struct list_head **)__cil_tmp9);
4883#line 519
4884  __mptr = (struct list_head  const  *)__cil_tmp10;
4885#line 519
4886  __cil_tmp11 = (struct gluebi_device *)__mptr;
4887#line 519
4888  gluebi = __cil_tmp11 + 0xfffffffffffff9e8UL;
4889#line 519
4890  __cil_tmp12 = (unsigned long )gluebi;
4891#line 519
4892  __cil_tmp13 = __cil_tmp12 + 1560;
4893#line 519
4894  __cil_tmp14 = *((struct list_head **)__cil_tmp13);
4895#line 519
4896  __mptr___0 = (struct list_head  const  *)__cil_tmp14;
4897#line 519
4898  __cil_tmp15 = (struct gluebi_device *)__mptr___0;
4899#line 519
4900  g = __cil_tmp15 + 0xfffffffffffff9e8UL;
4901#line 519
4902  goto ldv_18985;
4903  ldv_18984: 
4904  {
4905#line 521
4906  mtd = (struct mtd_info *)gluebi;
4907#line 523
4908  err = mtd_device_unregister(mtd);
4909  }
4910#line 524
4911  if (err != 0) {
4912    {
4913#line 525
4914    tmp = get_current();
4915#line 525
4916    __cil_tmp16 = (unsigned long )tmp;
4917#line 525
4918    __cil_tmp17 = __cil_tmp16 + 1144;
4919#line 525
4920    __cil_tmp18 = *((pid_t *)__cil_tmp17);
4921#line 525
4922    __cil_tmp19 = (unsigned long )mtd;
4923#line 525
4924    __cil_tmp20 = __cil_tmp19 + 64;
4925#line 525
4926    __cil_tmp21 = *((int *)__cil_tmp20);
4927#line 525
4928    __cil_tmp22 = (unsigned long )gluebi;
4929#line 525
4930    __cil_tmp23 = __cil_tmp22 + 1552;
4931#line 525
4932    __cil_tmp24 = *((int *)__cil_tmp23);
4933#line 525
4934    __cil_tmp25 = (unsigned long )gluebi;
4935#line 525
4936    __cil_tmp26 = __cil_tmp25 + 1556;
4937#line 525
4938    __cil_tmp27 = *((int *)__cil_tmp26);
4939#line 525
4940    printk("<7>gluebi (pid %d): %s: error %d while removing gluebi MTD device %d, UBI device %d, volume %d - ignoring\n",
4941           __cil_tmp18, "ubi_gluebi_exit", err, __cil_tmp21, __cil_tmp24, __cil_tmp27);
4942    }
4943  } else {
4944
4945  }
4946  {
4947#line 528
4948  __cil_tmp28 = (unsigned long )mtd;
4949#line 528
4950  __cil_tmp29 = __cil_tmp28 + 56;
4951#line 528
4952  __cil_tmp30 = *((char const   **)__cil_tmp29);
4953#line 528
4954  __cil_tmp31 = (void const   *)__cil_tmp30;
4955#line 528
4956  kfree(__cil_tmp31);
4957#line 529
4958  __cil_tmp32 = (void const   *)gluebi;
4959#line 529
4960  kfree(__cil_tmp32);
4961#line 519
4962  gluebi = g;
4963#line 519
4964  __cil_tmp33 = (unsigned long )g;
4965#line 519
4966  __cil_tmp34 = __cil_tmp33 + 1560;
4967#line 519
4968  __cil_tmp35 = *((struct list_head **)__cil_tmp34);
4969#line 519
4970  __mptr___1 = (struct list_head  const  *)__cil_tmp35;
4971#line 519
4972  __cil_tmp36 = (struct gluebi_device *)__mptr___1;
4973#line 519
4974  g = __cil_tmp36 + 0xfffffffffffff9e8UL;
4975  }
4976  ldv_18985: ;
4977  {
4978#line 519
4979  __cil_tmp37 = (unsigned long )(& gluebi_devices);
4980#line 519
4981  __cil_tmp38 = (unsigned long )gluebi;
4982#line 519
4983  __cil_tmp39 = __cil_tmp38 + 1560;
4984#line 519
4985  __cil_tmp40 = (struct list_head *)__cil_tmp39;
4986#line 519
4987  __cil_tmp41 = (unsigned long )__cil_tmp40;
4988#line 519
4989  if (__cil_tmp41 != __cil_tmp37) {
4990#line 520
4991    goto ldv_18984;
4992  } else {
4993#line 522
4994    goto ldv_18986;
4995  }
4996  }
4997  ldv_18986: 
4998  {
4999#line 531
5000  ubi_unregister_volume_notifier(& gluebi_notifier);
5001  }
5002#line 532
5003  return;
5004}
5005}
5006#line 556
5007extern void ldv_check_final_state(void) ;
5008#line 562
5009extern void ldv_initialize(void) ;
5010#line 565
5011extern int __VERIFIER_nondet_int(void) ;
5012#line 568 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5013int LDV_IN_INTERRUPT  ;
5014#line 571 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5015void main(void) 
5016{ struct notifier_block *var_group1 ;
5017  unsigned long var_gluebi_notify_10_p1 ;
5018  void *var_gluebi_notify_10_p2 ;
5019  int tmp ;
5020  int tmp___0 ;
5021  int tmp___1 ;
5022
5023  {
5024  {
5025#line 597
5026  LDV_IN_INTERRUPT = 1;
5027#line 606
5028  ldv_initialize();
5029#line 616
5030  tmp = ubi_gluebi_init();
5031  }
5032#line 616
5033  if (tmp != 0) {
5034#line 617
5035    goto ldv_final;
5036  } else {
5037
5038  }
5039#line 621
5040  goto ldv_19020;
5041  ldv_19019: 
5042  {
5043#line 624
5044  tmp___0 = __VERIFIER_nondet_int();
5045  }
5046#line 626
5047  if (tmp___0 == 0) {
5048#line 626
5049    goto case_0;
5050  } else {
5051    {
5052#line 646
5053    goto switch_default;
5054#line 624
5055    if (0) {
5056      case_0: /* CIL Label */ 
5057      {
5058#line 638
5059      gluebi_notify(var_group1, var_gluebi_notify_10_p1, var_gluebi_notify_10_p2);
5060      }
5061#line 645
5062      goto ldv_19017;
5063      switch_default: /* CIL Label */ ;
5064#line 646
5065      goto ldv_19017;
5066    } else {
5067      switch_break: /* CIL Label */ ;
5068    }
5069    }
5070  }
5071  ldv_19017: ;
5072  ldv_19020: 
5073  {
5074#line 621
5075  tmp___1 = __VERIFIER_nondet_int();
5076  }
5077#line 621
5078  if (tmp___1 != 0) {
5079#line 622
5080    goto ldv_19019;
5081  } else {
5082#line 624
5083    goto ldv_19021;
5084  }
5085  ldv_19021: ;
5086  {
5087#line 662
5088  ubi_gluebi_exit();
5089  }
5090  ldv_final: 
5091  {
5092#line 665
5093  ldv_check_final_state();
5094  }
5095#line 668
5096  return;
5097}
5098}
5099#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
5100void ldv_blast_assert(void) 
5101{ 
5102
5103  {
5104  ERROR: ;
5105#line 6
5106  goto ERROR;
5107}
5108}
5109#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
5110extern int __VERIFIER_nondet_int(void) ;
5111#line 689 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5112int ldv_spin  =    0;
5113#line 693 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5114void ldv_check_alloc_flags(gfp_t flags ) 
5115{ 
5116
5117  {
5118#line 696
5119  if (ldv_spin != 0) {
5120#line 696
5121    if (flags != 32U) {
5122      {
5123#line 696
5124      ldv_blast_assert();
5125      }
5126    } else {
5127
5128    }
5129  } else {
5130
5131  }
5132#line 699
5133  return;
5134}
5135}
5136#line 699
5137extern struct page *ldv_some_page(void) ;
5138#line 702 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5139struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
5140{ struct page *tmp ;
5141
5142  {
5143#line 705
5144  if (ldv_spin != 0) {
5145#line 705
5146    if (flags != 32U) {
5147      {
5148#line 705
5149      ldv_blast_assert();
5150      }
5151    } else {
5152
5153    }
5154  } else {
5155
5156  }
5157  {
5158#line 707
5159  tmp = ldv_some_page();
5160  }
5161#line 707
5162  return (tmp);
5163}
5164}
5165#line 711 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5166void ldv_check_alloc_nonatomic(void) 
5167{ 
5168
5169  {
5170#line 714
5171  if (ldv_spin != 0) {
5172    {
5173#line 714
5174    ldv_blast_assert();
5175    }
5176  } else {
5177
5178  }
5179#line 717
5180  return;
5181}
5182}
5183#line 718 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5184void ldv_spin_lock(void) 
5185{ 
5186
5187  {
5188#line 721
5189  ldv_spin = 1;
5190#line 722
5191  return;
5192}
5193}
5194#line 725 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5195void ldv_spin_unlock(void) 
5196{ 
5197
5198  {
5199#line 728
5200  ldv_spin = 0;
5201#line 729
5202  return;
5203}
5204}
5205#line 732 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5206int ldv_spin_trylock(void) 
5207{ int is_lock ;
5208
5209  {
5210  {
5211#line 737
5212  is_lock = __VERIFIER_nondet_int();
5213  }
5214#line 739
5215  if (is_lock != 0) {
5216#line 742
5217    return (0);
5218  } else {
5219#line 747
5220    ldv_spin = 1;
5221#line 749
5222    return (1);
5223  }
5224}
5225}
5226#line 916 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5227void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
5228{ 
5229
5230  {
5231  {
5232#line 922
5233  ldv_check_alloc_flags(ldv_func_arg2);
5234#line 924
5235  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
5236  }
5237#line 925
5238  return ((void *)0);
5239}
5240}
5241#line 927 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11691/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ubi/gluebi.c.p"
5242__inline static void *kzalloc(size_t size , gfp_t flags ) 
5243{ void *tmp ;
5244
5245  {
5246  {
5247#line 933
5248  ldv_check_alloc_flags(flags);
5249#line 934
5250  tmp = __VERIFIER_nondet_pointer();
5251  }
5252#line 934
5253  return (tmp);
5254}
5255}