1
2
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:
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:
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:
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: ;
1526#line 91
1527 return (-22);
1528 } else {
1529 switch_break: ;
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: ;
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:
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:
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:
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: ;
3578#line 558
3579 goto ldv_17521;
3580 } else {
3581 switch_break: ;
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}