Showing error 1319

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


Source:

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