Showing error 1185

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--regulator--wm8400-regulator.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 4573
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 111 "include/linux/types.h"
  75typedef __s32 int32_t;
  76#line 117 "include/linux/types.h"
  77typedef __u32 uint32_t;
  78#line 202 "include/linux/types.h"
  79typedef unsigned int gfp_t;
  80#line 206 "include/linux/types.h"
  81typedef u64 phys_addr_t;
  82#line 211 "include/linux/types.h"
  83typedef phys_addr_t resource_size_t;
  84#line 221 "include/linux/types.h"
  85struct __anonstruct_atomic_t_6 {
  86   int counter ;
  87};
  88#line 221 "include/linux/types.h"
  89typedef struct __anonstruct_atomic_t_6 atomic_t;
  90#line 226 "include/linux/types.h"
  91struct __anonstruct_atomic64_t_7 {
  92   long counter ;
  93};
  94#line 226 "include/linux/types.h"
  95typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  96#line 227 "include/linux/types.h"
  97struct list_head {
  98   struct list_head *next ;
  99   struct list_head *prev ;
 100};
 101#line 232
 102struct hlist_node;
 103#line 232 "include/linux/types.h"
 104struct hlist_head {
 105   struct hlist_node *first ;
 106};
 107#line 236 "include/linux/types.h"
 108struct hlist_node {
 109   struct hlist_node *next ;
 110   struct hlist_node **pprev ;
 111};
 112#line 247 "include/linux/types.h"
 113struct rcu_head {
 114   struct rcu_head *next ;
 115   void (*func)(struct rcu_head * ) ;
 116};
 117#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
 118struct module;
 119#line 55
 120struct module;
 121#line 146 "include/linux/init.h"
 122typedef void (*ctor_fn_t)(void);
 123#line 46 "include/linux/dynamic_debug.h"
 124struct device;
 125#line 46
 126struct device;
 127#line 57
 128struct completion;
 129#line 57
 130struct completion;
 131#line 58
 132struct pt_regs;
 133#line 58
 134struct pt_regs;
 135#line 348 "include/linux/kernel.h"
 136struct pid;
 137#line 348
 138struct pid;
 139#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
 140struct timespec;
 141#line 112
 142struct timespec;
 143#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
 144struct page;
 145#line 58
 146struct page;
 147#line 26 "include/asm-generic/getorder.h"
 148struct task_struct;
 149#line 26
 150struct task_struct;
 151#line 28
 152struct mm_struct;
 153#line 28
 154struct mm_struct;
 155#line 268 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/segment.h"
 156struct pt_regs {
 157   unsigned long r15 ;
 158   unsigned long r14 ;
 159   unsigned long r13 ;
 160   unsigned long r12 ;
 161   unsigned long bp ;
 162   unsigned long bx ;
 163   unsigned long r11 ;
 164   unsigned long r10 ;
 165   unsigned long r9 ;
 166   unsigned long r8 ;
 167   unsigned long ax ;
 168   unsigned long cx ;
 169   unsigned long dx ;
 170   unsigned long si ;
 171   unsigned long di ;
 172   unsigned long orig_ax ;
 173   unsigned long ip ;
 174   unsigned long cs ;
 175   unsigned long flags ;
 176   unsigned long sp ;
 177   unsigned long ss ;
 178};
 179#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
 180struct __anonstruct_ldv_2180_13 {
 181   unsigned int a ;
 182   unsigned int b ;
 183};
 184#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
 185struct __anonstruct_ldv_2195_14 {
 186   u16 limit0 ;
 187   u16 base0 ;
 188   unsigned char base1 ;
 189   unsigned char type : 4 ;
 190   unsigned char s : 1 ;
 191   unsigned char dpl : 2 ;
 192   unsigned char p : 1 ;
 193   unsigned char limit : 4 ;
 194   unsigned char avl : 1 ;
 195   unsigned char l : 1 ;
 196   unsigned char d : 1 ;
 197   unsigned char g : 1 ;
 198   unsigned char base2 ;
 199};
 200#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
 201union __anonunion_ldv_2196_12 {
 202   struct __anonstruct_ldv_2180_13 ldv_2180 ;
 203   struct __anonstruct_ldv_2195_14 ldv_2195 ;
 204};
 205#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
 206struct desc_struct {
 207   union __anonunion_ldv_2196_12 ldv_2196 ;
 208};
 209#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
 210typedef unsigned long pgdval_t;
 211#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
 212typedef unsigned long pgprotval_t;
 213#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
 214struct pgprot {
 215   pgprotval_t pgprot ;
 216};
 217#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 218typedef struct pgprot pgprot_t;
 219#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 220struct __anonstruct_pgd_t_16 {
 221   pgdval_t pgd ;
 222};
 223#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 224typedef struct __anonstruct_pgd_t_16 pgd_t;
 225#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 226typedef struct page *pgtable_t;
 227#line 290
 228struct file;
 229#line 290
 230struct file;
 231#line 337
 232struct thread_struct;
 233#line 337
 234struct thread_struct;
 235#line 339
 236struct cpumask;
 237#line 339
 238struct cpumask;
 239#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 240struct arch_spinlock;
 241#line 327
 242struct arch_spinlock;
 243#line 300 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
 244struct kernel_vm86_regs {
 245   struct pt_regs pt ;
 246   unsigned short es ;
 247   unsigned short __esh ;
 248   unsigned short ds ;
 249   unsigned short __dsh ;
 250   unsigned short fs ;
 251   unsigned short __fsh ;
 252   unsigned short gs ;
 253   unsigned short __gsh ;
 254};
 255#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
 256union __anonunion_ldv_2824_19 {
 257   struct pt_regs *regs ;
 258   struct kernel_vm86_regs *vm86 ;
 259};
 260#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
 261struct math_emu_info {
 262   long ___orig_eip ;
 263   union __anonunion_ldv_2824_19 ldv_2824 ;
 264};
 265#line 306 "include/linux/bitmap.h"
 266struct bug_entry {
 267   int bug_addr_disp ;
 268   int file_disp ;
 269   unsigned short line ;
 270   unsigned short flags ;
 271};
 272#line 89 "include/linux/bug.h"
 273struct cpumask {
 274   unsigned long bits[64U] ;
 275};
 276#line 14 "include/linux/cpumask.h"
 277typedef struct cpumask cpumask_t;
 278#line 637 "include/linux/cpumask.h"
 279typedef struct cpumask *cpumask_var_t;
 280#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 281struct static_key;
 282#line 234
 283struct static_key;
 284#line 287 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 285struct i387_fsave_struct {
 286   u32 cwd ;
 287   u32 swd ;
 288   u32 twd ;
 289   u32 fip ;
 290   u32 fcs ;
 291   u32 foo ;
 292   u32 fos ;
 293   u32 st_space[20U] ;
 294   u32 status ;
 295};
 296#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 297struct __anonstruct_ldv_5180_24 {
 298   u64 rip ;
 299   u64 rdp ;
 300};
 301#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 302struct __anonstruct_ldv_5186_25 {
 303   u32 fip ;
 304   u32 fcs ;
 305   u32 foo ;
 306   u32 fos ;
 307};
 308#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 309union __anonunion_ldv_5187_23 {
 310   struct __anonstruct_ldv_5180_24 ldv_5180 ;
 311   struct __anonstruct_ldv_5186_25 ldv_5186 ;
 312};
 313#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 314union __anonunion_ldv_5196_26 {
 315   u32 padding1[12U] ;
 316   u32 sw_reserved[12U] ;
 317};
 318#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 319struct i387_fxsave_struct {
 320   u16 cwd ;
 321   u16 swd ;
 322   u16 twd ;
 323   u16 fop ;
 324   union __anonunion_ldv_5187_23 ldv_5187 ;
 325   u32 mxcsr ;
 326   u32 mxcsr_mask ;
 327   u32 st_space[32U] ;
 328   u32 xmm_space[64U] ;
 329   u32 padding[12U] ;
 330   union __anonunion_ldv_5196_26 ldv_5196 ;
 331};
 332#line 339 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 333struct i387_soft_struct {
 334   u32 cwd ;
 335   u32 swd ;
 336   u32 twd ;
 337   u32 fip ;
 338   u32 fcs ;
 339   u32 foo ;
 340   u32 fos ;
 341   u32 st_space[20U] ;
 342   u8 ftop ;
 343   u8 changed ;
 344   u8 lookahead ;
 345   u8 no_update ;
 346   u8 rm ;
 347   u8 alimit ;
 348   struct math_emu_info *info ;
 349   u32 entry_eip ;
 350};
 351#line 360 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 352struct ymmh_struct {
 353   u32 ymmh_space[64U] ;
 354};
 355#line 365 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 356struct xsave_hdr_struct {
 357   u64 xstate_bv ;
 358   u64 reserved1[2U] ;
 359   u64 reserved2[5U] ;
 360};
 361#line 371 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 362struct xsave_struct {
 363   struct i387_fxsave_struct i387 ;
 364   struct xsave_hdr_struct xsave_hdr ;
 365   struct ymmh_struct ymmh ;
 366};
 367#line 377 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 368union thread_xstate {
 369   struct i387_fsave_struct fsave ;
 370   struct i387_fxsave_struct fxsave ;
 371   struct i387_soft_struct soft ;
 372   struct xsave_struct xsave ;
 373};
 374#line 385 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 375struct fpu {
 376   unsigned int last_cpu ;
 377   unsigned int has_fpu ;
 378   union thread_xstate *state ;
 379};
 380#line 433
 381struct kmem_cache;
 382#line 434
 383struct perf_event;
 384#line 434
 385struct perf_event;
 386#line 435 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 387struct thread_struct {
 388   struct desc_struct tls_array[3U] ;
 389   unsigned long sp0 ;
 390   unsigned long sp ;
 391   unsigned long usersp ;
 392   unsigned short es ;
 393   unsigned short ds ;
 394   unsigned short fsindex ;
 395   unsigned short gsindex ;
 396   unsigned long fs ;
 397   unsigned long gs ;
 398   struct perf_event *ptrace_bps[4U] ;
 399   unsigned long debugreg6 ;
 400   unsigned long ptrace_dr7 ;
 401   unsigned long cr2 ;
 402   unsigned long trap_nr ;
 403   unsigned long error_code ;
 404   struct fpu fpu ;
 405   unsigned long *io_bitmap_ptr ;
 406   unsigned long iopl ;
 407   unsigned int io_bitmap_max ;
 408};
 409#line 23 "include/asm-generic/atomic-long.h"
 410typedef atomic64_t atomic_long_t;
 411#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 412typedef u16 __ticket_t;
 413#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 414typedef u32 __ticketpair_t;
 415#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 416struct __raw_tickets {
 417   __ticket_t head ;
 418   __ticket_t tail ;
 419};
 420#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 421union __anonunion_ldv_5907_29 {
 422   __ticketpair_t head_tail ;
 423   struct __raw_tickets tickets ;
 424};
 425#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 426struct arch_spinlock {
 427   union __anonunion_ldv_5907_29 ldv_5907 ;
 428};
 429#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 430typedef struct arch_spinlock arch_spinlock_t;
 431#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 432struct lockdep_map;
 433#line 34
 434struct lockdep_map;
 435#line 55 "include/linux/debug_locks.h"
 436struct stack_trace {
 437   unsigned int nr_entries ;
 438   unsigned int max_entries ;
 439   unsigned long *entries ;
 440   int skip ;
 441};
 442#line 26 "include/linux/stacktrace.h"
 443struct lockdep_subclass_key {
 444   char __one_byte ;
 445};
 446#line 53 "include/linux/lockdep.h"
 447struct lock_class_key {
 448   struct lockdep_subclass_key subkeys[8U] ;
 449};
 450#line 59 "include/linux/lockdep.h"
 451struct lock_class {
 452   struct list_head hash_entry ;
 453   struct list_head lock_entry ;
 454   struct lockdep_subclass_key *key ;
 455   unsigned int subclass ;
 456   unsigned int dep_gen_id ;
 457   unsigned long usage_mask ;
 458   struct stack_trace usage_traces[13U] ;
 459   struct list_head locks_after ;
 460   struct list_head locks_before ;
 461   unsigned int version ;
 462   unsigned long ops ;
 463   char const   *name ;
 464   int name_version ;
 465   unsigned long contention_point[4U] ;
 466   unsigned long contending_point[4U] ;
 467};
 468#line 144 "include/linux/lockdep.h"
 469struct lockdep_map {
 470   struct lock_class_key *key ;
 471   struct lock_class *class_cache[2U] ;
 472   char const   *name ;
 473   int cpu ;
 474   unsigned long ip ;
 475};
 476#line 187 "include/linux/lockdep.h"
 477struct held_lock {
 478   u64 prev_chain_key ;
 479   unsigned long acquire_ip ;
 480   struct lockdep_map *instance ;
 481   struct lockdep_map *nest_lock ;
 482   u64 waittime_stamp ;
 483   u64 holdtime_stamp ;
 484   unsigned short class_idx : 13 ;
 485   unsigned char irq_context : 2 ;
 486   unsigned char trylock : 1 ;
 487   unsigned char read : 2 ;
 488   unsigned char check : 2 ;
 489   unsigned char hardirqs_off : 1 ;
 490   unsigned short references : 11 ;
 491};
 492#line 556 "include/linux/lockdep.h"
 493struct raw_spinlock {
 494   arch_spinlock_t raw_lock ;
 495   unsigned int magic ;
 496   unsigned int owner_cpu ;
 497   void *owner ;
 498   struct lockdep_map dep_map ;
 499};
 500#line 32 "include/linux/spinlock_types.h"
 501typedef struct raw_spinlock raw_spinlock_t;
 502#line 33 "include/linux/spinlock_types.h"
 503struct __anonstruct_ldv_6122_33 {
 504   u8 __padding[24U] ;
 505   struct lockdep_map dep_map ;
 506};
 507#line 33 "include/linux/spinlock_types.h"
 508union __anonunion_ldv_6123_32 {
 509   struct raw_spinlock rlock ;
 510   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 511};
 512#line 33 "include/linux/spinlock_types.h"
 513struct spinlock {
 514   union __anonunion_ldv_6123_32 ldv_6123 ;
 515};
 516#line 76 "include/linux/spinlock_types.h"
 517typedef struct spinlock spinlock_t;
 518#line 110 "include/linux/seqlock.h"
 519struct seqcount {
 520   unsigned int sequence ;
 521};
 522#line 121 "include/linux/seqlock.h"
 523typedef struct seqcount seqcount_t;
 524#line 254 "include/linux/seqlock.h"
 525struct timespec {
 526   __kernel_time_t tv_sec ;
 527   long tv_nsec ;
 528};
 529#line 48 "include/linux/wait.h"
 530struct __wait_queue_head {
 531   spinlock_t lock ;
 532   struct list_head task_list ;
 533};
 534#line 53 "include/linux/wait.h"
 535typedef struct __wait_queue_head wait_queue_head_t;
 536#line 98 "include/linux/nodemask.h"
 537struct __anonstruct_nodemask_t_36 {
 538   unsigned long bits[16U] ;
 539};
 540#line 98 "include/linux/nodemask.h"
 541typedef struct __anonstruct_nodemask_t_36 nodemask_t;
 542#line 670 "include/linux/mmzone.h"
 543struct mutex {
 544   atomic_t count ;
 545   spinlock_t wait_lock ;
 546   struct list_head wait_list ;
 547   struct task_struct *owner ;
 548   char const   *name ;
 549   void *magic ;
 550   struct lockdep_map dep_map ;
 551};
 552#line 63 "include/linux/mutex.h"
 553struct mutex_waiter {
 554   struct list_head list ;
 555   struct task_struct *task ;
 556   void *magic ;
 557};
 558#line 171
 559struct rw_semaphore;
 560#line 171
 561struct rw_semaphore;
 562#line 172 "include/linux/mutex.h"
 563struct rw_semaphore {
 564   long count ;
 565   raw_spinlock_t wait_lock ;
 566   struct list_head wait_list ;
 567   struct lockdep_map dep_map ;
 568};
 569#line 128 "include/linux/rwsem.h"
 570struct completion {
 571   unsigned int done ;
 572   wait_queue_head_t wait ;
 573};
 574#line 188 "include/linux/rcupdate.h"
 575struct notifier_block;
 576#line 188
 577struct notifier_block;
 578#line 239 "include/linux/srcu.h"
 579struct notifier_block {
 580   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
 581   struct notifier_block *next ;
 582   int priority ;
 583};
 584#line 60 "include/linux/notifier.h"
 585struct blocking_notifier_head {
 586   struct rw_semaphore rwsem ;
 587   struct notifier_block *head ;
 588};
 589#line 139 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/e820.h"
 590struct resource {
 591   resource_size_t start ;
 592   resource_size_t end ;
 593   char const   *name ;
 594   unsigned long flags ;
 595   struct resource *parent ;
 596   struct resource *sibling ;
 597   struct resource *child ;
 598};
 599#line 312 "include/linux/jiffies.h"
 600union ktime {
 601   s64 tv64 ;
 602};
 603#line 59 "include/linux/ktime.h"
 604typedef union ktime ktime_t;
 605#line 341
 606struct tvec_base;
 607#line 341
 608struct tvec_base;
 609#line 342 "include/linux/ktime.h"
 610struct timer_list {
 611   struct list_head entry ;
 612   unsigned long expires ;
 613   struct tvec_base *base ;
 614   void (*function)(unsigned long  ) ;
 615   unsigned long data ;
 616   int slack ;
 617   int start_pid ;
 618   void *start_site ;
 619   char start_comm[16U] ;
 620   struct lockdep_map lockdep_map ;
 621};
 622#line 289 "include/linux/timer.h"
 623struct hrtimer;
 624#line 289
 625struct hrtimer;
 626#line 290
 627enum hrtimer_restart;
 628#line 302
 629struct work_struct;
 630#line 302
 631struct work_struct;
 632#line 45 "include/linux/workqueue.h"
 633struct work_struct {
 634   atomic_long_t data ;
 635   struct list_head entry ;
 636   void (*func)(struct work_struct * ) ;
 637   struct lockdep_map lockdep_map ;
 638};
 639#line 86 "include/linux/workqueue.h"
 640struct delayed_work {
 641   struct work_struct work ;
 642   struct timer_list timer ;
 643};
 644#line 46 "include/linux/pm.h"
 645struct pm_message {
 646   int event ;
 647};
 648#line 52 "include/linux/pm.h"
 649typedef struct pm_message pm_message_t;
 650#line 53 "include/linux/pm.h"
 651struct dev_pm_ops {
 652   int (*prepare)(struct device * ) ;
 653   void (*complete)(struct device * ) ;
 654   int (*suspend)(struct device * ) ;
 655   int (*resume)(struct device * ) ;
 656   int (*freeze)(struct device * ) ;
 657   int (*thaw)(struct device * ) ;
 658   int (*poweroff)(struct device * ) ;
 659   int (*restore)(struct device * ) ;
 660   int (*suspend_late)(struct device * ) ;
 661   int (*resume_early)(struct device * ) ;
 662   int (*freeze_late)(struct device * ) ;
 663   int (*thaw_early)(struct device * ) ;
 664   int (*poweroff_late)(struct device * ) ;
 665   int (*restore_early)(struct device * ) ;
 666   int (*suspend_noirq)(struct device * ) ;
 667   int (*resume_noirq)(struct device * ) ;
 668   int (*freeze_noirq)(struct device * ) ;
 669   int (*thaw_noirq)(struct device * ) ;
 670   int (*poweroff_noirq)(struct device * ) ;
 671   int (*restore_noirq)(struct device * ) ;
 672   int (*runtime_suspend)(struct device * ) ;
 673   int (*runtime_resume)(struct device * ) ;
 674   int (*runtime_idle)(struct device * ) ;
 675};
 676#line 289
 677enum rpm_status {
 678    RPM_ACTIVE = 0,
 679    RPM_RESUMING = 1,
 680    RPM_SUSPENDED = 2,
 681    RPM_SUSPENDING = 3
 682} ;
 683#line 296
 684enum rpm_request {
 685    RPM_REQ_NONE = 0,
 686    RPM_REQ_IDLE = 1,
 687    RPM_REQ_SUSPEND = 2,
 688    RPM_REQ_AUTOSUSPEND = 3,
 689    RPM_REQ_RESUME = 4
 690} ;
 691#line 304
 692struct wakeup_source;
 693#line 304
 694struct wakeup_source;
 695#line 494 "include/linux/pm.h"
 696struct pm_subsys_data {
 697   spinlock_t lock ;
 698   unsigned int refcount ;
 699};
 700#line 499
 701struct dev_pm_qos_request;
 702#line 499
 703struct pm_qos_constraints;
 704#line 499 "include/linux/pm.h"
 705struct dev_pm_info {
 706   pm_message_t power_state ;
 707   unsigned char can_wakeup : 1 ;
 708   unsigned char async_suspend : 1 ;
 709   bool is_prepared ;
 710   bool is_suspended ;
 711   bool ignore_children ;
 712   spinlock_t lock ;
 713   struct list_head entry ;
 714   struct completion completion ;
 715   struct wakeup_source *wakeup ;
 716   bool wakeup_path ;
 717   struct timer_list suspend_timer ;
 718   unsigned long timer_expires ;
 719   struct work_struct work ;
 720   wait_queue_head_t wait_queue ;
 721   atomic_t usage_count ;
 722   atomic_t child_count ;
 723   unsigned char disable_depth : 3 ;
 724   unsigned char idle_notification : 1 ;
 725   unsigned char request_pending : 1 ;
 726   unsigned char deferred_resume : 1 ;
 727   unsigned char run_wake : 1 ;
 728   unsigned char runtime_auto : 1 ;
 729   unsigned char no_callbacks : 1 ;
 730   unsigned char irq_safe : 1 ;
 731   unsigned char use_autosuspend : 1 ;
 732   unsigned char timer_autosuspends : 1 ;
 733   enum rpm_request request ;
 734   enum rpm_status runtime_status ;
 735   int runtime_error ;
 736   int autosuspend_delay ;
 737   unsigned long last_busy ;
 738   unsigned long active_jiffies ;
 739   unsigned long suspended_jiffies ;
 740   unsigned long accounting_timestamp ;
 741   ktime_t suspend_time ;
 742   s64 max_time_suspended_ns ;
 743   struct dev_pm_qos_request *pq_req ;
 744   struct pm_subsys_data *subsys_data ;
 745   struct pm_qos_constraints *constraints ;
 746};
 747#line 558 "include/linux/pm.h"
 748struct dev_pm_domain {
 749   struct dev_pm_ops ops ;
 750};
 751#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
 752struct __anonstruct_mm_context_t_101 {
 753   void *ldt ;
 754   int size ;
 755   unsigned short ia32_compat ;
 756   struct mutex lock ;
 757   void *vdso ;
 758};
 759#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
 760typedef struct __anonstruct_mm_context_t_101 mm_context_t;
 761#line 18 "include/asm-generic/pci_iomap.h"
 762struct vm_area_struct;
 763#line 18
 764struct vm_area_struct;
 765#line 835 "include/linux/sysctl.h"
 766struct rb_node {
 767   unsigned long rb_parent_color ;
 768   struct rb_node *rb_right ;
 769   struct rb_node *rb_left ;
 770};
 771#line 108 "include/linux/rbtree.h"
 772struct rb_root {
 773   struct rb_node *rb_node ;
 774};
 775#line 176
 776struct nsproxy;
 777#line 176
 778struct nsproxy;
 779#line 37 "include/linux/kmod.h"
 780struct cred;
 781#line 37
 782struct cred;
 783#line 18 "include/linux/elf.h"
 784typedef __u64 Elf64_Addr;
 785#line 19 "include/linux/elf.h"
 786typedef __u16 Elf64_Half;
 787#line 23 "include/linux/elf.h"
 788typedef __u32 Elf64_Word;
 789#line 24 "include/linux/elf.h"
 790typedef __u64 Elf64_Xword;
 791#line 193 "include/linux/elf.h"
 792struct elf64_sym {
 793   Elf64_Word st_name ;
 794   unsigned char st_info ;
 795   unsigned char st_other ;
 796   Elf64_Half st_shndx ;
 797   Elf64_Addr st_value ;
 798   Elf64_Xword st_size ;
 799};
 800#line 201 "include/linux/elf.h"
 801typedef struct elf64_sym Elf64_Sym;
 802#line 445
 803struct sock;
 804#line 445
 805struct sock;
 806#line 446
 807struct kobject;
 808#line 446
 809struct kobject;
 810#line 447
 811enum kobj_ns_type {
 812    KOBJ_NS_TYPE_NONE = 0,
 813    KOBJ_NS_TYPE_NET = 1,
 814    KOBJ_NS_TYPES = 2
 815} ;
 816#line 453 "include/linux/elf.h"
 817struct kobj_ns_type_operations {
 818   enum kobj_ns_type type ;
 819   void *(*grab_current_ns)(void) ;
 820   void const   *(*netlink_ns)(struct sock * ) ;
 821   void const   *(*initial_ns)(void) ;
 822   void (*drop_ns)(void * ) ;
 823};
 824#line 57 "include/linux/kobject_ns.h"
 825struct attribute {
 826   char const   *name ;
 827   umode_t mode ;
 828   struct lock_class_key *key ;
 829   struct lock_class_key skey ;
 830};
 831#line 33 "include/linux/sysfs.h"
 832struct attribute_group {
 833   char const   *name ;
 834   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 835   struct attribute **attrs ;
 836};
 837#line 62 "include/linux/sysfs.h"
 838struct bin_attribute {
 839   struct attribute attr ;
 840   size_t size ;
 841   void *private ;
 842   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 843                   loff_t  , size_t  ) ;
 844   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 845                    loff_t  , size_t  ) ;
 846   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 847};
 848#line 98 "include/linux/sysfs.h"
 849struct sysfs_ops {
 850   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 851   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 852   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 853};
 854#line 117
 855struct sysfs_dirent;
 856#line 117
 857struct sysfs_dirent;
 858#line 182 "include/linux/sysfs.h"
 859struct kref {
 860   atomic_t refcount ;
 861};
 862#line 49 "include/linux/kobject.h"
 863struct kset;
 864#line 49
 865struct kobj_type;
 866#line 49 "include/linux/kobject.h"
 867struct kobject {
 868   char const   *name ;
 869   struct list_head entry ;
 870   struct kobject *parent ;
 871   struct kset *kset ;
 872   struct kobj_type *ktype ;
 873   struct sysfs_dirent *sd ;
 874   struct kref kref ;
 875   unsigned char state_initialized : 1 ;
 876   unsigned char state_in_sysfs : 1 ;
 877   unsigned char state_add_uevent_sent : 1 ;
 878   unsigned char state_remove_uevent_sent : 1 ;
 879   unsigned char uevent_suppress : 1 ;
 880};
 881#line 107 "include/linux/kobject.h"
 882struct kobj_type {
 883   void (*release)(struct kobject * ) ;
 884   struct sysfs_ops  const  *sysfs_ops ;
 885   struct attribute **default_attrs ;
 886   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 887   void const   *(*namespace)(struct kobject * ) ;
 888};
 889#line 115 "include/linux/kobject.h"
 890struct kobj_uevent_env {
 891   char *envp[32U] ;
 892   int envp_idx ;
 893   char buf[2048U] ;
 894   int buflen ;
 895};
 896#line 122 "include/linux/kobject.h"
 897struct kset_uevent_ops {
 898   int (* const  filter)(struct kset * , struct kobject * ) ;
 899   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 900   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 901};
 902#line 139 "include/linux/kobject.h"
 903struct kset {
 904   struct list_head list ;
 905   spinlock_t list_lock ;
 906   struct kobject kobj ;
 907   struct kset_uevent_ops  const  *uevent_ops ;
 908};
 909#line 215
 910struct kernel_param;
 911#line 215
 912struct kernel_param;
 913#line 216 "include/linux/kobject.h"
 914struct kernel_param_ops {
 915   int (*set)(char const   * , struct kernel_param  const  * ) ;
 916   int (*get)(char * , struct kernel_param  const  * ) ;
 917   void (*free)(void * ) ;
 918};
 919#line 49 "include/linux/moduleparam.h"
 920struct kparam_string;
 921#line 49
 922struct kparam_array;
 923#line 49 "include/linux/moduleparam.h"
 924union __anonunion_ldv_13363_134 {
 925   void *arg ;
 926   struct kparam_string  const  *str ;
 927   struct kparam_array  const  *arr ;
 928};
 929#line 49 "include/linux/moduleparam.h"
 930struct kernel_param {
 931   char const   *name ;
 932   struct kernel_param_ops  const  *ops ;
 933   u16 perm ;
 934   s16 level ;
 935   union __anonunion_ldv_13363_134 ldv_13363 ;
 936};
 937#line 61 "include/linux/moduleparam.h"
 938struct kparam_string {
 939   unsigned int maxlen ;
 940   char *string ;
 941};
 942#line 67 "include/linux/moduleparam.h"
 943struct kparam_array {
 944   unsigned int max ;
 945   unsigned int elemsize ;
 946   unsigned int *num ;
 947   struct kernel_param_ops  const  *ops ;
 948   void *elem ;
 949};
 950#line 458 "include/linux/moduleparam.h"
 951struct static_key {
 952   atomic_t enabled ;
 953};
 954#line 225 "include/linux/jump_label.h"
 955struct tracepoint;
 956#line 225
 957struct tracepoint;
 958#line 226 "include/linux/jump_label.h"
 959struct tracepoint_func {
 960   void *func ;
 961   void *data ;
 962};
 963#line 29 "include/linux/tracepoint.h"
 964struct tracepoint {
 965   char const   *name ;
 966   struct static_key key ;
 967   void (*regfunc)(void) ;
 968   void (*unregfunc)(void) ;
 969   struct tracepoint_func *funcs ;
 970};
 971#line 86 "include/linux/tracepoint.h"
 972struct kernel_symbol {
 973   unsigned long value ;
 974   char const   *name ;
 975};
 976#line 27 "include/linux/export.h"
 977struct mod_arch_specific {
 978
 979};
 980#line 34 "include/linux/module.h"
 981struct module_param_attrs;
 982#line 34 "include/linux/module.h"
 983struct module_kobject {
 984   struct kobject kobj ;
 985   struct module *mod ;
 986   struct kobject *drivers_dir ;
 987   struct module_param_attrs *mp ;
 988};
 989#line 43 "include/linux/module.h"
 990struct module_attribute {
 991   struct attribute attr ;
 992   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 993   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 994                    size_t  ) ;
 995   void (*setup)(struct module * , char const   * ) ;
 996   int (*test)(struct module * ) ;
 997   void (*free)(struct module * ) ;
 998};
 999#line 69
1000struct exception_table_entry;
1001#line 69
1002struct exception_table_entry;
1003#line 198
1004enum module_state {
1005    MODULE_STATE_LIVE = 0,
1006    MODULE_STATE_COMING = 1,
1007    MODULE_STATE_GOING = 2
1008} ;
1009#line 204 "include/linux/module.h"
1010struct module_ref {
1011   unsigned long incs ;
1012   unsigned long decs ;
1013};
1014#line 219
1015struct module_sect_attrs;
1016#line 219
1017struct module_notes_attrs;
1018#line 219
1019struct ftrace_event_call;
1020#line 219 "include/linux/module.h"
1021struct module {
1022   enum module_state state ;
1023   struct list_head list ;
1024   char name[56U] ;
1025   struct module_kobject mkobj ;
1026   struct module_attribute *modinfo_attrs ;
1027   char const   *version ;
1028   char const   *srcversion ;
1029   struct kobject *holders_dir ;
1030   struct kernel_symbol  const  *syms ;
1031   unsigned long const   *crcs ;
1032   unsigned int num_syms ;
1033   struct kernel_param *kp ;
1034   unsigned int num_kp ;
1035   unsigned int num_gpl_syms ;
1036   struct kernel_symbol  const  *gpl_syms ;
1037   unsigned long const   *gpl_crcs ;
1038   struct kernel_symbol  const  *unused_syms ;
1039   unsigned long const   *unused_crcs ;
1040   unsigned int num_unused_syms ;
1041   unsigned int num_unused_gpl_syms ;
1042   struct kernel_symbol  const  *unused_gpl_syms ;
1043   unsigned long const   *unused_gpl_crcs ;
1044   struct kernel_symbol  const  *gpl_future_syms ;
1045   unsigned long const   *gpl_future_crcs ;
1046   unsigned int num_gpl_future_syms ;
1047   unsigned int num_exentries ;
1048   struct exception_table_entry *extable ;
1049   int (*init)(void) ;
1050   void *module_init ;
1051   void *module_core ;
1052   unsigned int init_size ;
1053   unsigned int core_size ;
1054   unsigned int init_text_size ;
1055   unsigned int core_text_size ;
1056   unsigned int init_ro_size ;
1057   unsigned int core_ro_size ;
1058   struct mod_arch_specific arch ;
1059   unsigned int taints ;
1060   unsigned int num_bugs ;
1061   struct list_head bug_list ;
1062   struct bug_entry *bug_table ;
1063   Elf64_Sym *symtab ;
1064   Elf64_Sym *core_symtab ;
1065   unsigned int num_symtab ;
1066   unsigned int core_num_syms ;
1067   char *strtab ;
1068   char *core_strtab ;
1069   struct module_sect_attrs *sect_attrs ;
1070   struct module_notes_attrs *notes_attrs ;
1071   char *args ;
1072   void *percpu ;
1073   unsigned int percpu_size ;
1074   unsigned int num_tracepoints ;
1075   struct tracepoint * const  *tracepoints_ptrs ;
1076   unsigned int num_trace_bprintk_fmt ;
1077   char const   **trace_bprintk_fmt_start ;
1078   struct ftrace_event_call **trace_events ;
1079   unsigned int num_trace_events ;
1080   struct list_head source_list ;
1081   struct list_head target_list ;
1082   struct task_struct *waiter ;
1083   void (*exit)(void) ;
1084   struct module_ref *refptr ;
1085   ctor_fn_t (**ctors)(void) ;
1086   unsigned int num_ctors ;
1087};
1088#line 88 "include/linux/kmemleak.h"
1089struct kmem_cache_cpu {
1090   void **freelist ;
1091   unsigned long tid ;
1092   struct page *page ;
1093   struct page *partial ;
1094   int node ;
1095   unsigned int stat[26U] ;
1096};
1097#line 55 "include/linux/slub_def.h"
1098struct kmem_cache_node {
1099   spinlock_t list_lock ;
1100   unsigned long nr_partial ;
1101   struct list_head partial ;
1102   atomic_long_t nr_slabs ;
1103   atomic_long_t total_objects ;
1104   struct list_head full ;
1105};
1106#line 66 "include/linux/slub_def.h"
1107struct kmem_cache_order_objects {
1108   unsigned long x ;
1109};
1110#line 76 "include/linux/slub_def.h"
1111struct kmem_cache {
1112   struct kmem_cache_cpu *cpu_slab ;
1113   unsigned long flags ;
1114   unsigned long min_partial ;
1115   int size ;
1116   int objsize ;
1117   int offset ;
1118   int cpu_partial ;
1119   struct kmem_cache_order_objects oo ;
1120   struct kmem_cache_order_objects max ;
1121   struct kmem_cache_order_objects min ;
1122   gfp_t allocflags ;
1123   int refcount ;
1124   void (*ctor)(void * ) ;
1125   int inuse ;
1126   int align ;
1127   int reserved ;
1128   char const   *name ;
1129   struct list_head list ;
1130   struct kobject kobj ;
1131   int remote_node_defrag_ratio ;
1132   struct kmem_cache_node *node[1024U] ;
1133};
1134#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
1135struct klist_node;
1136#line 15
1137struct klist_node;
1138#line 37 "include/linux/klist.h"
1139struct klist_node {
1140   void *n_klist ;
1141   struct list_head n_node ;
1142   struct kref n_ref ;
1143};
1144#line 67
1145struct dma_map_ops;
1146#line 67 "include/linux/klist.h"
1147struct dev_archdata {
1148   void *acpi_handle ;
1149   struct dma_map_ops *dma_ops ;
1150   void *iommu ;
1151};
1152#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1153struct pdev_archdata {
1154
1155};
1156#line 17
1157struct device_private;
1158#line 17
1159struct device_private;
1160#line 18
1161struct device_driver;
1162#line 18
1163struct device_driver;
1164#line 19
1165struct driver_private;
1166#line 19
1167struct driver_private;
1168#line 20
1169struct class;
1170#line 20
1171struct class;
1172#line 21
1173struct subsys_private;
1174#line 21
1175struct subsys_private;
1176#line 22
1177struct bus_type;
1178#line 22
1179struct bus_type;
1180#line 23
1181struct device_node;
1182#line 23
1183struct device_node;
1184#line 24
1185struct iommu_ops;
1186#line 24
1187struct iommu_ops;
1188#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1189struct bus_attribute {
1190   struct attribute attr ;
1191   ssize_t (*show)(struct bus_type * , char * ) ;
1192   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
1193};
1194#line 51 "include/linux/device.h"
1195struct device_attribute;
1196#line 51
1197struct driver_attribute;
1198#line 51 "include/linux/device.h"
1199struct bus_type {
1200   char const   *name ;
1201   char const   *dev_name ;
1202   struct device *dev_root ;
1203   struct bus_attribute *bus_attrs ;
1204   struct device_attribute *dev_attrs ;
1205   struct driver_attribute *drv_attrs ;
1206   int (*match)(struct device * , struct device_driver * ) ;
1207   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1208   int (*probe)(struct device * ) ;
1209   int (*remove)(struct device * ) ;
1210   void (*shutdown)(struct device * ) ;
1211   int (*suspend)(struct device * , pm_message_t  ) ;
1212   int (*resume)(struct device * ) ;
1213   struct dev_pm_ops  const  *pm ;
1214   struct iommu_ops *iommu_ops ;
1215   struct subsys_private *p ;
1216};
1217#line 125
1218struct device_type;
1219#line 182
1220struct of_device_id;
1221#line 182 "include/linux/device.h"
1222struct device_driver {
1223   char const   *name ;
1224   struct bus_type *bus ;
1225   struct module *owner ;
1226   char const   *mod_name ;
1227   bool suppress_bind_attrs ;
1228   struct of_device_id  const  *of_match_table ;
1229   int (*probe)(struct device * ) ;
1230   int (*remove)(struct device * ) ;
1231   void (*shutdown)(struct device * ) ;
1232   int (*suspend)(struct device * , pm_message_t  ) ;
1233   int (*resume)(struct device * ) ;
1234   struct attribute_group  const  **groups ;
1235   struct dev_pm_ops  const  *pm ;
1236   struct driver_private *p ;
1237};
1238#line 245 "include/linux/device.h"
1239struct driver_attribute {
1240   struct attribute attr ;
1241   ssize_t (*show)(struct device_driver * , char * ) ;
1242   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
1243};
1244#line 299
1245struct class_attribute;
1246#line 299 "include/linux/device.h"
1247struct class {
1248   char const   *name ;
1249   struct module *owner ;
1250   struct class_attribute *class_attrs ;
1251   struct device_attribute *dev_attrs ;
1252   struct bin_attribute *dev_bin_attrs ;
1253   struct kobject *dev_kobj ;
1254   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1255   char *(*devnode)(struct device * , umode_t * ) ;
1256   void (*class_release)(struct class * ) ;
1257   void (*dev_release)(struct device * ) ;
1258   int (*suspend)(struct device * , pm_message_t  ) ;
1259   int (*resume)(struct device * ) ;
1260   struct kobj_ns_type_operations  const  *ns_type ;
1261   void const   *(*namespace)(struct device * ) ;
1262   struct dev_pm_ops  const  *pm ;
1263   struct subsys_private *p ;
1264};
1265#line 394 "include/linux/device.h"
1266struct class_attribute {
1267   struct attribute attr ;
1268   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1269   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
1270   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
1271};
1272#line 447 "include/linux/device.h"
1273struct device_type {
1274   char const   *name ;
1275   struct attribute_group  const  **groups ;
1276   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1277   char *(*devnode)(struct device * , umode_t * ) ;
1278   void (*release)(struct device * ) ;
1279   struct dev_pm_ops  const  *pm ;
1280};
1281#line 474 "include/linux/device.h"
1282struct device_attribute {
1283   struct attribute attr ;
1284   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1285   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
1286                    size_t  ) ;
1287};
1288#line 557 "include/linux/device.h"
1289struct device_dma_parameters {
1290   unsigned int max_segment_size ;
1291   unsigned long segment_boundary_mask ;
1292};
1293#line 567
1294struct dma_coherent_mem;
1295#line 567 "include/linux/device.h"
1296struct device {
1297   struct device *parent ;
1298   struct device_private *p ;
1299   struct kobject kobj ;
1300   char const   *init_name ;
1301   struct device_type  const  *type ;
1302   struct mutex mutex ;
1303   struct bus_type *bus ;
1304   struct device_driver *driver ;
1305   void *platform_data ;
1306   struct dev_pm_info power ;
1307   struct dev_pm_domain *pm_domain ;
1308   int numa_node ;
1309   u64 *dma_mask ;
1310   u64 coherent_dma_mask ;
1311   struct device_dma_parameters *dma_parms ;
1312   struct list_head dma_pools ;
1313   struct dma_coherent_mem *dma_mem ;
1314   struct dev_archdata archdata ;
1315   struct device_node *of_node ;
1316   dev_t devt ;
1317   u32 id ;
1318   spinlock_t devres_lock ;
1319   struct list_head devres_head ;
1320   struct klist_node knode_class ;
1321   struct class *class ;
1322   struct attribute_group  const  **groups ;
1323   void (*release)(struct device * ) ;
1324};
1325#line 681 "include/linux/device.h"
1326struct wakeup_source {
1327   char const   *name ;
1328   struct list_head entry ;
1329   spinlock_t lock ;
1330   struct timer_list timer ;
1331   unsigned long timer_expires ;
1332   ktime_t total_time ;
1333   ktime_t max_time ;
1334   ktime_t last_time ;
1335   unsigned long event_count ;
1336   unsigned long active_count ;
1337   unsigned long relax_count ;
1338   unsigned long hit_count ;
1339   unsigned char active : 1 ;
1340};
1341#line 991
1342struct regulator;
1343#line 991
1344struct regulator;
1345#line 189 "include/linux/regulator/consumer.h"
1346struct regulator_dev;
1347#line 189
1348struct regulator_dev;
1349#line 190
1350struct regulator_init_data;
1351#line 190
1352struct regulator_init_data;
1353#line 201 "include/linux/regulator/consumer.h"
1354struct regulator_ops {
1355   int (*list_voltage)(struct regulator_dev * , unsigned int  ) ;
1356   int (*set_voltage)(struct regulator_dev * , int  , int  , unsigned int * ) ;
1357   int (*set_voltage_sel)(struct regulator_dev * , unsigned int  ) ;
1358   int (*get_voltage)(struct regulator_dev * ) ;
1359   int (*get_voltage_sel)(struct regulator_dev * ) ;
1360   int (*set_current_limit)(struct regulator_dev * , int  , int  ) ;
1361   int (*get_current_limit)(struct regulator_dev * ) ;
1362   int (*enable)(struct regulator_dev * ) ;
1363   int (*disable)(struct regulator_dev * ) ;
1364   int (*is_enabled)(struct regulator_dev * ) ;
1365   int (*set_mode)(struct regulator_dev * , unsigned int  ) ;
1366   unsigned int (*get_mode)(struct regulator_dev * ) ;
1367   int (*enable_time)(struct regulator_dev * ) ;
1368   int (*set_voltage_time_sel)(struct regulator_dev * , unsigned int  , unsigned int  ) ;
1369   int (*get_status)(struct regulator_dev * ) ;
1370   unsigned int (*get_optimum_mode)(struct regulator_dev * , int  , int  , int  ) ;
1371   int (*set_suspend_voltage)(struct regulator_dev * , int  ) ;
1372   int (*set_suspend_enable)(struct regulator_dev * ) ;
1373   int (*set_suspend_disable)(struct regulator_dev * ) ;
1374   int (*set_suspend_mode)(struct regulator_dev * , unsigned int  ) ;
1375};
1376#line 141 "include/linux/regulator/driver.h"
1377enum regulator_type {
1378    REGULATOR_VOLTAGE = 0,
1379    REGULATOR_CURRENT = 1
1380} ;
1381#line 146 "include/linux/regulator/driver.h"
1382struct regulator_desc {
1383   char const   *name ;
1384   char const   *supply_name ;
1385   int id ;
1386   unsigned int n_voltages ;
1387   struct regulator_ops *ops ;
1388   int irq ;
1389   enum regulator_type type ;
1390   struct module *owner ;
1391};
1392#line 175
1393struct regulation_constraints;
1394#line 175
1395struct dentry;
1396#line 175 "include/linux/regulator/driver.h"
1397struct regulator_dev {
1398   struct regulator_desc *desc ;
1399   int exclusive ;
1400   u32 use_count ;
1401   u32 open_count ;
1402   struct list_head list ;
1403   struct list_head consumer_list ;
1404   struct blocking_notifier_head notifier ;
1405   struct mutex mutex ;
1406   struct module *owner ;
1407   struct device dev ;
1408   struct regulation_constraints *constraints ;
1409   struct regulator *supply ;
1410   struct delayed_work disable_work ;
1411   int deferred_disables ;
1412   void *reg_data ;
1413   struct dentry *debugfs ;
1414};
1415#line 93 "include/linux/capability.h"
1416struct kernel_cap_struct {
1417   __u32 cap[2U] ;
1418};
1419#line 96 "include/linux/capability.h"
1420typedef struct kernel_cap_struct kernel_cap_t;
1421#line 104
1422struct user_namespace;
1423#line 104
1424struct user_namespace;
1425#line 554
1426struct prio_tree_node;
1427#line 554 "include/linux/capability.h"
1428struct raw_prio_tree_node {
1429   struct prio_tree_node *left ;
1430   struct prio_tree_node *right ;
1431   struct prio_tree_node *parent ;
1432};
1433#line 19 "include/linux/prio_tree.h"
1434struct prio_tree_node {
1435   struct prio_tree_node *left ;
1436   struct prio_tree_node *right ;
1437   struct prio_tree_node *parent ;
1438   unsigned long start ;
1439   unsigned long last ;
1440};
1441#line 116
1442struct address_space;
1443#line 116
1444struct address_space;
1445#line 117 "include/linux/prio_tree.h"
1446union __anonunion_ldv_15315_137 {
1447   unsigned long index ;
1448   void *freelist ;
1449};
1450#line 117 "include/linux/prio_tree.h"
1451struct __anonstruct_ldv_15325_141 {
1452   unsigned short inuse ;
1453   unsigned short objects : 15 ;
1454   unsigned char frozen : 1 ;
1455};
1456#line 117 "include/linux/prio_tree.h"
1457union __anonunion_ldv_15326_140 {
1458   atomic_t _mapcount ;
1459   struct __anonstruct_ldv_15325_141 ldv_15325 ;
1460};
1461#line 117 "include/linux/prio_tree.h"
1462struct __anonstruct_ldv_15328_139 {
1463   union __anonunion_ldv_15326_140 ldv_15326 ;
1464   atomic_t _count ;
1465};
1466#line 117 "include/linux/prio_tree.h"
1467union __anonunion_ldv_15329_138 {
1468   unsigned long counters ;
1469   struct __anonstruct_ldv_15328_139 ldv_15328 ;
1470};
1471#line 117 "include/linux/prio_tree.h"
1472struct __anonstruct_ldv_15330_136 {
1473   union __anonunion_ldv_15315_137 ldv_15315 ;
1474   union __anonunion_ldv_15329_138 ldv_15329 ;
1475};
1476#line 117 "include/linux/prio_tree.h"
1477struct __anonstruct_ldv_15337_143 {
1478   struct page *next ;
1479   int pages ;
1480   int pobjects ;
1481};
1482#line 117 "include/linux/prio_tree.h"
1483union __anonunion_ldv_15338_142 {
1484   struct list_head lru ;
1485   struct __anonstruct_ldv_15337_143 ldv_15337 ;
1486};
1487#line 117 "include/linux/prio_tree.h"
1488union __anonunion_ldv_15343_144 {
1489   unsigned long private ;
1490   struct kmem_cache *slab ;
1491   struct page *first_page ;
1492};
1493#line 117 "include/linux/prio_tree.h"
1494struct page {
1495   unsigned long flags ;
1496   struct address_space *mapping ;
1497   struct __anonstruct_ldv_15330_136 ldv_15330 ;
1498   union __anonunion_ldv_15338_142 ldv_15338 ;
1499   union __anonunion_ldv_15343_144 ldv_15343 ;
1500   unsigned long debug_flags ;
1501};
1502#line 192 "include/linux/mm_types.h"
1503struct __anonstruct_vm_set_146 {
1504   struct list_head list ;
1505   void *parent ;
1506   struct vm_area_struct *head ;
1507};
1508#line 192 "include/linux/mm_types.h"
1509union __anonunion_shared_145 {
1510   struct __anonstruct_vm_set_146 vm_set ;
1511   struct raw_prio_tree_node prio_tree_node ;
1512};
1513#line 192
1514struct anon_vma;
1515#line 192
1516struct vm_operations_struct;
1517#line 192
1518struct mempolicy;
1519#line 192 "include/linux/mm_types.h"
1520struct vm_area_struct {
1521   struct mm_struct *vm_mm ;
1522   unsigned long vm_start ;
1523   unsigned long vm_end ;
1524   struct vm_area_struct *vm_next ;
1525   struct vm_area_struct *vm_prev ;
1526   pgprot_t vm_page_prot ;
1527   unsigned long vm_flags ;
1528   struct rb_node vm_rb ;
1529   union __anonunion_shared_145 shared ;
1530   struct list_head anon_vma_chain ;
1531   struct anon_vma *anon_vma ;
1532   struct vm_operations_struct  const  *vm_ops ;
1533   unsigned long vm_pgoff ;
1534   struct file *vm_file ;
1535   void *vm_private_data ;
1536   struct mempolicy *vm_policy ;
1537};
1538#line 255 "include/linux/mm_types.h"
1539struct core_thread {
1540   struct task_struct *task ;
1541   struct core_thread *next ;
1542};
1543#line 261 "include/linux/mm_types.h"
1544struct core_state {
1545   atomic_t nr_threads ;
1546   struct core_thread dumper ;
1547   struct completion startup ;
1548};
1549#line 274 "include/linux/mm_types.h"
1550struct mm_rss_stat {
1551   atomic_long_t count[3U] ;
1552};
1553#line 287
1554struct linux_binfmt;
1555#line 287
1556struct mmu_notifier_mm;
1557#line 287 "include/linux/mm_types.h"
1558struct mm_struct {
1559   struct vm_area_struct *mmap ;
1560   struct rb_root mm_rb ;
1561   struct vm_area_struct *mmap_cache ;
1562   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
1563                                      unsigned long  , unsigned long  ) ;
1564   void (*unmap_area)(struct mm_struct * , unsigned long  ) ;
1565   unsigned long mmap_base ;
1566   unsigned long task_size ;
1567   unsigned long cached_hole_size ;
1568   unsigned long free_area_cache ;
1569   pgd_t *pgd ;
1570   atomic_t mm_users ;
1571   atomic_t mm_count ;
1572   int map_count ;
1573   spinlock_t page_table_lock ;
1574   struct rw_semaphore mmap_sem ;
1575   struct list_head mmlist ;
1576   unsigned long hiwater_rss ;
1577   unsigned long hiwater_vm ;
1578   unsigned long total_vm ;
1579   unsigned long locked_vm ;
1580   unsigned long pinned_vm ;
1581   unsigned long shared_vm ;
1582   unsigned long exec_vm ;
1583   unsigned long stack_vm ;
1584   unsigned long reserved_vm ;
1585   unsigned long def_flags ;
1586   unsigned long nr_ptes ;
1587   unsigned long start_code ;
1588   unsigned long end_code ;
1589   unsigned long start_data ;
1590   unsigned long end_data ;
1591   unsigned long start_brk ;
1592   unsigned long brk ;
1593   unsigned long start_stack ;
1594   unsigned long arg_start ;
1595   unsigned long arg_end ;
1596   unsigned long env_start ;
1597   unsigned long env_end ;
1598   unsigned long saved_auxv[44U] ;
1599   struct mm_rss_stat rss_stat ;
1600   struct linux_binfmt *binfmt ;
1601   cpumask_var_t cpu_vm_mask_var ;
1602   mm_context_t context ;
1603   unsigned int faultstamp ;
1604   unsigned int token_priority ;
1605   unsigned int last_interval ;
1606   unsigned long flags ;
1607   struct core_state *core_state ;
1608   spinlock_t ioctx_lock ;
1609   struct hlist_head ioctx_list ;
1610   struct task_struct *owner ;
1611   struct file *exe_file ;
1612   unsigned long num_exe_file_vmas ;
1613   struct mmu_notifier_mm *mmu_notifier_mm ;
1614   pgtable_t pmd_huge_pte ;
1615   struct cpumask cpumask_allocation ;
1616};
1617#line 7 "include/asm-generic/cputime.h"
1618typedef unsigned long cputime_t;
1619#line 98 "include/linux/sem.h"
1620struct sem_undo_list;
1621#line 98 "include/linux/sem.h"
1622struct sysv_sem {
1623   struct sem_undo_list *undo_list ;
1624};
1625#line 107
1626struct siginfo;
1627#line 107
1628struct siginfo;
1629#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1630struct __anonstruct_sigset_t_147 {
1631   unsigned long sig[1U] ;
1632};
1633#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1634typedef struct __anonstruct_sigset_t_147 sigset_t;
1635#line 17 "include/asm-generic/signal-defs.h"
1636typedef void __signalfn_t(int  );
1637#line 18 "include/asm-generic/signal-defs.h"
1638typedef __signalfn_t *__sighandler_t;
1639#line 20 "include/asm-generic/signal-defs.h"
1640typedef void __restorefn_t(void);
1641#line 21 "include/asm-generic/signal-defs.h"
1642typedef __restorefn_t *__sigrestore_t;
1643#line 126 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1644struct sigaction {
1645   __sighandler_t sa_handler ;
1646   unsigned long sa_flags ;
1647   __sigrestore_t sa_restorer ;
1648   sigset_t sa_mask ;
1649};
1650#line 173 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1651struct k_sigaction {
1652   struct sigaction sa ;
1653};
1654#line 185 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
1655union sigval {
1656   int sival_int ;
1657   void *sival_ptr ;
1658};
1659#line 10 "include/asm-generic/siginfo.h"
1660typedef union sigval sigval_t;
1661#line 11 "include/asm-generic/siginfo.h"
1662struct __anonstruct__kill_149 {
1663   __kernel_pid_t _pid ;
1664   __kernel_uid32_t _uid ;
1665};
1666#line 11 "include/asm-generic/siginfo.h"
1667struct __anonstruct__timer_150 {
1668   __kernel_timer_t _tid ;
1669   int _overrun ;
1670   char _pad[0U] ;
1671   sigval_t _sigval ;
1672   int _sys_private ;
1673};
1674#line 11 "include/asm-generic/siginfo.h"
1675struct __anonstruct__rt_151 {
1676   __kernel_pid_t _pid ;
1677   __kernel_uid32_t _uid ;
1678   sigval_t _sigval ;
1679};
1680#line 11 "include/asm-generic/siginfo.h"
1681struct __anonstruct__sigchld_152 {
1682   __kernel_pid_t _pid ;
1683   __kernel_uid32_t _uid ;
1684   int _status ;
1685   __kernel_clock_t _utime ;
1686   __kernel_clock_t _stime ;
1687};
1688#line 11 "include/asm-generic/siginfo.h"
1689struct __anonstruct__sigfault_153 {
1690   void *_addr ;
1691   short _addr_lsb ;
1692};
1693#line 11 "include/asm-generic/siginfo.h"
1694struct __anonstruct__sigpoll_154 {
1695   long _band ;
1696   int _fd ;
1697};
1698#line 11 "include/asm-generic/siginfo.h"
1699union __anonunion__sifields_148 {
1700   int _pad[28U] ;
1701   struct __anonstruct__kill_149 _kill ;
1702   struct __anonstruct__timer_150 _timer ;
1703   struct __anonstruct__rt_151 _rt ;
1704   struct __anonstruct__sigchld_152 _sigchld ;
1705   struct __anonstruct__sigfault_153 _sigfault ;
1706   struct __anonstruct__sigpoll_154 _sigpoll ;
1707};
1708#line 11 "include/asm-generic/siginfo.h"
1709struct siginfo {
1710   int si_signo ;
1711   int si_errno ;
1712   int si_code ;
1713   union __anonunion__sifields_148 _sifields ;
1714};
1715#line 102 "include/asm-generic/siginfo.h"
1716typedef struct siginfo siginfo_t;
1717#line 14 "include/linux/signal.h"
1718struct user_struct;
1719#line 24 "include/linux/signal.h"
1720struct sigpending {
1721   struct list_head list ;
1722   sigset_t signal ;
1723};
1724#line 395
1725struct pid_namespace;
1726#line 395 "include/linux/signal.h"
1727struct upid {
1728   int nr ;
1729   struct pid_namespace *ns ;
1730   struct hlist_node pid_chain ;
1731};
1732#line 56 "include/linux/pid.h"
1733struct pid {
1734   atomic_t count ;
1735   unsigned int level ;
1736   struct hlist_head tasks[3U] ;
1737   struct rcu_head rcu ;
1738   struct upid numbers[1U] ;
1739};
1740#line 68 "include/linux/pid.h"
1741struct pid_link {
1742   struct hlist_node node ;
1743   struct pid *pid ;
1744};
1745#line 10 "include/linux/seccomp.h"
1746struct __anonstruct_seccomp_t_157 {
1747   int mode ;
1748};
1749#line 10 "include/linux/seccomp.h"
1750typedef struct __anonstruct_seccomp_t_157 seccomp_t;
1751#line 427 "include/linux/rculist.h"
1752struct plist_head {
1753   struct list_head node_list ;
1754};
1755#line 84 "include/linux/plist.h"
1756struct plist_node {
1757   int prio ;
1758   struct list_head prio_list ;
1759   struct list_head node_list ;
1760};
1761#line 38 "include/linux/rtmutex.h"
1762struct rt_mutex_waiter;
1763#line 38
1764struct rt_mutex_waiter;
1765#line 41 "include/linux/resource.h"
1766struct rlimit {
1767   unsigned long rlim_cur ;
1768   unsigned long rlim_max ;
1769};
1770#line 85 "include/linux/resource.h"
1771struct timerqueue_node {
1772   struct rb_node node ;
1773   ktime_t expires ;
1774};
1775#line 12 "include/linux/timerqueue.h"
1776struct timerqueue_head {
1777   struct rb_root head ;
1778   struct timerqueue_node *next ;
1779};
1780#line 50
1781struct hrtimer_clock_base;
1782#line 50
1783struct hrtimer_clock_base;
1784#line 51
1785struct hrtimer_cpu_base;
1786#line 51
1787struct hrtimer_cpu_base;
1788#line 60
1789enum hrtimer_restart {
1790    HRTIMER_NORESTART = 0,
1791    HRTIMER_RESTART = 1
1792} ;
1793#line 65 "include/linux/timerqueue.h"
1794struct hrtimer {
1795   struct timerqueue_node node ;
1796   ktime_t _softexpires ;
1797   enum hrtimer_restart (*function)(struct hrtimer * ) ;
1798   struct hrtimer_clock_base *base ;
1799   unsigned long state ;
1800   int start_pid ;
1801   void *start_site ;
1802   char start_comm[16U] ;
1803};
1804#line 132 "include/linux/hrtimer.h"
1805struct hrtimer_clock_base {
1806   struct hrtimer_cpu_base *cpu_base ;
1807   int index ;
1808   clockid_t clockid ;
1809   struct timerqueue_head active ;
1810   ktime_t resolution ;
1811   ktime_t (*get_time)(void) ;
1812   ktime_t softirq_time ;
1813   ktime_t offset ;
1814};
1815#line 162 "include/linux/hrtimer.h"
1816struct hrtimer_cpu_base {
1817   raw_spinlock_t lock ;
1818   unsigned long active_bases ;
1819   ktime_t expires_next ;
1820   int hres_active ;
1821   int hang_detected ;
1822   unsigned long nr_events ;
1823   unsigned long nr_retries ;
1824   unsigned long nr_hangs ;
1825   ktime_t max_hang_time ;
1826   struct hrtimer_clock_base clock_base[3U] ;
1827};
1828#line 452 "include/linux/hrtimer.h"
1829struct task_io_accounting {
1830   u64 rchar ;
1831   u64 wchar ;
1832   u64 syscr ;
1833   u64 syscw ;
1834   u64 read_bytes ;
1835   u64 write_bytes ;
1836   u64 cancelled_write_bytes ;
1837};
1838#line 45 "include/linux/task_io_accounting.h"
1839struct latency_record {
1840   unsigned long backtrace[12U] ;
1841   unsigned int count ;
1842   unsigned long time ;
1843   unsigned long max ;
1844};
1845#line 29 "include/linux/key.h"
1846typedef int32_t key_serial_t;
1847#line 32 "include/linux/key.h"
1848typedef uint32_t key_perm_t;
1849#line 33
1850struct key;
1851#line 33
1852struct key;
1853#line 34
1854struct signal_struct;
1855#line 34
1856struct signal_struct;
1857#line 35
1858struct key_type;
1859#line 35
1860struct key_type;
1861#line 37
1862struct keyring_list;
1863#line 37
1864struct keyring_list;
1865#line 115
1866struct key_user;
1867#line 115 "include/linux/key.h"
1868union __anonunion_ldv_16579_158 {
1869   time_t expiry ;
1870   time_t revoked_at ;
1871};
1872#line 115 "include/linux/key.h"
1873union __anonunion_type_data_159 {
1874   struct list_head link ;
1875   unsigned long x[2U] ;
1876   void *p[2U] ;
1877   int reject_error ;
1878};
1879#line 115 "include/linux/key.h"
1880union __anonunion_payload_160 {
1881   unsigned long value ;
1882   void *rcudata ;
1883   void *data ;
1884   struct keyring_list *subscriptions ;
1885};
1886#line 115 "include/linux/key.h"
1887struct key {
1888   atomic_t usage ;
1889   key_serial_t serial ;
1890   struct rb_node serial_node ;
1891   struct key_type *type ;
1892   struct rw_semaphore sem ;
1893   struct key_user *user ;
1894   void *security ;
1895   union __anonunion_ldv_16579_158 ldv_16579 ;
1896   uid_t uid ;
1897   gid_t gid ;
1898   key_perm_t perm ;
1899   unsigned short quotalen ;
1900   unsigned short datalen ;
1901   unsigned long flags ;
1902   char *description ;
1903   union __anonunion_type_data_159 type_data ;
1904   union __anonunion_payload_160 payload ;
1905};
1906#line 316
1907struct audit_context;
1908#line 316
1909struct audit_context;
1910#line 28 "include/linux/selinux.h"
1911struct group_info {
1912   atomic_t usage ;
1913   int ngroups ;
1914   int nblocks ;
1915   gid_t small_block[32U] ;
1916   gid_t *blocks[0U] ;
1917};
1918#line 77 "include/linux/cred.h"
1919struct thread_group_cred {
1920   atomic_t usage ;
1921   pid_t tgid ;
1922   spinlock_t lock ;
1923   struct key *session_keyring ;
1924   struct key *process_keyring ;
1925   struct rcu_head rcu ;
1926};
1927#line 91 "include/linux/cred.h"
1928struct cred {
1929   atomic_t usage ;
1930   atomic_t subscribers ;
1931   void *put_addr ;
1932   unsigned int magic ;
1933   uid_t uid ;
1934   gid_t gid ;
1935   uid_t suid ;
1936   gid_t sgid ;
1937   uid_t euid ;
1938   gid_t egid ;
1939   uid_t fsuid ;
1940   gid_t fsgid ;
1941   unsigned int securebits ;
1942   kernel_cap_t cap_inheritable ;
1943   kernel_cap_t cap_permitted ;
1944   kernel_cap_t cap_effective ;
1945   kernel_cap_t cap_bset ;
1946   unsigned char jit_keyring ;
1947   struct key *thread_keyring ;
1948   struct key *request_key_auth ;
1949   struct thread_group_cred *tgcred ;
1950   void *security ;
1951   struct user_struct *user ;
1952   struct user_namespace *user_ns ;
1953   struct group_info *group_info ;
1954   struct rcu_head rcu ;
1955};
1956#line 264
1957struct llist_node;
1958#line 64 "include/linux/llist.h"
1959struct llist_node {
1960   struct llist_node *next ;
1961};
1962#line 185
1963struct futex_pi_state;
1964#line 185
1965struct futex_pi_state;
1966#line 186
1967struct robust_list_head;
1968#line 186
1969struct robust_list_head;
1970#line 187
1971struct bio_list;
1972#line 187
1973struct bio_list;
1974#line 188
1975struct fs_struct;
1976#line 188
1977struct fs_struct;
1978#line 189
1979struct perf_event_context;
1980#line 189
1981struct perf_event_context;
1982#line 190
1983struct blk_plug;
1984#line 190
1985struct blk_plug;
1986#line 149 "include/linux/sched.h"
1987struct cfs_rq;
1988#line 149
1989struct cfs_rq;
1990#line 406 "include/linux/sched.h"
1991struct sighand_struct {
1992   atomic_t count ;
1993   struct k_sigaction action[64U] ;
1994   spinlock_t siglock ;
1995   wait_queue_head_t signalfd_wqh ;
1996};
1997#line 449 "include/linux/sched.h"
1998struct pacct_struct {
1999   int ac_flag ;
2000   long ac_exitcode ;
2001   unsigned long ac_mem ;
2002   cputime_t ac_utime ;
2003   cputime_t ac_stime ;
2004   unsigned long ac_minflt ;
2005   unsigned long ac_majflt ;
2006};
2007#line 457 "include/linux/sched.h"
2008struct cpu_itimer {
2009   cputime_t expires ;
2010   cputime_t incr ;
2011   u32 error ;
2012   u32 incr_error ;
2013};
2014#line 464 "include/linux/sched.h"
2015struct task_cputime {
2016   cputime_t utime ;
2017   cputime_t stime ;
2018   unsigned long long sum_exec_runtime ;
2019};
2020#line 481 "include/linux/sched.h"
2021struct thread_group_cputimer {
2022   struct task_cputime cputime ;
2023   int running ;
2024   raw_spinlock_t lock ;
2025};
2026#line 517
2027struct autogroup;
2028#line 517
2029struct autogroup;
2030#line 518
2031struct tty_struct;
2032#line 518
2033struct taskstats;
2034#line 518
2035struct tty_audit_buf;
2036#line 518 "include/linux/sched.h"
2037struct signal_struct {
2038   atomic_t sigcnt ;
2039   atomic_t live ;
2040   int nr_threads ;
2041   wait_queue_head_t wait_chldexit ;
2042   struct task_struct *curr_target ;
2043   struct sigpending shared_pending ;
2044   int group_exit_code ;
2045   int notify_count ;
2046   struct task_struct *group_exit_task ;
2047   int group_stop_count ;
2048   unsigned int flags ;
2049   unsigned char is_child_subreaper : 1 ;
2050   unsigned char has_child_subreaper : 1 ;
2051   struct list_head posix_timers ;
2052   struct hrtimer real_timer ;
2053   struct pid *leader_pid ;
2054   ktime_t it_real_incr ;
2055   struct cpu_itimer it[2U] ;
2056   struct thread_group_cputimer cputimer ;
2057   struct task_cputime cputime_expires ;
2058   struct list_head cpu_timers[3U] ;
2059   struct pid *tty_old_pgrp ;
2060   int leader ;
2061   struct tty_struct *tty ;
2062   struct autogroup *autogroup ;
2063   cputime_t utime ;
2064   cputime_t stime ;
2065   cputime_t cutime ;
2066   cputime_t cstime ;
2067   cputime_t gtime ;
2068   cputime_t cgtime ;
2069   cputime_t prev_utime ;
2070   cputime_t prev_stime ;
2071   unsigned long nvcsw ;
2072   unsigned long nivcsw ;
2073   unsigned long cnvcsw ;
2074   unsigned long cnivcsw ;
2075   unsigned long min_flt ;
2076   unsigned long maj_flt ;
2077   unsigned long cmin_flt ;
2078   unsigned long cmaj_flt ;
2079   unsigned long inblock ;
2080   unsigned long oublock ;
2081   unsigned long cinblock ;
2082   unsigned long coublock ;
2083   unsigned long maxrss ;
2084   unsigned long cmaxrss ;
2085   struct task_io_accounting ioac ;
2086   unsigned long long sum_sched_runtime ;
2087   struct rlimit rlim[16U] ;
2088   struct pacct_struct pacct ;
2089   struct taskstats *stats ;
2090   unsigned int audit_tty ;
2091   struct tty_audit_buf *tty_audit_buf ;
2092   struct rw_semaphore group_rwsem ;
2093   int oom_adj ;
2094   int oom_score_adj ;
2095   int oom_score_adj_min ;
2096   struct mutex cred_guard_mutex ;
2097};
2098#line 699 "include/linux/sched.h"
2099struct user_struct {
2100   atomic_t __count ;
2101   atomic_t processes ;
2102   atomic_t files ;
2103   atomic_t sigpending ;
2104   atomic_t inotify_watches ;
2105   atomic_t inotify_devs ;
2106   atomic_t fanotify_listeners ;
2107   atomic_long_t epoll_watches ;
2108   unsigned long mq_bytes ;
2109   unsigned long locked_shm ;
2110   struct key *uid_keyring ;
2111   struct key *session_keyring ;
2112   struct hlist_node uidhash_node ;
2113   uid_t uid ;
2114   struct user_namespace *user_ns ;
2115   atomic_long_t locked_vm ;
2116};
2117#line 744
2118struct backing_dev_info;
2119#line 744
2120struct backing_dev_info;
2121#line 745
2122struct reclaim_state;
2123#line 745
2124struct reclaim_state;
2125#line 746 "include/linux/sched.h"
2126struct sched_info {
2127   unsigned long pcount ;
2128   unsigned long long run_delay ;
2129   unsigned long long last_arrival ;
2130   unsigned long long last_queued ;
2131};
2132#line 760 "include/linux/sched.h"
2133struct task_delay_info {
2134   spinlock_t lock ;
2135   unsigned int flags ;
2136   struct timespec blkio_start ;
2137   struct timespec blkio_end ;
2138   u64 blkio_delay ;
2139   u64 swapin_delay ;
2140   u32 blkio_count ;
2141   u32 swapin_count ;
2142   struct timespec freepages_start ;
2143   struct timespec freepages_end ;
2144   u64 freepages_delay ;
2145   u32 freepages_count ;
2146};
2147#line 1069
2148struct io_context;
2149#line 1069
2150struct io_context;
2151#line 1097
2152struct pipe_inode_info;
2153#line 1097
2154struct pipe_inode_info;
2155#line 1099
2156struct rq;
2157#line 1099
2158struct rq;
2159#line 1100 "include/linux/sched.h"
2160struct sched_class {
2161   struct sched_class  const  *next ;
2162   void (*enqueue_task)(struct rq * , struct task_struct * , int  ) ;
2163   void (*dequeue_task)(struct rq * , struct task_struct * , int  ) ;
2164   void (*yield_task)(struct rq * ) ;
2165   bool (*yield_to_task)(struct rq * , struct task_struct * , bool  ) ;
2166   void (*check_preempt_curr)(struct rq * , struct task_struct * , int  ) ;
2167   struct task_struct *(*pick_next_task)(struct rq * ) ;
2168   void (*put_prev_task)(struct rq * , struct task_struct * ) ;
2169   int (*select_task_rq)(struct task_struct * , int  , int  ) ;
2170   void (*pre_schedule)(struct rq * , struct task_struct * ) ;
2171   void (*post_schedule)(struct rq * ) ;
2172   void (*task_waking)(struct task_struct * ) ;
2173   void (*task_woken)(struct rq * , struct task_struct * ) ;
2174   void (*set_cpus_allowed)(struct task_struct * , struct cpumask  const  * ) ;
2175   void (*rq_online)(struct rq * ) ;
2176   void (*rq_offline)(struct rq * ) ;
2177   void (*set_curr_task)(struct rq * ) ;
2178   void (*task_tick)(struct rq * , struct task_struct * , int  ) ;
2179   void (*task_fork)(struct task_struct * ) ;
2180   void (*switched_from)(struct rq * , struct task_struct * ) ;
2181   void (*switched_to)(struct rq * , struct task_struct * ) ;
2182   void (*prio_changed)(struct rq * , struct task_struct * , int  ) ;
2183   unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
2184   void (*task_move_group)(struct task_struct * , int  ) ;
2185};
2186#line 1165 "include/linux/sched.h"
2187struct load_weight {
2188   unsigned long weight ;
2189   unsigned long inv_weight ;
2190};
2191#line 1170 "include/linux/sched.h"
2192struct sched_statistics {
2193   u64 wait_start ;
2194   u64 wait_max ;
2195   u64 wait_count ;
2196   u64 wait_sum ;
2197   u64 iowait_count ;
2198   u64 iowait_sum ;
2199   u64 sleep_start ;
2200   u64 sleep_max ;
2201   s64 sum_sleep_runtime ;
2202   u64 block_start ;
2203   u64 block_max ;
2204   u64 exec_max ;
2205   u64 slice_max ;
2206   u64 nr_migrations_cold ;
2207   u64 nr_failed_migrations_affine ;
2208   u64 nr_failed_migrations_running ;
2209   u64 nr_failed_migrations_hot ;
2210   u64 nr_forced_migrations ;
2211   u64 nr_wakeups ;
2212   u64 nr_wakeups_sync ;
2213   u64 nr_wakeups_migrate ;
2214   u64 nr_wakeups_local ;
2215   u64 nr_wakeups_remote ;
2216   u64 nr_wakeups_affine ;
2217   u64 nr_wakeups_affine_attempts ;
2218   u64 nr_wakeups_passive ;
2219   u64 nr_wakeups_idle ;
2220};
2221#line 1205 "include/linux/sched.h"
2222struct sched_entity {
2223   struct load_weight load ;
2224   struct rb_node run_node ;
2225   struct list_head group_node ;
2226   unsigned int on_rq ;
2227   u64 exec_start ;
2228   u64 sum_exec_runtime ;
2229   u64 vruntime ;
2230   u64 prev_sum_exec_runtime ;
2231   u64 nr_migrations ;
2232   struct sched_statistics statistics ;
2233   struct sched_entity *parent ;
2234   struct cfs_rq *cfs_rq ;
2235   struct cfs_rq *my_q ;
2236};
2237#line 1231
2238struct rt_rq;
2239#line 1231 "include/linux/sched.h"
2240struct sched_rt_entity {
2241   struct list_head run_list ;
2242   unsigned long timeout ;
2243   unsigned int time_slice ;
2244   int nr_cpus_allowed ;
2245   struct sched_rt_entity *back ;
2246   struct sched_rt_entity *parent ;
2247   struct rt_rq *rt_rq ;
2248   struct rt_rq *my_q ;
2249};
2250#line 1255
2251struct mem_cgroup;
2252#line 1255 "include/linux/sched.h"
2253struct memcg_batch_info {
2254   int do_batch ;
2255   struct mem_cgroup *memcg ;
2256   unsigned long nr_pages ;
2257   unsigned long memsw_nr_pages ;
2258};
2259#line 1616
2260struct files_struct;
2261#line 1616
2262struct css_set;
2263#line 1616
2264struct compat_robust_list_head;
2265#line 1616 "include/linux/sched.h"
2266struct task_struct {
2267   long volatile   state ;
2268   void *stack ;
2269   atomic_t usage ;
2270   unsigned int flags ;
2271   unsigned int ptrace ;
2272   struct llist_node wake_entry ;
2273   int on_cpu ;
2274   int on_rq ;
2275   int prio ;
2276   int static_prio ;
2277   int normal_prio ;
2278   unsigned int rt_priority ;
2279   struct sched_class  const  *sched_class ;
2280   struct sched_entity se ;
2281   struct sched_rt_entity rt ;
2282   struct hlist_head preempt_notifiers ;
2283   unsigned char fpu_counter ;
2284   unsigned int policy ;
2285   cpumask_t cpus_allowed ;
2286   struct sched_info sched_info ;
2287   struct list_head tasks ;
2288   struct plist_node pushable_tasks ;
2289   struct mm_struct *mm ;
2290   struct mm_struct *active_mm ;
2291   unsigned char brk_randomized : 1 ;
2292   int exit_state ;
2293   int exit_code ;
2294   int exit_signal ;
2295   int pdeath_signal ;
2296   unsigned int jobctl ;
2297   unsigned int personality ;
2298   unsigned char did_exec : 1 ;
2299   unsigned char in_execve : 1 ;
2300   unsigned char in_iowait : 1 ;
2301   unsigned char sched_reset_on_fork : 1 ;
2302   unsigned char sched_contributes_to_load : 1 ;
2303   unsigned char irq_thread : 1 ;
2304   pid_t pid ;
2305   pid_t tgid ;
2306   unsigned long stack_canary ;
2307   struct task_struct *real_parent ;
2308   struct task_struct *parent ;
2309   struct list_head children ;
2310   struct list_head sibling ;
2311   struct task_struct *group_leader ;
2312   struct list_head ptraced ;
2313   struct list_head ptrace_entry ;
2314   struct pid_link pids[3U] ;
2315   struct list_head thread_group ;
2316   struct completion *vfork_done ;
2317   int *set_child_tid ;
2318   int *clear_child_tid ;
2319   cputime_t utime ;
2320   cputime_t stime ;
2321   cputime_t utimescaled ;
2322   cputime_t stimescaled ;
2323   cputime_t gtime ;
2324   cputime_t prev_utime ;
2325   cputime_t prev_stime ;
2326   unsigned long nvcsw ;
2327   unsigned long nivcsw ;
2328   struct timespec start_time ;
2329   struct timespec real_start_time ;
2330   unsigned long min_flt ;
2331   unsigned long maj_flt ;
2332   struct task_cputime cputime_expires ;
2333   struct list_head cpu_timers[3U] ;
2334   struct cred  const  *real_cred ;
2335   struct cred  const  *cred ;
2336   struct cred *replacement_session_keyring ;
2337   char comm[16U] ;
2338   int link_count ;
2339   int total_link_count ;
2340   struct sysv_sem sysvsem ;
2341   unsigned long last_switch_count ;
2342   struct thread_struct thread ;
2343   struct fs_struct *fs ;
2344   struct files_struct *files ;
2345   struct nsproxy *nsproxy ;
2346   struct signal_struct *signal ;
2347   struct sighand_struct *sighand ;
2348   sigset_t blocked ;
2349   sigset_t real_blocked ;
2350   sigset_t saved_sigmask ;
2351   struct sigpending pending ;
2352   unsigned long sas_ss_sp ;
2353   size_t sas_ss_size ;
2354   int (*notifier)(void * ) ;
2355   void *notifier_data ;
2356   sigset_t *notifier_mask ;
2357   struct audit_context *audit_context ;
2358   uid_t loginuid ;
2359   unsigned int sessionid ;
2360   seccomp_t seccomp ;
2361   u32 parent_exec_id ;
2362   u32 self_exec_id ;
2363   spinlock_t alloc_lock ;
2364   raw_spinlock_t pi_lock ;
2365   struct plist_head pi_waiters ;
2366   struct rt_mutex_waiter *pi_blocked_on ;
2367   struct mutex_waiter *blocked_on ;
2368   unsigned int irq_events ;
2369   unsigned long hardirq_enable_ip ;
2370   unsigned long hardirq_disable_ip ;
2371   unsigned int hardirq_enable_event ;
2372   unsigned int hardirq_disable_event ;
2373   int hardirqs_enabled ;
2374   int hardirq_context ;
2375   unsigned long softirq_disable_ip ;
2376   unsigned long softirq_enable_ip ;
2377   unsigned int softirq_disable_event ;
2378   unsigned int softirq_enable_event ;
2379   int softirqs_enabled ;
2380   int softirq_context ;
2381   u64 curr_chain_key ;
2382   int lockdep_depth ;
2383   unsigned int lockdep_recursion ;
2384   struct held_lock held_locks[48U] ;
2385   gfp_t lockdep_reclaim_gfp ;
2386   void *journal_info ;
2387   struct bio_list *bio_list ;
2388   struct blk_plug *plug ;
2389   struct reclaim_state *reclaim_state ;
2390   struct backing_dev_info *backing_dev_info ;
2391   struct io_context *io_context ;
2392   unsigned long ptrace_message ;
2393   siginfo_t *last_siginfo ;
2394   struct task_io_accounting ioac ;
2395   u64 acct_rss_mem1 ;
2396   u64 acct_vm_mem1 ;
2397   cputime_t acct_timexpd ;
2398   nodemask_t mems_allowed ;
2399   seqcount_t mems_allowed_seq ;
2400   int cpuset_mem_spread_rotor ;
2401   int cpuset_slab_spread_rotor ;
2402   struct css_set *cgroups ;
2403   struct list_head cg_list ;
2404   struct robust_list_head *robust_list ;
2405   struct compat_robust_list_head *compat_robust_list ;
2406   struct list_head pi_state_list ;
2407   struct futex_pi_state *pi_state_cache ;
2408   struct perf_event_context *perf_event_ctxp[2U] ;
2409   struct mutex perf_event_mutex ;
2410   struct list_head perf_event_list ;
2411   struct mempolicy *mempolicy ;
2412   short il_next ;
2413   short pref_node_fork ;
2414   struct rcu_head rcu ;
2415   struct pipe_inode_info *splice_pipe ;
2416   struct task_delay_info *delays ;
2417   int make_it_fail ;
2418   int nr_dirtied ;
2419   int nr_dirtied_pause ;
2420   unsigned long dirty_paused_when ;
2421   int latency_record_count ;
2422   struct latency_record latency_record[32U] ;
2423   unsigned long timer_slack_ns ;
2424   unsigned long default_timer_slack_ns ;
2425   struct list_head *scm_work_list ;
2426   unsigned long trace ;
2427   unsigned long trace_recursion ;
2428   struct memcg_batch_info memcg_batch ;
2429   atomic_t ptrace_bp_refcnt ;
2430};
2431#line 2820 "include/linux/sched.h"
2432struct taskstats {
2433   __u16 version ;
2434   __u32 ac_exitcode ;
2435   __u8 ac_flag ;
2436   __u8 ac_nice ;
2437   __u64 cpu_count ;
2438   __u64 cpu_delay_total ;
2439   __u64 blkio_count ;
2440   __u64 blkio_delay_total ;
2441   __u64 swapin_count ;
2442   __u64 swapin_delay_total ;
2443   __u64 cpu_run_real_total ;
2444   __u64 cpu_run_virtual_total ;
2445   char ac_comm[32U] ;
2446   __u8 ac_sched ;
2447   __u8 ac_pad[3U] ;
2448   __u32 ac_uid ;
2449   __u32 ac_gid ;
2450   __u32 ac_pid ;
2451   __u32 ac_ppid ;
2452   __u32 ac_btime ;
2453   __u64 ac_etime ;
2454   __u64 ac_utime ;
2455   __u64 ac_stime ;
2456   __u64 ac_minflt ;
2457   __u64 ac_majflt ;
2458   __u64 coremem ;
2459   __u64 virtmem ;
2460   __u64 hiwater_rss ;
2461   __u64 hiwater_vm ;
2462   __u64 read_char ;
2463   __u64 write_char ;
2464   __u64 read_syscalls ;
2465   __u64 write_syscalls ;
2466   __u64 read_bytes ;
2467   __u64 write_bytes ;
2468   __u64 cancelled_write_bytes ;
2469   __u64 nvcsw ;
2470   __u64 nivcsw ;
2471   __u64 ac_utimescaled ;
2472   __u64 ac_stimescaled ;
2473   __u64 cpu_scaled_run_real_total ;
2474   __u64 freepages_count ;
2475   __u64 freepages_delay_total ;
2476};
2477#line 154 "include/linux/idr.h"
2478struct cgroupfs_root;
2479#line 154
2480struct cgroupfs_root;
2481#line 156
2482struct cgroup;
2483#line 156
2484struct cgroup;
2485#line 157
2486struct css_id;
2487#line 157
2488struct css_id;
2489#line 56 "include/linux/cgroup.h"
2490struct cgroup_subsys_state {
2491   struct cgroup *cgroup ;
2492   atomic_t refcnt ;
2493   unsigned long flags ;
2494   struct css_id *id ;
2495};
2496#line 149 "include/linux/cgroup.h"
2497struct cgroup {
2498   unsigned long flags ;
2499   atomic_t count ;
2500   struct list_head sibling ;
2501   struct list_head children ;
2502   struct cgroup *parent ;
2503   struct dentry *dentry ;
2504   struct cgroup_subsys_state *subsys[64U] ;
2505   struct cgroupfs_root *root ;
2506   struct cgroup *top_cgroup ;
2507   struct list_head css_sets ;
2508   struct list_head release_list ;
2509   struct list_head pidlists ;
2510   struct mutex pidlist_mutex ;
2511   struct rcu_head rcu_head ;
2512   struct list_head event_list ;
2513   spinlock_t event_list_lock ;
2514};
2515#line 215 "include/linux/cgroup.h"
2516struct css_set {
2517   atomic_t refcount ;
2518   struct hlist_node hlist ;
2519   struct list_head tasks ;
2520   struct list_head cg_links ;
2521   struct cgroup_subsys_state *subsys[64U] ;
2522   struct rcu_head rcu_head ;
2523};
2524#line 108 "include/linux/swap.h"
2525struct reclaim_state {
2526   unsigned long reclaimed_slab ;
2527};
2528#line 178 "include/linux/mm.h"
2529struct vm_fault {
2530   unsigned int flags ;
2531   unsigned long pgoff ;
2532   void *virtual_address ;
2533   struct page *page ;
2534};
2535#line 195 "include/linux/mm.h"
2536struct vm_operations_struct {
2537   void (*open)(struct vm_area_struct * ) ;
2538   void (*close)(struct vm_area_struct * ) ;
2539   int (*fault)(struct vm_area_struct * , struct vm_fault * ) ;
2540   int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ;
2541   int (*access)(struct vm_area_struct * , unsigned long  , void * , int  , int  ) ;
2542   int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ;
2543   struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long  ) ;
2544   int (*migrate)(struct vm_area_struct * , nodemask_t const   * , nodemask_t const   * ,
2545                  unsigned long  ) ;
2546};
2547#line 34 "include/linux/suspend.h"
2548typedef int suspend_state_t;
2549#line 443 "include/linux/suspend.h"
2550struct regulator_state {
2551   int uV ;
2552   unsigned int mode ;
2553   int enabled ;
2554   int disabled ;
2555};
2556#line 61 "include/linux/regulator/machine.h"
2557struct regulation_constraints {
2558   char const   *name ;
2559   int min_uV ;
2560   int max_uV ;
2561   int uV_offset ;
2562   int min_uA ;
2563   int max_uA ;
2564   unsigned int valid_modes_mask ;
2565   unsigned int valid_ops_mask ;
2566   int input_uV ;
2567   struct regulator_state state_disk ;
2568   struct regulator_state state_mem ;
2569   struct regulator_state state_standby ;
2570   suspend_state_t initial_state ;
2571   unsigned int initial_mode ;
2572   unsigned char always_on : 1 ;
2573   unsigned char boot_on : 1 ;
2574   unsigned char apply_uV : 1 ;
2575};
2576#line 133 "include/linux/regulator/machine.h"
2577struct regulator_consumer_supply {
2578   char const   *dev_name ;
2579   char const   *supply ;
2580};
2581#line 147 "include/linux/regulator/machine.h"
2582struct regulator_init_data {
2583   char const   *supply_regulator ;
2584   struct regulation_constraints constraints ;
2585   int num_consumer_supplies ;
2586   struct regulator_consumer_supply *consumer_supplies ;
2587   int (*regulator_init)(void * ) ;
2588   void *driver_data ;
2589};
2590#line 12 "include/linux/mod_devicetable.h"
2591typedef unsigned long kernel_ulong_t;
2592#line 215 "include/linux/mod_devicetable.h"
2593struct of_device_id {
2594   char name[32U] ;
2595   char type[32U] ;
2596   char compatible[128U] ;
2597   void *data ;
2598};
2599#line 492 "include/linux/mod_devicetable.h"
2600struct platform_device_id {
2601   char name[20U] ;
2602   kernel_ulong_t driver_data ;
2603};
2604#line 584
2605struct mfd_cell;
2606#line 584
2607struct mfd_cell;
2608#line 585 "include/linux/mod_devicetable.h"
2609struct platform_device {
2610   char const   *name ;
2611   int id ;
2612   struct device dev ;
2613   u32 num_resources ;
2614   struct resource *resource ;
2615   struct platform_device_id  const  *id_entry ;
2616   struct mfd_cell *mfd_cell ;
2617   struct pdev_archdata archdata ;
2618};
2619#line 163 "include/linux/platform_device.h"
2620struct platform_driver {
2621   int (*probe)(struct platform_device * ) ;
2622   int (*remove)(struct platform_device * ) ;
2623   void (*shutdown)(struct platform_device * ) ;
2624   int (*suspend)(struct platform_device * , pm_message_t  ) ;
2625   int (*resume)(struct platform_device * ) ;
2626   struct device_driver driver ;
2627   struct platform_device_id  const  *id_table ;
2628};
2629#line 272
2630struct regmap;
2631#line 272
2632struct regmap;
2633#line 273 "include/linux/platform_device.h"
2634struct wm8400 {
2635   struct device *dev ;
2636   struct mutex io_lock ;
2637   struct regmap *regmap ;
2638   u16 reg_cache[85U] ;
2639   struct platform_device regulators[6U] ;
2640};
2641#line 1 "<compiler builtins>"
2642long __builtin_expect(long  , long  ) ;
2643#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2644void ldv_spin_lock(void) ;
2645#line 3
2646void ldv_spin_unlock(void) ;
2647#line 4
2648int ldv_spin_trylock(void) ;
2649#line 27 "include/linux/err.h"
2650__inline static long PTR_ERR(void const   *ptr ) 
2651{ 
2652
2653  {
2654#line 29
2655  return ((long )ptr);
2656}
2657}
2658#line 32 "include/linux/err.h"
2659__inline static long IS_ERR(void const   *ptr ) 
2660{ long tmp ;
2661  unsigned long __cil_tmp3 ;
2662  int __cil_tmp4 ;
2663  long __cil_tmp5 ;
2664
2665  {
2666  {
2667#line 34
2668  __cil_tmp3 = (unsigned long )ptr;
2669#line 34
2670  __cil_tmp4 = __cil_tmp3 > 0xfffffffffffff000UL;
2671#line 34
2672  __cil_tmp5 = (long )__cil_tmp4;
2673#line 34
2674  tmp = __builtin_expect(__cil_tmp5, 0L);
2675  }
2676#line 34
2677  return (tmp);
2678}
2679}
2680#line 26 "include/linux/export.h"
2681extern struct module __this_module ;
2682#line 220 "include/linux/slub_def.h"
2683extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
2684#line 223
2685void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2686#line 11 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2687void ldv_check_alloc_flags(gfp_t flags ) ;
2688#line 12
2689void ldv_check_alloc_nonatomic(void) ;
2690#line 14
2691struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2692#line 792 "include/linux/device.h"
2693extern void *dev_get_drvdata(struct device  const  * ) ;
2694#line 793
2695extern int dev_set_drvdata(struct device * , void * ) ;
2696#line 213 "include/linux/regulator/driver.h"
2697extern struct regulator_dev *regulator_register(struct regulator_desc * , struct device * ,
2698                                                struct regulator_init_data  const  * ,
2699                                                void * , struct device_node * ) ;
2700#line 216
2701extern void regulator_unregister(struct regulator_dev * ) ;
2702#line 221
2703extern void *rdev_get_drvdata(struct regulator_dev * ) ;
2704#line 223
2705extern int rdev_get_id(struct regulator_dev * ) ;
2706#line 37 "include/linux/mfd/wm8400.h"
2707int wm8400_register_regulator(struct device *dev , int reg , struct regulator_init_data *initdata ) ;
2708#line 39 "include/linux/platform_device.h"
2709extern int platform_device_register(struct platform_device * ) ;
2710#line 174
2711extern int platform_driver_register(struct platform_driver * ) ;
2712#line 175
2713extern void platform_driver_unregister(struct platform_driver * ) ;
2714#line 183 "include/linux/platform_device.h"
2715__inline static void *platform_get_drvdata(struct platform_device  const  *pdev ) 
2716{ void *tmp ;
2717  unsigned long __cil_tmp3 ;
2718  unsigned long __cil_tmp4 ;
2719  struct device  const  *__cil_tmp5 ;
2720
2721  {
2722  {
2723#line 185
2724  __cil_tmp3 = (unsigned long )pdev;
2725#line 185
2726  __cil_tmp4 = __cil_tmp3 + 16;
2727#line 185
2728  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
2729#line 185
2730  tmp = dev_get_drvdata(__cil_tmp5);
2731  }
2732#line 185
2733  return (tmp);
2734}
2735}
2736#line 188 "include/linux/platform_device.h"
2737__inline static void platform_set_drvdata(struct platform_device *pdev , void *data ) 
2738{ unsigned long __cil_tmp3 ;
2739  unsigned long __cil_tmp4 ;
2740  struct device *__cil_tmp5 ;
2741
2742  {
2743  {
2744#line 190
2745  __cil_tmp3 = (unsigned long )pdev;
2746#line 190
2747  __cil_tmp4 = __cil_tmp3 + 16;
2748#line 190
2749  __cil_tmp5 = (struct device *)__cil_tmp4;
2750#line 190
2751  dev_set_drvdata(__cil_tmp5, data);
2752  }
2753#line 191
2754  return;
2755}
2756}
2757#line 931 "include/linux/mfd/wm8400-private.h"
2758extern u16 wm8400_reg_read(struct wm8400 * , u8  ) ;
2759#line 932
2760extern int wm8400_block_read(struct wm8400 * , u8  , int  , u16 * ) ;
2761#line 933
2762extern int wm8400_set_bits(struct wm8400 * , u8  , u16  , u16  ) ;
2763#line 37 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2764static int wm8400_ldo_is_enabled(struct regulator_dev *dev ) 
2765{ struct wm8400 *wm8400 ;
2766  void *tmp ;
2767  u16 val ;
2768  int tmp___0 ;
2769  u8 __cil_tmp6 ;
2770  unsigned int __cil_tmp7 ;
2771  unsigned int __cil_tmp8 ;
2772  int __cil_tmp9 ;
2773  u8 __cil_tmp10 ;
2774  short __cil_tmp11 ;
2775  int __cil_tmp12 ;
2776
2777  {
2778  {
2779#line 39
2780  tmp = rdev_get_drvdata(dev);
2781#line 39
2782  wm8400 = (struct wm8400 *)tmp;
2783#line 42
2784  tmp___0 = rdev_get_id(dev);
2785#line 42
2786  __cil_tmp6 = (u8 )tmp___0;
2787#line 42
2788  __cil_tmp7 = (unsigned int )__cil_tmp6;
2789#line 42
2790  __cil_tmp8 = __cil_tmp7 + 65U;
2791#line 42
2792  __cil_tmp9 = (int )__cil_tmp8;
2793#line 42
2794  __cil_tmp10 = (u8 )__cil_tmp9;
2795#line 42
2796  val = wm8400_reg_read(wm8400, __cil_tmp10);
2797  }
2798  {
2799#line 43
2800  __cil_tmp11 = (short )val;
2801#line 43
2802  __cil_tmp12 = (int )__cil_tmp11;
2803#line 43
2804  return (__cil_tmp12 < 0);
2805  }
2806}
2807}
2808#line 46 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2809static int wm8400_ldo_enable(struct regulator_dev *dev ) 
2810{ struct wm8400 *wm8400 ;
2811  void *tmp ;
2812  int tmp___0 ;
2813  int tmp___1 ;
2814  u8 __cil_tmp6 ;
2815  unsigned int __cil_tmp7 ;
2816  unsigned int __cil_tmp8 ;
2817  int __cil_tmp9 ;
2818  u8 __cil_tmp10 ;
2819  u16 __cil_tmp11 ;
2820  u16 __cil_tmp12 ;
2821
2822  {
2823  {
2824#line 48
2825  tmp = rdev_get_drvdata(dev);
2826#line 48
2827  wm8400 = (struct wm8400 *)tmp;
2828#line 50
2829  tmp___0 = rdev_get_id(dev);
2830#line 50
2831  __cil_tmp6 = (u8 )tmp___0;
2832#line 50
2833  __cil_tmp7 = (unsigned int )__cil_tmp6;
2834#line 50
2835  __cil_tmp8 = __cil_tmp7 + 65U;
2836#line 50
2837  __cil_tmp9 = (int )__cil_tmp8;
2838#line 50
2839  __cil_tmp10 = (u8 )__cil_tmp9;
2840#line 50
2841  __cil_tmp11 = (u16 )32768;
2842#line 50
2843  __cil_tmp12 = (u16 )32768;
2844#line 50
2845  tmp___1 = wm8400_set_bits(wm8400, __cil_tmp10, __cil_tmp11, __cil_tmp12);
2846  }
2847#line 50
2848  return (tmp___1);
2849}
2850}
2851#line 54 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2852static int wm8400_ldo_disable(struct regulator_dev *dev ) 
2853{ struct wm8400 *wm8400 ;
2854  void *tmp ;
2855  int tmp___0 ;
2856  int tmp___1 ;
2857  u8 __cil_tmp6 ;
2858  unsigned int __cil_tmp7 ;
2859  unsigned int __cil_tmp8 ;
2860  int __cil_tmp9 ;
2861  u8 __cil_tmp10 ;
2862  u16 __cil_tmp11 ;
2863  u16 __cil_tmp12 ;
2864
2865  {
2866  {
2867#line 56
2868  tmp = rdev_get_drvdata(dev);
2869#line 56
2870  wm8400 = (struct wm8400 *)tmp;
2871#line 58
2872  tmp___0 = rdev_get_id(dev);
2873#line 58
2874  __cil_tmp6 = (u8 )tmp___0;
2875#line 58
2876  __cil_tmp7 = (unsigned int )__cil_tmp6;
2877#line 58
2878  __cil_tmp8 = __cil_tmp7 + 65U;
2879#line 58
2880  __cil_tmp9 = (int )__cil_tmp8;
2881#line 58
2882  __cil_tmp10 = (u8 )__cil_tmp9;
2883#line 58
2884  __cil_tmp11 = (u16 )32768;
2885#line 58
2886  __cil_tmp12 = (u16 )0;
2887#line 58
2888  tmp___1 = wm8400_set_bits(wm8400, __cil_tmp10, __cil_tmp11, __cil_tmp12);
2889  }
2890#line 58
2891  return (tmp___1);
2892}
2893}
2894#line 62 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2895static int wm8400_ldo_list_voltage(struct regulator_dev *dev , unsigned int selector ) 
2896{ unsigned int __cil_tmp3 ;
2897  unsigned int __cil_tmp4 ;
2898  unsigned int __cil_tmp5 ;
2899  unsigned int __cil_tmp6 ;
2900
2901  {
2902#line 65
2903  if (selector > 31U) {
2904#line 66
2905    return (-22);
2906  } else {
2907
2908  }
2909#line 68
2910  if (selector <= 14U) {
2911    {
2912#line 69
2913    __cil_tmp3 = selector * 50000U;
2914#line 69
2915    __cil_tmp4 = __cil_tmp3 + 900000U;
2916#line 69
2917    return ((int )__cil_tmp4);
2918    }
2919  } else {
2920    {
2921#line 71
2922    __cil_tmp5 = selector * 100000U;
2923#line 71
2924    __cil_tmp6 = __cil_tmp5 + 200000U;
2925#line 71
2926    return ((int )__cil_tmp6);
2927    }
2928  }
2929}
2930}
2931#line 74 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2932static int wm8400_ldo_get_voltage_sel(struct regulator_dev *dev ) 
2933{ struct wm8400 *wm8400 ;
2934  void *tmp ;
2935  u16 val ;
2936  int tmp___0 ;
2937  u8 __cil_tmp6 ;
2938  unsigned int __cil_tmp7 ;
2939  unsigned int __cil_tmp8 ;
2940  int __cil_tmp9 ;
2941  u8 __cil_tmp10 ;
2942  unsigned int __cil_tmp11 ;
2943  unsigned int __cil_tmp12 ;
2944
2945  {
2946  {
2947#line 76
2948  tmp = rdev_get_drvdata(dev);
2949#line 76
2950  wm8400 = (struct wm8400 *)tmp;
2951#line 79
2952  tmp___0 = rdev_get_id(dev);
2953#line 79
2954  __cil_tmp6 = (u8 )tmp___0;
2955#line 79
2956  __cil_tmp7 = (unsigned int )__cil_tmp6;
2957#line 79
2958  __cil_tmp8 = __cil_tmp7 + 65U;
2959#line 79
2960  __cil_tmp9 = (int )__cil_tmp8;
2961#line 79
2962  __cil_tmp10 = (u8 )__cil_tmp9;
2963#line 79
2964  val = wm8400_reg_read(wm8400, __cil_tmp10);
2965#line 80
2966  __cil_tmp11 = (unsigned int )val;
2967#line 80
2968  __cil_tmp12 = __cil_tmp11 & 31U;
2969#line 80
2970  val = (u16 )__cil_tmp12;
2971  }
2972#line 82
2973  return ((int )val);
2974}
2975}
2976#line 85 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
2977static int wm8400_ldo_set_voltage(struct regulator_dev *dev , int min_uV , int max_uV ,
2978                                  unsigned int *selector ) 
2979{ struct wm8400 *wm8400 ;
2980  void *tmp ;
2981  u16 val ;
2982  long tmp___0 ;
2983  long tmp___1 ;
2984  int tmp___2 ;
2985  int tmp___3 ;
2986  int __cil_tmp12 ;
2987  int __cil_tmp13 ;
2988  int __cil_tmp14 ;
2989  int __cil_tmp15 ;
2990  int __cil_tmp16 ;
2991  int __cil_tmp17 ;
2992  int __cil_tmp18 ;
2993  int __cil_tmp19 ;
2994  int __cil_tmp20 ;
2995  long __cil_tmp21 ;
2996  int __cil_tmp22 ;
2997  int __cil_tmp23 ;
2998  int __cil_tmp24 ;
2999  int __cil_tmp25 ;
3000  int __cil_tmp26 ;
3001  int __cil_tmp27 ;
3002  int __cil_tmp28 ;
3003  int __cil_tmp29 ;
3004  int __cil_tmp30 ;
3005  long __cil_tmp31 ;
3006  unsigned int __cil_tmp32 ;
3007  unsigned int __cil_tmp33 ;
3008  u8 __cil_tmp34 ;
3009  unsigned int __cil_tmp35 ;
3010  unsigned int __cil_tmp36 ;
3011  int __cil_tmp37 ;
3012  u8 __cil_tmp38 ;
3013  u16 __cil_tmp39 ;
3014  int __cil_tmp40 ;
3015  u16 __cil_tmp41 ;
3016
3017  {
3018  {
3019#line 88
3020  tmp = rdev_get_drvdata(dev);
3021#line 88
3022  wm8400 = (struct wm8400 *)tmp;
3023  }
3024#line 91
3025  if (min_uV <= 899999) {
3026#line 92
3027    return (-22);
3028  } else
3029#line 91
3030  if (min_uV > 3300000) {
3031#line 92
3032    return (-22);
3033  } else {
3034
3035  }
3036#line 94
3037  if (min_uV <= 1699999) {
3038#line 96
3039    __cil_tmp12 = min_uV + -850001;
3040#line 96
3041    __cil_tmp13 = __cil_tmp12 / 50000;
3042#line 96
3043    val = (u16 )__cil_tmp13;
3044    {
3045#line 98
3046    __cil_tmp14 = (int )val;
3047#line 98
3048    __cil_tmp15 = __cil_tmp14 * 50000;
3049#line 98
3050    __cil_tmp16 = __cil_tmp15 + 900000;
3051#line 98
3052    if (__cil_tmp16 > max_uV) {
3053#line 99
3054      return (-22);
3055    } else {
3056
3057    }
3058    }
3059    {
3060#line 100
3061    __cil_tmp17 = (int )val;
3062#line 100
3063    __cil_tmp18 = __cil_tmp17 * 50000;
3064#line 100
3065    __cil_tmp19 = __cil_tmp18 + 900000;
3066#line 100
3067    __cil_tmp20 = __cil_tmp19 < min_uV;
3068#line 100
3069    __cil_tmp21 = (long )__cil_tmp20;
3070#line 100
3071    tmp___0 = __builtin_expect(__cil_tmp21, 0L);
3072    }
3073#line 100
3074    if (tmp___0 != 0L) {
3075#line 100
3076      __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"),
3077                           "i" (100), "i" (12UL));
3078      ldv_22455: ;
3079#line 100
3080      goto ldv_22455;
3081    } else {
3082
3083    }
3084  } else {
3085#line 103
3086    __cil_tmp22 = min_uV + -1600001;
3087#line 103
3088    __cil_tmp23 = __cil_tmp22 / 100000;
3089#line 103
3090    val = (u16 )__cil_tmp23;
3091    {
3092#line 105
3093    __cil_tmp24 = (int )val;
3094#line 105
3095    __cil_tmp25 = __cil_tmp24 * 100000;
3096#line 105
3097    __cil_tmp26 = __cil_tmp25 + 1700000;
3098#line 105
3099    if (__cil_tmp26 > max_uV) {
3100#line 106
3101      return (-22);
3102    } else {
3103
3104    }
3105    }
3106    {
3107#line 107
3108    __cil_tmp27 = (int )val;
3109#line 107
3110    __cil_tmp28 = __cil_tmp27 * 100000;
3111#line 107
3112    __cil_tmp29 = __cil_tmp28 + 1700000;
3113#line 107
3114    __cil_tmp30 = __cil_tmp29 < min_uV;
3115#line 107
3116    __cil_tmp31 = (long )__cil_tmp30;
3117#line 107
3118    tmp___1 = __builtin_expect(__cil_tmp31, 0L);
3119    }
3120#line 107
3121    if (tmp___1 != 0L) {
3122#line 107
3123      __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"),
3124                           "i" (107), "i" (12UL));
3125      ldv_22456: ;
3126#line 107
3127      goto ldv_22456;
3128    } else {
3129
3130    }
3131#line 109
3132    __cil_tmp32 = (unsigned int )val;
3133#line 109
3134    __cil_tmp33 = __cil_tmp32 + 15U;
3135#line 109
3136    val = (u16 )__cil_tmp33;
3137  }
3138  {
3139#line 112
3140  *selector = (unsigned int )val;
3141#line 114
3142  tmp___2 = rdev_get_id(dev);
3143#line 114
3144  __cil_tmp34 = (u8 )tmp___2;
3145#line 114
3146  __cil_tmp35 = (unsigned int )__cil_tmp34;
3147#line 114
3148  __cil_tmp36 = __cil_tmp35 + 65U;
3149#line 114
3150  __cil_tmp37 = (int )__cil_tmp36;
3151#line 114
3152  __cil_tmp38 = (u8 )__cil_tmp37;
3153#line 114
3154  __cil_tmp39 = (u16 )31;
3155#line 114
3156  __cil_tmp40 = (int )val;
3157#line 114
3158  __cil_tmp41 = (u16 )__cil_tmp40;
3159#line 114
3160  tmp___3 = wm8400_set_bits(wm8400, __cil_tmp38, __cil_tmp39, __cil_tmp41);
3161  }
3162#line 114
3163  return (tmp___3);
3164}
3165}
3166#line 118 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3167static struct regulator_ops wm8400_ldo_ops  = 
3168#line 118
3169     {& wm8400_ldo_list_voltage, & wm8400_ldo_set_voltage, (int (*)(struct regulator_dev * ,
3170                                                                  unsigned int  ))0,
3171    (int (*)(struct regulator_dev * ))0, & wm8400_ldo_get_voltage_sel, (int (*)(struct regulator_dev * ,
3172                                                                                int  ,
3173                                                                                int  ))0,
3174    (int (*)(struct regulator_dev * ))0, & wm8400_ldo_enable, & wm8400_ldo_disable,
3175    & wm8400_ldo_is_enabled, (int (*)(struct regulator_dev * , unsigned int  ))0,
3176    (unsigned int (*)(struct regulator_dev * ))0, (int (*)(struct regulator_dev * ))0,
3177    (int (*)(struct regulator_dev * , unsigned int  , unsigned int  ))0, (int (*)(struct regulator_dev * ))0,
3178    (unsigned int (*)(struct regulator_dev * , int  , int  , int  ))0, (int (*)(struct regulator_dev * ,
3179                                                                                int  ))0,
3180    (int (*)(struct regulator_dev * ))0, (int (*)(struct regulator_dev * ))0, (int (*)(struct regulator_dev * ,
3181                                                                                       unsigned int  ))0};
3182#line 127 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3183static int wm8400_dcdc_is_enabled(struct regulator_dev *dev ) 
3184{ struct wm8400 *wm8400 ;
3185  void *tmp ;
3186  int offset ;
3187  int tmp___0 ;
3188  u16 val ;
3189  int __cil_tmp7 ;
3190  u8 __cil_tmp8 ;
3191  unsigned int __cil_tmp9 ;
3192  unsigned int __cil_tmp10 ;
3193  int __cil_tmp11 ;
3194  u8 __cil_tmp12 ;
3195  short __cil_tmp13 ;
3196  int __cil_tmp14 ;
3197
3198  {
3199  {
3200#line 129
3201  tmp = rdev_get_drvdata(dev);
3202#line 129
3203  wm8400 = (struct wm8400 *)tmp;
3204#line 130
3205  tmp___0 = rdev_get_id(dev);
3206#line 130
3207  __cil_tmp7 = tmp___0 + -4;
3208#line 130
3209  offset = __cil_tmp7 * 2;
3210#line 133
3211  __cil_tmp8 = (u8 )offset;
3212#line 133
3213  __cil_tmp9 = (unsigned int )__cil_tmp8;
3214#line 133
3215  __cil_tmp10 = __cil_tmp9 + 70U;
3216#line 133
3217  __cil_tmp11 = (int )__cil_tmp10;
3218#line 133
3219  __cil_tmp12 = (u8 )__cil_tmp11;
3220#line 133
3221  val = wm8400_reg_read(wm8400, __cil_tmp12);
3222  }
3223  {
3224#line 134
3225  __cil_tmp13 = (short )val;
3226#line 134
3227  __cil_tmp14 = (int )__cil_tmp13;
3228#line 134
3229  return (__cil_tmp14 < 0);
3230  }
3231}
3232}
3233#line 137 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3234static int wm8400_dcdc_enable(struct regulator_dev *dev ) 
3235{ struct wm8400 *wm8400 ;
3236  void *tmp ;
3237  int offset ;
3238  int tmp___0 ;
3239  int tmp___1 ;
3240  int __cil_tmp7 ;
3241  u8 __cil_tmp8 ;
3242  unsigned int __cil_tmp9 ;
3243  unsigned int __cil_tmp10 ;
3244  int __cil_tmp11 ;
3245  u8 __cil_tmp12 ;
3246  u16 __cil_tmp13 ;
3247  u16 __cil_tmp14 ;
3248
3249  {
3250  {
3251#line 139
3252  tmp = rdev_get_drvdata(dev);
3253#line 139
3254  wm8400 = (struct wm8400 *)tmp;
3255#line 140
3256  tmp___0 = rdev_get_id(dev);
3257#line 140
3258  __cil_tmp7 = tmp___0 + -4;
3259#line 140
3260  offset = __cil_tmp7 * 2;
3261#line 142
3262  __cil_tmp8 = (u8 )offset;
3263#line 142
3264  __cil_tmp9 = (unsigned int )__cil_tmp8;
3265#line 142
3266  __cil_tmp10 = __cil_tmp9 + 70U;
3267#line 142
3268  __cil_tmp11 = (int )__cil_tmp10;
3269#line 142
3270  __cil_tmp12 = (u8 )__cil_tmp11;
3271#line 142
3272  __cil_tmp13 = (u16 )32768;
3273#line 142
3274  __cil_tmp14 = (u16 )32768;
3275#line 142
3276  tmp___1 = wm8400_set_bits(wm8400, __cil_tmp12, __cil_tmp13, __cil_tmp14);
3277  }
3278#line 142
3279  return (tmp___1);
3280}
3281}
3282#line 146 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3283static int wm8400_dcdc_disable(struct regulator_dev *dev ) 
3284{ struct wm8400 *wm8400 ;
3285  void *tmp ;
3286  int offset ;
3287  int tmp___0 ;
3288  int tmp___1 ;
3289  int __cil_tmp7 ;
3290  u8 __cil_tmp8 ;
3291  unsigned int __cil_tmp9 ;
3292  unsigned int __cil_tmp10 ;
3293  int __cil_tmp11 ;
3294  u8 __cil_tmp12 ;
3295  u16 __cil_tmp13 ;
3296  u16 __cil_tmp14 ;
3297
3298  {
3299  {
3300#line 148
3301  tmp = rdev_get_drvdata(dev);
3302#line 148
3303  wm8400 = (struct wm8400 *)tmp;
3304#line 149
3305  tmp___0 = rdev_get_id(dev);
3306#line 149
3307  __cil_tmp7 = tmp___0 + -4;
3308#line 149
3309  offset = __cil_tmp7 * 2;
3310#line 151
3311  __cil_tmp8 = (u8 )offset;
3312#line 151
3313  __cil_tmp9 = (unsigned int )__cil_tmp8;
3314#line 151
3315  __cil_tmp10 = __cil_tmp9 + 70U;
3316#line 151
3317  __cil_tmp11 = (int )__cil_tmp10;
3318#line 151
3319  __cil_tmp12 = (u8 )__cil_tmp11;
3320#line 151
3321  __cil_tmp13 = (u16 )32768;
3322#line 151
3323  __cil_tmp14 = (u16 )0;
3324#line 151
3325  tmp___1 = wm8400_set_bits(wm8400, __cil_tmp12, __cil_tmp13, __cil_tmp14);
3326  }
3327#line 151
3328  return (tmp___1);
3329}
3330}
3331#line 155 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3332static int wm8400_dcdc_list_voltage(struct regulator_dev *dev , unsigned int selector ) 
3333{ unsigned int __cil_tmp3 ;
3334  unsigned int __cil_tmp4 ;
3335
3336  {
3337#line 158
3338  if (selector > 127U) {
3339#line 159
3340    return (-22);
3341  } else {
3342
3343  }
3344  {
3345#line 161
3346  __cil_tmp3 = selector * 25000U;
3347#line 161
3348  __cil_tmp4 = __cil_tmp3 + 850000U;
3349#line 161
3350  return ((int )__cil_tmp4);
3351  }
3352}
3353}
3354#line 164 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3355static int wm8400_dcdc_get_voltage_sel(struct regulator_dev *dev ) 
3356{ struct wm8400 *wm8400 ;
3357  void *tmp ;
3358  u16 val ;
3359  int offset ;
3360  int tmp___0 ;
3361  int __cil_tmp7 ;
3362  u8 __cil_tmp8 ;
3363  unsigned int __cil_tmp9 ;
3364  unsigned int __cil_tmp10 ;
3365  int __cil_tmp11 ;
3366  u8 __cil_tmp12 ;
3367  unsigned int __cil_tmp13 ;
3368  unsigned int __cil_tmp14 ;
3369
3370  {
3371  {
3372#line 166
3373  tmp = rdev_get_drvdata(dev);
3374#line 166
3375  wm8400 = (struct wm8400 *)tmp;
3376#line 168
3377  tmp___0 = rdev_get_id(dev);
3378#line 168
3379  __cil_tmp7 = tmp___0 + -4;
3380#line 168
3381  offset = __cil_tmp7 * 2;
3382#line 170
3383  __cil_tmp8 = (u8 )offset;
3384#line 170
3385  __cil_tmp9 = (unsigned int )__cil_tmp8;
3386#line 170
3387  __cil_tmp10 = __cil_tmp9 + 70U;
3388#line 170
3389  __cil_tmp11 = (int )__cil_tmp10;
3390#line 170
3391  __cil_tmp12 = (u8 )__cil_tmp11;
3392#line 170
3393  val = wm8400_reg_read(wm8400, __cil_tmp12);
3394#line 171
3395  __cil_tmp13 = (unsigned int )val;
3396#line 171
3397  __cil_tmp14 = __cil_tmp13 & 127U;
3398#line 171
3399  val = (u16 )__cil_tmp14;
3400  }
3401#line 173
3402  return ((int )val);
3403}
3404}
3405#line 176 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3406static int wm8400_dcdc_set_voltage(struct regulator_dev *dev , int min_uV , int max_uV ,
3407                                   unsigned int *selector ) 
3408{ struct wm8400 *wm8400 ;
3409  void *tmp ;
3410  u16 val ;
3411  int offset ;
3412  int tmp___0 ;
3413  long tmp___1 ;
3414  int tmp___2 ;
3415  int __cil_tmp12 ;
3416  int __cil_tmp13 ;
3417  int __cil_tmp14 ;
3418  int __cil_tmp15 ;
3419  int __cil_tmp16 ;
3420  int __cil_tmp17 ;
3421  int __cil_tmp18 ;
3422  int __cil_tmp19 ;
3423  int __cil_tmp20 ;
3424  int __cil_tmp21 ;
3425  long __cil_tmp22 ;
3426  u8 __cil_tmp23 ;
3427  unsigned int __cil_tmp24 ;
3428  unsigned int __cil_tmp25 ;
3429  int __cil_tmp26 ;
3430  u8 __cil_tmp27 ;
3431  u16 __cil_tmp28 ;
3432  int __cil_tmp29 ;
3433  u16 __cil_tmp30 ;
3434
3435  {
3436  {
3437#line 179
3438  tmp = rdev_get_drvdata(dev);
3439#line 179
3440  wm8400 = (struct wm8400 *)tmp;
3441#line 181
3442  tmp___0 = rdev_get_id(dev);
3443#line 181
3444  __cil_tmp12 = tmp___0 + -4;
3445#line 181
3446  offset = __cil_tmp12 * 2;
3447  }
3448#line 183
3449  if (min_uV <= 849999) {
3450#line 184
3451    return (-22);
3452  } else {
3453
3454  }
3455#line 186
3456  __cil_tmp13 = min_uV + -825001;
3457#line 186
3458  __cil_tmp14 = __cil_tmp13 / 25000;
3459#line 186
3460  val = (u16 )__cil_tmp14;
3461  {
3462#line 188
3463  __cil_tmp15 = (int )val;
3464#line 188
3465  __cil_tmp16 = __cil_tmp15 * 25000;
3466#line 188
3467  __cil_tmp17 = __cil_tmp16 + 850000;
3468#line 188
3469  if (__cil_tmp17 > max_uV) {
3470#line 189
3471    return (-22);
3472  } else {
3473
3474  }
3475  }
3476  {
3477#line 190
3478  __cil_tmp18 = (int )val;
3479#line 190
3480  __cil_tmp19 = __cil_tmp18 * 25000;
3481#line 190
3482  __cil_tmp20 = __cil_tmp19 + 850000;
3483#line 190
3484  __cil_tmp21 = __cil_tmp20 < min_uV;
3485#line 190
3486  __cil_tmp22 = (long )__cil_tmp21;
3487#line 190
3488  tmp___1 = __builtin_expect(__cil_tmp22, 0L);
3489  }
3490#line 190
3491  if (tmp___1 != 0L) {
3492#line 190
3493    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"),
3494                         "i" (190), "i" (12UL));
3495    ldv_22493: ;
3496#line 190
3497    goto ldv_22493;
3498  } else {
3499
3500  }
3501  {
3502#line 192
3503  *selector = (unsigned int )val;
3504#line 194
3505  __cil_tmp23 = (u8 )offset;
3506#line 194
3507  __cil_tmp24 = (unsigned int )__cil_tmp23;
3508#line 194
3509  __cil_tmp25 = __cil_tmp24 + 70U;
3510#line 194
3511  __cil_tmp26 = (int )__cil_tmp25;
3512#line 194
3513  __cil_tmp27 = (u8 )__cil_tmp26;
3514#line 194
3515  __cil_tmp28 = (u16 )127;
3516#line 194
3517  __cil_tmp29 = (int )val;
3518#line 194
3519  __cil_tmp30 = (u16 )__cil_tmp29;
3520#line 194
3521  tmp___2 = wm8400_set_bits(wm8400, __cil_tmp27, __cil_tmp28, __cil_tmp30);
3522  }
3523#line 194
3524  return (tmp___2);
3525}
3526}
3527#line 198 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3528static unsigned int wm8400_dcdc_get_mode(struct regulator_dev *dev ) 
3529{ struct wm8400 *wm8400 ;
3530  void *tmp ;
3531  int offset ;
3532  int tmp___0 ;
3533  u16 data[2U] ;
3534  int ret ;
3535  int __cil_tmp8 ;
3536  u8 __cil_tmp9 ;
3537  unsigned int __cil_tmp10 ;
3538  unsigned int __cil_tmp11 ;
3539  int __cil_tmp12 ;
3540  u8 __cil_tmp13 ;
3541  u16 *__cil_tmp14 ;
3542  unsigned long __cil_tmp15 ;
3543  unsigned long __cil_tmp16 ;
3544  u16 __cil_tmp17 ;
3545  int __cil_tmp18 ;
3546  int __cil_tmp19 ;
3547  unsigned long __cil_tmp20 ;
3548  unsigned long __cil_tmp21 ;
3549  u16 __cil_tmp22 ;
3550  int __cil_tmp23 ;
3551  int __cil_tmp24 ;
3552  unsigned long __cil_tmp25 ;
3553  unsigned long __cil_tmp26 ;
3554  u16 __cil_tmp27 ;
3555  int __cil_tmp28 ;
3556  int __cil_tmp29 ;
3557
3558  {
3559  {
3560#line 200
3561  tmp = rdev_get_drvdata(dev);
3562#line 200
3563  wm8400 = (struct wm8400 *)tmp;
3564#line 201
3565  tmp___0 = rdev_get_id(dev);
3566#line 201
3567  __cil_tmp8 = tmp___0 + -4;
3568#line 201
3569  offset = __cil_tmp8 * 2;
3570#line 205
3571  __cil_tmp9 = (u8 )offset;
3572#line 205
3573  __cil_tmp10 = (unsigned int )__cil_tmp9;
3574#line 205
3575  __cil_tmp11 = __cil_tmp10 + 70U;
3576#line 205
3577  __cil_tmp12 = (int )__cil_tmp11;
3578#line 205
3579  __cil_tmp13 = (u8 )__cil_tmp12;
3580#line 205
3581  __cil_tmp14 = (u16 *)(& data);
3582#line 205
3583  ret = wm8400_block_read(wm8400, __cil_tmp13, 2, __cil_tmp14);
3584  }
3585#line 207
3586  if (ret != 0) {
3587#line 208
3588    return (0U);
3589  } else {
3590
3591  }
3592  {
3593#line 211
3594  __cil_tmp15 = 0 * 2UL;
3595#line 211
3596  __cil_tmp16 = (unsigned long )(data) + __cil_tmp15;
3597#line 211
3598  __cil_tmp17 = *((u16 *)__cil_tmp16);
3599#line 211
3600  __cil_tmp18 = (int )__cil_tmp17;
3601#line 211
3602  __cil_tmp19 = __cil_tmp18 & 8192;
3603#line 211
3604  if (__cil_tmp19 != 0) {
3605#line 212
3606    return (8U);
3607  } else {
3608
3609  }
3610  }
3611  {
3612#line 215
3613  __cil_tmp20 = 0 * 2UL;
3614#line 215
3615  __cil_tmp21 = (unsigned long )(data) + __cil_tmp20;
3616#line 215
3617  __cil_tmp22 = *((u16 *)__cil_tmp21);
3618#line 215
3619  __cil_tmp23 = (int )__cil_tmp22;
3620#line 215
3621  __cil_tmp24 = __cil_tmp23 & 16384;
3622#line 215
3623  if (__cil_tmp24 == 0) {
3624#line 216
3625    return (4U);
3626  } else {
3627
3628  }
3629  }
3630  {
3631#line 219
3632  __cil_tmp25 = 1 * 2UL;
3633#line 219
3634  __cil_tmp26 = (unsigned long )(data) + __cil_tmp25;
3635#line 219
3636  __cil_tmp27 = *((u16 *)__cil_tmp26);
3637#line 219
3638  __cil_tmp28 = (int )__cil_tmp27;
3639#line 219
3640  __cil_tmp29 = __cil_tmp28 & 8192;
3641#line 219
3642  if (__cil_tmp29 != 0) {
3643#line 220
3644    return (1U);
3645  } else {
3646#line 222
3647    return (2U);
3648  }
3649  }
3650}
3651}
3652#line 225 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3653static int wm8400_dcdc_set_mode(struct regulator_dev *dev , unsigned int mode ) 
3654{ struct wm8400 *wm8400 ;
3655  void *tmp ;
3656  int offset ;
3657  int tmp___0 ;
3658  int ret ;
3659  int tmp___1 ;
3660  int tmp___2 ;
3661  int tmp___3 ;
3662  int __cil_tmp11 ;
3663  u8 __cil_tmp12 ;
3664  unsigned int __cil_tmp13 ;
3665  unsigned int __cil_tmp14 ;
3666  int __cil_tmp15 ;
3667  u8 __cil_tmp16 ;
3668  u16 __cil_tmp17 ;
3669  u16 __cil_tmp18 ;
3670  u8 __cil_tmp19 ;
3671  unsigned int __cil_tmp20 ;
3672  unsigned int __cil_tmp21 ;
3673  int __cil_tmp22 ;
3674  u8 __cil_tmp23 ;
3675  u16 __cil_tmp24 ;
3676  u16 __cil_tmp25 ;
3677  u8 __cil_tmp26 ;
3678  unsigned int __cil_tmp27 ;
3679  unsigned int __cil_tmp28 ;
3680  int __cil_tmp29 ;
3681  u8 __cil_tmp30 ;
3682  u16 __cil_tmp31 ;
3683  u16 __cil_tmp32 ;
3684  u8 __cil_tmp33 ;
3685  unsigned int __cil_tmp34 ;
3686  unsigned int __cil_tmp35 ;
3687  int __cil_tmp36 ;
3688  u8 __cil_tmp37 ;
3689  u16 __cil_tmp38 ;
3690  u16 __cil_tmp39 ;
3691  u8 __cil_tmp40 ;
3692  unsigned int __cil_tmp41 ;
3693  unsigned int __cil_tmp42 ;
3694  int __cil_tmp43 ;
3695  u8 __cil_tmp44 ;
3696  u16 __cil_tmp45 ;
3697  u16 __cil_tmp46 ;
3698  u8 __cil_tmp47 ;
3699  unsigned int __cil_tmp48 ;
3700  unsigned int __cil_tmp49 ;
3701  int __cil_tmp50 ;
3702  u8 __cil_tmp51 ;
3703  u16 __cil_tmp52 ;
3704  u16 __cil_tmp53 ;
3705
3706  {
3707  {
3708#line 227
3709  tmp = rdev_get_drvdata(dev);
3710#line 227
3711  wm8400 = (struct wm8400 *)tmp;
3712#line 228
3713  tmp___0 = rdev_get_id(dev);
3714#line 228
3715  __cil_tmp11 = tmp___0 + -4;
3716#line 228
3717  offset = __cil_tmp11 * 2;
3718  }
3719#line 232
3720  if ((int )mode == 1) {
3721#line 232
3722    goto case_1;
3723  } else
3724#line 243
3725  if ((int )mode == 2) {
3726#line 243
3727    goto case_2;
3728  } else
3729#line 254
3730  if ((int )mode == 4) {
3731#line 254
3732    goto case_4;
3733  } else {
3734    {
3735#line 263
3736    goto switch_default;
3737#line 231
3738    if (0) {
3739      case_1: /* CIL Label */ 
3740      {
3741#line 234
3742      __cil_tmp12 = (u8 )offset;
3743#line 234
3744      __cil_tmp13 = (unsigned int )__cil_tmp12;
3745#line 234
3746      __cil_tmp14 = __cil_tmp13 + 71U;
3747#line 234
3748      __cil_tmp15 = (int )__cil_tmp14;
3749#line 234
3750      __cil_tmp16 = (u8 )__cil_tmp15;
3751#line 234
3752      __cil_tmp17 = (u16 )8192;
3753#line 234
3754      __cil_tmp18 = (u16 )8192;
3755#line 234
3756      ret = wm8400_set_bits(wm8400, __cil_tmp16, __cil_tmp17, __cil_tmp18);
3757      }
3758#line 236
3759      if (ret != 0) {
3760#line 237
3761        return (ret);
3762      } else {
3763
3764      }
3765      {
3766#line 239
3767      __cil_tmp19 = (u8 )offset;
3768#line 239
3769      __cil_tmp20 = (unsigned int )__cil_tmp19;
3770#line 239
3771      __cil_tmp21 = __cil_tmp20 + 70U;
3772#line 239
3773      __cil_tmp22 = (int )__cil_tmp21;
3774#line 239
3775      __cil_tmp23 = (u8 )__cil_tmp22;
3776#line 239
3777      __cil_tmp24 = (u16 )24576;
3778#line 239
3779      __cil_tmp25 = (u16 )16384;
3780#line 239
3781      tmp___1 = wm8400_set_bits(wm8400, __cil_tmp23, __cil_tmp24, __cil_tmp25);
3782      }
3783#line 239
3784      return (tmp___1);
3785      case_2: /* CIL Label */ 
3786      {
3787#line 245
3788      __cil_tmp26 = (u8 )offset;
3789#line 245
3790      __cil_tmp27 = (unsigned int )__cil_tmp26;
3791#line 245
3792      __cil_tmp28 = __cil_tmp27 + 71U;
3793#line 245
3794      __cil_tmp29 = (int )__cil_tmp28;
3795#line 245
3796      __cil_tmp30 = (u8 )__cil_tmp29;
3797#line 245
3798      __cil_tmp31 = (u16 )8192;
3799#line 245
3800      __cil_tmp32 = (u16 )0;
3801#line 245
3802      ret = wm8400_set_bits(wm8400, __cil_tmp30, __cil_tmp31, __cil_tmp32);
3803      }
3804#line 247
3805      if (ret != 0) {
3806#line 248
3807        return (ret);
3808      } else {
3809
3810      }
3811      {
3812#line 250
3813      __cil_tmp33 = (u8 )offset;
3814#line 250
3815      __cil_tmp34 = (unsigned int )__cil_tmp33;
3816#line 250
3817      __cil_tmp35 = __cil_tmp34 + 70U;
3818#line 250
3819      __cil_tmp36 = (int )__cil_tmp35;
3820#line 250
3821      __cil_tmp37 = (u8 )__cil_tmp36;
3822#line 250
3823      __cil_tmp38 = (u16 )24576;
3824#line 250
3825      __cil_tmp39 = (u16 )16384;
3826#line 250
3827      tmp___2 = wm8400_set_bits(wm8400, __cil_tmp37, __cil_tmp38, __cil_tmp39);
3828      }
3829#line 250
3830      return (tmp___2);
3831      case_4: /* CIL Label */ 
3832      {
3833#line 256
3834      __cil_tmp40 = (u8 )offset;
3835#line 256
3836      __cil_tmp41 = (unsigned int )__cil_tmp40;
3837#line 256
3838      __cil_tmp42 = __cil_tmp41 + 70U;
3839#line 256
3840      __cil_tmp43 = (int )__cil_tmp42;
3841#line 256
3842      __cil_tmp44 = (u8 )__cil_tmp43;
3843#line 256
3844      __cil_tmp45 = (u16 )16384;
3845#line 256
3846      __cil_tmp46 = (u16 )0;
3847#line 256
3848      ret = wm8400_set_bits(wm8400, __cil_tmp44, __cil_tmp45, __cil_tmp46);
3849      }
3850#line 258
3851      if (ret != 0) {
3852#line 259
3853        return (ret);
3854      } else {
3855
3856      }
3857      {
3858#line 260
3859      __cil_tmp47 = (u8 )offset;
3860#line 260
3861      __cil_tmp48 = (unsigned int )__cil_tmp47;
3862#line 260
3863      __cil_tmp49 = __cil_tmp48 + 70U;
3864#line 260
3865      __cil_tmp50 = (int )__cil_tmp49;
3866#line 260
3867      __cil_tmp51 = (u8 )__cil_tmp50;
3868#line 260
3869      __cil_tmp52 = (u16 )8192;
3870#line 260
3871      __cil_tmp53 = (u16 )0;
3872#line 260
3873      tmp___3 = wm8400_set_bits(wm8400, __cil_tmp51, __cil_tmp52, __cil_tmp53);
3874      }
3875#line 260
3876      return (tmp___3);
3877      switch_default: /* CIL Label */ ;
3878#line 264
3879      return (-22);
3880    } else {
3881      switch_break: /* CIL Label */ ;
3882    }
3883    }
3884  }
3885}
3886}
3887#line 268 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3888static unsigned int wm8400_dcdc_get_optimum_mode(struct regulator_dev *dev , int input_uV ,
3889                                                 int output_uV , int load_uA ) 
3890{ 
3891
3892  {
3893#line 272
3894  return (2U);
3895}
3896}
3897#line 275 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3898static struct regulator_ops wm8400_dcdc_ops  = 
3899#line 275
3900     {& wm8400_dcdc_list_voltage, & wm8400_dcdc_set_voltage, (int (*)(struct regulator_dev * ,
3901                                                                    unsigned int  ))0,
3902    (int (*)(struct regulator_dev * ))0, & wm8400_dcdc_get_voltage_sel, (int (*)(struct regulator_dev * ,
3903                                                                                 int  ,
3904                                                                                 int  ))0,
3905    (int (*)(struct regulator_dev * ))0, & wm8400_dcdc_enable, & wm8400_dcdc_disable,
3906    & wm8400_dcdc_is_enabled, & wm8400_dcdc_set_mode, & wm8400_dcdc_get_mode, (int (*)(struct regulator_dev * ))0,
3907    (int (*)(struct regulator_dev * , unsigned int  , unsigned int  ))0, (int (*)(struct regulator_dev * ))0,
3908    & wm8400_dcdc_get_optimum_mode, (int (*)(struct regulator_dev * , int  ))0, (int (*)(struct regulator_dev * ))0,
3909    (int (*)(struct regulator_dev * ))0, (int (*)(struct regulator_dev * , unsigned int  ))0};
3910#line 287 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3911static struct regulator_desc regulators[6U]  = {      {"LDO1", (char const   *)0, 0, 32U, & wm8400_ldo_ops, 0, (enum regulator_type )0,
3912      & __this_module}, 
3913        {"LDO2", (char const   *)0, 1, 32U, & wm8400_ldo_ops, 0, (enum regulator_type )0,
3914      & __this_module}, 
3915        {"LDO3", (char const   *)0, 2, 32U, & wm8400_ldo_ops, 0, (enum regulator_type )0,
3916      & __this_module}, 
3917        {"LDO4", (char const   *)0, 3, 32U, & wm8400_ldo_ops, 0, (enum regulator_type )0,
3918      & __this_module}, 
3919        {"DCDC1", (char const   *)0, 4, 128U, & wm8400_dcdc_ops, 0, (enum regulator_type )0,
3920      & __this_module}, 
3921        {"DCDC2", (char const   *)0, 5, 128U, & wm8400_dcdc_ops, 0, (enum regulator_type )0,
3922      & __this_module}};
3923#line 338 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
3924static int wm8400_regulator_probe(struct platform_device *pdev ) 
3925{ struct wm8400 *wm8400 ;
3926  struct platform_device  const  *__mptr ;
3927  struct regulator_dev *rdev ;
3928  long tmp ;
3929  long tmp___0 ;
3930  unsigned long __cil_tmp7 ;
3931  unsigned long __cil_tmp8 ;
3932  int __cil_tmp9 ;
3933  unsigned long __cil_tmp10 ;
3934  unsigned long __cil_tmp11 ;
3935  unsigned long __cil_tmp12 ;
3936  unsigned long __cil_tmp13 ;
3937  struct wm8400 *__cil_tmp14 ;
3938  unsigned long __cil_tmp15 ;
3939  unsigned long __cil_tmp16 ;
3940  int __cil_tmp17 ;
3941  unsigned long __cil_tmp18 ;
3942  struct regulator_desc *__cil_tmp19 ;
3943  struct regulator_desc *__cil_tmp20 ;
3944  unsigned long __cil_tmp21 ;
3945  unsigned long __cil_tmp22 ;
3946  struct device *__cil_tmp23 ;
3947  unsigned long __cil_tmp24 ;
3948  unsigned long __cil_tmp25 ;
3949  unsigned long __cil_tmp26 ;
3950  void *__cil_tmp27 ;
3951  struct regulator_init_data  const  *__cil_tmp28 ;
3952  void *__cil_tmp29 ;
3953  struct device_node *__cil_tmp30 ;
3954  void const   *__cil_tmp31 ;
3955  void const   *__cil_tmp32 ;
3956  void *__cil_tmp33 ;
3957
3958  {
3959  {
3960#line 340
3961  __mptr = (struct platform_device  const  *)pdev;
3962#line 340
3963  __cil_tmp7 = (unsigned long )pdev;
3964#line 340
3965  __cil_tmp8 = __cil_tmp7 + 8;
3966#line 340
3967  __cil_tmp9 = *((int *)__cil_tmp8);
3968#line 340
3969  __cil_tmp10 = (unsigned long )__cil_tmp9;
3970#line 340
3971  __cil_tmp11 = __cil_tmp10 * 1200UL;
3972#line 340
3973  __cil_tmp12 = __cil_tmp11 + 360UL;
3974#line 340
3975  __cil_tmp13 = - __cil_tmp12;
3976#line 340
3977  __cil_tmp14 = (struct wm8400 *)__mptr;
3978#line 340
3979  wm8400 = __cil_tmp14 + __cil_tmp13;
3980#line 343
3981  __cil_tmp15 = (unsigned long )pdev;
3982#line 343
3983  __cil_tmp16 = __cil_tmp15 + 8;
3984#line 343
3985  __cil_tmp17 = *((int *)__cil_tmp16);
3986#line 343
3987  __cil_tmp18 = (unsigned long )__cil_tmp17;
3988#line 343
3989  __cil_tmp19 = (struct regulator_desc *)(& regulators);
3990#line 343
3991  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
3992#line 343
3993  __cil_tmp21 = (unsigned long )pdev;
3994#line 343
3995  __cil_tmp22 = __cil_tmp21 + 16;
3996#line 343
3997  __cil_tmp23 = (struct device *)__cil_tmp22;
3998#line 343
3999  __cil_tmp24 = 16 + 280;
4000#line 343
4001  __cil_tmp25 = (unsigned long )pdev;
4002#line 343
4003  __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
4004#line 343
4005  __cil_tmp27 = *((void **)__cil_tmp26);
4006#line 343
4007  __cil_tmp28 = (struct regulator_init_data  const  *)__cil_tmp27;
4008#line 343
4009  __cil_tmp29 = (void *)wm8400;
4010#line 343
4011  __cil_tmp30 = (struct device_node *)0;
4012#line 343
4013  rdev = regulator_register(__cil_tmp20, __cil_tmp23, __cil_tmp28, __cil_tmp29, __cil_tmp30);
4014#line 346
4015  __cil_tmp31 = (void const   *)rdev;
4016#line 346
4017  tmp___0 = IS_ERR(__cil_tmp31);
4018  }
4019#line 346
4020  if (tmp___0 != 0L) {
4021    {
4022#line 347
4023    __cil_tmp32 = (void const   *)rdev;
4024#line 347
4025    tmp = PTR_ERR(__cil_tmp32);
4026    }
4027#line 347
4028    return ((int )tmp);
4029  } else {
4030
4031  }
4032  {
4033#line 349
4034  __cil_tmp33 = (void *)rdev;
4035#line 349
4036  platform_set_drvdata(pdev, __cil_tmp33);
4037  }
4038#line 351
4039  return (0);
4040}
4041}
4042#line 354 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4043static int wm8400_regulator_remove(struct platform_device *pdev ) 
4044{ struct regulator_dev *rdev ;
4045  void *tmp ;
4046  struct platform_device  const  *__cil_tmp4 ;
4047  void *__cil_tmp5 ;
4048
4049  {
4050  {
4051#line 356
4052  __cil_tmp4 = (struct platform_device  const  *)pdev;
4053#line 356
4054  tmp = platform_get_drvdata(__cil_tmp4);
4055#line 356
4056  rdev = (struct regulator_dev *)tmp;
4057#line 358
4058  __cil_tmp5 = (void *)0;
4059#line 358
4060  platform_set_drvdata(pdev, __cil_tmp5);
4061#line 359
4062  regulator_unregister(rdev);
4063  }
4064#line 361
4065  return (0);
4066}
4067}
4068#line 364 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4069static struct platform_driver wm8400_regulator_driver  =    {& wm8400_regulator_probe, & wm8400_regulator_remove, (void (*)(struct platform_device * ))0,
4070    (int (*)(struct platform_device * , pm_message_t  ))0, (int (*)(struct platform_device * ))0,
4071    {"wm8400-regulator", (struct bus_type *)0, (struct module *)0, (char const   *)0,
4072     (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
4073     (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
4074     (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
4075     (struct driver_private *)0}, (struct platform_device_id  const  *)0};
4076#line 383 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4077int wm8400_register_regulator(struct device *dev , int reg , struct regulator_init_data *initdata ) 
4078{ struct wm8400 *wm8400 ;
4079  void *tmp ;
4080  int tmp___0 ;
4081  struct device  const  *__cil_tmp7 ;
4082  char const   *__cil_tmp8 ;
4083  unsigned long __cil_tmp9 ;
4084  unsigned long __cil_tmp10 ;
4085  unsigned long __cil_tmp11 ;
4086  unsigned long __cil_tmp12 ;
4087  unsigned long __cil_tmp13 ;
4088  char const   *__cil_tmp14 ;
4089  unsigned long __cil_tmp15 ;
4090  unsigned long __cil_tmp16 ;
4091  unsigned long __cil_tmp17 ;
4092  unsigned long __cil_tmp18 ;
4093  unsigned long __cil_tmp19 ;
4094  unsigned long __cil_tmp20 ;
4095  unsigned long __cil_tmp21 ;
4096  unsigned long __cil_tmp22 ;
4097  unsigned long __cil_tmp23 ;
4098  unsigned long __cil_tmp24 ;
4099  unsigned long __cil_tmp25 ;
4100  unsigned long __cil_tmp26 ;
4101  unsigned long __cil_tmp27 ;
4102  unsigned long __cil_tmp28 ;
4103  unsigned long __cil_tmp29 ;
4104  unsigned long __cil_tmp30 ;
4105  unsigned long __cil_tmp31 ;
4106  unsigned long __cil_tmp32 ;
4107  unsigned long __cil_tmp33 ;
4108  unsigned long __cil_tmp34 ;
4109  unsigned long __cil_tmp35 ;
4110  unsigned long __cil_tmp36 ;
4111  unsigned long __cil_tmp37 ;
4112  unsigned long __cil_tmp38 ;
4113  unsigned long __cil_tmp39 ;
4114  unsigned long __cil_tmp40 ;
4115  struct platform_device (*__cil_tmp41)[6U] ;
4116  struct platform_device *__cil_tmp42 ;
4117  struct platform_device *__cil_tmp43 ;
4118
4119  {
4120  {
4121#line 386
4122  __cil_tmp7 = (struct device  const  *)dev;
4123#line 386
4124  tmp = dev_get_drvdata(__cil_tmp7);
4125#line 386
4126  wm8400 = (struct wm8400 *)tmp;
4127  }
4128  {
4129#line 388
4130  __cil_tmp8 = (char const   *)0;
4131#line 388
4132  __cil_tmp9 = (unsigned long )__cil_tmp8;
4133#line 388
4134  __cil_tmp10 = reg * 1200UL;
4135#line 388
4136  __cil_tmp11 = 360 + __cil_tmp10;
4137#line 388
4138  __cil_tmp12 = (unsigned long )wm8400;
4139#line 388
4140  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
4141#line 388
4142  __cil_tmp14 = *((char const   **)__cil_tmp13);
4143#line 388
4144  __cil_tmp15 = (unsigned long )__cil_tmp14;
4145#line 388
4146  if (__cil_tmp15 != __cil_tmp9) {
4147#line 389
4148    return (-16);
4149  } else {
4150
4151  }
4152  }
4153  {
4154#line 391
4155  __cil_tmp16 = (unsigned long )initdata;
4156#line 391
4157  __cil_tmp17 = __cil_tmp16 + 136;
4158#line 391
4159  *((void **)__cil_tmp17) = (void *)wm8400;
4160#line 393
4161  __cil_tmp18 = reg * 1200UL;
4162#line 393
4163  __cil_tmp19 = 360 + __cil_tmp18;
4164#line 393
4165  __cil_tmp20 = (unsigned long )wm8400;
4166#line 393
4167  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
4168#line 393
4169  *((char const   **)__cil_tmp21) = "wm8400-regulator";
4170#line 394
4171  __cil_tmp22 = reg * 1200UL;
4172#line 394
4173  __cil_tmp23 = __cil_tmp22 + 8;
4174#line 394
4175  __cil_tmp24 = 360 + __cil_tmp23;
4176#line 394
4177  __cil_tmp25 = (unsigned long )wm8400;
4178#line 394
4179  __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
4180#line 394
4181  *((int *)__cil_tmp26) = reg;
4182#line 395
4183  __cil_tmp27 = reg * 1200UL;
4184#line 395
4185  __cil_tmp28 = __cil_tmp27 + 16;
4186#line 395
4187  __cil_tmp29 = 360 + __cil_tmp28;
4188#line 395
4189  __cil_tmp30 = (unsigned long )wm8400;
4190#line 395
4191  __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
4192#line 395
4193  *((struct device **)__cil_tmp31) = dev;
4194#line 396
4195  __cil_tmp32 = 16 + 280;
4196#line 396
4197  __cil_tmp33 = reg * 1200UL;
4198#line 396
4199  __cil_tmp34 = __cil_tmp33 + __cil_tmp32;
4200#line 396
4201  __cil_tmp35 = 360 + __cil_tmp34;
4202#line 396
4203  __cil_tmp36 = (unsigned long )wm8400;
4204#line 396
4205  __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
4206#line 396
4207  *((void **)__cil_tmp37) = (void *)initdata;
4208#line 398
4209  __cil_tmp38 = (unsigned long )reg;
4210#line 398
4211  __cil_tmp39 = (unsigned long )wm8400;
4212#line 398
4213  __cil_tmp40 = __cil_tmp39 + 360;
4214#line 398
4215  __cil_tmp41 = (struct platform_device (*)[6U])__cil_tmp40;
4216#line 398
4217  __cil_tmp42 = (struct platform_device *)__cil_tmp41;
4218#line 398
4219  __cil_tmp43 = __cil_tmp42 + __cil_tmp38;
4220#line 398
4221  tmp___0 = platform_device_register(__cil_tmp43);
4222  }
4223#line 398
4224  return (tmp___0);
4225}
4226}
4227#line 402 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4228static int wm8400_regulator_init(void) 
4229{ int tmp ;
4230
4231  {
4232  {
4233#line 404
4234  tmp = platform_driver_register(& wm8400_regulator_driver);
4235  }
4236#line 404
4237  return (tmp);
4238}
4239}
4240#line 408 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4241static void wm8400_regulator_exit(void) 
4242{ 
4243
4244  {
4245  {
4246#line 410
4247  platform_driver_unregister(& wm8400_regulator_driver);
4248  }
4249#line 411
4250  return;
4251}
4252}
4253#line 435
4254extern void ldv_check_final_state(void) ;
4255#line 438
4256extern void ldv_check_return_value(int  ) ;
4257#line 441
4258extern void ldv_initialize(void) ;
4259#line 444
4260extern int __VERIFIER_nondet_int(void) ;
4261#line 447 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4262int LDV_IN_INTERRUPT  ;
4263#line 450 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4264void main(void) 
4265{ struct regulator_dev *var_group1 ;
4266  unsigned int var_wm8400_ldo_list_voltage_3_p1 ;
4267  int var_wm8400_ldo_set_voltage_5_p1 ;
4268  int var_wm8400_ldo_set_voltage_5_p2 ;
4269  unsigned int *var_wm8400_ldo_set_voltage_5_p3 ;
4270  unsigned int var_wm8400_dcdc_list_voltage_9_p1 ;
4271  int var_wm8400_dcdc_set_voltage_11_p1 ;
4272  int var_wm8400_dcdc_set_voltage_11_p2 ;
4273  unsigned int *var_wm8400_dcdc_set_voltage_11_p3 ;
4274  unsigned int var_wm8400_dcdc_set_mode_13_p1 ;
4275  int var_wm8400_dcdc_get_optimum_mode_14_p1 ;
4276  int var_wm8400_dcdc_get_optimum_mode_14_p2 ;
4277  int var_wm8400_dcdc_get_optimum_mode_14_p3 ;
4278  struct platform_device *var_group2 ;
4279  int res_wm8400_regulator_probe_15 ;
4280  int ldv_s_wm8400_regulator_driver_platform_driver ;
4281  int tmp ;
4282  int tmp___0 ;
4283  int tmp___1 ;
4284
4285  {
4286  {
4287#line 551
4288  ldv_s_wm8400_regulator_driver_platform_driver = 0;
4289#line 530
4290  LDV_IN_INTERRUPT = 1;
4291#line 539
4292  ldv_initialize();
4293#line 545
4294  tmp = wm8400_regulator_init();
4295  }
4296#line 545
4297  if (tmp != 0) {
4298#line 546
4299    goto ldv_final;
4300  } else {
4301
4302  }
4303#line 554
4304  goto ldv_22615;
4305  ldv_22614: 
4306  {
4307#line 558
4308  tmp___0 = __VERIFIER_nondet_int();
4309  }
4310#line 560
4311  if (tmp___0 == 0) {
4312#line 560
4313    goto case_0;
4314  } else
4315#line 576
4316  if (tmp___0 == 1) {
4317#line 576
4318    goto case_1;
4319  } else
4320#line 592
4321  if (tmp___0 == 2) {
4322#line 592
4323    goto case_2;
4324  } else
4325#line 608
4326  if (tmp___0 == 3) {
4327#line 608
4328    goto case_3;
4329  } else
4330#line 624
4331  if (tmp___0 == 4) {
4332#line 624
4333    goto case_4;
4334  } else
4335#line 640
4336  if (tmp___0 == 5) {
4337#line 640
4338    goto case_5;
4339  } else
4340#line 656
4341  if (tmp___0 == 6) {
4342#line 656
4343    goto case_6;
4344  } else
4345#line 672
4346  if (tmp___0 == 7) {
4347#line 672
4348    goto case_7;
4349  } else
4350#line 688
4351  if (tmp___0 == 8) {
4352#line 688
4353    goto case_8;
4354  } else
4355#line 704
4356  if (tmp___0 == 9) {
4357#line 704
4358    goto case_9;
4359  } else
4360#line 720
4361  if (tmp___0 == 10) {
4362#line 720
4363    goto case_10;
4364  } else
4365#line 736
4366  if (tmp___0 == 11) {
4367#line 736
4368    goto case_11;
4369  } else
4370#line 752
4371  if (tmp___0 == 12) {
4372#line 752
4373    goto case_12;
4374  } else
4375#line 768
4376  if (tmp___0 == 13) {
4377#line 768
4378    goto case_13;
4379  } else
4380#line 784
4381  if (tmp___0 == 14) {
4382#line 784
4383    goto case_14;
4384  } else
4385#line 800
4386  if (tmp___0 == 15) {
4387#line 800
4388    goto case_15;
4389  } else {
4390    {
4391#line 819
4392    goto switch_default;
4393#line 558
4394    if (0) {
4395      case_0: /* CIL Label */ 
4396      {
4397#line 568
4398      wm8400_ldo_is_enabled(var_group1);
4399      }
4400#line 575
4401      goto ldv_22596;
4402      case_1: /* CIL Label */ 
4403      {
4404#line 584
4405      wm8400_ldo_enable(var_group1);
4406      }
4407#line 591
4408      goto ldv_22596;
4409      case_2: /* CIL Label */ 
4410      {
4411#line 600
4412      wm8400_ldo_disable(var_group1);
4413      }
4414#line 607
4415      goto ldv_22596;
4416      case_3: /* CIL Label */ 
4417      {
4418#line 616
4419      wm8400_ldo_list_voltage(var_group1, var_wm8400_ldo_list_voltage_3_p1);
4420      }
4421#line 623
4422      goto ldv_22596;
4423      case_4: /* CIL Label */ 
4424      {
4425#line 632
4426      wm8400_ldo_get_voltage_sel(var_group1);
4427      }
4428#line 639
4429      goto ldv_22596;
4430      case_5: /* CIL Label */ 
4431      {
4432#line 648
4433      wm8400_ldo_set_voltage(var_group1, var_wm8400_ldo_set_voltage_5_p1, var_wm8400_ldo_set_voltage_5_p2,
4434                             var_wm8400_ldo_set_voltage_5_p3);
4435      }
4436#line 655
4437      goto ldv_22596;
4438      case_6: /* CIL Label */ 
4439      {
4440#line 664
4441      wm8400_dcdc_is_enabled(var_group1);
4442      }
4443#line 671
4444      goto ldv_22596;
4445      case_7: /* CIL Label */ 
4446      {
4447#line 680
4448      wm8400_dcdc_enable(var_group1);
4449      }
4450#line 687
4451      goto ldv_22596;
4452      case_8: /* CIL Label */ 
4453      {
4454#line 696
4455      wm8400_dcdc_disable(var_group1);
4456      }
4457#line 703
4458      goto ldv_22596;
4459      case_9: /* CIL Label */ 
4460      {
4461#line 712
4462      wm8400_dcdc_list_voltage(var_group1, var_wm8400_dcdc_list_voltage_9_p1);
4463      }
4464#line 719
4465      goto ldv_22596;
4466      case_10: /* CIL Label */ 
4467      {
4468#line 728
4469      wm8400_dcdc_get_voltage_sel(var_group1);
4470      }
4471#line 735
4472      goto ldv_22596;
4473      case_11: /* CIL Label */ 
4474      {
4475#line 744
4476      wm8400_dcdc_set_voltage(var_group1, var_wm8400_dcdc_set_voltage_11_p1, var_wm8400_dcdc_set_voltage_11_p2,
4477                              var_wm8400_dcdc_set_voltage_11_p3);
4478      }
4479#line 751
4480      goto ldv_22596;
4481      case_12: /* CIL Label */ 
4482      {
4483#line 760
4484      wm8400_dcdc_get_mode(var_group1);
4485      }
4486#line 767
4487      goto ldv_22596;
4488      case_13: /* CIL Label */ 
4489      {
4490#line 776
4491      wm8400_dcdc_set_mode(var_group1, var_wm8400_dcdc_set_mode_13_p1);
4492      }
4493#line 783
4494      goto ldv_22596;
4495      case_14: /* CIL Label */ 
4496      {
4497#line 792
4498      wm8400_dcdc_get_optimum_mode(var_group1, var_wm8400_dcdc_get_optimum_mode_14_p1,
4499                                   var_wm8400_dcdc_get_optimum_mode_14_p2, var_wm8400_dcdc_get_optimum_mode_14_p3);
4500      }
4501#line 799
4502      goto ldv_22596;
4503      case_15: /* CIL Label */ ;
4504#line 803
4505      if (ldv_s_wm8400_regulator_driver_platform_driver == 0) {
4506        {
4507#line 808
4508        res_wm8400_regulator_probe_15 = wm8400_regulator_probe(var_group2);
4509#line 809
4510        ldv_check_return_value(res_wm8400_regulator_probe_15);
4511        }
4512#line 810
4513        if (res_wm8400_regulator_probe_15 != 0) {
4514#line 811
4515          goto ldv_module_exit;
4516        } else {
4517
4518        }
4519#line 812
4520        ldv_s_wm8400_regulator_driver_platform_driver = 0;
4521      } else {
4522
4523      }
4524#line 818
4525      goto ldv_22596;
4526      switch_default: /* CIL Label */ ;
4527#line 819
4528      goto ldv_22596;
4529    } else {
4530      switch_break: /* CIL Label */ ;
4531    }
4532    }
4533  }
4534  ldv_22596: ;
4535  ldv_22615: 
4536  {
4537#line 554
4538  tmp___1 = __VERIFIER_nondet_int();
4539  }
4540#line 554
4541  if (tmp___1 != 0) {
4542#line 556
4543    goto ldv_22614;
4544  } else
4545#line 554
4546  if (ldv_s_wm8400_regulator_driver_platform_driver != 0) {
4547#line 556
4548    goto ldv_22614;
4549  } else {
4550#line 558
4551    goto ldv_22616;
4552  }
4553  ldv_22616: ;
4554  ldv_module_exit: 
4555  {
4556#line 831
4557  wm8400_regulator_exit();
4558  }
4559  ldv_final: 
4560  {
4561#line 834
4562  ldv_check_final_state();
4563  }
4564#line 837
4565  return;
4566}
4567}
4568#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
4569void ldv_blast_assert(void) 
4570{ 
4571
4572  {
4573  ERROR: ;
4574#line 6
4575  goto ERROR;
4576}
4577}
4578#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
4579extern int __VERIFIER_nondet_int(void) ;
4580#line 858 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4581int ldv_spin  =    0;
4582#line 862 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4583void ldv_check_alloc_flags(gfp_t flags ) 
4584{ 
4585
4586  {
4587#line 865
4588  if (ldv_spin != 0) {
4589#line 865
4590    if (flags != 32U) {
4591      {
4592#line 865
4593      ldv_blast_assert();
4594      }
4595    } else {
4596
4597    }
4598  } else {
4599
4600  }
4601#line 868
4602  return;
4603}
4604}
4605#line 868
4606extern struct page *ldv_some_page(void) ;
4607#line 871 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4608struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
4609{ struct page *tmp ;
4610
4611  {
4612#line 874
4613  if (ldv_spin != 0) {
4614#line 874
4615    if (flags != 32U) {
4616      {
4617#line 874
4618      ldv_blast_assert();
4619      }
4620    } else {
4621
4622    }
4623  } else {
4624
4625  }
4626  {
4627#line 876
4628  tmp = ldv_some_page();
4629  }
4630#line 876
4631  return (tmp);
4632}
4633}
4634#line 880 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4635void ldv_check_alloc_nonatomic(void) 
4636{ 
4637
4638  {
4639#line 883
4640  if (ldv_spin != 0) {
4641    {
4642#line 883
4643    ldv_blast_assert();
4644    }
4645  } else {
4646
4647  }
4648#line 886
4649  return;
4650}
4651}
4652#line 887 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4653void ldv_spin_lock(void) 
4654{ 
4655
4656  {
4657#line 890
4658  ldv_spin = 1;
4659#line 891
4660  return;
4661}
4662}
4663#line 894 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4664void ldv_spin_unlock(void) 
4665{ 
4666
4667  {
4668#line 897
4669  ldv_spin = 0;
4670#line 898
4671  return;
4672}
4673}
4674#line 901 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4675int ldv_spin_trylock(void) 
4676{ int is_lock ;
4677
4678  {
4679  {
4680#line 906
4681  is_lock = __VERIFIER_nondet_int();
4682  }
4683#line 908
4684  if (is_lock != 0) {
4685#line 911
4686    return (0);
4687  } else {
4688#line 916
4689    ldv_spin = 1;
4690#line 918
4691    return (1);
4692  }
4693}
4694}
4695#line 1085 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/12256/dscv_tempdir/dscv/ri/43_1a/drivers/regulator/wm8400-regulator.c.p"
4696void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
4697{ 
4698
4699  {
4700  {
4701#line 1091
4702  ldv_check_alloc_flags(ldv_func_arg2);
4703#line 1093
4704  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
4705  }
4706#line 1094
4707  return ((void *)0);
4708}
4709}