Showing error 582

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/32_1_cilled_safe_ok_nondet_linux-3.4-32_1-drivers--power--wm831x_backup.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 2452
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 23 "include/asm-generic/int-ll64.h"
   5typedef unsigned short __u16;
   6#line 26 "include/asm-generic/int-ll64.h"
   7typedef unsigned int __u32;
   8#line 30 "include/asm-generic/int-ll64.h"
   9typedef unsigned long long __u64;
  10#line 45 "include/asm-generic/int-ll64.h"
  11typedef short s16;
  12#line 46 "include/asm-generic/int-ll64.h"
  13typedef unsigned short u16;
  14#line 48 "include/asm-generic/int-ll64.h"
  15typedef int s32;
  16#line 49 "include/asm-generic/int-ll64.h"
  17typedef unsigned int u32;
  18#line 51 "include/asm-generic/int-ll64.h"
  19typedef long long s64;
  20#line 52 "include/asm-generic/int-ll64.h"
  21typedef unsigned long long u64;
  22#line 14 "include/asm-generic/posix_types.h"
  23typedef long __kernel_long_t;
  24#line 15 "include/asm-generic/posix_types.h"
  25typedef unsigned long __kernel_ulong_t;
  26#line 75 "include/asm-generic/posix_types.h"
  27typedef __kernel_ulong_t __kernel_size_t;
  28#line 76 "include/asm-generic/posix_types.h"
  29typedef __kernel_long_t __kernel_ssize_t;
  30#line 91 "include/asm-generic/posix_types.h"
  31typedef long long __kernel_loff_t;
  32#line 21 "include/linux/types.h"
  33typedef __u32 __kernel_dev_t;
  34#line 24 "include/linux/types.h"
  35typedef __kernel_dev_t dev_t;
  36#line 27 "include/linux/types.h"
  37typedef unsigned short umode_t;
  38#line 38 "include/linux/types.h"
  39typedef _Bool bool;
  40#line 54 "include/linux/types.h"
  41typedef __kernel_loff_t loff_t;
  42#line 63 "include/linux/types.h"
  43typedef __kernel_size_t size_t;
  44#line 68 "include/linux/types.h"
  45typedef __kernel_ssize_t ssize_t;
  46#line 202 "include/linux/types.h"
  47typedef unsigned int gfp_t;
  48#line 206 "include/linux/types.h"
  49typedef u64 phys_addr_t;
  50#line 211 "include/linux/types.h"
  51typedef phys_addr_t resource_size_t;
  52#line 219 "include/linux/types.h"
  53struct __anonstruct_atomic_t_7 {
  54   int counter ;
  55};
  56#line 219 "include/linux/types.h"
  57typedef struct __anonstruct_atomic_t_7 atomic_t;
  58#line 224 "include/linux/types.h"
  59struct __anonstruct_atomic64_t_8 {
  60   long counter ;
  61};
  62#line 224 "include/linux/types.h"
  63typedef struct __anonstruct_atomic64_t_8 atomic64_t;
  64#line 229 "include/linux/types.h"
  65struct list_head {
  66   struct list_head *next ;
  67   struct list_head *prev ;
  68};
  69#line 56 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  70struct module;
  71#line 56
  72struct module;
  73#line 146 "include/linux/init.h"
  74typedef void (*ctor_fn_t)(void);
  75#line 47 "include/linux/dynamic_debug.h"
  76struct device;
  77#line 47
  78struct device;
  79#line 135 "include/linux/kernel.h"
  80struct completion;
  81#line 135
  82struct completion;
  83#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page.h"
  84struct page;
  85#line 18
  86struct page;
  87#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/thread_info.h"
  88struct task_struct;
  89#line 20
  90struct task_struct;
  91#line 7 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  92struct task_struct;
  93#line 295 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  94struct file;
  95#line 295
  96struct file;
  97#line 46 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
  98struct page;
  99#line 52
 100struct task_struct;
 101#line 329
 102struct arch_spinlock;
 103#line 329
 104struct arch_spinlock;
 105#line 139 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
 106struct task_struct;
 107#line 8 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/current.h"
 108struct task_struct;
 109#line 10 "include/asm-generic/bug.h"
 110struct bug_entry {
 111   int bug_addr_disp ;
 112   int file_disp ;
 113   unsigned short line ;
 114   unsigned short flags ;
 115};
 116#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 117struct static_key;
 118#line 234
 119struct static_key;
 120#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 121struct kmem_cache;
 122#line 23 "include/asm-generic/atomic-long.h"
 123typedef atomic64_t atomic_long_t;
 124#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 125typedef u16 __ticket_t;
 126#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 127typedef u32 __ticketpair_t;
 128#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 129struct __raw_tickets {
 130   __ticket_t head ;
 131   __ticket_t tail ;
 132};
 133#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 134union __anonunion____missing_field_name_36 {
 135   __ticketpair_t head_tail ;
 136   struct __raw_tickets tickets ;
 137};
 138#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 139struct arch_spinlock {
 140   union __anonunion____missing_field_name_36 __annonCompField17 ;
 141};
 142#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 143typedef struct arch_spinlock arch_spinlock_t;
 144#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 145struct __anonstruct____missing_field_name_38 {
 146   u32 read ;
 147   s32 write ;
 148};
 149#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 150union __anonunion_arch_rwlock_t_37 {
 151   s64 lock ;
 152   struct __anonstruct____missing_field_name_38 __annonCompField18 ;
 153};
 154#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 155typedef union __anonunion_arch_rwlock_t_37 arch_rwlock_t;
 156#line 12 "include/linux/lockdep.h"
 157struct task_struct;
 158#line 20 "include/linux/spinlock_types.h"
 159struct raw_spinlock {
 160   arch_spinlock_t raw_lock ;
 161   unsigned int magic ;
 162   unsigned int owner_cpu ;
 163   void *owner ;
 164};
 165#line 20 "include/linux/spinlock_types.h"
 166typedef struct raw_spinlock raw_spinlock_t;
 167#line 64 "include/linux/spinlock_types.h"
 168union __anonunion____missing_field_name_39 {
 169   struct raw_spinlock rlock ;
 170};
 171#line 64 "include/linux/spinlock_types.h"
 172struct spinlock {
 173   union __anonunion____missing_field_name_39 __annonCompField19 ;
 174};
 175#line 64 "include/linux/spinlock_types.h"
 176typedef struct spinlock spinlock_t;
 177#line 11 "include/linux/rwlock_types.h"
 178struct __anonstruct_rwlock_t_40 {
 179   arch_rwlock_t raw_lock ;
 180   unsigned int magic ;
 181   unsigned int owner_cpu ;
 182   void *owner ;
 183};
 184#line 11 "include/linux/rwlock_types.h"
 185typedef struct __anonstruct_rwlock_t_40 rwlock_t;
 186#line 49 "include/linux/wait.h"
 187struct __wait_queue_head {
 188   spinlock_t lock ;
 189   struct list_head task_list ;
 190};
 191#line 53 "include/linux/wait.h"
 192typedef struct __wait_queue_head wait_queue_head_t;
 193#line 55
 194struct task_struct;
 195#line 60 "include/linux/pageblock-flags.h"
 196struct page;
 197#line 48 "include/linux/mutex.h"
 198struct mutex {
 199   atomic_t count ;
 200   spinlock_t wait_lock ;
 201   struct list_head wait_list ;
 202   struct task_struct *owner ;
 203   char const   *name ;
 204   void *magic ;
 205};
 206#line 19 "include/linux/rwsem.h"
 207struct rw_semaphore;
 208#line 19
 209struct rw_semaphore;
 210#line 25 "include/linux/rwsem.h"
 211struct rw_semaphore {
 212   long count ;
 213   raw_spinlock_t wait_lock ;
 214   struct list_head wait_list ;
 215};
 216#line 25 "include/linux/completion.h"
 217struct completion {
 218   unsigned int done ;
 219   wait_queue_head_t wait ;
 220};
 221#line 9 "include/linux/memory_hotplug.h"
 222struct page;
 223#line 18 "include/linux/ioport.h"
 224struct resource {
 225   resource_size_t start ;
 226   resource_size_t end ;
 227   char const   *name ;
 228   unsigned long flags ;
 229   struct resource *parent ;
 230   struct resource *sibling ;
 231   struct resource *child ;
 232};
 233#line 202
 234struct device;
 235#line 103 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mpspec.h"
 236struct device;
 237#line 46 "include/linux/ktime.h"
 238union ktime {
 239   s64 tv64 ;
 240};
 241#line 59 "include/linux/ktime.h"
 242typedef union ktime ktime_t;
 243#line 10 "include/linux/timer.h"
 244struct tvec_base;
 245#line 10
 246struct tvec_base;
 247#line 12 "include/linux/timer.h"
 248struct timer_list {
 249   struct list_head entry ;
 250   unsigned long expires ;
 251   struct tvec_base *base ;
 252   void (*function)(unsigned long  ) ;
 253   unsigned long data ;
 254   int slack ;
 255   int start_pid ;
 256   void *start_site ;
 257   char start_comm[16] ;
 258};
 259#line 17 "include/linux/workqueue.h"
 260struct work_struct;
 261#line 17
 262struct work_struct;
 263#line 79 "include/linux/workqueue.h"
 264struct work_struct {
 265   atomic_long_t data ;
 266   struct list_head entry ;
 267   void (*func)(struct work_struct *work ) ;
 268};
 269#line 42 "include/linux/pm.h"
 270struct device;
 271#line 50 "include/linux/pm.h"
 272struct pm_message {
 273   int event ;
 274};
 275#line 50 "include/linux/pm.h"
 276typedef struct pm_message pm_message_t;
 277#line 264 "include/linux/pm.h"
 278struct dev_pm_ops {
 279   int (*prepare)(struct device *dev ) ;
 280   void (*complete)(struct device *dev ) ;
 281   int (*suspend)(struct device *dev ) ;
 282   int (*resume)(struct device *dev ) ;
 283   int (*freeze)(struct device *dev ) ;
 284   int (*thaw)(struct device *dev ) ;
 285   int (*poweroff)(struct device *dev ) ;
 286   int (*restore)(struct device *dev ) ;
 287   int (*suspend_late)(struct device *dev ) ;
 288   int (*resume_early)(struct device *dev ) ;
 289   int (*freeze_late)(struct device *dev ) ;
 290   int (*thaw_early)(struct device *dev ) ;
 291   int (*poweroff_late)(struct device *dev ) ;
 292   int (*restore_early)(struct device *dev ) ;
 293   int (*suspend_noirq)(struct device *dev ) ;
 294   int (*resume_noirq)(struct device *dev ) ;
 295   int (*freeze_noirq)(struct device *dev ) ;
 296   int (*thaw_noirq)(struct device *dev ) ;
 297   int (*poweroff_noirq)(struct device *dev ) ;
 298   int (*restore_noirq)(struct device *dev ) ;
 299   int (*runtime_suspend)(struct device *dev ) ;
 300   int (*runtime_resume)(struct device *dev ) ;
 301   int (*runtime_idle)(struct device *dev ) ;
 302};
 303#line 458
 304enum rpm_status {
 305    RPM_ACTIVE = 0,
 306    RPM_RESUMING = 1,
 307    RPM_SUSPENDED = 2,
 308    RPM_SUSPENDING = 3
 309} ;
 310#line 480
 311enum rpm_request {
 312    RPM_REQ_NONE = 0,
 313    RPM_REQ_IDLE = 1,
 314    RPM_REQ_SUSPEND = 2,
 315    RPM_REQ_AUTOSUSPEND = 3,
 316    RPM_REQ_RESUME = 4
 317} ;
 318#line 488
 319struct wakeup_source;
 320#line 488
 321struct wakeup_source;
 322#line 495 "include/linux/pm.h"
 323struct pm_subsys_data {
 324   spinlock_t lock ;
 325   unsigned int refcount ;
 326};
 327#line 506
 328struct dev_pm_qos_request;
 329#line 506
 330struct pm_qos_constraints;
 331#line 506 "include/linux/pm.h"
 332struct dev_pm_info {
 333   pm_message_t power_state ;
 334   unsigned int can_wakeup : 1 ;
 335   unsigned int async_suspend : 1 ;
 336   bool is_prepared : 1 ;
 337   bool is_suspended : 1 ;
 338   bool ignore_children : 1 ;
 339   spinlock_t lock ;
 340   struct list_head entry ;
 341   struct completion completion ;
 342   struct wakeup_source *wakeup ;
 343   bool wakeup_path : 1 ;
 344   struct timer_list suspend_timer ;
 345   unsigned long timer_expires ;
 346   struct work_struct work ;
 347   wait_queue_head_t wait_queue ;
 348   atomic_t usage_count ;
 349   atomic_t child_count ;
 350   unsigned int disable_depth : 3 ;
 351   unsigned int idle_notification : 1 ;
 352   unsigned int request_pending : 1 ;
 353   unsigned int deferred_resume : 1 ;
 354   unsigned int run_wake : 1 ;
 355   unsigned int runtime_auto : 1 ;
 356   unsigned int no_callbacks : 1 ;
 357   unsigned int irq_safe : 1 ;
 358   unsigned int use_autosuspend : 1 ;
 359   unsigned int timer_autosuspends : 1 ;
 360   enum rpm_request request ;
 361   enum rpm_status runtime_status ;
 362   int runtime_error ;
 363   int autosuspend_delay ;
 364   unsigned long last_busy ;
 365   unsigned long active_jiffies ;
 366   unsigned long suspended_jiffies ;
 367   unsigned long accounting_timestamp ;
 368   ktime_t suspend_time ;
 369   s64 max_time_suspended_ns ;
 370   struct dev_pm_qos_request *pq_req ;
 371   struct pm_subsys_data *subsys_data ;
 372   struct pm_qos_constraints *constraints ;
 373};
 374#line 564 "include/linux/pm.h"
 375struct dev_pm_domain {
 376   struct dev_pm_ops ops ;
 377};
 378#line 8 "include/linux/vmalloc.h"
 379struct vm_area_struct;
 380#line 8
 381struct vm_area_struct;
 382#line 994 "include/linux/mmzone.h"
 383struct page;
 384#line 10 "include/linux/gfp.h"
 385struct vm_area_struct;
 386#line 29 "include/linux/sysctl.h"
 387struct completion;
 388#line 49 "include/linux/kmod.h"
 389struct file;
 390#line 270 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/elf.h"
 391struct task_struct;
 392#line 18 "include/linux/elf.h"
 393typedef __u64 Elf64_Addr;
 394#line 19 "include/linux/elf.h"
 395typedef __u16 Elf64_Half;
 396#line 23 "include/linux/elf.h"
 397typedef __u32 Elf64_Word;
 398#line 24 "include/linux/elf.h"
 399typedef __u64 Elf64_Xword;
 400#line 194 "include/linux/elf.h"
 401struct elf64_sym {
 402   Elf64_Word st_name ;
 403   unsigned char st_info ;
 404   unsigned char st_other ;
 405   Elf64_Half st_shndx ;
 406   Elf64_Addr st_value ;
 407   Elf64_Xword st_size ;
 408};
 409#line 194 "include/linux/elf.h"
 410typedef struct elf64_sym Elf64_Sym;
 411#line 438
 412struct file;
 413#line 20 "include/linux/kobject_ns.h"
 414struct sock;
 415#line 20
 416struct sock;
 417#line 21
 418struct kobject;
 419#line 21
 420struct kobject;
 421#line 27
 422enum kobj_ns_type {
 423    KOBJ_NS_TYPE_NONE = 0,
 424    KOBJ_NS_TYPE_NET = 1,
 425    KOBJ_NS_TYPES = 2
 426} ;
 427#line 40 "include/linux/kobject_ns.h"
 428struct kobj_ns_type_operations {
 429   enum kobj_ns_type type ;
 430   void *(*grab_current_ns)(void) ;
 431   void const   *(*netlink_ns)(struct sock *sk ) ;
 432   void const   *(*initial_ns)(void) ;
 433   void (*drop_ns)(void * ) ;
 434};
 435#line 22 "include/linux/sysfs.h"
 436struct kobject;
 437#line 23
 438struct module;
 439#line 24
 440enum kobj_ns_type;
 441#line 26 "include/linux/sysfs.h"
 442struct attribute {
 443   char const   *name ;
 444   umode_t mode ;
 445};
 446#line 56 "include/linux/sysfs.h"
 447struct attribute_group {
 448   char const   *name ;
 449   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 450   struct attribute **attrs ;
 451};
 452#line 85
 453struct file;
 454#line 86
 455struct vm_area_struct;
 456#line 88 "include/linux/sysfs.h"
 457struct bin_attribute {
 458   struct attribute attr ;
 459   size_t size ;
 460   void *private ;
 461   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 462                   loff_t  , size_t  ) ;
 463   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 464                    loff_t  , size_t  ) ;
 465   int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
 466};
 467#line 112 "include/linux/sysfs.h"
 468struct sysfs_ops {
 469   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 470   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 471   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 472};
 473#line 118
 474struct sysfs_dirent;
 475#line 118
 476struct sysfs_dirent;
 477#line 22 "include/linux/kref.h"
 478struct kref {
 479   atomic_t refcount ;
 480};
 481#line 60 "include/linux/kobject.h"
 482struct kset;
 483#line 60
 484struct kobj_type;
 485#line 60 "include/linux/kobject.h"
 486struct kobject {
 487   char const   *name ;
 488   struct list_head entry ;
 489   struct kobject *parent ;
 490   struct kset *kset ;
 491   struct kobj_type *ktype ;
 492   struct sysfs_dirent *sd ;
 493   struct kref kref ;
 494   unsigned int state_initialized : 1 ;
 495   unsigned int state_in_sysfs : 1 ;
 496   unsigned int state_add_uevent_sent : 1 ;
 497   unsigned int state_remove_uevent_sent : 1 ;
 498   unsigned int uevent_suppress : 1 ;
 499};
 500#line 108 "include/linux/kobject.h"
 501struct kobj_type {
 502   void (*release)(struct kobject *kobj ) ;
 503   struct sysfs_ops  const  *sysfs_ops ;
 504   struct attribute **default_attrs ;
 505   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject *kobj ) ;
 506   void const   *(*namespace)(struct kobject *kobj ) ;
 507};
 508#line 116 "include/linux/kobject.h"
 509struct kobj_uevent_env {
 510   char *envp[32] ;
 511   int envp_idx ;
 512   char buf[2048] ;
 513   int buflen ;
 514};
 515#line 123 "include/linux/kobject.h"
 516struct kset_uevent_ops {
 517   int (* const  filter)(struct kset *kset , struct kobject *kobj ) ;
 518   char const   *(* const  name)(struct kset *kset , struct kobject *kobj ) ;
 519   int (* const  uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
 520};
 521#line 140
 522struct sock;
 523#line 159 "include/linux/kobject.h"
 524struct kset {
 525   struct list_head list ;
 526   spinlock_t list_lock ;
 527   struct kobject kobj ;
 528   struct kset_uevent_ops  const  *uevent_ops ;
 529};
 530#line 39 "include/linux/moduleparam.h"
 531struct kernel_param;
 532#line 39
 533struct kernel_param;
 534#line 41 "include/linux/moduleparam.h"
 535struct kernel_param_ops {
 536   int (*set)(char const   *val , struct kernel_param  const  *kp ) ;
 537   int (*get)(char *buffer , struct kernel_param  const  *kp ) ;
 538   void (*free)(void *arg ) ;
 539};
 540#line 50
 541struct kparam_string;
 542#line 50
 543struct kparam_array;
 544#line 50 "include/linux/moduleparam.h"
 545union __anonunion____missing_field_name_199 {
 546   void *arg ;
 547   struct kparam_string  const  *str ;
 548   struct kparam_array  const  *arr ;
 549};
 550#line 50 "include/linux/moduleparam.h"
 551struct kernel_param {
 552   char const   *name ;
 553   struct kernel_param_ops  const  *ops ;
 554   u16 perm ;
 555   s16 level ;
 556   union __anonunion____missing_field_name_199 __annonCompField32 ;
 557};
 558#line 63 "include/linux/moduleparam.h"
 559struct kparam_string {
 560   unsigned int maxlen ;
 561   char *string ;
 562};
 563#line 69 "include/linux/moduleparam.h"
 564struct kparam_array {
 565   unsigned int max ;
 566   unsigned int elemsize ;
 567   unsigned int *num ;
 568   struct kernel_param_ops  const  *ops ;
 569   void *elem ;
 570};
 571#line 445
 572struct module;
 573#line 80 "include/linux/jump_label.h"
 574struct module;
 575#line 143 "include/linux/jump_label.h"
 576struct static_key {
 577   atomic_t enabled ;
 578};
 579#line 22 "include/linux/tracepoint.h"
 580struct module;
 581#line 23
 582struct tracepoint;
 583#line 23
 584struct tracepoint;
 585#line 25 "include/linux/tracepoint.h"
 586struct tracepoint_func {
 587   void *func ;
 588   void *data ;
 589};
 590#line 30 "include/linux/tracepoint.h"
 591struct tracepoint {
 592   char const   *name ;
 593   struct static_key key ;
 594   void (*regfunc)(void) ;
 595   void (*unregfunc)(void) ;
 596   struct tracepoint_func *funcs ;
 597};
 598#line 19 "include/linux/export.h"
 599struct kernel_symbol {
 600   unsigned long value ;
 601   char const   *name ;
 602};
 603#line 8 "include/asm-generic/module.h"
 604struct mod_arch_specific {
 605
 606};
 607#line 35 "include/linux/module.h"
 608struct module;
 609#line 37
 610struct module_param_attrs;
 611#line 37 "include/linux/module.h"
 612struct module_kobject {
 613   struct kobject kobj ;
 614   struct module *mod ;
 615   struct kobject *drivers_dir ;
 616   struct module_param_attrs *mp ;
 617};
 618#line 44 "include/linux/module.h"
 619struct module_attribute {
 620   struct attribute attr ;
 621   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 622   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 623                    size_t count ) ;
 624   void (*setup)(struct module * , char const   * ) ;
 625   int (*test)(struct module * ) ;
 626   void (*free)(struct module * ) ;
 627};
 628#line 71
 629struct exception_table_entry;
 630#line 71
 631struct exception_table_entry;
 632#line 199
 633enum module_state {
 634    MODULE_STATE_LIVE = 0,
 635    MODULE_STATE_COMING = 1,
 636    MODULE_STATE_GOING = 2
 637} ;
 638#line 215 "include/linux/module.h"
 639struct module_ref {
 640   unsigned long incs ;
 641   unsigned long decs ;
 642} __attribute__((__aligned__((2) *  (sizeof(unsigned long )) ))) ;
 643#line 220
 644struct module_sect_attrs;
 645#line 220
 646struct module_notes_attrs;
 647#line 220
 648struct ftrace_event_call;
 649#line 220 "include/linux/module.h"
 650struct module {
 651   enum module_state state ;
 652   struct list_head list ;
 653   char name[64UL - sizeof(unsigned long )] ;
 654   struct module_kobject mkobj ;
 655   struct module_attribute *modinfo_attrs ;
 656   char const   *version ;
 657   char const   *srcversion ;
 658   struct kobject *holders_dir ;
 659   struct kernel_symbol  const  *syms ;
 660   unsigned long const   *crcs ;
 661   unsigned int num_syms ;
 662   struct kernel_param *kp ;
 663   unsigned int num_kp ;
 664   unsigned int num_gpl_syms ;
 665   struct kernel_symbol  const  *gpl_syms ;
 666   unsigned long const   *gpl_crcs ;
 667   struct kernel_symbol  const  *unused_syms ;
 668   unsigned long const   *unused_crcs ;
 669   unsigned int num_unused_syms ;
 670   unsigned int num_unused_gpl_syms ;
 671   struct kernel_symbol  const  *unused_gpl_syms ;
 672   unsigned long const   *unused_gpl_crcs ;
 673   struct kernel_symbol  const  *gpl_future_syms ;
 674   unsigned long const   *gpl_future_crcs ;
 675   unsigned int num_gpl_future_syms ;
 676   unsigned int num_exentries ;
 677   struct exception_table_entry *extable ;
 678   int (*init)(void) ;
 679   void *module_init ;
 680   void *module_core ;
 681   unsigned int init_size ;
 682   unsigned int core_size ;
 683   unsigned int init_text_size ;
 684   unsigned int core_text_size ;
 685   unsigned int init_ro_size ;
 686   unsigned int core_ro_size ;
 687   struct mod_arch_specific arch ;
 688   unsigned int taints ;
 689   unsigned int num_bugs ;
 690   struct list_head bug_list ;
 691   struct bug_entry *bug_table ;
 692   Elf64_Sym *symtab ;
 693   Elf64_Sym *core_symtab ;
 694   unsigned int num_symtab ;
 695   unsigned int core_num_syms ;
 696   char *strtab ;
 697   char *core_strtab ;
 698   struct module_sect_attrs *sect_attrs ;
 699   struct module_notes_attrs *notes_attrs ;
 700   char *args ;
 701   void *percpu ;
 702   unsigned int percpu_size ;
 703   unsigned int num_tracepoints ;
 704   struct tracepoint * const  *tracepoints_ptrs ;
 705   unsigned int num_trace_bprintk_fmt ;
 706   char const   **trace_bprintk_fmt_start ;
 707   struct ftrace_event_call **trace_events ;
 708   unsigned int num_trace_events ;
 709   struct list_head source_list ;
 710   struct list_head target_list ;
 711   struct task_struct *waiter ;
 712   void (*exit)(void) ;
 713   struct module_ref *refptr ;
 714   ctor_fn_t *ctors ;
 715   unsigned int num_ctors ;
 716};
 717#line 19 "include/linux/klist.h"
 718struct klist_node;
 719#line 19
 720struct klist_node;
 721#line 39 "include/linux/klist.h"
 722struct klist_node {
 723   void *n_klist ;
 724   struct list_head n_node ;
 725   struct kref n_ref ;
 726};
 727#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 728struct dma_map_ops;
 729#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 730struct dev_archdata {
 731   void *acpi_handle ;
 732   struct dma_map_ops *dma_ops ;
 733   void *iommu ;
 734};
 735#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 736struct pdev_archdata {
 737
 738};
 739#line 28 "include/linux/device.h"
 740struct device;
 741#line 29
 742struct device_private;
 743#line 29
 744struct device_private;
 745#line 30
 746struct device_driver;
 747#line 30
 748struct device_driver;
 749#line 31
 750struct driver_private;
 751#line 31
 752struct driver_private;
 753#line 32
 754struct module;
 755#line 33
 756struct class;
 757#line 33
 758struct class;
 759#line 34
 760struct subsys_private;
 761#line 34
 762struct subsys_private;
 763#line 35
 764struct bus_type;
 765#line 35
 766struct bus_type;
 767#line 36
 768struct device_node;
 769#line 36
 770struct device_node;
 771#line 37
 772struct iommu_ops;
 773#line 37
 774struct iommu_ops;
 775#line 39 "include/linux/device.h"
 776struct bus_attribute {
 777   struct attribute attr ;
 778   ssize_t (*show)(struct bus_type *bus , char *buf ) ;
 779   ssize_t (*store)(struct bus_type *bus , char const   *buf , size_t count ) ;
 780};
 781#line 89
 782struct device_attribute;
 783#line 89
 784struct driver_attribute;
 785#line 89 "include/linux/device.h"
 786struct bus_type {
 787   char const   *name ;
 788   char const   *dev_name ;
 789   struct device *dev_root ;
 790   struct bus_attribute *bus_attrs ;
 791   struct device_attribute *dev_attrs ;
 792   struct driver_attribute *drv_attrs ;
 793   int (*match)(struct device *dev , struct device_driver *drv ) ;
 794   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 795   int (*probe)(struct device *dev ) ;
 796   int (*remove)(struct device *dev ) ;
 797   void (*shutdown)(struct device *dev ) ;
 798   int (*suspend)(struct device *dev , pm_message_t state ) ;
 799   int (*resume)(struct device *dev ) ;
 800   struct dev_pm_ops  const  *pm ;
 801   struct iommu_ops *iommu_ops ;
 802   struct subsys_private *p ;
 803};
 804#line 127
 805struct device_type;
 806#line 214
 807struct of_device_id;
 808#line 214 "include/linux/device.h"
 809struct device_driver {
 810   char const   *name ;
 811   struct bus_type *bus ;
 812   struct module *owner ;
 813   char const   *mod_name ;
 814   bool suppress_bind_attrs ;
 815   struct of_device_id  const  *of_match_table ;
 816   int (*probe)(struct device *dev ) ;
 817   int (*remove)(struct device *dev ) ;
 818   void (*shutdown)(struct device *dev ) ;
 819   int (*suspend)(struct device *dev , pm_message_t state ) ;
 820   int (*resume)(struct device *dev ) ;
 821   struct attribute_group  const  **groups ;
 822   struct dev_pm_ops  const  *pm ;
 823   struct driver_private *p ;
 824};
 825#line 249 "include/linux/device.h"
 826struct driver_attribute {
 827   struct attribute attr ;
 828   ssize_t (*show)(struct device_driver *driver , char *buf ) ;
 829   ssize_t (*store)(struct device_driver *driver , char const   *buf , size_t count ) ;
 830};
 831#line 330
 832struct class_attribute;
 833#line 330 "include/linux/device.h"
 834struct class {
 835   char const   *name ;
 836   struct module *owner ;
 837   struct class_attribute *class_attrs ;
 838   struct device_attribute *dev_attrs ;
 839   struct bin_attribute *dev_bin_attrs ;
 840   struct kobject *dev_kobj ;
 841   int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 842   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 843   void (*class_release)(struct class *class ) ;
 844   void (*dev_release)(struct device *dev ) ;
 845   int (*suspend)(struct device *dev , pm_message_t state ) ;
 846   int (*resume)(struct device *dev ) ;
 847   struct kobj_ns_type_operations  const  *ns_type ;
 848   void const   *(*namespace)(struct device *dev ) ;
 849   struct dev_pm_ops  const  *pm ;
 850   struct subsys_private *p ;
 851};
 852#line 397 "include/linux/device.h"
 853struct class_attribute {
 854   struct attribute attr ;
 855   ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
 856   ssize_t (*store)(struct class *class , struct class_attribute *attr , char const   *buf ,
 857                    size_t count ) ;
 858   void const   *(*namespace)(struct class *class , struct class_attribute  const  *attr ) ;
 859};
 860#line 465 "include/linux/device.h"
 861struct device_type {
 862   char const   *name ;
 863   struct attribute_group  const  **groups ;
 864   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 865   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 866   void (*release)(struct device *dev ) ;
 867   struct dev_pm_ops  const  *pm ;
 868};
 869#line 476 "include/linux/device.h"
 870struct device_attribute {
 871   struct attribute attr ;
 872   ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
 873   ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const   *buf ,
 874                    size_t count ) ;
 875};
 876#line 559 "include/linux/device.h"
 877struct device_dma_parameters {
 878   unsigned int max_segment_size ;
 879   unsigned long segment_boundary_mask ;
 880};
 881#line 627
 882struct dma_coherent_mem;
 883#line 627 "include/linux/device.h"
 884struct device {
 885   struct device *parent ;
 886   struct device_private *p ;
 887   struct kobject kobj ;
 888   char const   *init_name ;
 889   struct device_type  const  *type ;
 890   struct mutex mutex ;
 891   struct bus_type *bus ;
 892   struct device_driver *driver ;
 893   void *platform_data ;
 894   struct dev_pm_info power ;
 895   struct dev_pm_domain *pm_domain ;
 896   int numa_node ;
 897   u64 *dma_mask ;
 898   u64 coherent_dma_mask ;
 899   struct device_dma_parameters *dma_parms ;
 900   struct list_head dma_pools ;
 901   struct dma_coherent_mem *dma_mem ;
 902   struct dev_archdata archdata ;
 903   struct device_node *of_node ;
 904   dev_t devt ;
 905   u32 id ;
 906   spinlock_t devres_lock ;
 907   struct list_head devres_head ;
 908   struct klist_node knode_class ;
 909   struct class *class ;
 910   struct attribute_group  const  **groups ;
 911   void (*release)(struct device *dev ) ;
 912};
 913#line 43 "include/linux/pm_wakeup.h"
 914struct wakeup_source {
 915   char const   *name ;
 916   struct list_head entry ;
 917   spinlock_t lock ;
 918   struct timer_list timer ;
 919   unsigned long timer_expires ;
 920   ktime_t total_time ;
 921   ktime_t max_time ;
 922   ktime_t last_time ;
 923   unsigned long event_count ;
 924   unsigned long active_count ;
 925   unsigned long relax_count ;
 926   unsigned long hit_count ;
 927   unsigned int active : 1 ;
 928};
 929#line 12 "include/linux/mod_devicetable.h"
 930typedef unsigned long kernel_ulong_t;
 931#line 219 "include/linux/mod_devicetable.h"
 932struct of_device_id {
 933   char name[32] ;
 934   char type[32] ;
 935   char compatible[128] ;
 936   void *data ;
 937};
 938#line 506 "include/linux/mod_devicetable.h"
 939struct platform_device_id {
 940   char name[20] ;
 941   kernel_ulong_t driver_data  __attribute__((__aligned__(sizeof(kernel_ulong_t )))) ;
 942};
 943#line 17 "include/linux/platform_device.h"
 944struct mfd_cell;
 945#line 17
 946struct mfd_cell;
 947#line 19 "include/linux/platform_device.h"
 948struct platform_device {
 949   char const   *name ;
 950   int id ;
 951   struct device dev ;
 952   u32 num_resources ;
 953   struct resource *resource ;
 954   struct platform_device_id  const  *id_entry ;
 955   struct mfd_cell *mfd_cell ;
 956   struct pdev_archdata archdata ;
 957};
 958#line 164 "include/linux/platform_device.h"
 959struct platform_driver {
 960   int (*probe)(struct platform_device * ) ;
 961   int (*remove)(struct platform_device * ) ;
 962   void (*shutdown)(struct platform_device * ) ;
 963   int (*suspend)(struct platform_device * , pm_message_t state ) ;
 964   int (*resume)(struct platform_device * ) ;
 965   struct device_driver driver ;
 966   struct platform_device_id  const  *id_table ;
 967};
 968#line 20 "include/linux/leds.h"
 969struct device;
 970#line 25
 971enum led_brightness {
 972    LED_OFF = 0,
 973    LED_HALF = 127,
 974    LED_FULL = 255
 975} ;
 976#line 31
 977struct led_trigger;
 978#line 31 "include/linux/leds.h"
 979struct led_classdev {
 980   char const   *name ;
 981   int brightness ;
 982   int max_brightness ;
 983   int flags ;
 984   void (*brightness_set)(struct led_classdev *led_cdev , enum led_brightness brightness ) ;
 985   enum led_brightness (*brightness_get)(struct led_classdev *led_cdev ) ;
 986   int (*blink_set)(struct led_classdev *led_cdev , unsigned long *delay_on , unsigned long *delay_off ) ;
 987   struct device *dev ;
 988   struct list_head node ;
 989   char const   *default_trigger ;
 990   unsigned long blink_delay_on ;
 991   unsigned long blink_delay_off ;
 992   struct timer_list blink_timer ;
 993   int blink_brightness ;
 994   struct rw_semaphore trigger_lock ;
 995   struct led_trigger *trigger ;
 996   struct list_head trig_list ;
 997   void *trigger_data ;
 998};
 999#line 122 "include/linux/leds.h"
1000struct led_trigger {
1001   char const   *name ;
1002   void (*activate)(struct led_classdev *led_cdev ) ;
1003   void (*deactivate)(struct led_classdev *led_cdev ) ;
1004   rwlock_t leddev_list_lock ;
1005   struct list_head led_cdevs ;
1006   struct list_head next_trig ;
1007};
1008#line 19 "include/linux/power_supply.h"
1009struct device;
1010#line 84
1011enum power_supply_property {
1012    POWER_SUPPLY_PROP_STATUS = 0,
1013    POWER_SUPPLY_PROP_CHARGE_TYPE = 1,
1014    POWER_SUPPLY_PROP_HEALTH = 2,
1015    POWER_SUPPLY_PROP_PRESENT = 3,
1016    POWER_SUPPLY_PROP_ONLINE = 4,
1017    POWER_SUPPLY_PROP_TECHNOLOGY = 5,
1018    POWER_SUPPLY_PROP_CYCLE_COUNT = 6,
1019    POWER_SUPPLY_PROP_VOLTAGE_MAX = 7,
1020    POWER_SUPPLY_PROP_VOLTAGE_MIN = 8,
1021    POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 9,
1022    POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 10,
1023    POWER_SUPPLY_PROP_VOLTAGE_NOW = 11,
1024    POWER_SUPPLY_PROP_VOLTAGE_AVG = 12,
1025    POWER_SUPPLY_PROP_CURRENT_MAX = 13,
1026    POWER_SUPPLY_PROP_CURRENT_NOW = 14,
1027    POWER_SUPPLY_PROP_CURRENT_AVG = 15,
1028    POWER_SUPPLY_PROP_POWER_NOW = 16,
1029    POWER_SUPPLY_PROP_POWER_AVG = 17,
1030    POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 18,
1031    POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 19,
1032    POWER_SUPPLY_PROP_CHARGE_FULL = 20,
1033    POWER_SUPPLY_PROP_CHARGE_EMPTY = 21,
1034    POWER_SUPPLY_PROP_CHARGE_NOW = 22,
1035    POWER_SUPPLY_PROP_CHARGE_AVG = 23,
1036    POWER_SUPPLY_PROP_CHARGE_COUNTER = 24,
1037    POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 25,
1038    POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 26,
1039    POWER_SUPPLY_PROP_ENERGY_FULL = 27,
1040    POWER_SUPPLY_PROP_ENERGY_EMPTY = 28,
1041    POWER_SUPPLY_PROP_ENERGY_NOW = 29,
1042    POWER_SUPPLY_PROP_ENERGY_AVG = 30,
1043    POWER_SUPPLY_PROP_CAPACITY = 31,
1044    POWER_SUPPLY_PROP_CAPACITY_LEVEL = 32,
1045    POWER_SUPPLY_PROP_TEMP = 33,
1046    POWER_SUPPLY_PROP_TEMP_AMBIENT = 34,
1047    POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 35,
1048    POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 36,
1049    POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 37,
1050    POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 38,
1051    POWER_SUPPLY_PROP_TYPE = 39,
1052    POWER_SUPPLY_PROP_SCOPE = 40,
1053    POWER_SUPPLY_PROP_MODEL_NAME = 41,
1054    POWER_SUPPLY_PROP_MANUFACTURER = 42,
1055    POWER_SUPPLY_PROP_SERIAL_NUMBER = 43
1056} ;
1057#line 133
1058enum power_supply_type {
1059    POWER_SUPPLY_TYPE_UNKNOWN = 0,
1060    POWER_SUPPLY_TYPE_BATTERY = 1,
1061    POWER_SUPPLY_TYPE_UPS = 2,
1062    POWER_SUPPLY_TYPE_MAINS = 3,
1063    POWER_SUPPLY_TYPE_USB = 4,
1064    POWER_SUPPLY_TYPE_USB_DCP = 5,
1065    POWER_SUPPLY_TYPE_USB_CDP = 6,
1066    POWER_SUPPLY_TYPE_USB_ACA = 7
1067} ;
1068#line 144 "include/linux/power_supply.h"
1069union power_supply_propval {
1070   int intval ;
1071   char const   *strval ;
1072};
1073#line 149 "include/linux/power_supply.h"
1074struct power_supply {
1075   char const   *name ;
1076   enum power_supply_type type ;
1077   enum power_supply_property *properties ;
1078   size_t num_properties ;
1079   char **supplied_to ;
1080   size_t num_supplicants ;
1081   int (*get_property)(struct power_supply *psy , enum power_supply_property psp ,
1082                       union power_supply_propval *val ) ;
1083   int (*set_property)(struct power_supply *psy , enum power_supply_property psp ,
1084                       union power_supply_propval  const  *val ) ;
1085   int (*property_is_writeable)(struct power_supply *psy , enum power_supply_property psp ) ;
1086   void (*external_power_changed)(struct power_supply *psy ) ;
1087   void (*set_charged)(struct power_supply *psy ) ;
1088   int use_for_apm ;
1089   struct device *dev ;
1090   struct work_struct changed_work ;
1091   struct led_trigger *charging_full_trig ;
1092   char *charging_full_trig_name ;
1093   struct led_trigger *charging_trig ;
1094   char *charging_trig_name ;
1095   struct led_trigger *full_trig ;
1096   char *full_trig_name ;
1097   struct led_trigger *online_trig ;
1098   char *online_trig_name ;
1099   struct led_trigger *charging_blink_full_solid_trig ;
1100   char *charging_blink_full_solid_trig_name ;
1101};
1102#line 46 "include/linux/slub_def.h"
1103struct kmem_cache_cpu {
1104   void **freelist ;
1105   unsigned long tid ;
1106   struct page *page ;
1107   struct page *partial ;
1108   int node ;
1109   unsigned int stat[26] ;
1110};
1111#line 57 "include/linux/slub_def.h"
1112struct kmem_cache_node {
1113   spinlock_t list_lock ;
1114   unsigned long nr_partial ;
1115   struct list_head partial ;
1116   atomic_long_t nr_slabs ;
1117   atomic_long_t total_objects ;
1118   struct list_head full ;
1119};
1120#line 73 "include/linux/slub_def.h"
1121struct kmem_cache_order_objects {
1122   unsigned long x ;
1123};
1124#line 80 "include/linux/slub_def.h"
1125struct kmem_cache {
1126   struct kmem_cache_cpu *cpu_slab ;
1127   unsigned long flags ;
1128   unsigned long min_partial ;
1129   int size ;
1130   int objsize ;
1131   int offset ;
1132   int cpu_partial ;
1133   struct kmem_cache_order_objects oo ;
1134   struct kmem_cache_order_objects max ;
1135   struct kmem_cache_order_objects min ;
1136   gfp_t allocflags ;
1137   int refcount ;
1138   void (*ctor)(void * ) ;
1139   int inuse ;
1140   int align ;
1141   int reserved ;
1142   char const   *name ;
1143   struct list_head list ;
1144   struct kobject kobj ;
1145   int remote_node_defrag_ratio ;
1146   struct kmem_cache_node *node[1 << 10] ;
1147};
1148#line 32 "include/linux/irq.h"
1149struct module;
1150#line 14 "include/linux/irqdesc.h"
1151struct module;
1152#line 65 "include/linux/profile.h"
1153struct task_struct;
1154#line 94 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess.h"
1155struct exception_table_entry {
1156   unsigned long insn ;
1157   unsigned long fixup ;
1158};
1159#line 132 "include/linux/hardirq.h"
1160struct task_struct;
1161#line 187 "include/linux/interrupt.h"
1162struct device;
1163#line 18 "include/linux/regmap.h"
1164struct module;
1165#line 19
1166struct device;
1167#line 22
1168struct regmap;
1169#line 22
1170struct regmap;
1171#line 355 "include/linux/mfd/wm831x/core.h"
1172struct wm831x;
1173#line 355
1174struct wm831x;
1175#line 356
1176enum wm831x_auxadc;
1177#line 356
1178enum wm831x_auxadc;
1179#line 361 "include/linux/mfd/wm831x/core.h"
1180struct wm831x {
1181   struct mutex io_lock ;
1182   struct device *dev ;
1183   struct regmap *regmap ;
1184   int irq ;
1185   struct mutex irq_lock ;
1186   int irq_base ;
1187   int irq_masks_cur[5] ;
1188   int irq_masks_cache[5] ;
1189   bool soft_shutdown ;
1190   unsigned int has_gpio_ena : 1 ;
1191   unsigned int has_cs_sts : 1 ;
1192   unsigned int charger_irq_wake : 1 ;
1193   int num_gpio ;
1194   int gpio_update[16] ;
1195   bool gpio_level[16] ;
1196   struct mutex auxadc_lock ;
1197   struct list_head auxadc_pending ;
1198   u16 auxadc_active ;
1199   int (*auxadc_read)(struct wm831x *wm831x , enum wm831x_auxadc input ) ;
1200   struct mutex key_lock ;
1201   unsigned int locked : 1 ;
1202};
1203#line 198 "include/linux/mfd/wm831x/auxadc.h"
1204enum wm831x_auxadc {
1205    WM831X_AUX_CAL = 15,
1206    WM831X_AUX_BKUP_BATT = 10,
1207    WM831X_AUX_WALL = 9,
1208    WM831X_AUX_BATT = 8,
1209    WM831X_AUX_USB = 7,
1210    WM831X_AUX_SYSVDD = 6,
1211    WM831X_AUX_BATT_TEMP = 5,
1212    WM831X_AUX_CHIP_TEMP = 4,
1213    WM831X_AUX_AUX4 = 3,
1214    WM831X_AUX_AUX3 = 2,
1215    WM831X_AUX_AUX2 = 1,
1216    WM831X_AUX_AUX1 = 0
1217} ;
1218#line 18 "include/linux/mfd/wm831x/pdata.h"
1219struct wm831x;
1220#line 19
1221struct regulator_init_data;
1222#line 19
1223struct regulator_init_data;
1224#line 21 "include/linux/mfd/wm831x/pdata.h"
1225struct wm831x_backlight_pdata {
1226   int isink ;
1227   int max_uA ;
1228};
1229#line 26 "include/linux/mfd/wm831x/pdata.h"
1230struct wm831x_backup_pdata {
1231   int charger_enable ;
1232   int no_constant_voltage ;
1233   int vlim ;
1234   int ilim ;
1235};
1236#line 33 "include/linux/mfd/wm831x/pdata.h"
1237struct wm831x_battery_pdata {
1238   int enable ;
1239   int fast_enable ;
1240   int off_mask ;
1241   int trickle_ilim ;
1242   int vsel ;
1243   int eoc_iterm ;
1244   int fast_ilim ;
1245   int timeout ;
1246};
1247#line 64
1248enum wm831x_status_src {
1249    WM831X_STATUS_PRESERVE = 0,
1250    WM831X_STATUS_OTP = 1,
1251    WM831X_STATUS_POWER = 2,
1252    WM831X_STATUS_CHARGER = 3,
1253    WM831X_STATUS_MANUAL = 4
1254} ;
1255#line 72 "include/linux/mfd/wm831x/pdata.h"
1256struct wm831x_status_pdata {
1257   enum wm831x_status_src default_src ;
1258   char const   *name ;
1259   char const   *default_trigger ;
1260};
1261#line 78 "include/linux/mfd/wm831x/pdata.h"
1262struct wm831x_touch_pdata {
1263   int fivewire ;
1264   int isel ;
1265   int rpu ;
1266   int pressure ;
1267   unsigned int data_irq ;
1268   int data_irqf ;
1269   unsigned int pd_irq ;
1270   int pd_irqf ;
1271};
1272#line 89
1273enum wm831x_watchdog_action {
1274    WM831X_WDOG_NONE = 0,
1275    WM831X_WDOG_INTERRUPT = 1,
1276    WM831X_WDOG_RESET = 2,
1277    WM831X_WDOG_WAKE = 3
1278} ;
1279#line 96 "include/linux/mfd/wm831x/pdata.h"
1280struct wm831x_watchdog_pdata {
1281   enum wm831x_watchdog_action primary ;
1282   enum wm831x_watchdog_action secondary ;
1283   int update_gpio ;
1284   unsigned int software : 1 ;
1285};
1286#line 111 "include/linux/mfd/wm831x/pdata.h"
1287struct wm831x_pdata {
1288   int wm831x_num ;
1289   int (*pre_init)(struct wm831x *wm831x ) ;
1290   int (*post_init)(struct wm831x *wm831x ) ;
1291   bool irq_cmos ;
1292   bool disable_touch ;
1293   bool soft_shutdown ;
1294   int irq_base ;
1295   int gpio_base ;
1296   int gpio_defaults[16] ;
1297   struct wm831x_backlight_pdata *backlight ;
1298   struct wm831x_backup_pdata *backup ;
1299   struct wm831x_battery_pdata *battery ;
1300   struct wm831x_touch_pdata *touch ;
1301   struct wm831x_watchdog_pdata *watchdog ;
1302   struct wm831x_status_pdata *status[2] ;
1303   struct regulator_init_data *dcdc[4] ;
1304   struct regulator_init_data *epe[2] ;
1305   struct regulator_init_data *ldo[11] ;
1306   struct regulator_init_data *isink[2] ;
1307};
1308#line 23 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1309struct wm831x_backup {
1310   struct wm831x *wm831x ;
1311   struct power_supply backup ;
1312   char name[20] ;
1313};
1314#line 198 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1315struct __anonstruct_216 {
1316   int  : 0 ;
1317};
1318#line 1 "<compiler builtins>"
1319long __builtin_expect(long val , long res ) ;
1320#line 322 "include/linux/kernel.h"
1321extern int ( /* format attribute */  snprintf)(char *buf , size_t size , char const   *fmt 
1322                                               , ...) ;
1323#line 152 "include/linux/mutex.h"
1324void mutex_lock(struct mutex *lock ) ;
1325#line 153
1326int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) ;
1327#line 154
1328int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) ;
1329#line 168
1330int mutex_trylock(struct mutex *lock ) ;
1331#line 169
1332void mutex_unlock(struct mutex *lock ) ;
1333#line 170
1334int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) ;
1335#line 67 "include/linux/module.h"
1336int init_module(void) ;
1337#line 68
1338void cleanup_module(void) ;
1339#line 792 "include/linux/device.h"
1340extern void *dev_get_drvdata(struct device  const  *dev ) ;
1341#line 793
1342extern int dev_set_drvdata(struct device *dev , void *data ) ;
1343#line 891
1344extern int ( /* format attribute */  dev_err)(struct device  const  *dev , char const   *fmt 
1345                                              , ...) ;
1346#line 893
1347extern int ( /* format attribute */  dev_warn)(struct device  const  *dev , char const   *fmt 
1348                                               , ...) ;
1349#line 174 "include/linux/platform_device.h"
1350extern int platform_driver_register(struct platform_driver * ) ;
1351#line 175
1352extern void platform_driver_unregister(struct platform_driver * ) ;
1353#line 183
1354__inline static void *platform_get_drvdata(struct platform_device  const  *pdev )  __attribute__((__no_instrument_function__)) ;
1355#line 183 "include/linux/platform_device.h"
1356__inline static void *platform_get_drvdata(struct platform_device  const  *pdev ) 
1357{ void *tmp ;
1358  unsigned long __cil_tmp3 ;
1359  unsigned long __cil_tmp4 ;
1360  struct device  const  *__cil_tmp5 ;
1361
1362  {
1363  {
1364#line 185
1365  __cil_tmp3 = (unsigned long )pdev;
1366#line 185
1367  __cil_tmp4 = __cil_tmp3 + 16;
1368#line 185
1369  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
1370#line 185
1371  tmp = dev_get_drvdata(__cil_tmp5);
1372  }
1373#line 185
1374  return (tmp);
1375}
1376}
1377#line 188
1378__inline static void platform_set_drvdata(struct platform_device *pdev , void *data )  __attribute__((__no_instrument_function__)) ;
1379#line 188 "include/linux/platform_device.h"
1380__inline static void platform_set_drvdata(struct platform_device *pdev , void *data ) 
1381{ unsigned long __cil_tmp3 ;
1382  unsigned long __cil_tmp4 ;
1383  struct device *__cil_tmp5 ;
1384
1385  {
1386  {
1387#line 190
1388  __cil_tmp3 = (unsigned long )pdev;
1389#line 190
1390  __cil_tmp4 = __cil_tmp3 + 16;
1391#line 190
1392  __cil_tmp5 = (struct device *)__cil_tmp4;
1393#line 190
1394  dev_set_drvdata(__cil_tmp5, data);
1395  }
1396#line 191
1397  return;
1398}
1399}
1400#line 220 "include/linux/power_supply.h"
1401extern int power_supply_register(struct device *parent , struct power_supply *psy ) ;
1402#line 222
1403extern void power_supply_unregister(struct power_supply *psy ) ;
1404#line 161 "include/linux/slab.h"
1405extern void kfree(void const   * ) ;
1406#line 221 "include/linux/slub_def.h"
1407extern void *__kmalloc(size_t size , gfp_t flags ) ;
1408#line 268
1409__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
1410                                                                    gfp_t flags )  __attribute__((__no_instrument_function__)) ;
1411#line 268 "include/linux/slub_def.h"
1412__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
1413                                                                    gfp_t flags ) 
1414{ void *tmp___2 ;
1415
1416  {
1417  {
1418#line 283
1419  tmp___2 = __kmalloc(size, flags);
1420  }
1421#line 283
1422  return (tmp___2);
1423}
1424}
1425#line 349 "include/linux/slab.h"
1426__inline static void *kzalloc(size_t size , gfp_t flags )  __attribute__((__no_instrument_function__)) ;
1427#line 349 "include/linux/slab.h"
1428__inline static void *kzalloc(size_t size , gfp_t flags ) 
1429{ void *tmp ;
1430  unsigned int __cil_tmp4 ;
1431
1432  {
1433  {
1434#line 351
1435  __cil_tmp4 = flags | 32768U;
1436#line 351
1437  tmp = kmalloc(size, __cil_tmp4);
1438  }
1439#line 351
1440  return (tmp);
1441}
1442}
1443#line 402 "include/linux/mfd/wm831x/core.h"
1444extern int wm831x_reg_read(struct wm831x *wm831x , unsigned short reg ) ;
1445#line 405
1446extern void wm831x_reg_lock(struct wm831x *wm831x ) ;
1447#line 406
1448extern int wm831x_reg_unlock(struct wm831x *wm831x ) ;
1449#line 407
1450extern int wm831x_set_bits(struct wm831x *wm831x , unsigned short reg , unsigned short mask ,
1451                           unsigned short val ) ;
1452#line 214 "include/linux/mfd/wm831x/auxadc.h"
1453extern int wm831x_auxadc_read_uv(struct wm831x *wm831x , enum wm831x_auxadc input ) ;
1454#line 29 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1455static int wm831x_backup_read_voltage(struct wm831x *wm831x , enum wm831x_auxadc src ,
1456                                      union power_supply_propval *val ) 
1457{ int ret ;
1458
1459  {
1460  {
1461#line 35
1462  ret = wm831x_auxadc_read_uv(wm831x, src);
1463  }
1464#line 36
1465  if (ret >= 0) {
1466#line 37
1467    *((int *)val) = ret;
1468  } else {
1469
1470  }
1471#line 39
1472  return (ret);
1473}
1474}
1475#line 46 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1476static void wm831x_config_backup(struct wm831x *wm831x ) 
1477{ struct wm831x_pdata *wm831x_pdata ;
1478  struct wm831x_backup_pdata *pdata ;
1479  int ret ;
1480  int reg ;
1481  unsigned long __cil_tmp6 ;
1482  unsigned long __cil_tmp7 ;
1483  struct device *__cil_tmp8 ;
1484  unsigned long __cil_tmp9 ;
1485  unsigned long __cil_tmp10 ;
1486  void *__cil_tmp11 ;
1487  unsigned long __cil_tmp12 ;
1488  unsigned long __cil_tmp13 ;
1489  struct device *__cil_tmp14 ;
1490  struct device  const  *__cil_tmp15 ;
1491  unsigned long __cil_tmp16 ;
1492  unsigned long __cil_tmp17 ;
1493  struct wm831x_backup_pdata *__cil_tmp18 ;
1494  unsigned long __cil_tmp19 ;
1495  unsigned long __cil_tmp20 ;
1496  struct device *__cil_tmp21 ;
1497  struct device  const  *__cil_tmp22 ;
1498  unsigned long __cil_tmp23 ;
1499  unsigned long __cil_tmp24 ;
1500  unsigned long __cil_tmp25 ;
1501  unsigned long __cil_tmp26 ;
1502  unsigned long __cil_tmp27 ;
1503  unsigned long __cil_tmp28 ;
1504  unsigned long __cil_tmp29 ;
1505  unsigned long __cil_tmp30 ;
1506  struct device *__cil_tmp31 ;
1507  struct device  const  *__cil_tmp32 ;
1508  unsigned long __cil_tmp33 ;
1509  unsigned long __cil_tmp34 ;
1510  int __cil_tmp35 ;
1511  unsigned long __cil_tmp36 ;
1512  unsigned long __cil_tmp37 ;
1513  unsigned long __cil_tmp38 ;
1514  unsigned long __cil_tmp39 ;
1515  struct device *__cil_tmp40 ;
1516  struct device  const  *__cil_tmp41 ;
1517  unsigned long __cil_tmp42 ;
1518  unsigned long __cil_tmp43 ;
1519  int __cil_tmp44 ;
1520  unsigned long __cil_tmp45 ;
1521  unsigned long __cil_tmp46 ;
1522  struct device *__cil_tmp47 ;
1523  struct device  const  *__cil_tmp48 ;
1524  unsigned short __cil_tmp49 ;
1525  unsigned long __cil_tmp50 ;
1526  unsigned long __cil_tmp51 ;
1527  struct device *__cil_tmp52 ;
1528  struct device  const  *__cil_tmp53 ;
1529
1530  {
1531#line 48
1532  __cil_tmp6 = (unsigned long )wm831x;
1533#line 48
1534  __cil_tmp7 = __cil_tmp6 + 72;
1535#line 48
1536  __cil_tmp8 = *((struct device **)__cil_tmp7);
1537#line 48
1538  __cil_tmp9 = (unsigned long )__cil_tmp8;
1539#line 48
1540  __cil_tmp10 = __cil_tmp9 + 184;
1541#line 48
1542  __cil_tmp11 = *((void **)__cil_tmp10);
1543#line 48
1544  wm831x_pdata = (struct wm831x_pdata *)__cil_tmp11;
1545#line 52
1546  if (! wm831x_pdata) {
1547    {
1548#line 53
1549    __cil_tmp12 = (unsigned long )wm831x;
1550#line 53
1551    __cil_tmp13 = __cil_tmp12 + 72;
1552#line 53
1553    __cil_tmp14 = *((struct device **)__cil_tmp13);
1554#line 53
1555    __cil_tmp15 = (struct device  const  *)__cil_tmp14;
1556#line 53
1557    dev_warn(__cil_tmp15, "No backup battery charger configuration\n");
1558    }
1559#line 55
1560    return;
1561  } else {
1562    {
1563#line 52
1564    __cil_tmp16 = (unsigned long )wm831x_pdata;
1565#line 52
1566    __cil_tmp17 = __cil_tmp16 + 112;
1567#line 52
1568    __cil_tmp18 = *((struct wm831x_backup_pdata **)__cil_tmp17);
1569#line 52
1570    if (! __cil_tmp18) {
1571      {
1572#line 53
1573      __cil_tmp19 = (unsigned long )wm831x;
1574#line 53
1575      __cil_tmp20 = __cil_tmp19 + 72;
1576#line 53
1577      __cil_tmp21 = *((struct device **)__cil_tmp20);
1578#line 53
1579      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
1580#line 53
1581      dev_warn(__cil_tmp22, "No backup battery charger configuration\n");
1582      }
1583#line 55
1584      return;
1585    } else {
1586
1587    }
1588    }
1589  }
1590#line 58
1591  __cil_tmp23 = (unsigned long )wm831x_pdata;
1592#line 58
1593  __cil_tmp24 = __cil_tmp23 + 112;
1594#line 58
1595  pdata = *((struct wm831x_backup_pdata **)__cil_tmp24);
1596#line 60
1597  reg = 0;
1598#line 62
1599  if (*((int *)pdata)) {
1600#line 63
1601    reg = reg | 34816;
1602  } else {
1603
1604  }
1605  {
1606#line 64
1607  __cil_tmp25 = (unsigned long )pdata;
1608#line 64
1609  __cil_tmp26 = __cil_tmp25 + 4;
1610#line 64
1611  if (*((int *)__cil_tmp26)) {
1612#line 65
1613    reg = reg | 4096;
1614  } else {
1615
1616  }
1617  }
1618  {
1619#line 67
1620  __cil_tmp27 = (unsigned long )pdata;
1621#line 67
1622  __cil_tmp28 = __cil_tmp27 + 8;
1623#line 68
1624  if (*((int *)__cil_tmp28) == 2500) {
1625#line 68
1626    goto case_2500;
1627  } else
1628#line 70
1629  if (*((int *)__cil_tmp28) == 3100) {
1630#line 70
1631    goto case_3100;
1632  } else {
1633    {
1634#line 73
1635    goto switch_default;
1636#line 67
1637    if (0) {
1638      case_2500: /* CIL Label */ 
1639#line 69
1640      goto switch_break;
1641      case_3100: /* CIL Label */ 
1642#line 71
1643      reg = reg | 16;
1644#line 72
1645      goto switch_break;
1646      switch_default: /* CIL Label */ 
1647      {
1648#line 74
1649      __cil_tmp29 = (unsigned long )wm831x;
1650#line 74
1651      __cil_tmp30 = __cil_tmp29 + 72;
1652#line 74
1653      __cil_tmp31 = *((struct device **)__cil_tmp30);
1654#line 74
1655      __cil_tmp32 = (struct device  const  *)__cil_tmp31;
1656#line 74
1657      __cil_tmp33 = (unsigned long )pdata;
1658#line 74
1659      __cil_tmp34 = __cil_tmp33 + 8;
1660#line 74
1661      __cil_tmp35 = *((int *)__cil_tmp34);
1662#line 74
1663      dev_err(__cil_tmp32, "Invalid backup voltage limit %dmV\n", __cil_tmp35);
1664      }
1665    } else {
1666      switch_break: /* CIL Label */ ;
1667    }
1668    }
1669  }
1670  }
1671  {
1672#line 78
1673  __cil_tmp36 = (unsigned long )pdata;
1674#line 78
1675  __cil_tmp37 = __cil_tmp36 + 12;
1676#line 79
1677  if (*((int *)__cil_tmp37) == 100) {
1678#line 79
1679    goto case_100;
1680  } else
1681#line 81
1682  if (*((int *)__cil_tmp37) == 200) {
1683#line 81
1684    goto case_200;
1685  } else
1686#line 84
1687  if (*((int *)__cil_tmp37) == 300) {
1688#line 84
1689    goto case_300;
1690  } else
1691#line 87
1692  if (*((int *)__cil_tmp37) == 400) {
1693#line 87
1694    goto case_400;
1695  } else {
1696    {
1697#line 90
1698    goto switch_default___0;
1699#line 78
1700    if (0) {
1701      case_100: /* CIL Label */ 
1702#line 80
1703      goto switch_break___0;
1704      case_200: /* CIL Label */ 
1705#line 82
1706      reg = reg | 1;
1707#line 83
1708      goto switch_break___0;
1709      case_300: /* CIL Label */ 
1710#line 85
1711      reg = reg | 2;
1712#line 86
1713      goto switch_break___0;
1714      case_400: /* CIL Label */ 
1715#line 88
1716      reg = reg | 3;
1717#line 89
1718      goto switch_break___0;
1719      switch_default___0: /* CIL Label */ 
1720      {
1721#line 91
1722      __cil_tmp38 = (unsigned long )wm831x;
1723#line 91
1724      __cil_tmp39 = __cil_tmp38 + 72;
1725#line 91
1726      __cil_tmp40 = *((struct device **)__cil_tmp39);
1727#line 91
1728      __cil_tmp41 = (struct device  const  *)__cil_tmp40;
1729#line 91
1730      __cil_tmp42 = (unsigned long )pdata;
1731#line 91
1732      __cil_tmp43 = __cil_tmp42 + 12;
1733#line 91
1734      __cil_tmp44 = *((int *)__cil_tmp43);
1735#line 91
1736      dev_err(__cil_tmp41, "Invalid backup current limit %duA\n", __cil_tmp44);
1737      }
1738    } else {
1739      switch_break___0: /* CIL Label */ ;
1740    }
1741    }
1742  }
1743  }
1744  {
1745#line 95
1746  ret = wm831x_reg_unlock(wm831x);
1747  }
1748#line 96
1749  if (ret != 0) {
1750    {
1751#line 97
1752    __cil_tmp45 = (unsigned long )wm831x;
1753#line 97
1754    __cil_tmp46 = __cil_tmp45 + 72;
1755#line 97
1756    __cil_tmp47 = *((struct device **)__cil_tmp46);
1757#line 97
1758    __cil_tmp48 = (struct device  const  *)__cil_tmp47;
1759#line 97
1760    dev_err(__cil_tmp48, "Failed to unlock registers: %d\n", ret);
1761    }
1762#line 98
1763    return;
1764  } else {
1765
1766  }
1767  {
1768#line 101
1769  __cil_tmp49 = (unsigned short )reg;
1770#line 101
1771  ret = wm831x_set_bits(wm831x, (unsigned short)16459, (unsigned short)38931, __cil_tmp49);
1772  }
1773#line 108
1774  if (ret != 0) {
1775    {
1776#line 109
1777    __cil_tmp50 = (unsigned long )wm831x;
1778#line 109
1779    __cil_tmp51 = __cil_tmp50 + 72;
1780#line 109
1781    __cil_tmp52 = *((struct device **)__cil_tmp51);
1782#line 109
1783    __cil_tmp53 = (struct device  const  *)__cil_tmp52;
1784#line 109
1785    dev_err(__cil_tmp53, "Failed to set backup charger config: %d\n", ret);
1786    }
1787  } else {
1788
1789  }
1790  {
1791#line 112
1792  wm831x_reg_lock(wm831x);
1793  }
1794#line 113
1795  return;
1796}
1797}
1798#line 115 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1799static int wm831x_backup_get_prop(struct power_supply *psy , enum power_supply_property psp ,
1800                                  union power_supply_propval *val ) 
1801{ struct wm831x_backup *devdata ;
1802  void *tmp ;
1803  struct wm831x *wm831x ;
1804  int ret ;
1805  unsigned long __cil_tmp8 ;
1806  unsigned long __cil_tmp9 ;
1807  struct device *__cil_tmp10 ;
1808  struct device *__cil_tmp11 ;
1809  struct device  const  *__cil_tmp12 ;
1810  enum wm831x_auxadc __cil_tmp13 ;
1811
1812  {
1813  {
1814#line 119
1815  __cil_tmp8 = (unsigned long )psy;
1816#line 119
1817  __cil_tmp9 = __cil_tmp8 + 96;
1818#line 119
1819  __cil_tmp10 = *((struct device **)__cil_tmp9);
1820#line 119
1821  __cil_tmp11 = *((struct device **)__cil_tmp10);
1822#line 119
1823  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
1824#line 119
1825  tmp = dev_get_drvdata(__cil_tmp12);
1826#line 119
1827  devdata = (struct wm831x_backup *)tmp;
1828#line 120
1829  wm831x = *((struct wm831x **)devdata);
1830#line 121
1831  ret = 0;
1832#line 123
1833  ret = wm831x_reg_read(wm831x, (unsigned short)16459);
1834  }
1835#line 124
1836  if (ret < 0) {
1837#line 125
1838    return (ret);
1839  } else {
1840
1841  }
1842#line 128
1843  if ((int )psp == 0) {
1844#line 128
1845    goto case_0;
1846  } else
1847#line 135
1848  if ((int )psp == 11) {
1849#line 135
1850    goto case_11;
1851  } else
1852#line 140
1853  if ((int )psp == 3) {
1854#line 140
1855    goto case_3;
1856  } else {
1857    {
1858#line 147
1859    goto switch_default;
1860#line 127
1861    if (0) {
1862      case_0: /* CIL Label */ 
1863#line 129
1864      if (ret & 16384) {
1865#line 130
1866        *((int *)val) = 1;
1867      } else {
1868#line 132
1869        *((int *)val) = 3;
1870      }
1871#line 133
1872      goto switch_break;
1873      case_11: /* CIL Label */ 
1874      {
1875#line 136
1876      __cil_tmp13 = (enum wm831x_auxadc )10;
1877#line 136
1878      ret = wm831x_backup_read_voltage(wm831x, __cil_tmp13, val);
1879      }
1880#line 138
1881      goto switch_break;
1882      case_3: /* CIL Label */ 
1883#line 141
1884      if (ret & 16384) {
1885#line 142
1886        *((int *)val) = 1;
1887      } else {
1888#line 144
1889        *((int *)val) = 0;
1890      }
1891#line 145
1892      goto switch_break;
1893      switch_default: /* CIL Label */ 
1894#line 148
1895      ret = -22;
1896#line 149
1897      goto switch_break;
1898    } else {
1899      switch_break: /* CIL Label */ ;
1900    }
1901    }
1902  }
1903#line 152
1904  return (ret);
1905}
1906}
1907#line 155 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1908static enum power_supply_property wm831x_backup_props[3]  = {      (enum power_supply_property )0,      (enum power_supply_property )11,      (enum power_supply_property )3};
1909#line 165
1910static int wm831x_backup_probe(struct platform_device *pdev )  __attribute__((__section__(".devinit.text"),
1911__no_instrument_function__)) ;
1912#line 165 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
1913static int wm831x_backup_probe(struct platform_device *pdev ) 
1914{ struct wm831x *wm831x ;
1915  void *tmp ;
1916  struct wm831x_pdata *wm831x_pdata ;
1917  struct wm831x_backup *devdata ;
1918  struct power_supply *backup ;
1919  int ret ;
1920  void *tmp___0 ;
1921  unsigned long __cil_tmp9 ;
1922  unsigned long __cil_tmp10 ;
1923  struct device *__cil_tmp11 ;
1924  struct device  const  *__cil_tmp12 ;
1925  unsigned long __cil_tmp13 ;
1926  unsigned long __cil_tmp14 ;
1927  struct device *__cil_tmp15 ;
1928  unsigned long __cil_tmp16 ;
1929  unsigned long __cil_tmp17 ;
1930  void *__cil_tmp18 ;
1931  void *__cil_tmp19 ;
1932  unsigned long __cil_tmp20 ;
1933  unsigned long __cil_tmp21 ;
1934  void *__cil_tmp22 ;
1935  unsigned long __cil_tmp23 ;
1936  unsigned long __cil_tmp24 ;
1937  unsigned long __cil_tmp25 ;
1938  unsigned long __cil_tmp26 ;
1939  unsigned long __cil_tmp27 ;
1940  unsigned long __cil_tmp28 ;
1941  char *__cil_tmp29 ;
1942  int __cil_tmp30 ;
1943  unsigned long __cil_tmp31 ;
1944  unsigned long __cil_tmp32 ;
1945  unsigned long __cil_tmp33 ;
1946  unsigned long __cil_tmp34 ;
1947  char *__cil_tmp35 ;
1948  unsigned long __cil_tmp36 ;
1949  unsigned long __cil_tmp37 ;
1950  unsigned long __cil_tmp38 ;
1951  unsigned long __cil_tmp39 ;
1952  char *__cil_tmp40 ;
1953  unsigned long __cil_tmp41 ;
1954  unsigned long __cil_tmp42 ;
1955  unsigned long __cil_tmp43 ;
1956  unsigned long __cil_tmp44 ;
1957  char *__cil_tmp45 ;
1958  unsigned long __cil_tmp46 ;
1959  unsigned long __cil_tmp47 ;
1960  unsigned long __cil_tmp48 ;
1961  unsigned long __cil_tmp49 ;
1962  unsigned long __cil_tmp50 ;
1963  unsigned long __cil_tmp51 ;
1964  unsigned long __cil_tmp52 ;
1965  unsigned long __cil_tmp53 ;
1966  unsigned long __cil_tmp54 ;
1967  unsigned long __cil_tmp55 ;
1968  unsigned long __cil_tmp56 ;
1969  unsigned long __cil_tmp57 ;
1970  unsigned long __cil_tmp58 ;
1971  struct device *__cil_tmp59 ;
1972  void const   *__cil_tmp60 ;
1973
1974  {
1975  {
1976#line 167
1977  __cil_tmp9 = (unsigned long )pdev;
1978#line 167
1979  __cil_tmp10 = __cil_tmp9 + 16;
1980#line 167
1981  __cil_tmp11 = *((struct device **)__cil_tmp10);
1982#line 167
1983  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
1984#line 167
1985  tmp = dev_get_drvdata(__cil_tmp12);
1986#line 167
1987  wm831x = (struct wm831x *)tmp;
1988#line 168
1989  __cil_tmp13 = (unsigned long )wm831x;
1990#line 168
1991  __cil_tmp14 = __cil_tmp13 + 72;
1992#line 168
1993  __cil_tmp15 = *((struct device **)__cil_tmp14);
1994#line 168
1995  __cil_tmp16 = (unsigned long )__cil_tmp15;
1996#line 168
1997  __cil_tmp17 = __cil_tmp16 + 184;
1998#line 168
1999  __cil_tmp18 = *((void **)__cil_tmp17);
2000#line 168
2001  wm831x_pdata = (struct wm831x_pdata *)__cil_tmp18;
2002#line 173
2003  tmp___0 = kzalloc(248UL, 208U);
2004#line 173
2005  devdata = (struct wm831x_backup *)tmp___0;
2006  }
2007  {
2008#line 174
2009  __cil_tmp19 = (void *)0;
2010#line 174
2011  __cil_tmp20 = (unsigned long )__cil_tmp19;
2012#line 174
2013  __cil_tmp21 = (unsigned long )devdata;
2014#line 174
2015  if (__cil_tmp21 == __cil_tmp20) {
2016#line 175
2017    return (-12);
2018  } else {
2019
2020  }
2021  }
2022  {
2023#line 177
2024  *((struct wm831x **)devdata) = wm831x;
2025#line 178
2026  __cil_tmp22 = (void *)devdata;
2027#line 178
2028  platform_set_drvdata(pdev, __cil_tmp22);
2029#line 180
2030  __cil_tmp23 = (unsigned long )devdata;
2031#line 180
2032  __cil_tmp24 = __cil_tmp23 + 8;
2033#line 180
2034  backup = (struct power_supply *)__cil_tmp24;
2035#line 186
2036  wm831x_config_backup(wm831x);
2037  }
2038#line 188
2039  if (wm831x_pdata) {
2040#line 188
2041    if (*((int *)wm831x_pdata)) {
2042      {
2043#line 189
2044      __cil_tmp25 = 0 * 1UL;
2045#line 189
2046      __cil_tmp26 = 224 + __cil_tmp25;
2047#line 189
2048      __cil_tmp27 = (unsigned long )devdata;
2049#line 189
2050      __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
2051#line 189
2052      __cil_tmp29 = (char *)__cil_tmp28;
2053#line 189
2054      __cil_tmp30 = *((int *)wm831x_pdata);
2055#line 189
2056      snprintf(__cil_tmp29, 20UL, "wm831x-backup.%d", __cil_tmp30);
2057      }
2058    } else {
2059      {
2060#line 192
2061      __cil_tmp31 = 0 * 1UL;
2062#line 192
2063      __cil_tmp32 = 224 + __cil_tmp31;
2064#line 192
2065      __cil_tmp33 = (unsigned long )devdata;
2066#line 192
2067      __cil_tmp34 = __cil_tmp33 + __cil_tmp32;
2068#line 192
2069      __cil_tmp35 = (char *)__cil_tmp34;
2070#line 192
2071      snprintf(__cil_tmp35, 20UL, "wm831x-backup");
2072      }
2073    }
2074  } else {
2075    {
2076#line 192
2077    __cil_tmp36 = 0 * 1UL;
2078#line 192
2079    __cil_tmp37 = 224 + __cil_tmp36;
2080#line 192
2081    __cil_tmp38 = (unsigned long )devdata;
2082#line 192
2083    __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
2084#line 192
2085    __cil_tmp40 = (char *)__cil_tmp39;
2086#line 192
2087    snprintf(__cil_tmp40, 20UL, "wm831x-backup");
2088    }
2089  }
2090  {
2091#line 195
2092  __cil_tmp41 = 0 * 1UL;
2093#line 195
2094  __cil_tmp42 = 224 + __cil_tmp41;
2095#line 195
2096  __cil_tmp43 = (unsigned long )devdata;
2097#line 195
2098  __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
2099#line 195
2100  __cil_tmp45 = (char *)__cil_tmp44;
2101#line 195
2102  *((char const   **)backup) = (char const   *)__cil_tmp45;
2103#line 196
2104  __cil_tmp46 = (unsigned long )backup;
2105#line 196
2106  __cil_tmp47 = __cil_tmp46 + 8;
2107#line 196
2108  *((enum power_supply_type *)__cil_tmp47) = (enum power_supply_type )1;
2109#line 197
2110  __cil_tmp48 = (unsigned long )backup;
2111#line 197
2112  __cil_tmp49 = __cil_tmp48 + 16;
2113#line 197
2114  __cil_tmp50 = 0 * 4UL;
2115#line 197
2116  __cil_tmp51 = (unsigned long )(wm831x_backup_props) + __cil_tmp50;
2117#line 197
2118  *((enum power_supply_property **)__cil_tmp49) = (enum power_supply_property *)__cil_tmp51;
2119#line 198
2120  __cil_tmp52 = (unsigned long )backup;
2121#line 198
2122  __cil_tmp53 = __cil_tmp52 + 24;
2123#line 198
2124  __cil_tmp54 = 12UL / 4UL;
2125#line 198
2126  *((size_t *)__cil_tmp53) = __cil_tmp54 + 0UL;
2127#line 199
2128  __cil_tmp55 = (unsigned long )backup;
2129#line 199
2130  __cil_tmp56 = __cil_tmp55 + 48;
2131#line 199
2132  *((int (**)(struct power_supply *psy , enum power_supply_property psp , union power_supply_propval *val ))__cil_tmp56) = & wm831x_backup_get_prop;
2133#line 200
2134  __cil_tmp57 = (unsigned long )pdev;
2135#line 200
2136  __cil_tmp58 = __cil_tmp57 + 16;
2137#line 200
2138  __cil_tmp59 = (struct device *)__cil_tmp58;
2139#line 200
2140  ret = power_supply_register(__cil_tmp59, backup);
2141  }
2142#line 201
2143  if (ret) {
2144#line 202
2145    goto err_kmalloc;
2146  } else {
2147
2148  }
2149#line 204
2150  return (ret);
2151  err_kmalloc: 
2152  {
2153#line 207
2154  __cil_tmp60 = (void const   *)devdata;
2155#line 207
2156  kfree(__cil_tmp60);
2157  }
2158#line 208
2159  return (ret);
2160}
2161}
2162#line 211
2163static int wm831x_backup_remove(struct platform_device *pdev )  __attribute__((__section__(".devexit.text"),
2164__no_instrument_function__)) ;
2165#line 211 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2166static int wm831x_backup_remove(struct platform_device *pdev ) 
2167{ struct wm831x_backup *devdata ;
2168  void *tmp ;
2169  struct platform_device  const  *__cil_tmp4 ;
2170  unsigned long __cil_tmp5 ;
2171  unsigned long __cil_tmp6 ;
2172  struct power_supply *__cil_tmp7 ;
2173  unsigned long __cil_tmp8 ;
2174  unsigned long __cil_tmp9 ;
2175  char const   *__cil_tmp10 ;
2176  void const   *__cil_tmp11 ;
2177  void const   *__cil_tmp12 ;
2178
2179  {
2180  {
2181#line 213
2182  __cil_tmp4 = (struct platform_device  const  *)pdev;
2183#line 213
2184  tmp = platform_get_drvdata(__cil_tmp4);
2185#line 213
2186  devdata = (struct wm831x_backup *)tmp;
2187#line 215
2188  __cil_tmp5 = (unsigned long )devdata;
2189#line 215
2190  __cil_tmp6 = __cil_tmp5 + 8;
2191#line 215
2192  __cil_tmp7 = (struct power_supply *)__cil_tmp6;
2193#line 215
2194  power_supply_unregister(__cil_tmp7);
2195#line 216
2196  __cil_tmp8 = (unsigned long )devdata;
2197#line 216
2198  __cil_tmp9 = __cil_tmp8 + 8;
2199#line 216
2200  __cil_tmp10 = *((char const   **)__cil_tmp9);
2201#line 216
2202  __cil_tmp11 = (void const   *)__cil_tmp10;
2203#line 216
2204  kfree(__cil_tmp11);
2205#line 217
2206  __cil_tmp12 = (void const   *)devdata;
2207#line 217
2208  kfree(__cil_tmp12);
2209  }
2210#line 219
2211  return (0);
2212}
2213}
2214#line 222 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2215static struct platform_driver wm831x_backup_driver  =    {& wm831x_backup_probe, & wm831x_backup_remove, (void (*)(struct platform_device * ))0,
2216    (int (*)(struct platform_device * , pm_message_t state ))0, (int (*)(struct platform_device * ))0,
2217    {"wm831x-backup", (struct bus_type *)0, (struct module *)0, (char const   *)0,
2218     (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device *dev ))0,
2219     (int (*)(struct device *dev ))0, (void (*)(struct device *dev ))0, (int (*)(struct device *dev ,
2220                                                                                 pm_message_t state ))0,
2221     (int (*)(struct device *dev ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
2222     (struct driver_private *)0}, (struct platform_device_id  const  *)0};
2223#line 230
2224static int wm831x_backup_driver_init(void)  __attribute__((__section__(".init.text"),
2225__no_instrument_function__)) ;
2226#line 230 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2227static int wm831x_backup_driver_init(void) 
2228{ int tmp ;
2229
2230  {
2231  {
2232#line 230
2233  tmp = platform_driver_register(& wm831x_backup_driver);
2234  }
2235#line 230
2236  return (tmp);
2237}
2238}
2239#line 230 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2240int init_module(void) 
2241{ int tmp ;
2242
2243  {
2244  {
2245#line 230
2246  tmp = wm831x_backup_driver_init();
2247  }
2248#line 230
2249  return (tmp);
2250}
2251}
2252#line 230
2253static void wm831x_backup_driver_exit(void)  __attribute__((__section__(".exit.text"),
2254__no_instrument_function__)) ;
2255#line 230 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2256static void wm831x_backup_driver_exit(void) 
2257{ 
2258
2259  {
2260  {
2261#line 230
2262  platform_driver_unregister(& wm831x_backup_driver);
2263  }
2264#line 230
2265  return;
2266}
2267}
2268#line 230 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2269void cleanup_module(void) 
2270{ 
2271
2272  {
2273  {
2274#line 230
2275  wm831x_backup_driver_exit();
2276  }
2277#line 230
2278  return;
2279}
2280}
2281#line 232 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2282static char const   __mod_description232[59]  __attribute__((__used__, __unused__,
2283__section__(".modinfo"), __aligned__(1)))  = 
2284#line 232
2285  {      (char const   )'d',      (char const   )'e',      (char const   )'s',      (char const   )'c', 
2286        (char const   )'r',      (char const   )'i',      (char const   )'p',      (char const   )'t', 
2287        (char const   )'i',      (char const   )'o',      (char const   )'n',      (char const   )'=', 
2288        (char const   )'B',      (char const   )'a',      (char const   )'c',      (char const   )'k', 
2289        (char const   )'u',      (char const   )'p',      (char const   )' ',      (char const   )'b', 
2290        (char const   )'a',      (char const   )'t',      (char const   )'t',      (char const   )'e', 
2291        (char const   )'r',      (char const   )'y',      (char const   )' ',      (char const   )'c', 
2292        (char const   )'h',      (char const   )'a',      (char const   )'r',      (char const   )'g', 
2293        (char const   )'e',      (char const   )'r',      (char const   )' ',      (char const   )'d', 
2294        (char const   )'r',      (char const   )'i',      (char const   )'v',      (char const   )'e', 
2295        (char const   )'r',      (char const   )' ',      (char const   )'f',      (char const   )'o', 
2296        (char const   )'r',      (char const   )' ',      (char const   )'W',      (char const   )'M', 
2297        (char const   )'8',      (char const   )'3',      (char const   )'1',      (char const   )'x', 
2298        (char const   )' ',      (char const   )'P',      (char const   )'M',      (char const   )'I', 
2299        (char const   )'C',      (char const   )'s',      (char const   )'\000'};
2300#line 233 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2301static char const   __mod_author233[56]  __attribute__((__used__, __unused__, __section__(".modinfo"),
2302__aligned__(1)))  = 
2303#line 233
2304  {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'h', 
2305        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'M', 
2306        (char const   )'a',      (char const   )'r',      (char const   )'k',      (char const   )' ', 
2307        (char const   )'B',      (char const   )'r',      (char const   )'o',      (char const   )'w', 
2308        (char const   )'n',      (char const   )' ',      (char const   )'<',      (char const   )'b', 
2309        (char const   )'r',      (char const   )'o',      (char const   )'o',      (char const   )'n', 
2310        (char const   )'i',      (char const   )'e',      (char const   )'@',      (char const   )'o', 
2311        (char const   )'p',      (char const   )'e',      (char const   )'n',      (char const   )'s', 
2312        (char const   )'o',      (char const   )'u',      (char const   )'r',      (char const   )'c', 
2313        (char const   )'e',      (char const   )'.',      (char const   )'w',      (char const   )'o', 
2314        (char const   )'l',      (char const   )'f',      (char const   )'s',      (char const   )'o', 
2315        (char const   )'n',      (char const   )'m',      (char const   )'i',      (char const   )'c', 
2316        (char const   )'r',      (char const   )'o',      (char const   )'.',      (char const   )'c', 
2317        (char const   )'o',      (char const   )'m',      (char const   )'>',      (char const   )'\000'};
2318#line 234 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2319static char const   __mod_license234[12]  __attribute__((__used__, __unused__, __section__(".modinfo"),
2320__aligned__(1)))  = 
2321#line 234
2322  {      (char const   )'l',      (char const   )'i',      (char const   )'c',      (char const   )'e', 
2323        (char const   )'n',      (char const   )'s',      (char const   )'e',      (char const   )'=', 
2324        (char const   )'G',      (char const   )'P',      (char const   )'L',      (char const   )'\000'};
2325#line 235 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2326static char const   __mod_alias235[29]  __attribute__((__used__, __unused__, __section__(".modinfo"),
2327__aligned__(1)))  = 
2328#line 235
2329  {      (char const   )'a',      (char const   )'l',      (char const   )'i',      (char const   )'a', 
2330        (char const   )'s',      (char const   )'=',      (char const   )'p',      (char const   )'l', 
2331        (char const   )'a',      (char const   )'t',      (char const   )'f',      (char const   )'o', 
2332        (char const   )'r',      (char const   )'m',      (char const   )':',      (char const   )'w', 
2333        (char const   )'m',      (char const   )'8',      (char const   )'3',      (char const   )'1', 
2334        (char const   )'x',      (char const   )'-',      (char const   )'b',      (char const   )'a', 
2335        (char const   )'c',      (char const   )'k',      (char const   )'u',      (char const   )'p', 
2336        (char const   )'\000'};
2337#line 253
2338void ldv_check_final_state(void) ;
2339#line 256
2340extern void ldv_check_return_value(int res ) ;
2341#line 259
2342extern void ldv_initialize(void) ;
2343#line 262
2344extern int __VERIFIER_nondet_int(void) ;
2345#line 265 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2346int LDV_IN_INTERRUPT  ;
2347#line 280 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2348static int res_wm831x_backup_probe_3  ;
2349#line 268 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2350void main(void) 
2351{ struct platform_device *var_group1 ;
2352  int ldv_s_wm831x_backup_driver_platform_driver ;
2353  int tmp ;
2354  int tmp___0 ;
2355  int __cil_tmp5 ;
2356
2357  {
2358  {
2359#line 288
2360  LDV_IN_INTERRUPT = 1;
2361#line 297
2362  ldv_initialize();
2363#line 298
2364  ldv_s_wm831x_backup_driver_platform_driver = 0;
2365  }
2366  {
2367#line 301
2368  while (1) {
2369    while_continue: /* CIL Label */ ;
2370    {
2371#line 301
2372    tmp___0 = __VERIFIER_nondet_int();
2373    }
2374#line 301
2375    if (tmp___0) {
2376
2377    } else {
2378      {
2379#line 301
2380      __cil_tmp5 = ldv_s_wm831x_backup_driver_platform_driver == 0;
2381#line 301
2382      if (! __cil_tmp5) {
2383
2384      } else {
2385#line 301
2386        goto while_break;
2387      }
2388      }
2389    }
2390    {
2391#line 305
2392    tmp = __VERIFIER_nondet_int();
2393    }
2394#line 307
2395    if (tmp == 0) {
2396#line 307
2397      goto case_0;
2398    } else {
2399      {
2400#line 326
2401      goto switch_default;
2402#line 305
2403      if (0) {
2404        case_0: /* CIL Label */ 
2405#line 310
2406        if (ldv_s_wm831x_backup_driver_platform_driver == 0) {
2407          {
2408#line 315
2409          res_wm831x_backup_probe_3 = wm831x_backup_probe(var_group1);
2410#line 316
2411          ldv_check_return_value(res_wm831x_backup_probe_3);
2412          }
2413#line 317
2414          if (res_wm831x_backup_probe_3) {
2415#line 318
2416            goto ldv_module_exit;
2417          } else {
2418
2419          }
2420#line 319
2421          ldv_s_wm831x_backup_driver_platform_driver = 0;
2422        } else {
2423
2424        }
2425#line 325
2426        goto switch_break;
2427        switch_default: /* CIL Label */ 
2428#line 326
2429        goto switch_break;
2430      } else {
2431        switch_break: /* CIL Label */ ;
2432      }
2433      }
2434    }
2435  }
2436  while_break: /* CIL Label */ ;
2437  }
2438  ldv_module_exit: 
2439  {
2440#line 335
2441  ldv_check_final_state();
2442  }
2443#line 338
2444  return;
2445}
2446}
2447#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast-assert.h"
2448void ldv_blast_assert(void) 
2449{ 
2450
2451  {
2452  ERROR: 
2453#line 6
2454  goto ERROR;
2455}
2456}
2457#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast.h"
2458extern int __VERIFIER_nondet_int(void) ;
2459#line 19 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2460int ldv_mutex  =    1;
2461#line 22 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2462int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) 
2463{ int nondetermined ;
2464
2465  {
2466#line 29
2467  if (ldv_mutex == 1) {
2468
2469  } else {
2470    {
2471#line 29
2472    ldv_blast_assert();
2473    }
2474  }
2475  {
2476#line 32
2477  nondetermined = __VERIFIER_nondet_int();
2478  }
2479#line 35
2480  if (nondetermined) {
2481#line 38
2482    ldv_mutex = 2;
2483#line 40
2484    return (0);
2485  } else {
2486#line 45
2487    return (-4);
2488  }
2489}
2490}
2491#line 50 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2492int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) 
2493{ int nondetermined ;
2494
2495  {
2496#line 57
2497  if (ldv_mutex == 1) {
2498
2499  } else {
2500    {
2501#line 57
2502    ldv_blast_assert();
2503    }
2504  }
2505  {
2506#line 60
2507  nondetermined = __VERIFIER_nondet_int();
2508  }
2509#line 63
2510  if (nondetermined) {
2511#line 66
2512    ldv_mutex = 2;
2513#line 68
2514    return (0);
2515  } else {
2516#line 73
2517    return (-4);
2518  }
2519}
2520}
2521#line 78 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2522int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) 
2523{ int atomic_value_after_dec ;
2524
2525  {
2526#line 83
2527  if (ldv_mutex == 1) {
2528
2529  } else {
2530    {
2531#line 83
2532    ldv_blast_assert();
2533    }
2534  }
2535  {
2536#line 86
2537  atomic_value_after_dec = __VERIFIER_nondet_int();
2538  }
2539#line 89
2540  if (atomic_value_after_dec == 0) {
2541#line 92
2542    ldv_mutex = 2;
2543#line 94
2544    return (1);
2545  } else {
2546
2547  }
2548#line 98
2549  return (0);
2550}
2551}
2552#line 103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2553void mutex_lock(struct mutex *lock ) 
2554{ 
2555
2556  {
2557#line 108
2558  if (ldv_mutex == 1) {
2559
2560  } else {
2561    {
2562#line 108
2563    ldv_blast_assert();
2564    }
2565  }
2566#line 110
2567  ldv_mutex = 2;
2568#line 111
2569  return;
2570}
2571}
2572#line 114 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2573int mutex_trylock(struct mutex *lock ) 
2574{ int nondetermined ;
2575
2576  {
2577#line 121
2578  if (ldv_mutex == 1) {
2579
2580  } else {
2581    {
2582#line 121
2583    ldv_blast_assert();
2584    }
2585  }
2586  {
2587#line 124
2588  nondetermined = __VERIFIER_nondet_int();
2589  }
2590#line 127
2591  if (nondetermined) {
2592#line 130
2593    ldv_mutex = 2;
2594#line 132
2595    return (1);
2596  } else {
2597#line 137
2598    return (0);
2599  }
2600}
2601}
2602#line 142 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2603void mutex_unlock(struct mutex *lock ) 
2604{ 
2605
2606  {
2607#line 147
2608  if (ldv_mutex == 2) {
2609
2610  } else {
2611    {
2612#line 147
2613    ldv_blast_assert();
2614    }
2615  }
2616#line 149
2617  ldv_mutex = 1;
2618#line 150
2619  return;
2620}
2621}
2622#line 153 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2623void ldv_check_final_state(void) 
2624{ 
2625
2626  {
2627#line 156
2628  if (ldv_mutex == 1) {
2629
2630  } else {
2631    {
2632#line 156
2633    ldv_blast_assert();
2634    }
2635  }
2636#line 157
2637  return;
2638}
2639}
2640#line 347 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/1059/dscv_tempdir/dscv/ri/32_1/drivers/power/wm831x_backup.c.common.c"
2641long s__builtin_expect(long val , long res ) 
2642{ 
2643
2644  {
2645#line 348
2646  return (val);
2647}
2648}