Showing error 620

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-linux-3.4/32_1_cilled_safe_ok_nondet_linux-3.4-32_1-drivers--staging--android--switch--switch_gpio.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 2122
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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