Showing error 1322

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


Source:

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