Showing error 841

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--misc--ab8500-ponkey.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 2806
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 206 "include/linux/types.h"
  77typedef u64 phys_addr_t;
  78#line 211 "include/linux/types.h"
  79typedef phys_addr_t resource_size_t;
  80#line 221 "include/linux/types.h"
  81struct __anonstruct_atomic_t_6 {
  82   int counter ;
  83};
  84#line 221 "include/linux/types.h"
  85typedef struct __anonstruct_atomic_t_6 atomic_t;
  86#line 226 "include/linux/types.h"
  87struct __anonstruct_atomic64_t_7 {
  88   long counter ;
  89};
  90#line 226 "include/linux/types.h"
  91typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  92#line 227 "include/linux/types.h"
  93struct list_head {
  94   struct list_head *next ;
  95   struct list_head *prev ;
  96};
  97#line 232
  98struct hlist_node;
  99#line 232 "include/linux/types.h"
 100struct hlist_head {
 101   struct hlist_node *first ;
 102};
 103#line 236 "include/linux/types.h"
 104struct hlist_node {
 105   struct hlist_node *next ;
 106   struct hlist_node **pprev ;
 107};
 108#line 247 "include/linux/types.h"
 109struct rcu_head {
 110   struct rcu_head *next ;
 111   void (*func)(struct rcu_head * ) ;
 112};
 113#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
 114struct module;
 115#line 55
 116struct module;
 117#line 146 "include/linux/init.h"
 118typedef void (*ctor_fn_t)(void);
 119#line 46 "include/linux/dynamic_debug.h"
 120struct device;
 121#line 46
 122struct device;
 123#line 57
 124struct completion;
 125#line 57
 126struct completion;
 127#line 348 "include/linux/kernel.h"
 128struct pid;
 129#line 348
 130struct pid;
 131#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
 132struct timespec;
 133#line 112
 134struct timespec;
 135#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
 136struct page;
 137#line 58
 138struct page;
 139#line 26 "include/asm-generic/getorder.h"
 140struct task_struct;
 141#line 26
 142struct task_struct;
 143#line 290 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 144struct file;
 145#line 290
 146struct file;
 147#line 305
 148struct seq_file;
 149#line 305
 150struct seq_file;
 151#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 152struct arch_spinlock;
 153#line 327
 154struct arch_spinlock;
 155#line 306 "include/linux/bitmap.h"
 156struct bug_entry {
 157   int bug_addr_disp ;
 158   int file_disp ;
 159   unsigned short line ;
 160   unsigned short flags ;
 161};
 162#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 163struct static_key;
 164#line 234
 165struct static_key;
 166#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 167struct kmem_cache;
 168#line 23 "include/asm-generic/atomic-long.h"
 169typedef atomic64_t atomic_long_t;
 170#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 171typedef u16 __ticket_t;
 172#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 173typedef u32 __ticketpair_t;
 174#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 175struct __raw_tickets {
 176   __ticket_t head ;
 177   __ticket_t tail ;
 178};
 179#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 180union __anonunion_ldv_5907_29 {
 181   __ticketpair_t head_tail ;
 182   struct __raw_tickets tickets ;
 183};
 184#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 185struct arch_spinlock {
 186   union __anonunion_ldv_5907_29 ldv_5907 ;
 187};
 188#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 189typedef struct arch_spinlock arch_spinlock_t;
 190#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 191struct __anonstruct_ldv_5914_31 {
 192   u32 read ;
 193   s32 write ;
 194};
 195#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 196union __anonunion_arch_rwlock_t_30 {
 197   s64 lock ;
 198   struct __anonstruct_ldv_5914_31 ldv_5914 ;
 199};
 200#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 201typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
 202#line 34
 203struct lockdep_map;
 204#line 34
 205struct lockdep_map;
 206#line 55 "include/linux/debug_locks.h"
 207struct stack_trace {
 208   unsigned int nr_entries ;
 209   unsigned int max_entries ;
 210   unsigned long *entries ;
 211   int skip ;
 212};
 213#line 26 "include/linux/stacktrace.h"
 214struct lockdep_subclass_key {
 215   char __one_byte ;
 216};
 217#line 53 "include/linux/lockdep.h"
 218struct lock_class_key {
 219   struct lockdep_subclass_key subkeys[8U] ;
 220};
 221#line 59 "include/linux/lockdep.h"
 222struct lock_class {
 223   struct list_head hash_entry ;
 224   struct list_head lock_entry ;
 225   struct lockdep_subclass_key *key ;
 226   unsigned int subclass ;
 227   unsigned int dep_gen_id ;
 228   unsigned long usage_mask ;
 229   struct stack_trace usage_traces[13U] ;
 230   struct list_head locks_after ;
 231   struct list_head locks_before ;
 232   unsigned int version ;
 233   unsigned long ops ;
 234   char const   *name ;
 235   int name_version ;
 236   unsigned long contention_point[4U] ;
 237   unsigned long contending_point[4U] ;
 238};
 239#line 144 "include/linux/lockdep.h"
 240struct lockdep_map {
 241   struct lock_class_key *key ;
 242   struct lock_class *class_cache[2U] ;
 243   char const   *name ;
 244   int cpu ;
 245   unsigned long ip ;
 246};
 247#line 556 "include/linux/lockdep.h"
 248struct raw_spinlock {
 249   arch_spinlock_t raw_lock ;
 250   unsigned int magic ;
 251   unsigned int owner_cpu ;
 252   void *owner ;
 253   struct lockdep_map dep_map ;
 254};
 255#line 32 "include/linux/spinlock_types.h"
 256typedef struct raw_spinlock raw_spinlock_t;
 257#line 33 "include/linux/spinlock_types.h"
 258struct __anonstruct_ldv_6122_33 {
 259   u8 __padding[24U] ;
 260   struct lockdep_map dep_map ;
 261};
 262#line 33 "include/linux/spinlock_types.h"
 263union __anonunion_ldv_6123_32 {
 264   struct raw_spinlock rlock ;
 265   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 266};
 267#line 33 "include/linux/spinlock_types.h"
 268struct spinlock {
 269   union __anonunion_ldv_6123_32 ldv_6123 ;
 270};
 271#line 76 "include/linux/spinlock_types.h"
 272typedef struct spinlock spinlock_t;
 273#line 23 "include/linux/rwlock_types.h"
 274struct __anonstruct_rwlock_t_34 {
 275   arch_rwlock_t raw_lock ;
 276   unsigned int magic ;
 277   unsigned int owner_cpu ;
 278   void *owner ;
 279   struct lockdep_map dep_map ;
 280};
 281#line 23 "include/linux/rwlock_types.h"
 282typedef struct __anonstruct_rwlock_t_34 rwlock_t;
 283#line 110 "include/linux/seqlock.h"
 284struct seqcount {
 285   unsigned int sequence ;
 286};
 287#line 121 "include/linux/seqlock.h"
 288typedef struct seqcount seqcount_t;
 289#line 254 "include/linux/seqlock.h"
 290struct timespec {
 291   __kernel_time_t tv_sec ;
 292   long tv_nsec ;
 293};
 294#line 286 "include/linux/time.h"
 295struct kstat {
 296   u64 ino ;
 297   dev_t dev ;
 298   umode_t mode ;
 299   unsigned int nlink ;
 300   uid_t uid ;
 301   gid_t gid ;
 302   dev_t rdev ;
 303   loff_t size ;
 304   struct timespec atime ;
 305   struct timespec mtime ;
 306   struct timespec ctime ;
 307   unsigned long blksize ;
 308   unsigned long long blocks ;
 309};
 310#line 48 "include/linux/wait.h"
 311struct __wait_queue_head {
 312   spinlock_t lock ;
 313   struct list_head task_list ;
 314};
 315#line 53 "include/linux/wait.h"
 316typedef struct __wait_queue_head wait_queue_head_t;
 317#line 670 "include/linux/mmzone.h"
 318struct mutex {
 319   atomic_t count ;
 320   spinlock_t wait_lock ;
 321   struct list_head wait_list ;
 322   struct task_struct *owner ;
 323   char const   *name ;
 324   void *magic ;
 325   struct lockdep_map dep_map ;
 326};
 327#line 171 "include/linux/mutex.h"
 328struct rw_semaphore;
 329#line 171
 330struct rw_semaphore;
 331#line 172 "include/linux/mutex.h"
 332struct rw_semaphore {
 333   long count ;
 334   raw_spinlock_t wait_lock ;
 335   struct list_head wait_list ;
 336   struct lockdep_map dep_map ;
 337};
 338#line 128 "include/linux/rwsem.h"
 339struct completion {
 340   unsigned int done ;
 341   wait_queue_head_t wait ;
 342};
 343#line 139 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/e820.h"
 344struct resource {
 345   resource_size_t start ;
 346   resource_size_t end ;
 347   char const   *name ;
 348   unsigned long flags ;
 349   struct resource *parent ;
 350   struct resource *sibling ;
 351   struct resource *child ;
 352};
 353#line 312 "include/linux/jiffies.h"
 354union ktime {
 355   s64 tv64 ;
 356};
 357#line 59 "include/linux/ktime.h"
 358typedef union ktime ktime_t;
 359#line 341
 360struct tvec_base;
 361#line 341
 362struct tvec_base;
 363#line 342 "include/linux/ktime.h"
 364struct timer_list {
 365   struct list_head entry ;
 366   unsigned long expires ;
 367   struct tvec_base *base ;
 368   void (*function)(unsigned long  ) ;
 369   unsigned long data ;
 370   int slack ;
 371   int start_pid ;
 372   void *start_site ;
 373   char start_comm[16U] ;
 374   struct lockdep_map lockdep_map ;
 375};
 376#line 302 "include/linux/timer.h"
 377struct work_struct;
 378#line 302
 379struct work_struct;
 380#line 45 "include/linux/workqueue.h"
 381struct work_struct {
 382   atomic_long_t data ;
 383   struct list_head entry ;
 384   void (*func)(struct work_struct * ) ;
 385   struct lockdep_map lockdep_map ;
 386};
 387#line 46 "include/linux/pm.h"
 388struct pm_message {
 389   int event ;
 390};
 391#line 52 "include/linux/pm.h"
 392typedef struct pm_message pm_message_t;
 393#line 53 "include/linux/pm.h"
 394struct dev_pm_ops {
 395   int (*prepare)(struct device * ) ;
 396   void (*complete)(struct device * ) ;
 397   int (*suspend)(struct device * ) ;
 398   int (*resume)(struct device * ) ;
 399   int (*freeze)(struct device * ) ;
 400   int (*thaw)(struct device * ) ;
 401   int (*poweroff)(struct device * ) ;
 402   int (*restore)(struct device * ) ;
 403   int (*suspend_late)(struct device * ) ;
 404   int (*resume_early)(struct device * ) ;
 405   int (*freeze_late)(struct device * ) ;
 406   int (*thaw_early)(struct device * ) ;
 407   int (*poweroff_late)(struct device * ) ;
 408   int (*restore_early)(struct device * ) ;
 409   int (*suspend_noirq)(struct device * ) ;
 410   int (*resume_noirq)(struct device * ) ;
 411   int (*freeze_noirq)(struct device * ) ;
 412   int (*thaw_noirq)(struct device * ) ;
 413   int (*poweroff_noirq)(struct device * ) ;
 414   int (*restore_noirq)(struct device * ) ;
 415   int (*runtime_suspend)(struct device * ) ;
 416   int (*runtime_resume)(struct device * ) ;
 417   int (*runtime_idle)(struct device * ) ;
 418};
 419#line 289
 420enum rpm_status {
 421    RPM_ACTIVE = 0,
 422    RPM_RESUMING = 1,
 423    RPM_SUSPENDED = 2,
 424    RPM_SUSPENDING = 3
 425} ;
 426#line 296
 427enum rpm_request {
 428    RPM_REQ_NONE = 0,
 429    RPM_REQ_IDLE = 1,
 430    RPM_REQ_SUSPEND = 2,
 431    RPM_REQ_AUTOSUSPEND = 3,
 432    RPM_REQ_RESUME = 4
 433} ;
 434#line 304
 435struct wakeup_source;
 436#line 304
 437struct wakeup_source;
 438#line 494 "include/linux/pm.h"
 439struct pm_subsys_data {
 440   spinlock_t lock ;
 441   unsigned int refcount ;
 442};
 443#line 499
 444struct dev_pm_qos_request;
 445#line 499
 446struct pm_qos_constraints;
 447#line 499 "include/linux/pm.h"
 448struct dev_pm_info {
 449   pm_message_t power_state ;
 450   unsigned char can_wakeup : 1 ;
 451   unsigned char async_suspend : 1 ;
 452   bool is_prepared ;
 453   bool is_suspended ;
 454   bool ignore_children ;
 455   spinlock_t lock ;
 456   struct list_head entry ;
 457   struct completion completion ;
 458   struct wakeup_source *wakeup ;
 459   bool wakeup_path ;
 460   struct timer_list suspend_timer ;
 461   unsigned long timer_expires ;
 462   struct work_struct work ;
 463   wait_queue_head_t wait_queue ;
 464   atomic_t usage_count ;
 465   atomic_t child_count ;
 466   unsigned char disable_depth : 3 ;
 467   unsigned char idle_notification : 1 ;
 468   unsigned char request_pending : 1 ;
 469   unsigned char deferred_resume : 1 ;
 470   unsigned char run_wake : 1 ;
 471   unsigned char runtime_auto : 1 ;
 472   unsigned char no_callbacks : 1 ;
 473   unsigned char irq_safe : 1 ;
 474   unsigned char use_autosuspend : 1 ;
 475   unsigned char timer_autosuspends : 1 ;
 476   enum rpm_request request ;
 477   enum rpm_status runtime_status ;
 478   int runtime_error ;
 479   int autosuspend_delay ;
 480   unsigned long last_busy ;
 481   unsigned long active_jiffies ;
 482   unsigned long suspended_jiffies ;
 483   unsigned long accounting_timestamp ;
 484   ktime_t suspend_time ;
 485   s64 max_time_suspended_ns ;
 486   struct dev_pm_qos_request *pq_req ;
 487   struct pm_subsys_data *subsys_data ;
 488   struct pm_qos_constraints *constraints ;
 489};
 490#line 558 "include/linux/pm.h"
 491struct dev_pm_domain {
 492   struct dev_pm_ops ops ;
 493};
 494#line 18 "include/asm-generic/pci_iomap.h"
 495struct vm_area_struct;
 496#line 18
 497struct vm_area_struct;
 498#line 37 "include/linux/kmod.h"
 499struct cred;
 500#line 37
 501struct cred;
 502#line 18 "include/linux/elf.h"
 503typedef __u64 Elf64_Addr;
 504#line 19 "include/linux/elf.h"
 505typedef __u16 Elf64_Half;
 506#line 23 "include/linux/elf.h"
 507typedef __u32 Elf64_Word;
 508#line 24 "include/linux/elf.h"
 509typedef __u64 Elf64_Xword;
 510#line 193 "include/linux/elf.h"
 511struct elf64_sym {
 512   Elf64_Word st_name ;
 513   unsigned char st_info ;
 514   unsigned char st_other ;
 515   Elf64_Half st_shndx ;
 516   Elf64_Addr st_value ;
 517   Elf64_Xword st_size ;
 518};
 519#line 201 "include/linux/elf.h"
 520typedef struct elf64_sym Elf64_Sym;
 521#line 445
 522struct sock;
 523#line 445
 524struct sock;
 525#line 446
 526struct kobject;
 527#line 446
 528struct kobject;
 529#line 447
 530enum kobj_ns_type {
 531    KOBJ_NS_TYPE_NONE = 0,
 532    KOBJ_NS_TYPE_NET = 1,
 533    KOBJ_NS_TYPES = 2
 534} ;
 535#line 453 "include/linux/elf.h"
 536struct kobj_ns_type_operations {
 537   enum kobj_ns_type type ;
 538   void *(*grab_current_ns)(void) ;
 539   void const   *(*netlink_ns)(struct sock * ) ;
 540   void const   *(*initial_ns)(void) ;
 541   void (*drop_ns)(void * ) ;
 542};
 543#line 57 "include/linux/kobject_ns.h"
 544struct attribute {
 545   char const   *name ;
 546   umode_t mode ;
 547   struct lock_class_key *key ;
 548   struct lock_class_key skey ;
 549};
 550#line 33 "include/linux/sysfs.h"
 551struct attribute_group {
 552   char const   *name ;
 553   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 554   struct attribute **attrs ;
 555};
 556#line 62 "include/linux/sysfs.h"
 557struct bin_attribute {
 558   struct attribute attr ;
 559   size_t size ;
 560   void *private ;
 561   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 562                   loff_t  , size_t  ) ;
 563   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 564                    loff_t  , size_t  ) ;
 565   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 566};
 567#line 98 "include/linux/sysfs.h"
 568struct sysfs_ops {
 569   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 570   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 571   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 572};
 573#line 117
 574struct sysfs_dirent;
 575#line 117
 576struct sysfs_dirent;
 577#line 182 "include/linux/sysfs.h"
 578struct kref {
 579   atomic_t refcount ;
 580};
 581#line 49 "include/linux/kobject.h"
 582struct kset;
 583#line 49
 584struct kobj_type;
 585#line 49 "include/linux/kobject.h"
 586struct kobject {
 587   char const   *name ;
 588   struct list_head entry ;
 589   struct kobject *parent ;
 590   struct kset *kset ;
 591   struct kobj_type *ktype ;
 592   struct sysfs_dirent *sd ;
 593   struct kref kref ;
 594   unsigned char state_initialized : 1 ;
 595   unsigned char state_in_sysfs : 1 ;
 596   unsigned char state_add_uevent_sent : 1 ;
 597   unsigned char state_remove_uevent_sent : 1 ;
 598   unsigned char uevent_suppress : 1 ;
 599};
 600#line 107 "include/linux/kobject.h"
 601struct kobj_type {
 602   void (*release)(struct kobject * ) ;
 603   struct sysfs_ops  const  *sysfs_ops ;
 604   struct attribute **default_attrs ;
 605   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 606   void const   *(*namespace)(struct kobject * ) ;
 607};
 608#line 115 "include/linux/kobject.h"
 609struct kobj_uevent_env {
 610   char *envp[32U] ;
 611   int envp_idx ;
 612   char buf[2048U] ;
 613   int buflen ;
 614};
 615#line 122 "include/linux/kobject.h"
 616struct kset_uevent_ops {
 617   int (* const  filter)(struct kset * , struct kobject * ) ;
 618   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 619   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 620};
 621#line 139 "include/linux/kobject.h"
 622struct kset {
 623   struct list_head list ;
 624   spinlock_t list_lock ;
 625   struct kobject kobj ;
 626   struct kset_uevent_ops  const  *uevent_ops ;
 627};
 628#line 215
 629struct kernel_param;
 630#line 215
 631struct kernel_param;
 632#line 216 "include/linux/kobject.h"
 633struct kernel_param_ops {
 634   int (*set)(char const   * , struct kernel_param  const  * ) ;
 635   int (*get)(char * , struct kernel_param  const  * ) ;
 636   void (*free)(void * ) ;
 637};
 638#line 49 "include/linux/moduleparam.h"
 639struct kparam_string;
 640#line 49
 641struct kparam_array;
 642#line 49 "include/linux/moduleparam.h"
 643union __anonunion_ldv_13363_134 {
 644   void *arg ;
 645   struct kparam_string  const  *str ;
 646   struct kparam_array  const  *arr ;
 647};
 648#line 49 "include/linux/moduleparam.h"
 649struct kernel_param {
 650   char const   *name ;
 651   struct kernel_param_ops  const  *ops ;
 652   u16 perm ;
 653   s16 level ;
 654   union __anonunion_ldv_13363_134 ldv_13363 ;
 655};
 656#line 61 "include/linux/moduleparam.h"
 657struct kparam_string {
 658   unsigned int maxlen ;
 659   char *string ;
 660};
 661#line 67 "include/linux/moduleparam.h"
 662struct kparam_array {
 663   unsigned int max ;
 664   unsigned int elemsize ;
 665   unsigned int *num ;
 666   struct kernel_param_ops  const  *ops ;
 667   void *elem ;
 668};
 669#line 458 "include/linux/moduleparam.h"
 670struct static_key {
 671   atomic_t enabled ;
 672};
 673#line 225 "include/linux/jump_label.h"
 674struct tracepoint;
 675#line 225
 676struct tracepoint;
 677#line 226 "include/linux/jump_label.h"
 678struct tracepoint_func {
 679   void *func ;
 680   void *data ;
 681};
 682#line 29 "include/linux/tracepoint.h"
 683struct tracepoint {
 684   char const   *name ;
 685   struct static_key key ;
 686   void (*regfunc)(void) ;
 687   void (*unregfunc)(void) ;
 688   struct tracepoint_func *funcs ;
 689};
 690#line 86 "include/linux/tracepoint.h"
 691struct kernel_symbol {
 692   unsigned long value ;
 693   char const   *name ;
 694};
 695#line 27 "include/linux/export.h"
 696struct mod_arch_specific {
 697
 698};
 699#line 34 "include/linux/module.h"
 700struct module_param_attrs;
 701#line 34 "include/linux/module.h"
 702struct module_kobject {
 703   struct kobject kobj ;
 704   struct module *mod ;
 705   struct kobject *drivers_dir ;
 706   struct module_param_attrs *mp ;
 707};
 708#line 43 "include/linux/module.h"
 709struct module_attribute {
 710   struct attribute attr ;
 711   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 712   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 713                    size_t  ) ;
 714   void (*setup)(struct module * , char const   * ) ;
 715   int (*test)(struct module * ) ;
 716   void (*free)(struct module * ) ;
 717};
 718#line 69
 719struct exception_table_entry;
 720#line 69
 721struct exception_table_entry;
 722#line 198
 723enum module_state {
 724    MODULE_STATE_LIVE = 0,
 725    MODULE_STATE_COMING = 1,
 726    MODULE_STATE_GOING = 2
 727} ;
 728#line 204 "include/linux/module.h"
 729struct module_ref {
 730   unsigned long incs ;
 731   unsigned long decs ;
 732};
 733#line 219
 734struct module_sect_attrs;
 735#line 219
 736struct module_notes_attrs;
 737#line 219
 738struct ftrace_event_call;
 739#line 219 "include/linux/module.h"
 740struct module {
 741   enum module_state state ;
 742   struct list_head list ;
 743   char name[56U] ;
 744   struct module_kobject mkobj ;
 745   struct module_attribute *modinfo_attrs ;
 746   char const   *version ;
 747   char const   *srcversion ;
 748   struct kobject *holders_dir ;
 749   struct kernel_symbol  const  *syms ;
 750   unsigned long const   *crcs ;
 751   unsigned int num_syms ;
 752   struct kernel_param *kp ;
 753   unsigned int num_kp ;
 754   unsigned int num_gpl_syms ;
 755   struct kernel_symbol  const  *gpl_syms ;
 756   unsigned long const   *gpl_crcs ;
 757   struct kernel_symbol  const  *unused_syms ;
 758   unsigned long const   *unused_crcs ;
 759   unsigned int num_unused_syms ;
 760   unsigned int num_unused_gpl_syms ;
 761   struct kernel_symbol  const  *unused_gpl_syms ;
 762   unsigned long const   *unused_gpl_crcs ;
 763   struct kernel_symbol  const  *gpl_future_syms ;
 764   unsigned long const   *gpl_future_crcs ;
 765   unsigned int num_gpl_future_syms ;
 766   unsigned int num_exentries ;
 767   struct exception_table_entry *extable ;
 768   int (*init)(void) ;
 769   void *module_init ;
 770   void *module_core ;
 771   unsigned int init_size ;
 772   unsigned int core_size ;
 773   unsigned int init_text_size ;
 774   unsigned int core_text_size ;
 775   unsigned int init_ro_size ;
 776   unsigned int core_ro_size ;
 777   struct mod_arch_specific arch ;
 778   unsigned int taints ;
 779   unsigned int num_bugs ;
 780   struct list_head bug_list ;
 781   struct bug_entry *bug_table ;
 782   Elf64_Sym *symtab ;
 783   Elf64_Sym *core_symtab ;
 784   unsigned int num_symtab ;
 785   unsigned int core_num_syms ;
 786   char *strtab ;
 787   char *core_strtab ;
 788   struct module_sect_attrs *sect_attrs ;
 789   struct module_notes_attrs *notes_attrs ;
 790   char *args ;
 791   void *percpu ;
 792   unsigned int percpu_size ;
 793   unsigned int num_tracepoints ;
 794   struct tracepoint * const  *tracepoints_ptrs ;
 795   unsigned int num_trace_bprintk_fmt ;
 796   char const   **trace_bprintk_fmt_start ;
 797   struct ftrace_event_call **trace_events ;
 798   unsigned int num_trace_events ;
 799   struct list_head source_list ;
 800   struct list_head target_list ;
 801   struct task_struct *waiter ;
 802   void (*exit)(void) ;
 803   struct module_ref *refptr ;
 804   ctor_fn_t (**ctors)(void) ;
 805   unsigned int num_ctors ;
 806};
 807#line 88 "include/linux/kmemleak.h"
 808struct kmem_cache_cpu {
 809   void **freelist ;
 810   unsigned long tid ;
 811   struct page *page ;
 812   struct page *partial ;
 813   int node ;
 814   unsigned int stat[26U] ;
 815};
 816#line 55 "include/linux/slub_def.h"
 817struct kmem_cache_node {
 818   spinlock_t list_lock ;
 819   unsigned long nr_partial ;
 820   struct list_head partial ;
 821   atomic_long_t nr_slabs ;
 822   atomic_long_t total_objects ;
 823   struct list_head full ;
 824};
 825#line 66 "include/linux/slub_def.h"
 826struct kmem_cache_order_objects {
 827   unsigned long x ;
 828};
 829#line 76 "include/linux/slub_def.h"
 830struct kmem_cache {
 831   struct kmem_cache_cpu *cpu_slab ;
 832   unsigned long flags ;
 833   unsigned long min_partial ;
 834   int size ;
 835   int objsize ;
 836   int offset ;
 837   int cpu_partial ;
 838   struct kmem_cache_order_objects oo ;
 839   struct kmem_cache_order_objects max ;
 840   struct kmem_cache_order_objects min ;
 841   gfp_t allocflags ;
 842   int refcount ;
 843   void (*ctor)(void * ) ;
 844   int inuse ;
 845   int align ;
 846   int reserved ;
 847   char const   *name ;
 848   struct list_head list ;
 849   struct kobject kobj ;
 850   int remote_node_defrag_ratio ;
 851   struct kmem_cache_node *node[1024U] ;
 852};
 853#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
 854struct klist_node;
 855#line 15
 856struct klist_node;
 857#line 37 "include/linux/klist.h"
 858struct klist_node {
 859   void *n_klist ;
 860   struct list_head n_node ;
 861   struct kref n_ref ;
 862};
 863#line 67
 864struct dma_map_ops;
 865#line 67 "include/linux/klist.h"
 866struct dev_archdata {
 867   void *acpi_handle ;
 868   struct dma_map_ops *dma_ops ;
 869   void *iommu ;
 870};
 871#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 872struct pdev_archdata {
 873
 874};
 875#line 17
 876struct device_private;
 877#line 17
 878struct device_private;
 879#line 18
 880struct device_driver;
 881#line 18
 882struct device_driver;
 883#line 19
 884struct driver_private;
 885#line 19
 886struct driver_private;
 887#line 20
 888struct class;
 889#line 20
 890struct class;
 891#line 21
 892struct subsys_private;
 893#line 21
 894struct subsys_private;
 895#line 22
 896struct bus_type;
 897#line 22
 898struct bus_type;
 899#line 23
 900struct device_node;
 901#line 23
 902struct device_node;
 903#line 24
 904struct iommu_ops;
 905#line 24
 906struct iommu_ops;
 907#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 908struct bus_attribute {
 909   struct attribute attr ;
 910   ssize_t (*show)(struct bus_type * , char * ) ;
 911   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
 912};
 913#line 51 "include/linux/device.h"
 914struct device_attribute;
 915#line 51
 916struct driver_attribute;
 917#line 51 "include/linux/device.h"
 918struct bus_type {
 919   char const   *name ;
 920   char const   *dev_name ;
 921   struct device *dev_root ;
 922   struct bus_attribute *bus_attrs ;
 923   struct device_attribute *dev_attrs ;
 924   struct driver_attribute *drv_attrs ;
 925   int (*match)(struct device * , struct device_driver * ) ;
 926   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 927   int (*probe)(struct device * ) ;
 928   int (*remove)(struct device * ) ;
 929   void (*shutdown)(struct device * ) ;
 930   int (*suspend)(struct device * , pm_message_t  ) ;
 931   int (*resume)(struct device * ) ;
 932   struct dev_pm_ops  const  *pm ;
 933   struct iommu_ops *iommu_ops ;
 934   struct subsys_private *p ;
 935};
 936#line 125
 937struct device_type;
 938#line 182
 939struct of_device_id;
 940#line 182 "include/linux/device.h"
 941struct device_driver {
 942   char const   *name ;
 943   struct bus_type *bus ;
 944   struct module *owner ;
 945   char const   *mod_name ;
 946   bool suppress_bind_attrs ;
 947   struct of_device_id  const  *of_match_table ;
 948   int (*probe)(struct device * ) ;
 949   int (*remove)(struct device * ) ;
 950   void (*shutdown)(struct device * ) ;
 951   int (*suspend)(struct device * , pm_message_t  ) ;
 952   int (*resume)(struct device * ) ;
 953   struct attribute_group  const  **groups ;
 954   struct dev_pm_ops  const  *pm ;
 955   struct driver_private *p ;
 956};
 957#line 245 "include/linux/device.h"
 958struct driver_attribute {
 959   struct attribute attr ;
 960   ssize_t (*show)(struct device_driver * , char * ) ;
 961   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
 962};
 963#line 299
 964struct class_attribute;
 965#line 299 "include/linux/device.h"
 966struct class {
 967   char const   *name ;
 968   struct module *owner ;
 969   struct class_attribute *class_attrs ;
 970   struct device_attribute *dev_attrs ;
 971   struct bin_attribute *dev_bin_attrs ;
 972   struct kobject *dev_kobj ;
 973   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
 974   char *(*devnode)(struct device * , umode_t * ) ;
 975   void (*class_release)(struct class * ) ;
 976   void (*dev_release)(struct device * ) ;
 977   int (*suspend)(struct device * , pm_message_t  ) ;
 978   int (*resume)(struct device * ) ;
 979   struct kobj_ns_type_operations  const  *ns_type ;
 980   void const   *(*namespace)(struct device * ) ;
 981   struct dev_pm_ops  const  *pm ;
 982   struct subsys_private *p ;
 983};
 984#line 394 "include/linux/device.h"
 985struct class_attribute {
 986   struct attribute attr ;
 987   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
 988   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
 989   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
 990};
 991#line 447 "include/linux/device.h"
 992struct device_type {
 993   char const   *name ;
 994   struct attribute_group  const  **groups ;
 995   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 996   char *(*devnode)(struct device * , umode_t * ) ;
 997   void (*release)(struct device * ) ;
 998   struct dev_pm_ops  const  *pm ;
 999};
1000#line 474 "include/linux/device.h"
1001struct device_attribute {
1002   struct attribute attr ;
1003   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1004   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
1005                    size_t  ) ;
1006};
1007#line 557 "include/linux/device.h"
1008struct device_dma_parameters {
1009   unsigned int max_segment_size ;
1010   unsigned long segment_boundary_mask ;
1011};
1012#line 567
1013struct dma_coherent_mem;
1014#line 567 "include/linux/device.h"
1015struct device {
1016   struct device *parent ;
1017   struct device_private *p ;
1018   struct kobject kobj ;
1019   char const   *init_name ;
1020   struct device_type  const  *type ;
1021   struct mutex mutex ;
1022   struct bus_type *bus ;
1023   struct device_driver *driver ;
1024   void *platform_data ;
1025   struct dev_pm_info power ;
1026   struct dev_pm_domain *pm_domain ;
1027   int numa_node ;
1028   u64 *dma_mask ;
1029   u64 coherent_dma_mask ;
1030   struct device_dma_parameters *dma_parms ;
1031   struct list_head dma_pools ;
1032   struct dma_coherent_mem *dma_mem ;
1033   struct dev_archdata archdata ;
1034   struct device_node *of_node ;
1035   dev_t devt ;
1036   u32 id ;
1037   spinlock_t devres_lock ;
1038   struct list_head devres_head ;
1039   struct klist_node knode_class ;
1040   struct class *class ;
1041   struct attribute_group  const  **groups ;
1042   void (*release)(struct device * ) ;
1043};
1044#line 681 "include/linux/device.h"
1045struct wakeup_source {
1046   char const   *name ;
1047   struct list_head entry ;
1048   spinlock_t lock ;
1049   struct timer_list timer ;
1050   unsigned long timer_expires ;
1051   ktime_t total_time ;
1052   ktime_t max_time ;
1053   ktime_t last_time ;
1054   unsigned long event_count ;
1055   unsigned long active_count ;
1056   unsigned long relax_count ;
1057   unsigned long hit_count ;
1058   unsigned char active : 1 ;
1059};
1060#line 12 "include/linux/mod_devicetable.h"
1061typedef unsigned long kernel_ulong_t;
1062#line 215 "include/linux/mod_devicetable.h"
1063struct of_device_id {
1064   char name[32U] ;
1065   char type[32U] ;
1066   char compatible[128U] ;
1067   void *data ;
1068};
1069#line 269 "include/linux/mod_devicetable.h"
1070struct input_device_id {
1071   kernel_ulong_t flags ;
1072   __u16 bustype ;
1073   __u16 vendor ;
1074   __u16 product ;
1075   __u16 version ;
1076   kernel_ulong_t evbit[1U] ;
1077   kernel_ulong_t keybit[12U] ;
1078   kernel_ulong_t relbit[1U] ;
1079   kernel_ulong_t absbit[1U] ;
1080   kernel_ulong_t mscbit[1U] ;
1081   kernel_ulong_t ledbit[1U] ;
1082   kernel_ulong_t sndbit[1U] ;
1083   kernel_ulong_t ffbit[2U] ;
1084   kernel_ulong_t swbit[1U] ;
1085   kernel_ulong_t driver_info ;
1086};
1087#line 492 "include/linux/mod_devicetable.h"
1088struct platform_device_id {
1089   char name[20U] ;
1090   kernel_ulong_t driver_data ;
1091};
1092#line 584
1093struct mfd_cell;
1094#line 584
1095struct mfd_cell;
1096#line 585 "include/linux/mod_devicetable.h"
1097struct platform_device {
1098   char const   *name ;
1099   int id ;
1100   struct device dev ;
1101   u32 num_resources ;
1102   struct resource *resource ;
1103   struct platform_device_id  const  *id_entry ;
1104   struct mfd_cell *mfd_cell ;
1105   struct pdev_archdata archdata ;
1106};
1107#line 32 "include/linux/input.h"
1108struct input_id {
1109   __u16 bustype ;
1110   __u16 vendor ;
1111   __u16 product ;
1112   __u16 version ;
1113};
1114#line 49 "include/linux/input.h"
1115struct input_absinfo {
1116   __s32 value ;
1117   __s32 minimum ;
1118   __s32 maximum ;
1119   __s32 fuzz ;
1120   __s32 flat ;
1121   __s32 resolution ;
1122};
1123#line 77 "include/linux/input.h"
1124struct input_keymap_entry {
1125   __u8 flags ;
1126   __u8 len ;
1127   __u16 index ;
1128   __u32 keycode ;
1129   __u8 scancode[32U] ;
1130};
1131#line 101 "include/linux/input.h"
1132struct ff_replay {
1133   __u16 length ;
1134   __u16 delay ;
1135};
1136#line 961 "include/linux/input.h"
1137struct ff_trigger {
1138   __u16 button ;
1139   __u16 interval ;
1140};
1141#line 971 "include/linux/input.h"
1142struct ff_envelope {
1143   __u16 attack_length ;
1144   __u16 attack_level ;
1145   __u16 fade_length ;
1146   __u16 fade_level ;
1147};
1148#line 990 "include/linux/input.h"
1149struct ff_constant_effect {
1150   __s16 level ;
1151   struct ff_envelope envelope ;
1152};
1153#line 1000 "include/linux/input.h"
1154struct ff_ramp_effect {
1155   __s16 start_level ;
1156   __s16 end_level ;
1157   struct ff_envelope envelope ;
1158};
1159#line 1012 "include/linux/input.h"
1160struct ff_condition_effect {
1161   __u16 right_saturation ;
1162   __u16 left_saturation ;
1163   __s16 right_coeff ;
1164   __s16 left_coeff ;
1165   __u16 deadband ;
1166   __s16 center ;
1167};
1168#line 1033 "include/linux/input.h"
1169struct ff_periodic_effect {
1170   __u16 waveform ;
1171   __u16 period ;
1172   __s16 magnitude ;
1173   __s16 offset ;
1174   __u16 phase ;
1175   struct ff_envelope envelope ;
1176   __u32 custom_len ;
1177   __s16 *custom_data ;
1178};
1179#line 1064 "include/linux/input.h"
1180struct ff_rumble_effect {
1181   __u16 strong_magnitude ;
1182   __u16 weak_magnitude ;
1183};
1184#line 1077 "include/linux/input.h"
1185union __anonunion_u_136 {
1186   struct ff_constant_effect constant ;
1187   struct ff_ramp_effect ramp ;
1188   struct ff_periodic_effect periodic ;
1189   struct ff_condition_effect condition[2U] ;
1190   struct ff_rumble_effect rumble ;
1191};
1192#line 1077 "include/linux/input.h"
1193struct ff_effect {
1194   __u16 type ;
1195   __s16 id ;
1196   __u16 direction ;
1197   struct ff_trigger trigger ;
1198   struct ff_replay replay ;
1199   union __anonunion_u_136 u ;
1200};
1201#line 1119
1202struct block_device;
1203#line 1119
1204struct block_device;
1205#line 93 "include/linux/bit_spinlock.h"
1206struct hlist_bl_node;
1207#line 93 "include/linux/bit_spinlock.h"
1208struct hlist_bl_head {
1209   struct hlist_bl_node *first ;
1210};
1211#line 36 "include/linux/list_bl.h"
1212struct hlist_bl_node {
1213   struct hlist_bl_node *next ;
1214   struct hlist_bl_node **pprev ;
1215};
1216#line 114 "include/linux/rculist_bl.h"
1217struct nameidata;
1218#line 114
1219struct nameidata;
1220#line 115
1221struct path;
1222#line 115
1223struct path;
1224#line 116
1225struct vfsmount;
1226#line 116
1227struct vfsmount;
1228#line 117 "include/linux/rculist_bl.h"
1229struct qstr {
1230   unsigned int hash ;
1231   unsigned int len ;
1232   unsigned char const   *name ;
1233};
1234#line 72 "include/linux/dcache.h"
1235struct inode;
1236#line 72
1237struct dentry_operations;
1238#line 72
1239struct super_block;
1240#line 72 "include/linux/dcache.h"
1241union __anonunion_d_u_137 {
1242   struct list_head d_child ;
1243   struct rcu_head d_rcu ;
1244};
1245#line 72 "include/linux/dcache.h"
1246struct dentry {
1247   unsigned int d_flags ;
1248   seqcount_t d_seq ;
1249   struct hlist_bl_node d_hash ;
1250   struct dentry *d_parent ;
1251   struct qstr d_name ;
1252   struct inode *d_inode ;
1253   unsigned char d_iname[32U] ;
1254   unsigned int d_count ;
1255   spinlock_t d_lock ;
1256   struct dentry_operations  const  *d_op ;
1257   struct super_block *d_sb ;
1258   unsigned long d_time ;
1259   void *d_fsdata ;
1260   struct list_head d_lru ;
1261   union __anonunion_d_u_137 d_u ;
1262   struct list_head d_subdirs ;
1263   struct list_head d_alias ;
1264};
1265#line 123 "include/linux/dcache.h"
1266struct dentry_operations {
1267   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
1268   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
1269   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
1270                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
1271   int (*d_delete)(struct dentry  const  * ) ;
1272   void (*d_release)(struct dentry * ) ;
1273   void (*d_prune)(struct dentry * ) ;
1274   void (*d_iput)(struct dentry * , struct inode * ) ;
1275   char *(*d_dname)(struct dentry * , char * , int  ) ;
1276   struct vfsmount *(*d_automount)(struct path * ) ;
1277   int (*d_manage)(struct dentry * , bool  ) ;
1278};
1279#line 402 "include/linux/dcache.h"
1280struct path {
1281   struct vfsmount *mnt ;
1282   struct dentry *dentry ;
1283};
1284#line 58 "include/linux/radix-tree.h"
1285struct radix_tree_node;
1286#line 58 "include/linux/radix-tree.h"
1287struct radix_tree_root {
1288   unsigned int height ;
1289   gfp_t gfp_mask ;
1290   struct radix_tree_node *rnode ;
1291};
1292#line 377
1293struct prio_tree_node;
1294#line 19 "include/linux/prio_tree.h"
1295struct prio_tree_node {
1296   struct prio_tree_node *left ;
1297   struct prio_tree_node *right ;
1298   struct prio_tree_node *parent ;
1299   unsigned long start ;
1300   unsigned long last ;
1301};
1302#line 27 "include/linux/prio_tree.h"
1303struct prio_tree_root {
1304   struct prio_tree_node *prio_tree_node ;
1305   unsigned short index_bits ;
1306   unsigned short raw ;
1307};
1308#line 111
1309enum pid_type {
1310    PIDTYPE_PID = 0,
1311    PIDTYPE_PGID = 1,
1312    PIDTYPE_SID = 2,
1313    PIDTYPE_MAX = 3
1314} ;
1315#line 118
1316struct pid_namespace;
1317#line 118 "include/linux/prio_tree.h"
1318struct upid {
1319   int nr ;
1320   struct pid_namespace *ns ;
1321   struct hlist_node pid_chain ;
1322};
1323#line 56 "include/linux/pid.h"
1324struct pid {
1325   atomic_t count ;
1326   unsigned int level ;
1327   struct hlist_head tasks[3U] ;
1328   struct rcu_head rcu ;
1329   struct upid numbers[1U] ;
1330};
1331#line 45 "include/linux/semaphore.h"
1332struct fiemap_extent {
1333   __u64 fe_logical ;
1334   __u64 fe_physical ;
1335   __u64 fe_length ;
1336   __u64 fe_reserved64[2U] ;
1337   __u32 fe_flags ;
1338   __u32 fe_reserved[3U] ;
1339};
1340#line 38 "include/linux/fiemap.h"
1341struct shrink_control {
1342   gfp_t gfp_mask ;
1343   unsigned long nr_to_scan ;
1344};
1345#line 14 "include/linux/shrinker.h"
1346struct shrinker {
1347   int (*shrink)(struct shrinker * , struct shrink_control * ) ;
1348   int seeks ;
1349   long batch ;
1350   struct list_head list ;
1351   atomic_long_t nr_in_batch ;
1352};
1353#line 43
1354enum migrate_mode {
1355    MIGRATE_ASYNC = 0,
1356    MIGRATE_SYNC_LIGHT = 1,
1357    MIGRATE_SYNC = 2
1358} ;
1359#line 49
1360struct export_operations;
1361#line 49
1362struct export_operations;
1363#line 51
1364struct iovec;
1365#line 51
1366struct iovec;
1367#line 52
1368struct kiocb;
1369#line 52
1370struct kiocb;
1371#line 53
1372struct pipe_inode_info;
1373#line 53
1374struct pipe_inode_info;
1375#line 54
1376struct poll_table_struct;
1377#line 54
1378struct poll_table_struct;
1379#line 55
1380struct kstatfs;
1381#line 55
1382struct kstatfs;
1383#line 435 "include/linux/fs.h"
1384struct iattr {
1385   unsigned int ia_valid ;
1386   umode_t ia_mode ;
1387   uid_t ia_uid ;
1388   gid_t ia_gid ;
1389   loff_t ia_size ;
1390   struct timespec ia_atime ;
1391   struct timespec ia_mtime ;
1392   struct timespec ia_ctime ;
1393   struct file *ia_file ;
1394};
1395#line 119 "include/linux/quota.h"
1396struct if_dqinfo {
1397   __u64 dqi_bgrace ;
1398   __u64 dqi_igrace ;
1399   __u32 dqi_flags ;
1400   __u32 dqi_valid ;
1401};
1402#line 176 "include/linux/percpu_counter.h"
1403struct fs_disk_quota {
1404   __s8 d_version ;
1405   __s8 d_flags ;
1406   __u16 d_fieldmask ;
1407   __u32 d_id ;
1408   __u64 d_blk_hardlimit ;
1409   __u64 d_blk_softlimit ;
1410   __u64 d_ino_hardlimit ;
1411   __u64 d_ino_softlimit ;
1412   __u64 d_bcount ;
1413   __u64 d_icount ;
1414   __s32 d_itimer ;
1415   __s32 d_btimer ;
1416   __u16 d_iwarns ;
1417   __u16 d_bwarns ;
1418   __s32 d_padding2 ;
1419   __u64 d_rtb_hardlimit ;
1420   __u64 d_rtb_softlimit ;
1421   __u64 d_rtbcount ;
1422   __s32 d_rtbtimer ;
1423   __u16 d_rtbwarns ;
1424   __s16 d_padding3 ;
1425   char d_padding4[8U] ;
1426};
1427#line 75 "include/linux/dqblk_xfs.h"
1428struct fs_qfilestat {
1429   __u64 qfs_ino ;
1430   __u64 qfs_nblks ;
1431   __u32 qfs_nextents ;
1432};
1433#line 150 "include/linux/dqblk_xfs.h"
1434typedef struct fs_qfilestat fs_qfilestat_t;
1435#line 151 "include/linux/dqblk_xfs.h"
1436struct fs_quota_stat {
1437   __s8 qs_version ;
1438   __u16 qs_flags ;
1439   __s8 qs_pad ;
1440   fs_qfilestat_t qs_uquota ;
1441   fs_qfilestat_t qs_gquota ;
1442   __u32 qs_incoredqs ;
1443   __s32 qs_btimelimit ;
1444   __s32 qs_itimelimit ;
1445   __s32 qs_rtbtimelimit ;
1446   __u16 qs_bwarnlimit ;
1447   __u16 qs_iwarnlimit ;
1448};
1449#line 165
1450struct dquot;
1451#line 165
1452struct dquot;
1453#line 185 "include/linux/quota.h"
1454typedef __kernel_uid32_t qid_t;
1455#line 186 "include/linux/quota.h"
1456typedef long long qsize_t;
1457#line 189 "include/linux/quota.h"
1458struct mem_dqblk {
1459   qsize_t dqb_bhardlimit ;
1460   qsize_t dqb_bsoftlimit ;
1461   qsize_t dqb_curspace ;
1462   qsize_t dqb_rsvspace ;
1463   qsize_t dqb_ihardlimit ;
1464   qsize_t dqb_isoftlimit ;
1465   qsize_t dqb_curinodes ;
1466   time_t dqb_btime ;
1467   time_t dqb_itime ;
1468};
1469#line 211
1470struct quota_format_type;
1471#line 211
1472struct quota_format_type;
1473#line 212 "include/linux/quota.h"
1474struct mem_dqinfo {
1475   struct quota_format_type *dqi_format ;
1476   int dqi_fmt_id ;
1477   struct list_head dqi_dirty_list ;
1478   unsigned long dqi_flags ;
1479   unsigned int dqi_bgrace ;
1480   unsigned int dqi_igrace ;
1481   qsize_t dqi_maxblimit ;
1482   qsize_t dqi_maxilimit ;
1483   void *dqi_priv ;
1484};
1485#line 275 "include/linux/quota.h"
1486struct dquot {
1487   struct hlist_node dq_hash ;
1488   struct list_head dq_inuse ;
1489   struct list_head dq_free ;
1490   struct list_head dq_dirty ;
1491   struct mutex dq_lock ;
1492   atomic_t dq_count ;
1493   wait_queue_head_t dq_wait_unused ;
1494   struct super_block *dq_sb ;
1495   unsigned int dq_id ;
1496   loff_t dq_off ;
1497   unsigned long dq_flags ;
1498   short dq_type ;
1499   struct mem_dqblk dq_dqb ;
1500};
1501#line 303 "include/linux/quota.h"
1502struct quota_format_ops {
1503   int (*check_quota_file)(struct super_block * , int  ) ;
1504   int (*read_file_info)(struct super_block * , int  ) ;
1505   int (*write_file_info)(struct super_block * , int  ) ;
1506   int (*free_file_info)(struct super_block * , int  ) ;
1507   int (*read_dqblk)(struct dquot * ) ;
1508   int (*commit_dqblk)(struct dquot * ) ;
1509   int (*release_dqblk)(struct dquot * ) ;
1510};
1511#line 314 "include/linux/quota.h"
1512struct dquot_operations {
1513   int (*write_dquot)(struct dquot * ) ;
1514   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
1515   void (*destroy_dquot)(struct dquot * ) ;
1516   int (*acquire_dquot)(struct dquot * ) ;
1517   int (*release_dquot)(struct dquot * ) ;
1518   int (*mark_dirty)(struct dquot * ) ;
1519   int (*write_info)(struct super_block * , int  ) ;
1520   qsize_t *(*get_reserved_space)(struct inode * ) ;
1521};
1522#line 328 "include/linux/quota.h"
1523struct quotactl_ops {
1524   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
1525   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
1526   int (*quota_off)(struct super_block * , int  ) ;
1527   int (*quota_sync)(struct super_block * , int  , int  ) ;
1528   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
1529   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
1530   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
1531   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
1532   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
1533   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
1534};
1535#line 344 "include/linux/quota.h"
1536struct quota_format_type {
1537   int qf_fmt_id ;
1538   struct quota_format_ops  const  *qf_ops ;
1539   struct module *qf_owner ;
1540   struct quota_format_type *qf_next ;
1541};
1542#line 390 "include/linux/quota.h"
1543struct quota_info {
1544   unsigned int flags ;
1545   struct mutex dqio_mutex ;
1546   struct mutex dqonoff_mutex ;
1547   struct rw_semaphore dqptr_sem ;
1548   struct inode *files[2U] ;
1549   struct mem_dqinfo info[2U] ;
1550   struct quota_format_ops  const  *ops[2U] ;
1551};
1552#line 421
1553struct address_space;
1554#line 421
1555struct address_space;
1556#line 422
1557struct writeback_control;
1558#line 422
1559struct writeback_control;
1560#line 585 "include/linux/fs.h"
1561union __anonunion_arg_140 {
1562   char *buf ;
1563   void *data ;
1564};
1565#line 585 "include/linux/fs.h"
1566struct __anonstruct_read_descriptor_t_139 {
1567   size_t written ;
1568   size_t count ;
1569   union __anonunion_arg_140 arg ;
1570   int error ;
1571};
1572#line 585 "include/linux/fs.h"
1573typedef struct __anonstruct_read_descriptor_t_139 read_descriptor_t;
1574#line 588 "include/linux/fs.h"
1575struct address_space_operations {
1576   int (*writepage)(struct page * , struct writeback_control * ) ;
1577   int (*readpage)(struct file * , struct page * ) ;
1578   int (*writepages)(struct address_space * , struct writeback_control * ) ;
1579   int (*set_page_dirty)(struct page * ) ;
1580   int (*readpages)(struct file * , struct address_space * , struct list_head * ,
1581                    unsigned int  ) ;
1582   int (*write_begin)(struct file * , struct address_space * , loff_t  , unsigned int  ,
1583                      unsigned int  , struct page ** , void ** ) ;
1584   int (*write_end)(struct file * , struct address_space * , loff_t  , unsigned int  ,
1585                    unsigned int  , struct page * , void * ) ;
1586   sector_t (*bmap)(struct address_space * , sector_t  ) ;
1587   void (*invalidatepage)(struct page * , unsigned long  ) ;
1588   int (*releasepage)(struct page * , gfp_t  ) ;
1589   void (*freepage)(struct page * ) ;
1590   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  * , loff_t  ,
1591                        unsigned long  ) ;
1592   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
1593   int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode  ) ;
1594   int (*launder_page)(struct page * ) ;
1595   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
1596   int (*error_remove_page)(struct address_space * , struct page * ) ;
1597};
1598#line 642
1599struct backing_dev_info;
1600#line 642
1601struct backing_dev_info;
1602#line 643 "include/linux/fs.h"
1603struct address_space {
1604   struct inode *host ;
1605   struct radix_tree_root page_tree ;
1606   spinlock_t tree_lock ;
1607   unsigned int i_mmap_writable ;
1608   struct prio_tree_root i_mmap ;
1609   struct list_head i_mmap_nonlinear ;
1610   struct mutex i_mmap_mutex ;
1611   unsigned long nrpages ;
1612   unsigned long writeback_index ;
1613   struct address_space_operations  const  *a_ops ;
1614   unsigned long flags ;
1615   struct backing_dev_info *backing_dev_info ;
1616   spinlock_t private_lock ;
1617   struct list_head private_list ;
1618   struct address_space *assoc_mapping ;
1619};
1620#line 664
1621struct request_queue;
1622#line 664
1623struct request_queue;
1624#line 665
1625struct hd_struct;
1626#line 665
1627struct gendisk;
1628#line 665 "include/linux/fs.h"
1629struct block_device {
1630   dev_t bd_dev ;
1631   int bd_openers ;
1632   struct inode *bd_inode ;
1633   struct super_block *bd_super ;
1634   struct mutex bd_mutex ;
1635   struct list_head bd_inodes ;
1636   void *bd_claiming ;
1637   void *bd_holder ;
1638   int bd_holders ;
1639   bool bd_write_holder ;
1640   struct list_head bd_holder_disks ;
1641   struct block_device *bd_contains ;
1642   unsigned int bd_block_size ;
1643   struct hd_struct *bd_part ;
1644   unsigned int bd_part_count ;
1645   int bd_invalidated ;
1646   struct gendisk *bd_disk ;
1647   struct request_queue *bd_queue ;
1648   struct list_head bd_list ;
1649   unsigned long bd_private ;
1650   int bd_fsfreeze_count ;
1651   struct mutex bd_fsfreeze_mutex ;
1652};
1653#line 737
1654struct posix_acl;
1655#line 737
1656struct posix_acl;
1657#line 738
1658struct inode_operations;
1659#line 738 "include/linux/fs.h"
1660union __anonunion_ldv_16934_141 {
1661   unsigned int const   i_nlink ;
1662   unsigned int __i_nlink ;
1663};
1664#line 738 "include/linux/fs.h"
1665union __anonunion_ldv_16953_142 {
1666   struct list_head i_dentry ;
1667   struct rcu_head i_rcu ;
1668};
1669#line 738
1670struct file_operations;
1671#line 738
1672struct file_lock;
1673#line 738
1674struct cdev;
1675#line 738 "include/linux/fs.h"
1676union __anonunion_ldv_16971_143 {
1677   struct pipe_inode_info *i_pipe ;
1678   struct block_device *i_bdev ;
1679   struct cdev *i_cdev ;
1680};
1681#line 738 "include/linux/fs.h"
1682struct inode {
1683   umode_t i_mode ;
1684   unsigned short i_opflags ;
1685   uid_t i_uid ;
1686   gid_t i_gid ;
1687   unsigned int i_flags ;
1688   struct posix_acl *i_acl ;
1689   struct posix_acl *i_default_acl ;
1690   struct inode_operations  const  *i_op ;
1691   struct super_block *i_sb ;
1692   struct address_space *i_mapping ;
1693   void *i_security ;
1694   unsigned long i_ino ;
1695   union __anonunion_ldv_16934_141 ldv_16934 ;
1696   dev_t i_rdev ;
1697   struct timespec i_atime ;
1698   struct timespec i_mtime ;
1699   struct timespec i_ctime ;
1700   spinlock_t i_lock ;
1701   unsigned short i_bytes ;
1702   blkcnt_t i_blocks ;
1703   loff_t i_size ;
1704   unsigned long i_state ;
1705   struct mutex i_mutex ;
1706   unsigned long dirtied_when ;
1707   struct hlist_node i_hash ;
1708   struct list_head i_wb_list ;
1709   struct list_head i_lru ;
1710   struct list_head i_sb_list ;
1711   union __anonunion_ldv_16953_142 ldv_16953 ;
1712   atomic_t i_count ;
1713   unsigned int i_blkbits ;
1714   u64 i_version ;
1715   atomic_t i_dio_count ;
1716   atomic_t i_writecount ;
1717   struct file_operations  const  *i_fop ;
1718   struct file_lock *i_flock ;
1719   struct address_space i_data ;
1720   struct dquot *i_dquot[2U] ;
1721   struct list_head i_devices ;
1722   union __anonunion_ldv_16971_143 ldv_16971 ;
1723   __u32 i_generation ;
1724   __u32 i_fsnotify_mask ;
1725   struct hlist_head i_fsnotify_marks ;
1726   atomic_t i_readcount ;
1727   void *i_private ;
1728};
1729#line 941 "include/linux/fs.h"
1730struct fown_struct {
1731   rwlock_t lock ;
1732   struct pid *pid ;
1733   enum pid_type pid_type ;
1734   uid_t uid ;
1735   uid_t euid ;
1736   int signum ;
1737};
1738#line 949 "include/linux/fs.h"
1739struct file_ra_state {
1740   unsigned long start ;
1741   unsigned int size ;
1742   unsigned int async_size ;
1743   unsigned int ra_pages ;
1744   unsigned int mmap_miss ;
1745   loff_t prev_pos ;
1746};
1747#line 972 "include/linux/fs.h"
1748union __anonunion_f_u_144 {
1749   struct list_head fu_list ;
1750   struct rcu_head fu_rcuhead ;
1751};
1752#line 972 "include/linux/fs.h"
1753struct file {
1754   union __anonunion_f_u_144 f_u ;
1755   struct path f_path ;
1756   struct file_operations  const  *f_op ;
1757   spinlock_t f_lock ;
1758   int f_sb_list_cpu ;
1759   atomic_long_t f_count ;
1760   unsigned int f_flags ;
1761   fmode_t f_mode ;
1762   loff_t f_pos ;
1763   struct fown_struct f_owner ;
1764   struct cred  const  *f_cred ;
1765   struct file_ra_state f_ra ;
1766   u64 f_version ;
1767   void *f_security ;
1768   void *private_data ;
1769   struct list_head f_ep_links ;
1770   struct list_head f_tfile_llink ;
1771   struct address_space *f_mapping ;
1772   unsigned long f_mnt_write_state ;
1773};
1774#line 1111
1775struct files_struct;
1776#line 1111 "include/linux/fs.h"
1777typedef struct files_struct *fl_owner_t;
1778#line 1112 "include/linux/fs.h"
1779struct file_lock_operations {
1780   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
1781   void (*fl_release_private)(struct file_lock * ) ;
1782};
1783#line 1117 "include/linux/fs.h"
1784struct lock_manager_operations {
1785   int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ;
1786   void (*lm_notify)(struct file_lock * ) ;
1787   int (*lm_grant)(struct file_lock * , struct file_lock * , int  ) ;
1788   void (*lm_release_private)(struct file_lock * ) ;
1789   void (*lm_break)(struct file_lock * ) ;
1790   int (*lm_change)(struct file_lock ** , int  ) ;
1791};
1792#line 1134
1793struct nlm_lockowner;
1794#line 1134
1795struct nlm_lockowner;
1796#line 1135 "include/linux/fs.h"
1797struct nfs_lock_info {
1798   u32 state ;
1799   struct nlm_lockowner *owner ;
1800   struct list_head list ;
1801};
1802#line 14 "include/linux/nfs_fs_i.h"
1803struct nfs4_lock_state;
1804#line 14
1805struct nfs4_lock_state;
1806#line 15 "include/linux/nfs_fs_i.h"
1807struct nfs4_lock_info {
1808   struct nfs4_lock_state *owner ;
1809};
1810#line 19
1811struct fasync_struct;
1812#line 19 "include/linux/nfs_fs_i.h"
1813struct __anonstruct_afs_146 {
1814   struct list_head link ;
1815   int state ;
1816};
1817#line 19 "include/linux/nfs_fs_i.h"
1818union __anonunion_fl_u_145 {
1819   struct nfs_lock_info nfs_fl ;
1820   struct nfs4_lock_info nfs4_fl ;
1821   struct __anonstruct_afs_146 afs ;
1822};
1823#line 19 "include/linux/nfs_fs_i.h"
1824struct file_lock {
1825   struct file_lock *fl_next ;
1826   struct list_head fl_link ;
1827   struct list_head fl_block ;
1828   fl_owner_t fl_owner ;
1829   unsigned int fl_flags ;
1830   unsigned char fl_type ;
1831   unsigned int fl_pid ;
1832   struct pid *fl_nspid ;
1833   wait_queue_head_t fl_wait ;
1834   struct file *fl_file ;
1835   loff_t fl_start ;
1836   loff_t fl_end ;
1837   struct fasync_struct *fl_fasync ;
1838   unsigned long fl_break_time ;
1839   unsigned long fl_downgrade_time ;
1840   struct file_lock_operations  const  *fl_ops ;
1841   struct lock_manager_operations  const  *fl_lmops ;
1842   union __anonunion_fl_u_145 fl_u ;
1843};
1844#line 1221 "include/linux/fs.h"
1845struct fasync_struct {
1846   spinlock_t fa_lock ;
1847   int magic ;
1848   int fa_fd ;
1849   struct fasync_struct *fa_next ;
1850   struct file *fa_file ;
1851   struct rcu_head fa_rcu ;
1852};
1853#line 1417
1854struct file_system_type;
1855#line 1417
1856struct super_operations;
1857#line 1417
1858struct xattr_handler;
1859#line 1417
1860struct mtd_info;
1861#line 1417 "include/linux/fs.h"
1862struct super_block {
1863   struct list_head s_list ;
1864   dev_t s_dev ;
1865   unsigned char s_dirt ;
1866   unsigned char s_blocksize_bits ;
1867   unsigned long s_blocksize ;
1868   loff_t s_maxbytes ;
1869   struct file_system_type *s_type ;
1870   struct super_operations  const  *s_op ;
1871   struct dquot_operations  const  *dq_op ;
1872   struct quotactl_ops  const  *s_qcop ;
1873   struct export_operations  const  *s_export_op ;
1874   unsigned long s_flags ;
1875   unsigned long s_magic ;
1876   struct dentry *s_root ;
1877   struct rw_semaphore s_umount ;
1878   struct mutex s_lock ;
1879   int s_count ;
1880   atomic_t s_active ;
1881   void *s_security ;
1882   struct xattr_handler  const  **s_xattr ;
1883   struct list_head s_inodes ;
1884   struct hlist_bl_head s_anon ;
1885   struct list_head *s_files ;
1886   struct list_head s_mounts ;
1887   struct list_head s_dentry_lru ;
1888   int s_nr_dentry_unused ;
1889   spinlock_t s_inode_lru_lock ;
1890   struct list_head s_inode_lru ;
1891   int s_nr_inodes_unused ;
1892   struct block_device *s_bdev ;
1893   struct backing_dev_info *s_bdi ;
1894   struct mtd_info *s_mtd ;
1895   struct hlist_node s_instances ;
1896   struct quota_info s_dquot ;
1897   int s_frozen ;
1898   wait_queue_head_t s_wait_unfrozen ;
1899   char s_id[32U] ;
1900   u8 s_uuid[16U] ;
1901   void *s_fs_info ;
1902   unsigned int s_max_links ;
1903   fmode_t s_mode ;
1904   u32 s_time_gran ;
1905   struct mutex s_vfs_rename_mutex ;
1906   char *s_subtype ;
1907   char *s_options ;
1908   struct dentry_operations  const  *s_d_op ;
1909   int cleancache_poolid ;
1910   struct shrinker s_shrink ;
1911   atomic_long_t s_remove_count ;
1912   int s_readonly_remount ;
1913};
1914#line 1563 "include/linux/fs.h"
1915struct fiemap_extent_info {
1916   unsigned int fi_flags ;
1917   unsigned int fi_extents_mapped ;
1918   unsigned int fi_extents_max ;
1919   struct fiemap_extent *fi_extents_start ;
1920};
1921#line 1602 "include/linux/fs.h"
1922struct file_operations {
1923   struct module *owner ;
1924   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
1925   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
1926   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
1927   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
1928                       loff_t  ) ;
1929   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
1930                        loff_t  ) ;
1931   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
1932                                                   loff_t  , u64  , unsigned int  ) ) ;
1933   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
1934   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
1935   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
1936   int (*mmap)(struct file * , struct vm_area_struct * ) ;
1937   int (*open)(struct inode * , struct file * ) ;
1938   int (*flush)(struct file * , fl_owner_t  ) ;
1939   int (*release)(struct inode * , struct file * ) ;
1940   int (*fsync)(struct file * , loff_t  , loff_t  , int  ) ;
1941   int (*aio_fsync)(struct kiocb * , int  ) ;
1942   int (*fasync)(int  , struct file * , int  ) ;
1943   int (*lock)(struct file * , int  , struct file_lock * ) ;
1944   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
1945                       int  ) ;
1946   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
1947                                      unsigned long  , unsigned long  ) ;
1948   int (*check_flags)(int  ) ;
1949   int (*flock)(struct file * , int  , struct file_lock * ) ;
1950   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
1951                           unsigned int  ) ;
1952   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
1953                          unsigned int  ) ;
1954   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
1955   long (*fallocate)(struct file * , int  , loff_t  , loff_t  ) ;
1956};
1957#line 1637 "include/linux/fs.h"
1958struct inode_operations {
1959   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
1960   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
1961   int (*permission)(struct inode * , int  ) ;
1962   struct posix_acl *(*get_acl)(struct inode * , int  ) ;
1963   int (*readlink)(struct dentry * , char * , int  ) ;
1964   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
1965   int (*create)(struct inode * , struct dentry * , umode_t  , struct nameidata * ) ;
1966   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
1967   int (*unlink)(struct inode * , struct dentry * ) ;
1968   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
1969   int (*mkdir)(struct inode * , struct dentry * , umode_t  ) ;
1970   int (*rmdir)(struct inode * , struct dentry * ) ;
1971   int (*mknod)(struct inode * , struct dentry * , umode_t  , dev_t  ) ;
1972   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
1973   void (*truncate)(struct inode * ) ;
1974   int (*setattr)(struct dentry * , struct iattr * ) ;
1975   int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
1976   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
1977   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
1978   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
1979   int (*removexattr)(struct dentry * , char const   * ) ;
1980   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
1981   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64  , u64  ) ;
1982};
1983#line 1682 "include/linux/fs.h"
1984struct super_operations {
1985   struct inode *(*alloc_inode)(struct super_block * ) ;
1986   void (*destroy_inode)(struct inode * ) ;
1987   void (*dirty_inode)(struct inode * , int  ) ;
1988   int (*write_inode)(struct inode * , struct writeback_control * ) ;
1989   int (*drop_inode)(struct inode * ) ;
1990   void (*evict_inode)(struct inode * ) ;
1991   void (*put_super)(struct super_block * ) ;
1992   void (*write_super)(struct super_block * ) ;
1993   int (*sync_fs)(struct super_block * , int  ) ;
1994   int (*freeze_fs)(struct super_block * ) ;
1995   int (*unfreeze_fs)(struct super_block * ) ;
1996   int (*statfs)(struct dentry * , struct kstatfs * ) ;
1997   int (*remount_fs)(struct super_block * , int * , char * ) ;
1998   void (*umount_begin)(struct super_block * ) ;
1999   int (*show_options)(struct seq_file * , struct dentry * ) ;
2000   int (*show_devname)(struct seq_file * , struct dentry * ) ;
2001   int (*show_path)(struct seq_file * , struct dentry * ) ;
2002   int (*show_stats)(struct seq_file * , struct dentry * ) ;
2003   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
2004   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
2005                          loff_t  ) ;
2006   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
2007   int (*nr_cached_objects)(struct super_block * ) ;
2008   void (*free_cached_objects)(struct super_block * , int  ) ;
2009};
2010#line 1834 "include/linux/fs.h"
2011struct file_system_type {
2012   char const   *name ;
2013   int fs_flags ;
2014   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
2015   void (*kill_sb)(struct super_block * ) ;
2016   struct module *owner ;
2017   struct file_system_type *next ;
2018   struct hlist_head fs_supers ;
2019   struct lock_class_key s_lock_key ;
2020   struct lock_class_key s_umount_key ;
2021   struct lock_class_key s_vfs_rename_key ;
2022   struct lock_class_key i_lock_key ;
2023   struct lock_class_key i_mutex_key ;
2024   struct lock_class_key i_mutex_dir_key ;
2025};
2026#line 2674
2027struct ff_device;
2028#line 2674
2029struct input_mt_slot;
2030#line 2674
2031struct input_handle;
2032#line 2674 "include/linux/fs.h"
2033struct input_dev {
2034   char const   *name ;
2035   char const   *phys ;
2036   char const   *uniq ;
2037   struct input_id id ;
2038   unsigned long propbit[1U] ;
2039   unsigned long evbit[1U] ;
2040   unsigned long keybit[12U] ;
2041   unsigned long relbit[1U] ;
2042   unsigned long absbit[1U] ;
2043   unsigned long mscbit[1U] ;
2044   unsigned long ledbit[1U] ;
2045   unsigned long sndbit[1U] ;
2046   unsigned long ffbit[2U] ;
2047   unsigned long swbit[1U] ;
2048   unsigned int hint_events_per_packet ;
2049   unsigned int keycodemax ;
2050   unsigned int keycodesize ;
2051   void *keycode ;
2052   int (*setkeycode)(struct input_dev * , struct input_keymap_entry  const  * , unsigned int * ) ;
2053   int (*getkeycode)(struct input_dev * , struct input_keymap_entry * ) ;
2054   struct ff_device *ff ;
2055   unsigned int repeat_key ;
2056   struct timer_list timer ;
2057   int rep[2U] ;
2058   struct input_mt_slot *mt ;
2059   int mtsize ;
2060   int slot ;
2061   int trkid ;
2062   struct input_absinfo *absinfo ;
2063   unsigned long key[12U] ;
2064   unsigned long led[1U] ;
2065   unsigned long snd[1U] ;
2066   unsigned long sw[1U] ;
2067   int (*open)(struct input_dev * ) ;
2068   void (*close)(struct input_dev * ) ;
2069   int (*flush)(struct input_dev * , struct file * ) ;
2070   int (*event)(struct input_dev * , unsigned int  , unsigned int  , int  ) ;
2071   struct input_handle *grab ;
2072   spinlock_t event_lock ;
2073   struct mutex mutex ;
2074   unsigned int users ;
2075   bool going_away ;
2076   bool sync ;
2077   struct device dev ;
2078   struct list_head h_list ;
2079   struct list_head node ;
2080};
2081#line 1319 "include/linux/input.h"
2082struct input_handler {
2083   void *private ;
2084   void (*event)(struct input_handle * , unsigned int  , unsigned int  , int  ) ;
2085   bool (*filter)(struct input_handle * , unsigned int  , unsigned int  , int  ) ;
2086   bool (*match)(struct input_handler * , struct input_dev * ) ;
2087   int (*connect)(struct input_handler * , struct input_dev * , struct input_device_id  const  * ) ;
2088   void (*disconnect)(struct input_handle * ) ;
2089   void (*start)(struct input_handle * ) ;
2090   struct file_operations  const  *fops ;
2091   int minor ;
2092   char const   *name ;
2093   struct input_device_id  const  *id_table ;
2094   struct list_head h_list ;
2095   struct list_head node ;
2096};
2097#line 1429 "include/linux/input.h"
2098struct input_handle {
2099   void *private ;
2100   int open ;
2101   char const   *name ;
2102   struct input_dev *dev ;
2103   struct input_handler *handler ;
2104   struct list_head d_node ;
2105   struct list_head h_node ;
2106};
2107#line 1591 "include/linux/input.h"
2108struct ff_device {
2109   int (*upload)(struct input_dev * , struct ff_effect * , struct ff_effect * ) ;
2110   int (*erase)(struct input_dev * , int  ) ;
2111   int (*playback)(struct input_dev * , int  , int  ) ;
2112   void (*set_gain)(struct input_dev * , u16  ) ;
2113   void (*set_autocenter)(struct input_dev * , u16  ) ;
2114   void (*destroy)(struct ff_device * ) ;
2115   void *private ;
2116   unsigned long ffbit[2U] ;
2117   struct mutex mutex ;
2118   int max_effects ;
2119   struct ff_effect *effects ;
2120   struct file *effect_owners[0U] ;
2121};
2122#line 1650
2123enum irqreturn {
2124    IRQ_NONE = 0,
2125    IRQ_HANDLED = 1,
2126    IRQ_WAKE_THREAD = 2
2127} ;
2128#line 16 "include/linux/irqreturn.h"
2129typedef enum irqreturn irqreturn_t;
2130#line 41 "include/asm-generic/sections.h"
2131struct exception_table_entry {
2132   unsigned long insn ;
2133   unsigned long fixup ;
2134};
2135#line 702 "include/linux/interrupt.h"
2136enum ab8500_version {
2137    AB8500_VERSION_AB8500 = 0,
2138    AB8500_VERSION_AB8505 = 1,
2139    AB8500_VERSION_AB9540 = 2,
2140    AB8500_VERSION_AB8540 = 3,
2141    AB8500_VERSION_UNDEFINED = 4
2142} ;
2143#line 710 "include/linux/interrupt.h"
2144struct ab8500 {
2145   struct device *dev ;
2146   struct mutex lock ;
2147   struct mutex irq_lock ;
2148   int irq_base ;
2149   int irq ;
2150   enum ab8500_version version ;
2151   u8 chip_id ;
2152   int (*write)(struct ab8500 * , u16  , u8  ) ;
2153   int (*write_masked)(struct ab8500 * , u16  , u8  , u8  ) ;
2154   int (*read)(struct ab8500 * , u16  ) ;
2155   unsigned long tx_buf[4U] ;
2156   unsigned long rx_buf[4U] ;
2157   u8 *mask ;
2158   u8 *oldmask ;
2159   int mask_size ;
2160   int const   *irq_reg_offset ;
2161};
2162#line 326 "include/linux/mfd/abx500/ab8500.h"
2163struct ab8500_ponkey {
2164   struct input_dev *idev ;
2165   struct ab8500 *ab8500 ;
2166   int irq_dbf ;
2167   int irq_dbr ;
2168};
2169#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2170void ldv_spin_lock(void) ;
2171#line 3
2172void ldv_spin_unlock(void) ;
2173#line 4
2174int ldv_spin_trylock(void) ;
2175#line 161 "include/linux/slab.h"
2176extern void kfree(void const   * ) ;
2177#line 220 "include/linux/slub_def.h"
2178extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
2179#line 223
2180void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2181#line 353 "include/linux/slab.h"
2182__inline static void *kzalloc(size_t size , gfp_t flags ) ;
2183#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2184extern void *__VERIFIER_nondet_pointer(void) ;
2185#line 11
2186void ldv_check_alloc_flags(gfp_t flags ) ;
2187#line 12
2188void ldv_check_alloc_nonatomic(void) ;
2189#line 14
2190struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2191#line 792 "include/linux/device.h"
2192extern void *dev_get_drvdata(struct device  const  * ) ;
2193#line 793
2194extern int dev_set_drvdata(struct device * , void * ) ;
2195#line 892
2196extern int dev_err(struct device  const  * , char const   *  , ...) ;
2197#line 49 "include/linux/platform_device.h"
2198extern int platform_get_irq_byname(struct platform_device * , char const   * ) ;
2199#line 188 "include/linux/platform_device.h"
2200__inline static void platform_set_drvdata(struct platform_device *pdev , void *data ) 
2201{ unsigned long __cil_tmp3 ;
2202  unsigned long __cil_tmp4 ;
2203  struct device *__cil_tmp5 ;
2204
2205  {
2206  {
2207#line 190
2208  __cil_tmp3 = (unsigned long )pdev;
2209#line 190
2210  __cil_tmp4 = __cil_tmp3 + 16;
2211#line 190
2212  __cil_tmp5 = (struct device *)__cil_tmp4;
2213#line 190
2214  dev_set_drvdata(__cil_tmp5, data);
2215  }
2216#line 191
2217  return;
2218}
2219}
2220#line 1456 "include/linux/input.h"
2221extern struct input_dev *input_allocate_device(void) ;
2222#line 1457
2223extern void input_free_device(struct input_dev * ) ;
2224#line 1480
2225extern int input_register_device(struct input_dev * ) ;
2226#line 1502
2227extern void input_event(struct input_dev * , unsigned int  , unsigned int  , int  ) ;
2228#line 1505 "include/linux/input.h"
2229__inline static void input_report_key(struct input_dev *dev , unsigned int code ,
2230                                      int value ) 
2231{ int __cil_tmp4 ;
2232
2233  {
2234  {
2235#line 1507
2236  __cil_tmp4 = value != 0;
2237#line 1507
2238  input_event(dev, 1U, code, __cil_tmp4);
2239  }
2240#line 1508
2241  return;
2242}
2243}
2244#line 1530 "include/linux/input.h"
2245__inline static void input_sync(struct input_dev *dev ) 
2246{ 
2247
2248  {
2249  {
2250#line 1532
2251  input_event(dev, 0U, 0U, 0);
2252  }
2253#line 1533
2254  return;
2255}
2256}
2257#line 1540
2258extern void input_set_capability(struct input_dev * , unsigned int  , unsigned int  ) ;
2259#line 139 "include/linux/interrupt.h"
2260extern int request_any_context_irq(unsigned int  , irqreturn_t (*)(int  , void * ) ,
2261                                   unsigned long  , char const   * , void * ) ;
2262#line 184
2263extern void free_irq(unsigned int  , void * ) ;
2264#line 48 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2265static irqreturn_t ab8500_ponkey_handler(int irq , void *data ) 
2266{ struct ab8500_ponkey *ponkey ;
2267  unsigned long __cil_tmp4 ;
2268  unsigned long __cil_tmp5 ;
2269  int __cil_tmp6 ;
2270  struct input_dev *__cil_tmp7 ;
2271  unsigned long __cil_tmp8 ;
2272  unsigned long __cil_tmp9 ;
2273  int __cil_tmp10 ;
2274  struct input_dev *__cil_tmp11 ;
2275  struct input_dev *__cil_tmp12 ;
2276
2277  {
2278#line 50
2279  ponkey = (struct ab8500_ponkey *)data;
2280  {
2281#line 52
2282  __cil_tmp4 = (unsigned long )ponkey;
2283#line 52
2284  __cil_tmp5 = __cil_tmp4 + 16;
2285#line 52
2286  __cil_tmp6 = *((int *)__cil_tmp5);
2287#line 52
2288  if (__cil_tmp6 == irq) {
2289    {
2290#line 53
2291    __cil_tmp7 = *((struct input_dev **)ponkey);
2292#line 53
2293    input_report_key(__cil_tmp7, 116U, 1);
2294    }
2295  } else {
2296    {
2297#line 54
2298    __cil_tmp8 = (unsigned long )ponkey;
2299#line 54
2300    __cil_tmp9 = __cil_tmp8 + 20;
2301#line 54
2302    __cil_tmp10 = *((int *)__cil_tmp9);
2303#line 54
2304    if (__cil_tmp10 == irq) {
2305      {
2306#line 55
2307      __cil_tmp11 = *((struct input_dev **)ponkey);
2308#line 55
2309      input_report_key(__cil_tmp11, 116U, 0);
2310      }
2311    } else {
2312
2313    }
2314    }
2315  }
2316  }
2317  {
2318#line 57
2319  __cil_tmp12 = *((struct input_dev **)ponkey);
2320#line 57
2321  input_sync(__cil_tmp12);
2322  }
2323#line 59
2324  return ((irqreturn_t )1);
2325}
2326}
2327#line 62 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2328static int ab8500_ponkey_probe(struct platform_device *pdev ) 
2329{ struct ab8500 *ab8500 ;
2330  void *tmp ;
2331  struct ab8500_ponkey *ponkey ;
2332  struct input_dev *input ;
2333  int irq_dbf ;
2334  int irq_dbr ;
2335  int error ;
2336  void *tmp___0 ;
2337  unsigned long __cil_tmp10 ;
2338  unsigned long __cil_tmp11 ;
2339  struct device *__cil_tmp12 ;
2340  struct device  const  *__cil_tmp13 ;
2341  unsigned long __cil_tmp14 ;
2342  unsigned long __cil_tmp15 ;
2343  struct device *__cil_tmp16 ;
2344  struct device  const  *__cil_tmp17 ;
2345  unsigned long __cil_tmp18 ;
2346  unsigned long __cil_tmp19 ;
2347  struct device *__cil_tmp20 ;
2348  struct device  const  *__cil_tmp21 ;
2349  struct ab8500_ponkey *__cil_tmp22 ;
2350  unsigned long __cil_tmp23 ;
2351  unsigned long __cil_tmp24 ;
2352  struct input_dev *__cil_tmp25 ;
2353  unsigned long __cil_tmp26 ;
2354  unsigned long __cil_tmp27 ;
2355  unsigned long __cil_tmp28 ;
2356  unsigned long __cil_tmp29 ;
2357  unsigned long __cil_tmp30 ;
2358  unsigned long __cil_tmp31 ;
2359  unsigned long __cil_tmp32 ;
2360  unsigned long __cil_tmp33 ;
2361  unsigned long __cil_tmp34 ;
2362  unsigned long __cil_tmp35 ;
2363  unsigned long __cil_tmp36 ;
2364  unsigned long __cil_tmp37 ;
2365  unsigned long __cil_tmp38 ;
2366  unsigned long __cil_tmp39 ;
2367  int __cil_tmp40 ;
2368  unsigned int __cil_tmp41 ;
2369  void *__cil_tmp42 ;
2370  struct device *__cil_tmp43 ;
2371  struct device  const  *__cil_tmp44 ;
2372  unsigned long __cil_tmp45 ;
2373  unsigned long __cil_tmp46 ;
2374  int __cil_tmp47 ;
2375  unsigned long __cil_tmp48 ;
2376  unsigned long __cil_tmp49 ;
2377  int __cil_tmp50 ;
2378  unsigned int __cil_tmp51 ;
2379  void *__cil_tmp52 ;
2380  struct device *__cil_tmp53 ;
2381  struct device  const  *__cil_tmp54 ;
2382  unsigned long __cil_tmp55 ;
2383  unsigned long __cil_tmp56 ;
2384  int __cil_tmp57 ;
2385  struct input_dev *__cil_tmp58 ;
2386  struct device *__cil_tmp59 ;
2387  struct device  const  *__cil_tmp60 ;
2388  void *__cil_tmp61 ;
2389  unsigned long __cil_tmp62 ;
2390  unsigned long __cil_tmp63 ;
2391  int __cil_tmp64 ;
2392  unsigned int __cil_tmp65 ;
2393  void *__cil_tmp66 ;
2394  unsigned long __cil_tmp67 ;
2395  unsigned long __cil_tmp68 ;
2396  int __cil_tmp69 ;
2397  unsigned int __cil_tmp70 ;
2398  void *__cil_tmp71 ;
2399  void const   *__cil_tmp72 ;
2400
2401  {
2402  {
2403#line 64
2404  __cil_tmp10 = (unsigned long )pdev;
2405#line 64
2406  __cil_tmp11 = __cil_tmp10 + 16;
2407#line 64
2408  __cil_tmp12 = *((struct device **)__cil_tmp11);
2409#line 64
2410  __cil_tmp13 = (struct device  const  *)__cil_tmp12;
2411#line 64
2412  tmp = dev_get_drvdata(__cil_tmp13);
2413#line 64
2414  ab8500 = (struct ab8500 *)tmp;
2415#line 70
2416  irq_dbf = platform_get_irq_byname(pdev, "ONKEY_DBF");
2417  }
2418#line 71
2419  if (irq_dbf < 0) {
2420    {
2421#line 72
2422    __cil_tmp14 = (unsigned long )pdev;
2423#line 72
2424    __cil_tmp15 = __cil_tmp14 + 16;
2425#line 72
2426    __cil_tmp16 = (struct device *)__cil_tmp15;
2427#line 72
2428    __cil_tmp17 = (struct device  const  *)__cil_tmp16;
2429#line 72
2430    dev_err(__cil_tmp17, "No IRQ for ONKEY_DBF, error=%d\n", irq_dbf);
2431    }
2432#line 73
2433    return (irq_dbf);
2434  } else {
2435
2436  }
2437  {
2438#line 76
2439  irq_dbr = platform_get_irq_byname(pdev, "ONKEY_DBR");
2440  }
2441#line 77
2442  if (irq_dbr < 0) {
2443    {
2444#line 78
2445    __cil_tmp18 = (unsigned long )pdev;
2446#line 78
2447    __cil_tmp19 = __cil_tmp18 + 16;
2448#line 78
2449    __cil_tmp20 = (struct device *)__cil_tmp19;
2450#line 78
2451    __cil_tmp21 = (struct device  const  *)__cil_tmp20;
2452#line 78
2453    dev_err(__cil_tmp21, "No IRQ for ONKEY_DBR, error=%d\n", irq_dbr);
2454    }
2455#line 79
2456    return (irq_dbr);
2457  } else {
2458
2459  }
2460  {
2461#line 82
2462  tmp___0 = kzalloc(24UL, 208U);
2463#line 82
2464  ponkey = (struct ab8500_ponkey *)tmp___0;
2465#line 83
2466  input = input_allocate_device();
2467  }
2468  {
2469#line 84
2470  __cil_tmp22 = (struct ab8500_ponkey *)0;
2471#line 84
2472  __cil_tmp23 = (unsigned long )__cil_tmp22;
2473#line 84
2474  __cil_tmp24 = (unsigned long )ponkey;
2475#line 84
2476  if (__cil_tmp24 == __cil_tmp23) {
2477#line 85
2478    error = -12;
2479#line 86
2480    goto err_free_mem;
2481  } else {
2482    {
2483#line 84
2484    __cil_tmp25 = (struct input_dev *)0;
2485#line 84
2486    __cil_tmp26 = (unsigned long )__cil_tmp25;
2487#line 84
2488    __cil_tmp27 = (unsigned long )input;
2489#line 84
2490    if (__cil_tmp27 == __cil_tmp26) {
2491#line 85
2492      error = -12;
2493#line 86
2494      goto err_free_mem;
2495    } else {
2496
2497    }
2498    }
2499  }
2500  }
2501  {
2502#line 89
2503  *((struct input_dev **)ponkey) = input;
2504#line 90
2505  __cil_tmp28 = (unsigned long )ponkey;
2506#line 90
2507  __cil_tmp29 = __cil_tmp28 + 8;
2508#line 90
2509  *((struct ab8500 **)__cil_tmp29) = ab8500;
2510#line 91
2511  __cil_tmp30 = (unsigned long )ponkey;
2512#line 91
2513  __cil_tmp31 = __cil_tmp30 + 16;
2514#line 91
2515  *((int *)__cil_tmp31) = irq_dbf;
2516#line 92
2517  __cil_tmp32 = (unsigned long )ponkey;
2518#line 92
2519  __cil_tmp33 = __cil_tmp32 + 20;
2520#line 92
2521  *((int *)__cil_tmp33) = irq_dbr;
2522#line 94
2523  *((char const   **)input) = "AB8500 POn(PowerOn) Key";
2524#line 95
2525  __cil_tmp34 = (unsigned long )input;
2526#line 95
2527  __cil_tmp35 = __cil_tmp34 + 840;
2528#line 95
2529  __cil_tmp36 = (unsigned long )pdev;
2530#line 95
2531  __cil_tmp37 = __cil_tmp36 + 16;
2532#line 95
2533  *((struct device **)__cil_tmp35) = (struct device *)__cil_tmp37;
2534#line 97
2535  input_set_capability(input, 1U, 116U);
2536#line 99
2537  __cil_tmp38 = (unsigned long )ponkey;
2538#line 99
2539  __cil_tmp39 = __cil_tmp38 + 16;
2540#line 99
2541  __cil_tmp40 = *((int *)__cil_tmp39);
2542#line 99
2543  __cil_tmp41 = (unsigned int )__cil_tmp40;
2544#line 99
2545  __cil_tmp42 = (void *)ponkey;
2546#line 99
2547  error = request_any_context_irq(__cil_tmp41, & ab8500_ponkey_handler, 0UL, "ab8500-ponkey-dbf",
2548                                  __cil_tmp42);
2549  }
2550#line 101
2551  if (error < 0) {
2552    {
2553#line 102
2554    __cil_tmp43 = *((struct device **)ab8500);
2555#line 102
2556    __cil_tmp44 = (struct device  const  *)__cil_tmp43;
2557#line 102
2558    __cil_tmp45 = (unsigned long )ponkey;
2559#line 102
2560    __cil_tmp46 = __cil_tmp45 + 16;
2561#line 102
2562    __cil_tmp47 = *((int *)__cil_tmp46);
2563#line 102
2564    dev_err(__cil_tmp44, "Failed to request dbf IRQ#%d: %d\n", __cil_tmp47, error);
2565    }
2566#line 104
2567    goto err_free_mem;
2568  } else {
2569
2570  }
2571  {
2572#line 107
2573  __cil_tmp48 = (unsigned long )ponkey;
2574#line 107
2575  __cil_tmp49 = __cil_tmp48 + 20;
2576#line 107
2577  __cil_tmp50 = *((int *)__cil_tmp49);
2578#line 107
2579  __cil_tmp51 = (unsigned int )__cil_tmp50;
2580#line 107
2581  __cil_tmp52 = (void *)ponkey;
2582#line 107
2583  error = request_any_context_irq(__cil_tmp51, & ab8500_ponkey_handler, 0UL, "ab8500-ponkey-dbr",
2584                                  __cil_tmp52);
2585  }
2586#line 109
2587  if (error < 0) {
2588    {
2589#line 110
2590    __cil_tmp53 = *((struct device **)ab8500);
2591#line 110
2592    __cil_tmp54 = (struct device  const  *)__cil_tmp53;
2593#line 110
2594    __cil_tmp55 = (unsigned long )ponkey;
2595#line 110
2596    __cil_tmp56 = __cil_tmp55 + 20;
2597#line 110
2598    __cil_tmp57 = *((int *)__cil_tmp56);
2599#line 110
2600    dev_err(__cil_tmp54, "Failed to request dbr IRQ#%d: %d\n", __cil_tmp57, error);
2601    }
2602#line 112
2603    goto err_free_dbf_irq;
2604  } else {
2605
2606  }
2607  {
2608#line 115
2609  __cil_tmp58 = *((struct input_dev **)ponkey);
2610#line 115
2611  error = input_register_device(__cil_tmp58);
2612  }
2613#line 116
2614  if (error != 0) {
2615    {
2616#line 117
2617    __cil_tmp59 = *((struct device **)ab8500);
2618#line 117
2619    __cil_tmp60 = (struct device  const  *)__cil_tmp59;
2620#line 117
2621    dev_err(__cil_tmp60, "Can\'t register input device: %d\n", error);
2622    }
2623#line 118
2624    goto err_free_dbr_irq;
2625  } else {
2626
2627  }
2628  {
2629#line 121
2630  __cil_tmp61 = (void *)ponkey;
2631#line 121
2632  platform_set_drvdata(pdev, __cil_tmp61);
2633  }
2634#line 122
2635  return (0);
2636  err_free_dbr_irq: 
2637  {
2638#line 125
2639  __cil_tmp62 = (unsigned long )ponkey;
2640#line 125
2641  __cil_tmp63 = __cil_tmp62 + 20;
2642#line 125
2643  __cil_tmp64 = *((int *)__cil_tmp63);
2644#line 125
2645  __cil_tmp65 = (unsigned int )__cil_tmp64;
2646#line 125
2647  __cil_tmp66 = (void *)ponkey;
2648#line 125
2649  free_irq(__cil_tmp65, __cil_tmp66);
2650  }
2651  err_free_dbf_irq: 
2652  {
2653#line 127
2654  __cil_tmp67 = (unsigned long )ponkey;
2655#line 127
2656  __cil_tmp68 = __cil_tmp67 + 16;
2657#line 127
2658  __cil_tmp69 = *((int *)__cil_tmp68);
2659#line 127
2660  __cil_tmp70 = (unsigned int )__cil_tmp69;
2661#line 127
2662  __cil_tmp71 = (void *)ponkey;
2663#line 127
2664  free_irq(__cil_tmp70, __cil_tmp71);
2665  }
2666  err_free_mem: 
2667  {
2668#line 129
2669  input_free_device(input);
2670#line 130
2671  __cil_tmp72 = (void const   *)ponkey;
2672#line 130
2673  kfree(__cil_tmp72);
2674  }
2675#line 132
2676  return (error);
2677}
2678}
2679#line 179
2680extern void ldv_check_final_state(void) ;
2681#line 182
2682extern void ldv_check_return_value(int  ) ;
2683#line 185
2684extern void ldv_initialize(void) ;
2685#line 188
2686extern int __VERIFIER_nondet_int(void) ;
2687#line 191 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2688int LDV_IN_INTERRUPT  ;
2689#line 194 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2690void main(void) 
2691{ struct platform_device *var_group1 ;
2692  int res_ab8500_ponkey_probe_1 ;
2693  int var_ab8500_ponkey_handler_0_p0 ;
2694  void *var_ab8500_ponkey_handler_0_p1 ;
2695  int ldv_s_ab8500_ponkey_driver_platform_driver ;
2696  int tmp ;
2697  int tmp___0 ;
2698
2699  {
2700  {
2701#line 232
2702  ldv_s_ab8500_ponkey_driver_platform_driver = 0;
2703#line 222
2704  LDV_IN_INTERRUPT = 1;
2705#line 231
2706  ldv_initialize();
2707  }
2708#line 237
2709  goto ldv_20923;
2710  ldv_20922: 
2711  {
2712#line 241
2713  tmp = __VERIFIER_nondet_int();
2714  }
2715#line 243
2716  if (tmp == 0) {
2717#line 243
2718    goto case_0;
2719  } else
2720#line 262
2721  if (tmp == 1) {
2722#line 262
2723    goto case_1;
2724  } else {
2725    {
2726#line 278
2727    goto switch_default;
2728#line 241
2729    if (0) {
2730      case_0: /* CIL Label */ ;
2731#line 246
2732      if (ldv_s_ab8500_ponkey_driver_platform_driver == 0) {
2733        {
2734#line 251
2735        res_ab8500_ponkey_probe_1 = ab8500_ponkey_probe(var_group1);
2736#line 252
2737        ldv_check_return_value(res_ab8500_ponkey_probe_1);
2738        }
2739#line 253
2740        if (res_ab8500_ponkey_probe_1 != 0) {
2741#line 254
2742          goto ldv_module_exit;
2743        } else {
2744
2745        }
2746#line 255
2747        ldv_s_ab8500_ponkey_driver_platform_driver = 0;
2748      } else {
2749
2750      }
2751#line 261
2752      goto ldv_20919;
2753      case_1: /* CIL Label */ 
2754      {
2755#line 265
2756      LDV_IN_INTERRUPT = 2;
2757#line 270
2758      ab8500_ponkey_handler(var_ab8500_ponkey_handler_0_p0, var_ab8500_ponkey_handler_0_p1);
2759#line 271
2760      LDV_IN_INTERRUPT = 1;
2761      }
2762#line 277
2763      goto ldv_20919;
2764      switch_default: /* CIL Label */ ;
2765#line 278
2766      goto ldv_20919;
2767    } else {
2768      switch_break: /* CIL Label */ ;
2769    }
2770    }
2771  }
2772  ldv_20919: ;
2773  ldv_20923: 
2774  {
2775#line 237
2776  tmp___0 = __VERIFIER_nondet_int();
2777  }
2778#line 237
2779  if (tmp___0 != 0) {
2780#line 239
2781    goto ldv_20922;
2782  } else
2783#line 237
2784  if (ldv_s_ab8500_ponkey_driver_platform_driver != 0) {
2785#line 239
2786    goto ldv_20922;
2787  } else {
2788#line 241
2789    goto ldv_20924;
2790  }
2791  ldv_20924: ;
2792  ldv_module_exit: ;
2793  {
2794#line 287
2795  ldv_check_final_state();
2796  }
2797#line 290
2798  return;
2799}
2800}
2801#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
2802void ldv_blast_assert(void) 
2803{ 
2804
2805  {
2806  ERROR: ;
2807#line 6
2808  goto ERROR;
2809}
2810}
2811#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
2812extern int __VERIFIER_nondet_int(void) ;
2813#line 311 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2814int ldv_spin  =    0;
2815#line 315 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2816void ldv_check_alloc_flags(gfp_t flags ) 
2817{ 
2818
2819  {
2820#line 318
2821  if (ldv_spin != 0) {
2822#line 318
2823    if (flags != 32U) {
2824      {
2825#line 318
2826      ldv_blast_assert();
2827      }
2828    } else {
2829
2830    }
2831  } else {
2832
2833  }
2834#line 321
2835  return;
2836}
2837}
2838#line 321
2839extern struct page *ldv_some_page(void) ;
2840#line 324 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2841struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
2842{ struct page *tmp ;
2843
2844  {
2845#line 327
2846  if (ldv_spin != 0) {
2847#line 327
2848    if (flags != 32U) {
2849      {
2850#line 327
2851      ldv_blast_assert();
2852      }
2853    } else {
2854
2855    }
2856  } else {
2857
2858  }
2859  {
2860#line 329
2861  tmp = ldv_some_page();
2862  }
2863#line 329
2864  return (tmp);
2865}
2866}
2867#line 333 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2868void ldv_check_alloc_nonatomic(void) 
2869{ 
2870
2871  {
2872#line 336
2873  if (ldv_spin != 0) {
2874    {
2875#line 336
2876    ldv_blast_assert();
2877    }
2878  } else {
2879
2880  }
2881#line 339
2882  return;
2883}
2884}
2885#line 340 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2886void ldv_spin_lock(void) 
2887{ 
2888
2889  {
2890#line 343
2891  ldv_spin = 1;
2892#line 344
2893  return;
2894}
2895}
2896#line 347 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2897void ldv_spin_unlock(void) 
2898{ 
2899
2900  {
2901#line 350
2902  ldv_spin = 0;
2903#line 351
2904  return;
2905}
2906}
2907#line 354 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2908int ldv_spin_trylock(void) 
2909{ int is_lock ;
2910
2911  {
2912  {
2913#line 359
2914  is_lock = __VERIFIER_nondet_int();
2915  }
2916#line 361
2917  if (is_lock != 0) {
2918#line 364
2919    return (0);
2920  } else {
2921#line 369
2922    ldv_spin = 1;
2923#line 371
2924    return (1);
2925  }
2926}
2927}
2928#line 538 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2929void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
2930{ 
2931
2932  {
2933  {
2934#line 544
2935  ldv_check_alloc_flags(ldv_func_arg2);
2936#line 546
2937  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
2938  }
2939#line 547
2940  return ((void *)0);
2941}
2942}
2943#line 549 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/3010/dscv_tempdir/dscv/ri/43_1a/drivers/input/misc/ab8500-ponkey.c.p"
2944__inline static void *kzalloc(size_t size , gfp_t flags ) 
2945{ void *tmp ;
2946
2947  {
2948  {
2949#line 555
2950  ldv_check_alloc_flags(flags);
2951#line 556
2952  tmp = __VERIFIER_nondet_pointer();
2953  }
2954#line 556
2955  return (tmp);
2956}
2957}