Showing error 1311

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--watchdog--geodewdt.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 3826
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 116 "include/linux/types.h"
  69typedef __u16 uint16_t;
  70#line 142 "include/linux/types.h"
  71typedef unsigned long sector_t;
  72#line 143 "include/linux/types.h"
  73typedef unsigned long blkcnt_t;
  74#line 202 "include/linux/types.h"
  75typedef unsigned int gfp_t;
  76#line 203 "include/linux/types.h"
  77typedef unsigned int fmode_t;
  78#line 206 "include/linux/types.h"
  79typedef u64 phys_addr_t;
  80#line 211 "include/linux/types.h"
  81typedef phys_addr_t resource_size_t;
  82#line 221 "include/linux/types.h"
  83struct __anonstruct_atomic_t_6 {
  84   int counter ;
  85};
  86#line 221 "include/linux/types.h"
  87typedef struct __anonstruct_atomic_t_6 atomic_t;
  88#line 226 "include/linux/types.h"
  89struct __anonstruct_atomic64_t_7 {
  90   long counter ;
  91};
  92#line 226 "include/linux/types.h"
  93typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  94#line 227 "include/linux/types.h"
  95struct list_head {
  96   struct list_head *next ;
  97   struct list_head *prev ;
  98};
  99#line 232
 100struct hlist_node;
 101#line 232 "include/linux/types.h"
 102struct hlist_head {
 103   struct hlist_node *first ;
 104};
 105#line 236 "include/linux/types.h"
 106struct hlist_node {
 107   struct hlist_node *next ;
 108   struct hlist_node **pprev ;
 109};
 110#line 247 "include/linux/types.h"
 111struct rcu_head {
 112   struct rcu_head *next ;
 113   void (*func)(struct rcu_head * ) ;
 114};
 115#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
 116struct module;
 117#line 55
 118struct module;
 119#line 146 "include/linux/init.h"
 120typedef void (*ctor_fn_t)(void);
 121#line 46 "include/linux/dynamic_debug.h"
 122struct device;
 123#line 46
 124struct device;
 125#line 57
 126struct completion;
 127#line 57
 128struct completion;
 129#line 348 "include/linux/kernel.h"
 130struct pid;
 131#line 348
 132struct pid;
 133#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
 134struct timespec;
 135#line 112
 136struct timespec;
 137#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
 138struct page;
 139#line 58
 140struct page;
 141#line 26 "include/asm-generic/getorder.h"
 142struct task_struct;
 143#line 26
 144struct task_struct;
 145#line 290 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 146struct file;
 147#line 290
 148struct file;
 149#line 305
 150struct seq_file;
 151#line 305
 152struct seq_file;
 153#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 154struct arch_spinlock;
 155#line 327
 156struct arch_spinlock;
 157#line 306 "include/linux/bitmap.h"
 158struct bug_entry {
 159   int bug_addr_disp ;
 160   int file_disp ;
 161   unsigned short line ;
 162   unsigned short flags ;
 163};
 164#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 165struct static_key;
 166#line 234
 167struct static_key;
 168#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 169struct kmem_cache;
 170#line 23 "include/asm-generic/atomic-long.h"
 171typedef atomic64_t atomic_long_t;
 172#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 173typedef u16 __ticket_t;
 174#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 175typedef u32 __ticketpair_t;
 176#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 177struct __raw_tickets {
 178   __ticket_t head ;
 179   __ticket_t tail ;
 180};
 181#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 182union __anonunion_ldv_5907_29 {
 183   __ticketpair_t head_tail ;
 184   struct __raw_tickets tickets ;
 185};
 186#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 187struct arch_spinlock {
 188   union __anonunion_ldv_5907_29 ldv_5907 ;
 189};
 190#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 191typedef struct arch_spinlock arch_spinlock_t;
 192#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 193struct __anonstruct_ldv_5914_31 {
 194   u32 read ;
 195   s32 write ;
 196};
 197#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 198union __anonunion_arch_rwlock_t_30 {
 199   s64 lock ;
 200   struct __anonstruct_ldv_5914_31 ldv_5914 ;
 201};
 202#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 203typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
 204#line 34
 205struct lockdep_map;
 206#line 34
 207struct lockdep_map;
 208#line 55 "include/linux/debug_locks.h"
 209struct stack_trace {
 210   unsigned int nr_entries ;
 211   unsigned int max_entries ;
 212   unsigned long *entries ;
 213   int skip ;
 214};
 215#line 26 "include/linux/stacktrace.h"
 216struct lockdep_subclass_key {
 217   char __one_byte ;
 218};
 219#line 53 "include/linux/lockdep.h"
 220struct lock_class_key {
 221   struct lockdep_subclass_key subkeys[8U] ;
 222};
 223#line 59 "include/linux/lockdep.h"
 224struct lock_class {
 225   struct list_head hash_entry ;
 226   struct list_head lock_entry ;
 227   struct lockdep_subclass_key *key ;
 228   unsigned int subclass ;
 229   unsigned int dep_gen_id ;
 230   unsigned long usage_mask ;
 231   struct stack_trace usage_traces[13U] ;
 232   struct list_head locks_after ;
 233   struct list_head locks_before ;
 234   unsigned int version ;
 235   unsigned long ops ;
 236   char const   *name ;
 237   int name_version ;
 238   unsigned long contention_point[4U] ;
 239   unsigned long contending_point[4U] ;
 240};
 241#line 144 "include/linux/lockdep.h"
 242struct lockdep_map {
 243   struct lock_class_key *key ;
 244   struct lock_class *class_cache[2U] ;
 245   char const   *name ;
 246   int cpu ;
 247   unsigned long ip ;
 248};
 249#line 556 "include/linux/lockdep.h"
 250struct raw_spinlock {
 251   arch_spinlock_t raw_lock ;
 252   unsigned int magic ;
 253   unsigned int owner_cpu ;
 254   void *owner ;
 255   struct lockdep_map dep_map ;
 256};
 257#line 32 "include/linux/spinlock_types.h"
 258typedef struct raw_spinlock raw_spinlock_t;
 259#line 33 "include/linux/spinlock_types.h"
 260struct __anonstruct_ldv_6122_33 {
 261   u8 __padding[24U] ;
 262   struct lockdep_map dep_map ;
 263};
 264#line 33 "include/linux/spinlock_types.h"
 265union __anonunion_ldv_6123_32 {
 266   struct raw_spinlock rlock ;
 267   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 268};
 269#line 33 "include/linux/spinlock_types.h"
 270struct spinlock {
 271   union __anonunion_ldv_6123_32 ldv_6123 ;
 272};
 273#line 76 "include/linux/spinlock_types.h"
 274typedef struct spinlock spinlock_t;
 275#line 23 "include/linux/rwlock_types.h"
 276struct __anonstruct_rwlock_t_34 {
 277   arch_rwlock_t raw_lock ;
 278   unsigned int magic ;
 279   unsigned int owner_cpu ;
 280   void *owner ;
 281   struct lockdep_map dep_map ;
 282};
 283#line 23 "include/linux/rwlock_types.h"
 284typedef struct __anonstruct_rwlock_t_34 rwlock_t;
 285#line 110 "include/linux/seqlock.h"
 286struct seqcount {
 287   unsigned int sequence ;
 288};
 289#line 121 "include/linux/seqlock.h"
 290typedef struct seqcount seqcount_t;
 291#line 254 "include/linux/seqlock.h"
 292struct timespec {
 293   __kernel_time_t tv_sec ;
 294   long tv_nsec ;
 295};
 296#line 286 "include/linux/time.h"
 297struct kstat {
 298   u64 ino ;
 299   dev_t dev ;
 300   umode_t mode ;
 301   unsigned int nlink ;
 302   uid_t uid ;
 303   gid_t gid ;
 304   dev_t rdev ;
 305   loff_t size ;
 306   struct timespec atime ;
 307   struct timespec mtime ;
 308   struct timespec ctime ;
 309   unsigned long blksize ;
 310   unsigned long long blocks ;
 311};
 312#line 48 "include/linux/wait.h"
 313struct __wait_queue_head {
 314   spinlock_t lock ;
 315   struct list_head task_list ;
 316};
 317#line 53 "include/linux/wait.h"
 318typedef struct __wait_queue_head wait_queue_head_t;
 319#line 670 "include/linux/mmzone.h"
 320struct mutex {
 321   atomic_t count ;
 322   spinlock_t wait_lock ;
 323   struct list_head wait_list ;
 324   struct task_struct *owner ;
 325   char const   *name ;
 326   void *magic ;
 327   struct lockdep_map dep_map ;
 328};
 329#line 171 "include/linux/mutex.h"
 330struct rw_semaphore;
 331#line 171
 332struct rw_semaphore;
 333#line 172 "include/linux/mutex.h"
 334struct rw_semaphore {
 335   long count ;
 336   raw_spinlock_t wait_lock ;
 337   struct list_head wait_list ;
 338   struct lockdep_map dep_map ;
 339};
 340#line 128 "include/linux/rwsem.h"
 341struct completion {
 342   unsigned int done ;
 343   wait_queue_head_t wait ;
 344};
 345#line 139 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/e820.h"
 346struct resource {
 347   resource_size_t start ;
 348   resource_size_t end ;
 349   char const   *name ;
 350   unsigned long flags ;
 351   struct resource *parent ;
 352   struct resource *sibling ;
 353   struct resource *child ;
 354};
 355#line 312 "include/linux/jiffies.h"
 356union ktime {
 357   s64 tv64 ;
 358};
 359#line 59 "include/linux/ktime.h"
 360typedef union ktime ktime_t;
 361#line 341
 362struct tvec_base;
 363#line 341
 364struct tvec_base;
 365#line 342 "include/linux/ktime.h"
 366struct timer_list {
 367   struct list_head entry ;
 368   unsigned long expires ;
 369   struct tvec_base *base ;
 370   void (*function)(unsigned long  ) ;
 371   unsigned long data ;
 372   int slack ;
 373   int start_pid ;
 374   void *start_site ;
 375   char start_comm[16U] ;
 376   struct lockdep_map lockdep_map ;
 377};
 378#line 302 "include/linux/timer.h"
 379struct work_struct;
 380#line 302
 381struct work_struct;
 382#line 45 "include/linux/workqueue.h"
 383struct work_struct {
 384   atomic_long_t data ;
 385   struct list_head entry ;
 386   void (*func)(struct work_struct * ) ;
 387   struct lockdep_map lockdep_map ;
 388};
 389#line 46 "include/linux/pm.h"
 390struct pm_message {
 391   int event ;
 392};
 393#line 52 "include/linux/pm.h"
 394typedef struct pm_message pm_message_t;
 395#line 53 "include/linux/pm.h"
 396struct dev_pm_ops {
 397   int (*prepare)(struct device * ) ;
 398   void (*complete)(struct device * ) ;
 399   int (*suspend)(struct device * ) ;
 400   int (*resume)(struct device * ) ;
 401   int (*freeze)(struct device * ) ;
 402   int (*thaw)(struct device * ) ;
 403   int (*poweroff)(struct device * ) ;
 404   int (*restore)(struct device * ) ;
 405   int (*suspend_late)(struct device * ) ;
 406   int (*resume_early)(struct device * ) ;
 407   int (*freeze_late)(struct device * ) ;
 408   int (*thaw_early)(struct device * ) ;
 409   int (*poweroff_late)(struct device * ) ;
 410   int (*restore_early)(struct device * ) ;
 411   int (*suspend_noirq)(struct device * ) ;
 412   int (*resume_noirq)(struct device * ) ;
 413   int (*freeze_noirq)(struct device * ) ;
 414   int (*thaw_noirq)(struct device * ) ;
 415   int (*poweroff_noirq)(struct device * ) ;
 416   int (*restore_noirq)(struct device * ) ;
 417   int (*runtime_suspend)(struct device * ) ;
 418   int (*runtime_resume)(struct device * ) ;
 419   int (*runtime_idle)(struct device * ) ;
 420};
 421#line 289
 422enum rpm_status {
 423    RPM_ACTIVE = 0,
 424    RPM_RESUMING = 1,
 425    RPM_SUSPENDED = 2,
 426    RPM_SUSPENDING = 3
 427} ;
 428#line 296
 429enum rpm_request {
 430    RPM_REQ_NONE = 0,
 431    RPM_REQ_IDLE = 1,
 432    RPM_REQ_SUSPEND = 2,
 433    RPM_REQ_AUTOSUSPEND = 3,
 434    RPM_REQ_RESUME = 4
 435} ;
 436#line 304
 437struct wakeup_source;
 438#line 304
 439struct wakeup_source;
 440#line 494 "include/linux/pm.h"
 441struct pm_subsys_data {
 442   spinlock_t lock ;
 443   unsigned int refcount ;
 444};
 445#line 499
 446struct dev_pm_qos_request;
 447#line 499
 448struct pm_qos_constraints;
 449#line 499 "include/linux/pm.h"
 450struct dev_pm_info {
 451   pm_message_t power_state ;
 452   unsigned char can_wakeup : 1 ;
 453   unsigned char async_suspend : 1 ;
 454   bool is_prepared ;
 455   bool is_suspended ;
 456   bool ignore_children ;
 457   spinlock_t lock ;
 458   struct list_head entry ;
 459   struct completion completion ;
 460   struct wakeup_source *wakeup ;
 461   bool wakeup_path ;
 462   struct timer_list suspend_timer ;
 463   unsigned long timer_expires ;
 464   struct work_struct work ;
 465   wait_queue_head_t wait_queue ;
 466   atomic_t usage_count ;
 467   atomic_t child_count ;
 468   unsigned char disable_depth : 3 ;
 469   unsigned char idle_notification : 1 ;
 470   unsigned char request_pending : 1 ;
 471   unsigned char deferred_resume : 1 ;
 472   unsigned char run_wake : 1 ;
 473   unsigned char runtime_auto : 1 ;
 474   unsigned char no_callbacks : 1 ;
 475   unsigned char irq_safe : 1 ;
 476   unsigned char use_autosuspend : 1 ;
 477   unsigned char timer_autosuspends : 1 ;
 478   enum rpm_request request ;
 479   enum rpm_status runtime_status ;
 480   int runtime_error ;
 481   int autosuspend_delay ;
 482   unsigned long last_busy ;
 483   unsigned long active_jiffies ;
 484   unsigned long suspended_jiffies ;
 485   unsigned long accounting_timestamp ;
 486   ktime_t suspend_time ;
 487   s64 max_time_suspended_ns ;
 488   struct dev_pm_qos_request *pq_req ;
 489   struct pm_subsys_data *subsys_data ;
 490   struct pm_qos_constraints *constraints ;
 491};
 492#line 558 "include/linux/pm.h"
 493struct dev_pm_domain {
 494   struct dev_pm_ops ops ;
 495};
 496#line 18 "include/asm-generic/pci_iomap.h"
 497struct vm_area_struct;
 498#line 18
 499struct vm_area_struct;
 500#line 37 "include/linux/kmod.h"
 501struct cred;
 502#line 37
 503struct cred;
 504#line 18 "include/linux/elf.h"
 505typedef __u64 Elf64_Addr;
 506#line 19 "include/linux/elf.h"
 507typedef __u16 Elf64_Half;
 508#line 23 "include/linux/elf.h"
 509typedef __u32 Elf64_Word;
 510#line 24 "include/linux/elf.h"
 511typedef __u64 Elf64_Xword;
 512#line 193 "include/linux/elf.h"
 513struct elf64_sym {
 514   Elf64_Word st_name ;
 515   unsigned char st_info ;
 516   unsigned char st_other ;
 517   Elf64_Half st_shndx ;
 518   Elf64_Addr st_value ;
 519   Elf64_Xword st_size ;
 520};
 521#line 201 "include/linux/elf.h"
 522typedef struct elf64_sym Elf64_Sym;
 523#line 445
 524struct sock;
 525#line 445
 526struct sock;
 527#line 446
 528struct kobject;
 529#line 446
 530struct kobject;
 531#line 447
 532enum kobj_ns_type {
 533    KOBJ_NS_TYPE_NONE = 0,
 534    KOBJ_NS_TYPE_NET = 1,
 535    KOBJ_NS_TYPES = 2
 536} ;
 537#line 453 "include/linux/elf.h"
 538struct kobj_ns_type_operations {
 539   enum kobj_ns_type type ;
 540   void *(*grab_current_ns)(void) ;
 541   void const   *(*netlink_ns)(struct sock * ) ;
 542   void const   *(*initial_ns)(void) ;
 543   void (*drop_ns)(void * ) ;
 544};
 545#line 57 "include/linux/kobject_ns.h"
 546struct attribute {
 547   char const   *name ;
 548   umode_t mode ;
 549   struct lock_class_key *key ;
 550   struct lock_class_key skey ;
 551};
 552#line 33 "include/linux/sysfs.h"
 553struct attribute_group {
 554   char const   *name ;
 555   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 556   struct attribute **attrs ;
 557};
 558#line 62 "include/linux/sysfs.h"
 559struct bin_attribute {
 560   struct attribute attr ;
 561   size_t size ;
 562   void *private ;
 563   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 564                   loff_t  , size_t  ) ;
 565   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 566                    loff_t  , size_t  ) ;
 567   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 568};
 569#line 98 "include/linux/sysfs.h"
 570struct sysfs_ops {
 571   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 572   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 573   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 574};
 575#line 117
 576struct sysfs_dirent;
 577#line 117
 578struct sysfs_dirent;
 579#line 182 "include/linux/sysfs.h"
 580struct kref {
 581   atomic_t refcount ;
 582};
 583#line 49 "include/linux/kobject.h"
 584struct kset;
 585#line 49
 586struct kobj_type;
 587#line 49 "include/linux/kobject.h"
 588struct kobject {
 589   char const   *name ;
 590   struct list_head entry ;
 591   struct kobject *parent ;
 592   struct kset *kset ;
 593   struct kobj_type *ktype ;
 594   struct sysfs_dirent *sd ;
 595   struct kref kref ;
 596   unsigned char state_initialized : 1 ;
 597   unsigned char state_in_sysfs : 1 ;
 598   unsigned char state_add_uevent_sent : 1 ;
 599   unsigned char state_remove_uevent_sent : 1 ;
 600   unsigned char uevent_suppress : 1 ;
 601};
 602#line 107 "include/linux/kobject.h"
 603struct kobj_type {
 604   void (*release)(struct kobject * ) ;
 605   struct sysfs_ops  const  *sysfs_ops ;
 606   struct attribute **default_attrs ;
 607   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 608   void const   *(*namespace)(struct kobject * ) ;
 609};
 610#line 115 "include/linux/kobject.h"
 611struct kobj_uevent_env {
 612   char *envp[32U] ;
 613   int envp_idx ;
 614   char buf[2048U] ;
 615   int buflen ;
 616};
 617#line 122 "include/linux/kobject.h"
 618struct kset_uevent_ops {
 619   int (* const  filter)(struct kset * , struct kobject * ) ;
 620   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 621   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 622};
 623#line 139 "include/linux/kobject.h"
 624struct kset {
 625   struct list_head list ;
 626   spinlock_t list_lock ;
 627   struct kobject kobj ;
 628   struct kset_uevent_ops  const  *uevent_ops ;
 629};
 630#line 215
 631struct kernel_param;
 632#line 215
 633struct kernel_param;
 634#line 216 "include/linux/kobject.h"
 635struct kernel_param_ops {
 636   int (*set)(char const   * , struct kernel_param  const  * ) ;
 637   int (*get)(char * , struct kernel_param  const  * ) ;
 638   void (*free)(void * ) ;
 639};
 640#line 49 "include/linux/moduleparam.h"
 641struct kparam_string;
 642#line 49
 643struct kparam_array;
 644#line 49 "include/linux/moduleparam.h"
 645union __anonunion_ldv_13363_134 {
 646   void *arg ;
 647   struct kparam_string  const  *str ;
 648   struct kparam_array  const  *arr ;
 649};
 650#line 49 "include/linux/moduleparam.h"
 651struct kernel_param {
 652   char const   *name ;
 653   struct kernel_param_ops  const  *ops ;
 654   u16 perm ;
 655   s16 level ;
 656   union __anonunion_ldv_13363_134 ldv_13363 ;
 657};
 658#line 61 "include/linux/moduleparam.h"
 659struct kparam_string {
 660   unsigned int maxlen ;
 661   char *string ;
 662};
 663#line 67 "include/linux/moduleparam.h"
 664struct kparam_array {
 665   unsigned int max ;
 666   unsigned int elemsize ;
 667   unsigned int *num ;
 668   struct kernel_param_ops  const  *ops ;
 669   void *elem ;
 670};
 671#line 458 "include/linux/moduleparam.h"
 672struct static_key {
 673   atomic_t enabled ;
 674};
 675#line 225 "include/linux/jump_label.h"
 676struct tracepoint;
 677#line 225
 678struct tracepoint;
 679#line 226 "include/linux/jump_label.h"
 680struct tracepoint_func {
 681   void *func ;
 682   void *data ;
 683};
 684#line 29 "include/linux/tracepoint.h"
 685struct tracepoint {
 686   char const   *name ;
 687   struct static_key key ;
 688   void (*regfunc)(void) ;
 689   void (*unregfunc)(void) ;
 690   struct tracepoint_func *funcs ;
 691};
 692#line 86 "include/linux/tracepoint.h"
 693struct kernel_symbol {
 694   unsigned long value ;
 695   char const   *name ;
 696};
 697#line 27 "include/linux/export.h"
 698struct mod_arch_specific {
 699
 700};
 701#line 34 "include/linux/module.h"
 702struct module_param_attrs;
 703#line 34 "include/linux/module.h"
 704struct module_kobject {
 705   struct kobject kobj ;
 706   struct module *mod ;
 707   struct kobject *drivers_dir ;
 708   struct module_param_attrs *mp ;
 709};
 710#line 43 "include/linux/module.h"
 711struct module_attribute {
 712   struct attribute attr ;
 713   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 714   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 715                    size_t  ) ;
 716   void (*setup)(struct module * , char const   * ) ;
 717   int (*test)(struct module * ) ;
 718   void (*free)(struct module * ) ;
 719};
 720#line 69
 721struct exception_table_entry;
 722#line 69
 723struct exception_table_entry;
 724#line 198
 725enum module_state {
 726    MODULE_STATE_LIVE = 0,
 727    MODULE_STATE_COMING = 1,
 728    MODULE_STATE_GOING = 2
 729} ;
 730#line 204 "include/linux/module.h"
 731struct module_ref {
 732   unsigned long incs ;
 733   unsigned long decs ;
 734};
 735#line 219
 736struct module_sect_attrs;
 737#line 219
 738struct module_notes_attrs;
 739#line 219
 740struct ftrace_event_call;
 741#line 219 "include/linux/module.h"
 742struct module {
 743   enum module_state state ;
 744   struct list_head list ;
 745   char name[56U] ;
 746   struct module_kobject mkobj ;
 747   struct module_attribute *modinfo_attrs ;
 748   char const   *version ;
 749   char const   *srcversion ;
 750   struct kobject *holders_dir ;
 751   struct kernel_symbol  const  *syms ;
 752   unsigned long const   *crcs ;
 753   unsigned int num_syms ;
 754   struct kernel_param *kp ;
 755   unsigned int num_kp ;
 756   unsigned int num_gpl_syms ;
 757   struct kernel_symbol  const  *gpl_syms ;
 758   unsigned long const   *gpl_crcs ;
 759   struct kernel_symbol  const  *unused_syms ;
 760   unsigned long const   *unused_crcs ;
 761   unsigned int num_unused_syms ;
 762   unsigned int num_unused_gpl_syms ;
 763   struct kernel_symbol  const  *unused_gpl_syms ;
 764   unsigned long const   *unused_gpl_crcs ;
 765   struct kernel_symbol  const  *gpl_future_syms ;
 766   unsigned long const   *gpl_future_crcs ;
 767   unsigned int num_gpl_future_syms ;
 768   unsigned int num_exentries ;
 769   struct exception_table_entry *extable ;
 770   int (*init)(void) ;
 771   void *module_init ;
 772   void *module_core ;
 773   unsigned int init_size ;
 774   unsigned int core_size ;
 775   unsigned int init_text_size ;
 776   unsigned int core_text_size ;
 777   unsigned int init_ro_size ;
 778   unsigned int core_ro_size ;
 779   struct mod_arch_specific arch ;
 780   unsigned int taints ;
 781   unsigned int num_bugs ;
 782   struct list_head bug_list ;
 783   struct bug_entry *bug_table ;
 784   Elf64_Sym *symtab ;
 785   Elf64_Sym *core_symtab ;
 786   unsigned int num_symtab ;
 787   unsigned int core_num_syms ;
 788   char *strtab ;
 789   char *core_strtab ;
 790   struct module_sect_attrs *sect_attrs ;
 791   struct module_notes_attrs *notes_attrs ;
 792   char *args ;
 793   void *percpu ;
 794   unsigned int percpu_size ;
 795   unsigned int num_tracepoints ;
 796   struct tracepoint * const  *tracepoints_ptrs ;
 797   unsigned int num_trace_bprintk_fmt ;
 798   char const   **trace_bprintk_fmt_start ;
 799   struct ftrace_event_call **trace_events ;
 800   unsigned int num_trace_events ;
 801   struct list_head source_list ;
 802   struct list_head target_list ;
 803   struct task_struct *waiter ;
 804   void (*exit)(void) ;
 805   struct module_ref *refptr ;
 806   ctor_fn_t (**ctors)(void) ;
 807   unsigned int num_ctors ;
 808};
 809#line 88 "include/linux/kmemleak.h"
 810struct kmem_cache_cpu {
 811   void **freelist ;
 812   unsigned long tid ;
 813   struct page *page ;
 814   struct page *partial ;
 815   int node ;
 816   unsigned int stat[26U] ;
 817};
 818#line 55 "include/linux/slub_def.h"
 819struct kmem_cache_node {
 820   spinlock_t list_lock ;
 821   unsigned long nr_partial ;
 822   struct list_head partial ;
 823   atomic_long_t nr_slabs ;
 824   atomic_long_t total_objects ;
 825   struct list_head full ;
 826};
 827#line 66 "include/linux/slub_def.h"
 828struct kmem_cache_order_objects {
 829   unsigned long x ;
 830};
 831#line 76 "include/linux/slub_def.h"
 832struct kmem_cache {
 833   struct kmem_cache_cpu *cpu_slab ;
 834   unsigned long flags ;
 835   unsigned long min_partial ;
 836   int size ;
 837   int objsize ;
 838   int offset ;
 839   int cpu_partial ;
 840   struct kmem_cache_order_objects oo ;
 841   struct kmem_cache_order_objects max ;
 842   struct kmem_cache_order_objects min ;
 843   gfp_t allocflags ;
 844   int refcount ;
 845   void (*ctor)(void * ) ;
 846   int inuse ;
 847   int align ;
 848   int reserved ;
 849   char const   *name ;
 850   struct list_head list ;
 851   struct kobject kobj ;
 852   int remote_node_defrag_ratio ;
 853   struct kmem_cache_node *node[1024U] ;
 854};
 855#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
 856struct file_operations;
 857#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
 858struct miscdevice {
 859   int minor ;
 860   char const   *name ;
 861   struct file_operations  const  *fops ;
 862   struct list_head list ;
 863   struct device *parent ;
 864   struct device *this_device ;
 865   char const   *nodename ;
 866   umode_t mode ;
 867};
 868#line 63 "include/linux/miscdevice.h"
 869struct watchdog_info {
 870   __u32 options ;
 871   __u32 firmware_version ;
 872   __u8 identity[32U] ;
 873};
 874#line 155 "include/linux/watchdog.h"
 875struct block_device;
 876#line 155
 877struct block_device;
 878#line 93 "include/linux/bit_spinlock.h"
 879struct hlist_bl_node;
 880#line 93 "include/linux/bit_spinlock.h"
 881struct hlist_bl_head {
 882   struct hlist_bl_node *first ;
 883};
 884#line 36 "include/linux/list_bl.h"
 885struct hlist_bl_node {
 886   struct hlist_bl_node *next ;
 887   struct hlist_bl_node **pprev ;
 888};
 889#line 114 "include/linux/rculist_bl.h"
 890struct nameidata;
 891#line 114
 892struct nameidata;
 893#line 115
 894struct path;
 895#line 115
 896struct path;
 897#line 116
 898struct vfsmount;
 899#line 116
 900struct vfsmount;
 901#line 117 "include/linux/rculist_bl.h"
 902struct qstr {
 903   unsigned int hash ;
 904   unsigned int len ;
 905   unsigned char const   *name ;
 906};
 907#line 72 "include/linux/dcache.h"
 908struct inode;
 909#line 72
 910struct dentry_operations;
 911#line 72
 912struct super_block;
 913#line 72 "include/linux/dcache.h"
 914union __anonunion_d_u_135 {
 915   struct list_head d_child ;
 916   struct rcu_head d_rcu ;
 917};
 918#line 72 "include/linux/dcache.h"
 919struct dentry {
 920   unsigned int d_flags ;
 921   seqcount_t d_seq ;
 922   struct hlist_bl_node d_hash ;
 923   struct dentry *d_parent ;
 924   struct qstr d_name ;
 925   struct inode *d_inode ;
 926   unsigned char d_iname[32U] ;
 927   unsigned int d_count ;
 928   spinlock_t d_lock ;
 929   struct dentry_operations  const  *d_op ;
 930   struct super_block *d_sb ;
 931   unsigned long d_time ;
 932   void *d_fsdata ;
 933   struct list_head d_lru ;
 934   union __anonunion_d_u_135 d_u ;
 935   struct list_head d_subdirs ;
 936   struct list_head d_alias ;
 937};
 938#line 123 "include/linux/dcache.h"
 939struct dentry_operations {
 940   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 941   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
 942   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
 943                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
 944   int (*d_delete)(struct dentry  const  * ) ;
 945   void (*d_release)(struct dentry * ) ;
 946   void (*d_prune)(struct dentry * ) ;
 947   void (*d_iput)(struct dentry * , struct inode * ) ;
 948   char *(*d_dname)(struct dentry * , char * , int  ) ;
 949   struct vfsmount *(*d_automount)(struct path * ) ;
 950   int (*d_manage)(struct dentry * , bool  ) ;
 951};
 952#line 402 "include/linux/dcache.h"
 953struct path {
 954   struct vfsmount *mnt ;
 955   struct dentry *dentry ;
 956};
 957#line 58 "include/linux/radix-tree.h"
 958struct radix_tree_node;
 959#line 58 "include/linux/radix-tree.h"
 960struct radix_tree_root {
 961   unsigned int height ;
 962   gfp_t gfp_mask ;
 963   struct radix_tree_node *rnode ;
 964};
 965#line 377
 966struct prio_tree_node;
 967#line 19 "include/linux/prio_tree.h"
 968struct prio_tree_node {
 969   struct prio_tree_node *left ;
 970   struct prio_tree_node *right ;
 971   struct prio_tree_node *parent ;
 972   unsigned long start ;
 973   unsigned long last ;
 974};
 975#line 27 "include/linux/prio_tree.h"
 976struct prio_tree_root {
 977   struct prio_tree_node *prio_tree_node ;
 978   unsigned short index_bits ;
 979   unsigned short raw ;
 980};
 981#line 111
 982enum pid_type {
 983    PIDTYPE_PID = 0,
 984    PIDTYPE_PGID = 1,
 985    PIDTYPE_SID = 2,
 986    PIDTYPE_MAX = 3
 987} ;
 988#line 118
 989struct pid_namespace;
 990#line 118 "include/linux/prio_tree.h"
 991struct upid {
 992   int nr ;
 993   struct pid_namespace *ns ;
 994   struct hlist_node pid_chain ;
 995};
 996#line 56 "include/linux/pid.h"
 997struct pid {
 998   atomic_t count ;
 999   unsigned int level ;
1000   struct hlist_head tasks[3U] ;
1001   struct rcu_head rcu ;
1002   struct upid numbers[1U] ;
1003};
1004#line 45 "include/linux/semaphore.h"
1005struct fiemap_extent {
1006   __u64 fe_logical ;
1007   __u64 fe_physical ;
1008   __u64 fe_length ;
1009   __u64 fe_reserved64[2U] ;
1010   __u32 fe_flags ;
1011   __u32 fe_reserved[3U] ;
1012};
1013#line 38 "include/linux/fiemap.h"
1014struct shrink_control {
1015   gfp_t gfp_mask ;
1016   unsigned long nr_to_scan ;
1017};
1018#line 14 "include/linux/shrinker.h"
1019struct shrinker {
1020   int (*shrink)(struct shrinker * , struct shrink_control * ) ;
1021   int seeks ;
1022   long batch ;
1023   struct list_head list ;
1024   atomic_long_t nr_in_batch ;
1025};
1026#line 43
1027enum migrate_mode {
1028    MIGRATE_ASYNC = 0,
1029    MIGRATE_SYNC_LIGHT = 1,
1030    MIGRATE_SYNC = 2
1031} ;
1032#line 49
1033struct export_operations;
1034#line 49
1035struct export_operations;
1036#line 51
1037struct iovec;
1038#line 51
1039struct iovec;
1040#line 52
1041struct kiocb;
1042#line 52
1043struct kiocb;
1044#line 53
1045struct pipe_inode_info;
1046#line 53
1047struct pipe_inode_info;
1048#line 54
1049struct poll_table_struct;
1050#line 54
1051struct poll_table_struct;
1052#line 55
1053struct kstatfs;
1054#line 55
1055struct kstatfs;
1056#line 435 "include/linux/fs.h"
1057struct iattr {
1058   unsigned int ia_valid ;
1059   umode_t ia_mode ;
1060   uid_t ia_uid ;
1061   gid_t ia_gid ;
1062   loff_t ia_size ;
1063   struct timespec ia_atime ;
1064   struct timespec ia_mtime ;
1065   struct timespec ia_ctime ;
1066   struct file *ia_file ;
1067};
1068#line 119 "include/linux/quota.h"
1069struct if_dqinfo {
1070   __u64 dqi_bgrace ;
1071   __u64 dqi_igrace ;
1072   __u32 dqi_flags ;
1073   __u32 dqi_valid ;
1074};
1075#line 176 "include/linux/percpu_counter.h"
1076struct fs_disk_quota {
1077   __s8 d_version ;
1078   __s8 d_flags ;
1079   __u16 d_fieldmask ;
1080   __u32 d_id ;
1081   __u64 d_blk_hardlimit ;
1082   __u64 d_blk_softlimit ;
1083   __u64 d_ino_hardlimit ;
1084   __u64 d_ino_softlimit ;
1085   __u64 d_bcount ;
1086   __u64 d_icount ;
1087   __s32 d_itimer ;
1088   __s32 d_btimer ;
1089   __u16 d_iwarns ;
1090   __u16 d_bwarns ;
1091   __s32 d_padding2 ;
1092   __u64 d_rtb_hardlimit ;
1093   __u64 d_rtb_softlimit ;
1094   __u64 d_rtbcount ;
1095   __s32 d_rtbtimer ;
1096   __u16 d_rtbwarns ;
1097   __s16 d_padding3 ;
1098   char d_padding4[8U] ;
1099};
1100#line 75 "include/linux/dqblk_xfs.h"
1101struct fs_qfilestat {
1102   __u64 qfs_ino ;
1103   __u64 qfs_nblks ;
1104   __u32 qfs_nextents ;
1105};
1106#line 150 "include/linux/dqblk_xfs.h"
1107typedef struct fs_qfilestat fs_qfilestat_t;
1108#line 151 "include/linux/dqblk_xfs.h"
1109struct fs_quota_stat {
1110   __s8 qs_version ;
1111   __u16 qs_flags ;
1112   __s8 qs_pad ;
1113   fs_qfilestat_t qs_uquota ;
1114   fs_qfilestat_t qs_gquota ;
1115   __u32 qs_incoredqs ;
1116   __s32 qs_btimelimit ;
1117   __s32 qs_itimelimit ;
1118   __s32 qs_rtbtimelimit ;
1119   __u16 qs_bwarnlimit ;
1120   __u16 qs_iwarnlimit ;
1121};
1122#line 165
1123struct dquot;
1124#line 165
1125struct dquot;
1126#line 185 "include/linux/quota.h"
1127typedef __kernel_uid32_t qid_t;
1128#line 186 "include/linux/quota.h"
1129typedef long long qsize_t;
1130#line 189 "include/linux/quota.h"
1131struct mem_dqblk {
1132   qsize_t dqb_bhardlimit ;
1133   qsize_t dqb_bsoftlimit ;
1134   qsize_t dqb_curspace ;
1135   qsize_t dqb_rsvspace ;
1136   qsize_t dqb_ihardlimit ;
1137   qsize_t dqb_isoftlimit ;
1138   qsize_t dqb_curinodes ;
1139   time_t dqb_btime ;
1140   time_t dqb_itime ;
1141};
1142#line 211
1143struct quota_format_type;
1144#line 211
1145struct quota_format_type;
1146#line 212 "include/linux/quota.h"
1147struct mem_dqinfo {
1148   struct quota_format_type *dqi_format ;
1149   int dqi_fmt_id ;
1150   struct list_head dqi_dirty_list ;
1151   unsigned long dqi_flags ;
1152   unsigned int dqi_bgrace ;
1153   unsigned int dqi_igrace ;
1154   qsize_t dqi_maxblimit ;
1155   qsize_t dqi_maxilimit ;
1156   void *dqi_priv ;
1157};
1158#line 275 "include/linux/quota.h"
1159struct dquot {
1160   struct hlist_node dq_hash ;
1161   struct list_head dq_inuse ;
1162   struct list_head dq_free ;
1163   struct list_head dq_dirty ;
1164   struct mutex dq_lock ;
1165   atomic_t dq_count ;
1166   wait_queue_head_t dq_wait_unused ;
1167   struct super_block *dq_sb ;
1168   unsigned int dq_id ;
1169   loff_t dq_off ;
1170   unsigned long dq_flags ;
1171   short dq_type ;
1172   struct mem_dqblk dq_dqb ;
1173};
1174#line 303 "include/linux/quota.h"
1175struct quota_format_ops {
1176   int (*check_quota_file)(struct super_block * , int  ) ;
1177   int (*read_file_info)(struct super_block * , int  ) ;
1178   int (*write_file_info)(struct super_block * , int  ) ;
1179   int (*free_file_info)(struct super_block * , int  ) ;
1180   int (*read_dqblk)(struct dquot * ) ;
1181   int (*commit_dqblk)(struct dquot * ) ;
1182   int (*release_dqblk)(struct dquot * ) ;
1183};
1184#line 314 "include/linux/quota.h"
1185struct dquot_operations {
1186   int (*write_dquot)(struct dquot * ) ;
1187   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
1188   void (*destroy_dquot)(struct dquot * ) ;
1189   int (*acquire_dquot)(struct dquot * ) ;
1190   int (*release_dquot)(struct dquot * ) ;
1191   int (*mark_dirty)(struct dquot * ) ;
1192   int (*write_info)(struct super_block * , int  ) ;
1193   qsize_t *(*get_reserved_space)(struct inode * ) ;
1194};
1195#line 328 "include/linux/quota.h"
1196struct quotactl_ops {
1197   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
1198   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
1199   int (*quota_off)(struct super_block * , int  ) ;
1200   int (*quota_sync)(struct super_block * , int  , int  ) ;
1201   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
1202   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
1203   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
1204   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
1205   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
1206   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
1207};
1208#line 344 "include/linux/quota.h"
1209struct quota_format_type {
1210   int qf_fmt_id ;
1211   struct quota_format_ops  const  *qf_ops ;
1212   struct module *qf_owner ;
1213   struct quota_format_type *qf_next ;
1214};
1215#line 390 "include/linux/quota.h"
1216struct quota_info {
1217   unsigned int flags ;
1218   struct mutex dqio_mutex ;
1219   struct mutex dqonoff_mutex ;
1220   struct rw_semaphore dqptr_sem ;
1221   struct inode *files[2U] ;
1222   struct mem_dqinfo info[2U] ;
1223   struct quota_format_ops  const  *ops[2U] ;
1224};
1225#line 421
1226struct address_space;
1227#line 421
1228struct address_space;
1229#line 422
1230struct writeback_control;
1231#line 422
1232struct writeback_control;
1233#line 585 "include/linux/fs.h"
1234union __anonunion_arg_138 {
1235   char *buf ;
1236   void *data ;
1237};
1238#line 585 "include/linux/fs.h"
1239struct __anonstruct_read_descriptor_t_137 {
1240   size_t written ;
1241   size_t count ;
1242   union __anonunion_arg_138 arg ;
1243   int error ;
1244};
1245#line 585 "include/linux/fs.h"
1246typedef struct __anonstruct_read_descriptor_t_137 read_descriptor_t;
1247#line 588 "include/linux/fs.h"
1248struct address_space_operations {
1249   int (*writepage)(struct page * , struct writeback_control * ) ;
1250   int (*readpage)(struct file * , struct page * ) ;
1251   int (*writepages)(struct address_space * , struct writeback_control * ) ;
1252   int (*set_page_dirty)(struct page * ) ;
1253   int (*readpages)(struct file * , struct address_space * , struct list_head * ,
1254                    unsigned int  ) ;
1255   int (*write_begin)(struct file * , struct address_space * , loff_t  , unsigned int  ,
1256                      unsigned int  , struct page ** , void ** ) ;
1257   int (*write_end)(struct file * , struct address_space * , loff_t  , unsigned int  ,
1258                    unsigned int  , struct page * , void * ) ;
1259   sector_t (*bmap)(struct address_space * , sector_t  ) ;
1260   void (*invalidatepage)(struct page * , unsigned long  ) ;
1261   int (*releasepage)(struct page * , gfp_t  ) ;
1262   void (*freepage)(struct page * ) ;
1263   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  * , loff_t  ,
1264                        unsigned long  ) ;
1265   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
1266   int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode  ) ;
1267   int (*launder_page)(struct page * ) ;
1268   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
1269   int (*error_remove_page)(struct address_space * , struct page * ) ;
1270};
1271#line 642
1272struct backing_dev_info;
1273#line 642
1274struct backing_dev_info;
1275#line 643 "include/linux/fs.h"
1276struct address_space {
1277   struct inode *host ;
1278   struct radix_tree_root page_tree ;
1279   spinlock_t tree_lock ;
1280   unsigned int i_mmap_writable ;
1281   struct prio_tree_root i_mmap ;
1282   struct list_head i_mmap_nonlinear ;
1283   struct mutex i_mmap_mutex ;
1284   unsigned long nrpages ;
1285   unsigned long writeback_index ;
1286   struct address_space_operations  const  *a_ops ;
1287   unsigned long flags ;
1288   struct backing_dev_info *backing_dev_info ;
1289   spinlock_t private_lock ;
1290   struct list_head private_list ;
1291   struct address_space *assoc_mapping ;
1292};
1293#line 664
1294struct request_queue;
1295#line 664
1296struct request_queue;
1297#line 665
1298struct hd_struct;
1299#line 665
1300struct gendisk;
1301#line 665 "include/linux/fs.h"
1302struct block_device {
1303   dev_t bd_dev ;
1304   int bd_openers ;
1305   struct inode *bd_inode ;
1306   struct super_block *bd_super ;
1307   struct mutex bd_mutex ;
1308   struct list_head bd_inodes ;
1309   void *bd_claiming ;
1310   void *bd_holder ;
1311   int bd_holders ;
1312   bool bd_write_holder ;
1313   struct list_head bd_holder_disks ;
1314   struct block_device *bd_contains ;
1315   unsigned int bd_block_size ;
1316   struct hd_struct *bd_part ;
1317   unsigned int bd_part_count ;
1318   int bd_invalidated ;
1319   struct gendisk *bd_disk ;
1320   struct request_queue *bd_queue ;
1321   struct list_head bd_list ;
1322   unsigned long bd_private ;
1323   int bd_fsfreeze_count ;
1324   struct mutex bd_fsfreeze_mutex ;
1325};
1326#line 737
1327struct posix_acl;
1328#line 737
1329struct posix_acl;
1330#line 738
1331struct inode_operations;
1332#line 738 "include/linux/fs.h"
1333union __anonunion_ldv_15809_139 {
1334   unsigned int const   i_nlink ;
1335   unsigned int __i_nlink ;
1336};
1337#line 738 "include/linux/fs.h"
1338union __anonunion_ldv_15828_140 {
1339   struct list_head i_dentry ;
1340   struct rcu_head i_rcu ;
1341};
1342#line 738
1343struct file_lock;
1344#line 738
1345struct cdev;
1346#line 738 "include/linux/fs.h"
1347union __anonunion_ldv_15845_141 {
1348   struct pipe_inode_info *i_pipe ;
1349   struct block_device *i_bdev ;
1350   struct cdev *i_cdev ;
1351};
1352#line 738 "include/linux/fs.h"
1353struct inode {
1354   umode_t i_mode ;
1355   unsigned short i_opflags ;
1356   uid_t i_uid ;
1357   gid_t i_gid ;
1358   unsigned int i_flags ;
1359   struct posix_acl *i_acl ;
1360   struct posix_acl *i_default_acl ;
1361   struct inode_operations  const  *i_op ;
1362   struct super_block *i_sb ;
1363   struct address_space *i_mapping ;
1364   void *i_security ;
1365   unsigned long i_ino ;
1366   union __anonunion_ldv_15809_139 ldv_15809 ;
1367   dev_t i_rdev ;
1368   struct timespec i_atime ;
1369   struct timespec i_mtime ;
1370   struct timespec i_ctime ;
1371   spinlock_t i_lock ;
1372   unsigned short i_bytes ;
1373   blkcnt_t i_blocks ;
1374   loff_t i_size ;
1375   unsigned long i_state ;
1376   struct mutex i_mutex ;
1377   unsigned long dirtied_when ;
1378   struct hlist_node i_hash ;
1379   struct list_head i_wb_list ;
1380   struct list_head i_lru ;
1381   struct list_head i_sb_list ;
1382   union __anonunion_ldv_15828_140 ldv_15828 ;
1383   atomic_t i_count ;
1384   unsigned int i_blkbits ;
1385   u64 i_version ;
1386   atomic_t i_dio_count ;
1387   atomic_t i_writecount ;
1388   struct file_operations  const  *i_fop ;
1389   struct file_lock *i_flock ;
1390   struct address_space i_data ;
1391   struct dquot *i_dquot[2U] ;
1392   struct list_head i_devices ;
1393   union __anonunion_ldv_15845_141 ldv_15845 ;
1394   __u32 i_generation ;
1395   __u32 i_fsnotify_mask ;
1396   struct hlist_head i_fsnotify_marks ;
1397   atomic_t i_readcount ;
1398   void *i_private ;
1399};
1400#line 941 "include/linux/fs.h"
1401struct fown_struct {
1402   rwlock_t lock ;
1403   struct pid *pid ;
1404   enum pid_type pid_type ;
1405   uid_t uid ;
1406   uid_t euid ;
1407   int signum ;
1408};
1409#line 949 "include/linux/fs.h"
1410struct file_ra_state {
1411   unsigned long start ;
1412   unsigned int size ;
1413   unsigned int async_size ;
1414   unsigned int ra_pages ;
1415   unsigned int mmap_miss ;
1416   loff_t prev_pos ;
1417};
1418#line 972 "include/linux/fs.h"
1419union __anonunion_f_u_142 {
1420   struct list_head fu_list ;
1421   struct rcu_head fu_rcuhead ;
1422};
1423#line 972 "include/linux/fs.h"
1424struct file {
1425   union __anonunion_f_u_142 f_u ;
1426   struct path f_path ;
1427   struct file_operations  const  *f_op ;
1428   spinlock_t f_lock ;
1429   int f_sb_list_cpu ;
1430   atomic_long_t f_count ;
1431   unsigned int f_flags ;
1432   fmode_t f_mode ;
1433   loff_t f_pos ;
1434   struct fown_struct f_owner ;
1435   struct cred  const  *f_cred ;
1436   struct file_ra_state f_ra ;
1437   u64 f_version ;
1438   void *f_security ;
1439   void *private_data ;
1440   struct list_head f_ep_links ;
1441   struct list_head f_tfile_llink ;
1442   struct address_space *f_mapping ;
1443   unsigned long f_mnt_write_state ;
1444};
1445#line 1111
1446struct files_struct;
1447#line 1111 "include/linux/fs.h"
1448typedef struct files_struct *fl_owner_t;
1449#line 1112 "include/linux/fs.h"
1450struct file_lock_operations {
1451   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
1452   void (*fl_release_private)(struct file_lock * ) ;
1453};
1454#line 1117 "include/linux/fs.h"
1455struct lock_manager_operations {
1456   int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ;
1457   void (*lm_notify)(struct file_lock * ) ;
1458   int (*lm_grant)(struct file_lock * , struct file_lock * , int  ) ;
1459   void (*lm_release_private)(struct file_lock * ) ;
1460   void (*lm_break)(struct file_lock * ) ;
1461   int (*lm_change)(struct file_lock ** , int  ) ;
1462};
1463#line 1134
1464struct nlm_lockowner;
1465#line 1134
1466struct nlm_lockowner;
1467#line 1135 "include/linux/fs.h"
1468struct nfs_lock_info {
1469   u32 state ;
1470   struct nlm_lockowner *owner ;
1471   struct list_head list ;
1472};
1473#line 14 "include/linux/nfs_fs_i.h"
1474struct nfs4_lock_state;
1475#line 14
1476struct nfs4_lock_state;
1477#line 15 "include/linux/nfs_fs_i.h"
1478struct nfs4_lock_info {
1479   struct nfs4_lock_state *owner ;
1480};
1481#line 19
1482struct fasync_struct;
1483#line 19 "include/linux/nfs_fs_i.h"
1484struct __anonstruct_afs_144 {
1485   struct list_head link ;
1486   int state ;
1487};
1488#line 19 "include/linux/nfs_fs_i.h"
1489union __anonunion_fl_u_143 {
1490   struct nfs_lock_info nfs_fl ;
1491   struct nfs4_lock_info nfs4_fl ;
1492   struct __anonstruct_afs_144 afs ;
1493};
1494#line 19 "include/linux/nfs_fs_i.h"
1495struct file_lock {
1496   struct file_lock *fl_next ;
1497   struct list_head fl_link ;
1498   struct list_head fl_block ;
1499   fl_owner_t fl_owner ;
1500   unsigned int fl_flags ;
1501   unsigned char fl_type ;
1502   unsigned int fl_pid ;
1503   struct pid *fl_nspid ;
1504   wait_queue_head_t fl_wait ;
1505   struct file *fl_file ;
1506   loff_t fl_start ;
1507   loff_t fl_end ;
1508   struct fasync_struct *fl_fasync ;
1509   unsigned long fl_break_time ;
1510   unsigned long fl_downgrade_time ;
1511   struct file_lock_operations  const  *fl_ops ;
1512   struct lock_manager_operations  const  *fl_lmops ;
1513   union __anonunion_fl_u_143 fl_u ;
1514};
1515#line 1221 "include/linux/fs.h"
1516struct fasync_struct {
1517   spinlock_t fa_lock ;
1518   int magic ;
1519   int fa_fd ;
1520   struct fasync_struct *fa_next ;
1521   struct file *fa_file ;
1522   struct rcu_head fa_rcu ;
1523};
1524#line 1417
1525struct file_system_type;
1526#line 1417
1527struct super_operations;
1528#line 1417
1529struct xattr_handler;
1530#line 1417
1531struct mtd_info;
1532#line 1417 "include/linux/fs.h"
1533struct super_block {
1534   struct list_head s_list ;
1535   dev_t s_dev ;
1536   unsigned char s_dirt ;
1537   unsigned char s_blocksize_bits ;
1538   unsigned long s_blocksize ;
1539   loff_t s_maxbytes ;
1540   struct file_system_type *s_type ;
1541   struct super_operations  const  *s_op ;
1542   struct dquot_operations  const  *dq_op ;
1543   struct quotactl_ops  const  *s_qcop ;
1544   struct export_operations  const  *s_export_op ;
1545   unsigned long s_flags ;
1546   unsigned long s_magic ;
1547   struct dentry *s_root ;
1548   struct rw_semaphore s_umount ;
1549   struct mutex s_lock ;
1550   int s_count ;
1551   atomic_t s_active ;
1552   void *s_security ;
1553   struct xattr_handler  const  **s_xattr ;
1554   struct list_head s_inodes ;
1555   struct hlist_bl_head s_anon ;
1556   struct list_head *s_files ;
1557   struct list_head s_mounts ;
1558   struct list_head s_dentry_lru ;
1559   int s_nr_dentry_unused ;
1560   spinlock_t s_inode_lru_lock ;
1561   struct list_head s_inode_lru ;
1562   int s_nr_inodes_unused ;
1563   struct block_device *s_bdev ;
1564   struct backing_dev_info *s_bdi ;
1565   struct mtd_info *s_mtd ;
1566   struct hlist_node s_instances ;
1567   struct quota_info s_dquot ;
1568   int s_frozen ;
1569   wait_queue_head_t s_wait_unfrozen ;
1570   char s_id[32U] ;
1571   u8 s_uuid[16U] ;
1572   void *s_fs_info ;
1573   unsigned int s_max_links ;
1574   fmode_t s_mode ;
1575   u32 s_time_gran ;
1576   struct mutex s_vfs_rename_mutex ;
1577   char *s_subtype ;
1578   char *s_options ;
1579   struct dentry_operations  const  *s_d_op ;
1580   int cleancache_poolid ;
1581   struct shrinker s_shrink ;
1582   atomic_long_t s_remove_count ;
1583   int s_readonly_remount ;
1584};
1585#line 1563 "include/linux/fs.h"
1586struct fiemap_extent_info {
1587   unsigned int fi_flags ;
1588   unsigned int fi_extents_mapped ;
1589   unsigned int fi_extents_max ;
1590   struct fiemap_extent *fi_extents_start ;
1591};
1592#line 1602 "include/linux/fs.h"
1593struct file_operations {
1594   struct module *owner ;
1595   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
1596   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
1597   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
1598   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
1599                       loff_t  ) ;
1600   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
1601                        loff_t  ) ;
1602   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
1603                                                   loff_t  , u64  , unsigned int  ) ) ;
1604   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
1605   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
1606   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
1607   int (*mmap)(struct file * , struct vm_area_struct * ) ;
1608   int (*open)(struct inode * , struct file * ) ;
1609   int (*flush)(struct file * , fl_owner_t  ) ;
1610   int (*release)(struct inode * , struct file * ) ;
1611   int (*fsync)(struct file * , loff_t  , loff_t  , int  ) ;
1612   int (*aio_fsync)(struct kiocb * , int  ) ;
1613   int (*fasync)(int  , struct file * , int  ) ;
1614   int (*lock)(struct file * , int  , struct file_lock * ) ;
1615   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
1616                       int  ) ;
1617   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
1618                                      unsigned long  , unsigned long  ) ;
1619   int (*check_flags)(int  ) ;
1620   int (*flock)(struct file * , int  , struct file_lock * ) ;
1621   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
1622                           unsigned int  ) ;
1623   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
1624                          unsigned int  ) ;
1625   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
1626   long (*fallocate)(struct file * , int  , loff_t  , loff_t  ) ;
1627};
1628#line 1637 "include/linux/fs.h"
1629struct inode_operations {
1630   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
1631   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
1632   int (*permission)(struct inode * , int  ) ;
1633   struct posix_acl *(*get_acl)(struct inode * , int  ) ;
1634   int (*readlink)(struct dentry * , char * , int  ) ;
1635   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
1636   int (*create)(struct inode * , struct dentry * , umode_t  , struct nameidata * ) ;
1637   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
1638   int (*unlink)(struct inode * , struct dentry * ) ;
1639   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
1640   int (*mkdir)(struct inode * , struct dentry * , umode_t  ) ;
1641   int (*rmdir)(struct inode * , struct dentry * ) ;
1642   int (*mknod)(struct inode * , struct dentry * , umode_t  , dev_t  ) ;
1643   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
1644   void (*truncate)(struct inode * ) ;
1645   int (*setattr)(struct dentry * , struct iattr * ) ;
1646   int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
1647   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
1648   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
1649   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
1650   int (*removexattr)(struct dentry * , char const   * ) ;
1651   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
1652   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64  , u64  ) ;
1653};
1654#line 1682 "include/linux/fs.h"
1655struct super_operations {
1656   struct inode *(*alloc_inode)(struct super_block * ) ;
1657   void (*destroy_inode)(struct inode * ) ;
1658   void (*dirty_inode)(struct inode * , int  ) ;
1659   int (*write_inode)(struct inode * , struct writeback_control * ) ;
1660   int (*drop_inode)(struct inode * ) ;
1661   void (*evict_inode)(struct inode * ) ;
1662   void (*put_super)(struct super_block * ) ;
1663   void (*write_super)(struct super_block * ) ;
1664   int (*sync_fs)(struct super_block * , int  ) ;
1665   int (*freeze_fs)(struct super_block * ) ;
1666   int (*unfreeze_fs)(struct super_block * ) ;
1667   int (*statfs)(struct dentry * , struct kstatfs * ) ;
1668   int (*remount_fs)(struct super_block * , int * , char * ) ;
1669   void (*umount_begin)(struct super_block * ) ;
1670   int (*show_options)(struct seq_file * , struct dentry * ) ;
1671   int (*show_devname)(struct seq_file * , struct dentry * ) ;
1672   int (*show_path)(struct seq_file * , struct dentry * ) ;
1673   int (*show_stats)(struct seq_file * , struct dentry * ) ;
1674   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
1675   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
1676                          loff_t  ) ;
1677   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
1678   int (*nr_cached_objects)(struct super_block * ) ;
1679   void (*free_cached_objects)(struct super_block * , int  ) ;
1680};
1681#line 1834 "include/linux/fs.h"
1682struct file_system_type {
1683   char const   *name ;
1684   int fs_flags ;
1685   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
1686   void (*kill_sb)(struct super_block * ) ;
1687   struct module *owner ;
1688   struct file_system_type *next ;
1689   struct hlist_head fs_supers ;
1690   struct lock_class_key s_lock_key ;
1691   struct lock_class_key s_umount_key ;
1692   struct lock_class_key s_vfs_rename_key ;
1693   struct lock_class_key i_lock_key ;
1694   struct lock_class_key i_mutex_key ;
1695   struct lock_class_key i_mutex_dir_key ;
1696};
1697#line 2674
1698struct klist_node;
1699#line 2674
1700struct klist_node;
1701#line 37 "include/linux/klist.h"
1702struct klist_node {
1703   void *n_klist ;
1704   struct list_head n_node ;
1705   struct kref n_ref ;
1706};
1707#line 67
1708struct dma_map_ops;
1709#line 67 "include/linux/klist.h"
1710struct dev_archdata {
1711   void *acpi_handle ;
1712   struct dma_map_ops *dma_ops ;
1713   void *iommu ;
1714};
1715#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1716struct pdev_archdata {
1717
1718};
1719#line 17
1720struct device_private;
1721#line 17
1722struct device_private;
1723#line 18
1724struct device_driver;
1725#line 18
1726struct device_driver;
1727#line 19
1728struct driver_private;
1729#line 19
1730struct driver_private;
1731#line 20
1732struct class;
1733#line 20
1734struct class;
1735#line 21
1736struct subsys_private;
1737#line 21
1738struct subsys_private;
1739#line 22
1740struct bus_type;
1741#line 22
1742struct bus_type;
1743#line 23
1744struct device_node;
1745#line 23
1746struct device_node;
1747#line 24
1748struct iommu_ops;
1749#line 24
1750struct iommu_ops;
1751#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1752struct bus_attribute {
1753   struct attribute attr ;
1754   ssize_t (*show)(struct bus_type * , char * ) ;
1755   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
1756};
1757#line 51 "include/linux/device.h"
1758struct device_attribute;
1759#line 51
1760struct driver_attribute;
1761#line 51 "include/linux/device.h"
1762struct bus_type {
1763   char const   *name ;
1764   char const   *dev_name ;
1765   struct device *dev_root ;
1766   struct bus_attribute *bus_attrs ;
1767   struct device_attribute *dev_attrs ;
1768   struct driver_attribute *drv_attrs ;
1769   int (*match)(struct device * , struct device_driver * ) ;
1770   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1771   int (*probe)(struct device * ) ;
1772   int (*remove)(struct device * ) ;
1773   void (*shutdown)(struct device * ) ;
1774   int (*suspend)(struct device * , pm_message_t  ) ;
1775   int (*resume)(struct device * ) ;
1776   struct dev_pm_ops  const  *pm ;
1777   struct iommu_ops *iommu_ops ;
1778   struct subsys_private *p ;
1779};
1780#line 125
1781struct device_type;
1782#line 182
1783struct of_device_id;
1784#line 182 "include/linux/device.h"
1785struct device_driver {
1786   char const   *name ;
1787   struct bus_type *bus ;
1788   struct module *owner ;
1789   char const   *mod_name ;
1790   bool suppress_bind_attrs ;
1791   struct of_device_id  const  *of_match_table ;
1792   int (*probe)(struct device * ) ;
1793   int (*remove)(struct device * ) ;
1794   void (*shutdown)(struct device * ) ;
1795   int (*suspend)(struct device * , pm_message_t  ) ;
1796   int (*resume)(struct device * ) ;
1797   struct attribute_group  const  **groups ;
1798   struct dev_pm_ops  const  *pm ;
1799   struct driver_private *p ;
1800};
1801#line 245 "include/linux/device.h"
1802struct driver_attribute {
1803   struct attribute attr ;
1804   ssize_t (*show)(struct device_driver * , char * ) ;
1805   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
1806};
1807#line 299
1808struct class_attribute;
1809#line 299 "include/linux/device.h"
1810struct class {
1811   char const   *name ;
1812   struct module *owner ;
1813   struct class_attribute *class_attrs ;
1814   struct device_attribute *dev_attrs ;
1815   struct bin_attribute *dev_bin_attrs ;
1816   struct kobject *dev_kobj ;
1817   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1818   char *(*devnode)(struct device * , umode_t * ) ;
1819   void (*class_release)(struct class * ) ;
1820   void (*dev_release)(struct device * ) ;
1821   int (*suspend)(struct device * , pm_message_t  ) ;
1822   int (*resume)(struct device * ) ;
1823   struct kobj_ns_type_operations  const  *ns_type ;
1824   void const   *(*namespace)(struct device * ) ;
1825   struct dev_pm_ops  const  *pm ;
1826   struct subsys_private *p ;
1827};
1828#line 394 "include/linux/device.h"
1829struct class_attribute {
1830   struct attribute attr ;
1831   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1832   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
1833   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
1834};
1835#line 447 "include/linux/device.h"
1836struct device_type {
1837   char const   *name ;
1838   struct attribute_group  const  **groups ;
1839   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1840   char *(*devnode)(struct device * , umode_t * ) ;
1841   void (*release)(struct device * ) ;
1842   struct dev_pm_ops  const  *pm ;
1843};
1844#line 474 "include/linux/device.h"
1845struct device_attribute {
1846   struct attribute attr ;
1847   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1848   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
1849                    size_t  ) ;
1850};
1851#line 557 "include/linux/device.h"
1852struct device_dma_parameters {
1853   unsigned int max_segment_size ;
1854   unsigned long segment_boundary_mask ;
1855};
1856#line 567
1857struct dma_coherent_mem;
1858#line 567 "include/linux/device.h"
1859struct device {
1860   struct device *parent ;
1861   struct device_private *p ;
1862   struct kobject kobj ;
1863   char const   *init_name ;
1864   struct device_type  const  *type ;
1865   struct mutex mutex ;
1866   struct bus_type *bus ;
1867   struct device_driver *driver ;
1868   void *platform_data ;
1869   struct dev_pm_info power ;
1870   struct dev_pm_domain *pm_domain ;
1871   int numa_node ;
1872   u64 *dma_mask ;
1873   u64 coherent_dma_mask ;
1874   struct device_dma_parameters *dma_parms ;
1875   struct list_head dma_pools ;
1876   struct dma_coherent_mem *dma_mem ;
1877   struct dev_archdata archdata ;
1878   struct device_node *of_node ;
1879   dev_t devt ;
1880   u32 id ;
1881   spinlock_t devres_lock ;
1882   struct list_head devres_head ;
1883   struct klist_node knode_class ;
1884   struct class *class ;
1885   struct attribute_group  const  **groups ;
1886   void (*release)(struct device * ) ;
1887};
1888#line 681 "include/linux/device.h"
1889struct wakeup_source {
1890   char const   *name ;
1891   struct list_head entry ;
1892   spinlock_t lock ;
1893   struct timer_list timer ;
1894   unsigned long timer_expires ;
1895   ktime_t total_time ;
1896   ktime_t max_time ;
1897   ktime_t last_time ;
1898   unsigned long event_count ;
1899   unsigned long active_count ;
1900   unsigned long relax_count ;
1901   unsigned long hit_count ;
1902   unsigned char active : 1 ;
1903};
1904#line 12 "include/linux/mod_devicetable.h"
1905typedef unsigned long kernel_ulong_t;
1906#line 215 "include/linux/mod_devicetable.h"
1907struct of_device_id {
1908   char name[32U] ;
1909   char type[32U] ;
1910   char compatible[128U] ;
1911   void *data ;
1912};
1913#line 492 "include/linux/mod_devicetable.h"
1914struct platform_device_id {
1915   char name[20U] ;
1916   kernel_ulong_t driver_data ;
1917};
1918#line 584
1919struct mfd_cell;
1920#line 584
1921struct mfd_cell;
1922#line 585 "include/linux/mod_devicetable.h"
1923struct platform_device {
1924   char const   *name ;
1925   int id ;
1926   struct device dev ;
1927   u32 num_resources ;
1928   struct resource *resource ;
1929   struct platform_device_id  const  *id_entry ;
1930   struct mfd_cell *mfd_cell ;
1931   struct pdev_archdata archdata ;
1932};
1933#line 51 "include/linux/platform_device.h"
1934struct platform_device_info {
1935   struct device *parent ;
1936   char const   *name ;
1937   int id ;
1938   struct resource  const  *res ;
1939   unsigned int num_res ;
1940   void const   *data ;
1941   size_t size_data ;
1942   u64 dma_mask ;
1943};
1944#line 163 "include/linux/platform_device.h"
1945struct platform_driver {
1946   int (*probe)(struct platform_device * ) ;
1947   int (*remove)(struct platform_device * ) ;
1948   void (*shutdown)(struct platform_device * ) ;
1949   int (*suspend)(struct platform_device * , pm_message_t  ) ;
1950   int (*resume)(struct platform_device * ) ;
1951   struct device_driver driver ;
1952   struct platform_device_id  const  *id_table ;
1953};
1954#line 19 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/emergency-restart.h"
1955struct exception_table_entry {
1956   unsigned long insn ;
1957   unsigned long fixup ;
1958};
1959#line 180 "include/linux/cs5535.h"
1960struct cs5535_mfgpt_timer;
1961#line 180
1962struct cs5535_mfgpt_timer;
1963#line 1 "<compiler builtins>"
1964long __builtin_expect(long  , long  ) ;
1965#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
1966void ldv_spin_lock(void) ;
1967#line 3
1968void ldv_spin_unlock(void) ;
1969#line 4
1970int ldv_spin_trylock(void) ;
1971#line 60 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
1972__inline static void set_bit(unsigned int nr , unsigned long volatile   *addr ) 
1973{ long volatile   *__cil_tmp3 ;
1974
1975  {
1976#line 68
1977  __cil_tmp3 = (long volatile   *)addr;
1978#line 68
1979  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; bts %1,%0": "+m" (*__cil_tmp3): "Ir" (nr): "memory");
1980#line 70
1981  return;
1982}
1983}
1984#line 98 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
1985__inline static void clear_bit(int nr , unsigned long volatile   *addr ) 
1986{ long volatile   *__cil_tmp3 ;
1987
1988  {
1989#line 105
1990  __cil_tmp3 = (long volatile   *)addr;
1991#line 105
1992  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; btr %1,%0": "+m" (*__cil_tmp3): "Ir" (nr));
1993#line 107
1994  return;
1995}
1996}
1997#line 195 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
1998__inline static int test_and_set_bit(int nr , unsigned long volatile   *addr ) 
1999{ int oldbit ;
2000  long volatile   *__cil_tmp4 ;
2001
2002  {
2003#line 199
2004  __cil_tmp4 = (long volatile   *)addr;
2005#line 199
2006  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; bts %2,%1\n\tsbb %0,%0": "=r" (oldbit),
2007                       "+m" (*__cil_tmp4): "Ir" (nr): "memory");
2008#line 202
2009  return (oldbit);
2010}
2011}
2012#line 246 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
2013__inline static int test_and_clear_bit(int nr , unsigned long volatile   *addr ) 
2014{ int oldbit ;
2015  long volatile   *__cil_tmp4 ;
2016
2017  {
2018#line 250
2019  __cil_tmp4 = (long volatile   *)addr;
2020#line 250
2021  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; btr %2,%1\n\tsbb %0,%0": "=r" (oldbit),
2022                       "+m" (*__cil_tmp4): "Ir" (nr): "memory");
2023#line 254
2024  return (oldbit);
2025}
2026}
2027#line 101 "include/linux/printk.h"
2028extern int printk(char const   *  , ...) ;
2029#line 192 "include/linux/kernel.h"
2030extern void might_fault(void) ;
2031#line 27 "include/linux/err.h"
2032__inline static long PTR_ERR(void const   *ptr ) 
2033{ 
2034
2035  {
2036#line 29
2037  return ((long )ptr);
2038}
2039}
2040#line 32 "include/linux/err.h"
2041__inline static long IS_ERR(void const   *ptr ) 
2042{ long tmp ;
2043  unsigned long __cil_tmp3 ;
2044  int __cil_tmp4 ;
2045  long __cil_tmp5 ;
2046
2047  {
2048  {
2049#line 34
2050  __cil_tmp3 = (unsigned long )ptr;
2051#line 34
2052  __cil_tmp4 = __cil_tmp3 > 0xfffffffffffff000UL;
2053#line 34
2054  __cil_tmp5 = (long )__cil_tmp4;
2055#line 34
2056  tmp = __builtin_expect(__cil_tmp5, 0L);
2057  }
2058#line 34
2059  return (tmp);
2060}
2061}
2062#line 26 "include/linux/export.h"
2063extern struct module __this_module ;
2064#line 453 "include/linux/module.h"
2065extern void __module_get(struct module * ) ;
2066#line 459
2067extern void module_put(struct module * ) ;
2068#line 220 "include/linux/slub_def.h"
2069extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
2070#line 223
2071void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
2072#line 11 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2073void ldv_check_alloc_flags(gfp_t flags ) ;
2074#line 12
2075void ldv_check_alloc_nonatomic(void) ;
2076#line 14
2077struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
2078#line 61 "include/linux/miscdevice.h"
2079extern int misc_register(struct miscdevice * ) ;
2080#line 62
2081extern int misc_deregister(struct miscdevice * ) ;
2082#line 2402 "include/linux/fs.h"
2083extern loff_t no_llseek(struct file * , loff_t  , int  ) ;
2084#line 2407
2085extern int nonseekable_open(struct inode * , struct file * ) ;
2086#line 40 "include/linux/platform_device.h"
2087extern void platform_device_unregister(struct platform_device * ) ;
2088#line 65
2089extern struct platform_device *platform_device_register_full(struct platform_device_info  const  * ) ;
2090#line 82 "include/linux/platform_device.h"
2091__inline static struct platform_device *platform_device_register_resndata(struct device *parent ,
2092                                                                          char const   *name ,
2093                                                                          int id ,
2094                                                                          struct resource  const  *res ,
2095                                                                          unsigned int num ,
2096                                                                          void const   *data ,
2097                                                                          size_t size ) 
2098{ struct platform_device_info pdevinfo ;
2099  struct platform_device *tmp ;
2100  struct platform_device_info *__cil_tmp10 ;
2101  unsigned long __cil_tmp11 ;
2102  unsigned long __cil_tmp12 ;
2103  unsigned long __cil_tmp13 ;
2104  unsigned long __cil_tmp14 ;
2105  unsigned long __cil_tmp15 ;
2106  unsigned long __cil_tmp16 ;
2107  unsigned long __cil_tmp17 ;
2108  struct platform_device_info  const  *__cil_tmp18 ;
2109
2110  {
2111  {
2112#line 87
2113  __cil_tmp10 = & pdevinfo;
2114#line 87
2115  *((struct device **)__cil_tmp10) = parent;
2116#line 87
2117  __cil_tmp11 = (unsigned long )(& pdevinfo) + 8;
2118#line 87
2119  *((char const   **)__cil_tmp11) = name;
2120#line 87
2121  __cil_tmp12 = (unsigned long )(& pdevinfo) + 16;
2122#line 87
2123  *((int *)__cil_tmp12) = id;
2124#line 87
2125  __cil_tmp13 = (unsigned long )(& pdevinfo) + 24;
2126#line 87
2127  *((struct resource  const  **)__cil_tmp13) = res;
2128#line 87
2129  __cil_tmp14 = (unsigned long )(& pdevinfo) + 32;
2130#line 87
2131  *((unsigned int *)__cil_tmp14) = num;
2132#line 87
2133  __cil_tmp15 = (unsigned long )(& pdevinfo) + 40;
2134#line 87
2135  *((void const   **)__cil_tmp15) = data;
2136#line 87
2137  __cil_tmp16 = (unsigned long )(& pdevinfo) + 48;
2138#line 87
2139  *((size_t *)__cil_tmp16) = size;
2140#line 87
2141  __cil_tmp17 = (unsigned long )(& pdevinfo) + 56;
2142#line 87
2143  *((u64 *)__cil_tmp17) = 0ULL;
2144#line 98
2145  __cil_tmp18 = (struct platform_device_info  const  *)(& pdevinfo);
2146#line 98
2147  tmp = platform_device_register_full(__cil_tmp18);
2148  }
2149#line 98
2150  return (tmp);
2151}
2152}
2153#line 123 "include/linux/platform_device.h"
2154__inline static struct platform_device *platform_device_register_simple(char const   *name ,
2155                                                                        int id , struct resource  const  *res ,
2156                                                                        unsigned int num ) 
2157{ struct platform_device *tmp ;
2158  struct device *__cil_tmp6 ;
2159  void const   *__cil_tmp7 ;
2160
2161  {
2162  {
2163#line 127
2164  __cil_tmp6 = (struct device *)0;
2165#line 127
2166  __cil_tmp7 = (void const   *)0;
2167#line 127
2168  tmp = platform_device_register_resndata(__cil_tmp6, name, id, res, num, __cil_tmp7,
2169                                          0UL);
2170  }
2171#line 127
2172  return (tmp);
2173}
2174}
2175#line 174
2176extern int platform_driver_register(struct platform_driver * ) ;
2177#line 175
2178extern void platform_driver_unregister(struct platform_driver * ) ;
2179#line 40 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
2180extern unsigned long _copy_to_user(void * , void const   * , unsigned int  ) ;
2181#line 63 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
2182__inline static int copy_to_user(void *dst , void const   *src , unsigned int size ) 
2183{ unsigned long tmp ;
2184
2185  {
2186  {
2187#line 65
2188  might_fault();
2189#line 67
2190  tmp = _copy_to_user(dst, src, size);
2191  }
2192#line 67
2193  return ((int )tmp);
2194}
2195}
2196#line 215 "include/linux/cs5535.h"
2197extern void cs5535_mfgpt_write(struct cs5535_mfgpt_timer * , uint16_t  , uint16_t  ) ;
2198#line 218
2199extern int cs5535_mfgpt_toggle_event(struct cs5535_mfgpt_timer * , int  , int  , int  ) ;
2200#line 222
2201extern struct cs5535_mfgpt_timer *cs5535_mfgpt_alloc_timer(int  , int  ) ;
2202#line 52 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2203static int timeout  =    60;
2204#line 58 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2205static bool nowayout  =    (bool )1;
2206#line 64 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2207static struct platform_device *geodewdt_platform_device  ;
2208#line 65 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2209static unsigned long wdt_flags  ;
2210#line 66 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2211static struct cs5535_mfgpt_timer *wdt_timer  ;
2212#line 67 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2213static int safe_close  ;
2214#line 69 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2215static void geodewdt_ping(void) 
2216{ uint16_t __cil_tmp1 ;
2217  uint16_t __cil_tmp2 ;
2218  uint16_t __cil_tmp3 ;
2219  uint16_t __cil_tmp4 ;
2220  uint16_t __cil_tmp5 ;
2221  uint16_t __cil_tmp6 ;
2222
2223  {
2224  {
2225#line 72
2226  __cil_tmp1 = (uint16_t )6;
2227#line 72
2228  __cil_tmp2 = (uint16_t )0;
2229#line 72
2230  cs5535_mfgpt_write(wdt_timer, __cil_tmp1, __cil_tmp2);
2231#line 75
2232  __cil_tmp3 = (uint16_t )4;
2233#line 75
2234  __cil_tmp4 = (uint16_t )0;
2235#line 75
2236  cs5535_mfgpt_write(wdt_timer, __cil_tmp3, __cil_tmp4);
2237#line 78
2238  __cil_tmp5 = (uint16_t )6;
2239#line 78
2240  __cil_tmp6 = (uint16_t )32768;
2241#line 78
2242  cs5535_mfgpt_write(wdt_timer, __cil_tmp5, __cil_tmp6);
2243  }
2244#line 79
2245  return;
2246}
2247}
2248#line 81 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2249static void geodewdt_disable(void) 
2250{ uint16_t __cil_tmp1 ;
2251  uint16_t __cil_tmp2 ;
2252  uint16_t __cil_tmp3 ;
2253  uint16_t __cil_tmp4 ;
2254
2255  {
2256  {
2257#line 83
2258  __cil_tmp1 = (uint16_t )6;
2259#line 83
2260  __cil_tmp2 = (uint16_t )0;
2261#line 83
2262  cs5535_mfgpt_write(wdt_timer, __cil_tmp1, __cil_tmp2);
2263#line 84
2264  __cil_tmp3 = (uint16_t )4;
2265#line 84
2266  __cil_tmp4 = (uint16_t )0;
2267#line 84
2268  cs5535_mfgpt_write(wdt_timer, __cil_tmp3, __cil_tmp4);
2269  }
2270#line 85
2271  return;
2272}
2273}
2274#line 87 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2275static int geodewdt_set_heartbeat(int val ) 
2276{ uint16_t __cil_tmp2 ;
2277  uint16_t __cil_tmp3 ;
2278  uint16_t __cil_tmp4 ;
2279  uint16_t __cil_tmp5 ;
2280  unsigned int __cil_tmp6 ;
2281  unsigned int __cil_tmp7 ;
2282  int __cil_tmp8 ;
2283  uint16_t __cil_tmp9 ;
2284  uint16_t __cil_tmp10 ;
2285  uint16_t __cil_tmp11 ;
2286  uint16_t __cil_tmp12 ;
2287  uint16_t __cil_tmp13 ;
2288  int *__cil_tmp14 ;
2289
2290  {
2291#line 89
2292  if (val <= 0) {
2293#line 90
2294    return (-22);
2295  } else
2296#line 89
2297  if (val > 131) {
2298#line 90
2299    return (-22);
2300  } else {
2301
2302  }
2303  {
2304#line 92
2305  __cil_tmp2 = (uint16_t )6;
2306#line 92
2307  __cil_tmp3 = (uint16_t )0;
2308#line 92
2309  cs5535_mfgpt_write(wdt_timer, __cil_tmp2, __cil_tmp3);
2310#line 93
2311  __cil_tmp4 = (uint16_t )2;
2312#line 93
2313  __cil_tmp5 = (uint16_t )val;
2314#line 93
2315  __cil_tmp6 = (unsigned int )__cil_tmp5;
2316#line 93
2317  __cil_tmp7 = __cil_tmp6 * 500U;
2318#line 93
2319  __cil_tmp8 = (int )__cil_tmp7;
2320#line 93
2321  __cil_tmp9 = (uint16_t )__cil_tmp8;
2322#line 93
2323  cs5535_mfgpt_write(wdt_timer, __cil_tmp4, __cil_tmp9);
2324#line 94
2325  __cil_tmp10 = (uint16_t )4;
2326#line 94
2327  __cil_tmp11 = (uint16_t )0;
2328#line 94
2329  cs5535_mfgpt_write(wdt_timer, __cil_tmp10, __cil_tmp11);
2330#line 95
2331  __cil_tmp12 = (uint16_t )6;
2332#line 95
2333  __cil_tmp13 = (uint16_t )32768;
2334#line 95
2335  cs5535_mfgpt_write(wdt_timer, __cil_tmp12, __cil_tmp13);
2336#line 97
2337  __cil_tmp14 = & timeout;
2338#line 97
2339  *__cil_tmp14 = val;
2340  }
2341#line 98
2342  return (0);
2343}
2344}
2345#line 101 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2346static int geodewdt_open(struct inode *inode , struct file *file ) 
2347{ int tmp ;
2348  int tmp___0 ;
2349  int tmp___1 ;
2350  unsigned long volatile   *__cil_tmp6 ;
2351  unsigned long volatile   *__cil_tmp7 ;
2352
2353  {
2354  {
2355#line 103
2356  __cil_tmp6 = (unsigned long volatile   *)(& wdt_flags);
2357#line 103
2358  tmp = test_and_set_bit(1, __cil_tmp6);
2359  }
2360#line 103
2361  if (tmp != 0) {
2362#line 104
2363    return (-16);
2364  } else {
2365
2366  }
2367  {
2368#line 106
2369  __cil_tmp7 = (unsigned long volatile   *)(& wdt_flags);
2370#line 106
2371  tmp___0 = test_and_clear_bit(2, __cil_tmp7);
2372  }
2373#line 106
2374  if (tmp___0 == 0) {
2375    {
2376#line 107
2377    __module_get(& __this_module);
2378    }
2379  } else {
2380
2381  }
2382  {
2383#line 109
2384  geodewdt_ping();
2385#line 110
2386  tmp___1 = nonseekable_open(inode, file);
2387  }
2388#line 110
2389  return (tmp___1);
2390}
2391}
2392#line 113 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2393static int geodewdt_release(struct inode *inode , struct file *file ) 
2394{ unsigned long volatile   *__cil_tmp3 ;
2395  unsigned long volatile   *__cil_tmp4 ;
2396
2397  {
2398#line 115
2399  if (safe_close != 0) {
2400    {
2401#line 116
2402    geodewdt_disable();
2403#line 117
2404    module_put(& __this_module);
2405    }
2406  } else {
2407    {
2408#line 119
2409    printk("<2>geodewdt: Unexpected close - watchdog is not stopping\n");
2410#line 120
2411    geodewdt_ping();
2412#line 122
2413    __cil_tmp3 = (unsigned long volatile   *)(& wdt_flags);
2414#line 122
2415    set_bit(2U, __cil_tmp3);
2416    }
2417  }
2418  {
2419#line 125
2420  __cil_tmp4 = (unsigned long volatile   *)(& wdt_flags);
2421#line 125
2422  clear_bit(1, __cil_tmp4);
2423#line 126
2424  safe_close = 0;
2425  }
2426#line 127
2427  return (0);
2428}
2429}
2430#line 130 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2431static ssize_t geodewdt_write(struct file *file , char const   *data , size_t len ,
2432                              loff_t *ppos ) 
2433{ size_t i ;
2434  char c ;
2435  int __ret_gu ;
2436  unsigned long __val_gu ;
2437  bool *__cil_tmp9 ;
2438  bool __cil_tmp10 ;
2439  signed char __cil_tmp11 ;
2440  int __cil_tmp12 ;
2441
2442  {
2443#line 133
2444  if (len != 0UL) {
2445    {
2446#line 134
2447    __cil_tmp9 = & nowayout;
2448#line 134
2449    __cil_tmp10 = *__cil_tmp9;
2450#line 134
2451    if (! __cil_tmp10) {
2452#line 136
2453      safe_close = 0;
2454#line 138
2455      i = 0UL;
2456#line 138
2457      goto ldv_19231;
2458      ldv_19230: 
2459      {
2460#line 141
2461      might_fault();
2462      }
2463#line 141
2464      if (1 == 1) {
2465#line 141
2466        goto case_1;
2467      } else
2468#line 141
2469      if (1 == 2) {
2470#line 141
2471        goto case_2;
2472      } else
2473#line 141
2474      if (1 == 4) {
2475#line 141
2476        goto case_4;
2477      } else
2478#line 141
2479      if (1 == 8) {
2480#line 141
2481        goto case_8;
2482      } else {
2483        {
2484#line 141
2485        goto switch_default;
2486#line 141
2487        if (0) {
2488          case_1: /* CIL Label */ 
2489#line 141
2490          __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" (data + i));
2491#line 141
2492          goto ldv_19224;
2493          case_2: /* CIL Label */ 
2494#line 141
2495          __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" (data + i));
2496#line 141
2497          goto ldv_19224;
2498          case_4: /* CIL Label */ 
2499#line 141
2500          __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" (data + i));
2501#line 141
2502          goto ldv_19224;
2503          case_8: /* CIL Label */ 
2504#line 141
2505          __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" (data + i));
2506#line 141
2507          goto ldv_19224;
2508          switch_default: /* CIL Label */ 
2509#line 141
2510          __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" (data + i));
2511#line 141
2512          goto ldv_19224;
2513        } else {
2514          switch_break: /* CIL Label */ ;
2515        }
2516        }
2517      }
2518      ldv_19224: 
2519#line 141
2520      c = (char )__val_gu;
2521#line 141
2522      if (__ret_gu != 0) {
2523#line 142
2524        return (-14L);
2525      } else {
2526
2527      }
2528      {
2529#line 144
2530      __cil_tmp11 = (signed char )c;
2531#line 144
2532      __cil_tmp12 = (int )__cil_tmp11;
2533#line 144
2534      if (__cil_tmp12 == 86) {
2535#line 145
2536        safe_close = 1;
2537      } else {
2538
2539      }
2540      }
2541#line 138
2542      i = i + 1UL;
2543      ldv_19231: ;
2544#line 138
2545      if (i != len) {
2546#line 139
2547        goto ldv_19230;
2548      } else {
2549#line 141
2550        goto ldv_19232;
2551      }
2552      ldv_19232: ;
2553    } else {
2554
2555    }
2556    }
2557    {
2558#line 149
2559    geodewdt_ping();
2560    }
2561  } else {
2562
2563  }
2564#line 151
2565  return ((ssize_t )len);
2566}
2567}
2568#line 154 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
2569static long geodewdt_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) 
2570{ void *argp ;
2571  int *p ;
2572  int interval ;
2573  struct watchdog_info ident ;
2574  long tmp___0 ;
2575  int tmp___1 ;
2576  int __ret_pu ;
2577  int __pu_val ;
2578  int options ;
2579  int ret ;
2580  int __ret_gu ;
2581  unsigned long __val_gu ;
2582  int __ret_gu___0 ;
2583  unsigned long __val_gu___0 ;
2584  int tmp___2 ;
2585  int __ret_pu___0 ;
2586  int __pu_val___0 ;
2587  struct watchdog_info *__cil_tmp22 ;
2588  unsigned long __cil_tmp23 ;
2589  unsigned long __cil_tmp24 ;
2590  unsigned long __cil_tmp25 ;
2591  unsigned long __cil_tmp26 ;
2592  unsigned long __cil_tmp27 ;
2593  unsigned long __cil_tmp28 ;
2594  unsigned long __cil_tmp29 ;
2595  unsigned long __cil_tmp30 ;
2596  unsigned long __cil_tmp31 ;
2597  unsigned long __cil_tmp32 ;
2598  unsigned long __cil_tmp33 ;
2599  unsigned long __cil_tmp34 ;
2600  unsigned long __cil_tmp35 ;
2601  unsigned long __cil_tmp36 ;
2602  unsigned long __cil_tmp37 ;
2603  unsigned long __cil_tmp38 ;
2604  unsigned long __cil_tmp39 ;
2605  unsigned long __cil_tmp40 ;
2606  unsigned long __cil_tmp41 ;
2607  unsigned long __cil_tmp42 ;
2608  unsigned long __cil_tmp43 ;
2609  unsigned long __cil_tmp44 ;
2610  unsigned long __cil_tmp45 ;
2611  unsigned long __cil_tmp46 ;
2612  unsigned long __cil_tmp47 ;
2613  unsigned long __cil_tmp48 ;
2614  unsigned long __cil_tmp49 ;
2615  unsigned long __cil_tmp50 ;
2616  unsigned long __cil_tmp51 ;
2617  unsigned long __cil_tmp52 ;
2618  unsigned long __cil_tmp53 ;
2619  unsigned long __cil_tmp54 ;
2620  unsigned long __cil_tmp55 ;
2621  unsigned long __cil_tmp56 ;
2622  unsigned long __cil_tmp57 ;
2623  unsigned long __cil_tmp58 ;
2624  unsigned long __cil_tmp59 ;
2625  unsigned long __cil_tmp60 ;
2626  unsigned long __cil_tmp61 ;
2627  unsigned long __cil_tmp62 ;
2628  unsigned long __cil_tmp63 ;
2629  unsigned long __cil_tmp64 ;
2630  unsigned long __cil_tmp65 ;
2631  unsigned long __cil_tmp66 ;
2632  unsigned long __cil_tmp67 ;
2633  unsigned long __cil_tmp68 ;
2634  unsigned long __cil_tmp69 ;
2635  unsigned long __cil_tmp70 ;
2636  unsigned long __cil_tmp71 ;
2637  unsigned long __cil_tmp72 ;
2638  unsigned long __cil_tmp73 ;
2639  unsigned long __cil_tmp74 ;
2640  unsigned long __cil_tmp75 ;
2641  unsigned long __cil_tmp76 ;
2642  unsigned long __cil_tmp77 ;
2643  unsigned long __cil_tmp78 ;
2644  unsigned long __cil_tmp79 ;
2645  unsigned long __cil_tmp80 ;
2646  unsigned long __cil_tmp81 ;
2647  unsigned long __cil_tmp82 ;
2648  unsigned long __cil_tmp83 ;
2649  unsigned long __cil_tmp84 ;
2650  unsigned long __cil_tmp85 ;
2651  unsigned long __cil_tmp86 ;
2652  unsigned long __cil_tmp87 ;
2653  unsigned long __cil_tmp88 ;
2654  unsigned long __cil_tmp89 ;
2655  unsigned long __cil_tmp90 ;
2656  unsigned long __cil_tmp91 ;
2657  unsigned long __cil_tmp92 ;
2658  unsigned long __cil_tmp93 ;
2659  unsigned long __cil_tmp94 ;
2660  unsigned long __cil_tmp95 ;
2661  unsigned long __cil_tmp96 ;
2662  unsigned long __cil_tmp97 ;
2663  unsigned long __cil_tmp98 ;
2664  unsigned long __cil_tmp99 ;
2665  unsigned long __cil_tmp100 ;
2666  unsigned long __cil_tmp101 ;
2667  unsigned long __cil_tmp102 ;
2668  unsigned long __cil_tmp103 ;
2669  unsigned long __cil_tmp104 ;
2670  unsigned long __cil_tmp105 ;
2671  unsigned long __cil_tmp106 ;
2672  unsigned long __cil_tmp107 ;
2673  unsigned long __cil_tmp108 ;
2674  unsigned long __cil_tmp109 ;
2675  unsigned long __cil_tmp110 ;
2676  unsigned long __cil_tmp111 ;
2677  unsigned long __cil_tmp112 ;
2678  unsigned long __cil_tmp113 ;
2679  unsigned long __cil_tmp114 ;
2680  unsigned long __cil_tmp115 ;
2681  unsigned long __cil_tmp116 ;
2682  unsigned long __cil_tmp117 ;
2683  unsigned long __cil_tmp118 ;
2684  unsigned long __cil_tmp119 ;
2685  void const   *__cil_tmp120 ;
2686  int __cil_tmp121 ;
2687  int *__cil_tmp122 ;
2688
2689  {
2690#line 157
2691  argp = (void *)arg;
2692#line 158
2693  p = (int *)argp;
2694#line 161
2695  __cil_tmp22 = & ident;
2696#line 161
2697  *((__u32 *)__cil_tmp22) = 33152U;
2698#line 161
2699  __cil_tmp23 = (unsigned long )(& ident) + 4;
2700#line 161
2701  *((__u32 *)__cil_tmp23) = 1U;
2702#line 161
2703  __cil_tmp24 = 0 * 1UL;
2704#line 161
2705  __cil_tmp25 = 8 + __cil_tmp24;
2706#line 161
2707  __cil_tmp26 = (unsigned long )(& ident) + __cil_tmp25;
2708#line 161
2709  *((__u8 *)__cil_tmp26) = (__u8 )'G';
2710#line 161
2711  __cil_tmp27 = 1 * 1UL;
2712#line 161
2713  __cil_tmp28 = 8 + __cil_tmp27;
2714#line 161
2715  __cil_tmp29 = (unsigned long )(& ident) + __cil_tmp28;
2716#line 161
2717  *((__u8 *)__cil_tmp29) = (__u8 )'e';
2718#line 161
2719  __cil_tmp30 = 2 * 1UL;
2720#line 161
2721  __cil_tmp31 = 8 + __cil_tmp30;
2722#line 161
2723  __cil_tmp32 = (unsigned long )(& ident) + __cil_tmp31;
2724#line 161
2725  *((__u8 *)__cil_tmp32) = (__u8 )'o';
2726#line 161
2727  __cil_tmp33 = 3 * 1UL;
2728#line 161
2729  __cil_tmp34 = 8 + __cil_tmp33;
2730#line 161
2731  __cil_tmp35 = (unsigned long )(& ident) + __cil_tmp34;
2732#line 161
2733  *((__u8 *)__cil_tmp35) = (__u8 )'d';
2734#line 161
2735  __cil_tmp36 = 4 * 1UL;
2736#line 161
2737  __cil_tmp37 = 8 + __cil_tmp36;
2738#line 161
2739  __cil_tmp38 = (unsigned long )(& ident) + __cil_tmp37;
2740#line 161
2741  *((__u8 *)__cil_tmp38) = (__u8 )'e';
2742#line 161
2743  __cil_tmp39 = 5 * 1UL;
2744#line 161
2745  __cil_tmp40 = 8 + __cil_tmp39;
2746#line 161
2747  __cil_tmp41 = (unsigned long )(& ident) + __cil_tmp40;
2748#line 161
2749  *((__u8 *)__cil_tmp41) = (__u8 )' ';
2750#line 161
2751  __cil_tmp42 = 6 * 1UL;
2752#line 161
2753  __cil_tmp43 = 8 + __cil_tmp42;
2754#line 161
2755  __cil_tmp44 = (unsigned long )(& ident) + __cil_tmp43;
2756#line 161
2757  *((__u8 *)__cil_tmp44) = (__u8 )'G';
2758#line 161
2759  __cil_tmp45 = 7 * 1UL;
2760#line 161
2761  __cil_tmp46 = 8 + __cil_tmp45;
2762#line 161
2763  __cil_tmp47 = (unsigned long )(& ident) + __cil_tmp46;
2764#line 161
2765  *((__u8 *)__cil_tmp47) = (__u8 )'X';
2766#line 161
2767  __cil_tmp48 = 8 * 1UL;
2768#line 161
2769  __cil_tmp49 = 8 + __cil_tmp48;
2770#line 161
2771  __cil_tmp50 = (unsigned long )(& ident) + __cil_tmp49;
2772#line 161
2773  *((__u8 *)__cil_tmp50) = (__u8 )'/';
2774#line 161
2775  __cil_tmp51 = 9 * 1UL;
2776#line 161
2777  __cil_tmp52 = 8 + __cil_tmp51;
2778#line 161
2779  __cil_tmp53 = (unsigned long )(& ident) + __cil_tmp52;
2780#line 161
2781  *((__u8 *)__cil_tmp53) = (__u8 )'L';
2782#line 161
2783  __cil_tmp54 = 10 * 1UL;
2784#line 161
2785  __cil_tmp55 = 8 + __cil_tmp54;
2786#line 161
2787  __cil_tmp56 = (unsigned long )(& ident) + __cil_tmp55;
2788#line 161
2789  *((__u8 *)__cil_tmp56) = (__u8 )'X';
2790#line 161
2791  __cil_tmp57 = 11 * 1UL;
2792#line 161
2793  __cil_tmp58 = 8 + __cil_tmp57;
2794#line 161
2795  __cil_tmp59 = (unsigned long )(& ident) + __cil_tmp58;
2796#line 161
2797  *((__u8 *)__cil_tmp59) = (__u8 )' ';
2798#line 161
2799  __cil_tmp60 = 12 * 1UL;
2800#line 161
2801  __cil_tmp61 = 8 + __cil_tmp60;
2802#line 161
2803  __cil_tmp62 = (unsigned long )(& ident) + __cil_tmp61;
2804#line 161
2805  *((__u8 *)__cil_tmp62) = (__u8 )'W';
2806#line 161
2807  __cil_tmp63 = 13 * 1UL;
2808#line 161
2809  __cil_tmp64 = 8 + __cil_tmp63;
2810#line 161
2811  __cil_tmp65 = (unsigned long )(& ident) + __cil_tmp64;
2812#line 161
2813  *((__u8 *)__cil_tmp65) = (__u8 )'D';
2814#line 161
2815  __cil_tmp66 = 14 * 1UL;
2816#line 161
2817  __cil_tmp67 = 8 + __cil_tmp66;
2818#line 161
2819  __cil_tmp68 = (unsigned long )(& ident) + __cil_tmp67;
2820#line 161
2821  *((__u8 *)__cil_tmp68) = (__u8 )'T';
2822#line 161
2823  __cil_tmp69 = 15 * 1UL;
2824#line 161
2825  __cil_tmp70 = 8 + __cil_tmp69;
2826#line 161
2827  __cil_tmp71 = (unsigned long )(& ident) + __cil_tmp70;
2828#line 161
2829  *((__u8 *)__cil_tmp71) = (__u8 )'\000';
2830#line 161
2831  __cil_tmp72 = 16 * 1UL;
2832#line 161
2833  __cil_tmp73 = 8 + __cil_tmp72;
2834#line 161
2835  __cil_tmp74 = (unsigned long )(& ident) + __cil_tmp73;
2836#line 161
2837  *((__u8 *)__cil_tmp74) = (unsigned char)0;
2838#line 161
2839  __cil_tmp75 = 17 * 1UL;
2840#line 161
2841  __cil_tmp76 = 8 + __cil_tmp75;
2842#line 161
2843  __cil_tmp77 = (unsigned long )(& ident) + __cil_tmp76;
2844#line 161
2845  *((__u8 *)__cil_tmp77) = (unsigned char)0;
2846#line 161
2847  __cil_tmp78 = 18 * 1UL;
2848#line 161
2849  __cil_tmp79 = 8 + __cil_tmp78;
2850#line 161
2851  __cil_tmp80 = (unsigned long )(& ident) + __cil_tmp79;
2852#line 161
2853  *((__u8 *)__cil_tmp80) = (unsigned char)0;
2854#line 161
2855  __cil_tmp81 = 19 * 1UL;
2856#line 161
2857  __cil_tmp82 = 8 + __cil_tmp81;
2858#line 161
2859  __cil_tmp83 = (unsigned long )(& ident) + __cil_tmp82;
2860#line 161
2861  *((__u8 *)__cil_tmp83) = (unsigned char)0;
2862#line 161
2863  __cil_tmp84 = 20 * 1UL;
2864#line 161
2865  __cil_tmp85 = 8 + __cil_tmp84;
2866#line 161
2867  __cil_tmp86 = (unsigned long )(& ident) + __cil_tmp85;
2868#line 161
2869  *((__u8 *)__cil_tmp86) = (unsigned char)0;
2870#line 161
2871  __cil_tmp87 = 21 * 1UL;
2872#line 161
2873  __cil_tmp88 = 8 + __cil_tmp87;
2874#line 161
2875  __cil_tmp89 = (unsigned long )(& ident) + __cil_tmp88;
2876#line 161
2877  *((__u8 *)__cil_tmp89) = (unsigned char)0;
2878#line 161
2879  __cil_tmp90 = 22 * 1UL;
2880#line 161
2881  __cil_tmp91 = 8 + __cil_tmp90;
2882#line 161
2883  __cil_tmp92 = (unsigned long )(& ident) + __cil_tmp91;
2884#line 161
2885  *((__u8 *)__cil_tmp92) = (unsigned char)0;
2886#line 161
2887  __cil_tmp93 = 23 * 1UL;
2888#line 161
2889  __cil_tmp94 = 8 + __cil_tmp93;
2890#line 161
2891  __cil_tmp95 = (unsigned long )(& ident) + __cil_tmp94;
2892#line 161
2893  *((__u8 *)__cil_tmp95) = (unsigned char)0;
2894#line 161
2895  __cil_tmp96 = 24 * 1UL;
2896#line 161
2897  __cil_tmp97 = 8 + __cil_tmp96;
2898#line 161
2899  __cil_tmp98 = (unsigned long )(& ident) + __cil_tmp97;
2900#line 161
2901  *((__u8 *)__cil_tmp98) = (unsigned char)0;
2902#line 161
2903  __cil_tmp99 = 25 * 1UL;
2904#line 161
2905  __cil_tmp100 = 8 + __cil_tmp99;
2906#line 161
2907  __cil_tmp101 = (unsigned long )(& ident) + __cil_tmp100;
2908#line 161
2909  *((__u8 *)__cil_tmp101) = (unsigned char)0;
2910#line 161
2911  __cil_tmp102 = 26 * 1UL;
2912#line 161
2913  __cil_tmp103 = 8 + __cil_tmp102;
2914#line 161
2915  __cil_tmp104 = (unsigned long )(& ident) + __cil_tmp103;
2916#line 161
2917  *((__u8 *)__cil_tmp104) = (unsigned char)0;
2918#line 161
2919  __cil_tmp105 = 27 * 1UL;
2920#line 161
2921  __cil_tmp106 = 8 + __cil_tmp105;
2922#line 161
2923  __cil_tmp107 = (unsigned long )(& ident) + __cil_tmp106;
2924#line 161
2925  *((__u8 *)__cil_tmp107) = (unsigned char)0;
2926#line 161
2927  __cil_tmp108 = 28 * 1UL;
2928#line 161
2929  __cil_tmp109 = 8 + __cil_tmp108;
2930#line 161
2931  __cil_tmp110 = (unsigned long )(& ident) + __cil_tmp109;
2932#line 161
2933  *((__u8 *)__cil_tmp110) = (unsigned char)0;
2934#line 161
2935  __cil_tmp111 = 29 * 1UL;
2936#line 161
2937  __cil_tmp112 = 8 + __cil_tmp111;
2938#line 161
2939  __cil_tmp113 = (unsigned long )(& ident) + __cil_tmp112;
2940#line 161
2941  *((__u8 *)__cil_tmp113) = (unsigned char)0;
2942#line 161
2943  __cil_tmp114 = 30 * 1UL;
2944#line 161
2945  __cil_tmp115 = 8 + __cil_tmp114;
2946#line 161
2947  __cil_tmp116 = (unsigned long )(& ident) + __cil_tmp115;
2948#line 161
2949  *((__u8 *)__cil_tmp116) = (unsigned char)0;
2950#line 161
2951  __cil_tmp117 = 31 * 1UL;
2952#line 161
2953  __cil_tmp118 = 8 + __cil_tmp117;
2954#line 161
2955  __cil_tmp119 = (unsigned long )(& ident) + __cil_tmp118;
2956#line 161
2957  *((__u8 *)__cil_tmp119) = (unsigned char)0;
2958#line 169
2959  if ((int )cmd == -2144839936) {
2960#line 169
2961    goto case_neg_2144839936;
2962  } else
2963#line 174
2964  if ((int )cmd == -2147199231) {
2965#line 174
2966    goto case_neg_2147199231;
2967  } else
2968#line 175
2969  if ((int )cmd == -2147199230) {
2970#line 175
2971    goto case_neg_2147199230;
2972  } else
2973#line 178
2974  if ((int )cmd == -2147199228) {
2975#line 178
2976    goto case_neg_2147199228;
2977  } else
2978#line 197
2979  if ((int )cmd == -2147199227) {
2980#line 197
2981    goto case_neg_2147199227;
2982  } else
2983#line 201
2984  if ((int )cmd == -1073457402) {
2985#line 201
2986    goto case_neg_1073457402;
2987  } else
2988#line 208
2989  if ((int )cmd == -2147199225) {
2990#line 208
2991    goto case_neg_2147199225;
2992  } else {
2993    {
2994#line 211
2995    goto switch_default___3;
2996#line 168
2997    if (0) {
2998      case_neg_2144839936: /* CIL Label */ 
2999      {
3000#line 170
3001      __cil_tmp120 = (void const   *)(& ident);
3002#line 170
3003      tmp___1 = copy_to_user(argp, __cil_tmp120, 40U);
3004      }
3005#line 170
3006      if (tmp___1 != 0) {
3007#line 170
3008        tmp___0 = -14L;
3009      } else {
3010#line 170
3011        tmp___0 = 0L;
3012      }
3013#line 170
3014      return (tmp___0);
3015      case_neg_2147199231: /* CIL Label */ ;
3016      case_neg_2147199230: /* CIL Label */ 
3017      {
3018#line 176
3019      might_fault();
3020#line 176
3021      __pu_val = 0;
3022      }
3023#line 176
3024      if (4 == 1) {
3025#line 176
3026        goto case_1;
3027      } else
3028#line 176
3029      if (4 == 2) {
3030#line 176
3031        goto case_2;
3032      } else
3033#line 176
3034      if (4 == 4) {
3035#line 176
3036        goto case_4;
3037      } else
3038#line 176
3039      if (4 == 8) {
3040#line 176
3041        goto case_8;
3042      } else {
3043        {
3044#line 176
3045        goto switch_default;
3046#line 176
3047        if (0) {
3048          case_1: /* CIL Label */ 
3049#line 176
3050          __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val),
3051                               "c" (p): "ebx");
3052#line 176
3053          goto ldv_19248;
3054          case_2: /* CIL Label */ 
3055#line 176
3056          __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val),
3057                               "c" (p): "ebx");
3058#line 176
3059          goto ldv_19248;
3060          case_4: /* CIL Label */ 
3061#line 176
3062          __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val),
3063                               "c" (p): "ebx");
3064#line 176
3065          goto ldv_19248;
3066          case_8: /* CIL Label */ 
3067#line 176
3068          __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val),
3069                               "c" (p): "ebx");
3070#line 176
3071          goto ldv_19248;
3072          switch_default: /* CIL Label */ 
3073#line 176
3074          __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val),
3075                               "c" (p): "ebx");
3076#line 176
3077          goto ldv_19248;
3078        } else {
3079          switch_break___0: /* CIL Label */ ;
3080        }
3081        }
3082      }
3083      ldv_19248: ;
3084#line 176
3085      return ((long )__ret_pu);
3086      case_neg_2147199228: /* CIL Label */ 
3087      {
3088#line 180
3089      ret = -22;
3090#line 182
3091      might_fault();
3092      }
3093#line 182
3094      if (4 == 1) {
3095#line 182
3096        goto case_1___0;
3097      } else
3098#line 182
3099      if (4 == 2) {
3100#line 182
3101        goto case_2___0;
3102      } else
3103#line 182
3104      if (4 == 4) {
3105#line 182
3106        goto case_4___0;
3107      } else
3108#line 182
3109      if (4 == 8) {
3110#line 182
3111        goto case_8___0;
3112      } else {
3113        {
3114#line 182
3115        goto switch_default___0;
3116#line 182
3117        if (0) {
3118          case_1___0: /* CIL Label */ 
3119#line 182
3120          __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" (p));
3121#line 182
3122          goto ldv_19260;
3123          case_2___0: /* CIL Label */ 
3124#line 182
3125          __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" (p));
3126#line 182
3127          goto ldv_19260;
3128          case_4___0: /* CIL Label */ 
3129#line 182
3130          __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" (p));
3131#line 182
3132          goto ldv_19260;
3133          case_8___0: /* CIL Label */ 
3134#line 182
3135          __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" (p));
3136#line 182
3137          goto ldv_19260;
3138          switch_default___0: /* CIL Label */ 
3139#line 182
3140          __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" (p));
3141#line 182
3142          goto ldv_19260;
3143        } else {
3144          switch_break___1: /* CIL Label */ ;
3145        }
3146        }
3147      }
3148      ldv_19260: 
3149#line 182
3150      options = (int )__val_gu;
3151#line 182
3152      if (__ret_gu != 0) {
3153#line 183
3154        return (-14L);
3155      } else {
3156
3157      }
3158#line 185
3159      if (options & 1) {
3160        {
3161#line 186
3162        geodewdt_disable();
3163#line 187
3164        ret = 0;
3165        }
3166      } else {
3167
3168      }
3169      {
3170#line 190
3171      __cil_tmp121 = options & 2;
3172#line 190
3173      if (__cil_tmp121 != 0) {
3174        {
3175#line 191
3176        geodewdt_ping();
3177#line 192
3178        ret = 0;
3179        }
3180      } else {
3181
3182      }
3183      }
3184#line 195
3185      return ((long )ret);
3186      case_neg_2147199227: /* CIL Label */ 
3187      {
3188#line 198
3189      geodewdt_ping();
3190      }
3191#line 199
3192      return (0L);
3193      case_neg_1073457402: /* CIL Label */ 
3194      {
3195#line 202
3196      might_fault();
3197      }
3198#line 202
3199      if (4 == 1) {
3200#line 202
3201        goto case_1___1;
3202      } else
3203#line 202
3204      if (4 == 2) {
3205#line 202
3206        goto case_2___1;
3207      } else
3208#line 202
3209      if (4 == 4) {
3210#line 202
3211        goto case_4___1;
3212      } else
3213#line 202
3214      if (4 == 8) {
3215#line 202
3216        goto case_8___1;
3217      } else {
3218        {
3219#line 202
3220        goto switch_default___1;
3221#line 202
3222        if (0) {
3223          case_1___1: /* CIL Label */ 
3224#line 202
3225          __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (p));
3226#line 202
3227          goto ldv_19271;
3228          case_2___1: /* CIL Label */ 
3229#line 202
3230          __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (p));
3231#line 202
3232          goto ldv_19271;
3233          case_4___1: /* CIL Label */ 
3234#line 202
3235          __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (p));
3236#line 202
3237          goto ldv_19271;
3238          case_8___1: /* CIL Label */ 
3239#line 202
3240          __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (p));
3241#line 202
3242          goto ldv_19271;
3243          switch_default___1: /* CIL Label */ 
3244#line 202
3245          __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (p));
3246#line 202
3247          goto ldv_19271;
3248        } else {
3249          switch_break___2: /* CIL Label */ ;
3250        }
3251        }
3252      }
3253      ldv_19271: 
3254#line 202
3255      interval = (int )__val_gu___0;
3256#line 202
3257      if (__ret_gu___0 != 0) {
3258#line 203
3259        return (-14L);
3260      } else {
3261
3262      }
3263      {
3264#line 205
3265      tmp___2 = geodewdt_set_heartbeat(interval);
3266      }
3267#line 205
3268      if (tmp___2 != 0) {
3269#line 206
3270        return (-22L);
3271      } else {
3272
3273      }
3274      case_neg_2147199225: /* CIL Label */ 
3275      {
3276#line 209
3277      might_fault();
3278#line 209
3279      __cil_tmp122 = & timeout;
3280#line 209
3281      __pu_val___0 = *__cil_tmp122;
3282      }
3283#line 209
3284      if (4 == 1) {
3285#line 209
3286        goto case_1___2;
3287      } else
3288#line 209
3289      if (4 == 2) {
3290#line 209
3291        goto case_2___2;
3292      } else
3293#line 209
3294      if (4 == 4) {
3295#line 209
3296        goto case_4___2;
3297      } else
3298#line 209
3299      if (4 == 8) {
3300#line 209
3301        goto case_8___2;
3302      } else {
3303        {
3304#line 209
3305        goto switch_default___2;
3306#line 209
3307        if (0) {
3308          case_1___2: /* CIL Label */ 
3309#line 209
3310          __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
3311                               "c" (p): "ebx");
3312#line 209
3313          goto ldv_19281;
3314          case_2___2: /* CIL Label */ 
3315#line 209
3316          __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
3317                               "c" (p): "ebx");
3318#line 209
3319          goto ldv_19281;
3320          case_4___2: /* CIL Label */ 
3321#line 209
3322          __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
3323                               "c" (p): "ebx");
3324#line 209
3325          goto ldv_19281;
3326          case_8___2: /* CIL Label */ 
3327#line 209
3328          __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
3329                               "c" (p): "ebx");
3330#line 209
3331          goto ldv_19281;
3332          switch_default___2: /* CIL Label */ 
3333#line 209
3334          __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
3335                               "c" (p): "ebx");
3336#line 209
3337          goto ldv_19281;
3338        } else {
3339          switch_break___3: /* CIL Label */ ;
3340        }
3341        }
3342      }
3343      ldv_19281: ;
3344#line 209
3345      return ((long )__ret_pu___0);
3346      switch_default___3: /* CIL Label */ ;
3347#line 212
3348      return (-25L);
3349    } else {
3350      switch_break: /* CIL Label */ ;
3351    }
3352    }
3353  }
3354#line 215
3355  return (0L);
3356}
3357}
3358#line 218 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3359static struct file_operations  const  geodewdt_fops  = 
3360#line 218
3361     {& __this_module, & no_llseek, (ssize_t (*)(struct file * , char * , size_t  ,
3362                                               loff_t * ))0, & geodewdt_write, (ssize_t (*)(struct kiocb * ,
3363                                                                                            struct iovec  const  * ,
3364                                                                                            unsigned long  ,
3365                                                                                            loff_t  ))0,
3366    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
3367    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
3368                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
3369                                                                                            struct poll_table_struct * ))0,
3370    & geodewdt_ioctl, (long (*)(struct file * , unsigned int  , unsigned long  ))0,
3371    (int (*)(struct file * , struct vm_area_struct * ))0, & geodewdt_open, (int (*)(struct file * ,
3372                                                                                    fl_owner_t  ))0,
3373    & geodewdt_release, (int (*)(struct file * , loff_t  , loff_t  , int  ))0, (int (*)(struct kiocb * ,
3374                                                                                        int  ))0,
3375    (int (*)(int  , struct file * , int  ))0, (int (*)(struct file * , int  , struct file_lock * ))0,
3376    (ssize_t (*)(struct file * , struct page * , int  , size_t  , loff_t * , int  ))0,
3377    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
3378                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
3379                                                                       int  , struct file_lock * ))0,
3380    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
3381    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
3382    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
3383                                                                        int  , loff_t  ,
3384                                                                        loff_t  ))0};
3385#line 227 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3386static struct miscdevice geodewdt_miscdev  = 
3387#line 227
3388     {130, "watchdog", & geodewdt_fops, {(struct list_head *)0, (struct list_head *)0},
3389    (struct device *)0, (struct device *)0, (char const   *)0, (unsigned short)0};
3390#line 233 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3391static int geodewdt_probe(struct platform_device *dev ) 
3392{ int ret ;
3393  struct cs5535_mfgpt_timer *__cil_tmp3 ;
3394  unsigned long __cil_tmp4 ;
3395  unsigned long __cil_tmp5 ;
3396  uint16_t __cil_tmp6 ;
3397  uint16_t __cil_tmp7 ;
3398  uint16_t __cil_tmp8 ;
3399  int *__cil_tmp9 ;
3400  int __cil_tmp10 ;
3401  uint16_t __cil_tmp11 ;
3402  unsigned int __cil_tmp12 ;
3403  unsigned int __cil_tmp13 ;
3404  int __cil_tmp14 ;
3405  uint16_t __cil_tmp15 ;
3406
3407  {
3408  {
3409#line 237
3410  wdt_timer = cs5535_mfgpt_alloc_timer(-1, 1);
3411  }
3412  {
3413#line 238
3414  __cil_tmp3 = (struct cs5535_mfgpt_timer *)0;
3415#line 238
3416  __cil_tmp4 = (unsigned long )__cil_tmp3;
3417#line 238
3418  __cil_tmp5 = (unsigned long )wdt_timer;
3419#line 238
3420  if (__cil_tmp5 == __cil_tmp4) {
3421    {
3422#line 239
3423    printk("<3>geodewdt: No timers were available\n");
3424    }
3425#line 240
3426    return (-19);
3427  } else {
3428
3429  }
3430  }
3431  {
3432#line 245
3433  __cil_tmp6 = (uint16_t )6;
3434#line 245
3435  __cil_tmp7 = (uint16_t )774;
3436#line 245
3437  cs5535_mfgpt_write(wdt_timer, __cil_tmp6, __cil_tmp7);
3438#line 249
3439  cs5535_mfgpt_toggle_event(wdt_timer, 1, 3, 1);
3440#line 253
3441  __cil_tmp8 = (uint16_t )2;
3442#line 253
3443  __cil_tmp9 = & timeout;
3444#line 253
3445  __cil_tmp10 = *__cil_tmp9;
3446#line 253
3447  __cil_tmp11 = (uint16_t )__cil_tmp10;
3448#line 253
3449  __cil_tmp12 = (unsigned int )__cil_tmp11;
3450#line 253
3451  __cil_tmp13 = __cil_tmp12 * 500U;
3452#line 253
3453  __cil_tmp14 = (int )__cil_tmp13;
3454#line 253
3455  __cil_tmp15 = (uint16_t )__cil_tmp14;
3456#line 253
3457  cs5535_mfgpt_write(wdt_timer, __cil_tmp8, __cil_tmp15);
3458#line 256
3459  ret = misc_register(& geodewdt_miscdev);
3460  }
3461#line 258
3462  return (ret);
3463}
3464}
3465#line 261 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3466static int geodewdt_remove(struct platform_device *dev ) 
3467{ 
3468
3469  {
3470  {
3471#line 263
3472  misc_deregister(& geodewdt_miscdev);
3473  }
3474#line 264
3475  return (0);
3476}
3477}
3478#line 267 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3479static void geodewdt_shutdown(struct platform_device *dev ) 
3480{ 
3481
3482  {
3483  {
3484#line 269
3485  geodewdt_disable();
3486  }
3487#line 270
3488  return;
3489}
3490}
3491#line 272 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3492static struct platform_driver geodewdt_driver  =    {& geodewdt_probe, & geodewdt_remove, & geodewdt_shutdown, (int (*)(struct platform_device * ,
3493                                                                       pm_message_t  ))0,
3494    (int (*)(struct platform_device * ))0, {"geodewdt", (struct bus_type *)0, & __this_module,
3495                                            (char const   *)0, (_Bool)0, (struct of_device_id  const  *)0,
3496                                            (int (*)(struct device * ))0, (int (*)(struct device * ))0,
3497                                            (void (*)(struct device * ))0, (int (*)(struct device * ,
3498                                                                                    pm_message_t  ))0,
3499                                            (int (*)(struct device * ))0, (struct attribute_group  const  **)0,
3500                                            (struct dev_pm_ops  const  *)0, (struct driver_private *)0},
3501    (struct platform_device_id  const  *)0};
3502#line 282 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3503static int geodewdt_init(void) 
3504{ int ret ;
3505  long tmp ;
3506  long tmp___0 ;
3507  struct resource  const  *__cil_tmp4 ;
3508  void const   *__cil_tmp5 ;
3509  void const   *__cil_tmp6 ;
3510
3511  {
3512  {
3513#line 286
3514  ret = platform_driver_register(& geodewdt_driver);
3515  }
3516#line 287
3517  if (ret != 0) {
3518#line 288
3519    return (ret);
3520  } else {
3521
3522  }
3523  {
3524#line 290
3525  __cil_tmp4 = (struct resource  const  *)0;
3526#line 290
3527  geodewdt_platform_device = platform_device_register_simple("geodewdt", -1, __cil_tmp4,
3528                                                             0U);
3529#line 292
3530  __cil_tmp5 = (void const   *)geodewdt_platform_device;
3531#line 292
3532  tmp___0 = IS_ERR(__cil_tmp5);
3533  }
3534#line 292
3535  if (tmp___0 != 0L) {
3536    {
3537#line 293
3538    __cil_tmp6 = (void const   *)geodewdt_platform_device;
3539#line 293
3540    tmp = PTR_ERR(__cil_tmp6);
3541#line 293
3542    ret = (int )tmp;
3543    }
3544#line 294
3545    goto err;
3546  } else {
3547
3548  }
3549#line 297
3550  return (0);
3551  err: 
3552  {
3553#line 299
3554  platform_driver_unregister(& geodewdt_driver);
3555  }
3556#line 300
3557  return (ret);
3558}
3559}
3560#line 303 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3561static void geodewdt_exit(void) 
3562{ 
3563
3564  {
3565  {
3566#line 305
3567  platform_device_unregister(geodewdt_platform_device);
3568#line 306
3569  platform_driver_unregister(& geodewdt_driver);
3570  }
3571#line 307
3572  return;
3573}
3574}
3575#line 333
3576extern void ldv_check_final_state(void) ;
3577#line 336
3578extern void ldv_check_return_value(int  ) ;
3579#line 339
3580extern void ldv_initialize(void) ;
3581#line 342
3582extern int __VERIFIER_nondet_int(void) ;
3583#line 345 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3584int LDV_IN_INTERRUPT  ;
3585#line 348 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3586void main(void) 
3587{ struct file *var_group1 ;
3588  char const   *var_geodewdt_write_5_p1 ;
3589  size_t var_geodewdt_write_5_p2 ;
3590  loff_t *var_geodewdt_write_5_p3 ;
3591  ssize_t res_geodewdt_write_5 ;
3592  unsigned int var_geodewdt_ioctl_6_p1 ;
3593  unsigned long var_geodewdt_ioctl_6_p2 ;
3594  struct inode *var_group2 ;
3595  int res_geodewdt_open_3 ;
3596  struct platform_device *var_group3 ;
3597  int res_geodewdt_probe_7 ;
3598  int ldv_s_geodewdt_fops_file_operations ;
3599  int ldv_s_geodewdt_driver_platform_driver ;
3600  int tmp ;
3601  int tmp___0 ;
3602  int tmp___1 ;
3603  int __cil_tmp17 ;
3604
3605  {
3606  {
3607#line 485
3608  ldv_s_geodewdt_fops_file_operations = 0;
3609#line 488
3610  ldv_s_geodewdt_driver_platform_driver = 0;
3611#line 458
3612  LDV_IN_INTERRUPT = 1;
3613#line 467
3614  ldv_initialize();
3615#line 483
3616  tmp = geodewdt_init();
3617  }
3618#line 483
3619  if (tmp != 0) {
3620#line 484
3621    goto ldv_final;
3622  } else {
3623
3624  }
3625#line 491
3626  goto ldv_19359;
3627  ldv_19358: 
3628  {
3629#line 496
3630  tmp___0 = __VERIFIER_nondet_int();
3631  }
3632#line 498
3633  if (tmp___0 == 0) {
3634#line 498
3635    goto case_0;
3636  } else
3637#line 527
3638  if (tmp___0 == 1) {
3639#line 527
3640    goto case_1;
3641  } else
3642#line 556
3643  if (tmp___0 == 2) {
3644#line 556
3645    goto case_2;
3646  } else
3647#line 582
3648  if (tmp___0 == 3) {
3649#line 582
3650    goto case_3;
3651  } else
3652#line 608
3653  if (tmp___0 == 4) {
3654#line 608
3655    goto case_4;
3656  } else
3657#line 637
3658  if (tmp___0 == 5) {
3659#line 637
3660    goto case_5;
3661  } else {
3662    {
3663#line 663
3664    goto switch_default;
3665#line 496
3666    if (0) {
3667      case_0: /* CIL Label */ ;
3668#line 501
3669      if (ldv_s_geodewdt_fops_file_operations == 0) {
3670        {
3671#line 516
3672        res_geodewdt_open_3 = geodewdt_open(var_group2, var_group1);
3673#line 517
3674        ldv_check_return_value(res_geodewdt_open_3);
3675        }
3676#line 518
3677        if (res_geodewdt_open_3 != 0) {
3678#line 519
3679          goto ldv_module_exit;
3680        } else {
3681
3682        }
3683#line 520
3684        ldv_s_geodewdt_fops_file_operations = ldv_s_geodewdt_fops_file_operations + 1;
3685      } else {
3686
3687      }
3688#line 526
3689      goto ldv_19351;
3690      case_1: /* CIL Label */ ;
3691#line 530
3692      if (ldv_s_geodewdt_fops_file_operations == 1) {
3693        {
3694#line 545
3695        res_geodewdt_write_5 = geodewdt_write(var_group1, var_geodewdt_write_5_p1,
3696                                              var_geodewdt_write_5_p2, var_geodewdt_write_5_p3);
3697#line 546
3698        __cil_tmp17 = (int )res_geodewdt_write_5;
3699#line 546
3700        ldv_check_return_value(__cil_tmp17);
3701        }
3702#line 547
3703        if (res_geodewdt_write_5 < 0L) {
3704#line 548
3705          goto ldv_module_exit;
3706        } else {
3707
3708        }
3709#line 549
3710        ldv_s_geodewdt_fops_file_operations = ldv_s_geodewdt_fops_file_operations + 1;
3711      } else {
3712
3713      }
3714#line 555
3715      goto ldv_19351;
3716      case_2: /* CIL Label */ ;
3717#line 559
3718      if (ldv_s_geodewdt_fops_file_operations == 2) {
3719        {
3720#line 574
3721        geodewdt_release(var_group2, var_group1);
3722#line 575
3723        ldv_s_geodewdt_fops_file_operations = 0;
3724        }
3725      } else {
3726
3727      }
3728#line 581
3729      goto ldv_19351;
3730      case_3: /* CIL Label */ 
3731      {
3732#line 600
3733      geodewdt_ioctl(var_group1, var_geodewdt_ioctl_6_p1, var_geodewdt_ioctl_6_p2);
3734      }
3735#line 607
3736      goto ldv_19351;
3737      case_4: /* CIL Label */ ;
3738#line 611
3739      if (ldv_s_geodewdt_driver_platform_driver == 0) {
3740        {
3741#line 626
3742        res_geodewdt_probe_7 = geodewdt_probe(var_group3);
3743#line 627
3744        ldv_check_return_value(res_geodewdt_probe_7);
3745        }
3746#line 628
3747        if (res_geodewdt_probe_7 != 0) {
3748#line 629
3749          goto ldv_module_exit;
3750        } else {
3751
3752        }
3753#line 630
3754        ldv_s_geodewdt_driver_platform_driver = ldv_s_geodewdt_driver_platform_driver + 1;
3755      } else {
3756
3757      }
3758#line 636
3759      goto ldv_19351;
3760      case_5: /* CIL Label */ ;
3761#line 640
3762      if (ldv_s_geodewdt_driver_platform_driver == 1) {
3763        {
3764#line 655
3765        geodewdt_shutdown(var_group3);
3766#line 656
3767        ldv_s_geodewdt_driver_platform_driver = 0;
3768        }
3769      } else {
3770
3771      }
3772#line 662
3773      goto ldv_19351;
3774      switch_default: /* CIL Label */ ;
3775#line 663
3776      goto ldv_19351;
3777    } else {
3778      switch_break: /* CIL Label */ ;
3779    }
3780    }
3781  }
3782  ldv_19351: ;
3783  ldv_19359: 
3784  {
3785#line 491
3786  tmp___1 = __VERIFIER_nondet_int();
3787  }
3788#line 491
3789  if (tmp___1 != 0) {
3790#line 494
3791    goto ldv_19358;
3792  } else
3793#line 491
3794  if (ldv_s_geodewdt_fops_file_operations != 0) {
3795#line 494
3796    goto ldv_19358;
3797  } else
3798#line 491
3799  if (ldv_s_geodewdt_driver_platform_driver != 0) {
3800#line 494
3801    goto ldv_19358;
3802  } else {
3803#line 496
3804    goto ldv_19360;
3805  }
3806  ldv_19360: ;
3807  ldv_module_exit: 
3808  {
3809#line 685
3810  geodewdt_exit();
3811  }
3812  ldv_final: 
3813  {
3814#line 688
3815  ldv_check_final_state();
3816  }
3817#line 691
3818  return;
3819}
3820}
3821#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
3822void ldv_blast_assert(void) 
3823{ 
3824
3825  {
3826  ERROR: ;
3827#line 6
3828  goto ERROR;
3829}
3830}
3831#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
3832extern int __VERIFIER_nondet_int(void) ;
3833#line 712 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3834int ldv_spin  =    0;
3835#line 716 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3836void ldv_check_alloc_flags(gfp_t flags ) 
3837{ 
3838
3839  {
3840#line 719
3841  if (ldv_spin != 0) {
3842#line 719
3843    if (flags != 32U) {
3844      {
3845#line 719
3846      ldv_blast_assert();
3847      }
3848    } else {
3849
3850    }
3851  } else {
3852
3853  }
3854#line 722
3855  return;
3856}
3857}
3858#line 722
3859extern struct page *ldv_some_page(void) ;
3860#line 725 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3861struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
3862{ struct page *tmp ;
3863
3864  {
3865#line 728
3866  if (ldv_spin != 0) {
3867#line 728
3868    if (flags != 32U) {
3869      {
3870#line 728
3871      ldv_blast_assert();
3872      }
3873    } else {
3874
3875    }
3876  } else {
3877
3878  }
3879  {
3880#line 730
3881  tmp = ldv_some_page();
3882  }
3883#line 730
3884  return (tmp);
3885}
3886}
3887#line 734 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3888void ldv_check_alloc_nonatomic(void) 
3889{ 
3890
3891  {
3892#line 737
3893  if (ldv_spin != 0) {
3894    {
3895#line 737
3896    ldv_blast_assert();
3897    }
3898  } else {
3899
3900  }
3901#line 740
3902  return;
3903}
3904}
3905#line 741 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3906void ldv_spin_lock(void) 
3907{ 
3908
3909  {
3910#line 744
3911  ldv_spin = 1;
3912#line 745
3913  return;
3914}
3915}
3916#line 748 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3917void ldv_spin_unlock(void) 
3918{ 
3919
3920  {
3921#line 751
3922  ldv_spin = 0;
3923#line 752
3924  return;
3925}
3926}
3927#line 755 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3928int ldv_spin_trylock(void) 
3929{ int is_lock ;
3930
3931  {
3932  {
3933#line 760
3934  is_lock = __VERIFIER_nondet_int();
3935  }
3936#line 762
3937  if (is_lock != 0) {
3938#line 765
3939    return (0);
3940  } else {
3941#line 770
3942    ldv_spin = 1;
3943#line 772
3944    return (1);
3945  }
3946}
3947}
3948#line 939 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17342/dscv_tempdir/dscv/ri/43_1a/drivers/watchdog/geodewdt.c.p"
3949void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
3950{ 
3951
3952  {
3953  {
3954#line 945
3955  ldv_check_alloc_flags(ldv_func_arg2);
3956#line 947
3957  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
3958  }
3959#line 948
3960  return ((void *)0);
3961}
3962}