Showing error 1171

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--power--max8903_charger.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 3619
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 43 "include/asm-generic/int-ll64.h"
  11typedef unsigned char u8;
  12#line 45 "include/asm-generic/int-ll64.h"
  13typedef short s16;
  14#line 46 "include/asm-generic/int-ll64.h"
  15typedef unsigned short u16;
  16#line 48 "include/asm-generic/int-ll64.h"
  17typedef int s32;
  18#line 49 "include/asm-generic/int-ll64.h"
  19typedef unsigned int u32;
  20#line 51 "include/asm-generic/int-ll64.h"
  21typedef long long s64;
  22#line 52 "include/asm-generic/int-ll64.h"
  23typedef unsigned long long u64;
  24#line 14 "include/asm-generic/posix_types.h"
  25typedef long __kernel_long_t;
  26#line 15 "include/asm-generic/posix_types.h"
  27typedef unsigned long __kernel_ulong_t;
  28#line 75 "include/asm-generic/posix_types.h"
  29typedef __kernel_ulong_t __kernel_size_t;
  30#line 76 "include/asm-generic/posix_types.h"
  31typedef __kernel_long_t __kernel_ssize_t;
  32#line 91 "include/asm-generic/posix_types.h"
  33typedef long long __kernel_loff_t;
  34#line 21 "include/linux/types.h"
  35typedef __u32 __kernel_dev_t;
  36#line 24 "include/linux/types.h"
  37typedef __kernel_dev_t dev_t;
  38#line 27 "include/linux/types.h"
  39typedef unsigned short umode_t;
  40#line 38 "include/linux/types.h"
  41typedef _Bool bool;
  42#line 54 "include/linux/types.h"
  43typedef __kernel_loff_t loff_t;
  44#line 63 "include/linux/types.h"
  45typedef __kernel_size_t size_t;
  46#line 68 "include/linux/types.h"
  47typedef __kernel_ssize_t ssize_t;
  48#line 202 "include/linux/types.h"
  49typedef unsigned int gfp_t;
  50#line 206 "include/linux/types.h"
  51typedef u64 phys_addr_t;
  52#line 211 "include/linux/types.h"
  53typedef phys_addr_t resource_size_t;
  54#line 221 "include/linux/types.h"
  55struct __anonstruct_atomic_t_6 {
  56   int counter ;
  57};
  58#line 221 "include/linux/types.h"
  59typedef struct __anonstruct_atomic_t_6 atomic_t;
  60#line 226 "include/linux/types.h"
  61struct __anonstruct_atomic64_t_7 {
  62   long counter ;
  63};
  64#line 226 "include/linux/types.h"
  65typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  66#line 227 "include/linux/types.h"
  67struct list_head {
  68   struct list_head *next ;
  69   struct list_head *prev ;
  70};
  71#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  72struct module;
  73#line 55
  74struct module;
  75#line 146 "include/linux/init.h"
  76typedef void (*ctor_fn_t)(void);
  77#line 305 "include/linux/printk.h"
  78struct _ddebug {
  79   char const   *modname ;
  80   char const   *function ;
  81   char const   *filename ;
  82   char const   *format ;
  83   unsigned int lineno : 18 ;
  84   unsigned char flags ;
  85};
  86#line 46 "include/linux/dynamic_debug.h"
  87struct device;
  88#line 46
  89struct device;
  90#line 57
  91struct completion;
  92#line 57
  93struct completion;
  94#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
  95struct page;
  96#line 58
  97struct page;
  98#line 26 "include/asm-generic/getorder.h"
  99struct task_struct;
 100#line 26
 101struct task_struct;
 102#line 290 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 103struct file;
 104#line 290
 105struct file;
 106#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 107struct arch_spinlock;
 108#line 327
 109struct arch_spinlock;
 110#line 306 "include/linux/bitmap.h"
 111struct bug_entry {
 112   int bug_addr_disp ;
 113   int file_disp ;
 114   unsigned short line ;
 115   unsigned short flags ;
 116};
 117#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 118struct static_key;
 119#line 234
 120struct static_key;
 121#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 122struct kmem_cache;
 123#line 23 "include/asm-generic/atomic-long.h"
 124typedef atomic64_t atomic_long_t;
 125#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 126typedef u16 __ticket_t;
 127#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 128typedef u32 __ticketpair_t;
 129#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 130struct __raw_tickets {
 131   __ticket_t head ;
 132   __ticket_t tail ;
 133};
 134#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 135union __anonunion_ldv_5907_29 {
 136   __ticketpair_t head_tail ;
 137   struct __raw_tickets tickets ;
 138};
 139#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 140struct arch_spinlock {
 141   union __anonunion_ldv_5907_29 ldv_5907 ;
 142};
 143#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 144typedef struct arch_spinlock arch_spinlock_t;
 145#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 146struct __anonstruct_ldv_5914_31 {
 147   u32 read ;
 148   s32 write ;
 149};
 150#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 151union __anonunion_arch_rwlock_t_30 {
 152   s64 lock ;
 153   struct __anonstruct_ldv_5914_31 ldv_5914 ;
 154};
 155#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 156typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
 157#line 34
 158struct lockdep_map;
 159#line 34
 160struct lockdep_map;
 161#line 55 "include/linux/debug_locks.h"
 162struct stack_trace {
 163   unsigned int nr_entries ;
 164   unsigned int max_entries ;
 165   unsigned long *entries ;
 166   int skip ;
 167};
 168#line 26 "include/linux/stacktrace.h"
 169struct lockdep_subclass_key {
 170   char __one_byte ;
 171};
 172#line 53 "include/linux/lockdep.h"
 173struct lock_class_key {
 174   struct lockdep_subclass_key subkeys[8U] ;
 175};
 176#line 59 "include/linux/lockdep.h"
 177struct lock_class {
 178   struct list_head hash_entry ;
 179   struct list_head lock_entry ;
 180   struct lockdep_subclass_key *key ;
 181   unsigned int subclass ;
 182   unsigned int dep_gen_id ;
 183   unsigned long usage_mask ;
 184   struct stack_trace usage_traces[13U] ;
 185   struct list_head locks_after ;
 186   struct list_head locks_before ;
 187   unsigned int version ;
 188   unsigned long ops ;
 189   char const   *name ;
 190   int name_version ;
 191   unsigned long contention_point[4U] ;
 192   unsigned long contending_point[4U] ;
 193};
 194#line 144 "include/linux/lockdep.h"
 195struct lockdep_map {
 196   struct lock_class_key *key ;
 197   struct lock_class *class_cache[2U] ;
 198   char const   *name ;
 199   int cpu ;
 200   unsigned long ip ;
 201};
 202#line 556 "include/linux/lockdep.h"
 203struct raw_spinlock {
 204   arch_spinlock_t raw_lock ;
 205   unsigned int magic ;
 206   unsigned int owner_cpu ;
 207   void *owner ;
 208   struct lockdep_map dep_map ;
 209};
 210#line 32 "include/linux/spinlock_types.h"
 211typedef struct raw_spinlock raw_spinlock_t;
 212#line 33 "include/linux/spinlock_types.h"
 213struct __anonstruct_ldv_6122_33 {
 214   u8 __padding[24U] ;
 215   struct lockdep_map dep_map ;
 216};
 217#line 33 "include/linux/spinlock_types.h"
 218union __anonunion_ldv_6123_32 {
 219   struct raw_spinlock rlock ;
 220   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 221};
 222#line 33 "include/linux/spinlock_types.h"
 223struct spinlock {
 224   union __anonunion_ldv_6123_32 ldv_6123 ;
 225};
 226#line 76 "include/linux/spinlock_types.h"
 227typedef struct spinlock spinlock_t;
 228#line 23 "include/linux/rwlock_types.h"
 229struct __anonstruct_rwlock_t_34 {
 230   arch_rwlock_t raw_lock ;
 231   unsigned int magic ;
 232   unsigned int owner_cpu ;
 233   void *owner ;
 234   struct lockdep_map dep_map ;
 235};
 236#line 23 "include/linux/rwlock_types.h"
 237typedef struct __anonstruct_rwlock_t_34 rwlock_t;
 238#line 48 "include/linux/wait.h"
 239struct __wait_queue_head {
 240   spinlock_t lock ;
 241   struct list_head task_list ;
 242};
 243#line 53 "include/linux/wait.h"
 244typedef struct __wait_queue_head wait_queue_head_t;
 245#line 670 "include/linux/mmzone.h"
 246struct mutex {
 247   atomic_t count ;
 248   spinlock_t wait_lock ;
 249   struct list_head wait_list ;
 250   struct task_struct *owner ;
 251   char const   *name ;
 252   void *magic ;
 253   struct lockdep_map dep_map ;
 254};
 255#line 171 "include/linux/mutex.h"
 256struct rw_semaphore;
 257#line 171
 258struct rw_semaphore;
 259#line 172 "include/linux/mutex.h"
 260struct rw_semaphore {
 261   long count ;
 262   raw_spinlock_t wait_lock ;
 263   struct list_head wait_list ;
 264   struct lockdep_map dep_map ;
 265};
 266#line 128 "include/linux/rwsem.h"
 267struct completion {
 268   unsigned int done ;
 269   wait_queue_head_t wait ;
 270};
 271#line 139 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/e820.h"
 272struct resource {
 273   resource_size_t start ;
 274   resource_size_t end ;
 275   char const   *name ;
 276   unsigned long flags ;
 277   struct resource *parent ;
 278   struct resource *sibling ;
 279   struct resource *child ;
 280};
 281#line 312 "include/linux/jiffies.h"
 282union ktime {
 283   s64 tv64 ;
 284};
 285#line 59 "include/linux/ktime.h"
 286typedef union ktime ktime_t;
 287#line 341
 288struct tvec_base;
 289#line 341
 290struct tvec_base;
 291#line 342 "include/linux/ktime.h"
 292struct timer_list {
 293   struct list_head entry ;
 294   unsigned long expires ;
 295   struct tvec_base *base ;
 296   void (*function)(unsigned long  ) ;
 297   unsigned long data ;
 298   int slack ;
 299   int start_pid ;
 300   void *start_site ;
 301   char start_comm[16U] ;
 302   struct lockdep_map lockdep_map ;
 303};
 304#line 302 "include/linux/timer.h"
 305struct work_struct;
 306#line 302
 307struct work_struct;
 308#line 45 "include/linux/workqueue.h"
 309struct work_struct {
 310   atomic_long_t data ;
 311   struct list_head entry ;
 312   void (*func)(struct work_struct * ) ;
 313   struct lockdep_map lockdep_map ;
 314};
 315#line 46 "include/linux/pm.h"
 316struct pm_message {
 317   int event ;
 318};
 319#line 52 "include/linux/pm.h"
 320typedef struct pm_message pm_message_t;
 321#line 53 "include/linux/pm.h"
 322struct dev_pm_ops {
 323   int (*prepare)(struct device * ) ;
 324   void (*complete)(struct device * ) ;
 325   int (*suspend)(struct device * ) ;
 326   int (*resume)(struct device * ) ;
 327   int (*freeze)(struct device * ) ;
 328   int (*thaw)(struct device * ) ;
 329   int (*poweroff)(struct device * ) ;
 330   int (*restore)(struct device * ) ;
 331   int (*suspend_late)(struct device * ) ;
 332   int (*resume_early)(struct device * ) ;
 333   int (*freeze_late)(struct device * ) ;
 334   int (*thaw_early)(struct device * ) ;
 335   int (*poweroff_late)(struct device * ) ;
 336   int (*restore_early)(struct device * ) ;
 337   int (*suspend_noirq)(struct device * ) ;
 338   int (*resume_noirq)(struct device * ) ;
 339   int (*freeze_noirq)(struct device * ) ;
 340   int (*thaw_noirq)(struct device * ) ;
 341   int (*poweroff_noirq)(struct device * ) ;
 342   int (*restore_noirq)(struct device * ) ;
 343   int (*runtime_suspend)(struct device * ) ;
 344   int (*runtime_resume)(struct device * ) ;
 345   int (*runtime_idle)(struct device * ) ;
 346};
 347#line 289
 348enum rpm_status {
 349    RPM_ACTIVE = 0,
 350    RPM_RESUMING = 1,
 351    RPM_SUSPENDED = 2,
 352    RPM_SUSPENDING = 3
 353} ;
 354#line 296
 355enum rpm_request {
 356    RPM_REQ_NONE = 0,
 357    RPM_REQ_IDLE = 1,
 358    RPM_REQ_SUSPEND = 2,
 359    RPM_REQ_AUTOSUSPEND = 3,
 360    RPM_REQ_RESUME = 4
 361} ;
 362#line 304
 363struct wakeup_source;
 364#line 304
 365struct wakeup_source;
 366#line 494 "include/linux/pm.h"
 367struct pm_subsys_data {
 368   spinlock_t lock ;
 369   unsigned int refcount ;
 370};
 371#line 499
 372struct dev_pm_qos_request;
 373#line 499
 374struct pm_qos_constraints;
 375#line 499 "include/linux/pm.h"
 376struct dev_pm_info {
 377   pm_message_t power_state ;
 378   unsigned char can_wakeup : 1 ;
 379   unsigned char async_suspend : 1 ;
 380   bool is_prepared ;
 381   bool is_suspended ;
 382   bool ignore_children ;
 383   spinlock_t lock ;
 384   struct list_head entry ;
 385   struct completion completion ;
 386   struct wakeup_source *wakeup ;
 387   bool wakeup_path ;
 388   struct timer_list suspend_timer ;
 389   unsigned long timer_expires ;
 390   struct work_struct work ;
 391   wait_queue_head_t wait_queue ;
 392   atomic_t usage_count ;
 393   atomic_t child_count ;
 394   unsigned char disable_depth : 3 ;
 395   unsigned char idle_notification : 1 ;
 396   unsigned char request_pending : 1 ;
 397   unsigned char deferred_resume : 1 ;
 398   unsigned char run_wake : 1 ;
 399   unsigned char runtime_auto : 1 ;
 400   unsigned char no_callbacks : 1 ;
 401   unsigned char irq_safe : 1 ;
 402   unsigned char use_autosuspend : 1 ;
 403   unsigned char timer_autosuspends : 1 ;
 404   enum rpm_request request ;
 405   enum rpm_status runtime_status ;
 406   int runtime_error ;
 407   int autosuspend_delay ;
 408   unsigned long last_busy ;
 409   unsigned long active_jiffies ;
 410   unsigned long suspended_jiffies ;
 411   unsigned long accounting_timestamp ;
 412   ktime_t suspend_time ;
 413   s64 max_time_suspended_ns ;
 414   struct dev_pm_qos_request *pq_req ;
 415   struct pm_subsys_data *subsys_data ;
 416   struct pm_qos_constraints *constraints ;
 417};
 418#line 558 "include/linux/pm.h"
 419struct dev_pm_domain {
 420   struct dev_pm_ops ops ;
 421};
 422#line 18 "include/asm-generic/pci_iomap.h"
 423struct vm_area_struct;
 424#line 18
 425struct vm_area_struct;
 426#line 18 "include/linux/elf.h"
 427typedef __u64 Elf64_Addr;
 428#line 19 "include/linux/elf.h"
 429typedef __u16 Elf64_Half;
 430#line 23 "include/linux/elf.h"
 431typedef __u32 Elf64_Word;
 432#line 24 "include/linux/elf.h"
 433typedef __u64 Elf64_Xword;
 434#line 193 "include/linux/elf.h"
 435struct elf64_sym {
 436   Elf64_Word st_name ;
 437   unsigned char st_info ;
 438   unsigned char st_other ;
 439   Elf64_Half st_shndx ;
 440   Elf64_Addr st_value ;
 441   Elf64_Xword st_size ;
 442};
 443#line 201 "include/linux/elf.h"
 444typedef struct elf64_sym Elf64_Sym;
 445#line 445
 446struct sock;
 447#line 445
 448struct sock;
 449#line 446
 450struct kobject;
 451#line 446
 452struct kobject;
 453#line 447
 454enum kobj_ns_type {
 455    KOBJ_NS_TYPE_NONE = 0,
 456    KOBJ_NS_TYPE_NET = 1,
 457    KOBJ_NS_TYPES = 2
 458} ;
 459#line 453 "include/linux/elf.h"
 460struct kobj_ns_type_operations {
 461   enum kobj_ns_type type ;
 462   void *(*grab_current_ns)(void) ;
 463   void const   *(*netlink_ns)(struct sock * ) ;
 464   void const   *(*initial_ns)(void) ;
 465   void (*drop_ns)(void * ) ;
 466};
 467#line 57 "include/linux/kobject_ns.h"
 468struct attribute {
 469   char const   *name ;
 470   umode_t mode ;
 471   struct lock_class_key *key ;
 472   struct lock_class_key skey ;
 473};
 474#line 33 "include/linux/sysfs.h"
 475struct attribute_group {
 476   char const   *name ;
 477   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 478   struct attribute **attrs ;
 479};
 480#line 62 "include/linux/sysfs.h"
 481struct bin_attribute {
 482   struct attribute attr ;
 483   size_t size ;
 484   void *private ;
 485   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 486                   loff_t  , size_t  ) ;
 487   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 488                    loff_t  , size_t  ) ;
 489   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 490};
 491#line 98 "include/linux/sysfs.h"
 492struct sysfs_ops {
 493   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 494   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 495   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 496};
 497#line 117
 498struct sysfs_dirent;
 499#line 117
 500struct sysfs_dirent;
 501#line 182 "include/linux/sysfs.h"
 502struct kref {
 503   atomic_t refcount ;
 504};
 505#line 49 "include/linux/kobject.h"
 506struct kset;
 507#line 49
 508struct kobj_type;
 509#line 49 "include/linux/kobject.h"
 510struct kobject {
 511   char const   *name ;
 512   struct list_head entry ;
 513   struct kobject *parent ;
 514   struct kset *kset ;
 515   struct kobj_type *ktype ;
 516   struct sysfs_dirent *sd ;
 517   struct kref kref ;
 518   unsigned char state_initialized : 1 ;
 519   unsigned char state_in_sysfs : 1 ;
 520   unsigned char state_add_uevent_sent : 1 ;
 521   unsigned char state_remove_uevent_sent : 1 ;
 522   unsigned char uevent_suppress : 1 ;
 523};
 524#line 107 "include/linux/kobject.h"
 525struct kobj_type {
 526   void (*release)(struct kobject * ) ;
 527   struct sysfs_ops  const  *sysfs_ops ;
 528   struct attribute **default_attrs ;
 529   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 530   void const   *(*namespace)(struct kobject * ) ;
 531};
 532#line 115 "include/linux/kobject.h"
 533struct kobj_uevent_env {
 534   char *envp[32U] ;
 535   int envp_idx ;
 536   char buf[2048U] ;
 537   int buflen ;
 538};
 539#line 122 "include/linux/kobject.h"
 540struct kset_uevent_ops {
 541   int (* const  filter)(struct kset * , struct kobject * ) ;
 542   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 543   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 544};
 545#line 139 "include/linux/kobject.h"
 546struct kset {
 547   struct list_head list ;
 548   spinlock_t list_lock ;
 549   struct kobject kobj ;
 550   struct kset_uevent_ops  const  *uevent_ops ;
 551};
 552#line 215
 553struct kernel_param;
 554#line 215
 555struct kernel_param;
 556#line 216 "include/linux/kobject.h"
 557struct kernel_param_ops {
 558   int (*set)(char const   * , struct kernel_param  const  * ) ;
 559   int (*get)(char * , struct kernel_param  const  * ) ;
 560   void (*free)(void * ) ;
 561};
 562#line 49 "include/linux/moduleparam.h"
 563struct kparam_string;
 564#line 49
 565struct kparam_array;
 566#line 49 "include/linux/moduleparam.h"
 567union __anonunion_ldv_13363_134 {
 568   void *arg ;
 569   struct kparam_string  const  *str ;
 570   struct kparam_array  const  *arr ;
 571};
 572#line 49 "include/linux/moduleparam.h"
 573struct kernel_param {
 574   char const   *name ;
 575   struct kernel_param_ops  const  *ops ;
 576   u16 perm ;
 577   s16 level ;
 578   union __anonunion_ldv_13363_134 ldv_13363 ;
 579};
 580#line 61 "include/linux/moduleparam.h"
 581struct kparam_string {
 582   unsigned int maxlen ;
 583   char *string ;
 584};
 585#line 67 "include/linux/moduleparam.h"
 586struct kparam_array {
 587   unsigned int max ;
 588   unsigned int elemsize ;
 589   unsigned int *num ;
 590   struct kernel_param_ops  const  *ops ;
 591   void *elem ;
 592};
 593#line 458 "include/linux/moduleparam.h"
 594struct static_key {
 595   atomic_t enabled ;
 596};
 597#line 225 "include/linux/jump_label.h"
 598struct tracepoint;
 599#line 225
 600struct tracepoint;
 601#line 226 "include/linux/jump_label.h"
 602struct tracepoint_func {
 603   void *func ;
 604   void *data ;
 605};
 606#line 29 "include/linux/tracepoint.h"
 607struct tracepoint {
 608   char const   *name ;
 609   struct static_key key ;
 610   void (*regfunc)(void) ;
 611   void (*unregfunc)(void) ;
 612   struct tracepoint_func *funcs ;
 613};
 614#line 86 "include/linux/tracepoint.h"
 615struct kernel_symbol {
 616   unsigned long value ;
 617   char const   *name ;
 618};
 619#line 27 "include/linux/export.h"
 620struct mod_arch_specific {
 621
 622};
 623#line 34 "include/linux/module.h"
 624struct module_param_attrs;
 625#line 34 "include/linux/module.h"
 626struct module_kobject {
 627   struct kobject kobj ;
 628   struct module *mod ;
 629   struct kobject *drivers_dir ;
 630   struct module_param_attrs *mp ;
 631};
 632#line 43 "include/linux/module.h"
 633struct module_attribute {
 634   struct attribute attr ;
 635   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 636   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 637                    size_t  ) ;
 638   void (*setup)(struct module * , char const   * ) ;
 639   int (*test)(struct module * ) ;
 640   void (*free)(struct module * ) ;
 641};
 642#line 69
 643struct exception_table_entry;
 644#line 69
 645struct exception_table_entry;
 646#line 198
 647enum module_state {
 648    MODULE_STATE_LIVE = 0,
 649    MODULE_STATE_COMING = 1,
 650    MODULE_STATE_GOING = 2
 651} ;
 652#line 204 "include/linux/module.h"
 653struct module_ref {
 654   unsigned long incs ;
 655   unsigned long decs ;
 656};
 657#line 219
 658struct module_sect_attrs;
 659#line 219
 660struct module_notes_attrs;
 661#line 219
 662struct ftrace_event_call;
 663#line 219 "include/linux/module.h"
 664struct module {
 665   enum module_state state ;
 666   struct list_head list ;
 667   char name[56U] ;
 668   struct module_kobject mkobj ;
 669   struct module_attribute *modinfo_attrs ;
 670   char const   *version ;
 671   char const   *srcversion ;
 672   struct kobject *holders_dir ;
 673   struct kernel_symbol  const  *syms ;
 674   unsigned long const   *crcs ;
 675   unsigned int num_syms ;
 676   struct kernel_param *kp ;
 677   unsigned int num_kp ;
 678   unsigned int num_gpl_syms ;
 679   struct kernel_symbol  const  *gpl_syms ;
 680   unsigned long const   *gpl_crcs ;
 681   struct kernel_symbol  const  *unused_syms ;
 682   unsigned long const   *unused_crcs ;
 683   unsigned int num_unused_syms ;
 684   unsigned int num_unused_gpl_syms ;
 685   struct kernel_symbol  const  *unused_gpl_syms ;
 686   unsigned long const   *unused_gpl_crcs ;
 687   struct kernel_symbol  const  *gpl_future_syms ;
 688   unsigned long const   *gpl_future_crcs ;
 689   unsigned int num_gpl_future_syms ;
 690   unsigned int num_exentries ;
 691   struct exception_table_entry *extable ;
 692   int (*init)(void) ;
 693   void *module_init ;
 694   void *module_core ;
 695   unsigned int init_size ;
 696   unsigned int core_size ;
 697   unsigned int init_text_size ;
 698   unsigned int core_text_size ;
 699   unsigned int init_ro_size ;
 700   unsigned int core_ro_size ;
 701   struct mod_arch_specific arch ;
 702   unsigned int taints ;
 703   unsigned int num_bugs ;
 704   struct list_head bug_list ;
 705   struct bug_entry *bug_table ;
 706   Elf64_Sym *symtab ;
 707   Elf64_Sym *core_symtab ;
 708   unsigned int num_symtab ;
 709   unsigned int core_num_syms ;
 710   char *strtab ;
 711   char *core_strtab ;
 712   struct module_sect_attrs *sect_attrs ;
 713   struct module_notes_attrs *notes_attrs ;
 714   char *args ;
 715   void *percpu ;
 716   unsigned int percpu_size ;
 717   unsigned int num_tracepoints ;
 718   struct tracepoint * const  *tracepoints_ptrs ;
 719   unsigned int num_trace_bprintk_fmt ;
 720   char const   **trace_bprintk_fmt_start ;
 721   struct ftrace_event_call **trace_events ;
 722   unsigned int num_trace_events ;
 723   struct list_head source_list ;
 724   struct list_head target_list ;
 725   struct task_struct *waiter ;
 726   void (*exit)(void) ;
 727   struct module_ref *refptr ;
 728   ctor_fn_t (**ctors)(void) ;
 729   unsigned int num_ctors ;
 730};
 731#line 88 "include/linux/kmemleak.h"
 732struct kmem_cache_cpu {
 733   void **freelist ;
 734   unsigned long tid ;
 735   struct page *page ;
 736   struct page *partial ;
 737   int node ;
 738   unsigned int stat[26U] ;
 739};
 740#line 55 "include/linux/slub_def.h"
 741struct kmem_cache_node {
 742   spinlock_t list_lock ;
 743   unsigned long nr_partial ;
 744   struct list_head partial ;
 745   atomic_long_t nr_slabs ;
 746   atomic_long_t total_objects ;
 747   struct list_head full ;
 748};
 749#line 66 "include/linux/slub_def.h"
 750struct kmem_cache_order_objects {
 751   unsigned long x ;
 752};
 753#line 76 "include/linux/slub_def.h"
 754struct kmem_cache {
 755   struct kmem_cache_cpu *cpu_slab ;
 756   unsigned long flags ;
 757   unsigned long min_partial ;
 758   int size ;
 759   int objsize ;
 760   int offset ;
 761   int cpu_partial ;
 762   struct kmem_cache_order_objects oo ;
 763   struct kmem_cache_order_objects max ;
 764   struct kmem_cache_order_objects min ;
 765   gfp_t allocflags ;
 766   int refcount ;
 767   void (*ctor)(void * ) ;
 768   int inuse ;
 769   int align ;
 770   int reserved ;
 771   char const   *name ;
 772   struct list_head list ;
 773   struct kobject kobj ;
 774   int remote_node_defrag_ratio ;
 775   struct kmem_cache_node *node[1024U] ;
 776};
 777#line 12 "include/linux/mod_devicetable.h"
 778typedef unsigned long kernel_ulong_t;
 779#line 215 "include/linux/mod_devicetable.h"
 780struct of_device_id {
 781   char name[32U] ;
 782   char type[32U] ;
 783   char compatible[128U] ;
 784   void *data ;
 785};
 786#line 492 "include/linux/mod_devicetable.h"
 787struct platform_device_id {
 788   char name[20U] ;
 789   kernel_ulong_t driver_data ;
 790};
 791#line 28 "include/linux/of.h"
 792typedef u32 phandle;
 793#line 30 "include/linux/of.h"
 794struct property {
 795   char *name ;
 796   int length ;
 797   void *value ;
 798   struct property *next ;
 799   unsigned long _flags ;
 800   unsigned int unique_id ;
 801};
 802#line 39
 803struct proc_dir_entry;
 804#line 39 "include/linux/of.h"
 805struct device_node {
 806   char const   *name ;
 807   char const   *type ;
 808   phandle phandle ;
 809   char *full_name ;
 810   struct property *properties ;
 811   struct property *deadprops ;
 812   struct device_node *parent ;
 813   struct device_node *child ;
 814   struct device_node *sibling ;
 815   struct device_node *next ;
 816   struct device_node *allnext ;
 817   struct proc_dir_entry *pde ;
 818   struct kref kref ;
 819   unsigned long _flags ;
 820   void *data ;
 821};
 822#line 50 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/gpio.h"
 823enum irqreturn {
 824    IRQ_NONE = 0,
 825    IRQ_HANDLED = 1,
 826    IRQ_WAKE_THREAD = 2
 827} ;
 828#line 16 "include/linux/irqreturn.h"
 829typedef enum irqreturn irqreturn_t;
 830#line 41 "include/asm-generic/sections.h"
 831struct exception_table_entry {
 832   unsigned long insn ;
 833   unsigned long fixup ;
 834};
 835#line 702 "include/linux/interrupt.h"
 836enum led_brightness {
 837    LED_OFF = 0,
 838    LED_HALF = 127,
 839    LED_FULL = 255
 840} ;
 841#line 708
 842struct led_trigger;
 843#line 708 "include/linux/interrupt.h"
 844struct led_classdev {
 845   char const   *name ;
 846   int brightness ;
 847   int max_brightness ;
 848   int flags ;
 849   void (*brightness_set)(struct led_classdev * , enum led_brightness  ) ;
 850   enum led_brightness (*brightness_get)(struct led_classdev * ) ;
 851   int (*blink_set)(struct led_classdev * , unsigned long * , unsigned long * ) ;
 852   struct device *dev ;
 853   struct list_head node ;
 854   char const   *default_trigger ;
 855   unsigned long blink_delay_on ;
 856   unsigned long blink_delay_off ;
 857   struct timer_list blink_timer ;
 858   int blink_brightness ;
 859   struct rw_semaphore trigger_lock ;
 860   struct led_trigger *trigger ;
 861   struct list_head trig_list ;
 862   void *trigger_data ;
 863};
 864#line 113 "include/linux/leds.h"
 865struct led_trigger {
 866   char const   *name ;
 867   void (*activate)(struct led_classdev * ) ;
 868   void (*deactivate)(struct led_classdev * ) ;
 869   rwlock_t leddev_list_lock ;
 870   struct list_head led_cdevs ;
 871   struct list_head next_trig ;
 872};
 873#line 210
 874struct platform_device;
 875#line 261
 876enum power_supply_property {
 877    POWER_SUPPLY_PROP_STATUS = 0,
 878    POWER_SUPPLY_PROP_CHARGE_TYPE = 1,
 879    POWER_SUPPLY_PROP_HEALTH = 2,
 880    POWER_SUPPLY_PROP_PRESENT = 3,
 881    POWER_SUPPLY_PROP_ONLINE = 4,
 882    POWER_SUPPLY_PROP_TECHNOLOGY = 5,
 883    POWER_SUPPLY_PROP_CYCLE_COUNT = 6,
 884    POWER_SUPPLY_PROP_VOLTAGE_MAX = 7,
 885    POWER_SUPPLY_PROP_VOLTAGE_MIN = 8,
 886    POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 9,
 887    POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 10,
 888    POWER_SUPPLY_PROP_VOLTAGE_NOW = 11,
 889    POWER_SUPPLY_PROP_VOLTAGE_AVG = 12,
 890    POWER_SUPPLY_PROP_CURRENT_MAX = 13,
 891    POWER_SUPPLY_PROP_CURRENT_NOW = 14,
 892    POWER_SUPPLY_PROP_CURRENT_AVG = 15,
 893    POWER_SUPPLY_PROP_POWER_NOW = 16,
 894    POWER_SUPPLY_PROP_POWER_AVG = 17,
 895    POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 18,
 896    POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 19,
 897    POWER_SUPPLY_PROP_CHARGE_FULL = 20,
 898    POWER_SUPPLY_PROP_CHARGE_EMPTY = 21,
 899    POWER_SUPPLY_PROP_CHARGE_NOW = 22,
 900    POWER_SUPPLY_PROP_CHARGE_AVG = 23,
 901    POWER_SUPPLY_PROP_CHARGE_COUNTER = 24,
 902    POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 25,
 903    POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 26,
 904    POWER_SUPPLY_PROP_ENERGY_FULL = 27,
 905    POWER_SUPPLY_PROP_ENERGY_EMPTY = 28,
 906    POWER_SUPPLY_PROP_ENERGY_NOW = 29,
 907    POWER_SUPPLY_PROP_ENERGY_AVG = 30,
 908    POWER_SUPPLY_PROP_CAPACITY = 31,
 909    POWER_SUPPLY_PROP_CAPACITY_LEVEL = 32,
 910    POWER_SUPPLY_PROP_TEMP = 33,
 911    POWER_SUPPLY_PROP_TEMP_AMBIENT = 34,
 912    POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 35,
 913    POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 36,
 914    POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 37,
 915    POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 38,
 916    POWER_SUPPLY_PROP_TYPE = 39,
 917    POWER_SUPPLY_PROP_SCOPE = 40,
 918    POWER_SUPPLY_PROP_MODEL_NAME = 41,
 919    POWER_SUPPLY_PROP_MANUFACTURER = 42,
 920    POWER_SUPPLY_PROP_SERIAL_NUMBER = 43
 921} ;
 922#line 308
 923enum power_supply_type {
 924    POWER_SUPPLY_TYPE_UNKNOWN = 0,
 925    POWER_SUPPLY_TYPE_BATTERY = 1,
 926    POWER_SUPPLY_TYPE_UPS = 2,
 927    POWER_SUPPLY_TYPE_MAINS = 3,
 928    POWER_SUPPLY_TYPE_USB = 4,
 929    POWER_SUPPLY_TYPE_USB_DCP = 5,
 930    POWER_SUPPLY_TYPE_USB_CDP = 6,
 931    POWER_SUPPLY_TYPE_USB_ACA = 7
 932} ;
 933#line 319 "include/linux/leds.h"
 934union power_supply_propval {
 935   int intval ;
 936   char const   *strval ;
 937};
 938#line 148 "include/linux/power_supply.h"
 939struct power_supply {
 940   char const   *name ;
 941   enum power_supply_type type ;
 942   enum power_supply_property *properties ;
 943   size_t num_properties ;
 944   char **supplied_to ;
 945   size_t num_supplicants ;
 946   int (*get_property)(struct power_supply * , enum power_supply_property  , union power_supply_propval * ) ;
 947   int (*set_property)(struct power_supply * , enum power_supply_property  , union power_supply_propval  const  * ) ;
 948   int (*property_is_writeable)(struct power_supply * , enum power_supply_property  ) ;
 949   void (*external_power_changed)(struct power_supply * ) ;
 950   void (*set_charged)(struct power_supply * ) ;
 951   int use_for_apm ;
 952   struct device *dev ;
 953   struct work_struct changed_work ;
 954   struct led_trigger *charging_full_trig ;
 955   char *charging_full_trig_name ;
 956   struct led_trigger *charging_trig ;
 957   char *charging_trig_name ;
 958   struct led_trigger *full_trig ;
 959   char *full_trig_name ;
 960   struct led_trigger *online_trig ;
 961   char *online_trig_name ;
 962   struct led_trigger *charging_blink_full_solid_trig ;
 963   char *charging_blink_full_solid_trig_name ;
 964};
 965#line 226
 966struct class;
 967#line 272
 968struct klist_node;
 969#line 272
 970struct klist_node;
 971#line 37 "include/linux/klist.h"
 972struct klist_node {
 973   void *n_klist ;
 974   struct list_head n_node ;
 975   struct kref n_ref ;
 976};
 977#line 67
 978struct dma_map_ops;
 979#line 67 "include/linux/klist.h"
 980struct dev_archdata {
 981   void *acpi_handle ;
 982   struct dma_map_ops *dma_ops ;
 983   void *iommu ;
 984};
 985#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 986struct pdev_archdata {
 987
 988};
 989#line 17
 990struct device_private;
 991#line 17
 992struct device_private;
 993#line 18
 994struct device_driver;
 995#line 18
 996struct device_driver;
 997#line 19
 998struct driver_private;
 999#line 19
1000struct driver_private;
1001#line 20
1002struct subsys_private;
1003#line 20
1004struct subsys_private;
1005#line 21
1006struct bus_type;
1007#line 21
1008struct bus_type;
1009#line 22
1010struct iommu_ops;
1011#line 22
1012struct iommu_ops;
1013#line 23 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1014struct bus_attribute {
1015   struct attribute attr ;
1016   ssize_t (*show)(struct bus_type * , char * ) ;
1017   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
1018};
1019#line 51 "include/linux/device.h"
1020struct device_attribute;
1021#line 51
1022struct driver_attribute;
1023#line 51 "include/linux/device.h"
1024struct bus_type {
1025   char const   *name ;
1026   char const   *dev_name ;
1027   struct device *dev_root ;
1028   struct bus_attribute *bus_attrs ;
1029   struct device_attribute *dev_attrs ;
1030   struct driver_attribute *drv_attrs ;
1031   int (*match)(struct device * , struct device_driver * ) ;
1032   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1033   int (*probe)(struct device * ) ;
1034   int (*remove)(struct device * ) ;
1035   void (*shutdown)(struct device * ) ;
1036   int (*suspend)(struct device * , pm_message_t  ) ;
1037   int (*resume)(struct device * ) ;
1038   struct dev_pm_ops  const  *pm ;
1039   struct iommu_ops *iommu_ops ;
1040   struct subsys_private *p ;
1041};
1042#line 125
1043struct device_type;
1044#line 182 "include/linux/device.h"
1045struct device_driver {
1046   char const   *name ;
1047   struct bus_type *bus ;
1048   struct module *owner ;
1049   char const   *mod_name ;
1050   bool suppress_bind_attrs ;
1051   struct of_device_id  const  *of_match_table ;
1052   int (*probe)(struct device * ) ;
1053   int (*remove)(struct device * ) ;
1054   void (*shutdown)(struct device * ) ;
1055   int (*suspend)(struct device * , pm_message_t  ) ;
1056   int (*resume)(struct device * ) ;
1057   struct attribute_group  const  **groups ;
1058   struct dev_pm_ops  const  *pm ;
1059   struct driver_private *p ;
1060};
1061#line 245 "include/linux/device.h"
1062struct driver_attribute {
1063   struct attribute attr ;
1064   ssize_t (*show)(struct device_driver * , char * ) ;
1065   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
1066};
1067#line 299
1068struct class_attribute;
1069#line 299 "include/linux/device.h"
1070struct class {
1071   char const   *name ;
1072   struct module *owner ;
1073   struct class_attribute *class_attrs ;
1074   struct device_attribute *dev_attrs ;
1075   struct bin_attribute *dev_bin_attrs ;
1076   struct kobject *dev_kobj ;
1077   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1078   char *(*devnode)(struct device * , umode_t * ) ;
1079   void (*class_release)(struct class * ) ;
1080   void (*dev_release)(struct device * ) ;
1081   int (*suspend)(struct device * , pm_message_t  ) ;
1082   int (*resume)(struct device * ) ;
1083   struct kobj_ns_type_operations  const  *ns_type ;
1084   void const   *(*namespace)(struct device * ) ;
1085   struct dev_pm_ops  const  *pm ;
1086   struct subsys_private *p ;
1087};
1088#line 394 "include/linux/device.h"
1089struct class_attribute {
1090   struct attribute attr ;
1091   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1092   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
1093   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
1094};
1095#line 447 "include/linux/device.h"
1096struct device_type {
1097   char const   *name ;
1098   struct attribute_group  const  **groups ;
1099   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1100   char *(*devnode)(struct device * , umode_t * ) ;
1101   void (*release)(struct device * ) ;
1102   struct dev_pm_ops  const  *pm ;
1103};
1104#line 474 "include/linux/device.h"
1105struct device_attribute {
1106   struct attribute attr ;
1107   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1108   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
1109                    size_t  ) ;
1110};
1111#line 557 "include/linux/device.h"
1112struct device_dma_parameters {
1113   unsigned int max_segment_size ;
1114   unsigned long segment_boundary_mask ;
1115};
1116#line 567
1117struct dma_coherent_mem;
1118#line 567 "include/linux/device.h"
1119struct device {
1120   struct device *parent ;
1121   struct device_private *p ;
1122   struct kobject kobj ;
1123   char const   *init_name ;
1124   struct device_type  const  *type ;
1125   struct mutex mutex ;
1126   struct bus_type *bus ;
1127   struct device_driver *driver ;
1128   void *platform_data ;
1129   struct dev_pm_info power ;
1130   struct dev_pm_domain *pm_domain ;
1131   int numa_node ;
1132   u64 *dma_mask ;
1133   u64 coherent_dma_mask ;
1134   struct device_dma_parameters *dma_parms ;
1135   struct list_head dma_pools ;
1136   struct dma_coherent_mem *dma_mem ;
1137   struct dev_archdata archdata ;
1138   struct device_node *of_node ;
1139   dev_t devt ;
1140   u32 id ;
1141   spinlock_t devres_lock ;
1142   struct list_head devres_head ;
1143   struct klist_node knode_class ;
1144   struct class *class ;
1145   struct attribute_group  const  **groups ;
1146   void (*release)(struct device * ) ;
1147};
1148#line 681 "include/linux/device.h"
1149struct wakeup_source {
1150   char const   *name ;
1151   struct list_head entry ;
1152   spinlock_t lock ;
1153   struct timer_list timer ;
1154   unsigned long timer_expires ;
1155   ktime_t total_time ;
1156   ktime_t max_time ;
1157   ktime_t last_time ;
1158   unsigned long event_count ;
1159   unsigned long active_count ;
1160   unsigned long relax_count ;
1161   unsigned long hit_count ;
1162   unsigned char active : 1 ;
1163};
1164#line 991
1165struct mfd_cell;
1166#line 991
1167struct mfd_cell;
1168#line 992 "include/linux/device.h"
1169struct platform_device {
1170   char const   *name ;
1171   int id ;
1172   struct device dev ;
1173   u32 num_resources ;
1174   struct resource *resource ;
1175   struct platform_device_id  const  *id_entry ;
1176   struct mfd_cell *mfd_cell ;
1177   struct pdev_archdata archdata ;
1178};
1179#line 272 "include/linux/platform_device.h"
1180struct max8903_pdata {
1181   int cen ;
1182   int dok ;
1183   int uok ;
1184   int chg ;
1185   int flt ;
1186   int dcm ;
1187   int usus ;
1188   bool dc_valid ;
1189   bool usb_valid ;
1190};
1191#line 56 "include/linux/power/max8903_charger.h"
1192struct max8903_data {
1193   struct max8903_pdata pdata ;
1194   struct device *dev ;
1195   struct power_supply psy ;
1196   bool fault ;
1197   bool usb_in ;
1198   bool ta_in ;
1199};
1200#line 1 "<compiler builtins>"
1201
1202#line 1
1203long __builtin_expect(long  , long  ) ;
1204#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
1205void ldv_spin_lock(void) ;
1206#line 3
1207void ldv_spin_unlock(void) ;
1208#line 4
1209int ldv_spin_trylock(void) ;
1210#line 50 "include/linux/dynamic_debug.h"
1211extern int __dynamic_dev_dbg(struct _ddebug * , struct device  const  * , char const   * 
1212                             , ...) ;
1213#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
1214extern void *__memcpy(void * , void const   * , size_t  ) ;
1215#line 161 "include/linux/slab.h"
1216extern void kfree(void const   * ) ;
1217#line 220 "include/linux/slub_def.h"
1218extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
1219#line 223
1220void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
1221#line 353 "include/linux/slab.h"
1222__inline static void *kzalloc(size_t size , gfp_t flags ) ;
1223#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
1224extern void *__VERIFIER_nondet_pointer(void) ;
1225#line 11
1226void ldv_check_alloc_flags(gfp_t flags ) ;
1227#line 12
1228void ldv_check_alloc_nonatomic(void) ;
1229#line 14
1230struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
1231#line 39 "include/asm-generic/gpio.h"
1232__inline static bool gpio_is_valid(int number ) 
1233{ int tmp ;
1234
1235  {
1236#line 41
1237  if (number >= 0) {
1238#line 41
1239    if (number <= 255) {
1240#line 41
1241      tmp = 1;
1242    } else {
1243#line 41
1244      tmp = 0;
1245    }
1246  } else {
1247#line 41
1248    tmp = 0;
1249  }
1250#line 41
1251  return ((bool )tmp);
1252}
1253}
1254#line 169
1255extern int __gpio_get_value(unsigned int  ) ;
1256#line 170
1257extern void __gpio_set_value(unsigned int  , int  ) ;
1258#line 174
1259extern int __gpio_to_irq(unsigned int  ) ;
1260#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/gpio.h"
1261__inline static int gpio_get_value(unsigned int gpio ) 
1262{ int tmp ;
1263
1264  {
1265  {
1266#line 28
1267  tmp = __gpio_get_value(gpio);
1268  }
1269#line 28
1270  return (tmp);
1271}
1272}
1273#line 31 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/gpio.h"
1274__inline static void gpio_set_value(unsigned int gpio , int value ) 
1275{ 
1276
1277  {
1278  {
1279#line 33
1280  __gpio_set_value(gpio, value);
1281  }
1282#line 34
1283  return;
1284}
1285}
1286#line 41 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/gpio.h"
1287__inline static int gpio_to_irq(unsigned int gpio ) 
1288{ int tmp ;
1289
1290  {
1291  {
1292#line 43
1293  tmp = __gpio_to_irq(gpio);
1294  }
1295#line 43
1296  return (tmp);
1297}
1298}
1299#line 127 "include/linux/interrupt.h"
1300extern int request_threaded_irq(unsigned int  , irqreturn_t (*)(int  , void * ) ,
1301                                irqreturn_t (*)(int  , void * ) , unsigned long  ,
1302                                char const   * , void * ) ;
1303#line 184
1304extern void free_irq(unsigned int  , void * ) ;
1305#line 210 "include/linux/power_supply.h"
1306extern void power_supply_changed(struct power_supply * ) ;
1307#line 220
1308extern int power_supply_register(struct device * , struct power_supply * ) ;
1309#line 222
1310extern void power_supply_unregister(struct power_supply * ) ;
1311#line 793 "include/linux/device.h"
1312extern int dev_set_drvdata(struct device * , void * ) ;
1313#line 892
1314extern int dev_err(struct device  const  * , char const   *  , ...) ;
1315#line 188 "include/linux/platform_device.h"
1316__inline static void platform_set_drvdata(struct platform_device *pdev , void *data ) 
1317{ unsigned long __cil_tmp3 ;
1318  unsigned long __cil_tmp4 ;
1319  struct device *__cil_tmp5 ;
1320
1321  {
1322  {
1323#line 190
1324  __cil_tmp3 = (unsigned long )pdev;
1325#line 190
1326  __cil_tmp4 = __cil_tmp3 + 16;
1327#line 190
1328  __cil_tmp5 = (struct device *)__cil_tmp4;
1329#line 190
1330  dev_set_drvdata(__cil_tmp5, data);
1331  }
1332#line 191
1333  return;
1334}
1335}
1336#line 55 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
1337static enum power_supply_property max8903_charger_props[3U]  = {      (enum power_supply_property )0,      (enum power_supply_property )4,      (enum power_supply_property )2};
1338#line 61 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
1339static int max8903_get_property(struct power_supply *psy , enum power_supply_property psp ,
1340                                union power_supply_propval *val ) 
1341{ struct max8903_data *data ;
1342  struct power_supply  const  *__mptr ;
1343  int tmp ;
1344  struct max8903_data *__cil_tmp7 ;
1345  unsigned int __cil_tmp8 ;
1346  unsigned long __cil_tmp9 ;
1347  unsigned long __cil_tmp10 ;
1348  unsigned long __cil_tmp11 ;
1349  int __cil_tmp12 ;
1350  unsigned long __cil_tmp13 ;
1351  unsigned long __cil_tmp14 ;
1352  unsigned long __cil_tmp15 ;
1353  int __cil_tmp16 ;
1354  unsigned int __cil_tmp17 ;
1355  unsigned long __cil_tmp18 ;
1356  unsigned long __cil_tmp19 ;
1357  bool __cil_tmp20 ;
1358  unsigned long __cil_tmp21 ;
1359  unsigned long __cil_tmp22 ;
1360  bool __cil_tmp23 ;
1361  unsigned long __cil_tmp24 ;
1362  unsigned long __cil_tmp25 ;
1363  bool __cil_tmp26 ;
1364  unsigned long __cil_tmp27 ;
1365  unsigned long __cil_tmp28 ;
1366  bool __cil_tmp29 ;
1367  unsigned long __cil_tmp30 ;
1368  unsigned long __cil_tmp31 ;
1369  bool __cil_tmp32 ;
1370
1371  {
1372#line 65
1373  __mptr = (struct power_supply  const  *)psy;
1374#line 65
1375  __cil_tmp7 = (struct max8903_data *)__mptr;
1376#line 65
1377  data = __cil_tmp7 + 0xffffffffffffffd8UL;
1378  {
1379#line 68
1380  __cil_tmp8 = (unsigned int )psp;
1381#line 69
1382  if ((int )__cil_tmp8 == 0) {
1383#line 69
1384    goto case_0;
1385  } else
1386#line 80
1387  if ((int )__cil_tmp8 == 4) {
1388#line 80
1389    goto case_4;
1390  } else
1391#line 85
1392  if ((int )__cil_tmp8 == 2) {
1393#line 85
1394    goto case_2;
1395  } else {
1396    {
1397#line 90
1398    goto switch_default;
1399#line 68
1400    if (0) {
1401      case_0: /* CIL Label */ 
1402#line 70
1403      *((int *)val) = 0;
1404      {
1405#line 71
1406      __cil_tmp9 = 0 + 12;
1407#line 71
1408      __cil_tmp10 = (unsigned long )data;
1409#line 71
1410      __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
1411#line 71
1412      __cil_tmp12 = *((int *)__cil_tmp11);
1413#line 71
1414      if (__cil_tmp12 != 0) {
1415        {
1416#line 72
1417        __cil_tmp13 = 0 + 12;
1418#line 72
1419        __cil_tmp14 = (unsigned long )data;
1420#line 72
1421        __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
1422#line 72
1423        __cil_tmp16 = *((int *)__cil_tmp15);
1424#line 72
1425        __cil_tmp17 = (unsigned int )__cil_tmp16;
1426#line 72
1427        tmp = gpio_get_value(__cil_tmp17);
1428        }
1429#line 72
1430        if (tmp == 0) {
1431#line 73
1432          *((int *)val) = 1;
1433        } else {
1434          {
1435#line 74
1436          __cil_tmp18 = (unsigned long )data;
1437#line 74
1438          __cil_tmp19 = __cil_tmp18 + 305;
1439#line 74
1440          __cil_tmp20 = *((bool *)__cil_tmp19);
1441#line 74
1442          if ((int )__cil_tmp20) {
1443#line 75
1444            *((int *)val) = 3;
1445          } else {
1446            {
1447#line 74
1448            __cil_tmp21 = (unsigned long )data;
1449#line 74
1450            __cil_tmp22 = __cil_tmp21 + 306;
1451#line 74
1452            __cil_tmp23 = *((bool *)__cil_tmp22);
1453#line 74
1454            if ((int )__cil_tmp23) {
1455#line 75
1456              *((int *)val) = 3;
1457            } else {
1458#line 77
1459              *((int *)val) = 2;
1460            }
1461            }
1462          }
1463          }
1464        }
1465      } else {
1466
1467      }
1468      }
1469#line 79
1470      goto ldv_17422;
1471      case_4: /* CIL Label */ 
1472#line 81
1473      *((int *)val) = 0;
1474      {
1475#line 82
1476      __cil_tmp24 = (unsigned long )data;
1477#line 82
1478      __cil_tmp25 = __cil_tmp24 + 305;
1479#line 82
1480      __cil_tmp26 = *((bool *)__cil_tmp25);
1481#line 82
1482      if ((int )__cil_tmp26) {
1483#line 83
1484        *((int *)val) = 1;
1485      } else {
1486        {
1487#line 82
1488        __cil_tmp27 = (unsigned long )data;
1489#line 82
1490        __cil_tmp28 = __cil_tmp27 + 306;
1491#line 82
1492        __cil_tmp29 = *((bool *)__cil_tmp28);
1493#line 82
1494        if ((int )__cil_tmp29) {
1495#line 83
1496          *((int *)val) = 1;
1497        } else {
1498
1499        }
1500        }
1501      }
1502      }
1503#line 84
1504      goto ldv_17422;
1505      case_2: /* CIL Label */ 
1506#line 86
1507      *((int *)val) = 1;
1508      {
1509#line 87
1510      __cil_tmp30 = (unsigned long )data;
1511#line 87
1512      __cil_tmp31 = __cil_tmp30 + 304;
1513#line 87
1514      __cil_tmp32 = *((bool *)__cil_tmp31);
1515#line 87
1516      if ((int )__cil_tmp32) {
1517#line 88
1518        *((int *)val) = 5;
1519      } else {
1520
1521      }
1522      }
1523#line 89
1524      goto ldv_17422;
1525      switch_default: /* CIL Label */ ;
1526#line 91
1527      return (-22);
1528    } else {
1529      switch_break: /* CIL Label */ ;
1530    }
1531    }
1532  }
1533  }
1534  ldv_17422: ;
1535#line 93
1536  return (0);
1537}
1538}
1539#line 96 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
1540static irqreturn_t max8903_dcin(int irq , void *_data___0 ) 
1541{ struct max8903_data *data ;
1542  struct max8903_pdata *pdata ;
1543  bool ta_in ;
1544  enum power_supply_type old_type ;
1545  int tmp ;
1546  int tmp___0 ;
1547  int tmp___1 ;
1548  struct _ddebug descriptor ;
1549  char *tmp___2 ;
1550  long tmp___3 ;
1551  unsigned long __cil_tmp13 ;
1552  unsigned long __cil_tmp14 ;
1553  int __cil_tmp15 ;
1554  unsigned int __cil_tmp16 ;
1555  int __cil_tmp17 ;
1556  int __cil_tmp18 ;
1557  unsigned long __cil_tmp19 ;
1558  unsigned long __cil_tmp20 ;
1559  bool __cil_tmp21 ;
1560  int __cil_tmp22 ;
1561  unsigned long __cil_tmp23 ;
1562  unsigned long __cil_tmp24 ;
1563  unsigned long __cil_tmp25 ;
1564  unsigned long __cil_tmp26 ;
1565  int __cil_tmp27 ;
1566  unsigned long __cil_tmp28 ;
1567  unsigned long __cil_tmp29 ;
1568  int __cil_tmp30 ;
1569  unsigned int __cil_tmp31 ;
1570  int __cil_tmp32 ;
1571  int __cil_tmp33 ;
1572  unsigned long __cil_tmp34 ;
1573  unsigned long __cil_tmp35 ;
1574  bool __cil_tmp36 ;
1575  int __cil_tmp37 ;
1576  unsigned int __cil_tmp38 ;
1577  struct _ddebug *__cil_tmp39 ;
1578  unsigned long __cil_tmp40 ;
1579  unsigned long __cil_tmp41 ;
1580  unsigned long __cil_tmp42 ;
1581  unsigned long __cil_tmp43 ;
1582  unsigned long __cil_tmp44 ;
1583  unsigned long __cil_tmp45 ;
1584  unsigned char __cil_tmp46 ;
1585  long __cil_tmp47 ;
1586  long __cil_tmp48 ;
1587  unsigned long __cil_tmp49 ;
1588  unsigned long __cil_tmp50 ;
1589  struct device *__cil_tmp51 ;
1590  struct device  const  *__cil_tmp52 ;
1591  unsigned long __cil_tmp53 ;
1592  unsigned long __cil_tmp54 ;
1593  unsigned long __cil_tmp55 ;
1594  unsigned long __cil_tmp56 ;
1595  unsigned long __cil_tmp57 ;
1596  bool __cil_tmp58 ;
1597  unsigned long __cil_tmp59 ;
1598  unsigned long __cil_tmp60 ;
1599  unsigned long __cil_tmp61 ;
1600  unsigned long __cil_tmp62 ;
1601  unsigned long __cil_tmp63 ;
1602  bool __cil_tmp64 ;
1603  unsigned long __cil_tmp65 ;
1604  unsigned long __cil_tmp66 ;
1605  unsigned long __cil_tmp67 ;
1606  unsigned long __cil_tmp68 ;
1607  unsigned long __cil_tmp69 ;
1608  unsigned long __cil_tmp70 ;
1609  unsigned int __cil_tmp71 ;
1610  unsigned long __cil_tmp72 ;
1611  unsigned long __cil_tmp73 ;
1612  unsigned long __cil_tmp74 ;
1613  enum power_supply_type __cil_tmp75 ;
1614  unsigned int __cil_tmp76 ;
1615  unsigned long __cil_tmp77 ;
1616  unsigned long __cil_tmp78 ;
1617  struct power_supply *__cil_tmp79 ;
1618
1619  {
1620  {
1621#line 98
1622  data = (struct max8903_data *)_data___0;
1623#line 99
1624  pdata = (struct max8903_pdata *)data;
1625#line 103
1626  __cil_tmp13 = (unsigned long )pdata;
1627#line 103
1628  __cil_tmp14 = __cil_tmp13 + 4;
1629#line 103
1630  __cil_tmp15 = *((int *)__cil_tmp14);
1631#line 103
1632  __cil_tmp16 = (unsigned int )__cil_tmp15;
1633#line 103
1634  tmp = gpio_get_value(__cil_tmp16);
1635#line 103
1636  __cil_tmp17 = tmp == 0;
1637#line 103
1638  ta_in = (bool )__cil_tmp17;
1639  }
1640  {
1641#line 105
1642  __cil_tmp18 = (int )ta_in;
1643#line 105
1644  __cil_tmp19 = (unsigned long )data;
1645#line 105
1646  __cil_tmp20 = __cil_tmp19 + 306;
1647#line 105
1648  __cil_tmp21 = *((bool *)__cil_tmp20);
1649#line 105
1650  __cil_tmp22 = (int )__cil_tmp21;
1651#line 105
1652  if (__cil_tmp22 == __cil_tmp18) {
1653#line 106
1654    return ((irqreturn_t )1);
1655  } else {
1656
1657  }
1658  }
1659#line 108
1660  __cil_tmp23 = (unsigned long )data;
1661#line 108
1662  __cil_tmp24 = __cil_tmp23 + 306;
1663#line 108
1664  *((bool *)__cil_tmp24) = ta_in;
1665  {
1666#line 111
1667  __cil_tmp25 = (unsigned long )pdata;
1668#line 111
1669  __cil_tmp26 = __cil_tmp25 + 20;
1670#line 111
1671  __cil_tmp27 = *((int *)__cil_tmp26);
1672#line 111
1673  if (__cil_tmp27 != 0) {
1674    {
1675#line 112
1676    __cil_tmp28 = (unsigned long )pdata;
1677#line 112
1678    __cil_tmp29 = __cil_tmp28 + 20;
1679#line 112
1680    __cil_tmp30 = *((int *)__cil_tmp29);
1681#line 112
1682    __cil_tmp31 = (unsigned int )__cil_tmp30;
1683#line 112
1684    __cil_tmp32 = (int )ta_in;
1685#line 112
1686    gpio_set_value(__cil_tmp31, __cil_tmp32);
1687    }
1688  } else {
1689
1690  }
1691  }
1692  {
1693#line 115
1694  __cil_tmp33 = *((int *)pdata);
1695#line 115
1696  if (__cil_tmp33 != 0) {
1697#line 116
1698    if ((int )ta_in) {
1699#line 116
1700      tmp___1 = 0;
1701    } else {
1702      {
1703#line 116
1704      __cil_tmp34 = (unsigned long )data;
1705#line 116
1706      __cil_tmp35 = __cil_tmp34 + 305;
1707#line 116
1708      __cil_tmp36 = *((bool *)__cil_tmp35);
1709#line 116
1710      if ((int )__cil_tmp36) {
1711#line 116
1712        tmp___0 = 0;
1713      } else {
1714#line 116
1715        tmp___0 = 1;
1716      }
1717      }
1718#line 116
1719      tmp___1 = tmp___0;
1720    }
1721    {
1722#line 116
1723    __cil_tmp37 = *((int *)pdata);
1724#line 116
1725    __cil_tmp38 = (unsigned int )__cil_tmp37;
1726#line 116
1727    gpio_set_value(__cil_tmp38, tmp___1);
1728    }
1729  } else {
1730
1731  }
1732  }
1733  {
1734#line 119
1735  __cil_tmp39 = & descriptor;
1736#line 119
1737  *((char const   **)__cil_tmp39) = "max8903_charger";
1738#line 119
1739  __cil_tmp40 = (unsigned long )(& descriptor) + 8;
1740#line 119
1741  *((char const   **)__cil_tmp40) = "max8903_dcin";
1742#line 119
1743  __cil_tmp41 = (unsigned long )(& descriptor) + 16;
1744#line 119
1745  *((char const   **)__cil_tmp41) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p";
1746#line 119
1747  __cil_tmp42 = (unsigned long )(& descriptor) + 24;
1748#line 119
1749  *((char const   **)__cil_tmp42) = "TA(DC-IN) Charger %s.\n";
1750#line 119
1751  __cil_tmp43 = (unsigned long )(& descriptor) + 32;
1752#line 119
1753  *((unsigned int *)__cil_tmp43) = 120U;
1754#line 119
1755  __cil_tmp44 = (unsigned long )(& descriptor) + 35;
1756#line 119
1757  *((unsigned char *)__cil_tmp44) = (unsigned char)1;
1758#line 119
1759  __cil_tmp45 = (unsigned long )(& descriptor) + 35;
1760#line 119
1761  __cil_tmp46 = *((unsigned char *)__cil_tmp45);
1762#line 119
1763  __cil_tmp47 = (long )__cil_tmp46;
1764#line 119
1765  __cil_tmp48 = __cil_tmp47 & 1L;
1766#line 119
1767  tmp___3 = __builtin_expect(__cil_tmp48, 0L);
1768  }
1769#line 119
1770  if (tmp___3 != 0L) {
1771#line 119
1772    if ((int )ta_in) {
1773#line 119
1774      tmp___2 = (char *)"Connected";
1775    } else {
1776#line 119
1777      tmp___2 = (char *)"Disconnected";
1778    }
1779    {
1780#line 119
1781    __cil_tmp49 = (unsigned long )data;
1782#line 119
1783    __cil_tmp50 = __cil_tmp49 + 32;
1784#line 119
1785    __cil_tmp51 = *((struct device **)__cil_tmp50);
1786#line 119
1787    __cil_tmp52 = (struct device  const  *)__cil_tmp51;
1788#line 119
1789    __dynamic_dev_dbg(& descriptor, __cil_tmp52, "TA(DC-IN) Charger %s.\n", tmp___2);
1790    }
1791  } else {
1792
1793  }
1794#line 122
1795  __cil_tmp53 = 40 + 8;
1796#line 122
1797  __cil_tmp54 = (unsigned long )data;
1798#line 122
1799  __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
1800#line 122
1801  old_type = *((enum power_supply_type *)__cil_tmp55);
1802  {
1803#line 124
1804  __cil_tmp56 = (unsigned long )data;
1805#line 124
1806  __cil_tmp57 = __cil_tmp56 + 306;
1807#line 124
1808  __cil_tmp58 = *((bool *)__cil_tmp57);
1809#line 124
1810  if ((int )__cil_tmp58) {
1811#line 125
1812    __cil_tmp59 = 40 + 8;
1813#line 125
1814    __cil_tmp60 = (unsigned long )data;
1815#line 125
1816    __cil_tmp61 = __cil_tmp60 + __cil_tmp59;
1817#line 125
1818    *((enum power_supply_type *)__cil_tmp61) = (enum power_supply_type )3;
1819  } else {
1820    {
1821#line 126
1822    __cil_tmp62 = (unsigned long )data;
1823#line 126
1824    __cil_tmp63 = __cil_tmp62 + 305;
1825#line 126
1826    __cil_tmp64 = *((bool *)__cil_tmp63);
1827#line 126
1828    if ((int )__cil_tmp64) {
1829#line 127
1830      __cil_tmp65 = 40 + 8;
1831#line 127
1832      __cil_tmp66 = (unsigned long )data;
1833#line 127
1834      __cil_tmp67 = __cil_tmp66 + __cil_tmp65;
1835#line 127
1836      *((enum power_supply_type *)__cil_tmp67) = (enum power_supply_type )4;
1837    } else {
1838#line 129
1839      __cil_tmp68 = 40 + 8;
1840#line 129
1841      __cil_tmp69 = (unsigned long )data;
1842#line 129
1843      __cil_tmp70 = __cil_tmp69 + __cil_tmp68;
1844#line 129
1845      *((enum power_supply_type *)__cil_tmp70) = (enum power_supply_type )1;
1846    }
1847    }
1848  }
1849  }
1850  {
1851#line 131
1852  __cil_tmp71 = (unsigned int )old_type;
1853#line 131
1854  __cil_tmp72 = 40 + 8;
1855#line 131
1856  __cil_tmp73 = (unsigned long )data;
1857#line 131
1858  __cil_tmp74 = __cil_tmp73 + __cil_tmp72;
1859#line 131
1860  __cil_tmp75 = *((enum power_supply_type *)__cil_tmp74);
1861#line 131
1862  __cil_tmp76 = (unsigned int )__cil_tmp75;
1863#line 131
1864  if (__cil_tmp76 != __cil_tmp71) {
1865    {
1866#line 132
1867    __cil_tmp77 = (unsigned long )data;
1868#line 132
1869    __cil_tmp78 = __cil_tmp77 + 40;
1870#line 132
1871    __cil_tmp79 = (struct power_supply *)__cil_tmp78;
1872#line 132
1873    power_supply_changed(__cil_tmp79);
1874    }
1875  } else {
1876
1877  }
1878  }
1879#line 134
1880  return ((irqreturn_t )1);
1881}
1882}
1883#line 137 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
1884static irqreturn_t max8903_usbin(int irq , void *_data___0 ) 
1885{ struct max8903_data *data ;
1886  struct max8903_pdata *pdata ;
1887  bool usb_in ;
1888  enum power_supply_type old_type ;
1889  int tmp ;
1890  int tmp___0 ;
1891  int tmp___1 ;
1892  struct _ddebug descriptor ;
1893  char *tmp___2 ;
1894  long tmp___3 ;
1895  unsigned long __cil_tmp13 ;
1896  unsigned long __cil_tmp14 ;
1897  int __cil_tmp15 ;
1898  unsigned int __cil_tmp16 ;
1899  int __cil_tmp17 ;
1900  int __cil_tmp18 ;
1901  unsigned long __cil_tmp19 ;
1902  unsigned long __cil_tmp20 ;
1903  bool __cil_tmp21 ;
1904  int __cil_tmp22 ;
1905  unsigned long __cil_tmp23 ;
1906  unsigned long __cil_tmp24 ;
1907  int __cil_tmp25 ;
1908  unsigned long __cil_tmp26 ;
1909  unsigned long __cil_tmp27 ;
1910  bool __cil_tmp28 ;
1911  int __cil_tmp29 ;
1912  unsigned int __cil_tmp30 ;
1913  struct _ddebug *__cil_tmp31 ;
1914  unsigned long __cil_tmp32 ;
1915  unsigned long __cil_tmp33 ;
1916  unsigned long __cil_tmp34 ;
1917  unsigned long __cil_tmp35 ;
1918  unsigned long __cil_tmp36 ;
1919  unsigned long __cil_tmp37 ;
1920  unsigned char __cil_tmp38 ;
1921  long __cil_tmp39 ;
1922  long __cil_tmp40 ;
1923  unsigned long __cil_tmp41 ;
1924  unsigned long __cil_tmp42 ;
1925  struct device *__cil_tmp43 ;
1926  struct device  const  *__cil_tmp44 ;
1927  unsigned long __cil_tmp45 ;
1928  unsigned long __cil_tmp46 ;
1929  unsigned long __cil_tmp47 ;
1930  unsigned long __cil_tmp48 ;
1931  unsigned long __cil_tmp49 ;
1932  bool __cil_tmp50 ;
1933  unsigned long __cil_tmp51 ;
1934  unsigned long __cil_tmp52 ;
1935  unsigned long __cil_tmp53 ;
1936  unsigned long __cil_tmp54 ;
1937  unsigned long __cil_tmp55 ;
1938  bool __cil_tmp56 ;
1939  unsigned long __cil_tmp57 ;
1940  unsigned long __cil_tmp58 ;
1941  unsigned long __cil_tmp59 ;
1942  unsigned long __cil_tmp60 ;
1943  unsigned long __cil_tmp61 ;
1944  unsigned long __cil_tmp62 ;
1945  unsigned int __cil_tmp63 ;
1946  unsigned long __cil_tmp64 ;
1947  unsigned long __cil_tmp65 ;
1948  unsigned long __cil_tmp66 ;
1949  enum power_supply_type __cil_tmp67 ;
1950  unsigned int __cil_tmp68 ;
1951  unsigned long __cil_tmp69 ;
1952  unsigned long __cil_tmp70 ;
1953  struct power_supply *__cil_tmp71 ;
1954
1955  {
1956  {
1957#line 139
1958  data = (struct max8903_data *)_data___0;
1959#line 140
1960  pdata = (struct max8903_pdata *)data;
1961#line 144
1962  __cil_tmp13 = (unsigned long )pdata;
1963#line 144
1964  __cil_tmp14 = __cil_tmp13 + 8;
1965#line 144
1966  __cil_tmp15 = *((int *)__cil_tmp14);
1967#line 144
1968  __cil_tmp16 = (unsigned int )__cil_tmp15;
1969#line 144
1970  tmp = gpio_get_value(__cil_tmp16);
1971#line 144
1972  __cil_tmp17 = tmp == 0;
1973#line 144
1974  usb_in = (bool )__cil_tmp17;
1975  }
1976  {
1977#line 146
1978  __cil_tmp18 = (int )usb_in;
1979#line 146
1980  __cil_tmp19 = (unsigned long )data;
1981#line 146
1982  __cil_tmp20 = __cil_tmp19 + 305;
1983#line 146
1984  __cil_tmp21 = *((bool *)__cil_tmp20);
1985#line 146
1986  __cil_tmp22 = (int )__cil_tmp21;
1987#line 146
1988  if (__cil_tmp22 == __cil_tmp18) {
1989#line 147
1990    return ((irqreturn_t )1);
1991  } else {
1992
1993  }
1994  }
1995#line 149
1996  __cil_tmp23 = (unsigned long )data;
1997#line 149
1998  __cil_tmp24 = __cil_tmp23 + 305;
1999#line 149
2000  *((bool *)__cil_tmp24) = usb_in;
2001  {
2002#line 154
2003  __cil_tmp25 = *((int *)pdata);
2004#line 154
2005  if (__cil_tmp25 != 0) {
2006#line 155
2007    if ((int )usb_in) {
2008#line 155
2009      tmp___1 = 0;
2010    } else {
2011      {
2012#line 155
2013      __cil_tmp26 = (unsigned long )data;
2014#line 155
2015      __cil_tmp27 = __cil_tmp26 + 306;
2016#line 155
2017      __cil_tmp28 = *((bool *)__cil_tmp27);
2018#line 155
2019      if ((int )__cil_tmp28) {
2020#line 155
2021        tmp___0 = 0;
2022      } else {
2023#line 155
2024        tmp___0 = 1;
2025      }
2026      }
2027#line 155
2028      tmp___1 = tmp___0;
2029    }
2030    {
2031#line 155
2032    __cil_tmp29 = *((int *)pdata);
2033#line 155
2034    __cil_tmp30 = (unsigned int )__cil_tmp29;
2035#line 155
2036    gpio_set_value(__cil_tmp30, tmp___1);
2037    }
2038  } else {
2039
2040  }
2041  }
2042  {
2043#line 158
2044  __cil_tmp31 = & descriptor;
2045#line 158
2046  *((char const   **)__cil_tmp31) = "max8903_charger";
2047#line 158
2048  __cil_tmp32 = (unsigned long )(& descriptor) + 8;
2049#line 158
2050  *((char const   **)__cil_tmp32) = "max8903_usbin";
2051#line 158
2052  __cil_tmp33 = (unsigned long )(& descriptor) + 16;
2053#line 158
2054  *((char const   **)__cil_tmp33) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p";
2055#line 158
2056  __cil_tmp34 = (unsigned long )(& descriptor) + 24;
2057#line 158
2058  *((char const   **)__cil_tmp34) = "USB Charger %s.\n";
2059#line 158
2060  __cil_tmp35 = (unsigned long )(& descriptor) + 32;
2061#line 158
2062  *((unsigned int *)__cil_tmp35) = 159U;
2063#line 158
2064  __cil_tmp36 = (unsigned long )(& descriptor) + 35;
2065#line 158
2066  *((unsigned char *)__cil_tmp36) = (unsigned char)1;
2067#line 158
2068  __cil_tmp37 = (unsigned long )(& descriptor) + 35;
2069#line 158
2070  __cil_tmp38 = *((unsigned char *)__cil_tmp37);
2071#line 158
2072  __cil_tmp39 = (long )__cil_tmp38;
2073#line 158
2074  __cil_tmp40 = __cil_tmp39 & 1L;
2075#line 158
2076  tmp___3 = __builtin_expect(__cil_tmp40, 0L);
2077  }
2078#line 158
2079  if (tmp___3 != 0L) {
2080#line 158
2081    if ((int )usb_in) {
2082#line 158
2083      tmp___2 = (char *)"Connected";
2084    } else {
2085#line 158
2086      tmp___2 = (char *)"Disconnected";
2087    }
2088    {
2089#line 158
2090    __cil_tmp41 = (unsigned long )data;
2091#line 158
2092    __cil_tmp42 = __cil_tmp41 + 32;
2093#line 158
2094    __cil_tmp43 = *((struct device **)__cil_tmp42);
2095#line 158
2096    __cil_tmp44 = (struct device  const  *)__cil_tmp43;
2097#line 158
2098    __dynamic_dev_dbg(& descriptor, __cil_tmp44, "USB Charger %s.\n", tmp___2);
2099    }
2100  } else {
2101
2102  }
2103#line 161
2104  __cil_tmp45 = 40 + 8;
2105#line 161
2106  __cil_tmp46 = (unsigned long )data;
2107#line 161
2108  __cil_tmp47 = __cil_tmp46 + __cil_tmp45;
2109#line 161
2110  old_type = *((enum power_supply_type *)__cil_tmp47);
2111  {
2112#line 163
2113  __cil_tmp48 = (unsigned long )data;
2114#line 163
2115  __cil_tmp49 = __cil_tmp48 + 306;
2116#line 163
2117  __cil_tmp50 = *((bool *)__cil_tmp49);
2118#line 163
2119  if ((int )__cil_tmp50) {
2120#line 164
2121    __cil_tmp51 = 40 + 8;
2122#line 164
2123    __cil_tmp52 = (unsigned long )data;
2124#line 164
2125    __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
2126#line 164
2127    *((enum power_supply_type *)__cil_tmp53) = (enum power_supply_type )3;
2128  } else {
2129    {
2130#line 165
2131    __cil_tmp54 = (unsigned long )data;
2132#line 165
2133    __cil_tmp55 = __cil_tmp54 + 305;
2134#line 165
2135    __cil_tmp56 = *((bool *)__cil_tmp55);
2136#line 165
2137    if ((int )__cil_tmp56) {
2138#line 166
2139      __cil_tmp57 = 40 + 8;
2140#line 166
2141      __cil_tmp58 = (unsigned long )data;
2142#line 166
2143      __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
2144#line 166
2145      *((enum power_supply_type *)__cil_tmp59) = (enum power_supply_type )4;
2146    } else {
2147#line 168
2148      __cil_tmp60 = 40 + 8;
2149#line 168
2150      __cil_tmp61 = (unsigned long )data;
2151#line 168
2152      __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
2153#line 168
2154      *((enum power_supply_type *)__cil_tmp62) = (enum power_supply_type )1;
2155    }
2156    }
2157  }
2158  }
2159  {
2160#line 170
2161  __cil_tmp63 = (unsigned int )old_type;
2162#line 170
2163  __cil_tmp64 = 40 + 8;
2164#line 170
2165  __cil_tmp65 = (unsigned long )data;
2166#line 170
2167  __cil_tmp66 = __cil_tmp65 + __cil_tmp64;
2168#line 170
2169  __cil_tmp67 = *((enum power_supply_type *)__cil_tmp66);
2170#line 170
2171  __cil_tmp68 = (unsigned int )__cil_tmp67;
2172#line 170
2173  if (__cil_tmp68 != __cil_tmp63) {
2174    {
2175#line 171
2176    __cil_tmp69 = (unsigned long )data;
2177#line 171
2178    __cil_tmp70 = __cil_tmp69 + 40;
2179#line 171
2180    __cil_tmp71 = (struct power_supply *)__cil_tmp70;
2181#line 171
2182    power_supply_changed(__cil_tmp71);
2183    }
2184  } else {
2185
2186  }
2187  }
2188#line 173
2189  return ((irqreturn_t )1);
2190}
2191}
2192#line 176 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
2193static irqreturn_t max8903_fault(int irq , void *_data___0 ) 
2194{ struct max8903_data *data ;
2195  struct max8903_pdata *pdata ;
2196  bool fault ;
2197  int tmp ;
2198  unsigned long __cil_tmp7 ;
2199  unsigned long __cil_tmp8 ;
2200  int __cil_tmp9 ;
2201  unsigned int __cil_tmp10 ;
2202  int __cil_tmp11 ;
2203  int __cil_tmp12 ;
2204  unsigned long __cil_tmp13 ;
2205  unsigned long __cil_tmp14 ;
2206  bool __cil_tmp15 ;
2207  int __cil_tmp16 ;
2208  unsigned long __cil_tmp17 ;
2209  unsigned long __cil_tmp18 ;
2210  unsigned long __cil_tmp19 ;
2211  unsigned long __cil_tmp20 ;
2212  struct device *__cil_tmp21 ;
2213  struct device  const  *__cil_tmp22 ;
2214  unsigned long __cil_tmp23 ;
2215  unsigned long __cil_tmp24 ;
2216  struct device *__cil_tmp25 ;
2217  struct device  const  *__cil_tmp26 ;
2218
2219  {
2220  {
2221#line 178
2222  data = (struct max8903_data *)_data___0;
2223#line 179
2224  pdata = (struct max8903_pdata *)data;
2225#line 182
2226  __cil_tmp7 = (unsigned long )pdata;
2227#line 182
2228  __cil_tmp8 = __cil_tmp7 + 16;
2229#line 182
2230  __cil_tmp9 = *((int *)__cil_tmp8);
2231#line 182
2232  __cil_tmp10 = (unsigned int )__cil_tmp9;
2233#line 182
2234  tmp = gpio_get_value(__cil_tmp10);
2235#line 182
2236  __cil_tmp11 = tmp == 0;
2237#line 182
2238  fault = (bool )__cil_tmp11;
2239  }
2240  {
2241#line 184
2242  __cil_tmp12 = (int )fault;
2243#line 184
2244  __cil_tmp13 = (unsigned long )data;
2245#line 184
2246  __cil_tmp14 = __cil_tmp13 + 304;
2247#line 184
2248  __cil_tmp15 = *((bool *)__cil_tmp14);
2249#line 184
2250  __cil_tmp16 = (int )__cil_tmp15;
2251#line 184
2252  if (__cil_tmp16 == __cil_tmp12) {
2253#line 185
2254    return ((irqreturn_t )1);
2255  } else {
2256
2257  }
2258  }
2259#line 187
2260  __cil_tmp17 = (unsigned long )data;
2261#line 187
2262  __cil_tmp18 = __cil_tmp17 + 304;
2263#line 187
2264  *((bool *)__cil_tmp18) = fault;
2265#line 189
2266  if ((int )fault) {
2267    {
2268#line 190
2269    __cil_tmp19 = (unsigned long )data;
2270#line 190
2271    __cil_tmp20 = __cil_tmp19 + 32;
2272#line 190
2273    __cil_tmp21 = *((struct device **)__cil_tmp20);
2274#line 190
2275    __cil_tmp22 = (struct device  const  *)__cil_tmp21;
2276#line 190
2277    dev_err(__cil_tmp22, "Charger suffers a fault and stops.\n");
2278    }
2279  } else {
2280    {
2281#line 192
2282    __cil_tmp23 = (unsigned long )data;
2283#line 192
2284    __cil_tmp24 = __cil_tmp23 + 32;
2285#line 192
2286    __cil_tmp25 = *((struct device **)__cil_tmp24);
2287#line 192
2288    __cil_tmp26 = (struct device  const  *)__cil_tmp25;
2289#line 192
2290    dev_err(__cil_tmp26, "Charger recovered from a fault.\n");
2291    }
2292  }
2293#line 194
2294  return ((irqreturn_t )1);
2295}
2296}
2297#line 197 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
2298static int max8903_probe(struct platform_device *pdev ) 
2299{ struct max8903_data *data ;
2300  struct device *dev ;
2301  struct max8903_pdata *pdata ;
2302  int ret ;
2303  int gpio ;
2304  int ta_in ;
2305  int usb_in ;
2306  void *tmp ;
2307  size_t __len ;
2308  void *__ret ;
2309  int tmp___0 ;
2310  bool tmp___1 ;
2311  bool tmp___2 ;
2312  bool tmp___3 ;
2313  int tmp___4 ;
2314  bool tmp___5 ;
2315  int tmp___6 ;
2316  bool tmp___7 ;
2317  bool tmp___8 ;
2318  int tmp___9 ;
2319  bool tmp___10 ;
2320  int tmp___11 ;
2321  bool tmp___12 ;
2322  int tmp___13 ;
2323  int tmp___14 ;
2324  int tmp___15 ;
2325  int tmp___16 ;
2326  int tmp___17 ;
2327  int tmp___18 ;
2328  int tmp___19 ;
2329  int tmp___20 ;
2330  int tmp___21 ;
2331  int tmp___22 ;
2332  unsigned long __cil_tmp35 ;
2333  unsigned long __cil_tmp36 ;
2334  unsigned long __cil_tmp37 ;
2335  unsigned long __cil_tmp38 ;
2336  unsigned long __cil_tmp39 ;
2337  void *__cil_tmp40 ;
2338  struct max8903_data *__cil_tmp41 ;
2339  unsigned long __cil_tmp42 ;
2340  unsigned long __cil_tmp43 ;
2341  struct device  const  *__cil_tmp44 ;
2342  struct max8903_pdata *__cil_tmp45 ;
2343  void *__cil_tmp46 ;
2344  void const   *__cil_tmp47 ;
2345  struct max8903_pdata *__cil_tmp48 ;
2346  void *__cil_tmp49 ;
2347  void const   *__cil_tmp50 ;
2348  unsigned long __cil_tmp51 ;
2349  unsigned long __cil_tmp52 ;
2350  void *__cil_tmp53 ;
2351  unsigned long __cil_tmp54 ;
2352  unsigned long __cil_tmp55 ;
2353  bool __cil_tmp56 ;
2354  unsigned long __cil_tmp57 ;
2355  unsigned long __cil_tmp58 ;
2356  bool __cil_tmp59 ;
2357  struct device  const  *__cil_tmp60 ;
2358  unsigned long __cil_tmp61 ;
2359  unsigned long __cil_tmp62 ;
2360  bool __cil_tmp63 ;
2361  unsigned long __cil_tmp64 ;
2362  unsigned long __cil_tmp65 ;
2363  int __cil_tmp66 ;
2364  unsigned long __cil_tmp67 ;
2365  unsigned long __cil_tmp68 ;
2366  int __cil_tmp69 ;
2367  unsigned long __cil_tmp70 ;
2368  unsigned long __cil_tmp71 ;
2369  int __cil_tmp72 ;
2370  unsigned long __cil_tmp73 ;
2371  unsigned long __cil_tmp74 ;
2372  int __cil_tmp75 ;
2373  unsigned long __cil_tmp76 ;
2374  unsigned long __cil_tmp77 ;
2375  unsigned int __cil_tmp78 ;
2376  unsigned long __cil_tmp79 ;
2377  unsigned long __cil_tmp80 ;
2378  unsigned int __cil_tmp81 ;
2379  struct device  const  *__cil_tmp82 ;
2380  struct device  const  *__cil_tmp83 ;
2381  struct device  const  *__cil_tmp84 ;
2382  struct device  const  *__cil_tmp85 ;
2383  unsigned long __cil_tmp86 ;
2384  unsigned long __cil_tmp87 ;
2385  int __cil_tmp88 ;
2386  unsigned long __cil_tmp89 ;
2387  unsigned long __cil_tmp90 ;
2388  int __cil_tmp91 ;
2389  unsigned long __cil_tmp92 ;
2390  unsigned long __cil_tmp93 ;
2391  int __cil_tmp94 ;
2392  unsigned int __cil_tmp95 ;
2393  struct device  const  *__cil_tmp96 ;
2394  unsigned long __cil_tmp97 ;
2395  unsigned long __cil_tmp98 ;
2396  bool __cil_tmp99 ;
2397  unsigned long __cil_tmp100 ;
2398  unsigned long __cil_tmp101 ;
2399  int __cil_tmp102 ;
2400  unsigned long __cil_tmp103 ;
2401  unsigned long __cil_tmp104 ;
2402  int __cil_tmp105 ;
2403  unsigned long __cil_tmp106 ;
2404  unsigned long __cil_tmp107 ;
2405  unsigned int __cil_tmp108 ;
2406  struct device  const  *__cil_tmp109 ;
2407  struct device  const  *__cil_tmp110 ;
2408  int __cil_tmp111 ;
2409  int __cil_tmp112 ;
2410  int __cil_tmp113 ;
2411  unsigned int __cil_tmp114 ;
2412  struct device  const  *__cil_tmp115 ;
2413  unsigned long __cil_tmp116 ;
2414  unsigned long __cil_tmp117 ;
2415  int __cil_tmp118 ;
2416  unsigned long __cil_tmp119 ;
2417  unsigned long __cil_tmp120 ;
2418  int __cil_tmp121 ;
2419  struct device  const  *__cil_tmp122 ;
2420  unsigned long __cil_tmp123 ;
2421  unsigned long __cil_tmp124 ;
2422  int __cil_tmp125 ;
2423  unsigned long __cil_tmp126 ;
2424  unsigned long __cil_tmp127 ;
2425  int __cil_tmp128 ;
2426  struct device  const  *__cil_tmp129 ;
2427  unsigned long __cil_tmp130 ;
2428  unsigned long __cil_tmp131 ;
2429  int __cil_tmp132 ;
2430  unsigned long __cil_tmp133 ;
2431  unsigned long __cil_tmp134 ;
2432  int __cil_tmp135 ;
2433  struct device  const  *__cil_tmp136 ;
2434  unsigned long __cil_tmp137 ;
2435  unsigned long __cil_tmp138 ;
2436  unsigned long __cil_tmp139 ;
2437  unsigned long __cil_tmp140 ;
2438  int __cil_tmp141 ;
2439  unsigned long __cil_tmp142 ;
2440  unsigned long __cil_tmp143 ;
2441  int __cil_tmp144 ;
2442  unsigned long __cil_tmp145 ;
2443  unsigned long __cil_tmp146 ;
2444  unsigned long __cil_tmp147 ;
2445  unsigned long __cil_tmp148 ;
2446  unsigned long __cil_tmp149 ;
2447  unsigned long __cil_tmp150 ;
2448  unsigned long __cil_tmp151 ;
2449  unsigned long __cil_tmp152 ;
2450  unsigned long __cil_tmp153 ;
2451  unsigned long __cil_tmp154 ;
2452  unsigned long __cil_tmp155 ;
2453  unsigned long __cil_tmp156 ;
2454  unsigned long __cil_tmp157 ;
2455  unsigned long __cil_tmp158 ;
2456  unsigned long __cil_tmp159 ;
2457  unsigned long __cil_tmp160 ;
2458  unsigned long __cil_tmp161 ;
2459  unsigned long __cil_tmp162 ;
2460  unsigned long __cil_tmp163 ;
2461  struct power_supply *__cil_tmp164 ;
2462  struct device  const  *__cil_tmp165 ;
2463  unsigned long __cil_tmp166 ;
2464  unsigned long __cil_tmp167 ;
2465  bool __cil_tmp168 ;
2466  unsigned long __cil_tmp169 ;
2467  unsigned long __cil_tmp170 ;
2468  int __cil_tmp171 ;
2469  unsigned int __cil_tmp172 ;
2470  unsigned int __cil_tmp173 ;
2471  irqreturn_t (*__cil_tmp174)(int  , void * ) ;
2472  void *__cil_tmp175 ;
2473  unsigned long __cil_tmp176 ;
2474  unsigned long __cil_tmp177 ;
2475  int __cil_tmp178 ;
2476  unsigned int __cil_tmp179 ;
2477  struct device  const  *__cil_tmp180 ;
2478  unsigned long __cil_tmp181 ;
2479  unsigned long __cil_tmp182 ;
2480  bool __cil_tmp183 ;
2481  unsigned long __cil_tmp184 ;
2482  unsigned long __cil_tmp185 ;
2483  int __cil_tmp186 ;
2484  unsigned int __cil_tmp187 ;
2485  unsigned int __cil_tmp188 ;
2486  irqreturn_t (*__cil_tmp189)(int  , void * ) ;
2487  void *__cil_tmp190 ;
2488  unsigned long __cil_tmp191 ;
2489  unsigned long __cil_tmp192 ;
2490  int __cil_tmp193 ;
2491  unsigned int __cil_tmp194 ;
2492  struct device  const  *__cil_tmp195 ;
2493  unsigned long __cil_tmp196 ;
2494  unsigned long __cil_tmp197 ;
2495  int __cil_tmp198 ;
2496  unsigned long __cil_tmp199 ;
2497  unsigned long __cil_tmp200 ;
2498  int __cil_tmp201 ;
2499  unsigned int __cil_tmp202 ;
2500  unsigned int __cil_tmp203 ;
2501  irqreturn_t (*__cil_tmp204)(int  , void * ) ;
2502  void *__cil_tmp205 ;
2503  unsigned long __cil_tmp206 ;
2504  unsigned long __cil_tmp207 ;
2505  int __cil_tmp208 ;
2506  unsigned int __cil_tmp209 ;
2507  struct device  const  *__cil_tmp210 ;
2508  unsigned long __cil_tmp211 ;
2509  unsigned long __cil_tmp212 ;
2510  bool __cil_tmp213 ;
2511  unsigned long __cil_tmp214 ;
2512  unsigned long __cil_tmp215 ;
2513  int __cil_tmp216 ;
2514  unsigned int __cil_tmp217 ;
2515  unsigned int __cil_tmp218 ;
2516  void *__cil_tmp219 ;
2517  unsigned long __cil_tmp220 ;
2518  unsigned long __cil_tmp221 ;
2519  bool __cil_tmp222 ;
2520  unsigned long __cil_tmp223 ;
2521  unsigned long __cil_tmp224 ;
2522  int __cil_tmp225 ;
2523  unsigned int __cil_tmp226 ;
2524  unsigned int __cil_tmp227 ;
2525  void *__cil_tmp228 ;
2526  unsigned long __cil_tmp229 ;
2527  unsigned long __cil_tmp230 ;
2528  struct power_supply *__cil_tmp231 ;
2529  void const   *__cil_tmp232 ;
2530
2531  {
2532  {
2533#line 200
2534  __cil_tmp35 = (unsigned long )pdev;
2535#line 200
2536  __cil_tmp36 = __cil_tmp35 + 16;
2537#line 200
2538  dev = (struct device *)__cil_tmp36;
2539#line 201
2540  __cil_tmp37 = 16 + 280;
2541#line 201
2542  __cil_tmp38 = (unsigned long )pdev;
2543#line 201
2544  __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
2545#line 201
2546  __cil_tmp40 = *((void **)__cil_tmp39);
2547#line 201
2548  pdata = (struct max8903_pdata *)__cil_tmp40;
2549#line 202
2550  ret = 0;
2551#line 204
2552  ta_in = 0;
2553#line 205
2554  usb_in = 0;
2555#line 207
2556  tmp = kzalloc(312UL, 208U);
2557#line 207
2558  data = (struct max8903_data *)tmp;
2559  }
2560  {
2561#line 208
2562  __cil_tmp41 = (struct max8903_data *)0;
2563#line 208
2564  __cil_tmp42 = (unsigned long )__cil_tmp41;
2565#line 208
2566  __cil_tmp43 = (unsigned long )data;
2567#line 208
2568  if (__cil_tmp43 == __cil_tmp42) {
2569    {
2570#line 209
2571    __cil_tmp44 = (struct device  const  *)dev;
2572#line 209
2573    dev_err(__cil_tmp44, "Cannot allocate memory.\n");
2574    }
2575#line 210
2576    return (-12);
2577  } else {
2578
2579  }
2580  }
2581#line 212
2582  __len = 32UL;
2583#line 212
2584  if (__len > 63UL) {
2585    {
2586#line 212
2587    __cil_tmp45 = (struct max8903_pdata *)data;
2588#line 212
2589    __cil_tmp46 = (void *)__cil_tmp45;
2590#line 212
2591    __cil_tmp47 = (void const   *)pdata;
2592#line 212
2593    __ret = __memcpy(__cil_tmp46, __cil_tmp47, __len);
2594    }
2595  } else {
2596    {
2597#line 212
2598    __cil_tmp48 = (struct max8903_pdata *)data;
2599#line 212
2600    __cil_tmp49 = (void *)__cil_tmp48;
2601#line 212
2602    __cil_tmp50 = (void const   *)pdata;
2603#line 212
2604    __ret = __builtin_memcpy(__cil_tmp49, __cil_tmp50, __len);
2605    }
2606  }
2607  {
2608#line 213
2609  __cil_tmp51 = (unsigned long )data;
2610#line 213
2611  __cil_tmp52 = __cil_tmp51 + 32;
2612#line 213
2613  *((struct device **)__cil_tmp52) = dev;
2614#line 214
2615  __cil_tmp53 = (void *)data;
2616#line 214
2617  platform_set_drvdata(pdev, __cil_tmp53);
2618  }
2619  {
2620#line 216
2621  __cil_tmp54 = (unsigned long )pdata;
2622#line 216
2623  __cil_tmp55 = __cil_tmp54 + 28;
2624#line 216
2625  __cil_tmp56 = *((bool *)__cil_tmp55);
2626#line 216
2627  if (! __cil_tmp56) {
2628    {
2629#line 216
2630    __cil_tmp57 = (unsigned long )pdata;
2631#line 216
2632    __cil_tmp58 = __cil_tmp57 + 29;
2633#line 216
2634    __cil_tmp59 = *((bool *)__cil_tmp58);
2635#line 216
2636    if (! __cil_tmp59) {
2637      {
2638#line 217
2639      __cil_tmp60 = (struct device  const  *)dev;
2640#line 217
2641      dev_err(__cil_tmp60, "No valid power sources.\n");
2642#line 218
2643      ret = -22;
2644      }
2645#line 219
2646      goto err;
2647    } else {
2648
2649    }
2650    }
2651  } else {
2652
2653  }
2654  }
2655  {
2656#line 222
2657  __cil_tmp61 = (unsigned long )pdata;
2658#line 222
2659  __cil_tmp62 = __cil_tmp61 + 28;
2660#line 222
2661  __cil_tmp63 = *((bool *)__cil_tmp62);
2662#line 222
2663  if ((int )__cil_tmp63) {
2664    {
2665#line 223
2666    __cil_tmp64 = (unsigned long )pdata;
2667#line 223
2668    __cil_tmp65 = __cil_tmp64 + 4;
2669#line 223
2670    __cil_tmp66 = *((int *)__cil_tmp65);
2671#line 223
2672    if (__cil_tmp66 != 0) {
2673      {
2674#line 223
2675      __cil_tmp67 = (unsigned long )pdata;
2676#line 223
2677      __cil_tmp68 = __cil_tmp67 + 4;
2678#line 223
2679      __cil_tmp69 = *((int *)__cil_tmp68);
2680#line 223
2681      tmp___1 = gpio_is_valid(__cil_tmp69);
2682      }
2683#line 223
2684      if ((int )tmp___1) {
2685        {
2686#line 223
2687        __cil_tmp70 = (unsigned long )pdata;
2688#line 223
2689        __cil_tmp71 = __cil_tmp70 + 20;
2690#line 223
2691        __cil_tmp72 = *((int *)__cil_tmp71);
2692#line 223
2693        if (__cil_tmp72 != 0) {
2694          {
2695#line 223
2696          __cil_tmp73 = (unsigned long )pdata;
2697#line 223
2698          __cil_tmp74 = __cil_tmp73 + 20;
2699#line 223
2700          __cil_tmp75 = *((int *)__cil_tmp74);
2701#line 223
2702          tmp___2 = gpio_is_valid(__cil_tmp75);
2703          }
2704#line 223
2705          if ((int )tmp___2) {
2706            {
2707#line 225
2708            __cil_tmp76 = (unsigned long )pdata;
2709#line 225
2710            __cil_tmp77 = __cil_tmp76 + 4;
2711#line 225
2712            gpio = *((int *)__cil_tmp77);
2713#line 226
2714            __cil_tmp78 = (unsigned int )gpio;
2715#line 226
2716            tmp___0 = gpio_get_value(__cil_tmp78);
2717#line 226
2718            ta_in = tmp___0 == 0;
2719#line 228
2720            __cil_tmp79 = (unsigned long )pdata;
2721#line 228
2722            __cil_tmp80 = __cil_tmp79 + 20;
2723#line 228
2724            gpio = *((int *)__cil_tmp80);
2725#line 229
2726            __cil_tmp81 = (unsigned int )gpio;
2727#line 229
2728            gpio_set_value(__cil_tmp81, ta_in);
2729            }
2730          } else {
2731            {
2732#line 231
2733            __cil_tmp82 = (struct device  const  *)dev;
2734#line 231
2735            dev_err(__cil_tmp82, "When DC is wired, DOK and DCM should be wired as well.\n");
2736#line 233
2737            ret = -22;
2738            }
2739#line 234
2740            goto err;
2741          }
2742        } else {
2743          {
2744#line 231
2745          __cil_tmp83 = (struct device  const  *)dev;
2746#line 231
2747          dev_err(__cil_tmp83, "When DC is wired, DOK and DCM should be wired as well.\n");
2748#line 233
2749          ret = -22;
2750          }
2751#line 234
2752          goto err;
2753        }
2754        }
2755      } else {
2756        {
2757#line 231
2758        __cil_tmp84 = (struct device  const  *)dev;
2759#line 231
2760        dev_err(__cil_tmp84, "When DC is wired, DOK and DCM should be wired as well.\n");
2761#line 233
2762        ret = -22;
2763        }
2764#line 234
2765        goto err;
2766      }
2767    } else {
2768      {
2769#line 231
2770      __cil_tmp85 = (struct device  const  *)dev;
2771#line 231
2772      dev_err(__cil_tmp85, "When DC is wired, DOK and DCM should be wired as well.\n");
2773#line 233
2774      ret = -22;
2775      }
2776#line 234
2777      goto err;
2778    }
2779    }
2780  } else {
2781    {
2782#line 237
2783    __cil_tmp86 = (unsigned long )pdata;
2784#line 237
2785    __cil_tmp87 = __cil_tmp86 + 20;
2786#line 237
2787    __cil_tmp88 = *((int *)__cil_tmp87);
2788#line 237
2789    if (__cil_tmp88 != 0) {
2790      {
2791#line 238
2792      __cil_tmp89 = (unsigned long )pdata;
2793#line 238
2794      __cil_tmp90 = __cil_tmp89 + 20;
2795#line 238
2796      __cil_tmp91 = *((int *)__cil_tmp90);
2797#line 238
2798      tmp___3 = gpio_is_valid(__cil_tmp91);
2799      }
2800#line 238
2801      if ((int )tmp___3) {
2802        {
2803#line 239
2804        __cil_tmp92 = (unsigned long )pdata;
2805#line 239
2806        __cil_tmp93 = __cil_tmp92 + 20;
2807#line 239
2808        __cil_tmp94 = *((int *)__cil_tmp93);
2809#line 239
2810        __cil_tmp95 = (unsigned int )__cil_tmp94;
2811#line 239
2812        gpio_set_value(__cil_tmp95, 0);
2813        }
2814      } else {
2815        {
2816#line 241
2817        __cil_tmp96 = (struct device  const  *)dev;
2818#line 241
2819        dev_err(__cil_tmp96, "Invalid pin: dcm.\n");
2820#line 242
2821        ret = -22;
2822        }
2823#line 243
2824        goto err;
2825      }
2826    } else {
2827
2828    }
2829    }
2830  }
2831  }
2832  {
2833#line 248
2834  __cil_tmp97 = (unsigned long )pdata;
2835#line 248
2836  __cil_tmp98 = __cil_tmp97 + 29;
2837#line 248
2838  __cil_tmp99 = *((bool *)__cil_tmp98);
2839#line 248
2840  if ((int )__cil_tmp99) {
2841    {
2842#line 249
2843    __cil_tmp100 = (unsigned long )pdata;
2844#line 249
2845    __cil_tmp101 = __cil_tmp100 + 8;
2846#line 249
2847    __cil_tmp102 = *((int *)__cil_tmp101);
2848#line 249
2849    if (__cil_tmp102 != 0) {
2850      {
2851#line 249
2852      __cil_tmp103 = (unsigned long )pdata;
2853#line 249
2854      __cil_tmp104 = __cil_tmp103 + 8;
2855#line 249
2856      __cil_tmp105 = *((int *)__cil_tmp104);
2857#line 249
2858      tmp___5 = gpio_is_valid(__cil_tmp105);
2859      }
2860#line 249
2861      if ((int )tmp___5) {
2862        {
2863#line 250
2864        __cil_tmp106 = (unsigned long )pdata;
2865#line 250
2866        __cil_tmp107 = __cil_tmp106 + 8;
2867#line 250
2868        gpio = *((int *)__cil_tmp107);
2869#line 251
2870        __cil_tmp108 = (unsigned int )gpio;
2871#line 251
2872        tmp___4 = gpio_get_value(__cil_tmp108);
2873#line 251
2874        usb_in = tmp___4 == 0;
2875        }
2876      } else {
2877        {
2878#line 253
2879        __cil_tmp109 = (struct device  const  *)dev;
2880#line 253
2881        dev_err(__cil_tmp109, "When USB is wired, UOK should be wired.as well.\n");
2882#line 255
2883        ret = -22;
2884        }
2885#line 256
2886        goto err;
2887      }
2888    } else {
2889      {
2890#line 253
2891      __cil_tmp110 = (struct device  const  *)dev;
2892#line 253
2893      dev_err(__cil_tmp110, "When USB is wired, UOK should be wired.as well.\n");
2894#line 255
2895      ret = -22;
2896      }
2897#line 256
2898      goto err;
2899    }
2900    }
2901  } else {
2902
2903  }
2904  }
2905  {
2906#line 260
2907  __cil_tmp111 = *((int *)pdata);
2908#line 260
2909  if (__cil_tmp111 != 0) {
2910    {
2911#line 261
2912    __cil_tmp112 = *((int *)pdata);
2913#line 261
2914    tmp___7 = gpio_is_valid(__cil_tmp112);
2915    }
2916#line 261
2917    if ((int )tmp___7) {
2918#line 262
2919      if (ta_in == 0) {
2920#line 262
2921        if (usb_in == 0) {
2922#line 262
2923          tmp___6 = 1;
2924        } else {
2925#line 262
2926          tmp___6 = 0;
2927        }
2928      } else {
2929#line 262
2930        tmp___6 = 0;
2931      }
2932      {
2933#line 262
2934      __cil_tmp113 = *((int *)pdata);
2935#line 262
2936      __cil_tmp114 = (unsigned int )__cil_tmp113;
2937#line 262
2938      gpio_set_value(__cil_tmp114, tmp___6);
2939      }
2940    } else {
2941      {
2942#line 264
2943      __cil_tmp115 = (struct device  const  *)dev;
2944#line 264
2945      dev_err(__cil_tmp115, "Invalid pin: cen.\n");
2946#line 265
2947      ret = -22;
2948      }
2949#line 266
2950      goto err;
2951    }
2952  } else {
2953
2954  }
2955  }
2956  {
2957#line 270
2958  __cil_tmp116 = (unsigned long )pdata;
2959#line 270
2960  __cil_tmp117 = __cil_tmp116 + 12;
2961#line 270
2962  __cil_tmp118 = *((int *)__cil_tmp117);
2963#line 270
2964  if (__cil_tmp118 != 0) {
2965    {
2966#line 271
2967    __cil_tmp119 = (unsigned long )pdata;
2968#line 271
2969    __cil_tmp120 = __cil_tmp119 + 12;
2970#line 271
2971    __cil_tmp121 = *((int *)__cil_tmp120);
2972#line 271
2973    tmp___8 = gpio_is_valid(__cil_tmp121);
2974    }
2975#line 271
2976    if (tmp___8) {
2977#line 271
2978      tmp___9 = 0;
2979    } else {
2980#line 271
2981      tmp___9 = 1;
2982    }
2983#line 271
2984    if (tmp___9) {
2985      {
2986#line 272
2987      __cil_tmp122 = (struct device  const  *)dev;
2988#line 272
2989      dev_err(__cil_tmp122, "Invalid pin: chg.\n");
2990#line 273
2991      ret = -22;
2992      }
2993#line 274
2994      goto err;
2995    } else {
2996
2997    }
2998  } else {
2999
3000  }
3001  }
3002  {
3003#line 278
3004  __cil_tmp123 = (unsigned long )pdata;
3005#line 278
3006  __cil_tmp124 = __cil_tmp123 + 16;
3007#line 278
3008  __cil_tmp125 = *((int *)__cil_tmp124);
3009#line 278
3010  if (__cil_tmp125 != 0) {
3011    {
3012#line 279
3013    __cil_tmp126 = (unsigned long )pdata;
3014#line 279
3015    __cil_tmp127 = __cil_tmp126 + 16;
3016#line 279
3017    __cil_tmp128 = *((int *)__cil_tmp127);
3018#line 279
3019    tmp___10 = gpio_is_valid(__cil_tmp128);
3020    }
3021#line 279
3022    if (tmp___10) {
3023#line 279
3024      tmp___11 = 0;
3025    } else {
3026#line 279
3027      tmp___11 = 1;
3028    }
3029#line 279
3030    if (tmp___11) {
3031      {
3032#line 280
3033      __cil_tmp129 = (struct device  const  *)dev;
3034#line 280
3035      dev_err(__cil_tmp129, "Invalid pin: flt.\n");
3036#line 281
3037      ret = -22;
3038      }
3039#line 282
3040      goto err;
3041    } else {
3042
3043    }
3044  } else {
3045
3046  }
3047  }
3048  {
3049#line 286
3050  __cil_tmp130 = (unsigned long )pdata;
3051#line 286
3052  __cil_tmp131 = __cil_tmp130 + 24;
3053#line 286
3054  __cil_tmp132 = *((int *)__cil_tmp131);
3055#line 286
3056  if (__cil_tmp132 != 0) {
3057    {
3058#line 287
3059    __cil_tmp133 = (unsigned long )pdata;
3060#line 287
3061    __cil_tmp134 = __cil_tmp133 + 24;
3062#line 287
3063    __cil_tmp135 = *((int *)__cil_tmp134);
3064#line 287
3065    tmp___12 = gpio_is_valid(__cil_tmp135);
3066    }
3067#line 287
3068    if (tmp___12) {
3069#line 287
3070      tmp___13 = 0;
3071    } else {
3072#line 287
3073      tmp___13 = 1;
3074    }
3075#line 287
3076    if (tmp___13) {
3077      {
3078#line 288
3079      __cil_tmp136 = (struct device  const  *)dev;
3080#line 288
3081      dev_err(__cil_tmp136, "Invalid pin: usus.\n");
3082#line 289
3083      ret = -22;
3084      }
3085#line 290
3086      goto err;
3087    } else {
3088
3089    }
3090  } else {
3091
3092  }
3093  }
3094#line 294
3095  __cil_tmp137 = (unsigned long )data;
3096#line 294
3097  __cil_tmp138 = __cil_tmp137 + 304;
3098#line 294
3099  *((bool *)__cil_tmp138) = (bool )0;
3100#line 295
3101  __cil_tmp139 = (unsigned long )data;
3102#line 295
3103  __cil_tmp140 = __cil_tmp139 + 306;
3104#line 295
3105  __cil_tmp141 = ta_in != 0;
3106#line 295
3107  *((bool *)__cil_tmp140) = (bool )__cil_tmp141;
3108#line 296
3109  __cil_tmp142 = (unsigned long )data;
3110#line 296
3111  __cil_tmp143 = __cil_tmp142 + 305;
3112#line 296
3113  __cil_tmp144 = usb_in != 0;
3114#line 296
3115  *((bool *)__cil_tmp143) = (bool )__cil_tmp144;
3116#line 298
3117  __cil_tmp145 = (unsigned long )data;
3118#line 298
3119  __cil_tmp146 = __cil_tmp145 + 40;
3120#line 298
3121  *((char const   **)__cil_tmp146) = "max8903_charger";
3122#line 299
3123  if (ta_in == 0) {
3124#line 299
3125    if (usb_in != 0) {
3126#line 299
3127      tmp___14 = 4;
3128    } else {
3129#line 299
3130      tmp___14 = 1;
3131    }
3132#line 299
3133    __cil_tmp147 = 40 + 8;
3134#line 299
3135    __cil_tmp148 = (unsigned long )data;
3136#line 299
3137    __cil_tmp149 = __cil_tmp148 + __cil_tmp147;
3138#line 299
3139    *((enum power_supply_type *)__cil_tmp149) = (enum power_supply_type )tmp___14;
3140  } else {
3141#line 299
3142    __cil_tmp150 = 40 + 8;
3143#line 299
3144    __cil_tmp151 = (unsigned long )data;
3145#line 299
3146    __cil_tmp152 = __cil_tmp151 + __cil_tmp150;
3147#line 299
3148    *((enum power_supply_type *)__cil_tmp152) = (enum power_supply_type )3;
3149  }
3150  {
3151#line 302
3152  __cil_tmp153 = 40 + 48;
3153#line 302
3154  __cil_tmp154 = (unsigned long )data;
3155#line 302
3156  __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
3157#line 302
3158  *((int (**)(struct power_supply * , enum power_supply_property  , union power_supply_propval * ))__cil_tmp155) = & max8903_get_property;
3159#line 303
3160  __cil_tmp156 = 40 + 16;
3161#line 303
3162  __cil_tmp157 = (unsigned long )data;
3163#line 303
3164  __cil_tmp158 = __cil_tmp157 + __cil_tmp156;
3165#line 303
3166  *((enum power_supply_property **)__cil_tmp158) = (enum power_supply_property *)(& max8903_charger_props);
3167#line 304
3168  __cil_tmp159 = 40 + 24;
3169#line 304
3170  __cil_tmp160 = (unsigned long )data;
3171#line 304
3172  __cil_tmp161 = __cil_tmp160 + __cil_tmp159;
3173#line 304
3174  *((size_t *)__cil_tmp161) = 3UL;
3175#line 306
3176  __cil_tmp162 = (unsigned long )data;
3177#line 306
3178  __cil_tmp163 = __cil_tmp162 + 40;
3179#line 306
3180  __cil_tmp164 = (struct power_supply *)__cil_tmp163;
3181#line 306
3182  ret = power_supply_register(dev, __cil_tmp164);
3183  }
3184#line 307
3185  if (ret != 0) {
3186    {
3187#line 308
3188    __cil_tmp165 = (struct device  const  *)dev;
3189#line 308
3190    dev_err(__cil_tmp165, "failed: power supply register.\n");
3191    }
3192#line 309
3193    goto err;
3194  } else {
3195
3196  }
3197  {
3198#line 312
3199  __cil_tmp166 = (unsigned long )pdata;
3200#line 312
3201  __cil_tmp167 = __cil_tmp166 + 28;
3202#line 312
3203  __cil_tmp168 = *((bool *)__cil_tmp167);
3204#line 312
3205  if ((int )__cil_tmp168) {
3206    {
3207#line 313
3208    __cil_tmp169 = (unsigned long )pdata;
3209#line 313
3210    __cil_tmp170 = __cil_tmp169 + 4;
3211#line 313
3212    __cil_tmp171 = *((int *)__cil_tmp170);
3213#line 313
3214    __cil_tmp172 = (unsigned int )__cil_tmp171;
3215#line 313
3216    tmp___15 = gpio_to_irq(__cil_tmp172);
3217#line 313
3218    __cil_tmp173 = (unsigned int )tmp___15;
3219#line 313
3220    __cil_tmp174 = (irqreturn_t (*)(int  , void * ))0;
3221#line 313
3222    __cil_tmp175 = (void *)data;
3223#line 313
3224    ret = request_threaded_irq(__cil_tmp173, __cil_tmp174, & max8903_dcin, 3UL, "MAX8903 DC IN",
3225                               __cil_tmp175);
3226    }
3227#line 317
3228    if (ret != 0) {
3229      {
3230#line 318
3231      __cil_tmp176 = (unsigned long )pdata;
3232#line 318
3233      __cil_tmp177 = __cil_tmp176 + 4;
3234#line 318
3235      __cil_tmp178 = *((int *)__cil_tmp177);
3236#line 318
3237      __cil_tmp179 = (unsigned int )__cil_tmp178;
3238#line 318
3239      tmp___16 = gpio_to_irq(__cil_tmp179);
3240#line 318
3241      __cil_tmp180 = (struct device  const  *)dev;
3242#line 318
3243      dev_err(__cil_tmp180, "Cannot request irq %d for DC (%d)\n", tmp___16, ret);
3244      }
3245#line 320
3246      goto err_psy;
3247    } else {
3248
3249    }
3250  } else {
3251
3252  }
3253  }
3254  {
3255#line 324
3256  __cil_tmp181 = (unsigned long )pdata;
3257#line 324
3258  __cil_tmp182 = __cil_tmp181 + 29;
3259#line 324
3260  __cil_tmp183 = *((bool *)__cil_tmp182);
3261#line 324
3262  if ((int )__cil_tmp183) {
3263    {
3264#line 325
3265    __cil_tmp184 = (unsigned long )pdata;
3266#line 325
3267    __cil_tmp185 = __cil_tmp184 + 8;
3268#line 325
3269    __cil_tmp186 = *((int *)__cil_tmp185);
3270#line 325
3271    __cil_tmp187 = (unsigned int )__cil_tmp186;
3272#line 325
3273    tmp___17 = gpio_to_irq(__cil_tmp187);
3274#line 325
3275    __cil_tmp188 = (unsigned int )tmp___17;
3276#line 325
3277    __cil_tmp189 = (irqreturn_t (*)(int  , void * ))0;
3278#line 325
3279    __cil_tmp190 = (void *)data;
3280#line 325
3281    ret = request_threaded_irq(__cil_tmp188, __cil_tmp189, & max8903_usbin, 3UL, "MAX8903 USB IN",
3282                               __cil_tmp190);
3283    }
3284#line 329
3285    if (ret != 0) {
3286      {
3287#line 330
3288      __cil_tmp191 = (unsigned long )pdata;
3289#line 330
3290      __cil_tmp192 = __cil_tmp191 + 8;
3291#line 330
3292      __cil_tmp193 = *((int *)__cil_tmp192);
3293#line 330
3294      __cil_tmp194 = (unsigned int )__cil_tmp193;
3295#line 330
3296      tmp___18 = gpio_to_irq(__cil_tmp194);
3297#line 330
3298      __cil_tmp195 = (struct device  const  *)dev;
3299#line 330
3300      dev_err(__cil_tmp195, "Cannot request irq %d for USB (%d)\n", tmp___18, ret);
3301      }
3302#line 332
3303      goto err_dc_irq;
3304    } else {
3305
3306    }
3307  } else {
3308
3309  }
3310  }
3311  {
3312#line 336
3313  __cil_tmp196 = (unsigned long )pdata;
3314#line 336
3315  __cil_tmp197 = __cil_tmp196 + 16;
3316#line 336
3317  __cil_tmp198 = *((int *)__cil_tmp197);
3318#line 336
3319  if (__cil_tmp198 != 0) {
3320    {
3321#line 337
3322    __cil_tmp199 = (unsigned long )pdata;
3323#line 337
3324    __cil_tmp200 = __cil_tmp199 + 16;
3325#line 337
3326    __cil_tmp201 = *((int *)__cil_tmp200);
3327#line 337
3328    __cil_tmp202 = (unsigned int )__cil_tmp201;
3329#line 337
3330    tmp___19 = gpio_to_irq(__cil_tmp202);
3331#line 337
3332    __cil_tmp203 = (unsigned int )tmp___19;
3333#line 337
3334    __cil_tmp204 = (irqreturn_t (*)(int  , void * ))0;
3335#line 337
3336    __cil_tmp205 = (void *)data;
3337#line 337
3338    ret = request_threaded_irq(__cil_tmp203, __cil_tmp204, & max8903_fault, 3UL, "MAX8903 Fault",
3339                               __cil_tmp205);
3340    }
3341#line 341
3342    if (ret != 0) {
3343      {
3344#line 342
3345      __cil_tmp206 = (unsigned long )pdata;
3346#line 342
3347      __cil_tmp207 = __cil_tmp206 + 16;
3348#line 342
3349      __cil_tmp208 = *((int *)__cil_tmp207);
3350#line 342
3351      __cil_tmp209 = (unsigned int )__cil_tmp208;
3352#line 342
3353      tmp___20 = gpio_to_irq(__cil_tmp209);
3354#line 342
3355      __cil_tmp210 = (struct device  const  *)dev;
3356#line 342
3357      dev_err(__cil_tmp210, "Cannot request irq %d for Fault (%d)\n", tmp___20, ret);
3358      }
3359#line 344
3360      goto err_usb_irq;
3361    } else {
3362
3363    }
3364  } else {
3365
3366  }
3367  }
3368#line 348
3369  return (0);
3370  err_usb_irq: ;
3371  {
3372#line 351
3373  __cil_tmp211 = (unsigned long )pdata;
3374#line 351
3375  __cil_tmp212 = __cil_tmp211 + 29;
3376#line 351
3377  __cil_tmp213 = *((bool *)__cil_tmp212);
3378#line 351
3379  if ((int )__cil_tmp213) {
3380    {
3381#line 352
3382    __cil_tmp214 = (unsigned long )pdata;
3383#line 352
3384    __cil_tmp215 = __cil_tmp214 + 8;
3385#line 352
3386    __cil_tmp216 = *((int *)__cil_tmp215);
3387#line 352
3388    __cil_tmp217 = (unsigned int )__cil_tmp216;
3389#line 352
3390    tmp___21 = gpio_to_irq(__cil_tmp217);
3391#line 352
3392    __cil_tmp218 = (unsigned int )tmp___21;
3393#line 352
3394    __cil_tmp219 = (void *)data;
3395#line 352
3396    free_irq(__cil_tmp218, __cil_tmp219);
3397    }
3398  } else {
3399
3400  }
3401  }
3402  err_dc_irq: ;
3403  {
3404#line 354
3405  __cil_tmp220 = (unsigned long )pdata;
3406#line 354
3407  __cil_tmp221 = __cil_tmp220 + 28;
3408#line 354
3409  __cil_tmp222 = *((bool *)__cil_tmp221);
3410#line 354
3411  if ((int )__cil_tmp222) {
3412    {
3413#line 355
3414    __cil_tmp223 = (unsigned long )pdata;
3415#line 355
3416    __cil_tmp224 = __cil_tmp223 + 4;
3417#line 355
3418    __cil_tmp225 = *((int *)__cil_tmp224);
3419#line 355
3420    __cil_tmp226 = (unsigned int )__cil_tmp225;
3421#line 355
3422    tmp___22 = gpio_to_irq(__cil_tmp226);
3423#line 355
3424    __cil_tmp227 = (unsigned int )tmp___22;
3425#line 355
3426    __cil_tmp228 = (void *)data;
3427#line 355
3428    free_irq(__cil_tmp227, __cil_tmp228);
3429    }
3430  } else {
3431
3432  }
3433  }
3434  err_psy: 
3435  {
3436#line 357
3437  __cil_tmp229 = (unsigned long )data;
3438#line 357
3439  __cil_tmp230 = __cil_tmp229 + 40;
3440#line 357
3441  __cil_tmp231 = (struct power_supply *)__cil_tmp230;
3442#line 357
3443  power_supply_unregister(__cil_tmp231);
3444  }
3445  err: 
3446  {
3447#line 359
3448  __cil_tmp232 = (void const   *)data;
3449#line 359
3450  kfree(__cil_tmp232);
3451  }
3452#line 360
3453  return (ret);
3454}
3455}
3456#line 415
3457extern void ldv_check_final_state(void) ;
3458#line 418
3459extern void ldv_check_return_value(int  ) ;
3460#line 421
3461extern void ldv_initialize(void) ;
3462#line 424
3463extern int __VERIFIER_nondet_int(void) ;
3464#line 427 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3465int LDV_IN_INTERRUPT  ;
3466#line 430 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3467void main(void) 
3468{ struct platform_device *var_group1 ;
3469  int res_max8903_probe_4 ;
3470  int var_max8903_dcin_1_p0 ;
3471  void *var_max8903_dcin_1_p1 ;
3472  int var_max8903_fault_3_p0 ;
3473  void *var_max8903_fault_3_p1 ;
3474  int var_max8903_usbin_2_p0 ;
3475  void *var_max8903_usbin_2_p1 ;
3476  int ldv_s_max8903_driver_platform_driver ;
3477  int tmp ;
3478  int tmp___0 ;
3479
3480  {
3481  {
3482#line 480
3483  ldv_s_max8903_driver_platform_driver = 0;
3484#line 470
3485  LDV_IN_INTERRUPT = 1;
3486#line 479
3487  ldv_initialize();
3488  }
3489#line 485
3490  goto ldv_17527;
3491  ldv_17526: 
3492  {
3493#line 489
3494  tmp = __VERIFIER_nondet_int();
3495  }
3496#line 491
3497  if (tmp == 0) {
3498#line 491
3499    goto case_0;
3500  } else
3501#line 510
3502  if (tmp == 1) {
3503#line 510
3504    goto case_1;
3505  } else
3506#line 526
3507  if (tmp == 2) {
3508#line 526
3509    goto case_2;
3510  } else
3511#line 542
3512  if (tmp == 3) {
3513#line 542
3514    goto case_3;
3515  } else {
3516    {
3517#line 558
3518    goto switch_default;
3519#line 489
3520    if (0) {
3521      case_0: /* CIL Label */ ;
3522#line 494
3523      if (ldv_s_max8903_driver_platform_driver == 0) {
3524        {
3525#line 499
3526        res_max8903_probe_4 = max8903_probe(var_group1);
3527#line 500
3528        ldv_check_return_value(res_max8903_probe_4);
3529        }
3530#line 501
3531        if (res_max8903_probe_4 != 0) {
3532#line 502
3533          goto ldv_module_exit;
3534        } else {
3535
3536        }
3537#line 503
3538        ldv_s_max8903_driver_platform_driver = 0;
3539      } else {
3540
3541      }
3542#line 509
3543      goto ldv_17521;
3544      case_1: /* CIL Label */ 
3545      {
3546#line 513
3547      LDV_IN_INTERRUPT = 2;
3548#line 518
3549      max8903_dcin(var_max8903_dcin_1_p0, var_max8903_dcin_1_p1);
3550#line 519
3551      LDV_IN_INTERRUPT = 1;
3552      }
3553#line 525
3554      goto ldv_17521;
3555      case_2: /* CIL Label */ 
3556      {
3557#line 529
3558      LDV_IN_INTERRUPT = 2;
3559#line 534
3560      max8903_fault(var_max8903_fault_3_p0, var_max8903_fault_3_p1);
3561#line 535
3562      LDV_IN_INTERRUPT = 1;
3563      }
3564#line 541
3565      goto ldv_17521;
3566      case_3: /* CIL Label */ 
3567      {
3568#line 545
3569      LDV_IN_INTERRUPT = 2;
3570#line 550
3571      max8903_usbin(var_max8903_usbin_2_p0, var_max8903_usbin_2_p1);
3572#line 551
3573      LDV_IN_INTERRUPT = 1;
3574      }
3575#line 557
3576      goto ldv_17521;
3577      switch_default: /* CIL Label */ ;
3578#line 558
3579      goto ldv_17521;
3580    } else {
3581      switch_break: /* CIL Label */ ;
3582    }
3583    }
3584  }
3585  ldv_17521: ;
3586  ldv_17527: 
3587  {
3588#line 485
3589  tmp___0 = __VERIFIER_nondet_int();
3590  }
3591#line 485
3592  if (tmp___0 != 0) {
3593#line 487
3594    goto ldv_17526;
3595  } else
3596#line 485
3597  if (ldv_s_max8903_driver_platform_driver != 0) {
3598#line 487
3599    goto ldv_17526;
3600  } else {
3601#line 489
3602    goto ldv_17528;
3603  }
3604  ldv_17528: ;
3605  ldv_module_exit: ;
3606  {
3607#line 567
3608  ldv_check_final_state();
3609  }
3610#line 570
3611  return;
3612}
3613}
3614#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
3615void ldv_blast_assert(void) 
3616{ 
3617
3618  {
3619  ERROR: ;
3620#line 6
3621  goto ERROR;
3622}
3623}
3624#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
3625extern int __VERIFIER_nondet_int(void) ;
3626#line 591 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3627int ldv_spin  =    0;
3628#line 595 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3629void ldv_check_alloc_flags(gfp_t flags ) 
3630{ 
3631
3632  {
3633#line 598
3634  if (ldv_spin != 0) {
3635#line 598
3636    if (flags != 32U) {
3637      {
3638#line 598
3639      ldv_blast_assert();
3640      }
3641    } else {
3642
3643    }
3644  } else {
3645
3646  }
3647#line 601
3648  return;
3649}
3650}
3651#line 601
3652extern struct page *ldv_some_page(void) ;
3653#line 604 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3654struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
3655{ struct page *tmp ;
3656
3657  {
3658#line 607
3659  if (ldv_spin != 0) {
3660#line 607
3661    if (flags != 32U) {
3662      {
3663#line 607
3664      ldv_blast_assert();
3665      }
3666    } else {
3667
3668    }
3669  } else {
3670
3671  }
3672  {
3673#line 609
3674  tmp = ldv_some_page();
3675  }
3676#line 609
3677  return (tmp);
3678}
3679}
3680#line 613 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3681void ldv_check_alloc_nonatomic(void) 
3682{ 
3683
3684  {
3685#line 616
3686  if (ldv_spin != 0) {
3687    {
3688#line 616
3689    ldv_blast_assert();
3690    }
3691  } else {
3692
3693  }
3694#line 619
3695  return;
3696}
3697}
3698#line 620 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3699void ldv_spin_lock(void) 
3700{ 
3701
3702  {
3703#line 623
3704  ldv_spin = 1;
3705#line 624
3706  return;
3707}
3708}
3709#line 627 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3710void ldv_spin_unlock(void) 
3711{ 
3712
3713  {
3714#line 630
3715  ldv_spin = 0;
3716#line 631
3717  return;
3718}
3719}
3720#line 634 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3721int ldv_spin_trylock(void) 
3722{ int is_lock ;
3723
3724  {
3725  {
3726#line 639
3727  is_lock = __VERIFIER_nondet_int();
3728  }
3729#line 641
3730  if (is_lock != 0) {
3731#line 644
3732    return (0);
3733  } else {
3734#line 649
3735    ldv_spin = 1;
3736#line 651
3737    return (1);
3738  }
3739}
3740}
3741#line 818 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3742void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
3743{ 
3744
3745  {
3746  {
3747#line 824
3748  ldv_check_alloc_flags(ldv_func_arg2);
3749#line 826
3750  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
3751  }
3752#line 827
3753  return ((void *)0);
3754}
3755}
3756#line 829 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/4723/dscv_tempdir/dscv/ri/43_1a/drivers/power/max8903_charger.c.p"
3757__inline static void *kzalloc(size_t size , gfp_t flags ) 
3758{ void *tmp ;
3759
3760  {
3761  {
3762#line 835
3763  ldv_check_alloc_flags(flags);
3764#line 836
3765  tmp = __VERIFIER_nondet_pointer();
3766  }
3767#line 836
3768  return (tmp);
3769}
3770}