Showing error 878

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-linux-3.4/43_1a_cilled_safe_ok_nondet_linux-43_1a-drivers--input--touchscreen--wacom_w8001.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 6259
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 19 "include/asm-generic/int-ll64.h"
   5typedef signed char __s8;
   6#line 20 "include/asm-generic/int-ll64.h"
   7typedef unsigned char __u8;
   8#line 22 "include/asm-generic/int-ll64.h"
   9typedef short __s16;
  10#line 23 "include/asm-generic/int-ll64.h"
  11typedef unsigned short __u16;
  12#line 25 "include/asm-generic/int-ll64.h"
  13typedef int __s32;
  14#line 26 "include/asm-generic/int-ll64.h"
  15typedef unsigned int __u32;
  16#line 30 "include/asm-generic/int-ll64.h"
  17typedef unsigned long long __u64;
  18#line 43 "include/asm-generic/int-ll64.h"
  19typedef unsigned char u8;
  20#line 45 "include/asm-generic/int-ll64.h"
  21typedef short s16;
  22#line 46 "include/asm-generic/int-ll64.h"
  23typedef unsigned short u16;
  24#line 48 "include/asm-generic/int-ll64.h"
  25typedef int s32;
  26#line 49 "include/asm-generic/int-ll64.h"
  27typedef unsigned int u32;
  28#line 51 "include/asm-generic/int-ll64.h"
  29typedef long long s64;
  30#line 52 "include/asm-generic/int-ll64.h"
  31typedef unsigned long long u64;
  32#line 14 "include/asm-generic/posix_types.h"
  33typedef long __kernel_long_t;
  34#line 15 "include/asm-generic/posix_types.h"
  35typedef unsigned long __kernel_ulong_t;
  36#line 52 "include/asm-generic/posix_types.h"
  37typedef unsigned int __kernel_uid32_t;
  38#line 53 "include/asm-generic/posix_types.h"
  39typedef unsigned int __kernel_gid32_t;
  40#line 75 "include/asm-generic/posix_types.h"
  41typedef __kernel_ulong_t __kernel_size_t;
  42#line 76 "include/asm-generic/posix_types.h"
  43typedef __kernel_long_t __kernel_ssize_t;
  44#line 91 "include/asm-generic/posix_types.h"
  45typedef long long __kernel_loff_t;
  46#line 92 "include/asm-generic/posix_types.h"
  47typedef __kernel_long_t __kernel_time_t;
  48#line 21 "include/linux/types.h"
  49typedef __u32 __kernel_dev_t;
  50#line 24 "include/linux/types.h"
  51typedef __kernel_dev_t dev_t;
  52#line 27 "include/linux/types.h"
  53typedef unsigned short umode_t;
  54#line 38 "include/linux/types.h"
  55typedef _Bool bool;
  56#line 40 "include/linux/types.h"
  57typedef __kernel_uid32_t uid_t;
  58#line 41 "include/linux/types.h"
  59typedef __kernel_gid32_t gid_t;
  60#line 54 "include/linux/types.h"
  61typedef __kernel_loff_t loff_t;
  62#line 63 "include/linux/types.h"
  63typedef __kernel_size_t size_t;
  64#line 68 "include/linux/types.h"
  65typedef __kernel_ssize_t ssize_t;
  66#line 78 "include/linux/types.h"
  67typedef __kernel_time_t time_t;
  68#line 142 "include/linux/types.h"
  69typedef unsigned long sector_t;
  70#line 143 "include/linux/types.h"
  71typedef unsigned long blkcnt_t;
  72#line 202 "include/linux/types.h"
  73typedef unsigned int gfp_t;
  74#line 203 "include/linux/types.h"
  75typedef unsigned int fmode_t;
  76#line 221 "include/linux/types.h"
  77struct __anonstruct_atomic_t_6 {
  78   int counter ;
  79};
  80#line 221 "include/linux/types.h"
  81typedef struct __anonstruct_atomic_t_6 atomic_t;
  82#line 226 "include/linux/types.h"
  83struct __anonstruct_atomic64_t_7 {
  84   long counter ;
  85};
  86#line 226 "include/linux/types.h"
  87typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  88#line 227 "include/linux/types.h"
  89struct list_head {
  90   struct list_head *next ;
  91   struct list_head *prev ;
  92};
  93#line 232
  94struct hlist_node;
  95#line 232 "include/linux/types.h"
  96struct hlist_head {
  97   struct hlist_node *first ;
  98};
  99#line 236 "include/linux/types.h"
 100struct hlist_node {
 101   struct hlist_node *next ;
 102   struct hlist_node **pprev ;
 103};
 104#line 247 "include/linux/types.h"
 105struct rcu_head {
 106   struct rcu_head *next ;
 107   void (*func)(struct rcu_head * ) ;
 108};
 109#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
 110struct module;
 111#line 55
 112struct module;
 113#line 146 "include/linux/init.h"
 114typedef void (*ctor_fn_t)(void);
 115#line 305 "include/linux/printk.h"
 116struct _ddebug {
 117   char const   *modname ;
 118   char const   *function ;
 119   char const   *filename ;
 120   char const   *format ;
 121   unsigned int lineno : 18 ;
 122   unsigned char flags ;
 123};
 124#line 46 "include/linux/dynamic_debug.h"
 125struct device;
 126#line 46
 127struct device;
 128#line 57
 129struct completion;
 130#line 57
 131struct completion;
 132#line 348 "include/linux/kernel.h"
 133struct pid;
 134#line 348
 135struct pid;
 136#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
 137struct timespec;
 138#line 112
 139struct timespec;
 140#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
 141struct page;
 142#line 58
 143struct page;
 144#line 26 "include/asm-generic/getorder.h"
 145struct task_struct;
 146#line 26
 147struct task_struct;
 148#line 290 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 149struct file;
 150#line 290
 151struct file;
 152#line 305
 153struct seq_file;
 154#line 305
 155struct seq_file;
 156#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 157struct arch_spinlock;
 158#line 327
 159struct arch_spinlock;
 160#line 306 "include/linux/bitmap.h"
 161struct bug_entry {
 162   int bug_addr_disp ;
 163   int file_disp ;
 164   unsigned short line ;
 165   unsigned short flags ;
 166};
 167#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 168struct static_key;
 169#line 234
 170struct static_key;
 171#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 172struct kmem_cache;
 173#line 23 "include/asm-generic/atomic-long.h"
 174typedef atomic64_t atomic_long_t;
 175#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 176typedef u16 __ticket_t;
 177#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 178typedef u32 __ticketpair_t;
 179#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 180struct __raw_tickets {
 181   __ticket_t head ;
 182   __ticket_t tail ;
 183};
 184#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 185union __anonunion_ldv_5907_29 {
 186   __ticketpair_t head_tail ;
 187   struct __raw_tickets tickets ;
 188};
 189#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 190struct arch_spinlock {
 191   union __anonunion_ldv_5907_29 ldv_5907 ;
 192};
 193#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 194typedef struct arch_spinlock arch_spinlock_t;
 195#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 196struct __anonstruct_ldv_5914_31 {
 197   u32 read ;
 198   s32 write ;
 199};
 200#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 201union __anonunion_arch_rwlock_t_30 {
 202   s64 lock ;
 203   struct __anonstruct_ldv_5914_31 ldv_5914 ;
 204};
 205#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 206typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
 207#line 34
 208struct lockdep_map;
 209#line 34
 210struct lockdep_map;
 211#line 55 "include/linux/debug_locks.h"
 212struct stack_trace {
 213   unsigned int nr_entries ;
 214   unsigned int max_entries ;
 215   unsigned long *entries ;
 216   int skip ;
 217};
 218#line 26 "include/linux/stacktrace.h"
 219struct lockdep_subclass_key {
 220   char __one_byte ;
 221};
 222#line 53 "include/linux/lockdep.h"
 223struct lock_class_key {
 224   struct lockdep_subclass_key subkeys[8U] ;
 225};
 226#line 59 "include/linux/lockdep.h"
 227struct lock_class {
 228   struct list_head hash_entry ;
 229   struct list_head lock_entry ;
 230   struct lockdep_subclass_key *key ;
 231   unsigned int subclass ;
 232   unsigned int dep_gen_id ;
 233   unsigned long usage_mask ;
 234   struct stack_trace usage_traces[13U] ;
 235   struct list_head locks_after ;
 236   struct list_head locks_before ;
 237   unsigned int version ;
 238   unsigned long ops ;
 239   char const   *name ;
 240   int name_version ;
 241   unsigned long contention_point[4U] ;
 242   unsigned long contending_point[4U] ;
 243};
 244#line 144 "include/linux/lockdep.h"
 245struct lockdep_map {
 246   struct lock_class_key *key ;
 247   struct lock_class *class_cache[2U] ;
 248   char const   *name ;
 249   int cpu ;
 250   unsigned long ip ;
 251};
 252#line 556 "include/linux/lockdep.h"
 253struct raw_spinlock {
 254   arch_spinlock_t raw_lock ;
 255   unsigned int magic ;
 256   unsigned int owner_cpu ;
 257   void *owner ;
 258   struct lockdep_map dep_map ;
 259};
 260#line 32 "include/linux/spinlock_types.h"
 261typedef struct raw_spinlock raw_spinlock_t;
 262#line 33 "include/linux/spinlock_types.h"
 263struct __anonstruct_ldv_6122_33 {
 264   u8 __padding[24U] ;
 265   struct lockdep_map dep_map ;
 266};
 267#line 33 "include/linux/spinlock_types.h"
 268union __anonunion_ldv_6123_32 {
 269   struct raw_spinlock rlock ;
 270   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 271};
 272#line 33 "include/linux/spinlock_types.h"
 273struct spinlock {
 274   union __anonunion_ldv_6123_32 ldv_6123 ;
 275};
 276#line 76 "include/linux/spinlock_types.h"
 277typedef struct spinlock spinlock_t;
 278#line 23 "include/linux/rwlock_types.h"
 279struct __anonstruct_rwlock_t_34 {
 280   arch_rwlock_t raw_lock ;
 281   unsigned int magic ;
 282   unsigned int owner_cpu ;
 283   void *owner ;
 284   struct lockdep_map dep_map ;
 285};
 286#line 23 "include/linux/rwlock_types.h"
 287typedef struct __anonstruct_rwlock_t_34 rwlock_t;
 288#line 110 "include/linux/seqlock.h"
 289struct seqcount {
 290   unsigned int sequence ;
 291};
 292#line 121 "include/linux/seqlock.h"
 293typedef struct seqcount seqcount_t;
 294#line 254 "include/linux/seqlock.h"
 295struct timespec {
 296   __kernel_time_t tv_sec ;
 297   long tv_nsec ;
 298};
 299#line 286 "include/linux/time.h"
 300struct kstat {
 301   u64 ino ;
 302   dev_t dev ;
 303   umode_t mode ;
 304   unsigned int nlink ;
 305   uid_t uid ;
 306   gid_t gid ;
 307   dev_t rdev ;
 308   loff_t size ;
 309   struct timespec atime ;
 310   struct timespec mtime ;
 311   struct timespec ctime ;
 312   unsigned long blksize ;
 313   unsigned long long blocks ;
 314};
 315#line 48 "include/linux/wait.h"
 316struct __wait_queue_head {
 317   spinlock_t lock ;
 318   struct list_head task_list ;
 319};
 320#line 53 "include/linux/wait.h"
 321typedef struct __wait_queue_head wait_queue_head_t;
 322#line 670 "include/linux/mmzone.h"
 323struct mutex {
 324   atomic_t count ;
 325   spinlock_t wait_lock ;
 326   struct list_head wait_list ;
 327   struct task_struct *owner ;
 328   char const   *name ;
 329   void *magic ;
 330   struct lockdep_map dep_map ;
 331};
 332#line 171 "include/linux/mutex.h"
 333struct rw_semaphore;
 334#line 171
 335struct rw_semaphore;
 336#line 172 "include/linux/mutex.h"
 337struct rw_semaphore {
 338   long count ;
 339   raw_spinlock_t wait_lock ;
 340   struct list_head wait_list ;
 341   struct lockdep_map dep_map ;
 342};
 343#line 128 "include/linux/rwsem.h"
 344struct completion {
 345   unsigned int done ;
 346   wait_queue_head_t wait ;
 347};
 348#line 312 "include/linux/jiffies.h"
 349union ktime {
 350   s64 tv64 ;
 351};
 352#line 59 "include/linux/ktime.h"
 353typedef union ktime ktime_t;
 354#line 341
 355struct tvec_base;
 356#line 341
 357struct tvec_base;
 358#line 342 "include/linux/ktime.h"
 359struct timer_list {
 360   struct list_head entry ;
 361   unsigned long expires ;
 362   struct tvec_base *base ;
 363   void (*function)(unsigned long  ) ;
 364   unsigned long data ;
 365   int slack ;
 366   int start_pid ;
 367   void *start_site ;
 368   char start_comm[16U] ;
 369   struct lockdep_map lockdep_map ;
 370};
 371#line 302 "include/linux/timer.h"
 372struct work_struct;
 373#line 302
 374struct work_struct;
 375#line 45 "include/linux/workqueue.h"
 376struct work_struct {
 377   atomic_long_t data ;
 378   struct list_head entry ;
 379   void (*func)(struct work_struct * ) ;
 380   struct lockdep_map lockdep_map ;
 381};
 382#line 46 "include/linux/pm.h"
 383struct pm_message {
 384   int event ;
 385};
 386#line 52 "include/linux/pm.h"
 387typedef struct pm_message pm_message_t;
 388#line 53 "include/linux/pm.h"
 389struct dev_pm_ops {
 390   int (*prepare)(struct device * ) ;
 391   void (*complete)(struct device * ) ;
 392   int (*suspend)(struct device * ) ;
 393   int (*resume)(struct device * ) ;
 394   int (*freeze)(struct device * ) ;
 395   int (*thaw)(struct device * ) ;
 396   int (*poweroff)(struct device * ) ;
 397   int (*restore)(struct device * ) ;
 398   int (*suspend_late)(struct device * ) ;
 399   int (*resume_early)(struct device * ) ;
 400   int (*freeze_late)(struct device * ) ;
 401   int (*thaw_early)(struct device * ) ;
 402   int (*poweroff_late)(struct device * ) ;
 403   int (*restore_early)(struct device * ) ;
 404   int (*suspend_noirq)(struct device * ) ;
 405   int (*resume_noirq)(struct device * ) ;
 406   int (*freeze_noirq)(struct device * ) ;
 407   int (*thaw_noirq)(struct device * ) ;
 408   int (*poweroff_noirq)(struct device * ) ;
 409   int (*restore_noirq)(struct device * ) ;
 410   int (*runtime_suspend)(struct device * ) ;
 411   int (*runtime_resume)(struct device * ) ;
 412   int (*runtime_idle)(struct device * ) ;
 413};
 414#line 289
 415enum rpm_status {
 416    RPM_ACTIVE = 0,
 417    RPM_RESUMING = 1,
 418    RPM_SUSPENDED = 2,
 419    RPM_SUSPENDING = 3
 420} ;
 421#line 296
 422enum rpm_request {
 423    RPM_REQ_NONE = 0,
 424    RPM_REQ_IDLE = 1,
 425    RPM_REQ_SUSPEND = 2,
 426    RPM_REQ_AUTOSUSPEND = 3,
 427    RPM_REQ_RESUME = 4
 428} ;
 429#line 304
 430struct wakeup_source;
 431#line 304
 432struct wakeup_source;
 433#line 494 "include/linux/pm.h"
 434struct pm_subsys_data {
 435   spinlock_t lock ;
 436   unsigned int refcount ;
 437};
 438#line 499
 439struct dev_pm_qos_request;
 440#line 499
 441struct pm_qos_constraints;
 442#line 499 "include/linux/pm.h"
 443struct dev_pm_info {
 444   pm_message_t power_state ;
 445   unsigned char can_wakeup : 1 ;
 446   unsigned char async_suspend : 1 ;
 447   bool is_prepared ;
 448   bool is_suspended ;
 449   bool ignore_children ;
 450   spinlock_t lock ;
 451   struct list_head entry ;
 452   struct completion completion ;
 453   struct wakeup_source *wakeup ;
 454   bool wakeup_path ;
 455   struct timer_list suspend_timer ;
 456   unsigned long timer_expires ;
 457   struct work_struct work ;
 458   wait_queue_head_t wait_queue ;
 459   atomic_t usage_count ;
 460   atomic_t child_count ;
 461   unsigned char disable_depth : 3 ;
 462   unsigned char idle_notification : 1 ;
 463   unsigned char request_pending : 1 ;
 464   unsigned char deferred_resume : 1 ;
 465   unsigned char run_wake : 1 ;
 466   unsigned char runtime_auto : 1 ;
 467   unsigned char no_callbacks : 1 ;
 468   unsigned char irq_safe : 1 ;
 469   unsigned char use_autosuspend : 1 ;
 470   unsigned char timer_autosuspends : 1 ;
 471   enum rpm_request request ;
 472   enum rpm_status runtime_status ;
 473   int runtime_error ;
 474   int autosuspend_delay ;
 475   unsigned long last_busy ;
 476   unsigned long active_jiffies ;
 477   unsigned long suspended_jiffies ;
 478   unsigned long accounting_timestamp ;
 479   ktime_t suspend_time ;
 480   s64 max_time_suspended_ns ;
 481   struct dev_pm_qos_request *pq_req ;
 482   struct pm_subsys_data *subsys_data ;
 483   struct pm_qos_constraints *constraints ;
 484};
 485#line 558 "include/linux/pm.h"
 486struct dev_pm_domain {
 487   struct dev_pm_ops ops ;
 488};
 489#line 18 "include/asm-generic/pci_iomap.h"
 490struct vm_area_struct;
 491#line 18
 492struct vm_area_struct;
 493#line 37 "include/linux/kmod.h"
 494struct cred;
 495#line 37
 496struct cred;
 497#line 18 "include/linux/elf.h"
 498typedef __u64 Elf64_Addr;
 499#line 19 "include/linux/elf.h"
 500typedef __u16 Elf64_Half;
 501#line 23 "include/linux/elf.h"
 502typedef __u32 Elf64_Word;
 503#line 24 "include/linux/elf.h"
 504typedef __u64 Elf64_Xword;
 505#line 193 "include/linux/elf.h"
 506struct elf64_sym {
 507   Elf64_Word st_name ;
 508   unsigned char st_info ;
 509   unsigned char st_other ;
 510   Elf64_Half st_shndx ;
 511   Elf64_Addr st_value ;
 512   Elf64_Xword st_size ;
 513};
 514#line 201 "include/linux/elf.h"
 515typedef struct elf64_sym Elf64_Sym;
 516#line 445
 517struct sock;
 518#line 445
 519struct sock;
 520#line 446
 521struct kobject;
 522#line 446
 523struct kobject;
 524#line 447
 525enum kobj_ns_type {
 526    KOBJ_NS_TYPE_NONE = 0,
 527    KOBJ_NS_TYPE_NET = 1,
 528    KOBJ_NS_TYPES = 2
 529} ;
 530#line 453 "include/linux/elf.h"
 531struct kobj_ns_type_operations {
 532   enum kobj_ns_type type ;
 533   void *(*grab_current_ns)(void) ;
 534   void const   *(*netlink_ns)(struct sock * ) ;
 535   void const   *(*initial_ns)(void) ;
 536   void (*drop_ns)(void * ) ;
 537};
 538#line 57 "include/linux/kobject_ns.h"
 539struct attribute {
 540   char const   *name ;
 541   umode_t mode ;
 542   struct lock_class_key *key ;
 543   struct lock_class_key skey ;
 544};
 545#line 33 "include/linux/sysfs.h"
 546struct attribute_group {
 547   char const   *name ;
 548   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 549   struct attribute **attrs ;
 550};
 551#line 62 "include/linux/sysfs.h"
 552struct bin_attribute {
 553   struct attribute attr ;
 554   size_t size ;
 555   void *private ;
 556   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 557                   loff_t  , size_t  ) ;
 558   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 559                    loff_t  , size_t  ) ;
 560   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 561};
 562#line 98 "include/linux/sysfs.h"
 563struct sysfs_ops {
 564   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 565   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 566   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 567};
 568#line 117
 569struct sysfs_dirent;
 570#line 117
 571struct sysfs_dirent;
 572#line 182 "include/linux/sysfs.h"
 573struct kref {
 574   atomic_t refcount ;
 575};
 576#line 49 "include/linux/kobject.h"
 577struct kset;
 578#line 49
 579struct kobj_type;
 580#line 49 "include/linux/kobject.h"
 581struct kobject {
 582   char const   *name ;
 583   struct list_head entry ;
 584   struct kobject *parent ;
 585   struct kset *kset ;
 586   struct kobj_type *ktype ;
 587   struct sysfs_dirent *sd ;
 588   struct kref kref ;
 589   unsigned char state_initialized : 1 ;
 590   unsigned char state_in_sysfs : 1 ;
 591   unsigned char state_add_uevent_sent : 1 ;
 592   unsigned char state_remove_uevent_sent : 1 ;
 593   unsigned char uevent_suppress : 1 ;
 594};
 595#line 107 "include/linux/kobject.h"
 596struct kobj_type {
 597   void (*release)(struct kobject * ) ;
 598   struct sysfs_ops  const  *sysfs_ops ;
 599   struct attribute **default_attrs ;
 600   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 601   void const   *(*namespace)(struct kobject * ) ;
 602};
 603#line 115 "include/linux/kobject.h"
 604struct kobj_uevent_env {
 605   char *envp[32U] ;
 606   int envp_idx ;
 607   char buf[2048U] ;
 608   int buflen ;
 609};
 610#line 122 "include/linux/kobject.h"
 611struct kset_uevent_ops {
 612   int (* const  filter)(struct kset * , struct kobject * ) ;
 613   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 614   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 615};
 616#line 139 "include/linux/kobject.h"
 617struct kset {
 618   struct list_head list ;
 619   spinlock_t list_lock ;
 620   struct kobject kobj ;
 621   struct kset_uevent_ops  const  *uevent_ops ;
 622};
 623#line 215
 624struct kernel_param;
 625#line 215
 626struct kernel_param;
 627#line 216 "include/linux/kobject.h"
 628struct kernel_param_ops {
 629   int (*set)(char const   * , struct kernel_param  const  * ) ;
 630   int (*get)(char * , struct kernel_param  const  * ) ;
 631   void (*free)(void * ) ;
 632};
 633#line 49 "include/linux/moduleparam.h"
 634struct kparam_string;
 635#line 49
 636struct kparam_array;
 637#line 49 "include/linux/moduleparam.h"
 638union __anonunion_ldv_13363_134 {
 639   void *arg ;
 640   struct kparam_string  const  *str ;
 641   struct kparam_array  const  *arr ;
 642};
 643#line 49 "include/linux/moduleparam.h"
 644struct kernel_param {
 645   char const   *name ;
 646   struct kernel_param_ops  const  *ops ;
 647   u16 perm ;
 648   s16 level ;
 649   union __anonunion_ldv_13363_134 ldv_13363 ;
 650};
 651#line 61 "include/linux/moduleparam.h"
 652struct kparam_string {
 653   unsigned int maxlen ;
 654   char *string ;
 655};
 656#line 67 "include/linux/moduleparam.h"
 657struct kparam_array {
 658   unsigned int max ;
 659   unsigned int elemsize ;
 660   unsigned int *num ;
 661   struct kernel_param_ops  const  *ops ;
 662   void *elem ;
 663};
 664#line 458 "include/linux/moduleparam.h"
 665struct static_key {
 666   atomic_t enabled ;
 667};
 668#line 225 "include/linux/jump_label.h"
 669struct tracepoint;
 670#line 225
 671struct tracepoint;
 672#line 226 "include/linux/jump_label.h"
 673struct tracepoint_func {
 674   void *func ;
 675   void *data ;
 676};
 677#line 29 "include/linux/tracepoint.h"
 678struct tracepoint {
 679   char const   *name ;
 680   struct static_key key ;
 681   void (*regfunc)(void) ;
 682   void (*unregfunc)(void) ;
 683   struct tracepoint_func *funcs ;
 684};
 685#line 86 "include/linux/tracepoint.h"
 686struct kernel_symbol {
 687   unsigned long value ;
 688   char const   *name ;
 689};
 690#line 27 "include/linux/export.h"
 691struct mod_arch_specific {
 692
 693};
 694#line 34 "include/linux/module.h"
 695struct module_param_attrs;
 696#line 34 "include/linux/module.h"
 697struct module_kobject {
 698   struct kobject kobj ;
 699   struct module *mod ;
 700   struct kobject *drivers_dir ;
 701   struct module_param_attrs *mp ;
 702};
 703#line 43 "include/linux/module.h"
 704struct module_attribute {
 705   struct attribute attr ;
 706   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 707   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 708                    size_t  ) ;
 709   void (*setup)(struct module * , char const   * ) ;
 710   int (*test)(struct module * ) ;
 711   void (*free)(struct module * ) ;
 712};
 713#line 69
 714struct exception_table_entry;
 715#line 69
 716struct exception_table_entry;
 717#line 198
 718enum module_state {
 719    MODULE_STATE_LIVE = 0,
 720    MODULE_STATE_COMING = 1,
 721    MODULE_STATE_GOING = 2
 722} ;
 723#line 204 "include/linux/module.h"
 724struct module_ref {
 725   unsigned long incs ;
 726   unsigned long decs ;
 727};
 728#line 219
 729struct module_sect_attrs;
 730#line 219
 731struct module_notes_attrs;
 732#line 219
 733struct ftrace_event_call;
 734#line 219 "include/linux/module.h"
 735struct module {
 736   enum module_state state ;
 737   struct list_head list ;
 738   char name[56U] ;
 739   struct module_kobject mkobj ;
 740   struct module_attribute *modinfo_attrs ;
 741   char const   *version ;
 742   char const   *srcversion ;
 743   struct kobject *holders_dir ;
 744   struct kernel_symbol  const  *syms ;
 745   unsigned long const   *crcs ;
 746   unsigned int num_syms ;
 747   struct kernel_param *kp ;
 748   unsigned int num_kp ;
 749   unsigned int num_gpl_syms ;
 750   struct kernel_symbol  const  *gpl_syms ;
 751   unsigned long const   *gpl_crcs ;
 752   struct kernel_symbol  const  *unused_syms ;
 753   unsigned long const   *unused_crcs ;
 754   unsigned int num_unused_syms ;
 755   unsigned int num_unused_gpl_syms ;
 756   struct kernel_symbol  const  *unused_gpl_syms ;
 757   unsigned long const   *unused_gpl_crcs ;
 758   struct kernel_symbol  const  *gpl_future_syms ;
 759   unsigned long const   *gpl_future_crcs ;
 760   unsigned int num_gpl_future_syms ;
 761   unsigned int num_exentries ;
 762   struct exception_table_entry *extable ;
 763   int (*init)(void) ;
 764   void *module_init ;
 765   void *module_core ;
 766   unsigned int init_size ;
 767   unsigned int core_size ;
 768   unsigned int init_text_size ;
 769   unsigned int core_text_size ;
 770   unsigned int init_ro_size ;
 771   unsigned int core_ro_size ;
 772   struct mod_arch_specific arch ;
 773   unsigned int taints ;
 774   unsigned int num_bugs ;
 775   struct list_head bug_list ;
 776   struct bug_entry *bug_table ;
 777   Elf64_Sym *symtab ;
 778   Elf64_Sym *core_symtab ;
 779   unsigned int num_symtab ;
 780   unsigned int core_num_syms ;
 781   char *strtab ;
 782   char *core_strtab ;
 783   struct module_sect_attrs *sect_attrs ;
 784   struct module_notes_attrs *notes_attrs ;
 785   char *args ;
 786   void *percpu ;
 787   unsigned int percpu_size ;
 788   unsigned int num_tracepoints ;
 789   struct tracepoint * const  *tracepoints_ptrs ;
 790   unsigned int num_trace_bprintk_fmt ;
 791   char const   **trace_bprintk_fmt_start ;
 792   struct ftrace_event_call **trace_events ;
 793   unsigned int num_trace_events ;
 794   struct list_head source_list ;
 795   struct list_head target_list ;
 796   struct task_struct *waiter ;
 797   void (*exit)(void) ;
 798   struct module_ref *refptr ;
 799   ctor_fn_t (**ctors)(void) ;
 800   unsigned int num_ctors ;
 801};
 802#line 88 "include/linux/kmemleak.h"
 803struct kmem_cache_cpu {
 804   void **freelist ;
 805   unsigned long tid ;
 806   struct page *page ;
 807   struct page *partial ;
 808   int node ;
 809   unsigned int stat[26U] ;
 810};
 811#line 55 "include/linux/slub_def.h"
 812struct kmem_cache_node {
 813   spinlock_t list_lock ;
 814   unsigned long nr_partial ;
 815   struct list_head partial ;
 816   atomic_long_t nr_slabs ;
 817   atomic_long_t total_objects ;
 818   struct list_head full ;
 819};
 820#line 66 "include/linux/slub_def.h"
 821struct kmem_cache_order_objects {
 822   unsigned long x ;
 823};
 824#line 76 "include/linux/slub_def.h"
 825struct kmem_cache {
 826   struct kmem_cache_cpu *cpu_slab ;
 827   unsigned long flags ;
 828   unsigned long min_partial ;
 829   int size ;
 830   int objsize ;
 831   int offset ;
 832   int cpu_partial ;
 833   struct kmem_cache_order_objects oo ;
 834   struct kmem_cache_order_objects max ;
 835   struct kmem_cache_order_objects min ;
 836   gfp_t allocflags ;
 837   int refcount ;
 838   void (*ctor)(void * ) ;
 839   int inuse ;
 840   int align ;
 841   int reserved ;
 842   char const   *name ;
 843   struct list_head list ;
 844   struct kobject kobj ;
 845   int remote_node_defrag_ratio ;
 846   struct kmem_cache_node *node[1024U] ;
 847};
 848#line 32 "include/linux/input.h"
 849struct input_id {
 850   __u16 bustype ;
 851   __u16 vendor ;
 852   __u16 product ;
 853   __u16 version ;
 854};
 855#line 49 "include/linux/input.h"
 856struct input_absinfo {
 857   __s32 value ;
 858   __s32 minimum ;
 859   __s32 maximum ;
 860   __s32 fuzz ;
 861   __s32 flat ;
 862   __s32 resolution ;
 863};
 864#line 77 "include/linux/input.h"
 865struct input_keymap_entry {
 866   __u8 flags ;
 867   __u8 len ;
 868   __u16 index ;
 869   __u32 keycode ;
 870   __u8 scancode[32U] ;
 871};
 872#line 101 "include/linux/input.h"
 873struct ff_replay {
 874   __u16 length ;
 875   __u16 delay ;
 876};
 877#line 961 "include/linux/input.h"
 878struct ff_trigger {
 879   __u16 button ;
 880   __u16 interval ;
 881};
 882#line 971 "include/linux/input.h"
 883struct ff_envelope {
 884   __u16 attack_length ;
 885   __u16 attack_level ;
 886   __u16 fade_length ;
 887   __u16 fade_level ;
 888};
 889#line 990 "include/linux/input.h"
 890struct ff_constant_effect {
 891   __s16 level ;
 892   struct ff_envelope envelope ;
 893};
 894#line 1000 "include/linux/input.h"
 895struct ff_ramp_effect {
 896   __s16 start_level ;
 897   __s16 end_level ;
 898   struct ff_envelope envelope ;
 899};
 900#line 1012 "include/linux/input.h"
 901struct ff_condition_effect {
 902   __u16 right_saturation ;
 903   __u16 left_saturation ;
 904   __s16 right_coeff ;
 905   __s16 left_coeff ;
 906   __u16 deadband ;
 907   __s16 center ;
 908};
 909#line 1033 "include/linux/input.h"
 910struct ff_periodic_effect {
 911   __u16 waveform ;
 912   __u16 period ;
 913   __s16 magnitude ;
 914   __s16 offset ;
 915   __u16 phase ;
 916   struct ff_envelope envelope ;
 917   __u32 custom_len ;
 918   __s16 *custom_data ;
 919};
 920#line 1064 "include/linux/input.h"
 921struct ff_rumble_effect {
 922   __u16 strong_magnitude ;
 923   __u16 weak_magnitude ;
 924};
 925#line 1077 "include/linux/input.h"
 926union __anonunion_u_135 {
 927   struct ff_constant_effect constant ;
 928   struct ff_ramp_effect ramp ;
 929   struct ff_periodic_effect periodic ;
 930   struct ff_condition_effect condition[2U] ;
 931   struct ff_rumble_effect rumble ;
 932};
 933#line 1077 "include/linux/input.h"
 934struct ff_effect {
 935   __u16 type ;
 936   __s16 id ;
 937   __u16 direction ;
 938   struct ff_trigger trigger ;
 939   struct ff_replay replay ;
 940   union __anonunion_u_135 u ;
 941};
 942#line 1116
 943struct klist_node;
 944#line 1116
 945struct klist_node;
 946#line 37 "include/linux/klist.h"
 947struct klist_node {
 948   void *n_klist ;
 949   struct list_head n_node ;
 950   struct kref n_ref ;
 951};
 952#line 67
 953struct dma_map_ops;
 954#line 67 "include/linux/klist.h"
 955struct dev_archdata {
 956   void *acpi_handle ;
 957   struct dma_map_ops *dma_ops ;
 958   void *iommu ;
 959};
 960#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 961struct device_private;
 962#line 17
 963struct device_private;
 964#line 18
 965struct device_driver;
 966#line 18
 967struct device_driver;
 968#line 19
 969struct driver_private;
 970#line 19
 971struct driver_private;
 972#line 20
 973struct class;
 974#line 20
 975struct class;
 976#line 21
 977struct subsys_private;
 978#line 21
 979struct subsys_private;
 980#line 22
 981struct bus_type;
 982#line 22
 983struct bus_type;
 984#line 23
 985struct device_node;
 986#line 23
 987struct device_node;
 988#line 24
 989struct iommu_ops;
 990#line 24
 991struct iommu_ops;
 992#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 993struct bus_attribute {
 994   struct attribute attr ;
 995   ssize_t (*show)(struct bus_type * , char * ) ;
 996   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
 997};
 998#line 51 "include/linux/device.h"
 999struct device_attribute;
1000#line 51
1001struct driver_attribute;
1002#line 51 "include/linux/device.h"
1003struct bus_type {
1004   char const   *name ;
1005   char const   *dev_name ;
1006   struct device *dev_root ;
1007   struct bus_attribute *bus_attrs ;
1008   struct device_attribute *dev_attrs ;
1009   struct driver_attribute *drv_attrs ;
1010   int (*match)(struct device * , struct device_driver * ) ;
1011   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1012   int (*probe)(struct device * ) ;
1013   int (*remove)(struct device * ) ;
1014   void (*shutdown)(struct device * ) ;
1015   int (*suspend)(struct device * , pm_message_t  ) ;
1016   int (*resume)(struct device * ) ;
1017   struct dev_pm_ops  const  *pm ;
1018   struct iommu_ops *iommu_ops ;
1019   struct subsys_private *p ;
1020};
1021#line 125
1022struct device_type;
1023#line 182
1024struct of_device_id;
1025#line 182 "include/linux/device.h"
1026struct device_driver {
1027   char const   *name ;
1028   struct bus_type *bus ;
1029   struct module *owner ;
1030   char const   *mod_name ;
1031   bool suppress_bind_attrs ;
1032   struct of_device_id  const  *of_match_table ;
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 attribute_group  const  **groups ;
1039   struct dev_pm_ops  const  *pm ;
1040   struct driver_private *p ;
1041};
1042#line 245 "include/linux/device.h"
1043struct driver_attribute {
1044   struct attribute attr ;
1045   ssize_t (*show)(struct device_driver * , char * ) ;
1046   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
1047};
1048#line 299
1049struct class_attribute;
1050#line 299 "include/linux/device.h"
1051struct class {
1052   char const   *name ;
1053   struct module *owner ;
1054   struct class_attribute *class_attrs ;
1055   struct device_attribute *dev_attrs ;
1056   struct bin_attribute *dev_bin_attrs ;
1057   struct kobject *dev_kobj ;
1058   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1059   char *(*devnode)(struct device * , umode_t * ) ;
1060   void (*class_release)(struct class * ) ;
1061   void (*dev_release)(struct device * ) ;
1062   int (*suspend)(struct device * , pm_message_t  ) ;
1063   int (*resume)(struct device * ) ;
1064   struct kobj_ns_type_operations  const  *ns_type ;
1065   void const   *(*namespace)(struct device * ) ;
1066   struct dev_pm_ops  const  *pm ;
1067   struct subsys_private *p ;
1068};
1069#line 394 "include/linux/device.h"
1070struct class_attribute {
1071   struct attribute attr ;
1072   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1073   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
1074   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
1075};
1076#line 447 "include/linux/device.h"
1077struct device_type {
1078   char const   *name ;
1079   struct attribute_group  const  **groups ;
1080   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1081   char *(*devnode)(struct device * , umode_t * ) ;
1082   void (*release)(struct device * ) ;
1083   struct dev_pm_ops  const  *pm ;
1084};
1085#line 474 "include/linux/device.h"
1086struct device_attribute {
1087   struct attribute attr ;
1088   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1089   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
1090                    size_t  ) ;
1091};
1092#line 557 "include/linux/device.h"
1093struct device_dma_parameters {
1094   unsigned int max_segment_size ;
1095   unsigned long segment_boundary_mask ;
1096};
1097#line 567
1098struct dma_coherent_mem;
1099#line 567 "include/linux/device.h"
1100struct device {
1101   struct device *parent ;
1102   struct device_private *p ;
1103   struct kobject kobj ;
1104   char const   *init_name ;
1105   struct device_type  const  *type ;
1106   struct mutex mutex ;
1107   struct bus_type *bus ;
1108   struct device_driver *driver ;
1109   void *platform_data ;
1110   struct dev_pm_info power ;
1111   struct dev_pm_domain *pm_domain ;
1112   int numa_node ;
1113   u64 *dma_mask ;
1114   u64 coherent_dma_mask ;
1115   struct device_dma_parameters *dma_parms ;
1116   struct list_head dma_pools ;
1117   struct dma_coherent_mem *dma_mem ;
1118   struct dev_archdata archdata ;
1119   struct device_node *of_node ;
1120   dev_t devt ;
1121   u32 id ;
1122   spinlock_t devres_lock ;
1123   struct list_head devres_head ;
1124   struct klist_node knode_class ;
1125   struct class *class ;
1126   struct attribute_group  const  **groups ;
1127   void (*release)(struct device * ) ;
1128};
1129#line 681 "include/linux/device.h"
1130struct wakeup_source {
1131   char const   *name ;
1132   struct list_head entry ;
1133   spinlock_t lock ;
1134   struct timer_list timer ;
1135   unsigned long timer_expires ;
1136   ktime_t total_time ;
1137   ktime_t max_time ;
1138   ktime_t last_time ;
1139   unsigned long event_count ;
1140   unsigned long active_count ;
1141   unsigned long relax_count ;
1142   unsigned long hit_count ;
1143   unsigned char active : 1 ;
1144};
1145#line 994
1146struct block_device;
1147#line 994
1148struct block_device;
1149#line 93 "include/linux/bit_spinlock.h"
1150struct hlist_bl_node;
1151#line 93 "include/linux/bit_spinlock.h"
1152struct hlist_bl_head {
1153   struct hlist_bl_node *first ;
1154};
1155#line 36 "include/linux/list_bl.h"
1156struct hlist_bl_node {
1157   struct hlist_bl_node *next ;
1158   struct hlist_bl_node **pprev ;
1159};
1160#line 114 "include/linux/rculist_bl.h"
1161struct nameidata;
1162#line 114
1163struct nameidata;
1164#line 115
1165struct path;
1166#line 115
1167struct path;
1168#line 116
1169struct vfsmount;
1170#line 116
1171struct vfsmount;
1172#line 117 "include/linux/rculist_bl.h"
1173struct qstr {
1174   unsigned int hash ;
1175   unsigned int len ;
1176   unsigned char const   *name ;
1177};
1178#line 72 "include/linux/dcache.h"
1179struct inode;
1180#line 72
1181struct dentry_operations;
1182#line 72
1183struct super_block;
1184#line 72 "include/linux/dcache.h"
1185union __anonunion_d_u_136 {
1186   struct list_head d_child ;
1187   struct rcu_head d_rcu ;
1188};
1189#line 72 "include/linux/dcache.h"
1190struct dentry {
1191   unsigned int d_flags ;
1192   seqcount_t d_seq ;
1193   struct hlist_bl_node d_hash ;
1194   struct dentry *d_parent ;
1195   struct qstr d_name ;
1196   struct inode *d_inode ;
1197   unsigned char d_iname[32U] ;
1198   unsigned int d_count ;
1199   spinlock_t d_lock ;
1200   struct dentry_operations  const  *d_op ;
1201   struct super_block *d_sb ;
1202   unsigned long d_time ;
1203   void *d_fsdata ;
1204   struct list_head d_lru ;
1205   union __anonunion_d_u_136 d_u ;
1206   struct list_head d_subdirs ;
1207   struct list_head d_alias ;
1208};
1209#line 123 "include/linux/dcache.h"
1210struct dentry_operations {
1211   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
1212   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
1213   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
1214                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
1215   int (*d_delete)(struct dentry  const  * ) ;
1216   void (*d_release)(struct dentry * ) ;
1217   void (*d_prune)(struct dentry * ) ;
1218   void (*d_iput)(struct dentry * , struct inode * ) ;
1219   char *(*d_dname)(struct dentry * , char * , int  ) ;
1220   struct vfsmount *(*d_automount)(struct path * ) ;
1221   int (*d_manage)(struct dentry * , bool  ) ;
1222};
1223#line 402 "include/linux/dcache.h"
1224struct path {
1225   struct vfsmount *mnt ;
1226   struct dentry *dentry ;
1227};
1228#line 58 "include/linux/radix-tree.h"
1229struct radix_tree_node;
1230#line 58 "include/linux/radix-tree.h"
1231struct radix_tree_root {
1232   unsigned int height ;
1233   gfp_t gfp_mask ;
1234   struct radix_tree_node *rnode ;
1235};
1236#line 377
1237struct prio_tree_node;
1238#line 19 "include/linux/prio_tree.h"
1239struct prio_tree_node {
1240   struct prio_tree_node *left ;
1241   struct prio_tree_node *right ;
1242   struct prio_tree_node *parent ;
1243   unsigned long start ;
1244   unsigned long last ;
1245};
1246#line 27 "include/linux/prio_tree.h"
1247struct prio_tree_root {
1248   struct prio_tree_node *prio_tree_node ;
1249   unsigned short index_bits ;
1250   unsigned short raw ;
1251};
1252#line 111
1253enum pid_type {
1254    PIDTYPE_PID = 0,
1255    PIDTYPE_PGID = 1,
1256    PIDTYPE_SID = 2,
1257    PIDTYPE_MAX = 3
1258} ;
1259#line 118
1260struct pid_namespace;
1261#line 118 "include/linux/prio_tree.h"
1262struct upid {
1263   int nr ;
1264   struct pid_namespace *ns ;
1265   struct hlist_node pid_chain ;
1266};
1267#line 56 "include/linux/pid.h"
1268struct pid {
1269   atomic_t count ;
1270   unsigned int level ;
1271   struct hlist_head tasks[3U] ;
1272   struct rcu_head rcu ;
1273   struct upid numbers[1U] ;
1274};
1275#line 45 "include/linux/semaphore.h"
1276struct fiemap_extent {
1277   __u64 fe_logical ;
1278   __u64 fe_physical ;
1279   __u64 fe_length ;
1280   __u64 fe_reserved64[2U] ;
1281   __u32 fe_flags ;
1282   __u32 fe_reserved[3U] ;
1283};
1284#line 38 "include/linux/fiemap.h"
1285struct shrink_control {
1286   gfp_t gfp_mask ;
1287   unsigned long nr_to_scan ;
1288};
1289#line 14 "include/linux/shrinker.h"
1290struct shrinker {
1291   int (*shrink)(struct shrinker * , struct shrink_control * ) ;
1292   int seeks ;
1293   long batch ;
1294   struct list_head list ;
1295   atomic_long_t nr_in_batch ;
1296};
1297#line 43
1298enum migrate_mode {
1299    MIGRATE_ASYNC = 0,
1300    MIGRATE_SYNC_LIGHT = 1,
1301    MIGRATE_SYNC = 2
1302} ;
1303#line 49
1304struct export_operations;
1305#line 49
1306struct export_operations;
1307#line 51
1308struct iovec;
1309#line 51
1310struct iovec;
1311#line 52
1312struct kiocb;
1313#line 52
1314struct kiocb;
1315#line 53
1316struct pipe_inode_info;
1317#line 53
1318struct pipe_inode_info;
1319#line 54
1320struct poll_table_struct;
1321#line 54
1322struct poll_table_struct;
1323#line 55
1324struct kstatfs;
1325#line 55
1326struct kstatfs;
1327#line 435 "include/linux/fs.h"
1328struct iattr {
1329   unsigned int ia_valid ;
1330   umode_t ia_mode ;
1331   uid_t ia_uid ;
1332   gid_t ia_gid ;
1333   loff_t ia_size ;
1334   struct timespec ia_atime ;
1335   struct timespec ia_mtime ;
1336   struct timespec ia_ctime ;
1337   struct file *ia_file ;
1338};
1339#line 119 "include/linux/quota.h"
1340struct if_dqinfo {
1341   __u64 dqi_bgrace ;
1342   __u64 dqi_igrace ;
1343   __u32 dqi_flags ;
1344   __u32 dqi_valid ;
1345};
1346#line 176 "include/linux/percpu_counter.h"
1347struct fs_disk_quota {
1348   __s8 d_version ;
1349   __s8 d_flags ;
1350   __u16 d_fieldmask ;
1351   __u32 d_id ;
1352   __u64 d_blk_hardlimit ;
1353   __u64 d_blk_softlimit ;
1354   __u64 d_ino_hardlimit ;
1355   __u64 d_ino_softlimit ;
1356   __u64 d_bcount ;
1357   __u64 d_icount ;
1358   __s32 d_itimer ;
1359   __s32 d_btimer ;
1360   __u16 d_iwarns ;
1361   __u16 d_bwarns ;
1362   __s32 d_padding2 ;
1363   __u64 d_rtb_hardlimit ;
1364   __u64 d_rtb_softlimit ;
1365   __u64 d_rtbcount ;
1366   __s32 d_rtbtimer ;
1367   __u16 d_rtbwarns ;
1368   __s16 d_padding3 ;
1369   char d_padding4[8U] ;
1370};
1371#line 75 "include/linux/dqblk_xfs.h"
1372struct fs_qfilestat {
1373   __u64 qfs_ino ;
1374   __u64 qfs_nblks ;
1375   __u32 qfs_nextents ;
1376};
1377#line 150 "include/linux/dqblk_xfs.h"
1378typedef struct fs_qfilestat fs_qfilestat_t;
1379#line 151 "include/linux/dqblk_xfs.h"
1380struct fs_quota_stat {
1381   __s8 qs_version ;
1382   __u16 qs_flags ;
1383   __s8 qs_pad ;
1384   fs_qfilestat_t qs_uquota ;
1385   fs_qfilestat_t qs_gquota ;
1386   __u32 qs_incoredqs ;
1387   __s32 qs_btimelimit ;
1388   __s32 qs_itimelimit ;
1389   __s32 qs_rtbtimelimit ;
1390   __u16 qs_bwarnlimit ;
1391   __u16 qs_iwarnlimit ;
1392};
1393#line 165
1394struct dquot;
1395#line 165
1396struct dquot;
1397#line 185 "include/linux/quota.h"
1398typedef __kernel_uid32_t qid_t;
1399#line 186 "include/linux/quota.h"
1400typedef long long qsize_t;
1401#line 189 "include/linux/quota.h"
1402struct mem_dqblk {
1403   qsize_t dqb_bhardlimit ;
1404   qsize_t dqb_bsoftlimit ;
1405   qsize_t dqb_curspace ;
1406   qsize_t dqb_rsvspace ;
1407   qsize_t dqb_ihardlimit ;
1408   qsize_t dqb_isoftlimit ;
1409   qsize_t dqb_curinodes ;
1410   time_t dqb_btime ;
1411   time_t dqb_itime ;
1412};
1413#line 211
1414struct quota_format_type;
1415#line 211
1416struct quota_format_type;
1417#line 212 "include/linux/quota.h"
1418struct mem_dqinfo {
1419   struct quota_format_type *dqi_format ;
1420   int dqi_fmt_id ;
1421   struct list_head dqi_dirty_list ;
1422   unsigned long dqi_flags ;
1423   unsigned int dqi_bgrace ;
1424   unsigned int dqi_igrace ;
1425   qsize_t dqi_maxblimit ;
1426   qsize_t dqi_maxilimit ;
1427   void *dqi_priv ;
1428};
1429#line 275 "include/linux/quota.h"
1430struct dquot {
1431   struct hlist_node dq_hash ;
1432   struct list_head dq_inuse ;
1433   struct list_head dq_free ;
1434   struct list_head dq_dirty ;
1435   struct mutex dq_lock ;
1436   atomic_t dq_count ;
1437   wait_queue_head_t dq_wait_unused ;
1438   struct super_block *dq_sb ;
1439   unsigned int dq_id ;
1440   loff_t dq_off ;
1441   unsigned long dq_flags ;
1442   short dq_type ;
1443   struct mem_dqblk dq_dqb ;
1444};
1445#line 303 "include/linux/quota.h"
1446struct quota_format_ops {
1447   int (*check_quota_file)(struct super_block * , int  ) ;
1448   int (*read_file_info)(struct super_block * , int  ) ;
1449   int (*write_file_info)(struct super_block * , int  ) ;
1450   int (*free_file_info)(struct super_block * , int  ) ;
1451   int (*read_dqblk)(struct dquot * ) ;
1452   int (*commit_dqblk)(struct dquot * ) ;
1453   int (*release_dqblk)(struct dquot * ) ;
1454};
1455#line 314 "include/linux/quota.h"
1456struct dquot_operations {
1457   int (*write_dquot)(struct dquot * ) ;
1458   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
1459   void (*destroy_dquot)(struct dquot * ) ;
1460   int (*acquire_dquot)(struct dquot * ) ;
1461   int (*release_dquot)(struct dquot * ) ;
1462   int (*mark_dirty)(struct dquot * ) ;
1463   int (*write_info)(struct super_block * , int  ) ;
1464   qsize_t *(*get_reserved_space)(struct inode * ) ;
1465};
1466#line 328 "include/linux/quota.h"
1467struct quotactl_ops {
1468   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
1469   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
1470   int (*quota_off)(struct super_block * , int  ) ;
1471   int (*quota_sync)(struct super_block * , int  , int  ) ;
1472   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
1473   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
1474   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
1475   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
1476   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
1477   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
1478};
1479#line 344 "include/linux/quota.h"
1480struct quota_format_type {
1481   int qf_fmt_id ;
1482   struct quota_format_ops  const  *qf_ops ;
1483   struct module *qf_owner ;
1484   struct quota_format_type *qf_next ;
1485};
1486#line 390 "include/linux/quota.h"
1487struct quota_info {
1488   unsigned int flags ;
1489   struct mutex dqio_mutex ;
1490   struct mutex dqonoff_mutex ;
1491   struct rw_semaphore dqptr_sem ;
1492   struct inode *files[2U] ;
1493   struct mem_dqinfo info[2U] ;
1494   struct quota_format_ops  const  *ops[2U] ;
1495};
1496#line 421
1497struct address_space;
1498#line 421
1499struct address_space;
1500#line 422
1501struct writeback_control;
1502#line 422
1503struct writeback_control;
1504#line 585 "include/linux/fs.h"
1505union __anonunion_arg_139 {
1506   char *buf ;
1507   void *data ;
1508};
1509#line 585 "include/linux/fs.h"
1510struct __anonstruct_read_descriptor_t_138 {
1511   size_t written ;
1512   size_t count ;
1513   union __anonunion_arg_139 arg ;
1514   int error ;
1515};
1516#line 585 "include/linux/fs.h"
1517typedef struct __anonstruct_read_descriptor_t_138 read_descriptor_t;
1518#line 588 "include/linux/fs.h"
1519struct address_space_operations {
1520   int (*writepage)(struct page * , struct writeback_control * ) ;
1521   int (*readpage)(struct file * , struct page * ) ;
1522   int (*writepages)(struct address_space * , struct writeback_control * ) ;
1523   int (*set_page_dirty)(struct page * ) ;
1524   int (*readpages)(struct file * , struct address_space * , struct list_head * ,
1525                    unsigned int  ) ;
1526   int (*write_begin)(struct file * , struct address_space * , loff_t  , unsigned int  ,
1527                      unsigned int  , struct page ** , void ** ) ;
1528   int (*write_end)(struct file * , struct address_space * , loff_t  , unsigned int  ,
1529                    unsigned int  , struct page * , void * ) ;
1530   sector_t (*bmap)(struct address_space * , sector_t  ) ;
1531   void (*invalidatepage)(struct page * , unsigned long  ) ;
1532   int (*releasepage)(struct page * , gfp_t  ) ;
1533   void (*freepage)(struct page * ) ;
1534   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  * , loff_t  ,
1535                        unsigned long  ) ;
1536   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
1537   int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode  ) ;
1538   int (*launder_page)(struct page * ) ;
1539   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
1540   int (*error_remove_page)(struct address_space * , struct page * ) ;
1541};
1542#line 642
1543struct backing_dev_info;
1544#line 642
1545struct backing_dev_info;
1546#line 643 "include/linux/fs.h"
1547struct address_space {
1548   struct inode *host ;
1549   struct radix_tree_root page_tree ;
1550   spinlock_t tree_lock ;
1551   unsigned int i_mmap_writable ;
1552   struct prio_tree_root i_mmap ;
1553   struct list_head i_mmap_nonlinear ;
1554   struct mutex i_mmap_mutex ;
1555   unsigned long nrpages ;
1556   unsigned long writeback_index ;
1557   struct address_space_operations  const  *a_ops ;
1558   unsigned long flags ;
1559   struct backing_dev_info *backing_dev_info ;
1560   spinlock_t private_lock ;
1561   struct list_head private_list ;
1562   struct address_space *assoc_mapping ;
1563};
1564#line 664
1565struct request_queue;
1566#line 664
1567struct request_queue;
1568#line 665
1569struct hd_struct;
1570#line 665
1571struct gendisk;
1572#line 665 "include/linux/fs.h"
1573struct block_device {
1574   dev_t bd_dev ;
1575   int bd_openers ;
1576   struct inode *bd_inode ;
1577   struct super_block *bd_super ;
1578   struct mutex bd_mutex ;
1579   struct list_head bd_inodes ;
1580   void *bd_claiming ;
1581   void *bd_holder ;
1582   int bd_holders ;
1583   bool bd_write_holder ;
1584   struct list_head bd_holder_disks ;
1585   struct block_device *bd_contains ;
1586   unsigned int bd_block_size ;
1587   struct hd_struct *bd_part ;
1588   unsigned int bd_part_count ;
1589   int bd_invalidated ;
1590   struct gendisk *bd_disk ;
1591   struct request_queue *bd_queue ;
1592   struct list_head bd_list ;
1593   unsigned long bd_private ;
1594   int bd_fsfreeze_count ;
1595   struct mutex bd_fsfreeze_mutex ;
1596};
1597#line 737
1598struct posix_acl;
1599#line 737
1600struct posix_acl;
1601#line 738
1602struct inode_operations;
1603#line 738 "include/linux/fs.h"
1604union __anonunion_ldv_16579_140 {
1605   unsigned int const   i_nlink ;
1606   unsigned int __i_nlink ;
1607};
1608#line 738 "include/linux/fs.h"
1609union __anonunion_ldv_16598_141 {
1610   struct list_head i_dentry ;
1611   struct rcu_head i_rcu ;
1612};
1613#line 738
1614struct file_operations;
1615#line 738
1616struct file_lock;
1617#line 738
1618struct cdev;
1619#line 738 "include/linux/fs.h"
1620union __anonunion_ldv_16616_142 {
1621   struct pipe_inode_info *i_pipe ;
1622   struct block_device *i_bdev ;
1623   struct cdev *i_cdev ;
1624};
1625#line 738 "include/linux/fs.h"
1626struct inode {
1627   umode_t i_mode ;
1628   unsigned short i_opflags ;
1629   uid_t i_uid ;
1630   gid_t i_gid ;
1631   unsigned int i_flags ;
1632   struct posix_acl *i_acl ;
1633   struct posix_acl *i_default_acl ;
1634   struct inode_operations  const  *i_op ;
1635   struct super_block *i_sb ;
1636   struct address_space *i_mapping ;
1637   void *i_security ;
1638   unsigned long i_ino ;
1639   union __anonunion_ldv_16579_140 ldv_16579 ;
1640   dev_t i_rdev ;
1641   struct timespec i_atime ;
1642   struct timespec i_mtime ;
1643   struct timespec i_ctime ;
1644   spinlock_t i_lock ;
1645   unsigned short i_bytes ;
1646   blkcnt_t i_blocks ;
1647   loff_t i_size ;
1648   unsigned long i_state ;
1649   struct mutex i_mutex ;
1650   unsigned long dirtied_when ;
1651   struct hlist_node i_hash ;
1652   struct list_head i_wb_list ;
1653   struct list_head i_lru ;
1654   struct list_head i_sb_list ;
1655   union __anonunion_ldv_16598_141 ldv_16598 ;
1656   atomic_t i_count ;
1657   unsigned int i_blkbits ;
1658   u64 i_version ;
1659   atomic_t i_dio_count ;
1660   atomic_t i_writecount ;
1661   struct file_operations  const  *i_fop ;
1662   struct file_lock *i_flock ;
1663   struct address_space i_data ;
1664   struct dquot *i_dquot[2U] ;
1665   struct list_head i_devices ;
1666   union __anonunion_ldv_16616_142 ldv_16616 ;
1667   __u32 i_generation ;
1668   __u32 i_fsnotify_mask ;
1669   struct hlist_head i_fsnotify_marks ;
1670   atomic_t i_readcount ;
1671   void *i_private ;
1672};
1673#line 941 "include/linux/fs.h"
1674struct fown_struct {
1675   rwlock_t lock ;
1676   struct pid *pid ;
1677   enum pid_type pid_type ;
1678   uid_t uid ;
1679   uid_t euid ;
1680   int signum ;
1681};
1682#line 949 "include/linux/fs.h"
1683struct file_ra_state {
1684   unsigned long start ;
1685   unsigned int size ;
1686   unsigned int async_size ;
1687   unsigned int ra_pages ;
1688   unsigned int mmap_miss ;
1689   loff_t prev_pos ;
1690};
1691#line 972 "include/linux/fs.h"
1692union __anonunion_f_u_143 {
1693   struct list_head fu_list ;
1694   struct rcu_head fu_rcuhead ;
1695};
1696#line 972 "include/linux/fs.h"
1697struct file {
1698   union __anonunion_f_u_143 f_u ;
1699   struct path f_path ;
1700   struct file_operations  const  *f_op ;
1701   spinlock_t f_lock ;
1702   int f_sb_list_cpu ;
1703   atomic_long_t f_count ;
1704   unsigned int f_flags ;
1705   fmode_t f_mode ;
1706   loff_t f_pos ;
1707   struct fown_struct f_owner ;
1708   struct cred  const  *f_cred ;
1709   struct file_ra_state f_ra ;
1710   u64 f_version ;
1711   void *f_security ;
1712   void *private_data ;
1713   struct list_head f_ep_links ;
1714   struct list_head f_tfile_llink ;
1715   struct address_space *f_mapping ;
1716   unsigned long f_mnt_write_state ;
1717};
1718#line 1111
1719struct files_struct;
1720#line 1111 "include/linux/fs.h"
1721typedef struct files_struct *fl_owner_t;
1722#line 1112 "include/linux/fs.h"
1723struct file_lock_operations {
1724   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
1725   void (*fl_release_private)(struct file_lock * ) ;
1726};
1727#line 1117 "include/linux/fs.h"
1728struct lock_manager_operations {
1729   int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ;
1730   void (*lm_notify)(struct file_lock * ) ;
1731   int (*lm_grant)(struct file_lock * , struct file_lock * , int  ) ;
1732   void (*lm_release_private)(struct file_lock * ) ;
1733   void (*lm_break)(struct file_lock * ) ;
1734   int (*lm_change)(struct file_lock ** , int  ) ;
1735};
1736#line 1134
1737struct nlm_lockowner;
1738#line 1134
1739struct nlm_lockowner;
1740#line 1135 "include/linux/fs.h"
1741struct nfs_lock_info {
1742   u32 state ;
1743   struct nlm_lockowner *owner ;
1744   struct list_head list ;
1745};
1746#line 14 "include/linux/nfs_fs_i.h"
1747struct nfs4_lock_state;
1748#line 14
1749struct nfs4_lock_state;
1750#line 15 "include/linux/nfs_fs_i.h"
1751struct nfs4_lock_info {
1752   struct nfs4_lock_state *owner ;
1753};
1754#line 19
1755struct fasync_struct;
1756#line 19 "include/linux/nfs_fs_i.h"
1757struct __anonstruct_afs_145 {
1758   struct list_head link ;
1759   int state ;
1760};
1761#line 19 "include/linux/nfs_fs_i.h"
1762union __anonunion_fl_u_144 {
1763   struct nfs_lock_info nfs_fl ;
1764   struct nfs4_lock_info nfs4_fl ;
1765   struct __anonstruct_afs_145 afs ;
1766};
1767#line 19 "include/linux/nfs_fs_i.h"
1768struct file_lock {
1769   struct file_lock *fl_next ;
1770   struct list_head fl_link ;
1771   struct list_head fl_block ;
1772   fl_owner_t fl_owner ;
1773   unsigned int fl_flags ;
1774   unsigned char fl_type ;
1775   unsigned int fl_pid ;
1776   struct pid *fl_nspid ;
1777   wait_queue_head_t fl_wait ;
1778   struct file *fl_file ;
1779   loff_t fl_start ;
1780   loff_t fl_end ;
1781   struct fasync_struct *fl_fasync ;
1782   unsigned long fl_break_time ;
1783   unsigned long fl_downgrade_time ;
1784   struct file_lock_operations  const  *fl_ops ;
1785   struct lock_manager_operations  const  *fl_lmops ;
1786   union __anonunion_fl_u_144 fl_u ;
1787};
1788#line 1221 "include/linux/fs.h"
1789struct fasync_struct {
1790   spinlock_t fa_lock ;
1791   int magic ;
1792   int fa_fd ;
1793   struct fasync_struct *fa_next ;
1794   struct file *fa_file ;
1795   struct rcu_head fa_rcu ;
1796};
1797#line 1417
1798struct file_system_type;
1799#line 1417
1800struct super_operations;
1801#line 1417
1802struct xattr_handler;
1803#line 1417
1804struct mtd_info;
1805#line 1417 "include/linux/fs.h"
1806struct super_block {
1807   struct list_head s_list ;
1808   dev_t s_dev ;
1809   unsigned char s_dirt ;
1810   unsigned char s_blocksize_bits ;
1811   unsigned long s_blocksize ;
1812   loff_t s_maxbytes ;
1813   struct file_system_type *s_type ;
1814   struct super_operations  const  *s_op ;
1815   struct dquot_operations  const  *dq_op ;
1816   struct quotactl_ops  const  *s_qcop ;
1817   struct export_operations  const  *s_export_op ;
1818   unsigned long s_flags ;
1819   unsigned long s_magic ;
1820   struct dentry *s_root ;
1821   struct rw_semaphore s_umount ;
1822   struct mutex s_lock ;
1823   int s_count ;
1824   atomic_t s_active ;
1825   void *s_security ;
1826   struct xattr_handler  const  **s_xattr ;
1827   struct list_head s_inodes ;
1828   struct hlist_bl_head s_anon ;
1829   struct list_head *s_files ;
1830   struct list_head s_mounts ;
1831   struct list_head s_dentry_lru ;
1832   int s_nr_dentry_unused ;
1833   spinlock_t s_inode_lru_lock ;
1834   struct list_head s_inode_lru ;
1835   int s_nr_inodes_unused ;
1836   struct block_device *s_bdev ;
1837   struct backing_dev_info *s_bdi ;
1838   struct mtd_info *s_mtd ;
1839   struct hlist_node s_instances ;
1840   struct quota_info s_dquot ;
1841   int s_frozen ;
1842   wait_queue_head_t s_wait_unfrozen ;
1843   char s_id[32U] ;
1844   u8 s_uuid[16U] ;
1845   void *s_fs_info ;
1846   unsigned int s_max_links ;
1847   fmode_t s_mode ;
1848   u32 s_time_gran ;
1849   struct mutex s_vfs_rename_mutex ;
1850   char *s_subtype ;
1851   char *s_options ;
1852   struct dentry_operations  const  *s_d_op ;
1853   int cleancache_poolid ;
1854   struct shrinker s_shrink ;
1855   atomic_long_t s_remove_count ;
1856   int s_readonly_remount ;
1857};
1858#line 1563 "include/linux/fs.h"
1859struct fiemap_extent_info {
1860   unsigned int fi_flags ;
1861   unsigned int fi_extents_mapped ;
1862   unsigned int fi_extents_max ;
1863   struct fiemap_extent *fi_extents_start ;
1864};
1865#line 1602 "include/linux/fs.h"
1866struct file_operations {
1867   struct module *owner ;
1868   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
1869   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
1870   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
1871   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
1872                       loff_t  ) ;
1873   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
1874                        loff_t  ) ;
1875   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
1876                                                   loff_t  , u64  , unsigned int  ) ) ;
1877   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
1878   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
1879   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
1880   int (*mmap)(struct file * , struct vm_area_struct * ) ;
1881   int (*open)(struct inode * , struct file * ) ;
1882   int (*flush)(struct file * , fl_owner_t  ) ;
1883   int (*release)(struct inode * , struct file * ) ;
1884   int (*fsync)(struct file * , loff_t  , loff_t  , int  ) ;
1885   int (*aio_fsync)(struct kiocb * , int  ) ;
1886   int (*fasync)(int  , struct file * , int  ) ;
1887   int (*lock)(struct file * , int  , struct file_lock * ) ;
1888   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
1889                       int  ) ;
1890   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
1891                                      unsigned long  , unsigned long  ) ;
1892   int (*check_flags)(int  ) ;
1893   int (*flock)(struct file * , int  , struct file_lock * ) ;
1894   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
1895                           unsigned int  ) ;
1896   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
1897                          unsigned int  ) ;
1898   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
1899   long (*fallocate)(struct file * , int  , loff_t  , loff_t  ) ;
1900};
1901#line 1637 "include/linux/fs.h"
1902struct inode_operations {
1903   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
1904   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
1905   int (*permission)(struct inode * , int  ) ;
1906   struct posix_acl *(*get_acl)(struct inode * , int  ) ;
1907   int (*readlink)(struct dentry * , char * , int  ) ;
1908   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
1909   int (*create)(struct inode * , struct dentry * , umode_t  , struct nameidata * ) ;
1910   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
1911   int (*unlink)(struct inode * , struct dentry * ) ;
1912   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
1913   int (*mkdir)(struct inode * , struct dentry * , umode_t  ) ;
1914   int (*rmdir)(struct inode * , struct dentry * ) ;
1915   int (*mknod)(struct inode * , struct dentry * , umode_t  , dev_t  ) ;
1916   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
1917   void (*truncate)(struct inode * ) ;
1918   int (*setattr)(struct dentry * , struct iattr * ) ;
1919   int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
1920   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
1921   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
1922   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
1923   int (*removexattr)(struct dentry * , char const   * ) ;
1924   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
1925   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64  , u64  ) ;
1926};
1927#line 1682 "include/linux/fs.h"
1928struct super_operations {
1929   struct inode *(*alloc_inode)(struct super_block * ) ;
1930   void (*destroy_inode)(struct inode * ) ;
1931   void (*dirty_inode)(struct inode * , int  ) ;
1932   int (*write_inode)(struct inode * , struct writeback_control * ) ;
1933   int (*drop_inode)(struct inode * ) ;
1934   void (*evict_inode)(struct inode * ) ;
1935   void (*put_super)(struct super_block * ) ;
1936   void (*write_super)(struct super_block * ) ;
1937   int (*sync_fs)(struct super_block * , int  ) ;
1938   int (*freeze_fs)(struct super_block * ) ;
1939   int (*unfreeze_fs)(struct super_block * ) ;
1940   int (*statfs)(struct dentry * , struct kstatfs * ) ;
1941   int (*remount_fs)(struct super_block * , int * , char * ) ;
1942   void (*umount_begin)(struct super_block * ) ;
1943   int (*show_options)(struct seq_file * , struct dentry * ) ;
1944   int (*show_devname)(struct seq_file * , struct dentry * ) ;
1945   int (*show_path)(struct seq_file * , struct dentry * ) ;
1946   int (*show_stats)(struct seq_file * , struct dentry * ) ;
1947   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
1948   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
1949                          loff_t  ) ;
1950   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
1951   int (*nr_cached_objects)(struct super_block * ) ;
1952   void (*free_cached_objects)(struct super_block * , int  ) ;
1953};
1954#line 1834 "include/linux/fs.h"
1955struct file_system_type {
1956   char const   *name ;
1957   int fs_flags ;
1958   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
1959   void (*kill_sb)(struct super_block * ) ;
1960   struct module *owner ;
1961   struct file_system_type *next ;
1962   struct hlist_head fs_supers ;
1963   struct lock_class_key s_lock_key ;
1964   struct lock_class_key s_umount_key ;
1965   struct lock_class_key s_vfs_rename_key ;
1966   struct lock_class_key i_lock_key ;
1967   struct lock_class_key i_mutex_key ;
1968   struct lock_class_key i_mutex_dir_key ;
1969};
1970#line 12 "include/linux/mod_devicetable.h"
1971typedef unsigned long kernel_ulong_t;
1972#line 205 "include/linux/mod_devicetable.h"
1973struct serio_device_id {
1974   __u8 type ;
1975   __u8 extra ;
1976   __u8 id ;
1977   __u8 proto ;
1978};
1979#line 215 "include/linux/mod_devicetable.h"
1980struct of_device_id {
1981   char name[32U] ;
1982   char type[32U] ;
1983   char compatible[128U] ;
1984   void *data ;
1985};
1986#line 269 "include/linux/mod_devicetable.h"
1987struct input_device_id {
1988   kernel_ulong_t flags ;
1989   __u16 bustype ;
1990   __u16 vendor ;
1991   __u16 product ;
1992   __u16 version ;
1993   kernel_ulong_t evbit[1U] ;
1994   kernel_ulong_t keybit[12U] ;
1995   kernel_ulong_t relbit[1U] ;
1996   kernel_ulong_t absbit[1U] ;
1997   kernel_ulong_t mscbit[1U] ;
1998   kernel_ulong_t ledbit[1U] ;
1999   kernel_ulong_t sndbit[1U] ;
2000   kernel_ulong_t ffbit[2U] ;
2001   kernel_ulong_t swbit[1U] ;
2002   kernel_ulong_t driver_info ;
2003};
2004#line 584
2005struct ff_device;
2006#line 584
2007struct input_mt_slot;
2008#line 584
2009struct input_handle;
2010#line 584 "include/linux/mod_devicetable.h"
2011struct input_dev {
2012   char const   *name ;
2013   char const   *phys ;
2014   char const   *uniq ;
2015   struct input_id id ;
2016   unsigned long propbit[1U] ;
2017   unsigned long evbit[1U] ;
2018   unsigned long keybit[12U] ;
2019   unsigned long relbit[1U] ;
2020   unsigned long absbit[1U] ;
2021   unsigned long mscbit[1U] ;
2022   unsigned long ledbit[1U] ;
2023   unsigned long sndbit[1U] ;
2024   unsigned long ffbit[2U] ;
2025   unsigned long swbit[1U] ;
2026   unsigned int hint_events_per_packet ;
2027   unsigned int keycodemax ;
2028   unsigned int keycodesize ;
2029   void *keycode ;
2030   int (*setkeycode)(struct input_dev * , struct input_keymap_entry  const  * , unsigned int * ) ;
2031   int (*getkeycode)(struct input_dev * , struct input_keymap_entry * ) ;
2032   struct ff_device *ff ;
2033   unsigned int repeat_key ;
2034   struct timer_list timer ;
2035   int rep[2U] ;
2036   struct input_mt_slot *mt ;
2037   int mtsize ;
2038   int slot ;
2039   int trkid ;
2040   struct input_absinfo *absinfo ;
2041   unsigned long key[12U] ;
2042   unsigned long led[1U] ;
2043   unsigned long snd[1U] ;
2044   unsigned long sw[1U] ;
2045   int (*open)(struct input_dev * ) ;
2046   void (*close)(struct input_dev * ) ;
2047   int (*flush)(struct input_dev * , struct file * ) ;
2048   int (*event)(struct input_dev * , unsigned int  , unsigned int  , int  ) ;
2049   struct input_handle *grab ;
2050   spinlock_t event_lock ;
2051   struct mutex mutex ;
2052   unsigned int users ;
2053   bool going_away ;
2054   bool sync ;
2055   struct device dev ;
2056   struct list_head h_list ;
2057   struct list_head node ;
2058};
2059#line 1319 "include/linux/input.h"
2060struct input_handler {
2061   void *private ;
2062   void (*event)(struct input_handle * , unsigned int  , unsigned int  , int  ) ;
2063   bool (*filter)(struct input_handle * , unsigned int  , unsigned int  , int  ) ;
2064   bool (*match)(struct input_handler * , struct input_dev * ) ;
2065   int (*connect)(struct input_handler * , struct input_dev * , struct input_device_id  const  * ) ;
2066   void (*disconnect)(struct input_handle * ) ;
2067   void (*start)(struct input_handle * ) ;
2068   struct file_operations  const  *fops ;
2069   int minor ;
2070   char const   *name ;
2071   struct input_device_id  const  *id_table ;
2072   struct list_head h_list ;
2073   struct list_head node ;
2074};
2075#line 1429 "include/linux/input.h"
2076struct input_handle {
2077   void *private ;
2078   int open ;
2079   char const   *name ;
2080   struct input_dev *dev ;
2081   struct input_handler *handler ;
2082   struct list_head d_node ;
2083   struct list_head h_node ;
2084};
2085#line 1591 "include/linux/input.h"
2086struct ff_device {
2087   int (*upload)(struct input_dev * , struct ff_effect * , struct ff_effect * ) ;
2088   int (*erase)(struct input_dev * , int  ) ;
2089   int (*playback)(struct input_dev * , int  , int  ) ;
2090   void (*set_gain)(struct input_dev * , u16  ) ;
2091   void (*set_autocenter)(struct input_dev * , u16  ) ;
2092   void (*destroy)(struct ff_device * ) ;
2093   void *private ;
2094   unsigned long ffbit[2U] ;
2095   struct mutex mutex ;
2096   int max_effects ;
2097   struct ff_effect *effects ;
2098   struct file *effect_owners[0U] ;
2099};
2100#line 1650 "include/linux/input.h"
2101struct input_mt_slot {
2102   int abs[12U] ;
2103};
2104#line 66 "include/linux/input/mt.h"
2105enum irqreturn {
2106    IRQ_NONE = 0,
2107    IRQ_HANDLED = 1,
2108    IRQ_WAKE_THREAD = 2
2109} ;
2110#line 16 "include/linux/irqreturn.h"
2111typedef enum irqreturn irqreturn_t;
2112#line 41 "include/asm-generic/sections.h"
2113struct exception_table_entry {
2114   unsigned long insn ;
2115   unsigned long fixup ;
2116};
2117#line 702 "include/linux/interrupt.h"
2118struct serio_driver;
2119#line 702 "include/linux/interrupt.h"
2120struct serio {
2121   void *port_data ;
2122   char name[32U] ;
2123   char phys[32U] ;
2124   bool manual_bind ;
2125   struct serio_device_id id ;
2126   spinlock_t lock ;
2127   int (*write)(struct serio * , unsigned char  ) ;
2128   int (*open)(struct serio * ) ;
2129   void (*close)(struct serio * ) ;
2130   int (*start)(struct serio * ) ;
2131   void (*stop)(struct serio * ) ;
2132   struct serio *parent ;
2133   struct list_head child_node ;
2134   struct list_head children ;
2135   unsigned int depth ;
2136   struct serio_driver *drv ;
2137   struct mutex drv_mutex ;
2138   struct device dev ;
2139   struct list_head node ;
2140};
2141#line 56 "include/linux/serio.h"
2142struct serio_driver {
2143   char const   *description ;
2144   struct serio_device_id  const  *id_table ;
2145   bool manual_bind ;
2146   void (*write_wakeup)(struct serio * ) ;
2147   irqreturn_t (*interrupt)(struct serio * , unsigned char  , unsigned int  ) ;
2148   int (*connect)(struct serio * , struct serio_driver * ) ;
2149   int (*reconnect)(struct serio * ) ;
2150   void (*disconnect)(struct serio * ) ;
2151   void (*cleanup)(struct serio * ) ;
2152   struct device_driver driver ;
2153};
2154#line 45 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2155struct w8001_coord {
2156   u8 rdy ;
2157   u8 tsw ;
2158   u8 f1 ;
2159   u8 f2 ;
2160   u16 x ;
2161   u16 y ;
2162   u16 pen_pressure ;
2163   u8 tilt_x ;
2164   u8 tilt_y ;
2165};
2166#line 84 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2167struct w8001_touch_query {
2168   u16 x ;
2169   u16 y ;
2170   u8 panel_res ;
2171   u8 capacity_res ;
2172   u8 sensor_id ;
2173};
2174#line 93 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2175struct w8001 {
2176   struct input_dev *dev ;
2177   struct serio *serio ;
2178   struct completion cmd_done ;
2179   int id ;
2180   int idx ;
2181   unsigned char response_type ;
2182   unsigned char response[11U] ;
2183   unsigned char data[11U] ;
2184   char phys[32U] ;
2185   int type ;
2186   unsigned int pktlen ;
2187   u16 max_touch_x ;
2188   u16 max_touch_y ;
2189   u16 max_pen_x ;
2190   u16 max_pen_y ;
2191   char name[64U] ;
2192};
2193#line 1 "<compiler builtins>"
2194
2195#line 1
2196long __builtin_expect(long  , long  ) ;
2197#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2198void ldv_spin_lock(void) ;
2199#line 3
2200void ldv_spin_unlock(void) ;
2201#line 4
2202int ldv_spin_trylock(void) ;
2203#line 82 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
2204__inline static void __set_bit(int nr , unsigned long volatile   *addr ) 
2205{ long volatile   *__cil_tmp3 ;
2206
2207  {
2208#line 84
2209  __cil_tmp3 = (long volatile   *)addr;
2210#line 84
2211  __asm__  volatile   ("bts %1,%0": "+m" (*__cil_tmp3): "Ir" (nr): "memory");
2212#line 85
2213  return;
2214}
2215}
2216#line 45 "include/linux/dynamic_debug.h"
2217extern int __dynamic_pr_debug(struct _ddebug * , char const   *  , ...) ;
2218#line 323 "include/linux/kernel.h"
2219extern int snprintf(char * , size_t  , char const   *  , ...) ;
2220#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
2221extern void *__memcpy(void * , void const   * , size_t  ) ;
2222#line 55
2223extern void *memset(void * , int  , size_t  ) ;
2224#line 39 "include/linux/string.h"
2225extern size_t strlcat(char * , char const   * , __kernel_size_t  ) ;
2226#line 79 "include/linux/wait.h"
2227extern void __init_waitqueue_head(wait_queue_head_t * , char const   * , struct lock_class_key * ) ;
2228#line 73 "include/linux/completion.h"
2229__inline static void init_completion(struct completion *x ) 
2230{ struct lock_class_key __key ;
2231  unsigned long __cil_tmp3 ;
2232  unsigned long __cil_tmp4 ;
2233  wait_queue_head_t *__cil_tmp5 ;
2234
2235  {
2236  {
2237#line 75
2238  *((unsigned int *)x) = 0U;
2239#line 76
2240  __cil_tmp3 = (unsigned long )x;
2241#line 76
2242  __cil_tmp4 = __cil_tmp3 + 8;
2243#line 76
2244  __cil_tmp5 = (wait_queue_head_t *)__cil_tmp4;
2245#line 76
2246  __init_waitqueue_head(__cil_tmp5, "&x->wait", & __key);
2247  }
2248#line 78
2249  return;
2250}
2251}
2252#line 82
2253extern unsigned long wait_for_completion_timeout(struct completion * , unsigned long  ) ;
2254#line 91
2255extern void complete(struct completion * ) ;
2256#line 26 "include/linux/export.h"
2257extern struct module __this_module ;
2258#line 161 "include/linux/slab.h"
2259extern void kfree(void const   * ) ;
2260#line 220 "include/linux/slub_def.h"
2261extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
2262#line 223
2263void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2264#line 353 "include/linux/slab.h"
2265__inline static void *kzalloc(size_t size , gfp_t flags ) ;
2266#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2267extern void *__VERIFIER_nondet_pointer(void) ;
2268#line 11
2269void ldv_check_alloc_flags(gfp_t flags ) ;
2270#line 12
2271void ldv_check_alloc_nonatomic(void) ;
2272#line 14
2273struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2274#line 792 "include/linux/device.h"
2275extern void *dev_get_drvdata(struct device  const  * ) ;
2276#line 793
2277extern int dev_set_drvdata(struct device * , void * ) ;
2278#line 1456 "include/linux/input.h"
2279extern struct input_dev *input_allocate_device(void) ;
2280#line 1457
2281extern void input_free_device(struct input_dev * ) ;
2282#line 1470 "include/linux/input.h"
2283__inline static void *input_get_drvdata(struct input_dev *dev ) 
2284{ void *tmp ;
2285  unsigned long __cil_tmp3 ;
2286  unsigned long __cil_tmp4 ;
2287  struct device *__cil_tmp5 ;
2288  struct device  const  *__cil_tmp6 ;
2289
2290  {
2291  {
2292#line 1472
2293  __cil_tmp3 = (unsigned long )dev;
2294#line 1472
2295  __cil_tmp4 = __cil_tmp3 + 840;
2296#line 1472
2297  __cil_tmp5 = (struct device *)__cil_tmp4;
2298#line 1472
2299  __cil_tmp6 = (struct device  const  *)__cil_tmp5;
2300#line 1472
2301  tmp = dev_get_drvdata(__cil_tmp6);
2302  }
2303#line 1472
2304  return (tmp);
2305}
2306}
2307#line 1475 "include/linux/input.h"
2308__inline static void input_set_drvdata(struct input_dev *dev , void *data ) 
2309{ unsigned long __cil_tmp3 ;
2310  unsigned long __cil_tmp4 ;
2311  struct device *__cil_tmp5 ;
2312
2313  {
2314  {
2315#line 1477
2316  __cil_tmp3 = (unsigned long )dev;
2317#line 1477
2318  __cil_tmp4 = __cil_tmp3 + 840;
2319#line 1477
2320  __cil_tmp5 = (struct device *)__cil_tmp4;
2321#line 1477
2322  dev_set_drvdata(__cil_tmp5, data);
2323  }
2324#line 1478
2325  return;
2326}
2327}
2328#line 1480
2329extern int input_register_device(struct input_dev * ) ;
2330#line 1481
2331extern void input_unregister_device(struct input_dev * ) ;
2332#line 1502
2333extern void input_event(struct input_dev * , unsigned int  , unsigned int  , int  ) ;
2334#line 1505 "include/linux/input.h"
2335__inline static void input_report_key(struct input_dev *dev , unsigned int code ,
2336                                      int value ) 
2337{ int __cil_tmp4 ;
2338
2339  {
2340  {
2341#line 1507
2342  __cil_tmp4 = value != 0;
2343#line 1507
2344  input_event(dev, 1U, code, __cil_tmp4);
2345  }
2346#line 1508
2347  return;
2348}
2349}
2350#line 1515 "include/linux/input.h"
2351__inline static void input_report_abs(struct input_dev *dev , unsigned int code ,
2352                                      int value ) 
2353{ 
2354
2355  {
2356  {
2357#line 1517
2358  input_event(dev, 3U, code, value);
2359  }
2360#line 1518
2361  return;
2362}
2363}
2364#line 1530 "include/linux/input.h"
2365__inline static void input_sync(struct input_dev *dev ) 
2366{ 
2367
2368  {
2369  {
2370#line 1532
2371  input_event(dev, 0U, 0U, 0);
2372  }
2373#line 1533
2374  return;
2375}
2376}
2377#line 1557
2378extern void input_alloc_absinfo(struct input_dev * ) ;
2379#line 1558
2380extern void input_set_abs_params(struct input_dev * , unsigned int  , int  , int  ,
2381                                 int  , int  ) ;
2382#line 1581 "include/linux/input.h"
2383__inline static void input_abs_set_res(struct input_dev *dev , unsigned int axis ,
2384                                       int val ) 
2385{ struct input_absinfo *__cil_tmp4 ;
2386  unsigned long __cil_tmp5 ;
2387  unsigned long __cil_tmp6 ;
2388  unsigned long __cil_tmp7 ;
2389  struct input_absinfo *__cil_tmp8 ;
2390  unsigned long __cil_tmp9 ;
2391  unsigned long __cil_tmp10 ;
2392  unsigned long __cil_tmp11 ;
2393  unsigned long __cil_tmp12 ;
2394  struct input_absinfo *__cil_tmp13 ;
2395  struct input_absinfo *__cil_tmp14 ;
2396  unsigned long __cil_tmp15 ;
2397  unsigned long __cil_tmp16 ;
2398
2399  {
2400  {
2401#line 1581
2402  input_alloc_absinfo(dev);
2403  }
2404  {
2405#line 1581
2406  __cil_tmp4 = (struct input_absinfo *)0;
2407#line 1581
2408  __cil_tmp5 = (unsigned long )__cil_tmp4;
2409#line 1581
2410  __cil_tmp6 = (unsigned long )dev;
2411#line 1581
2412  __cil_tmp7 = __cil_tmp6 + 424;
2413#line 1581
2414  __cil_tmp8 = *((struct input_absinfo **)__cil_tmp7);
2415#line 1581
2416  __cil_tmp9 = (unsigned long )__cil_tmp8;
2417#line 1581
2418  if (__cil_tmp9 != __cil_tmp5) {
2419#line 1581
2420    __cil_tmp10 = (unsigned long )axis;
2421#line 1581
2422    __cil_tmp11 = (unsigned long )dev;
2423#line 1581
2424    __cil_tmp12 = __cil_tmp11 + 424;
2425#line 1581
2426    __cil_tmp13 = *((struct input_absinfo **)__cil_tmp12);
2427#line 1581
2428    __cil_tmp14 = __cil_tmp13 + __cil_tmp10;
2429#line 1581
2430    __cil_tmp15 = (unsigned long )__cil_tmp14;
2431#line 1581
2432    __cil_tmp16 = __cil_tmp15 + 20;
2433#line 1581
2434    *((__s32 *)__cil_tmp16) = val;
2435  } else {
2436
2437  }
2438  }
2439#line 1582
2440  return;
2441}
2442}
2443#line 38 "include/linux/input/mt.h"
2444extern int input_mt_init_slots(struct input_dev * , unsigned int  ) ;
2445#line 46 "include/linux/input/mt.h"
2446__inline static void input_mt_slot(struct input_dev *dev , int slot ) 
2447{ 
2448
2449  {
2450  {
2451#line 48
2452  input_event(dev, 3U, 47U, slot);
2453  }
2454#line 49
2455  return;
2456}
2457}
2458#line 61
2459extern void input_mt_report_slot_state(struct input_dev * , unsigned int  , bool  ) ;
2460#line 65
2461extern void input_mt_report_pointer_emulation(struct input_dev * , bool  ) ;
2462#line 75 "include/linux/serio.h"
2463extern int serio_open(struct serio * , struct serio_driver * ) ;
2464#line 76
2465extern void serio_close(struct serio * ) ;
2466#line 90
2467extern int __serio_register_driver(struct serio_driver * , struct module * , char const   * ) ;
2468#line 97
2469extern void serio_unregister_driver(struct serio_driver * ) ;
2470#line 99 "include/linux/serio.h"
2471__inline static int serio_write(struct serio *serio , unsigned char data ) 
2472{ int tmp ;
2473  int (*__cil_tmp4)(struct serio * , unsigned char  ) ;
2474  unsigned long __cil_tmp5 ;
2475  unsigned long __cil_tmp6 ;
2476  unsigned long __cil_tmp7 ;
2477  int (*__cil_tmp8)(struct serio * , unsigned char  ) ;
2478  unsigned long __cil_tmp9 ;
2479  unsigned long __cil_tmp10 ;
2480  unsigned long __cil_tmp11 ;
2481  int (*__cil_tmp12)(struct serio * , unsigned char  ) ;
2482  int __cil_tmp13 ;
2483  unsigned char __cil_tmp14 ;
2484
2485  {
2486  {
2487#line 101
2488  __cil_tmp4 = (int (*)(struct serio * , unsigned char  ))0;
2489#line 101
2490  __cil_tmp5 = (unsigned long )__cil_tmp4;
2491#line 101
2492  __cil_tmp6 = (unsigned long )serio;
2493#line 101
2494  __cil_tmp7 = __cil_tmp6 + 152;
2495#line 101
2496  __cil_tmp8 = *((int (**)(struct serio * , unsigned char  ))__cil_tmp7);
2497#line 101
2498  __cil_tmp9 = (unsigned long )__cil_tmp8;
2499#line 101
2500  if (__cil_tmp9 != __cil_tmp5) {
2501    {
2502#line 102
2503    __cil_tmp10 = (unsigned long )serio;
2504#line 102
2505    __cil_tmp11 = __cil_tmp10 + 152;
2506#line 102
2507    __cil_tmp12 = *((int (**)(struct serio * , unsigned char  ))__cil_tmp11);
2508#line 102
2509    __cil_tmp13 = (int )data;
2510#line 102
2511    __cil_tmp14 = (unsigned char )__cil_tmp13;
2512#line 102
2513    tmp = (*__cil_tmp12)(serio, __cil_tmp14);
2514    }
2515#line 102
2516    return (tmp);
2517  } else {
2518#line 104
2519    return (-1);
2520  }
2521  }
2522}
2523}
2524#line 117 "include/linux/serio.h"
2525__inline static void *serio_get_drvdata(struct serio *serio ) 
2526{ void *tmp ;
2527  unsigned long __cil_tmp3 ;
2528  unsigned long __cil_tmp4 ;
2529  struct device *__cil_tmp5 ;
2530  struct device  const  *__cil_tmp6 ;
2531
2532  {
2533  {
2534#line 119
2535  __cil_tmp3 = (unsigned long )serio;
2536#line 119
2537  __cil_tmp4 = __cil_tmp3 + 416;
2538#line 119
2539  __cil_tmp5 = (struct device *)__cil_tmp4;
2540#line 119
2541  __cil_tmp6 = (struct device  const  *)__cil_tmp5;
2542#line 119
2543  tmp = dev_get_drvdata(__cil_tmp6);
2544  }
2545#line 119
2546  return (tmp);
2547}
2548}
2549#line 122 "include/linux/serio.h"
2550__inline static void serio_set_drvdata(struct serio *serio , void *data ) 
2551{ unsigned long __cil_tmp3 ;
2552  unsigned long __cil_tmp4 ;
2553  struct device *__cil_tmp5 ;
2554
2555  {
2556  {
2557#line 124
2558  __cil_tmp3 = (unsigned long )serio;
2559#line 124
2560  __cil_tmp4 = __cil_tmp3 + 416;
2561#line 124
2562  __cil_tmp5 = (struct device *)__cil_tmp4;
2563#line 124
2564  dev_set_drvdata(__cil_tmp5, data);
2565  }
2566#line 125
2567  return;
2568}
2569}
2570#line 46 "include/linux/delay.h"
2571extern void msleep(unsigned int  ) ;
2572#line 117 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2573static void parse_pen_data(u8 *data , struct w8001_coord *coord ) 
2574{ void *__cil_tmp3 ;
2575  u8 __cil_tmp4 ;
2576  unsigned int __cil_tmp5 ;
2577  unsigned int __cil_tmp6 ;
2578  unsigned long __cil_tmp7 ;
2579  unsigned long __cil_tmp8 ;
2580  u8 __cil_tmp9 ;
2581  unsigned int __cil_tmp10 ;
2582  unsigned int __cil_tmp11 ;
2583  unsigned long __cil_tmp12 ;
2584  unsigned long __cil_tmp13 ;
2585  u8 __cil_tmp14 ;
2586  unsigned int __cil_tmp15 ;
2587  unsigned int __cil_tmp16 ;
2588  unsigned long __cil_tmp17 ;
2589  unsigned long __cil_tmp18 ;
2590  u8 __cil_tmp19 ;
2591  unsigned int __cil_tmp20 ;
2592  unsigned int __cil_tmp21 ;
2593  unsigned long __cil_tmp22 ;
2594  unsigned long __cil_tmp23 ;
2595  u8 *__cil_tmp24 ;
2596  u8 __cil_tmp25 ;
2597  int __cil_tmp26 ;
2598  int __cil_tmp27 ;
2599  unsigned long __cil_tmp28 ;
2600  unsigned long __cil_tmp29 ;
2601  u8 *__cil_tmp30 ;
2602  u8 __cil_tmp31 ;
2603  int __cil_tmp32 ;
2604  int __cil_tmp33 ;
2605  int __cil_tmp34 ;
2606  short __cil_tmp35 ;
2607  int __cil_tmp36 ;
2608  unsigned long __cil_tmp37 ;
2609  unsigned long __cil_tmp38 ;
2610  u16 __cil_tmp39 ;
2611  short __cil_tmp40 ;
2612  int __cil_tmp41 ;
2613  int __cil_tmp42 ;
2614  unsigned long __cil_tmp43 ;
2615  unsigned long __cil_tmp44 ;
2616  u8 *__cil_tmp45 ;
2617  u8 __cil_tmp46 ;
2618  int __cil_tmp47 ;
2619  int __cil_tmp48 ;
2620  int __cil_tmp49 ;
2621  short __cil_tmp50 ;
2622  int __cil_tmp51 ;
2623  unsigned long __cil_tmp52 ;
2624  unsigned long __cil_tmp53 ;
2625  u16 __cil_tmp54 ;
2626  short __cil_tmp55 ;
2627  int __cil_tmp56 ;
2628  int __cil_tmp57 ;
2629  unsigned long __cil_tmp58 ;
2630  unsigned long __cil_tmp59 ;
2631  u8 *__cil_tmp60 ;
2632  u8 __cil_tmp61 ;
2633  int __cil_tmp62 ;
2634  int __cil_tmp63 ;
2635  unsigned long __cil_tmp64 ;
2636  unsigned long __cil_tmp65 ;
2637  u8 *__cil_tmp66 ;
2638  u8 __cil_tmp67 ;
2639  int __cil_tmp68 ;
2640  int __cil_tmp69 ;
2641  int __cil_tmp70 ;
2642  short __cil_tmp71 ;
2643  int __cil_tmp72 ;
2644  unsigned long __cil_tmp73 ;
2645  unsigned long __cil_tmp74 ;
2646  u16 __cil_tmp75 ;
2647  short __cil_tmp76 ;
2648  int __cil_tmp77 ;
2649  int __cil_tmp78 ;
2650  unsigned long __cil_tmp79 ;
2651  unsigned long __cil_tmp80 ;
2652  u8 *__cil_tmp81 ;
2653  u8 __cil_tmp82 ;
2654  int __cil_tmp83 ;
2655  int __cil_tmp84 ;
2656  int __cil_tmp85 ;
2657  short __cil_tmp86 ;
2658  int __cil_tmp87 ;
2659  unsigned long __cil_tmp88 ;
2660  unsigned long __cil_tmp89 ;
2661  u16 __cil_tmp90 ;
2662  short __cil_tmp91 ;
2663  int __cil_tmp92 ;
2664  int __cil_tmp93 ;
2665  unsigned long __cil_tmp94 ;
2666  unsigned long __cil_tmp95 ;
2667  u8 *__cil_tmp96 ;
2668  u8 __cil_tmp97 ;
2669  u16 __cil_tmp98 ;
2670  unsigned int __cil_tmp99 ;
2671  unsigned int __cil_tmp100 ;
2672  unsigned long __cil_tmp101 ;
2673  unsigned long __cil_tmp102 ;
2674  u8 *__cil_tmp103 ;
2675  u8 __cil_tmp104 ;
2676  int __cil_tmp105 ;
2677  int __cil_tmp106 ;
2678  int __cil_tmp107 ;
2679  short __cil_tmp108 ;
2680  int __cil_tmp109 ;
2681  unsigned long __cil_tmp110 ;
2682  unsigned long __cil_tmp111 ;
2683  u16 __cil_tmp112 ;
2684  short __cil_tmp113 ;
2685  int __cil_tmp114 ;
2686  int __cil_tmp115 ;
2687  unsigned long __cil_tmp116 ;
2688  unsigned long __cil_tmp117 ;
2689  u8 *__cil_tmp118 ;
2690  u8 __cil_tmp119 ;
2691  unsigned int __cil_tmp120 ;
2692  unsigned int __cil_tmp121 ;
2693  unsigned long __cil_tmp122 ;
2694  unsigned long __cil_tmp123 ;
2695  u8 *__cil_tmp124 ;
2696  u8 __cil_tmp125 ;
2697  unsigned int __cil_tmp126 ;
2698  unsigned int __cil_tmp127 ;
2699
2700  {
2701  {
2702#line 119
2703  __cil_tmp3 = (void *)coord;
2704#line 119
2705  memset(__cil_tmp3, 0, 12UL);
2706#line 121
2707  __cil_tmp4 = *data;
2708#line 121
2709  __cil_tmp5 = (unsigned int )__cil_tmp4;
2710#line 121
2711  __cil_tmp6 = __cil_tmp5 & 32U;
2712#line 121
2713  *((u8 *)coord) = (u8 )__cil_tmp6;
2714#line 122
2715  __cil_tmp7 = (unsigned long )coord;
2716#line 122
2717  __cil_tmp8 = __cil_tmp7 + 1;
2718#line 122
2719  __cil_tmp9 = *data;
2720#line 122
2721  __cil_tmp10 = (unsigned int )__cil_tmp9;
2722#line 122
2723  __cil_tmp11 = __cil_tmp10 & 1U;
2724#line 122
2725  *((u8 *)__cil_tmp8) = (u8 )__cil_tmp11;
2726#line 123
2727  __cil_tmp12 = (unsigned long )coord;
2728#line 123
2729  __cil_tmp13 = __cil_tmp12 + 2;
2730#line 123
2731  __cil_tmp14 = *data;
2732#line 123
2733  __cil_tmp15 = (unsigned int )__cil_tmp14;
2734#line 123
2735  __cil_tmp16 = __cil_tmp15 & 2U;
2736#line 123
2737  *((u8 *)__cil_tmp13) = (u8 )__cil_tmp16;
2738#line 124
2739  __cil_tmp17 = (unsigned long )coord;
2740#line 124
2741  __cil_tmp18 = __cil_tmp17 + 3;
2742#line 124
2743  __cil_tmp19 = *data;
2744#line 124
2745  __cil_tmp20 = (unsigned int )__cil_tmp19;
2746#line 124
2747  __cil_tmp21 = __cil_tmp20 & 4U;
2748#line 124
2749  *((u8 *)__cil_tmp18) = (u8 )__cil_tmp21;
2750#line 126
2751  __cil_tmp22 = (unsigned long )coord;
2752#line 126
2753  __cil_tmp23 = __cil_tmp22 + 4;
2754#line 126
2755  __cil_tmp24 = data + 1UL;
2756#line 126
2757  __cil_tmp25 = *__cil_tmp24;
2758#line 126
2759  __cil_tmp26 = (int )__cil_tmp25;
2760#line 126
2761  __cil_tmp27 = __cil_tmp26 << 9;
2762#line 126
2763  *((u16 *)__cil_tmp23) = (u16 )__cil_tmp27;
2764#line 127
2765  __cil_tmp28 = (unsigned long )coord;
2766#line 127
2767  __cil_tmp29 = __cil_tmp28 + 4;
2768#line 127
2769  __cil_tmp30 = data + 2UL;
2770#line 127
2771  __cil_tmp31 = *__cil_tmp30;
2772#line 127
2773  __cil_tmp32 = (int )__cil_tmp31;
2774#line 127
2775  __cil_tmp33 = __cil_tmp32 & 127;
2776#line 127
2777  __cil_tmp34 = __cil_tmp33 << 2;
2778#line 127
2779  __cil_tmp35 = (short )__cil_tmp34;
2780#line 127
2781  __cil_tmp36 = (int )__cil_tmp35;
2782#line 127
2783  __cil_tmp37 = (unsigned long )coord;
2784#line 127
2785  __cil_tmp38 = __cil_tmp37 + 4;
2786#line 127
2787  __cil_tmp39 = *((u16 *)__cil_tmp38);
2788#line 127
2789  __cil_tmp40 = (short )__cil_tmp39;
2790#line 127
2791  __cil_tmp41 = (int )__cil_tmp40;
2792#line 127
2793  __cil_tmp42 = __cil_tmp41 | __cil_tmp36;
2794#line 127
2795  *((u16 *)__cil_tmp29) = (u16 )__cil_tmp42;
2796#line 128
2797  __cil_tmp43 = (unsigned long )coord;
2798#line 128
2799  __cil_tmp44 = __cil_tmp43 + 4;
2800#line 128
2801  __cil_tmp45 = data + 6UL;
2802#line 128
2803  __cil_tmp46 = *__cil_tmp45;
2804#line 128
2805  __cil_tmp47 = (int )__cil_tmp46;
2806#line 128
2807  __cil_tmp48 = __cil_tmp47 & 96;
2808#line 128
2809  __cil_tmp49 = __cil_tmp48 >> 5;
2810#line 128
2811  __cil_tmp50 = (short )__cil_tmp49;
2812#line 128
2813  __cil_tmp51 = (int )__cil_tmp50;
2814#line 128
2815  __cil_tmp52 = (unsigned long )coord;
2816#line 128
2817  __cil_tmp53 = __cil_tmp52 + 4;
2818#line 128
2819  __cil_tmp54 = *((u16 *)__cil_tmp53);
2820#line 128
2821  __cil_tmp55 = (short )__cil_tmp54;
2822#line 128
2823  __cil_tmp56 = (int )__cil_tmp55;
2824#line 128
2825  __cil_tmp57 = __cil_tmp56 | __cil_tmp51;
2826#line 128
2827  *((u16 *)__cil_tmp44) = (u16 )__cil_tmp57;
2828#line 130
2829  __cil_tmp58 = (unsigned long )coord;
2830#line 130
2831  __cil_tmp59 = __cil_tmp58 + 6;
2832#line 130
2833  __cil_tmp60 = data + 3UL;
2834#line 130
2835  __cil_tmp61 = *__cil_tmp60;
2836#line 130
2837  __cil_tmp62 = (int )__cil_tmp61;
2838#line 130
2839  __cil_tmp63 = __cil_tmp62 << 9;
2840#line 130
2841  *((u16 *)__cil_tmp59) = (u16 )__cil_tmp63;
2842#line 131
2843  __cil_tmp64 = (unsigned long )coord;
2844#line 131
2845  __cil_tmp65 = __cil_tmp64 + 6;
2846#line 131
2847  __cil_tmp66 = data + 4UL;
2848#line 131
2849  __cil_tmp67 = *__cil_tmp66;
2850#line 131
2851  __cil_tmp68 = (int )__cil_tmp67;
2852#line 131
2853  __cil_tmp69 = __cil_tmp68 & 127;
2854#line 131
2855  __cil_tmp70 = __cil_tmp69 << 2;
2856#line 131
2857  __cil_tmp71 = (short )__cil_tmp70;
2858#line 131
2859  __cil_tmp72 = (int )__cil_tmp71;
2860#line 131
2861  __cil_tmp73 = (unsigned long )coord;
2862#line 131
2863  __cil_tmp74 = __cil_tmp73 + 6;
2864#line 131
2865  __cil_tmp75 = *((u16 *)__cil_tmp74);
2866#line 131
2867  __cil_tmp76 = (short )__cil_tmp75;
2868#line 131
2869  __cil_tmp77 = (int )__cil_tmp76;
2870#line 131
2871  __cil_tmp78 = __cil_tmp77 | __cil_tmp72;
2872#line 131
2873  *((u16 *)__cil_tmp65) = (u16 )__cil_tmp78;
2874#line 132
2875  __cil_tmp79 = (unsigned long )coord;
2876#line 132
2877  __cil_tmp80 = __cil_tmp79 + 6;
2878#line 132
2879  __cil_tmp81 = data + 6UL;
2880#line 132
2881  __cil_tmp82 = *__cil_tmp81;
2882#line 132
2883  __cil_tmp83 = (int )__cil_tmp82;
2884#line 132
2885  __cil_tmp84 = __cil_tmp83 & 24;
2886#line 132
2887  __cil_tmp85 = __cil_tmp84 >> 3;
2888#line 132
2889  __cil_tmp86 = (short )__cil_tmp85;
2890#line 132
2891  __cil_tmp87 = (int )__cil_tmp86;
2892#line 132
2893  __cil_tmp88 = (unsigned long )coord;
2894#line 132
2895  __cil_tmp89 = __cil_tmp88 + 6;
2896#line 132
2897  __cil_tmp90 = *((u16 *)__cil_tmp89);
2898#line 132
2899  __cil_tmp91 = (short )__cil_tmp90;
2900#line 132
2901  __cil_tmp92 = (int )__cil_tmp91;
2902#line 132
2903  __cil_tmp93 = __cil_tmp92 | __cil_tmp87;
2904#line 132
2905  *((u16 *)__cil_tmp80) = (u16 )__cil_tmp93;
2906#line 134
2907  __cil_tmp94 = (unsigned long )coord;
2908#line 134
2909  __cil_tmp95 = __cil_tmp94 + 8;
2910#line 134
2911  __cil_tmp96 = data + 5UL;
2912#line 134
2913  __cil_tmp97 = *__cil_tmp96;
2914#line 134
2915  __cil_tmp98 = (u16 )__cil_tmp97;
2916#line 134
2917  __cil_tmp99 = (unsigned int )__cil_tmp98;
2918#line 134
2919  __cil_tmp100 = __cil_tmp99 & 127U;
2920#line 134
2921  *((u16 *)__cil_tmp95) = (u16 )__cil_tmp100;
2922#line 135
2923  __cil_tmp101 = (unsigned long )coord;
2924#line 135
2925  __cil_tmp102 = __cil_tmp101 + 8;
2926#line 135
2927  __cil_tmp103 = data + 6UL;
2928#line 135
2929  __cil_tmp104 = *__cil_tmp103;
2930#line 135
2931  __cil_tmp105 = (int )__cil_tmp104;
2932#line 135
2933  __cil_tmp106 = __cil_tmp105 & 7;
2934#line 135
2935  __cil_tmp107 = __cil_tmp106 << 7;
2936#line 135
2937  __cil_tmp108 = (short )__cil_tmp107;
2938#line 135
2939  __cil_tmp109 = (int )__cil_tmp108;
2940#line 135
2941  __cil_tmp110 = (unsigned long )coord;
2942#line 135
2943  __cil_tmp111 = __cil_tmp110 + 8;
2944#line 135
2945  __cil_tmp112 = *((u16 *)__cil_tmp111);
2946#line 135
2947  __cil_tmp113 = (short )__cil_tmp112;
2948#line 135
2949  __cil_tmp114 = (int )__cil_tmp113;
2950#line 135
2951  __cil_tmp115 = __cil_tmp114 | __cil_tmp109;
2952#line 135
2953  *((u16 *)__cil_tmp102) = (u16 )__cil_tmp115;
2954#line 137
2955  __cil_tmp116 = (unsigned long )coord;
2956#line 137
2957  __cil_tmp117 = __cil_tmp116 + 10;
2958#line 137
2959  __cil_tmp118 = data + 7UL;
2960#line 137
2961  __cil_tmp119 = *__cil_tmp118;
2962#line 137
2963  __cil_tmp120 = (unsigned int )__cil_tmp119;
2964#line 137
2965  __cil_tmp121 = __cil_tmp120 & 127U;
2966#line 137
2967  *((u8 *)__cil_tmp117) = (u8 )__cil_tmp121;
2968#line 138
2969  __cil_tmp122 = (unsigned long )coord;
2970#line 138
2971  __cil_tmp123 = __cil_tmp122 + 11;
2972#line 138
2973  __cil_tmp124 = data + 8UL;
2974#line 138
2975  __cil_tmp125 = *__cil_tmp124;
2976#line 138
2977  __cil_tmp126 = (unsigned int )__cil_tmp125;
2978#line 138
2979  __cil_tmp127 = __cil_tmp126 & 127U;
2980#line 138
2981  *((u8 *)__cil_tmp123) = (u8 )__cil_tmp127;
2982  }
2983#line 139
2984  return;
2985}
2986}
2987#line 141 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
2988static void parse_single_touch(u8 *data , struct w8001_coord *coord ) 
2989{ unsigned long __cil_tmp3 ;
2990  unsigned long __cil_tmp4 ;
2991  u8 *__cil_tmp5 ;
2992  u8 __cil_tmp6 ;
2993  short __cil_tmp7 ;
2994  int __cil_tmp8 ;
2995  u8 *__cil_tmp9 ;
2996  u8 __cil_tmp10 ;
2997  int __cil_tmp11 ;
2998  int __cil_tmp12 ;
2999  short __cil_tmp13 ;
3000  int __cil_tmp14 ;
3001  int __cil_tmp15 ;
3002  unsigned long __cil_tmp16 ;
3003  unsigned long __cil_tmp17 ;
3004  u8 *__cil_tmp18 ;
3005  u8 __cil_tmp19 ;
3006  short __cil_tmp20 ;
3007  int __cil_tmp21 ;
3008  u8 *__cil_tmp22 ;
3009  u8 __cil_tmp23 ;
3010  int __cil_tmp24 ;
3011  int __cil_tmp25 ;
3012  short __cil_tmp26 ;
3013  int __cil_tmp27 ;
3014  int __cil_tmp28 ;
3015  unsigned long __cil_tmp29 ;
3016  unsigned long __cil_tmp30 ;
3017  u8 __cil_tmp31 ;
3018  unsigned int __cil_tmp32 ;
3019  unsigned int __cil_tmp33 ;
3020
3021  {
3022#line 143
3023  __cil_tmp3 = (unsigned long )coord;
3024#line 143
3025  __cil_tmp4 = __cil_tmp3 + 4;
3026#line 143
3027  __cil_tmp5 = data + 2UL;
3028#line 143
3029  __cil_tmp6 = *__cil_tmp5;
3030#line 143
3031  __cil_tmp7 = (short )__cil_tmp6;
3032#line 143
3033  __cil_tmp8 = (int )__cil_tmp7;
3034#line 143
3035  __cil_tmp9 = data + 1UL;
3036#line 143
3037  __cil_tmp10 = *__cil_tmp9;
3038#line 143
3039  __cil_tmp11 = (int )__cil_tmp10;
3040#line 143
3041  __cil_tmp12 = __cil_tmp11 << 7;
3042#line 143
3043  __cil_tmp13 = (short )__cil_tmp12;
3044#line 143
3045  __cil_tmp14 = (int )__cil_tmp13;
3046#line 143
3047  __cil_tmp15 = __cil_tmp14 | __cil_tmp8;
3048#line 143
3049  *((u16 *)__cil_tmp4) = (u16 )__cil_tmp15;
3050#line 144
3051  __cil_tmp16 = (unsigned long )coord;
3052#line 144
3053  __cil_tmp17 = __cil_tmp16 + 6;
3054#line 144
3055  __cil_tmp18 = data + 4UL;
3056#line 144
3057  __cil_tmp19 = *__cil_tmp18;
3058#line 144
3059  __cil_tmp20 = (short )__cil_tmp19;
3060#line 144
3061  __cil_tmp21 = (int )__cil_tmp20;
3062#line 144
3063  __cil_tmp22 = data + 3UL;
3064#line 144
3065  __cil_tmp23 = *__cil_tmp22;
3066#line 144
3067  __cil_tmp24 = (int )__cil_tmp23;
3068#line 144
3069  __cil_tmp25 = __cil_tmp24 << 7;
3070#line 144
3071  __cil_tmp26 = (short )__cil_tmp25;
3072#line 144
3073  __cil_tmp27 = (int )__cil_tmp26;
3074#line 144
3075  __cil_tmp28 = __cil_tmp27 | __cil_tmp21;
3076#line 144
3077  *((u16 *)__cil_tmp17) = (u16 )__cil_tmp28;
3078#line 145
3079  __cil_tmp29 = (unsigned long )coord;
3080#line 145
3081  __cil_tmp30 = __cil_tmp29 + 1;
3082#line 145
3083  __cil_tmp31 = *data;
3084#line 145
3085  __cil_tmp32 = (unsigned int )__cil_tmp31;
3086#line 145
3087  __cil_tmp33 = __cil_tmp32 & 1U;
3088#line 145
3089  *((u8 *)__cil_tmp30) = (u8 )__cil_tmp33;
3090#line 146
3091  return;
3092}
3093}
3094#line 148 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
3095static void scale_touch_coordinates(struct w8001 *w8001 , unsigned int *x , unsigned int *y ) 
3096{ unsigned long __cil_tmp4 ;
3097  unsigned long __cil_tmp5 ;
3098  u16 __cil_tmp6 ;
3099  unsigned int __cil_tmp7 ;
3100  unsigned long __cil_tmp8 ;
3101  unsigned long __cil_tmp9 ;
3102  u16 __cil_tmp10 ;
3103  unsigned int __cil_tmp11 ;
3104  unsigned long __cil_tmp12 ;
3105  unsigned long __cil_tmp13 ;
3106  u16 __cil_tmp14 ;
3107  unsigned int __cil_tmp15 ;
3108  unsigned long __cil_tmp16 ;
3109  unsigned long __cil_tmp17 ;
3110  u16 __cil_tmp18 ;
3111  unsigned int __cil_tmp19 ;
3112  unsigned int __cil_tmp20 ;
3113  unsigned int __cil_tmp21 ;
3114  unsigned long __cil_tmp22 ;
3115  unsigned long __cil_tmp23 ;
3116  u16 __cil_tmp24 ;
3117  unsigned int __cil_tmp25 ;
3118  unsigned long __cil_tmp26 ;
3119  unsigned long __cil_tmp27 ;
3120  u16 __cil_tmp28 ;
3121  unsigned int __cil_tmp29 ;
3122  unsigned long __cil_tmp30 ;
3123  unsigned long __cil_tmp31 ;
3124  u16 __cil_tmp32 ;
3125  unsigned int __cil_tmp33 ;
3126  unsigned long __cil_tmp34 ;
3127  unsigned long __cil_tmp35 ;
3128  u16 __cil_tmp36 ;
3129  unsigned int __cil_tmp37 ;
3130  unsigned int __cil_tmp38 ;
3131  unsigned int __cil_tmp39 ;
3132
3133  {
3134  {
3135#line 151
3136  __cil_tmp4 = (unsigned long )w8001;
3137#line 151
3138  __cil_tmp5 = __cil_tmp4 + 188;
3139#line 151
3140  __cil_tmp6 = *((u16 *)__cil_tmp5);
3141#line 151
3142  __cil_tmp7 = (unsigned int )__cil_tmp6;
3143#line 151
3144  if (__cil_tmp7 != 0U) {
3145    {
3146#line 151
3147    __cil_tmp8 = (unsigned long )w8001;
3148#line 151
3149    __cil_tmp9 = __cil_tmp8 + 184;
3150#line 151
3151    __cil_tmp10 = *((u16 *)__cil_tmp9);
3152#line 151
3153    __cil_tmp11 = (unsigned int )__cil_tmp10;
3154#line 151
3155    if (__cil_tmp11 != 0U) {
3156#line 152
3157      __cil_tmp12 = (unsigned long )w8001;
3158#line 152
3159      __cil_tmp13 = __cil_tmp12 + 184;
3160#line 152
3161      __cil_tmp14 = *((u16 *)__cil_tmp13);
3162#line 152
3163      __cil_tmp15 = (unsigned int )__cil_tmp14;
3164#line 152
3165      __cil_tmp16 = (unsigned long )w8001;
3166#line 152
3167      __cil_tmp17 = __cil_tmp16 + 188;
3168#line 152
3169      __cil_tmp18 = *((u16 *)__cil_tmp17);
3170#line 152
3171      __cil_tmp19 = (unsigned int )__cil_tmp18;
3172#line 152
3173      __cil_tmp20 = *x;
3174#line 152
3175      __cil_tmp21 = __cil_tmp20 * __cil_tmp19;
3176#line 152
3177      *x = __cil_tmp21 / __cil_tmp15;
3178    } else {
3179
3180    }
3181    }
3182  } else {
3183
3184  }
3185  }
3186  {
3187#line 154
3188  __cil_tmp22 = (unsigned long )w8001;
3189#line 154
3190  __cil_tmp23 = __cil_tmp22 + 190;
3191#line 154
3192  __cil_tmp24 = *((u16 *)__cil_tmp23);
3193#line 154
3194  __cil_tmp25 = (unsigned int )__cil_tmp24;
3195#line 154
3196  if (__cil_tmp25 != 0U) {
3197    {
3198#line 154
3199    __cil_tmp26 = (unsigned long )w8001;
3200#line 154
3201    __cil_tmp27 = __cil_tmp26 + 186;
3202#line 154
3203    __cil_tmp28 = *((u16 *)__cil_tmp27);
3204#line 154
3205    __cil_tmp29 = (unsigned int )__cil_tmp28;
3206#line 154
3207    if (__cil_tmp29 != 0U) {
3208#line 155
3209      __cil_tmp30 = (unsigned long )w8001;
3210#line 155
3211      __cil_tmp31 = __cil_tmp30 + 186;
3212#line 155
3213      __cil_tmp32 = *((u16 *)__cil_tmp31);
3214#line 155
3215      __cil_tmp33 = (unsigned int )__cil_tmp32;
3216#line 155
3217      __cil_tmp34 = (unsigned long )w8001;
3218#line 155
3219      __cil_tmp35 = __cil_tmp34 + 190;
3220#line 155
3221      __cil_tmp36 = *((u16 *)__cil_tmp35);
3222#line 155
3223      __cil_tmp37 = (unsigned int )__cil_tmp36;
3224#line 155
3225      __cil_tmp38 = *y;
3226#line 155
3227      __cil_tmp39 = __cil_tmp38 * __cil_tmp37;
3228#line 155
3229      *y = __cil_tmp39 / __cil_tmp33;
3230    } else {
3231
3232    }
3233    }
3234  } else {
3235
3236  }
3237  }
3238#line 156
3239  return;
3240}
3241}
3242#line 158 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
3243static void parse_multi_touch(struct w8001 *w8001 ) 
3244{ struct input_dev *dev ;
3245  unsigned char *data ;
3246  unsigned int x ;
3247  unsigned int y ;
3248  int i ;
3249  int count ;
3250  bool touch ;
3251  unsigned long __cil_tmp9 ;
3252  unsigned long __cil_tmp10 ;
3253  unsigned char (*__cil_tmp11)[11U] ;
3254  int __cil_tmp12 ;
3255  unsigned char __cil_tmp13 ;
3256  int __cil_tmp14 ;
3257  int __cil_tmp15 ;
3258  int __cil_tmp16 ;
3259  int __cil_tmp17 ;
3260  bool __cil_tmp18 ;
3261  unsigned int *__cil_tmp19 ;
3262  int __cil_tmp20 ;
3263  unsigned long __cil_tmp21 ;
3264  unsigned long __cil_tmp22 ;
3265  unsigned char *__cil_tmp23 ;
3266  unsigned char __cil_tmp24 ;
3267  int __cil_tmp25 ;
3268  int __cil_tmp26 ;
3269  unsigned long __cil_tmp27 ;
3270  unsigned long __cil_tmp28 ;
3271  unsigned char *__cil_tmp29 ;
3272  unsigned char __cil_tmp30 ;
3273  int __cil_tmp31 ;
3274  int __cil_tmp32 ;
3275  int __cil_tmp33 ;
3276  unsigned int *__cil_tmp34 ;
3277  int __cil_tmp35 ;
3278  unsigned long __cil_tmp36 ;
3279  unsigned long __cil_tmp37 ;
3280  unsigned char *__cil_tmp38 ;
3281  unsigned char __cil_tmp39 ;
3282  int __cil_tmp40 ;
3283  int __cil_tmp41 ;
3284  unsigned long __cil_tmp42 ;
3285  unsigned long __cil_tmp43 ;
3286  unsigned char *__cil_tmp44 ;
3287  unsigned char __cil_tmp45 ;
3288  int __cil_tmp46 ;
3289  int __cil_tmp47 ;
3290  int __cil_tmp48 ;
3291  unsigned int *__cil_tmp49 ;
3292  unsigned int __cil_tmp50 ;
3293  int __cil_tmp51 ;
3294  unsigned int *__cil_tmp52 ;
3295  unsigned int __cil_tmp53 ;
3296  int __cil_tmp54 ;
3297  unsigned long __cil_tmp55 ;
3298  unsigned long __cil_tmp56 ;
3299  int __cil_tmp57 ;
3300  unsigned long __cil_tmp58 ;
3301  unsigned long __cil_tmp59 ;
3302  int __cil_tmp60 ;
3303  unsigned long __cil_tmp61 ;
3304  unsigned long __cil_tmp62 ;
3305  unsigned long __cil_tmp63 ;
3306  unsigned long __cil_tmp64 ;
3307  bool __cil_tmp65 ;
3308
3309  {
3310#line 160
3311  dev = *((struct input_dev **)w8001);
3312#line 161
3313  __cil_tmp9 = (unsigned long )w8001;
3314#line 161
3315  __cil_tmp10 = __cil_tmp9 + 132;
3316#line 161
3317  __cil_tmp11 = (unsigned char (*)[11U])__cil_tmp10;
3318#line 161
3319  data = (unsigned char *)__cil_tmp11;
3320#line 164
3321  count = 0;
3322#line 166
3323  i = 0;
3324#line 166
3325  goto ldv_20849;
3326  ldv_20848: 
3327  {
3328#line 167
3329  __cil_tmp12 = 1 << i;
3330#line 167
3331  __cil_tmp13 = *data;
3332#line 167
3333  __cil_tmp14 = (int )__cil_tmp13;
3334#line 167
3335  __cil_tmp15 = __cil_tmp14 & __cil_tmp12;
3336#line 167
3337  __cil_tmp16 = __cil_tmp15 != 0;
3338#line 167
3339  touch = (bool )__cil_tmp16;
3340#line 169
3341  input_mt_slot(dev, i);
3342#line 170
3343  __cil_tmp17 = (int )touch;
3344#line 170
3345  __cil_tmp18 = (bool )__cil_tmp17;
3346#line 170
3347  input_mt_report_slot_state(dev, 0U, __cil_tmp18);
3348  }
3349#line 171
3350  if ((int )touch) {
3351    {
3352#line 172
3353    __cil_tmp19 = & x;
3354#line 172
3355    __cil_tmp20 = i * 6;
3356#line 172
3357    __cil_tmp21 = (unsigned long )__cil_tmp20;
3358#line 172
3359    __cil_tmp22 = __cil_tmp21 + 2UL;
3360#line 172
3361    __cil_tmp23 = data + __cil_tmp22;
3362#line 172
3363    __cil_tmp24 = *__cil_tmp23;
3364#line 172
3365    __cil_tmp25 = (int )__cil_tmp24;
3366#line 172
3367    __cil_tmp26 = i * 6;
3368#line 172
3369    __cil_tmp27 = (unsigned long )__cil_tmp26;
3370#line 172
3371    __cil_tmp28 = __cil_tmp27 + 1UL;
3372#line 172
3373    __cil_tmp29 = data + __cil_tmp28;
3374#line 172
3375    __cil_tmp30 = *__cil_tmp29;
3376#line 172
3377    __cil_tmp31 = (int )__cil_tmp30;
3378#line 172
3379    __cil_tmp32 = __cil_tmp31 << 7;
3380#line 172
3381    __cil_tmp33 = __cil_tmp32 | __cil_tmp25;
3382#line 172
3383    *__cil_tmp19 = (unsigned int )__cil_tmp33;
3384#line 173
3385    __cil_tmp34 = & y;
3386#line 173
3387    __cil_tmp35 = i * 6;
3388#line 173
3389    __cil_tmp36 = (unsigned long )__cil_tmp35;
3390#line 173
3391    __cil_tmp37 = __cil_tmp36 + 4UL;
3392#line 173
3393    __cil_tmp38 = data + __cil_tmp37;
3394#line 173
3395    __cil_tmp39 = *__cil_tmp38;
3396#line 173
3397    __cil_tmp40 = (int )__cil_tmp39;
3398#line 173
3399    __cil_tmp41 = i * 6;
3400#line 173
3401    __cil_tmp42 = (unsigned long )__cil_tmp41;
3402#line 173
3403    __cil_tmp43 = __cil_tmp42 + 3UL;
3404#line 173
3405    __cil_tmp44 = data + __cil_tmp43;
3406#line 173
3407    __cil_tmp45 = *__cil_tmp44;
3408#line 173
3409    __cil_tmp46 = (int )__cil_tmp45;
3410#line 173
3411    __cil_tmp47 = __cil_tmp46 << 7;
3412#line 173
3413    __cil_tmp48 = __cil_tmp47 | __cil_tmp40;
3414#line 173
3415    *__cil_tmp34 = (unsigned int )__cil_tmp48;
3416#line 177
3417    scale_touch_coordinates(w8001, & x, & y);
3418#line 179
3419    __cil_tmp49 = & x;
3420#line 179
3421    __cil_tmp50 = *__cil_tmp49;
3422#line 179
3423    __cil_tmp51 = (int )__cil_tmp50;
3424#line 179
3425    input_report_abs(dev, 53U, __cil_tmp51);
3426#line 180
3427    __cil_tmp52 = & y;
3428#line 180
3429    __cil_tmp53 = *__cil_tmp52;
3430#line 180
3431    __cil_tmp54 = (int )__cil_tmp53;
3432#line 180
3433    input_report_abs(dev, 54U, __cil_tmp54);
3434#line 181
3435    count = count + 1;
3436    }
3437  } else {
3438
3439  }
3440#line 166
3441  i = i + 1;
3442  ldv_20849: ;
3443#line 166
3444  if (i <= 1) {
3445#line 167
3446    goto ldv_20848;
3447  } else {
3448#line 169
3449    goto ldv_20850;
3450  }
3451  ldv_20850: ;
3452  {
3453#line 189
3454  __cil_tmp55 = (unsigned long )w8001;
3455#line 189
3456  __cil_tmp56 = __cil_tmp55 + 176;
3457#line 189
3458  __cil_tmp57 = *((int *)__cil_tmp56);
3459#line 189
3460  if (__cil_tmp57 != 320) {
3461    {
3462#line 189
3463    __cil_tmp58 = (unsigned long )w8001;
3464#line 189
3465    __cil_tmp59 = __cil_tmp58 + 176;
3466#line 189
3467    __cil_tmp60 = *((int *)__cil_tmp59);
3468#line 189
3469    if (__cil_tmp60 != 321) {
3470#line 191
3471      if (count == 1) {
3472#line 191
3473        __cil_tmp61 = (unsigned long )w8001;
3474#line 191
3475        __cil_tmp62 = __cil_tmp61 + 176;
3476#line 191
3477        *((int *)__cil_tmp62) = 325;
3478      } else {
3479#line 191
3480        __cil_tmp63 = (unsigned long )w8001;
3481#line 191
3482        __cil_tmp64 = __cil_tmp63 + 176;
3483#line 191
3484        *((int *)__cil_tmp64) = 0;
3485      }
3486      {
3487#line 192
3488      __cil_tmp65 = (bool )1;
3489#line 192
3490      input_mt_report_pointer_emulation(dev, __cil_tmp65);
3491      }
3492    } else {
3493
3494    }
3495    }
3496  } else {
3497
3498  }
3499  }
3500  {
3501#line 195
3502  input_sync(dev);
3503  }
3504#line 196
3505  return;
3506}
3507}
3508#line 198 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
3509static void parse_touchquery(u8 *data , struct w8001_touch_query *query ) 
3510{ u16 tmp ;
3511  void *__cil_tmp4 ;
3512  unsigned long __cil_tmp5 ;
3513  unsigned long __cil_tmp6 ;
3514  u8 *__cil_tmp7 ;
3515  unsigned long __cil_tmp8 ;
3516  unsigned long __cil_tmp9 ;
3517  u8 *__cil_tmp10 ;
3518  u8 __cil_tmp11 ;
3519  unsigned int __cil_tmp12 ;
3520  unsigned int __cil_tmp13 ;
3521  unsigned long __cil_tmp14 ;
3522  unsigned long __cil_tmp15 ;
3523  u8 *__cil_tmp16 ;
3524  u8 *__cil_tmp17 ;
3525  u8 __cil_tmp18 ;
3526  u16 __cil_tmp19 ;
3527  int __cil_tmp20 ;
3528  int __cil_tmp21 ;
3529  u8 *__cil_tmp22 ;
3530  u8 __cil_tmp23 ;
3531  int __cil_tmp24 ;
3532  int __cil_tmp25 ;
3533  short __cil_tmp26 ;
3534  int __cil_tmp27 ;
3535  u16 __cil_tmp28 ;
3536  short __cil_tmp29 ;
3537  int __cil_tmp30 ;
3538  int __cil_tmp31 ;
3539  u8 *__cil_tmp32 ;
3540  u8 __cil_tmp33 ;
3541  int __cil_tmp34 ;
3542  int __cil_tmp35 ;
3543  short __cil_tmp36 ;
3544  int __cil_tmp37 ;
3545  int __cil_tmp38 ;
3546  u16 __cil_tmp39 ;
3547  short __cil_tmp40 ;
3548  int __cil_tmp41 ;
3549  int __cil_tmp42 ;
3550  unsigned long __cil_tmp43 ;
3551  unsigned long __cil_tmp44 ;
3552  u8 *__cil_tmp45 ;
3553  u8 __cil_tmp46 ;
3554  u16 __cil_tmp47 ;
3555  int __cil_tmp48 ;
3556  int __cil_tmp49 ;
3557  unsigned long __cil_tmp50 ;
3558  unsigned long __cil_tmp51 ;
3559  u8 *__cil_tmp52 ;
3560  u8 __cil_tmp53 ;
3561  int __cil_tmp54 ;
3562  int __cil_tmp55 ;
3563  short __cil_tmp56 ;
3564  int __cil_tmp57 ;
3565  unsigned long __cil_tmp58 ;
3566  unsigned long __cil_tmp59 ;
3567  u16 __cil_tmp60 ;
3568  short __cil_tmp61 ;
3569  int __cil_tmp62 ;
3570  int __cil_tmp63 ;
3571  unsigned long __cil_tmp64 ;
3572  unsigned long __cil_tmp65 ;
3573  u8 *__cil_tmp66 ;
3574  u8 __cil_tmp67 ;
3575  int __cil_tmp68 ;
3576  int __cil_tmp69 ;
3577  short __cil_tmp70 ;
3578  int __cil_tmp71 ;
3579  int __cil_tmp72 ;
3580  unsigned long __cil_tmp73 ;
3581  unsigned long __cil_tmp74 ;
3582  u16 __cil_tmp75 ;
3583  short __cil_tmp76 ;
3584  int __cil_tmp77 ;
3585  int __cil_tmp78 ;
3586  u16 __cil_tmp79 ;
3587  unsigned int __cil_tmp80 ;
3588  unsigned long __cil_tmp81 ;
3589  unsigned long __cil_tmp82 ;
3590  u16 __cil_tmp83 ;
3591  unsigned int __cil_tmp84 ;
3592  unsigned long __cil_tmp85 ;
3593  unsigned long __cil_tmp86 ;
3594  unsigned long __cil_tmp87 ;
3595  unsigned long __cil_tmp88 ;
3596  u8 __cil_tmp89 ;
3597  unsigned int __cil_tmp90 ;
3598  unsigned long __cil_tmp91 ;
3599  unsigned long __cil_tmp92 ;
3600  u8 __cil_tmp93 ;
3601  int __cil_tmp94 ;
3602  int __cil_tmp95 ;
3603  unsigned long __cil_tmp96 ;
3604  unsigned long __cil_tmp97 ;
3605  unsigned long __cil_tmp98 ;
3606  unsigned long __cil_tmp99 ;
3607
3608  {
3609  {
3610#line 200
3611  __cil_tmp4 = (void *)query;
3612#line 200
3613  memset(__cil_tmp4, 0, 8UL);
3614#line 202
3615  __cil_tmp5 = (unsigned long )query;
3616#line 202
3617  __cil_tmp6 = __cil_tmp5 + 4;
3618#line 202
3619  __cil_tmp7 = data + 1UL;
3620#line 202
3621  *((u8 *)__cil_tmp6) = *__cil_tmp7;
3622#line 203
3623  __cil_tmp8 = (unsigned long )query;
3624#line 203
3625  __cil_tmp9 = __cil_tmp8 + 6;
3626#line 203
3627  __cil_tmp10 = data + 2UL;
3628#line 203
3629  __cil_tmp11 = *__cil_tmp10;
3630#line 203
3631  __cil_tmp12 = (unsigned int )__cil_tmp11;
3632#line 203
3633  __cil_tmp13 = __cil_tmp12 & 7U;
3634#line 203
3635  *((u8 *)__cil_tmp9) = (u8 )__cil_tmp13;
3636#line 204
3637  __cil_tmp14 = (unsigned long )query;
3638#line 204
3639  __cil_tmp15 = __cil_tmp14 + 5;
3640#line 204
3641  __cil_tmp16 = data + 7UL;
3642#line 204
3643  *((u8 *)__cil_tmp15) = *__cil_tmp16;
3644#line 206
3645  __cil_tmp17 = data + 3UL;
3646#line 206
3647  __cil_tmp18 = *__cil_tmp17;
3648#line 206
3649  __cil_tmp19 = (u16 )__cil_tmp18;
3650#line 206
3651  __cil_tmp20 = (int )__cil_tmp19;
3652#line 206
3653  __cil_tmp21 = __cil_tmp20 << 9U;
3654#line 206
3655  *((u16 *)query) = (u16 )__cil_tmp21;
3656#line 207
3657  __cil_tmp22 = data + 4UL;
3658#line 207
3659  __cil_tmp23 = *__cil_tmp22;
3660#line 207
3661  __cil_tmp24 = (int )__cil_tmp23;
3662#line 207
3663  __cil_tmp25 = __cil_tmp24 << 2;
3664#line 207
3665  __cil_tmp26 = (short )__cil_tmp25;
3666#line 207
3667  __cil_tmp27 = (int )__cil_tmp26;
3668#line 207
3669  __cil_tmp28 = *((u16 *)query);
3670#line 207
3671  __cil_tmp29 = (short )__cil_tmp28;
3672#line 207
3673  __cil_tmp30 = (int )__cil_tmp29;
3674#line 207
3675  __cil_tmp31 = __cil_tmp30 | __cil_tmp27;
3676#line 207
3677  *((u16 *)query) = (u16 )__cil_tmp31;
3678#line 208
3679  __cil_tmp32 = data + 2UL;
3680#line 208
3681  __cil_tmp33 = *__cil_tmp32;
3682#line 208
3683  __cil_tmp34 = (int )__cil_tmp33;
3684#line 208
3685  __cil_tmp35 = __cil_tmp34 >> 5;
3686#line 208
3687  __cil_tmp36 = (short )__cil_tmp35;
3688#line 208
3689  __cil_tmp37 = (int )__cil_tmp36;
3690#line 208
3691  __cil_tmp38 = __cil_tmp37 & 3;
3692#line 208
3693  __cil_tmp39 = *((u16 *)query);
3694#line 208
3695  __cil_tmp40 = (short )__cil_tmp39;
3696#line 208
3697  __cil_tmp41 = (int )__cil_tmp40;
3698#line 208
3699  __cil_tmp42 = __cil_tmp41 | __cil_tmp38;
3700#line 208
3701  *((u16 *)query) = (u16 )__cil_tmp42;
3702#line 210
3703  __cil_tmp43 = (unsigned long )query;
3704#line 210
3705  __cil_tmp44 = __cil_tmp43 + 2;
3706#line 210
3707  __cil_tmp45 = data + 5UL;
3708#line 210
3709  __cil_tmp46 = *__cil_tmp45;
3710#line 210
3711  __cil_tmp47 = (u16 )__cil_tmp46;
3712#line 210
3713  __cil_tmp48 = (int )__cil_tmp47;
3714#line 210
3715  __cil_tmp49 = __cil_tmp48 << 9U;
3716#line 210
3717  *((u16 *)__cil_tmp44) = (u16 )__cil_tmp49;
3718#line 211
3719  __cil_tmp50 = (unsigned long )query;
3720#line 211
3721  __cil_tmp51 = __cil_tmp50 + 2;
3722#line 211
3723  __cil_tmp52 = data + 6UL;
3724#line 211
3725  __cil_tmp53 = *__cil_tmp52;
3726#line 211
3727  __cil_tmp54 = (int )__cil_tmp53;
3728#line 211
3729  __cil_tmp55 = __cil_tmp54 << 2;
3730#line 211
3731  __cil_tmp56 = (short )__cil_tmp55;
3732#line 211
3733  __cil_tmp57 = (int )__cil_tmp56;
3734#line 211
3735  __cil_tmp58 = (unsigned long )query;
3736#line 211
3737  __cil_tmp59 = __cil_tmp58 + 2;
3738#line 211
3739  __cil_tmp60 = *((u16 *)__cil_tmp59);
3740#line 211
3741  __cil_tmp61 = (short )__cil_tmp60;
3742#line 211
3743  __cil_tmp62 = (int )__cil_tmp61;
3744#line 211
3745  __cil_tmp63 = __cil_tmp62 | __cil_tmp57;
3746#line 211
3747  *((u16 *)__cil_tmp51) = (u16 )__cil_tmp63;
3748#line 212
3749  __cil_tmp64 = (unsigned long )query;
3750#line 212
3751  __cil_tmp65 = __cil_tmp64 + 2;
3752#line 212
3753  __cil_tmp66 = data + 2UL;
3754#line 212
3755  __cil_tmp67 = *__cil_tmp66;
3756#line 212
3757  __cil_tmp68 = (int )__cil_tmp67;
3758#line 212
3759  __cil_tmp69 = __cil_tmp68 >> 3;
3760#line 212
3761  __cil_tmp70 = (short )__cil_tmp69;
3762#line 212
3763  __cil_tmp71 = (int )__cil_tmp70;
3764#line 212
3765  __cil_tmp72 = __cil_tmp71 & 3;
3766#line 212
3767  __cil_tmp73 = (unsigned long )query;
3768#line 212
3769  __cil_tmp74 = __cil_tmp73 + 2;
3770#line 212
3771  __cil_tmp75 = *((u16 *)__cil_tmp74);
3772#line 212
3773  __cil_tmp76 = (short )__cil_tmp75;
3774#line 212
3775  __cil_tmp77 = (int )__cil_tmp76;
3776#line 212
3777  __cil_tmp78 = __cil_tmp77 | __cil_tmp72;
3778#line 212
3779  *((u16 *)__cil_tmp65) = (u16 )__cil_tmp78;
3780  }
3781  {
3782#line 215
3783  __cil_tmp79 = *((u16 *)query);
3784#line 215
3785  __cil_tmp80 = (unsigned int )__cil_tmp79;
3786#line 215
3787  if (__cil_tmp80 == 0U) {
3788    {
3789#line 215
3790    __cil_tmp81 = (unsigned long )query;
3791#line 215
3792    __cil_tmp82 = __cil_tmp81 + 2;
3793#line 215
3794    __cil_tmp83 = *((u16 *)__cil_tmp82);
3795#line 215
3796    __cil_tmp84 = (unsigned int )__cil_tmp83;
3797#line 215
3798    if (__cil_tmp84 == 0U) {
3799#line 216
3800      *((u16 *)query) = (u16 )1024U;
3801#line 217
3802      __cil_tmp85 = (unsigned long )query;
3803#line 217
3804      __cil_tmp86 = __cil_tmp85 + 2;
3805#line 217
3806      *((u16 *)__cil_tmp86) = (u16 )1024U;
3807      {
3808#line 218
3809      __cil_tmp87 = (unsigned long )query;
3810#line 218
3811      __cil_tmp88 = __cil_tmp87 + 4;
3812#line 218
3813      __cil_tmp89 = *((u8 *)__cil_tmp88);
3814#line 218
3815      __cil_tmp90 = (unsigned int )__cil_tmp89;
3816#line 218
3817      if (__cil_tmp90 != 0U) {
3818#line 219
3819        __cil_tmp91 = (unsigned long )query;
3820#line 219
3821        __cil_tmp92 = __cil_tmp91 + 4;
3822#line 219
3823        __cil_tmp93 = *((u8 *)__cil_tmp92);
3824#line 219
3825        __cil_tmp94 = (int )__cil_tmp93;
3826#line 219
3827        __cil_tmp95 = 1 << __cil_tmp94;
3828#line 219
3829        tmp = (u16 )__cil_tmp95;
3830#line 219
3831        __cil_tmp96 = (unsigned long )query;
3832#line 219
3833        __cil_tmp97 = __cil_tmp96 + 2;
3834#line 219
3835        *((u16 *)__cil_tmp97) = tmp;
3836#line 219
3837        *((u16 *)query) = tmp;
3838      } else {
3839
3840      }
3841      }
3842#line 220
3843      __cil_tmp98 = (unsigned long )query;
3844#line 220
3845      __cil_tmp99 = __cil_tmp98 + 4;
3846#line 220
3847      *((u8 *)__cil_tmp99) = (u8 )10U;
3848    } else {
3849
3850    }
3851    }
3852  } else {
3853
3854  }
3855  }
3856#line 222
3857  return;
3858}
3859}
3860#line 224 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
3861static void report_pen_events(struct w8001 *w8001 , struct w8001_coord *coord ) 
3862{ struct input_dev *dev ;
3863  unsigned long __cil_tmp4 ;
3864  unsigned long __cil_tmp5 ;
3865  unsigned long __cil_tmp6 ;
3866  unsigned long __cil_tmp7 ;
3867  u8 __cil_tmp8 ;
3868  unsigned int __cil_tmp9 ;
3869  unsigned long __cil_tmp10 ;
3870  unsigned long __cil_tmp11 ;
3871  unsigned long __cil_tmp12 ;
3872  unsigned long __cil_tmp13 ;
3873  u8 __cil_tmp14 ;
3874  unsigned int __cil_tmp15 ;
3875  unsigned long __cil_tmp16 ;
3876  unsigned long __cil_tmp17 ;
3877  unsigned long __cil_tmp18 ;
3878  unsigned long __cil_tmp19 ;
3879  unsigned long __cil_tmp20 ;
3880  unsigned long __cil_tmp21 ;
3881  u8 __cil_tmp22 ;
3882  int __cil_tmp23 ;
3883  unsigned long __cil_tmp24 ;
3884  unsigned long __cil_tmp25 ;
3885  u16 __cil_tmp26 ;
3886  int __cil_tmp27 ;
3887  unsigned long __cil_tmp28 ;
3888  unsigned long __cil_tmp29 ;
3889  u16 __cil_tmp30 ;
3890  int __cil_tmp31 ;
3891  unsigned long __cil_tmp32 ;
3892  unsigned long __cil_tmp33 ;
3893  u16 __cil_tmp34 ;
3894  int __cil_tmp35 ;
3895  unsigned long __cil_tmp36 ;
3896  unsigned long __cil_tmp37 ;
3897  u8 __cil_tmp38 ;
3898  int __cil_tmp39 ;
3899  unsigned long __cil_tmp40 ;
3900  unsigned long __cil_tmp41 ;
3901  u8 __cil_tmp42 ;
3902  int __cil_tmp43 ;
3903  unsigned long __cil_tmp44 ;
3904  unsigned long __cil_tmp45 ;
3905  int __cil_tmp46 ;
3906  unsigned int __cil_tmp47 ;
3907  u8 __cil_tmp48 ;
3908  int __cil_tmp49 ;
3909  u8 __cil_tmp50 ;
3910  unsigned int __cil_tmp51 ;
3911  unsigned long __cil_tmp52 ;
3912  unsigned long __cil_tmp53 ;
3913
3914  {
3915#line 226
3916  dev = *((struct input_dev **)w8001);
3917  {
3918#line 238
3919  __cil_tmp4 = (unsigned long )w8001;
3920#line 238
3921  __cil_tmp5 = __cil_tmp4 + 176;
3922#line 239
3923  if (*((int *)__cil_tmp5) == 321) {
3924#line 239
3925    goto case_321;
3926  } else
3927#line 251
3928  if (*((int *)__cil_tmp5) == 325) {
3929#line 251
3930    goto case_325;
3931  } else
3932#line 257
3933  if (*((int *)__cil_tmp5) == 0) {
3934#line 257
3935    goto case_0;
3936  } else {
3937    {
3938#line 261
3939    goto switch_default;
3940#line 238
3941    if (0) {
3942      case_321: /* CIL Label */ ;
3943      {
3944#line 240
3945      __cil_tmp6 = (unsigned long )coord;
3946#line 240
3947      __cil_tmp7 = __cil_tmp6 + 3;
3948#line 240
3949      __cil_tmp8 = *((u8 *)__cil_tmp7);
3950#line 240
3951      __cil_tmp9 = (unsigned int )__cil_tmp8;
3952#line 240
3953      if (__cil_tmp9 == 0U) {
3954        {
3955#line 241
3956        input_report_abs(dev, 24U, 0);
3957#line 242
3958        input_report_key(dev, 330U, 0);
3959#line 243
3960        input_report_key(dev, 331U, 0);
3961#line 244
3962        input_report_key(dev, 332U, 0);
3963#line 245
3964        input_report_key(dev, 321U, 0);
3965#line 246
3966        input_sync(dev);
3967#line 247
3968        __cil_tmp10 = (unsigned long )w8001;
3969#line 247
3970        __cil_tmp11 = __cil_tmp10 + 176;
3971#line 247
3972        *((int *)__cil_tmp11) = 320;
3973        }
3974      } else {
3975
3976      }
3977      }
3978#line 249
3979      goto ldv_20861;
3980      case_325: /* CIL Label */ 
3981      {
3982#line 252
3983      input_report_key(dev, 330U, 0);
3984#line 253
3985      input_report_key(dev, 325U, 0);
3986#line 254
3987      input_sync(dev);
3988      }
3989      case_0: /* CIL Label */ ;
3990      {
3991#line 258
3992      __cil_tmp12 = (unsigned long )coord;
3993#line 258
3994      __cil_tmp13 = __cil_tmp12 + 3;
3995#line 258
3996      __cil_tmp14 = *((u8 *)__cil_tmp13);
3997#line 258
3998      __cil_tmp15 = (unsigned int )__cil_tmp14;
3999#line 258
4000      if (__cil_tmp15 != 0U) {
4001#line 258
4002        __cil_tmp16 = (unsigned long )w8001;
4003#line 258
4004        __cil_tmp17 = __cil_tmp16 + 176;
4005#line 258
4006        *((int *)__cil_tmp17) = 321;
4007      } else {
4008#line 258
4009        __cil_tmp18 = (unsigned long )w8001;
4010#line 258
4011        __cil_tmp19 = __cil_tmp18 + 176;
4012#line 258
4013        *((int *)__cil_tmp19) = 320;
4014      }
4015      }
4016#line 259
4017      goto ldv_20861;
4018      switch_default: /* CIL Label */ 
4019      {
4020#line 262
4021      __cil_tmp20 = (unsigned long )coord;
4022#line 262
4023      __cil_tmp21 = __cil_tmp20 + 3;
4024#line 262
4025      __cil_tmp22 = *((u8 *)__cil_tmp21);
4026#line 262
4027      __cil_tmp23 = (int )__cil_tmp22;
4028#line 262
4029      input_report_key(dev, 332U, __cil_tmp23);
4030      }
4031#line 263
4032      goto ldv_20861;
4033    } else {
4034      switch_break: /* CIL Label */ ;
4035    }
4036    }
4037  }
4038  }
4039  ldv_20861: 
4040  {
4041#line 266
4042  __cil_tmp24 = (unsigned long )coord;
4043#line 266
4044  __cil_tmp25 = __cil_tmp24 + 4;
4045#line 266
4046  __cil_tmp26 = *((u16 *)__cil_tmp25);
4047#line 266
4048  __cil_tmp27 = (int )__cil_tmp26;
4049#line 266
4050  input_report_abs(dev, 0U, __cil_tmp27);
4051#line 267
4052  __cil_tmp28 = (unsigned long )coord;
4053#line 267
4054  __cil_tmp29 = __cil_tmp28 + 6;
4055#line 267
4056  __cil_tmp30 = *((u16 *)__cil_tmp29);
4057#line 267
4058  __cil_tmp31 = (int )__cil_tmp30;
4059#line 267
4060  input_report_abs(dev, 1U, __cil_tmp31);
4061#line 268
4062  __cil_tmp32 = (unsigned long )coord;
4063#line 268
4064  __cil_tmp33 = __cil_tmp32 + 8;
4065#line 268
4066  __cil_tmp34 = *((u16 *)__cil_tmp33);
4067#line 268
4068  __cil_tmp35 = (int )__cil_tmp34;
4069#line 268
4070  input_report_abs(dev, 24U, __cil_tmp35);
4071#line 269
4072  __cil_tmp36 = (unsigned long )coord;
4073#line 269
4074  __cil_tmp37 = __cil_tmp36 + 1;
4075#line 269
4076  __cil_tmp38 = *((u8 *)__cil_tmp37);
4077#line 269
4078  __cil_tmp39 = (int )__cil_tmp38;
4079#line 269
4080  input_report_key(dev, 330U, __cil_tmp39);
4081#line 270
4082  __cil_tmp40 = (unsigned long )coord;
4083#line 270
4084  __cil_tmp41 = __cil_tmp40 + 2;
4085#line 270
4086  __cil_tmp42 = *((u8 *)__cil_tmp41);
4087#line 270
4088  __cil_tmp43 = (int )__cil_tmp42;
4089#line 270
4090  input_report_key(dev, 331U, __cil_tmp43);
4091#line 271
4092  __cil_tmp44 = (unsigned long )w8001;
4093#line 271
4094  __cil_tmp45 = __cil_tmp44 + 176;
4095#line 271
4096  __cil_tmp46 = *((int *)__cil_tmp45);
4097#line 271
4098  __cil_tmp47 = (unsigned int )__cil_tmp46;
4099#line 271
4100  __cil_tmp48 = *((u8 *)coord);
4101#line 271
4102  __cil_tmp49 = (int )__cil_tmp48;
4103#line 271
4104  input_report_key(dev, __cil_tmp47, __cil_tmp49);
4105#line 272
4106  input_sync(dev);
4107  }
4108  {
4109#line 274
4110  __cil_tmp50 = *((u8 *)coord);
4111#line 274
4112  __cil_tmp51 = (unsigned int )__cil_tmp50;
4113#line 274
4114  if (__cil_tmp51 == 0U) {
4115#line 275
4116    __cil_tmp52 = (unsigned long )w8001;
4117#line 275
4118    __cil_tmp53 = __cil_tmp52 + 176;
4119#line 275
4120    *((int *)__cil_tmp53) = 0;
4121  } else {
4122
4123  }
4124  }
4125#line 276
4126  return;
4127}
4128}
4129#line 278 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
4130static void report_single_touch(struct w8001 *w8001 , struct w8001_coord *coord ) 
4131{ struct input_dev *dev ;
4132  unsigned int x ;
4133  unsigned int y ;
4134  unsigned int *__cil_tmp6 ;
4135  unsigned long __cil_tmp7 ;
4136  unsigned long __cil_tmp8 ;
4137  u16 __cil_tmp9 ;
4138  unsigned int *__cil_tmp10 ;
4139  unsigned long __cil_tmp11 ;
4140  unsigned long __cil_tmp12 ;
4141  u16 __cil_tmp13 ;
4142  unsigned int *__cil_tmp14 ;
4143  unsigned int __cil_tmp15 ;
4144  int __cil_tmp16 ;
4145  unsigned int *__cil_tmp17 ;
4146  unsigned int __cil_tmp18 ;
4147  int __cil_tmp19 ;
4148  unsigned long __cil_tmp20 ;
4149  unsigned long __cil_tmp21 ;
4150  u8 __cil_tmp22 ;
4151  int __cil_tmp23 ;
4152  unsigned long __cil_tmp24 ;
4153  unsigned long __cil_tmp25 ;
4154  u8 __cil_tmp26 ;
4155  int __cil_tmp27 ;
4156  unsigned long __cil_tmp28 ;
4157  unsigned long __cil_tmp29 ;
4158  u8 __cil_tmp30 ;
4159  unsigned int __cil_tmp31 ;
4160  unsigned long __cil_tmp32 ;
4161  unsigned long __cil_tmp33 ;
4162  unsigned long __cil_tmp34 ;
4163  unsigned long __cil_tmp35 ;
4164
4165  {
4166  {
4167#line 280
4168  dev = *((struct input_dev **)w8001);
4169#line 281
4170  __cil_tmp6 = & x;
4171#line 281
4172  __cil_tmp7 = (unsigned long )coord;
4173#line 281
4174  __cil_tmp8 = __cil_tmp7 + 4;
4175#line 281
4176  __cil_tmp9 = *((u16 *)__cil_tmp8);
4177#line 281
4178  *__cil_tmp6 = (unsigned int )__cil_tmp9;
4179#line 282
4180  __cil_tmp10 = & y;
4181#line 282
4182  __cil_tmp11 = (unsigned long )coord;
4183#line 282
4184  __cil_tmp12 = __cil_tmp11 + 6;
4185#line 282
4186  __cil_tmp13 = *((u16 *)__cil_tmp12);
4187#line 282
4188  *__cil_tmp10 = (unsigned int )__cil_tmp13;
4189#line 285
4190  scale_touch_coordinates(w8001, & x, & y);
4191#line 287
4192  __cil_tmp14 = & x;
4193#line 287
4194  __cil_tmp15 = *__cil_tmp14;
4195#line 287
4196  __cil_tmp16 = (int )__cil_tmp15;
4197#line 287
4198  input_report_abs(dev, 0U, __cil_tmp16);
4199#line 288
4200  __cil_tmp17 = & y;
4201#line 288
4202  __cil_tmp18 = *__cil_tmp17;
4203#line 288
4204  __cil_tmp19 = (int )__cil_tmp18;
4205#line 288
4206  input_report_abs(dev, 1U, __cil_tmp19);
4207#line 289
4208  __cil_tmp20 = (unsigned long )coord;
4209#line 289
4210  __cil_tmp21 = __cil_tmp20 + 1;
4211#line 289
4212  __cil_tmp22 = *((u8 *)__cil_tmp21);
4213#line 289
4214  __cil_tmp23 = (int )__cil_tmp22;
4215#line 289
4216  input_report_key(dev, 330U, __cil_tmp23);
4217#line 290
4218  __cil_tmp24 = (unsigned long )coord;
4219#line 290
4220  __cil_tmp25 = __cil_tmp24 + 1;
4221#line 290
4222  __cil_tmp26 = *((u8 *)__cil_tmp25);
4223#line 290
4224  __cil_tmp27 = (int )__cil_tmp26;
4225#line 290
4226  input_report_key(dev, 325U, __cil_tmp27);
4227#line 292
4228  input_sync(dev);
4229  }
4230  {
4231#line 294
4232  __cil_tmp28 = (unsigned long )coord;
4233#line 294
4234  __cil_tmp29 = __cil_tmp28 + 1;
4235#line 294
4236  __cil_tmp30 = *((u8 *)__cil_tmp29);
4237#line 294
4238  __cil_tmp31 = (unsigned int )__cil_tmp30;
4239#line 294
4240  if (__cil_tmp31 != 0U) {
4241#line 294
4242    __cil_tmp32 = (unsigned long )w8001;
4243#line 294
4244    __cil_tmp33 = __cil_tmp32 + 176;
4245#line 294
4246    *((int *)__cil_tmp33) = 325;
4247  } else {
4248#line 294
4249    __cil_tmp34 = (unsigned long )w8001;
4250#line 294
4251    __cil_tmp35 = __cil_tmp34 + 176;
4252#line 294
4253    *((int *)__cil_tmp35) = 0;
4254  }
4255  }
4256#line 295
4257  return;
4258}
4259}
4260#line 297 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
4261static irqreturn_t w8001_interrupt(struct serio *serio , unsigned char data , unsigned int flags ) 
4262{ struct w8001 *w8001 ;
4263  void *tmp ;
4264  struct w8001_coord coord ;
4265  unsigned char tmp___0 ;
4266  int tmp___1 ;
4267  struct _ddebug descriptor ;
4268  long tmp___2 ;
4269  long tmp___3 ;
4270  size_t __len ;
4271  void *__ret ;
4272  unsigned long __cil_tmp14 ;
4273  unsigned long __cil_tmp15 ;
4274  int __cil_tmp16 ;
4275  unsigned long __cil_tmp17 ;
4276  unsigned long __cil_tmp18 ;
4277  unsigned long __cil_tmp19 ;
4278  unsigned long __cil_tmp20 ;
4279  unsigned long __cil_tmp21 ;
4280  unsigned long __cil_tmp22 ;
4281  unsigned long __cil_tmp23 ;
4282  unsigned long __cil_tmp24 ;
4283  unsigned long __cil_tmp25 ;
4284  unsigned long __cil_tmp26 ;
4285  int __cil_tmp27 ;
4286  signed char __cil_tmp28 ;
4287  int __cil_tmp29 ;
4288  struct _ddebug *__cil_tmp30 ;
4289  unsigned long __cil_tmp31 ;
4290  unsigned long __cil_tmp32 ;
4291  unsigned long __cil_tmp33 ;
4292  unsigned long __cil_tmp34 ;
4293  unsigned long __cil_tmp35 ;
4294  unsigned long __cil_tmp36 ;
4295  unsigned char __cil_tmp37 ;
4296  long __cil_tmp38 ;
4297  long __cil_tmp39 ;
4298  int __cil_tmp40 ;
4299  unsigned long __cil_tmp41 ;
4300  unsigned long __cil_tmp42 ;
4301  unsigned long __cil_tmp43 ;
4302  unsigned long __cil_tmp44 ;
4303  unsigned long __cil_tmp45 ;
4304  unsigned long __cil_tmp46 ;
4305  unsigned char __cil_tmp47 ;
4306  unsigned int __cil_tmp48 ;
4307  unsigned int __cil_tmp49 ;
4308  unsigned int __cil_tmp50 ;
4309  unsigned long __cil_tmp51 ;
4310  unsigned long __cil_tmp52 ;
4311  int __cil_tmp53 ;
4312  unsigned int __cil_tmp54 ;
4313  unsigned long __cil_tmp55 ;
4314  unsigned long __cil_tmp56 ;
4315  unsigned int __cil_tmp57 ;
4316  unsigned long __cil_tmp58 ;
4317  unsigned long __cil_tmp59 ;
4318  unsigned long __cil_tmp60 ;
4319  unsigned long __cil_tmp61 ;
4320  int __cil_tmp62 ;
4321  unsigned long __cil_tmp63 ;
4322  unsigned long __cil_tmp64 ;
4323  int __cil_tmp65 ;
4324  unsigned long __cil_tmp66 ;
4325  unsigned long __cil_tmp67 ;
4326  unsigned char (*__cil_tmp68)[11U] ;
4327  u8 *__cil_tmp69 ;
4328  unsigned long __cil_tmp70 ;
4329  unsigned long __cil_tmp71 ;
4330  unsigned long __cil_tmp72 ;
4331  unsigned long __cil_tmp73 ;
4332  unsigned char __cil_tmp74 ;
4333  unsigned int __cil_tmp75 ;
4334  unsigned int __cil_tmp76 ;
4335  unsigned int __cil_tmp77 ;
4336  int __cil_tmp78 ;
4337  long __cil_tmp79 ;
4338  unsigned long __cil_tmp80 ;
4339  unsigned long __cil_tmp81 ;
4340  unsigned long __cil_tmp82 ;
4341  unsigned long __cil_tmp83 ;
4342  unsigned char __cil_tmp84 ;
4343  unsigned int __cil_tmp85 ;
4344  unsigned int __cil_tmp86 ;
4345  unsigned int __cil_tmp87 ;
4346  unsigned long __cil_tmp88 ;
4347  unsigned long __cil_tmp89 ;
4348  unsigned long __cil_tmp90 ;
4349  unsigned long __cil_tmp91 ;
4350  unsigned char (*__cil_tmp92)[11U] ;
4351  u8 *__cil_tmp93 ;
4352  unsigned long __cil_tmp94 ;
4353  unsigned long __cil_tmp95 ;
4354  unsigned long __cil_tmp96 ;
4355  unsigned long __cil_tmp97 ;
4356  unsigned char __cil_tmp98 ;
4357  unsigned int __cil_tmp99 ;
4358  unsigned int __cil_tmp100 ;
4359  unsigned int __cil_tmp101 ;
4360  unsigned long __cil_tmp102 ;
4361  unsigned long __cil_tmp103 ;
4362  unsigned long __cil_tmp104 ;
4363  unsigned long __cil_tmp105 ;
4364  unsigned char (*__cil_tmp106)[11U] ;
4365  void *__cil_tmp107 ;
4366  unsigned long __cil_tmp108 ;
4367  unsigned long __cil_tmp109 ;
4368  unsigned char (*__cil_tmp110)[11U] ;
4369  void const   *__cil_tmp111 ;
4370  unsigned long __cil_tmp112 ;
4371  unsigned long __cil_tmp113 ;
4372  unsigned char (*__cil_tmp114)[11U] ;
4373  void *__cil_tmp115 ;
4374  unsigned long __cil_tmp116 ;
4375  unsigned long __cil_tmp117 ;
4376  unsigned char (*__cil_tmp118)[11U] ;
4377  void const   *__cil_tmp119 ;
4378  unsigned long __cil_tmp120 ;
4379  unsigned long __cil_tmp121 ;
4380  unsigned long __cil_tmp122 ;
4381  unsigned long __cil_tmp123 ;
4382  struct completion *__cil_tmp124 ;
4383  unsigned long __cil_tmp125 ;
4384  unsigned long __cil_tmp126 ;
4385
4386  {
4387  {
4388#line 300
4389  tmp = serio_get_drvdata(serio);
4390#line 300
4391  w8001 = (struct w8001 *)tmp;
4392#line 304
4393  __cil_tmp14 = (unsigned long )w8001;
4394#line 304
4395  __cil_tmp15 = __cil_tmp14 + 116;
4396#line 304
4397  __cil_tmp16 = *((int *)__cil_tmp15);
4398#line 304
4399  __cil_tmp17 = __cil_tmp16 * 1UL;
4400#line 304
4401  __cil_tmp18 = 132 + __cil_tmp17;
4402#line 304
4403  __cil_tmp19 = (unsigned long )w8001;
4404#line 304
4405  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
4406#line 304
4407  *((unsigned char *)__cil_tmp20) = data;
4408#line 305
4409  __cil_tmp21 = (unsigned long )w8001;
4410#line 305
4411  __cil_tmp22 = __cil_tmp21 + 116;
4412#line 305
4413  tmp___1 = *((int *)__cil_tmp22);
4414#line 305
4415  __cil_tmp23 = (unsigned long )w8001;
4416#line 305
4417  __cil_tmp24 = __cil_tmp23 + 116;
4418#line 305
4419  __cil_tmp25 = (unsigned long )w8001;
4420#line 305
4421  __cil_tmp26 = __cil_tmp25 + 116;
4422#line 305
4423  __cil_tmp27 = *((int *)__cil_tmp26);
4424#line 305
4425  *((int *)__cil_tmp24) = __cil_tmp27 + 1;
4426  }
4427#line 306
4428  if (tmp___1 == 0) {
4429#line 306
4430    goto case_0;
4431  } else
4432#line 313
4433  if (tmp___1 == 4) {
4434#line 313
4435    goto case_4;
4436  } else
4437#line 314
4438  if (tmp___1 == 6) {
4439#line 314
4440    goto case_6;
4441  } else
4442#line 330
4443  if (tmp___1 == 8) {
4444#line 330
4445    goto case_8;
4446  } else
4447#line 345
4448  if (tmp___1 == 10) {
4449#line 345
4450    goto case_10;
4451  } else
4452#line 357
4453  if (tmp___1 == 12) {
4454#line 357
4455    goto case_12;
4456  } else
4457#line 305
4458  if (0) {
4459    case_0: /* CIL Label */ ;
4460    {
4461#line 307
4462    __cil_tmp28 = (signed char )data;
4463#line 307
4464    __cil_tmp29 = (int )__cil_tmp28;
4465#line 307
4466    if (__cil_tmp29 >= 0) {
4467      {
4468#line 308
4469      __cil_tmp30 = & descriptor;
4470#line 308
4471      *((char const   **)__cil_tmp30) = "wacom_w8001";
4472#line 308
4473      __cil_tmp31 = (unsigned long )(& descriptor) + 8;
4474#line 308
4475      *((char const   **)__cil_tmp31) = "w8001_interrupt";
4476#line 308
4477      __cil_tmp32 = (unsigned long )(& descriptor) + 16;
4478#line 308
4479      *((char const   **)__cil_tmp32) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p";
4480#line 308
4481      __cil_tmp33 = (unsigned long )(& descriptor) + 24;
4482#line 308
4483      *((char const   **)__cil_tmp33) = "w8001: unsynchronized data: 0x%02x\n";
4484#line 308
4485      __cil_tmp34 = (unsigned long )(& descriptor) + 32;
4486#line 308
4487      *((unsigned int *)__cil_tmp34) = 308U;
4488#line 308
4489      __cil_tmp35 = (unsigned long )(& descriptor) + 35;
4490#line 308
4491      *((unsigned char *)__cil_tmp35) = (unsigned char)0;
4492#line 308
4493      __cil_tmp36 = (unsigned long )(& descriptor) + 35;
4494#line 308
4495      __cil_tmp37 = *((unsigned char *)__cil_tmp36);
4496#line 308
4497      __cil_tmp38 = (long )__cil_tmp37;
4498#line 308
4499      __cil_tmp39 = __cil_tmp38 & 1L;
4500#line 308
4501      tmp___2 = __builtin_expect(__cil_tmp39, 0L);
4502      }
4503#line 308
4504      if (tmp___2 != 0L) {
4505        {
4506#line 308
4507        __cil_tmp40 = (int )data;
4508#line 308
4509        __dynamic_pr_debug(& descriptor, "w8001: unsynchronized data: 0x%02x\n", __cil_tmp40);
4510        }
4511      } else {
4512
4513      }
4514#line 309
4515      __cil_tmp41 = (unsigned long )w8001;
4516#line 309
4517      __cil_tmp42 = __cil_tmp41 + 116;
4518#line 309
4519      *((int *)__cil_tmp42) = 0;
4520    } else {
4521
4522    }
4523    }
4524#line 311
4525    goto ldv_20883;
4526    case_4: /* CIL Label */ ;
4527    case_6: /* CIL Label */ 
4528#line 315
4529    __cil_tmp43 = 0 * 1UL;
4530#line 315
4531    __cil_tmp44 = 132 + __cil_tmp43;
4532#line 315
4533    __cil_tmp45 = (unsigned long )w8001;
4534#line 315
4535    __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
4536#line 315
4537    __cil_tmp47 = *((unsigned char *)__cil_tmp46);
4538#line 315
4539    __cil_tmp48 = (unsigned int )__cil_tmp47;
4540#line 315
4541    __cil_tmp49 = __cil_tmp48 & 144U;
4542#line 315
4543    tmp___0 = (unsigned char )__cil_tmp49;
4544    {
4545#line 316
4546    __cil_tmp50 = (unsigned int )tmp___0;
4547#line 316
4548    if (__cil_tmp50 != 144U) {
4549#line 317
4550      goto ldv_20883;
4551    } else {
4552
4553    }
4554    }
4555    {
4556#line 319
4557    __cil_tmp51 = (unsigned long )w8001;
4558#line 319
4559    __cil_tmp52 = __cil_tmp51 + 116;
4560#line 319
4561    __cil_tmp53 = *((int *)__cil_tmp52);
4562#line 319
4563    __cil_tmp54 = (unsigned int )__cil_tmp53;
4564#line 319
4565    __cil_tmp55 = (unsigned long )w8001;
4566#line 319
4567    __cil_tmp56 = __cil_tmp55 + 180;
4568#line 319
4569    __cil_tmp57 = *((unsigned int *)__cil_tmp56);
4570#line 319
4571    if (__cil_tmp57 == __cil_tmp54) {
4572#line 320
4573      __cil_tmp58 = (unsigned long )w8001;
4574#line 320
4575      __cil_tmp59 = __cil_tmp58 + 116;
4576#line 320
4577      *((int *)__cil_tmp59) = 0;
4578      {
4579#line 321
4580      __cil_tmp60 = (unsigned long )w8001;
4581#line 321
4582      __cil_tmp61 = __cil_tmp60 + 176;
4583#line 321
4584      __cil_tmp62 = *((int *)__cil_tmp61);
4585#line 321
4586      if (__cil_tmp62 != 320) {
4587        {
4588#line 321
4589        __cil_tmp63 = (unsigned long )w8001;
4590#line 321
4591        __cil_tmp64 = __cil_tmp63 + 176;
4592#line 321
4593        __cil_tmp65 = *((int *)__cil_tmp64);
4594#line 321
4595        if (__cil_tmp65 != 321) {
4596          {
4597#line 323
4598          __cil_tmp66 = (unsigned long )w8001;
4599#line 323
4600          __cil_tmp67 = __cil_tmp66 + 132;
4601#line 323
4602          __cil_tmp68 = (unsigned char (*)[11U])__cil_tmp67;
4603#line 323
4604          __cil_tmp69 = (u8 *)__cil_tmp68;
4605#line 323
4606          parse_single_touch(__cil_tmp69, & coord);
4607#line 324
4608          report_single_touch(w8001, & coord);
4609          }
4610        } else {
4611
4612        }
4613        }
4614      } else {
4615
4616      }
4617      }
4618    } else {
4619
4620    }
4621    }
4622#line 327
4623    goto ldv_20883;
4624    case_8: /* CIL Label */ 
4625    {
4626#line 331
4627    __cil_tmp70 = 0 * 1UL;
4628#line 331
4629    __cil_tmp71 = 132 + __cil_tmp70;
4630#line 331
4631    __cil_tmp72 = (unsigned long )w8001;
4632#line 331
4633    __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
4634#line 331
4635    __cil_tmp74 = *((unsigned char *)__cil_tmp73);
4636#line 331
4637    __cil_tmp75 = (unsigned int )__cil_tmp74;
4638#line 331
4639    __cil_tmp76 = __cil_tmp75 & 64U;
4640#line 331
4641    tmp___0 = (unsigned char )__cil_tmp76;
4642#line 332
4643    __cil_tmp77 = (unsigned int )tmp___0;
4644#line 332
4645    __cil_tmp78 = __cil_tmp77 == 64U;
4646#line 332
4647    __cil_tmp79 = (long )__cil_tmp78;
4648#line 332
4649    tmp___3 = __builtin_expect(__cil_tmp79, 0L);
4650    }
4651#line 332
4652    if (tmp___3 != 0L) {
4653#line 333
4654      goto ldv_20883;
4655    } else {
4656
4657    }
4658#line 335
4659    __cil_tmp80 = 0 * 1UL;
4660#line 335
4661    __cil_tmp81 = 132 + __cil_tmp80;
4662#line 335
4663    __cil_tmp82 = (unsigned long )w8001;
4664#line 335
4665    __cil_tmp83 = __cil_tmp82 + __cil_tmp81;
4666#line 335
4667    __cil_tmp84 = *((unsigned char *)__cil_tmp83);
4668#line 335
4669    __cil_tmp85 = (unsigned int )__cil_tmp84;
4670#line 335
4671    __cil_tmp86 = __cil_tmp85 & 144U;
4672#line 335
4673    tmp___0 = (unsigned char )__cil_tmp86;
4674    {
4675#line 336
4676    __cil_tmp87 = (unsigned int )tmp___0;
4677#line 336
4678    if (__cil_tmp87 == 144U) {
4679#line 337
4680      goto ldv_20883;
4681    } else {
4682
4683    }
4684    }
4685    {
4686#line 339
4687    __cil_tmp88 = (unsigned long )w8001;
4688#line 339
4689    __cil_tmp89 = __cil_tmp88 + 116;
4690#line 339
4691    *((int *)__cil_tmp89) = 0;
4692#line 340
4693    __cil_tmp90 = (unsigned long )w8001;
4694#line 340
4695    __cil_tmp91 = __cil_tmp90 + 132;
4696#line 340
4697    __cil_tmp92 = (unsigned char (*)[11U])__cil_tmp91;
4698#line 340
4699    __cil_tmp93 = (u8 *)__cil_tmp92;
4700#line 340
4701    parse_pen_data(__cil_tmp93, & coord);
4702#line 341
4703    report_pen_events(w8001, & coord);
4704    }
4705#line 342
4706    goto ldv_20883;
4707    case_10: /* CIL Label */ 
4708#line 346
4709    __cil_tmp94 = 0 * 1UL;
4710#line 346
4711    __cil_tmp95 = 132 + __cil_tmp94;
4712#line 346
4713    __cil_tmp96 = (unsigned long )w8001;
4714#line 346
4715    __cil_tmp97 = __cil_tmp96 + __cil_tmp95;
4716#line 346
4717    __cil_tmp98 = *((unsigned char *)__cil_tmp97);
4718#line 346
4719    __cil_tmp99 = (unsigned int )__cil_tmp98;
4720#line 346
4721    __cil_tmp100 = __cil_tmp99 & 144U;
4722#line 346
4723    tmp___0 = (unsigned char )__cil_tmp100;
4724    {
4725#line 347
4726    __cil_tmp101 = (unsigned int )tmp___0;
4727#line 347
4728    if (__cil_tmp101 == 144U) {
4729#line 348
4730      goto ldv_20883;
4731    } else {
4732
4733    }
4734    }
4735#line 350
4736    __cil_tmp102 = (unsigned long )w8001;
4737#line 350
4738    __cil_tmp103 = __cil_tmp102 + 116;
4739#line 350
4740    *((int *)__cil_tmp103) = 0;
4741#line 351
4742    __len = 11UL;
4743#line 351
4744    if (__len > 63UL) {
4745      {
4746#line 351
4747      __cil_tmp104 = (unsigned long )w8001;
4748#line 351
4749      __cil_tmp105 = __cil_tmp104 + 121;
4750#line 351
4751      __cil_tmp106 = (unsigned char (*)[11U])__cil_tmp105;
4752#line 351
4753      __cil_tmp107 = (void *)__cil_tmp106;
4754#line 351
4755      __cil_tmp108 = (unsigned long )w8001;
4756#line 351
4757      __cil_tmp109 = __cil_tmp108 + 132;
4758#line 351
4759      __cil_tmp110 = (unsigned char (*)[11U])__cil_tmp109;
4760#line 351
4761      __cil_tmp111 = (void const   *)__cil_tmp110;
4762#line 351
4763      __ret = __memcpy(__cil_tmp107, __cil_tmp111, __len);
4764      }
4765    } else {
4766      {
4767#line 351
4768      __cil_tmp112 = (unsigned long )w8001;
4769#line 351
4770      __cil_tmp113 = __cil_tmp112 + 121;
4771#line 351
4772      __cil_tmp114 = (unsigned char (*)[11U])__cil_tmp113;
4773#line 351
4774      __cil_tmp115 = (void *)__cil_tmp114;
4775#line 351
4776      __cil_tmp116 = (unsigned long )w8001;
4777#line 351
4778      __cil_tmp117 = __cil_tmp116 + 132;
4779#line 351
4780      __cil_tmp118 = (unsigned char (*)[11U])__cil_tmp117;
4781#line 351
4782      __cil_tmp119 = (void const   *)__cil_tmp118;
4783#line 351
4784      __ret = __builtin_memcpy(__cil_tmp115, __cil_tmp119, __len);
4785      }
4786    }
4787    {
4788#line 352
4789    __cil_tmp120 = (unsigned long )w8001;
4790#line 352
4791    __cil_tmp121 = __cil_tmp120 + 120;
4792#line 352
4793    *((unsigned char *)__cil_tmp121) = (unsigned char)32;
4794#line 353
4795    __cil_tmp122 = (unsigned long )w8001;
4796#line 353
4797    __cil_tmp123 = __cil_tmp122 + 16;
4798#line 353
4799    __cil_tmp124 = (struct completion *)__cil_tmp123;
4800#line 353
4801    complete(__cil_tmp124);
4802    }
4803#line 354
4804    goto ldv_20883;
4805    case_12: /* CIL Label */ 
4806    {
4807#line 358
4808    __cil_tmp125 = (unsigned long )w8001;
4809#line 358
4810    __cil_tmp126 = __cil_tmp125 + 116;
4811#line 358
4812    *((int *)__cil_tmp126) = 0;
4813#line 359
4814    parse_multi_touch(w8001);
4815    }
4816#line 360
4817    goto ldv_20883;
4818  } else {
4819    switch_break: /* CIL Label */ ;
4820  }
4821  ldv_20883: ;
4822#line 363
4823  return ((irqreturn_t )1);
4824}
4825}
4826#line 366 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
4827static int w8001_command(struct w8001 *w8001 , unsigned char command , bool wait_response ) 
4828{ int rc ;
4829  unsigned long __cil_tmp5 ;
4830  unsigned long __cil_tmp6 ;
4831  unsigned long __cil_tmp7 ;
4832  unsigned long __cil_tmp8 ;
4833  struct completion *__cil_tmp9 ;
4834  unsigned long __cil_tmp10 ;
4835  unsigned long __cil_tmp11 ;
4836  struct serio *__cil_tmp12 ;
4837  int __cil_tmp13 ;
4838  unsigned char __cil_tmp14 ;
4839  unsigned long __cil_tmp15 ;
4840  unsigned long __cil_tmp16 ;
4841  struct completion *__cil_tmp17 ;
4842  unsigned long __cil_tmp18 ;
4843  unsigned long __cil_tmp19 ;
4844  unsigned char __cil_tmp20 ;
4845  unsigned int __cil_tmp21 ;
4846
4847  {
4848  {
4849#line 371
4850  __cil_tmp5 = (unsigned long )w8001;
4851#line 371
4852  __cil_tmp6 = __cil_tmp5 + 120;
4853#line 371
4854  *((unsigned char *)__cil_tmp6) = (unsigned char)0;
4855#line 372
4856  __cil_tmp7 = (unsigned long )w8001;
4857#line 372
4858  __cil_tmp8 = __cil_tmp7 + 16;
4859#line 372
4860  __cil_tmp9 = (struct completion *)__cil_tmp8;
4861#line 372
4862  init_completion(__cil_tmp9);
4863#line 374
4864  __cil_tmp10 = (unsigned long )w8001;
4865#line 374
4866  __cil_tmp11 = __cil_tmp10 + 8;
4867#line 374
4868  __cil_tmp12 = *((struct serio **)__cil_tmp11);
4869#line 374
4870  __cil_tmp13 = (int )command;
4871#line 374
4872  __cil_tmp14 = (unsigned char )__cil_tmp13;
4873#line 374
4874  rc = serio_write(__cil_tmp12, __cil_tmp14);
4875  }
4876#line 375
4877  if (rc == 0) {
4878#line 375
4879    if ((int )wait_response) {
4880      {
4881#line 377
4882      __cil_tmp15 = (unsigned long )w8001;
4883#line 377
4884      __cil_tmp16 = __cil_tmp15 + 16;
4885#line 377
4886      __cil_tmp17 = (struct completion *)__cil_tmp16;
4887#line 377
4888      wait_for_completion_timeout(__cil_tmp17, 250UL);
4889      }
4890      {
4891#line 378
4892      __cil_tmp18 = (unsigned long )w8001;
4893#line 378
4894      __cil_tmp19 = __cil_tmp18 + 120;
4895#line 378
4896      __cil_tmp20 = *((unsigned char *)__cil_tmp19);
4897#line 378
4898      __cil_tmp21 = (unsigned int )__cil_tmp20;
4899#line 378
4900      if (__cil_tmp21 != 32U) {
4901#line 379
4902        rc = -5;
4903      } else {
4904
4905      }
4906      }
4907    } else {
4908
4909    }
4910  } else {
4911
4912  }
4913#line 382
4914  return (rc);
4915}
4916}
4917#line 385 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
4918static int w8001_open(struct input_dev *dev ) 
4919{ struct w8001 *w8001 ;
4920  void *tmp ;
4921  int tmp___0 ;
4922  bool __cil_tmp5 ;
4923
4924  {
4925  {
4926#line 387
4927  tmp = input_get_drvdata(dev);
4928#line 387
4929  w8001 = (struct w8001 *)tmp;
4930#line 389
4931  __cil_tmp5 = (bool )0;
4932#line 389
4933  tmp___0 = w8001_command(w8001, (unsigned char)49, __cil_tmp5);
4934  }
4935#line 389
4936  return (tmp___0);
4937}
4938}
4939#line 392 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
4940static void w8001_close(struct input_dev *dev ) 
4941{ struct w8001 *w8001 ;
4942  void *tmp ;
4943  bool __cil_tmp4 ;
4944
4945  {
4946  {
4947#line 394
4948  tmp = input_get_drvdata(dev);
4949#line 394
4950  w8001 = (struct w8001 *)tmp;
4951#line 396
4952  __cil_tmp4 = (bool )0;
4953#line 396
4954  w8001_command(w8001, (unsigned char)48, __cil_tmp4);
4955  }
4956#line 397
4957  return;
4958}
4959}
4960#line 399 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
4961static int w8001_setup(struct w8001 *w8001 ) 
4962{ struct input_dev *dev ;
4963  struct w8001_coord coord ;
4964  struct w8001_touch_query touch ;
4965  int error ;
4966  bool __cil_tmp6 ;
4967  unsigned long __cil_tmp7 ;
4968  unsigned long __cil_tmp8 ;
4969  unsigned long __cil_tmp9 ;
4970  unsigned long __cil_tmp10 ;
4971  unsigned long __cil_tmp11 ;
4972  unsigned long __cil_tmp12 ;
4973  char (*__cil_tmp13)[64U] ;
4974  char *__cil_tmp14 ;
4975  unsigned long __cil_tmp15 ;
4976  unsigned long __cil_tmp16 ;
4977  unsigned long (*__cil_tmp17)[1U] ;
4978  unsigned long volatile   *__cil_tmp18 ;
4979  bool __cil_tmp19 ;
4980  unsigned long __cil_tmp20 ;
4981  unsigned long __cil_tmp21 ;
4982  unsigned long (*__cil_tmp22)[12U] ;
4983  unsigned long volatile   *__cil_tmp23 ;
4984  unsigned long __cil_tmp24 ;
4985  unsigned long __cil_tmp25 ;
4986  unsigned long (*__cil_tmp26)[12U] ;
4987  unsigned long volatile   *__cil_tmp27 ;
4988  unsigned long __cil_tmp28 ;
4989  unsigned long __cil_tmp29 ;
4990  unsigned long (*__cil_tmp30)[12U] ;
4991  unsigned long volatile   *__cil_tmp31 ;
4992  unsigned long __cil_tmp32 ;
4993  unsigned long __cil_tmp33 ;
4994  unsigned long (*__cil_tmp34)[12U] ;
4995  unsigned long volatile   *__cil_tmp35 ;
4996  unsigned long __cil_tmp36 ;
4997  unsigned long __cil_tmp37 ;
4998  unsigned long (*__cil_tmp38)[12U] ;
4999  unsigned long volatile   *__cil_tmp39 ;
5000  unsigned long __cil_tmp40 ;
5001  unsigned long __cil_tmp41 ;
5002  unsigned char (*__cil_tmp42)[11U] ;
5003  u8 *__cil_tmp43 ;
5004  unsigned long __cil_tmp44 ;
5005  unsigned long __cil_tmp45 ;
5006  unsigned long __cil_tmp46 ;
5007  unsigned long __cil_tmp47 ;
5008  unsigned long __cil_tmp48 ;
5009  unsigned long __cil_tmp49 ;
5010  unsigned long __cil_tmp50 ;
5011  u16 __cil_tmp51 ;
5012  int __cil_tmp52 ;
5013  unsigned long __cil_tmp53 ;
5014  u16 __cil_tmp54 ;
5015  int __cil_tmp55 ;
5016  unsigned long __cil_tmp56 ;
5017  u16 __cil_tmp57 ;
5018  int __cil_tmp58 ;
5019  unsigned long __cil_tmp59 ;
5020  u8 __cil_tmp60 ;
5021  unsigned int __cil_tmp61 ;
5022  unsigned long __cil_tmp62 ;
5023  u8 __cil_tmp63 ;
5024  unsigned int __cil_tmp64 ;
5025  unsigned long __cil_tmp65 ;
5026  u8 __cil_tmp66 ;
5027  int __cil_tmp67 ;
5028  unsigned long __cil_tmp68 ;
5029  u8 __cil_tmp69 ;
5030  int __cil_tmp70 ;
5031  unsigned long __cil_tmp71 ;
5032  unsigned long __cil_tmp72 ;
5033  unsigned long __cil_tmp73 ;
5034  unsigned long __cil_tmp74 ;
5035  char (*__cil_tmp75)[64U] ;
5036  char *__cil_tmp76 ;
5037  bool __cil_tmp77 ;
5038  unsigned long __cil_tmp78 ;
5039  unsigned long __cil_tmp79 ;
5040  unsigned long __cil_tmp80 ;
5041  unsigned long __cil_tmp81 ;
5042  unsigned char __cil_tmp82 ;
5043  unsigned int __cil_tmp83 ;
5044  unsigned long __cil_tmp84 ;
5045  unsigned long __cil_tmp85 ;
5046  unsigned long (*__cil_tmp86)[12U] ;
5047  unsigned long volatile   *__cil_tmp87 ;
5048  unsigned long __cil_tmp88 ;
5049  unsigned long __cil_tmp89 ;
5050  unsigned long (*__cil_tmp90)[12U] ;
5051  unsigned long volatile   *__cil_tmp91 ;
5052  unsigned long __cil_tmp92 ;
5053  unsigned long __cil_tmp93 ;
5054  unsigned char (*__cil_tmp94)[11U] ;
5055  u8 *__cil_tmp95 ;
5056  unsigned long __cil_tmp96 ;
5057  unsigned long __cil_tmp97 ;
5058  struct w8001_touch_query *__cil_tmp98 ;
5059  unsigned long __cil_tmp99 ;
5060  unsigned long __cil_tmp100 ;
5061  unsigned long __cil_tmp101 ;
5062  unsigned long __cil_tmp102 ;
5063  unsigned long __cil_tmp103 ;
5064  u16 __cil_tmp104 ;
5065  unsigned int __cil_tmp105 ;
5066  unsigned long __cil_tmp106 ;
5067  unsigned long __cil_tmp107 ;
5068  u16 __cil_tmp108 ;
5069  unsigned int __cil_tmp109 ;
5070  struct w8001_touch_query *__cil_tmp110 ;
5071  unsigned long __cil_tmp111 ;
5072  unsigned long __cil_tmp112 ;
5073  unsigned long __cil_tmp113 ;
5074  unsigned long __cil_tmp114 ;
5075  unsigned long __cil_tmp115 ;
5076  unsigned long __cil_tmp116 ;
5077  struct w8001_touch_query *__cil_tmp117 ;
5078  u16 __cil_tmp118 ;
5079  int __cil_tmp119 ;
5080  unsigned long __cil_tmp120 ;
5081  u16 __cil_tmp121 ;
5082  int __cil_tmp122 ;
5083  unsigned long __cil_tmp123 ;
5084  u8 __cil_tmp124 ;
5085  int __cil_tmp125 ;
5086  unsigned long __cil_tmp126 ;
5087  u8 __cil_tmp127 ;
5088  int __cil_tmp128 ;
5089  unsigned long __cil_tmp129 ;
5090  u8 __cil_tmp130 ;
5091  unsigned long __cil_tmp131 ;
5092  unsigned long __cil_tmp132 ;
5093  unsigned long __cil_tmp133 ;
5094  unsigned long __cil_tmp134 ;
5095  unsigned long __cil_tmp135 ;
5096  unsigned long __cil_tmp136 ;
5097  char (*__cil_tmp137)[64U] ;
5098  char *__cil_tmp138 ;
5099  unsigned long __cil_tmp139 ;
5100  unsigned long __cil_tmp140 ;
5101  unsigned long __cil_tmp141 ;
5102  unsigned long __cil_tmp142 ;
5103  char (*__cil_tmp143)[64U] ;
5104  char *__cil_tmp144 ;
5105  unsigned long __cil_tmp145 ;
5106  unsigned long __cil_tmp146 ;
5107  unsigned long __cil_tmp147 ;
5108  unsigned long __cil_tmp148 ;
5109  struct w8001_touch_query *__cil_tmp149 ;
5110  u16 __cil_tmp150 ;
5111  int __cil_tmp151 ;
5112  unsigned long __cil_tmp152 ;
5113  u16 __cil_tmp153 ;
5114  int __cil_tmp154 ;
5115  unsigned long __cil_tmp155 ;
5116  unsigned long __cil_tmp156 ;
5117  char (*__cil_tmp157)[64U] ;
5118  char *__cil_tmp158 ;
5119  unsigned long __cil_tmp159 ;
5120  unsigned long __cil_tmp160 ;
5121  u16 __cil_tmp161 ;
5122  unsigned int __cil_tmp162 ;
5123  unsigned long __cil_tmp163 ;
5124  unsigned long __cil_tmp164 ;
5125  u16 __cil_tmp165 ;
5126  unsigned int __cil_tmp166 ;
5127  unsigned long __cil_tmp167 ;
5128  unsigned long __cil_tmp168 ;
5129  unsigned long __cil_tmp169 ;
5130  unsigned long __cil_tmp170 ;
5131  unsigned long __cil_tmp171 ;
5132  unsigned long __cil_tmp172 ;
5133  unsigned long __cil_tmp173 ;
5134  unsigned long __cil_tmp174 ;
5135  char (*__cil_tmp175)[64U] ;
5136  char *__cil_tmp176 ;
5137
5138  {
5139  {
5140#line 401
5141  dev = *((struct input_dev **)w8001);
5142#line 406
5143  __cil_tmp6 = (bool )0;
5144#line 406
5145  error = w8001_command(w8001, (unsigned char)48, __cil_tmp6);
5146  }
5147#line 407
5148  if (error != 0) {
5149#line 408
5150    return (error);
5151  } else {
5152
5153  }
5154  {
5155#line 410
5156  msleep(250U);
5157#line 412
5158  __cil_tmp7 = 0 * 8UL;
5159#line 412
5160  __cil_tmp8 = 40 + __cil_tmp7;
5161#line 412
5162  __cil_tmp9 = (unsigned long )dev;
5163#line 412
5164  __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
5165#line 412
5166  *((unsigned long *)__cil_tmp10) = 10UL;
5167#line 413
5168  __cil_tmp11 = (unsigned long )w8001;
5169#line 413
5170  __cil_tmp12 = __cil_tmp11 + 192;
5171#line 413
5172  __cil_tmp13 = (char (*)[64U])__cil_tmp12;
5173#line 413
5174  __cil_tmp14 = (char *)__cil_tmp13;
5175#line 413
5176  strlcat(__cil_tmp14, "Wacom Serial", 64UL);
5177#line 415
5178  __cil_tmp15 = (unsigned long )dev;
5179#line 415
5180  __cil_tmp16 = __cil_tmp15 + 32;
5181#line 415
5182  __cil_tmp17 = (unsigned long (*)[1U])__cil_tmp16;
5183#line 415
5184  __cil_tmp18 = (unsigned long volatile   *)__cil_tmp17;
5185#line 415
5186  __set_bit(1, __cil_tmp18);
5187#line 418
5188  __cil_tmp19 = (bool )1;
5189#line 418
5190  error = w8001_command(w8001, (unsigned char)42, __cil_tmp19);
5191  }
5192#line 419
5193  if (error == 0) {
5194    {
5195#line 420
5196    __cil_tmp20 = (unsigned long )dev;
5197#line 420
5198    __cil_tmp21 = __cil_tmp20 + 48;
5199#line 420
5200    __cil_tmp22 = (unsigned long (*)[12U])__cil_tmp21;
5201#line 420
5202    __cil_tmp23 = (unsigned long volatile   *)__cil_tmp22;
5203#line 420
5204    __set_bit(330, __cil_tmp23);
5205#line 421
5206    __cil_tmp24 = (unsigned long )dev;
5207#line 421
5208    __cil_tmp25 = __cil_tmp24 + 48;
5209#line 421
5210    __cil_tmp26 = (unsigned long (*)[12U])__cil_tmp25;
5211#line 421
5212    __cil_tmp27 = (unsigned long volatile   *)__cil_tmp26;
5213#line 421
5214    __set_bit(320, __cil_tmp27);
5215#line 422
5216    __cil_tmp28 = (unsigned long )dev;
5217#line 422
5218    __cil_tmp29 = __cil_tmp28 + 48;
5219#line 422
5220    __cil_tmp30 = (unsigned long (*)[12U])__cil_tmp29;
5221#line 422
5222    __cil_tmp31 = (unsigned long volatile   *)__cil_tmp30;
5223#line 422
5224    __set_bit(321, __cil_tmp31);
5225#line 423
5226    __cil_tmp32 = (unsigned long )dev;
5227#line 423
5228    __cil_tmp33 = __cil_tmp32 + 48;
5229#line 423
5230    __cil_tmp34 = (unsigned long (*)[12U])__cil_tmp33;
5231#line 423
5232    __cil_tmp35 = (unsigned long volatile   *)__cil_tmp34;
5233#line 423
5234    __set_bit(331, __cil_tmp35);
5235#line 424
5236    __cil_tmp36 = (unsigned long )dev;
5237#line 424
5238    __cil_tmp37 = __cil_tmp36 + 48;
5239#line 424
5240    __cil_tmp38 = (unsigned long (*)[12U])__cil_tmp37;
5241#line 424
5242    __cil_tmp39 = (unsigned long volatile   *)__cil_tmp38;
5243#line 424
5244    __set_bit(332, __cil_tmp39);
5245#line 426
5246    __cil_tmp40 = (unsigned long )w8001;
5247#line 426
5248    __cil_tmp41 = __cil_tmp40 + 121;
5249#line 426
5250    __cil_tmp42 = (unsigned char (*)[11U])__cil_tmp41;
5251#line 426
5252    __cil_tmp43 = (u8 *)__cil_tmp42;
5253#line 426
5254    parse_pen_data(__cil_tmp43, & coord);
5255#line 427
5256    __cil_tmp44 = (unsigned long )w8001;
5257#line 427
5258    __cil_tmp45 = __cil_tmp44 + 188;
5259#line 427
5260    __cil_tmp46 = (unsigned long )(& coord) + 4;
5261#line 427
5262    *((u16 *)__cil_tmp45) = *((u16 *)__cil_tmp46);
5263#line 428
5264    __cil_tmp47 = (unsigned long )w8001;
5265#line 428
5266    __cil_tmp48 = __cil_tmp47 + 190;
5267#line 428
5268    __cil_tmp49 = (unsigned long )(& coord) + 6;
5269#line 428
5270    *((u16 *)__cil_tmp48) = *((u16 *)__cil_tmp49);
5271#line 430
5272    __cil_tmp50 = (unsigned long )(& coord) + 4;
5273#line 430
5274    __cil_tmp51 = *((u16 *)__cil_tmp50);
5275#line 430
5276    __cil_tmp52 = (int )__cil_tmp51;
5277#line 430
5278    input_set_abs_params(dev, 0U, 0, __cil_tmp52, 0, 0);
5279#line 431
5280    __cil_tmp53 = (unsigned long )(& coord) + 6;
5281#line 431
5282    __cil_tmp54 = *((u16 *)__cil_tmp53);
5283#line 431
5284    __cil_tmp55 = (int )__cil_tmp54;
5285#line 431
5286    input_set_abs_params(dev, 1U, 0, __cil_tmp55, 0, 0);
5287#line 432
5288    input_abs_set_res(dev, 0U, 100);
5289#line 433
5290    input_abs_set_res(dev, 1U, 100);
5291#line 434
5292    __cil_tmp56 = (unsigned long )(& coord) + 8;
5293#line 434
5294    __cil_tmp57 = *((u16 *)__cil_tmp56);
5295#line 434
5296    __cil_tmp58 = (int )__cil_tmp57;
5297#line 434
5298    input_set_abs_params(dev, 24U, 0, __cil_tmp58, 0, 0);
5299    }
5300    {
5301#line 435
5302    __cil_tmp59 = (unsigned long )(& coord) + 10;
5303#line 435
5304    __cil_tmp60 = *((u8 *)__cil_tmp59);
5305#line 435
5306    __cil_tmp61 = (unsigned int )__cil_tmp60;
5307#line 435
5308    if (__cil_tmp61 != 0U) {
5309      {
5310#line 435
5311      __cil_tmp62 = (unsigned long )(& coord) + 11;
5312#line 435
5313      __cil_tmp63 = *((u8 *)__cil_tmp62);
5314#line 435
5315      __cil_tmp64 = (unsigned int )__cil_tmp63;
5316#line 435
5317      if (__cil_tmp64 != 0U) {
5318        {
5319#line 436
5320        __cil_tmp65 = (unsigned long )(& coord) + 10;
5321#line 436
5322        __cil_tmp66 = *((u8 *)__cil_tmp65);
5323#line 436
5324        __cil_tmp67 = (int )__cil_tmp66;
5325#line 436
5326        input_set_abs_params(dev, 26U, 0, __cil_tmp67, 0, 0);
5327#line 437
5328        __cil_tmp68 = (unsigned long )(& coord) + 11;
5329#line 437
5330        __cil_tmp69 = *((u8 *)__cil_tmp68);
5331#line 437
5332        __cil_tmp70 = (int )__cil_tmp69;
5333#line 437
5334        input_set_abs_params(dev, 27U, 0, __cil_tmp70, 0, 0);
5335        }
5336      } else {
5337
5338      }
5339      }
5340    } else {
5341
5342    }
5343    }
5344    {
5345#line 439
5346    __cil_tmp71 = (unsigned long )w8001;
5347#line 439
5348    __cil_tmp72 = __cil_tmp71 + 112;
5349#line 439
5350    *((int *)__cil_tmp72) = 144;
5351#line 440
5352    __cil_tmp73 = (unsigned long )w8001;
5353#line 440
5354    __cil_tmp74 = __cil_tmp73 + 192;
5355#line 440
5356    __cil_tmp75 = (char (*)[64U])__cil_tmp74;
5357#line 440
5358    __cil_tmp76 = (char *)__cil_tmp75;
5359#line 440
5360    strlcat(__cil_tmp76, " Penabled", 64UL);
5361    }
5362  } else {
5363
5364  }
5365  {
5366#line 444
5367  __cil_tmp77 = (bool )1;
5368#line 444
5369  error = w8001_command(w8001, (unsigned char)37, __cil_tmp77);
5370  }
5371#line 450
5372  if (error == 0) {
5373    {
5374#line 450
5375    __cil_tmp78 = 1 * 1UL;
5376#line 450
5377    __cil_tmp79 = 121 + __cil_tmp78;
5378#line 450
5379    __cil_tmp80 = (unsigned long )w8001;
5380#line 450
5381    __cil_tmp81 = __cil_tmp80 + __cil_tmp79;
5382#line 450
5383    __cil_tmp82 = *((unsigned char *)__cil_tmp81);
5384#line 450
5385    __cil_tmp83 = (unsigned int )__cil_tmp82;
5386#line 450
5387    if (__cil_tmp83 != 0U) {
5388      {
5389#line 451
5390      __cil_tmp84 = (unsigned long )dev;
5391#line 451
5392      __cil_tmp85 = __cil_tmp84 + 48;
5393#line 451
5394      __cil_tmp86 = (unsigned long (*)[12U])__cil_tmp85;
5395#line 451
5396      __cil_tmp87 = (unsigned long volatile   *)__cil_tmp86;
5397#line 451
5398      __set_bit(330, __cil_tmp87);
5399#line 452
5400      __cil_tmp88 = (unsigned long )dev;
5401#line 452
5402      __cil_tmp89 = __cil_tmp88 + 48;
5403#line 452
5404      __cil_tmp90 = (unsigned long (*)[12U])__cil_tmp89;
5405#line 452
5406      __cil_tmp91 = (unsigned long volatile   *)__cil_tmp90;
5407#line 452
5408      __set_bit(325, __cil_tmp91);
5409#line 454
5410      __cil_tmp92 = (unsigned long )w8001;
5411#line 454
5412      __cil_tmp93 = __cil_tmp92 + 121;
5413#line 454
5414      __cil_tmp94 = (unsigned char (*)[11U])__cil_tmp93;
5415#line 454
5416      __cil_tmp95 = (u8 *)__cil_tmp94;
5417#line 454
5418      parse_touchquery(__cil_tmp95, & touch);
5419#line 455
5420      __cil_tmp96 = (unsigned long )w8001;
5421#line 455
5422      __cil_tmp97 = __cil_tmp96 + 184;
5423#line 455
5424      __cil_tmp98 = & touch;
5425#line 455
5426      *((u16 *)__cil_tmp97) = *((u16 *)__cil_tmp98);
5427#line 456
5428      __cil_tmp99 = (unsigned long )w8001;
5429#line 456
5430      __cil_tmp100 = __cil_tmp99 + 186;
5431#line 456
5432      __cil_tmp101 = (unsigned long )(& touch) + 2;
5433#line 456
5434      *((u16 *)__cil_tmp100) = *((u16 *)__cil_tmp101);
5435      }
5436      {
5437#line 458
5438      __cil_tmp102 = (unsigned long )w8001;
5439#line 458
5440      __cil_tmp103 = __cil_tmp102 + 188;
5441#line 458
5442      __cil_tmp104 = *((u16 *)__cil_tmp103);
5443#line 458
5444      __cil_tmp105 = (unsigned int )__cil_tmp104;
5445#line 458
5446      if (__cil_tmp105 != 0U) {
5447        {
5448#line 458
5449        __cil_tmp106 = (unsigned long )w8001;
5450#line 458
5451        __cil_tmp107 = __cil_tmp106 + 190;
5452#line 458
5453        __cil_tmp108 = *((u16 *)__cil_tmp107);
5454#line 458
5455        __cil_tmp109 = (unsigned int )__cil_tmp108;
5456#line 458
5457        if (__cil_tmp109 != 0U) {
5458#line 460
5459          __cil_tmp110 = & touch;
5460#line 460
5461          __cil_tmp111 = (unsigned long )w8001;
5462#line 460
5463          __cil_tmp112 = __cil_tmp111 + 188;
5464#line 460
5465          *((u16 *)__cil_tmp110) = *((u16 *)__cil_tmp112);
5466#line 461
5467          __cil_tmp113 = (unsigned long )(& touch) + 2;
5468#line 461
5469          __cil_tmp114 = (unsigned long )w8001;
5470#line 461
5471          __cil_tmp115 = __cil_tmp114 + 190;
5472#line 461
5473          *((u16 *)__cil_tmp113) = *((u16 *)__cil_tmp115);
5474#line 462
5475          __cil_tmp116 = (unsigned long )(& touch) + 4;
5476#line 462
5477          *((u8 *)__cil_tmp116) = (u8 )100U;
5478        } else {
5479
5480        }
5481        }
5482      } else {
5483
5484      }
5485      }
5486      {
5487#line 465
5488      __cil_tmp117 = & touch;
5489#line 465
5490      __cil_tmp118 = *((u16 *)__cil_tmp117);
5491#line 465
5492      __cil_tmp119 = (int )__cil_tmp118;
5493#line 465
5494      input_set_abs_params(dev, 0U, 0, __cil_tmp119, 0, 0);
5495#line 466
5496      __cil_tmp120 = (unsigned long )(& touch) + 2;
5497#line 466
5498      __cil_tmp121 = *((u16 *)__cil_tmp120);
5499#line 466
5500      __cil_tmp122 = (int )__cil_tmp121;
5501#line 466
5502      input_set_abs_params(dev, 1U, 0, __cil_tmp122, 0, 0);
5503#line 467
5504      __cil_tmp123 = (unsigned long )(& touch) + 4;
5505#line 467
5506      __cil_tmp124 = *((u8 *)__cil_tmp123);
5507#line 467
5508      __cil_tmp125 = (int )__cil_tmp124;
5509#line 467
5510      input_abs_set_res(dev, 0U, __cil_tmp125);
5511#line 468
5512      __cil_tmp126 = (unsigned long )(& touch) + 4;
5513#line 468
5514      __cil_tmp127 = *((u8 *)__cil_tmp126);
5515#line 468
5516      __cil_tmp128 = (int )__cil_tmp127;
5517#line 468
5518      input_abs_set_res(dev, 1U, __cil_tmp128);
5519      }
5520      {
5521#line 470
5522      __cil_tmp129 = (unsigned long )(& touch) + 6;
5523#line 470
5524      __cil_tmp130 = *((u8 *)__cil_tmp129);
5525#line 471
5526      if ((int )__cil_tmp130 == 0) {
5527#line 471
5528        goto case_0;
5529      } else
5530#line 472
5531      if ((int )__cil_tmp130 == 2) {
5532#line 472
5533        goto case_2;
5534      } else
5535#line 478
5536      if ((int )__cil_tmp130 == 1) {
5537#line 478
5538        goto case_1;
5539      } else
5540#line 479
5541      if ((int )__cil_tmp130 == 3) {
5542#line 479
5543        goto case_3;
5544      } else
5545#line 480
5546      if ((int )__cil_tmp130 == 4) {
5547#line 480
5548        goto case_4;
5549      } else
5550#line 486
5551      if ((int )__cil_tmp130 == 5) {
5552#line 486
5553        goto case_5;
5554      } else
5555#line 470
5556      if (0) {
5557        case_0: /* CIL Label */ ;
5558        case_2: /* CIL Label */ 
5559        {
5560#line 473
5561        __cil_tmp131 = (unsigned long )w8001;
5562#line 473
5563        __cil_tmp132 = __cil_tmp131 + 180;
5564#line 473
5565        *((unsigned int *)__cil_tmp132) = 5U;
5566#line 474
5567        __cil_tmp133 = (unsigned long )w8001;
5568#line 474
5569        __cil_tmp134 = __cil_tmp133 + 112;
5570#line 474
5571        *((int *)__cil_tmp134) = 147;
5572#line 475
5573        __cil_tmp135 = (unsigned long )w8001;
5574#line 475
5575        __cil_tmp136 = __cil_tmp135 + 192;
5576#line 475
5577        __cil_tmp137 = (char (*)[64U])__cil_tmp136;
5578#line 475
5579        __cil_tmp138 = (char *)__cil_tmp137;
5580#line 475
5581        strlcat(__cil_tmp138, " 1FG", 64UL);
5582        }
5583#line 476
5584        goto ldv_20915;
5585        case_1: /* CIL Label */ ;
5586        case_3: /* CIL Label */ ;
5587        case_4: /* CIL Label */ 
5588        {
5589#line 481
5590        __cil_tmp139 = (unsigned long )w8001;
5591#line 481
5592        __cil_tmp140 = __cil_tmp139 + 180;
5593#line 481
5594        *((unsigned int *)__cil_tmp140) = 7U;
5595#line 482
5596        __cil_tmp141 = (unsigned long )w8001;
5597#line 482
5598        __cil_tmp142 = __cil_tmp141 + 192;
5599#line 482
5600        __cil_tmp143 = (char (*)[64U])__cil_tmp142;
5601#line 482
5602        __cil_tmp144 = (char *)__cil_tmp143;
5603#line 482
5604        strlcat(__cil_tmp144, " 1FG", 64UL);
5605#line 483
5606        __cil_tmp145 = (unsigned long )w8001;
5607#line 483
5608        __cil_tmp146 = __cil_tmp145 + 112;
5609#line 483
5610        *((int *)__cil_tmp146) = 154;
5611        }
5612#line 484
5613        goto ldv_20915;
5614        case_5: /* CIL Label */ 
5615        {
5616#line 487
5617        __cil_tmp147 = (unsigned long )w8001;
5618#line 487
5619        __cil_tmp148 = __cil_tmp147 + 180;
5620#line 487
5621        *((unsigned int *)__cil_tmp148) = 13U;
5622#line 489
5623        input_mt_init_slots(dev, 2U);
5624#line 490
5625        __cil_tmp149 = & touch;
5626#line 490
5627        __cil_tmp150 = *((u16 *)__cil_tmp149);
5628#line 490
5629        __cil_tmp151 = (int )__cil_tmp150;
5630#line 490
5631        input_set_abs_params(dev, 53U, 0, __cil_tmp151, 0, 0);
5632#line 492
5633        __cil_tmp152 = (unsigned long )(& touch) + 2;
5634#line 492
5635        __cil_tmp153 = *((u16 *)__cil_tmp152);
5636#line 492
5637        __cil_tmp154 = (int )__cil_tmp153;
5638#line 492
5639        input_set_abs_params(dev, 54U, 0, __cil_tmp154, 0, 0);
5640#line 494
5641        input_set_abs_params(dev, 55U, 0, 1, 0, 0);
5642#line 497
5643        __cil_tmp155 = (unsigned long )w8001;
5644#line 497
5645        __cil_tmp156 = __cil_tmp155 + 192;
5646#line 497
5647        __cil_tmp157 = (char (*)[64U])__cil_tmp156;
5648#line 497
5649        __cil_tmp158 = (char *)__cil_tmp157;
5650#line 497
5651        strlcat(__cil_tmp158, " 2FG", 64UL);
5652        }
5653        {
5654#line 498
5655        __cil_tmp159 = (unsigned long )w8001;
5656#line 498
5657        __cil_tmp160 = __cil_tmp159 + 188;
5658#line 498
5659        __cil_tmp161 = *((u16 *)__cil_tmp160);
5660#line 498
5661        __cil_tmp162 = (unsigned int )__cil_tmp161;
5662#line 498
5663        if (__cil_tmp162 != 0U) {
5664          {
5665#line 498
5666          __cil_tmp163 = (unsigned long )w8001;
5667#line 498
5668          __cil_tmp164 = __cil_tmp163 + 190;
5669#line 498
5670          __cil_tmp165 = *((u16 *)__cil_tmp164);
5671#line 498
5672          __cil_tmp166 = (unsigned int )__cil_tmp165;
5673#line 498
5674          if (__cil_tmp166 != 0U) {
5675#line 499
5676            __cil_tmp167 = (unsigned long )w8001;
5677#line 499
5678            __cil_tmp168 = __cil_tmp167 + 112;
5679#line 499
5680            *((int *)__cil_tmp168) = 227;
5681          } else {
5682#line 501
5683            __cil_tmp169 = (unsigned long )w8001;
5684#line 501
5685            __cil_tmp170 = __cil_tmp169 + 112;
5686#line 501
5687            *((int *)__cil_tmp170) = 226;
5688          }
5689          }
5690        } else {
5691#line 501
5692          __cil_tmp171 = (unsigned long )w8001;
5693#line 501
5694          __cil_tmp172 = __cil_tmp171 + 112;
5695#line 501
5696          *((int *)__cil_tmp172) = 226;
5697        }
5698        }
5699#line 502
5700        goto ldv_20915;
5701      } else {
5702        switch_break: /* CIL Label */ ;
5703      }
5704      }
5705      ldv_20915: ;
5706    } else {
5707
5708    }
5709    }
5710  } else {
5711
5712  }
5713  {
5714#line 506
5715  __cil_tmp173 = (unsigned long )w8001;
5716#line 506
5717  __cil_tmp174 = __cil_tmp173 + 192;
5718#line 506
5719  __cil_tmp175 = (char (*)[64U])__cil_tmp174;
5720#line 506
5721  __cil_tmp176 = (char *)__cil_tmp175;
5722#line 506
5723  strlcat(__cil_tmp176, " Touchscreen", 64UL);
5724  }
5725#line 508
5726  return (0);
5727}
5728}
5729#line 515 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
5730static void w8001_disconnect(struct serio *serio ) 
5731{ struct w8001 *w8001 ;
5732  void *tmp ;
5733  struct input_dev *__cil_tmp4 ;
5734  void const   *__cil_tmp5 ;
5735  void *__cil_tmp6 ;
5736
5737  {
5738  {
5739#line 517
5740  tmp = serio_get_drvdata(serio);
5741#line 517
5742  w8001 = (struct w8001 *)tmp;
5743#line 519
5744  serio_close(serio);
5745#line 521
5746  __cil_tmp4 = *((struct input_dev **)w8001);
5747#line 521
5748  input_unregister_device(__cil_tmp4);
5749#line 522
5750  __cil_tmp5 = (void const   *)w8001;
5751#line 522
5752  kfree(__cil_tmp5);
5753#line 524
5754  __cil_tmp6 = (void *)0;
5755#line 524
5756  serio_set_drvdata(serio, __cil_tmp6);
5757  }
5758#line 525
5759  return;
5760}
5761}
5762#line 533 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
5763static int w8001_connect(struct serio *serio , struct serio_driver *drv ) 
5764{ struct w8001 *w8001 ;
5765  struct input_dev *input_dev ;
5766  int err ;
5767  void *tmp ;
5768  struct w8001 *__cil_tmp7 ;
5769  unsigned long __cil_tmp8 ;
5770  unsigned long __cil_tmp9 ;
5771  struct input_dev *__cil_tmp10 ;
5772  unsigned long __cil_tmp11 ;
5773  unsigned long __cil_tmp12 ;
5774  unsigned long __cil_tmp13 ;
5775  unsigned long __cil_tmp14 ;
5776  unsigned long __cil_tmp15 ;
5777  unsigned long __cil_tmp16 ;
5778  struct completion *__cil_tmp17 ;
5779  unsigned long __cil_tmp18 ;
5780  unsigned long __cil_tmp19 ;
5781  char (*__cil_tmp20)[32U] ;
5782  char *__cil_tmp21 ;
5783  unsigned long __cil_tmp22 ;
5784  unsigned long __cil_tmp23 ;
5785  char (*__cil_tmp24)[32U] ;
5786  char *__cil_tmp25 ;
5787  void *__cil_tmp26 ;
5788  unsigned long __cil_tmp27 ;
5789  unsigned long __cil_tmp28 ;
5790  char (*__cil_tmp29)[64U] ;
5791  unsigned long __cil_tmp30 ;
5792  unsigned long __cil_tmp31 ;
5793  unsigned long __cil_tmp32 ;
5794  unsigned long __cil_tmp33 ;
5795  char (*__cil_tmp34)[32U] ;
5796  unsigned long __cil_tmp35 ;
5797  unsigned long __cil_tmp36 ;
5798  unsigned long __cil_tmp37 ;
5799  unsigned long __cil_tmp38 ;
5800  unsigned long __cil_tmp39 ;
5801  int __cil_tmp40 ;
5802  unsigned long __cil_tmp41 ;
5803  unsigned long __cil_tmp42 ;
5804  unsigned long __cil_tmp43 ;
5805  unsigned long __cil_tmp44 ;
5806  unsigned long __cil_tmp45 ;
5807  unsigned long __cil_tmp46 ;
5808  unsigned long __cil_tmp47 ;
5809  unsigned long __cil_tmp48 ;
5810  unsigned long __cil_tmp49 ;
5811  unsigned long __cil_tmp50 ;
5812  unsigned long __cil_tmp51 ;
5813  unsigned long __cil_tmp52 ;
5814  unsigned long __cil_tmp53 ;
5815  unsigned long __cil_tmp54 ;
5816  unsigned long __cil_tmp55 ;
5817  unsigned long __cil_tmp56 ;
5818  void *__cil_tmp57 ;
5819  struct input_dev *__cil_tmp58 ;
5820  void *__cil_tmp59 ;
5821  void const   *__cil_tmp60 ;
5822
5823  {
5824  {
5825#line 539
5826  tmp = kzalloc(256UL, 208U);
5827#line 539
5828  w8001 = (struct w8001 *)tmp;
5829#line 540
5830  input_dev = input_allocate_device();
5831  }
5832  {
5833#line 541
5834  __cil_tmp7 = (struct w8001 *)0;
5835#line 541
5836  __cil_tmp8 = (unsigned long )__cil_tmp7;
5837#line 541
5838  __cil_tmp9 = (unsigned long )w8001;
5839#line 541
5840  if (__cil_tmp9 == __cil_tmp8) {
5841#line 542
5842    err = -12;
5843#line 543
5844    goto fail1;
5845  } else {
5846    {
5847#line 541
5848    __cil_tmp10 = (struct input_dev *)0;
5849#line 541
5850    __cil_tmp11 = (unsigned long )__cil_tmp10;
5851#line 541
5852    __cil_tmp12 = (unsigned long )input_dev;
5853#line 541
5854    if (__cil_tmp12 == __cil_tmp11) {
5855#line 542
5856      err = -12;
5857#line 543
5858      goto fail1;
5859    } else {
5860
5861    }
5862    }
5863  }
5864  }
5865  {
5866#line 546
5867  __cil_tmp13 = (unsigned long )w8001;
5868#line 546
5869  __cil_tmp14 = __cil_tmp13 + 8;
5870#line 546
5871  *((struct serio **)__cil_tmp14) = serio;
5872#line 547
5873  *((struct input_dev **)w8001) = input_dev;
5874#line 548
5875  __cil_tmp15 = (unsigned long )w8001;
5876#line 548
5877  __cil_tmp16 = __cil_tmp15 + 16;
5878#line 548
5879  __cil_tmp17 = (struct completion *)__cil_tmp16;
5880#line 548
5881  init_completion(__cil_tmp17);
5882#line 549
5883  __cil_tmp18 = (unsigned long )w8001;
5884#line 549
5885  __cil_tmp19 = __cil_tmp18 + 143;
5886#line 549
5887  __cil_tmp20 = (char (*)[32U])__cil_tmp19;
5888#line 549
5889  __cil_tmp21 = (char *)__cil_tmp20;
5890#line 549
5891  __cil_tmp22 = (unsigned long )serio;
5892#line 549
5893  __cil_tmp23 = __cil_tmp22 + 40;
5894#line 549
5895  __cil_tmp24 = (char (*)[32U])__cil_tmp23;
5896#line 549
5897  __cil_tmp25 = (char *)__cil_tmp24;
5898#line 549
5899  snprintf(__cil_tmp21, 32UL, "%s/input0", __cil_tmp25);
5900#line 551
5901  __cil_tmp26 = (void *)w8001;
5902#line 551
5903  serio_set_drvdata(serio, __cil_tmp26);
5904#line 552
5905  err = serio_open(serio, drv);
5906  }
5907#line 553
5908  if (err != 0) {
5909#line 554
5910    goto fail2;
5911  } else {
5912
5913  }
5914  {
5915#line 556
5916  err = w8001_setup(w8001);
5917  }
5918#line 557
5919  if (err != 0) {
5920#line 558
5921    goto fail3;
5922  } else {
5923
5924  }
5925  {
5926#line 560
5927  __cil_tmp27 = (unsigned long )w8001;
5928#line 560
5929  __cil_tmp28 = __cil_tmp27 + 192;
5930#line 560
5931  __cil_tmp29 = (char (*)[64U])__cil_tmp28;
5932#line 560
5933  *((char const   **)input_dev) = (char const   *)__cil_tmp29;
5934#line 561
5935  __cil_tmp30 = (unsigned long )input_dev;
5936#line 561
5937  __cil_tmp31 = __cil_tmp30 + 8;
5938#line 561
5939  __cil_tmp32 = (unsigned long )w8001;
5940#line 561
5941  __cil_tmp33 = __cil_tmp32 + 143;
5942#line 561
5943  __cil_tmp34 = (char (*)[32U])__cil_tmp33;
5944#line 561
5945  *((char const   **)__cil_tmp31) = (char const   *)__cil_tmp34;
5946#line 562
5947  __cil_tmp35 = 24 + 4;
5948#line 562
5949  __cil_tmp36 = (unsigned long )input_dev;
5950#line 562
5951  __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
5952#line 562
5953  __cil_tmp38 = (unsigned long )w8001;
5954#line 562
5955  __cil_tmp39 = __cil_tmp38 + 112;
5956#line 562
5957  __cil_tmp40 = *((int *)__cil_tmp39);
5958#line 562
5959  *((__u16 *)__cil_tmp37) = (__u16 )__cil_tmp40;
5960#line 563
5961  __cil_tmp41 = (unsigned long )input_dev;
5962#line 563
5963  __cil_tmp42 = __cil_tmp41 + 24;
5964#line 563
5965  *((__u16 *)__cil_tmp42) = (__u16 )19U;
5966#line 564
5967  __cil_tmp43 = 24 + 2;
5968#line 564
5969  __cil_tmp44 = (unsigned long )input_dev;
5970#line 564
5971  __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
5972#line 564
5973  *((__u16 *)__cil_tmp45) = (__u16 )1386U;
5974#line 565
5975  __cil_tmp46 = 24 + 6;
5976#line 565
5977  __cil_tmp47 = (unsigned long )input_dev;
5978#line 565
5979  __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
5980#line 565
5981  *((__u16 *)__cil_tmp48) = (__u16 )256U;
5982#line 566
5983  __cil_tmp49 = (unsigned long )input_dev;
5984#line 566
5985  __cil_tmp50 = __cil_tmp49 + 840;
5986#line 566
5987  __cil_tmp51 = (unsigned long )serio;
5988#line 566
5989  __cil_tmp52 = __cil_tmp51 + 416;
5990#line 566
5991  *((struct device **)__cil_tmp50) = (struct device *)__cil_tmp52;
5992#line 568
5993  __cil_tmp53 = (unsigned long )input_dev;
5994#line 568
5995  __cil_tmp54 = __cil_tmp53 + 552;
5996#line 568
5997  *((int (**)(struct input_dev * ))__cil_tmp54) = & w8001_open;
5998#line 569
5999  __cil_tmp55 = (unsigned long )input_dev;
6000#line 569
6001  __cil_tmp56 = __cil_tmp55 + 560;
6002#line 569
6003  *((void (**)(struct input_dev * ))__cil_tmp56) = & w8001_close;
6004#line 571
6005  __cil_tmp57 = (void *)w8001;
6006#line 571
6007  input_set_drvdata(input_dev, __cil_tmp57);
6008#line 573
6009  __cil_tmp58 = *((struct input_dev **)w8001);
6010#line 573
6011  err = input_register_device(__cil_tmp58);
6012  }
6013#line 574
6014  if (err != 0) {
6015#line 575
6016    goto fail3;
6017  } else {
6018
6019  }
6020#line 577
6021  return (0);
6022  fail3: 
6023  {
6024#line 580
6025  serio_close(serio);
6026  }
6027  fail2: 
6028  {
6029#line 582
6030  __cil_tmp59 = (void *)0;
6031#line 582
6032  serio_set_drvdata(serio, __cil_tmp59);
6033  }
6034  fail1: 
6035  {
6036#line 584
6037  input_free_device(input_dev);
6038#line 585
6039  __cil_tmp60 = (void const   *)w8001;
6040#line 585
6041  kfree(__cil_tmp60);
6042  }
6043#line 586
6044  return (err);
6045}
6046}
6047#line 589 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6048static struct serio_device_id w8001_serio_ids[2U]  = {      {(__u8 )2U, (__u8 )255U, (__u8 )255U, (__u8 )57U}, 
6049        {(__u8 )0U, (unsigned char)0, (unsigned char)0, (unsigned char)0}};
6050#line 599 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6051struct serio_device_id  const  __mod_serio_device_table  ;
6052#line 601 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6053static struct serio_driver w8001_drv  = 
6054#line 601
6055     {"Wacom W8001 serial touchscreen driver", (struct serio_device_id  const  *)(& w8001_serio_ids),
6056    (_Bool)0, (void (*)(struct serio * ))0, & w8001_interrupt, & w8001_connect, (int (*)(struct serio * ))0,
6057    & w8001_disconnect, (void (*)(struct serio * ))0, {"w8001", (struct bus_type *)0,
6058                                                       (struct module *)0, (char const   *)0,
6059                                                       (_Bool)0, (struct of_device_id  const  *)0,
6060                                                       (int (*)(struct device * ))0,
6061                                                       (int (*)(struct device * ))0,
6062                                                       (void (*)(struct device * ))0,
6063                                                       (int (*)(struct device * ,
6064                                                                pm_message_t  ))0,
6065                                                       (int (*)(struct device * ))0,
6066                                                       (struct attribute_group  const  **)0,
6067                                                       (struct dev_pm_ops  const  *)0,
6068                                                       (struct driver_private *)0}};
6069#line 612 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6070static int w8001_init(void) 
6071{ int tmp ;
6072
6073  {
6074  {
6075#line 614
6076  tmp = __serio_register_driver(& w8001_drv, & __this_module, "wacom_w8001");
6077  }
6078#line 614
6079  return (tmp);
6080}
6081}
6082#line 617 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6083static void w8001_exit(void) 
6084{ 
6085
6086  {
6087  {
6088#line 619
6089  serio_unregister_driver(& w8001_drv);
6090  }
6091#line 620
6092  return;
6093}
6094}
6095#line 641
6096extern void ldv_check_final_state(void) ;
6097#line 644
6098extern void ldv_check_return_value(int  ) ;
6099#line 647
6100extern void ldv_initialize(void) ;
6101#line 650
6102extern int __VERIFIER_nondet_int(void) ;
6103#line 653 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6104int LDV_IN_INTERRUPT  ;
6105#line 656 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6106void main(void) 
6107{ struct serio *var_group1 ;
6108  unsigned char var_w8001_interrupt_7_p1 ;
6109  unsigned int var_w8001_interrupt_7_p2 ;
6110  struct serio_driver *var_group2 ;
6111  int res_w8001_connect_13 ;
6112  int ldv_s_w8001_drv_serio_driver ;
6113  int tmp ;
6114  int tmp___0 ;
6115  int tmp___1 ;
6116  int __cil_tmp10 ;
6117  unsigned char __cil_tmp11 ;
6118
6119  {
6120  {
6121#line 787
6122  ldv_s_w8001_drv_serio_driver = 0;
6123#line 749
6124  LDV_IN_INTERRUPT = 1;
6125#line 758
6126  ldv_initialize();
6127#line 785
6128  tmp = w8001_init();
6129  }
6130#line 785
6131  if (tmp != 0) {
6132#line 786
6133    goto ldv_final;
6134  } else {
6135
6136  }
6137#line 791
6138  goto ldv_20979;
6139  ldv_20978: 
6140  {
6141#line 795
6142  tmp___0 = __VERIFIER_nondet_int();
6143  }
6144#line 797
6145  if (tmp___0 == 0) {
6146#line 797
6147    goto case_0;
6148  } else
6149#line 837
6150  if (tmp___0 == 1) {
6151#line 837
6152    goto case_1;
6153  } else
6154#line 874
6155  if (tmp___0 == 2) {
6156#line 874
6157    goto case_2;
6158  } else {
6159    {
6160#line 911
6161    goto switch_default;
6162#line 795
6163    if (0) {
6164      case_0: /* CIL Label */ ;
6165#line 800
6166      if (ldv_s_w8001_drv_serio_driver == 0) {
6167        {
6168#line 826
6169        res_w8001_connect_13 = w8001_connect(var_group1, var_group2);
6170#line 827
6171        ldv_check_return_value(res_w8001_connect_13);
6172        }
6173#line 828
6174        if (res_w8001_connect_13 != 0) {
6175#line 829
6176          goto ldv_module_exit;
6177        } else {
6178
6179        }
6180#line 830
6181        ldv_s_w8001_drv_serio_driver = ldv_s_w8001_drv_serio_driver + 1;
6182      } else {
6183
6184      }
6185#line 836
6186      goto ldv_20974;
6187      case_1: /* CIL Label */ ;
6188#line 840
6189      if (ldv_s_w8001_drv_serio_driver == 1) {
6190        {
6191#line 866
6192        w8001_disconnect(var_group1);
6193#line 867
6194        ldv_s_w8001_drv_serio_driver = 0;
6195        }
6196      } else {
6197
6198      }
6199#line 873
6200      goto ldv_20974;
6201      case_2: /* CIL Label */ 
6202      {
6203#line 903
6204      __cil_tmp10 = (int )var_w8001_interrupt_7_p1;
6205#line 903
6206      __cil_tmp11 = (unsigned char )__cil_tmp10;
6207#line 903
6208      w8001_interrupt(var_group1, __cil_tmp11, var_w8001_interrupt_7_p2);
6209      }
6210#line 910
6211      goto ldv_20974;
6212      switch_default: /* CIL Label */ ;
6213#line 911
6214      goto ldv_20974;
6215    } else {
6216      switch_break: /* CIL Label */ ;
6217    }
6218    }
6219  }
6220  ldv_20974: ;
6221  ldv_20979: 
6222  {
6223#line 791
6224  tmp___1 = __VERIFIER_nondet_int();
6225  }
6226#line 791
6227  if (tmp___1 != 0) {
6228#line 793
6229    goto ldv_20978;
6230  } else
6231#line 791
6232  if (ldv_s_w8001_drv_serio_driver != 0) {
6233#line 793
6234    goto ldv_20978;
6235  } else {
6236#line 795
6237    goto ldv_20980;
6238  }
6239  ldv_20980: ;
6240  ldv_module_exit: 
6241  {
6242#line 944
6243  w8001_exit();
6244  }
6245  ldv_final: 
6246  {
6247#line 947
6248  ldv_check_final_state();
6249  }
6250#line 950
6251  return;
6252}
6253}
6254#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
6255void ldv_blast_assert(void) 
6256{ 
6257
6258  {
6259  ERROR: ;
6260#line 6
6261  goto ERROR;
6262}
6263}
6264#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
6265extern int __VERIFIER_nondet_int(void) ;
6266#line 971 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6267int ldv_spin  =    0;
6268#line 975 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6269void ldv_check_alloc_flags(gfp_t flags ) 
6270{ 
6271
6272  {
6273#line 978
6274  if (ldv_spin != 0) {
6275#line 978
6276    if (flags != 32U) {
6277      {
6278#line 978
6279      ldv_blast_assert();
6280      }
6281    } else {
6282
6283    }
6284  } else {
6285
6286  }
6287#line 981
6288  return;
6289}
6290}
6291#line 981
6292extern struct page *ldv_some_page(void) ;
6293#line 984 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6294struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
6295{ struct page *tmp ;
6296
6297  {
6298#line 987
6299  if (ldv_spin != 0) {
6300#line 987
6301    if (flags != 32U) {
6302      {
6303#line 987
6304      ldv_blast_assert();
6305      }
6306    } else {
6307
6308    }
6309  } else {
6310
6311  }
6312  {
6313#line 989
6314  tmp = ldv_some_page();
6315  }
6316#line 989
6317  return (tmp);
6318}
6319}
6320#line 993 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6321void ldv_check_alloc_nonatomic(void) 
6322{ 
6323
6324  {
6325#line 996
6326  if (ldv_spin != 0) {
6327    {
6328#line 996
6329    ldv_blast_assert();
6330    }
6331  } else {
6332
6333  }
6334#line 999
6335  return;
6336}
6337}
6338#line 1000 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6339void ldv_spin_lock(void) 
6340{ 
6341
6342  {
6343#line 1003
6344  ldv_spin = 1;
6345#line 1004
6346  return;
6347}
6348}
6349#line 1007 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6350void ldv_spin_unlock(void) 
6351{ 
6352
6353  {
6354#line 1010
6355  ldv_spin = 0;
6356#line 1011
6357  return;
6358}
6359}
6360#line 1014 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6361int ldv_spin_trylock(void) 
6362{ int is_lock ;
6363
6364  {
6365  {
6366#line 1019
6367  is_lock = __VERIFIER_nondet_int();
6368  }
6369#line 1021
6370  if (is_lock != 0) {
6371#line 1024
6372    return (0);
6373  } else {
6374#line 1029
6375    ldv_spin = 1;
6376#line 1031
6377    return (1);
6378  }
6379}
6380}
6381#line 1198 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6382void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
6383{ 
6384
6385  {
6386  {
6387#line 1204
6388  ldv_check_alloc_flags(ldv_func_arg2);
6389#line 1206
6390  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
6391  }
6392#line 1207
6393  return ((void *)0);
6394}
6395}
6396#line 1209 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3129/dscv_tempdir/dscv/ri/43_1a/drivers/input/touchscreen/wacom_w8001.c.p"
6397__inline static void *kzalloc(size_t size , gfp_t flags ) 
6398{ void *tmp ;
6399
6400  {
6401  {
6402#line 1215
6403  ldv_check_alloc_flags(flags);
6404#line 1216
6405  tmp = __VERIFIER_nondet_pointer();
6406  }
6407#line 1216
6408  return (tmp);
6409}
6410}