Showing error 901

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--macintosh--mac_hid.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 3087
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

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