Showing error 1312

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