Showing error 1097

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--mtd--maps--netsc520.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 1507
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 20 "include/asm-generic/int-ll64.h"
   5typedef unsigned char __u8;
   6#line 23 "include/asm-generic/int-ll64.h"
   7typedef unsigned short __u16;
   8#line 26 "include/asm-generic/int-ll64.h"
   9typedef unsigned int __u32;
  10#line 30 "include/asm-generic/int-ll64.h"
  11typedef unsigned long long __u64;
  12#line 43 "include/asm-generic/int-ll64.h"
  13typedef unsigned char u8;
  14#line 45 "include/asm-generic/int-ll64.h"
  15typedef short s16;
  16#line 46 "include/asm-generic/int-ll64.h"
  17typedef unsigned short u16;
  18#line 49 "include/asm-generic/int-ll64.h"
  19typedef unsigned int u32;
  20#line 51 "include/asm-generic/int-ll64.h"
  21typedef long long s64;
  22#line 52 "include/asm-generic/int-ll64.h"
  23typedef unsigned long long u64;
  24#line 14 "include/asm-generic/posix_types.h"
  25typedef long __kernel_long_t;
  26#line 15 "include/asm-generic/posix_types.h"
  27typedef unsigned long __kernel_ulong_t;
  28#line 75 "include/asm-generic/posix_types.h"
  29typedef __kernel_ulong_t __kernel_size_t;
  30#line 76 "include/asm-generic/posix_types.h"
  31typedef __kernel_long_t __kernel_ssize_t;
  32#line 91 "include/asm-generic/posix_types.h"
  33typedef long long __kernel_loff_t;
  34#line 21 "include/linux/types.h"
  35typedef __u32 __kernel_dev_t;
  36#line 24 "include/linux/types.h"
  37typedef __kernel_dev_t dev_t;
  38#line 27 "include/linux/types.h"
  39typedef unsigned short umode_t;
  40#line 38 "include/linux/types.h"
  41typedef _Bool bool;
  42#line 54 "include/linux/types.h"
  43typedef __kernel_loff_t loff_t;
  44#line 63 "include/linux/types.h"
  45typedef __kernel_size_t size_t;
  46#line 68 "include/linux/types.h"
  47typedef __kernel_ssize_t ssize_t;
  48#line 92 "include/linux/types.h"
  49typedef unsigned char u_char;
  50#line 95 "include/linux/types.h"
  51typedef unsigned long u_long;
  52#line 115 "include/linux/types.h"
  53typedef __u8 uint8_t;
  54#line 117 "include/linux/types.h"
  55typedef __u32 uint32_t;
  56#line 120 "include/linux/types.h"
  57typedef __u64 uint64_t;
  58#line 202 "include/linux/types.h"
  59typedef unsigned int gfp_t;
  60#line 206 "include/linux/types.h"
  61typedef u64 phys_addr_t;
  62#line 211 "include/linux/types.h"
  63typedef phys_addr_t resource_size_t;
  64#line 221 "include/linux/types.h"
  65struct __anonstruct_atomic_t_6 {
  66   int counter ;
  67};
  68#line 221 "include/linux/types.h"
  69typedef struct __anonstruct_atomic_t_6 atomic_t;
  70#line 226 "include/linux/types.h"
  71struct __anonstruct_atomic64_t_7 {
  72   long counter ;
  73};
  74#line 226 "include/linux/types.h"
  75typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  76#line 227 "include/linux/types.h"
  77struct list_head {
  78   struct list_head *next ;
  79   struct list_head *prev ;
  80};
  81#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  82struct module;
  83#line 55
  84struct module;
  85#line 146 "include/linux/init.h"
  86typedef void (*ctor_fn_t)(void);
  87#line 46 "include/linux/dynamic_debug.h"
  88struct device;
  89#line 46
  90struct device;
  91#line 57
  92struct completion;
  93#line 57
  94struct completion;
  95#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
  96struct page;
  97#line 58
  98struct page;
  99#line 26 "include/asm-generic/getorder.h"
 100struct task_struct;
 101#line 26
 102struct task_struct;
 103#line 290 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 104struct file;
 105#line 290
 106struct file;
 107#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 108struct arch_spinlock;
 109#line 327
 110struct arch_spinlock;
 111#line 306 "include/linux/bitmap.h"
 112struct bug_entry {
 113   int bug_addr_disp ;
 114   int file_disp ;
 115   unsigned short line ;
 116   unsigned short flags ;
 117};
 118#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 119struct static_key;
 120#line 234
 121struct static_key;
 122#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 123struct kmem_cache;
 124#line 23 "include/asm-generic/atomic-long.h"
 125typedef atomic64_t atomic_long_t;
 126#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 127typedef u16 __ticket_t;
 128#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 129typedef u32 __ticketpair_t;
 130#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 131struct __raw_tickets {
 132   __ticket_t head ;
 133   __ticket_t tail ;
 134};
 135#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 136union __anonunion_ldv_5907_29 {
 137   __ticketpair_t head_tail ;
 138   struct __raw_tickets tickets ;
 139};
 140#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 141struct arch_spinlock {
 142   union __anonunion_ldv_5907_29 ldv_5907 ;
 143};
 144#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 145typedef struct arch_spinlock arch_spinlock_t;
 146#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 147struct lockdep_map;
 148#line 34
 149struct lockdep_map;
 150#line 55 "include/linux/debug_locks.h"
 151struct stack_trace {
 152   unsigned int nr_entries ;
 153   unsigned int max_entries ;
 154   unsigned long *entries ;
 155   int skip ;
 156};
 157#line 26 "include/linux/stacktrace.h"
 158struct lockdep_subclass_key {
 159   char __one_byte ;
 160};
 161#line 53 "include/linux/lockdep.h"
 162struct lock_class_key {
 163   struct lockdep_subclass_key subkeys[8U] ;
 164};
 165#line 59 "include/linux/lockdep.h"
 166struct lock_class {
 167   struct list_head hash_entry ;
 168   struct list_head lock_entry ;
 169   struct lockdep_subclass_key *key ;
 170   unsigned int subclass ;
 171   unsigned int dep_gen_id ;
 172   unsigned long usage_mask ;
 173   struct stack_trace usage_traces[13U] ;
 174   struct list_head locks_after ;
 175   struct list_head locks_before ;
 176   unsigned int version ;
 177   unsigned long ops ;
 178   char const   *name ;
 179   int name_version ;
 180   unsigned long contention_point[4U] ;
 181   unsigned long contending_point[4U] ;
 182};
 183#line 144 "include/linux/lockdep.h"
 184struct lockdep_map {
 185   struct lock_class_key *key ;
 186   struct lock_class *class_cache[2U] ;
 187   char const   *name ;
 188   int cpu ;
 189   unsigned long ip ;
 190};
 191#line 556 "include/linux/lockdep.h"
 192struct raw_spinlock {
 193   arch_spinlock_t raw_lock ;
 194   unsigned int magic ;
 195   unsigned int owner_cpu ;
 196   void *owner ;
 197   struct lockdep_map dep_map ;
 198};
 199#line 33 "include/linux/spinlock_types.h"
 200struct __anonstruct_ldv_6122_33 {
 201   u8 __padding[24U] ;
 202   struct lockdep_map dep_map ;
 203};
 204#line 33 "include/linux/spinlock_types.h"
 205union __anonunion_ldv_6123_32 {
 206   struct raw_spinlock rlock ;
 207   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 208};
 209#line 33 "include/linux/spinlock_types.h"
 210struct spinlock {
 211   union __anonunion_ldv_6123_32 ldv_6123 ;
 212};
 213#line 76 "include/linux/spinlock_types.h"
 214typedef struct spinlock spinlock_t;
 215#line 48 "include/linux/wait.h"
 216struct __wait_queue_head {
 217   spinlock_t lock ;
 218   struct list_head task_list ;
 219};
 220#line 53 "include/linux/wait.h"
 221typedef struct __wait_queue_head wait_queue_head_t;
 222#line 670 "include/linux/mmzone.h"
 223struct mutex {
 224   atomic_t count ;
 225   spinlock_t wait_lock ;
 226   struct list_head wait_list ;
 227   struct task_struct *owner ;
 228   char const   *name ;
 229   void *magic ;
 230   struct lockdep_map dep_map ;
 231};
 232#line 128 "include/linux/rwsem.h"
 233struct completion {
 234   unsigned int done ;
 235   wait_queue_head_t wait ;
 236};
 237#line 188 "include/linux/rcupdate.h"
 238struct notifier_block;
 239#line 188
 240struct notifier_block;
 241#line 239 "include/linux/srcu.h"
 242struct notifier_block {
 243   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
 244   struct notifier_block *next ;
 245   int priority ;
 246};
 247#line 312 "include/linux/jiffies.h"
 248union ktime {
 249   s64 tv64 ;
 250};
 251#line 59 "include/linux/ktime.h"
 252typedef union ktime ktime_t;
 253#line 341
 254struct tvec_base;
 255#line 341
 256struct tvec_base;
 257#line 342 "include/linux/ktime.h"
 258struct timer_list {
 259   struct list_head entry ;
 260   unsigned long expires ;
 261   struct tvec_base *base ;
 262   void (*function)(unsigned long  ) ;
 263   unsigned long data ;
 264   int slack ;
 265   int start_pid ;
 266   void *start_site ;
 267   char start_comm[16U] ;
 268   struct lockdep_map lockdep_map ;
 269};
 270#line 302 "include/linux/timer.h"
 271struct work_struct;
 272#line 302
 273struct work_struct;
 274#line 45 "include/linux/workqueue.h"
 275struct work_struct {
 276   atomic_long_t data ;
 277   struct list_head entry ;
 278   void (*func)(struct work_struct * ) ;
 279   struct lockdep_map lockdep_map ;
 280};
 281#line 46 "include/linux/pm.h"
 282struct pm_message {
 283   int event ;
 284};
 285#line 52 "include/linux/pm.h"
 286typedef struct pm_message pm_message_t;
 287#line 53 "include/linux/pm.h"
 288struct dev_pm_ops {
 289   int (*prepare)(struct device * ) ;
 290   void (*complete)(struct device * ) ;
 291   int (*suspend)(struct device * ) ;
 292   int (*resume)(struct device * ) ;
 293   int (*freeze)(struct device * ) ;
 294   int (*thaw)(struct device * ) ;
 295   int (*poweroff)(struct device * ) ;
 296   int (*restore)(struct device * ) ;
 297   int (*suspend_late)(struct device * ) ;
 298   int (*resume_early)(struct device * ) ;
 299   int (*freeze_late)(struct device * ) ;
 300   int (*thaw_early)(struct device * ) ;
 301   int (*poweroff_late)(struct device * ) ;
 302   int (*restore_early)(struct device * ) ;
 303   int (*suspend_noirq)(struct device * ) ;
 304   int (*resume_noirq)(struct device * ) ;
 305   int (*freeze_noirq)(struct device * ) ;
 306   int (*thaw_noirq)(struct device * ) ;
 307   int (*poweroff_noirq)(struct device * ) ;
 308   int (*restore_noirq)(struct device * ) ;
 309   int (*runtime_suspend)(struct device * ) ;
 310   int (*runtime_resume)(struct device * ) ;
 311   int (*runtime_idle)(struct device * ) ;
 312};
 313#line 289
 314enum rpm_status {
 315    RPM_ACTIVE = 0,
 316    RPM_RESUMING = 1,
 317    RPM_SUSPENDED = 2,
 318    RPM_SUSPENDING = 3
 319} ;
 320#line 296
 321enum rpm_request {
 322    RPM_REQ_NONE = 0,
 323    RPM_REQ_IDLE = 1,
 324    RPM_REQ_SUSPEND = 2,
 325    RPM_REQ_AUTOSUSPEND = 3,
 326    RPM_REQ_RESUME = 4
 327} ;
 328#line 304
 329struct wakeup_source;
 330#line 304
 331struct wakeup_source;
 332#line 494 "include/linux/pm.h"
 333struct pm_subsys_data {
 334   spinlock_t lock ;
 335   unsigned int refcount ;
 336};
 337#line 499
 338struct dev_pm_qos_request;
 339#line 499
 340struct pm_qos_constraints;
 341#line 499 "include/linux/pm.h"
 342struct dev_pm_info {
 343   pm_message_t power_state ;
 344   unsigned char can_wakeup : 1 ;
 345   unsigned char async_suspend : 1 ;
 346   bool is_prepared ;
 347   bool is_suspended ;
 348   bool ignore_children ;
 349   spinlock_t lock ;
 350   struct list_head entry ;
 351   struct completion completion ;
 352   struct wakeup_source *wakeup ;
 353   bool wakeup_path ;
 354   struct timer_list suspend_timer ;
 355   unsigned long timer_expires ;
 356   struct work_struct work ;
 357   wait_queue_head_t wait_queue ;
 358   atomic_t usage_count ;
 359   atomic_t child_count ;
 360   unsigned char disable_depth : 3 ;
 361   unsigned char idle_notification : 1 ;
 362   unsigned char request_pending : 1 ;
 363   unsigned char deferred_resume : 1 ;
 364   unsigned char run_wake : 1 ;
 365   unsigned char runtime_auto : 1 ;
 366   unsigned char no_callbacks : 1 ;
 367   unsigned char irq_safe : 1 ;
 368   unsigned char use_autosuspend : 1 ;
 369   unsigned char timer_autosuspends : 1 ;
 370   enum rpm_request request ;
 371   enum rpm_status runtime_status ;
 372   int runtime_error ;
 373   int autosuspend_delay ;
 374   unsigned long last_busy ;
 375   unsigned long active_jiffies ;
 376   unsigned long suspended_jiffies ;
 377   unsigned long accounting_timestamp ;
 378   ktime_t suspend_time ;
 379   s64 max_time_suspended_ns ;
 380   struct dev_pm_qos_request *pq_req ;
 381   struct pm_subsys_data *subsys_data ;
 382   struct pm_qos_constraints *constraints ;
 383};
 384#line 558 "include/linux/pm.h"
 385struct dev_pm_domain {
 386   struct dev_pm_ops ops ;
 387};
 388#line 18 "include/asm-generic/pci_iomap.h"
 389struct vm_area_struct;
 390#line 18
 391struct vm_area_struct;
 392#line 18 "include/linux/elf.h"
 393typedef __u64 Elf64_Addr;
 394#line 19 "include/linux/elf.h"
 395typedef __u16 Elf64_Half;
 396#line 23 "include/linux/elf.h"
 397typedef __u32 Elf64_Word;
 398#line 24 "include/linux/elf.h"
 399typedef __u64 Elf64_Xword;
 400#line 193 "include/linux/elf.h"
 401struct elf64_sym {
 402   Elf64_Word st_name ;
 403   unsigned char st_info ;
 404   unsigned char st_other ;
 405   Elf64_Half st_shndx ;
 406   Elf64_Addr st_value ;
 407   Elf64_Xword st_size ;
 408};
 409#line 201 "include/linux/elf.h"
 410typedef struct elf64_sym Elf64_Sym;
 411#line 445
 412struct sock;
 413#line 445
 414struct sock;
 415#line 446
 416struct kobject;
 417#line 446
 418struct kobject;
 419#line 447
 420enum kobj_ns_type {
 421    KOBJ_NS_TYPE_NONE = 0,
 422    KOBJ_NS_TYPE_NET = 1,
 423    KOBJ_NS_TYPES = 2
 424} ;
 425#line 453 "include/linux/elf.h"
 426struct kobj_ns_type_operations {
 427   enum kobj_ns_type type ;
 428   void *(*grab_current_ns)(void) ;
 429   void const   *(*netlink_ns)(struct sock * ) ;
 430   void const   *(*initial_ns)(void) ;
 431   void (*drop_ns)(void * ) ;
 432};
 433#line 57 "include/linux/kobject_ns.h"
 434struct attribute {
 435   char const   *name ;
 436   umode_t mode ;
 437   struct lock_class_key *key ;
 438   struct lock_class_key skey ;
 439};
 440#line 33 "include/linux/sysfs.h"
 441struct attribute_group {
 442   char const   *name ;
 443   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 444   struct attribute **attrs ;
 445};
 446#line 62 "include/linux/sysfs.h"
 447struct bin_attribute {
 448   struct attribute attr ;
 449   size_t size ;
 450   void *private ;
 451   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 452                   loff_t  , size_t  ) ;
 453   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 454                    loff_t  , size_t  ) ;
 455   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 456};
 457#line 98 "include/linux/sysfs.h"
 458struct sysfs_ops {
 459   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 460   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 461   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 462};
 463#line 117
 464struct sysfs_dirent;
 465#line 117
 466struct sysfs_dirent;
 467#line 182 "include/linux/sysfs.h"
 468struct kref {
 469   atomic_t refcount ;
 470};
 471#line 49 "include/linux/kobject.h"
 472struct kset;
 473#line 49
 474struct kobj_type;
 475#line 49 "include/linux/kobject.h"
 476struct kobject {
 477   char const   *name ;
 478   struct list_head entry ;
 479   struct kobject *parent ;
 480   struct kset *kset ;
 481   struct kobj_type *ktype ;
 482   struct sysfs_dirent *sd ;
 483   struct kref kref ;
 484   unsigned char state_initialized : 1 ;
 485   unsigned char state_in_sysfs : 1 ;
 486   unsigned char state_add_uevent_sent : 1 ;
 487   unsigned char state_remove_uevent_sent : 1 ;
 488   unsigned char uevent_suppress : 1 ;
 489};
 490#line 107 "include/linux/kobject.h"
 491struct kobj_type {
 492   void (*release)(struct kobject * ) ;
 493   struct sysfs_ops  const  *sysfs_ops ;
 494   struct attribute **default_attrs ;
 495   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 496   void const   *(*namespace)(struct kobject * ) ;
 497};
 498#line 115 "include/linux/kobject.h"
 499struct kobj_uevent_env {
 500   char *envp[32U] ;
 501   int envp_idx ;
 502   char buf[2048U] ;
 503   int buflen ;
 504};
 505#line 122 "include/linux/kobject.h"
 506struct kset_uevent_ops {
 507   int (* const  filter)(struct kset * , struct kobject * ) ;
 508   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 509   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 510};
 511#line 139 "include/linux/kobject.h"
 512struct kset {
 513   struct list_head list ;
 514   spinlock_t list_lock ;
 515   struct kobject kobj ;
 516   struct kset_uevent_ops  const  *uevent_ops ;
 517};
 518#line 215
 519struct kernel_param;
 520#line 215
 521struct kernel_param;
 522#line 216 "include/linux/kobject.h"
 523struct kernel_param_ops {
 524   int (*set)(char const   * , struct kernel_param  const  * ) ;
 525   int (*get)(char * , struct kernel_param  const  * ) ;
 526   void (*free)(void * ) ;
 527};
 528#line 49 "include/linux/moduleparam.h"
 529struct kparam_string;
 530#line 49
 531struct kparam_array;
 532#line 49 "include/linux/moduleparam.h"
 533union __anonunion_ldv_13363_134 {
 534   void *arg ;
 535   struct kparam_string  const  *str ;
 536   struct kparam_array  const  *arr ;
 537};
 538#line 49 "include/linux/moduleparam.h"
 539struct kernel_param {
 540   char const   *name ;
 541   struct kernel_param_ops  const  *ops ;
 542   u16 perm ;
 543   s16 level ;
 544   union __anonunion_ldv_13363_134 ldv_13363 ;
 545};
 546#line 61 "include/linux/moduleparam.h"
 547struct kparam_string {
 548   unsigned int maxlen ;
 549   char *string ;
 550};
 551#line 67 "include/linux/moduleparam.h"
 552struct kparam_array {
 553   unsigned int max ;
 554   unsigned int elemsize ;
 555   unsigned int *num ;
 556   struct kernel_param_ops  const  *ops ;
 557   void *elem ;
 558};
 559#line 458 "include/linux/moduleparam.h"
 560struct static_key {
 561   atomic_t enabled ;
 562};
 563#line 225 "include/linux/jump_label.h"
 564struct tracepoint;
 565#line 225
 566struct tracepoint;
 567#line 226 "include/linux/jump_label.h"
 568struct tracepoint_func {
 569   void *func ;
 570   void *data ;
 571};
 572#line 29 "include/linux/tracepoint.h"
 573struct tracepoint {
 574   char const   *name ;
 575   struct static_key key ;
 576   void (*regfunc)(void) ;
 577   void (*unregfunc)(void) ;
 578   struct tracepoint_func *funcs ;
 579};
 580#line 86 "include/linux/tracepoint.h"
 581struct kernel_symbol {
 582   unsigned long value ;
 583   char const   *name ;
 584};
 585#line 27 "include/linux/export.h"
 586struct mod_arch_specific {
 587
 588};
 589#line 34 "include/linux/module.h"
 590struct module_param_attrs;
 591#line 34 "include/linux/module.h"
 592struct module_kobject {
 593   struct kobject kobj ;
 594   struct module *mod ;
 595   struct kobject *drivers_dir ;
 596   struct module_param_attrs *mp ;
 597};
 598#line 43 "include/linux/module.h"
 599struct module_attribute {
 600   struct attribute attr ;
 601   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 602   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 603                    size_t  ) ;
 604   void (*setup)(struct module * , char const   * ) ;
 605   int (*test)(struct module * ) ;
 606   void (*free)(struct module * ) ;
 607};
 608#line 69
 609struct exception_table_entry;
 610#line 69
 611struct exception_table_entry;
 612#line 198
 613enum module_state {
 614    MODULE_STATE_LIVE = 0,
 615    MODULE_STATE_COMING = 1,
 616    MODULE_STATE_GOING = 2
 617} ;
 618#line 204 "include/linux/module.h"
 619struct module_ref {
 620   unsigned long incs ;
 621   unsigned long decs ;
 622};
 623#line 219
 624struct module_sect_attrs;
 625#line 219
 626struct module_notes_attrs;
 627#line 219
 628struct ftrace_event_call;
 629#line 219 "include/linux/module.h"
 630struct module {
 631   enum module_state state ;
 632   struct list_head list ;
 633   char name[56U] ;
 634   struct module_kobject mkobj ;
 635   struct module_attribute *modinfo_attrs ;
 636   char const   *version ;
 637   char const   *srcversion ;
 638   struct kobject *holders_dir ;
 639   struct kernel_symbol  const  *syms ;
 640   unsigned long const   *crcs ;
 641   unsigned int num_syms ;
 642   struct kernel_param *kp ;
 643   unsigned int num_kp ;
 644   unsigned int num_gpl_syms ;
 645   struct kernel_symbol  const  *gpl_syms ;
 646   unsigned long const   *gpl_crcs ;
 647   struct kernel_symbol  const  *unused_syms ;
 648   unsigned long const   *unused_crcs ;
 649   unsigned int num_unused_syms ;
 650   unsigned int num_unused_gpl_syms ;
 651   struct kernel_symbol  const  *unused_gpl_syms ;
 652   unsigned long const   *unused_gpl_crcs ;
 653   struct kernel_symbol  const  *gpl_future_syms ;
 654   unsigned long const   *gpl_future_crcs ;
 655   unsigned int num_gpl_future_syms ;
 656   unsigned int num_exentries ;
 657   struct exception_table_entry *extable ;
 658   int (*init)(void) ;
 659   void *module_init ;
 660   void *module_core ;
 661   unsigned int init_size ;
 662   unsigned int core_size ;
 663   unsigned int init_text_size ;
 664   unsigned int core_text_size ;
 665   unsigned int init_ro_size ;
 666   unsigned int core_ro_size ;
 667   struct mod_arch_specific arch ;
 668   unsigned int taints ;
 669   unsigned int num_bugs ;
 670   struct list_head bug_list ;
 671   struct bug_entry *bug_table ;
 672   Elf64_Sym *symtab ;
 673   Elf64_Sym *core_symtab ;
 674   unsigned int num_symtab ;
 675   unsigned int core_num_syms ;
 676   char *strtab ;
 677   char *core_strtab ;
 678   struct module_sect_attrs *sect_attrs ;
 679   struct module_notes_attrs *notes_attrs ;
 680   char *args ;
 681   void *percpu ;
 682   unsigned int percpu_size ;
 683   unsigned int num_tracepoints ;
 684   struct tracepoint * const  *tracepoints_ptrs ;
 685   unsigned int num_trace_bprintk_fmt ;
 686   char const   **trace_bprintk_fmt_start ;
 687   struct ftrace_event_call **trace_events ;
 688   unsigned int num_trace_events ;
 689   struct list_head source_list ;
 690   struct list_head target_list ;
 691   struct task_struct *waiter ;
 692   void (*exit)(void) ;
 693   struct module_ref *refptr ;
 694   ctor_fn_t (**ctors)(void) ;
 695   unsigned int num_ctors ;
 696};
 697#line 88 "include/linux/kmemleak.h"
 698struct kmem_cache_cpu {
 699   void **freelist ;
 700   unsigned long tid ;
 701   struct page *page ;
 702   struct page *partial ;
 703   int node ;
 704   unsigned int stat[26U] ;
 705};
 706#line 55 "include/linux/slub_def.h"
 707struct kmem_cache_node {
 708   spinlock_t list_lock ;
 709   unsigned long nr_partial ;
 710   struct list_head partial ;
 711   atomic_long_t nr_slabs ;
 712   atomic_long_t total_objects ;
 713   struct list_head full ;
 714};
 715#line 66 "include/linux/slub_def.h"
 716struct kmem_cache_order_objects {
 717   unsigned long x ;
 718};
 719#line 76 "include/linux/slub_def.h"
 720struct kmem_cache {
 721   struct kmem_cache_cpu *cpu_slab ;
 722   unsigned long flags ;
 723   unsigned long min_partial ;
 724   int size ;
 725   int objsize ;
 726   int offset ;
 727   int cpu_partial ;
 728   struct kmem_cache_order_objects oo ;
 729   struct kmem_cache_order_objects max ;
 730   struct kmem_cache_order_objects min ;
 731   gfp_t allocflags ;
 732   int refcount ;
 733   void (*ctor)(void * ) ;
 734   int inuse ;
 735   int align ;
 736   int reserved ;
 737   char const   *name ;
 738   struct list_head list ;
 739   struct kobject kobj ;
 740   int remote_node_defrag_ratio ;
 741   struct kmem_cache_node *node[1024U] ;
 742};
 743#line 21 "include/linux/uio.h"
 744struct kvec {
 745   void *iov_base ;
 746   size_t iov_len ;
 747};
 748#line 54
 749struct klist_node;
 750#line 54
 751struct klist_node;
 752#line 37 "include/linux/klist.h"
 753struct klist_node {
 754   void *n_klist ;
 755   struct list_head n_node ;
 756   struct kref n_ref ;
 757};
 758#line 67
 759struct dma_map_ops;
 760#line 67 "include/linux/klist.h"
 761struct dev_archdata {
 762   void *acpi_handle ;
 763   struct dma_map_ops *dma_ops ;
 764   void *iommu ;
 765};
 766#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 767struct device_private;
 768#line 17
 769struct device_private;
 770#line 18
 771struct device_driver;
 772#line 18
 773struct device_driver;
 774#line 19
 775struct driver_private;
 776#line 19
 777struct driver_private;
 778#line 20
 779struct class;
 780#line 20
 781struct class;
 782#line 21
 783struct subsys_private;
 784#line 21
 785struct subsys_private;
 786#line 22
 787struct bus_type;
 788#line 22
 789struct bus_type;
 790#line 23
 791struct device_node;
 792#line 23
 793struct device_node;
 794#line 24
 795struct iommu_ops;
 796#line 24
 797struct iommu_ops;
 798#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 799struct bus_attribute {
 800   struct attribute attr ;
 801   ssize_t (*show)(struct bus_type * , char * ) ;
 802   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
 803};
 804#line 51 "include/linux/device.h"
 805struct device_attribute;
 806#line 51
 807struct driver_attribute;
 808#line 51 "include/linux/device.h"
 809struct bus_type {
 810   char const   *name ;
 811   char const   *dev_name ;
 812   struct device *dev_root ;
 813   struct bus_attribute *bus_attrs ;
 814   struct device_attribute *dev_attrs ;
 815   struct driver_attribute *drv_attrs ;
 816   int (*match)(struct device * , struct device_driver * ) ;
 817   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 818   int (*probe)(struct device * ) ;
 819   int (*remove)(struct device * ) ;
 820   void (*shutdown)(struct device * ) ;
 821   int (*suspend)(struct device * , pm_message_t  ) ;
 822   int (*resume)(struct device * ) ;
 823   struct dev_pm_ops  const  *pm ;
 824   struct iommu_ops *iommu_ops ;
 825   struct subsys_private *p ;
 826};
 827#line 125
 828struct device_type;
 829#line 182
 830struct of_device_id;
 831#line 182 "include/linux/device.h"
 832struct device_driver {
 833   char const   *name ;
 834   struct bus_type *bus ;
 835   struct module *owner ;
 836   char const   *mod_name ;
 837   bool suppress_bind_attrs ;
 838   struct of_device_id  const  *of_match_table ;
 839   int (*probe)(struct device * ) ;
 840   int (*remove)(struct device * ) ;
 841   void (*shutdown)(struct device * ) ;
 842   int (*suspend)(struct device * , pm_message_t  ) ;
 843   int (*resume)(struct device * ) ;
 844   struct attribute_group  const  **groups ;
 845   struct dev_pm_ops  const  *pm ;
 846   struct driver_private *p ;
 847};
 848#line 245 "include/linux/device.h"
 849struct driver_attribute {
 850   struct attribute attr ;
 851   ssize_t (*show)(struct device_driver * , char * ) ;
 852   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
 853};
 854#line 299
 855struct class_attribute;
 856#line 299 "include/linux/device.h"
 857struct class {
 858   char const   *name ;
 859   struct module *owner ;
 860   struct class_attribute *class_attrs ;
 861   struct device_attribute *dev_attrs ;
 862   struct bin_attribute *dev_bin_attrs ;
 863   struct kobject *dev_kobj ;
 864   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
 865   char *(*devnode)(struct device * , umode_t * ) ;
 866   void (*class_release)(struct class * ) ;
 867   void (*dev_release)(struct device * ) ;
 868   int (*suspend)(struct device * , pm_message_t  ) ;
 869   int (*resume)(struct device * ) ;
 870   struct kobj_ns_type_operations  const  *ns_type ;
 871   void const   *(*namespace)(struct device * ) ;
 872   struct dev_pm_ops  const  *pm ;
 873   struct subsys_private *p ;
 874};
 875#line 394 "include/linux/device.h"
 876struct class_attribute {
 877   struct attribute attr ;
 878   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
 879   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
 880   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
 881};
 882#line 447 "include/linux/device.h"
 883struct device_type {
 884   char const   *name ;
 885   struct attribute_group  const  **groups ;
 886   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 887   char *(*devnode)(struct device * , umode_t * ) ;
 888   void (*release)(struct device * ) ;
 889   struct dev_pm_ops  const  *pm ;
 890};
 891#line 474 "include/linux/device.h"
 892struct device_attribute {
 893   struct attribute attr ;
 894   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
 895   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
 896                    size_t  ) ;
 897};
 898#line 557 "include/linux/device.h"
 899struct device_dma_parameters {
 900   unsigned int max_segment_size ;
 901   unsigned long segment_boundary_mask ;
 902};
 903#line 567
 904struct dma_coherent_mem;
 905#line 567 "include/linux/device.h"
 906struct device {
 907   struct device *parent ;
 908   struct device_private *p ;
 909   struct kobject kobj ;
 910   char const   *init_name ;
 911   struct device_type  const  *type ;
 912   struct mutex mutex ;
 913   struct bus_type *bus ;
 914   struct device_driver *driver ;
 915   void *platform_data ;
 916   struct dev_pm_info power ;
 917   struct dev_pm_domain *pm_domain ;
 918   int numa_node ;
 919   u64 *dma_mask ;
 920   u64 coherent_dma_mask ;
 921   struct device_dma_parameters *dma_parms ;
 922   struct list_head dma_pools ;
 923   struct dma_coherent_mem *dma_mem ;
 924   struct dev_archdata archdata ;
 925   struct device_node *of_node ;
 926   dev_t devt ;
 927   u32 id ;
 928   spinlock_t devres_lock ;
 929   struct list_head devres_head ;
 930   struct klist_node knode_class ;
 931   struct class *class ;
 932   struct attribute_group  const  **groups ;
 933   void (*release)(struct device * ) ;
 934};
 935#line 681 "include/linux/device.h"
 936struct wakeup_source {
 937   char const   *name ;
 938   struct list_head entry ;
 939   spinlock_t lock ;
 940   struct timer_list timer ;
 941   unsigned long timer_expires ;
 942   ktime_t total_time ;
 943   ktime_t max_time ;
 944   ktime_t last_time ;
 945   unsigned long event_count ;
 946   unsigned long active_count ;
 947   unsigned long relax_count ;
 948   unsigned long hit_count ;
 949   unsigned char active : 1 ;
 950};
 951#line 142 "include/mtd/mtd-abi.h"
 952struct otp_info {
 953   __u32 start ;
 954   __u32 length ;
 955   __u32 locked ;
 956};
 957#line 216 "include/mtd/mtd-abi.h"
 958struct nand_oobfree {
 959   __u32 offset ;
 960   __u32 length ;
 961};
 962#line 238 "include/mtd/mtd-abi.h"
 963struct mtd_ecc_stats {
 964   __u32 corrected ;
 965   __u32 failed ;
 966   __u32 badblocks ;
 967   __u32 bbtblocks ;
 968};
 969#line 260
 970struct mtd_info;
 971#line 260 "include/mtd/mtd-abi.h"
 972struct erase_info {
 973   struct mtd_info *mtd ;
 974   uint64_t addr ;
 975   uint64_t len ;
 976   uint64_t fail_addr ;
 977   u_long time ;
 978   u_long retries ;
 979   unsigned int dev ;
 980   unsigned int cell ;
 981   void (*callback)(struct erase_info * ) ;
 982   u_long priv ;
 983   u_char state ;
 984   struct erase_info *next ;
 985};
 986#line 62 "include/linux/mtd/mtd.h"
 987struct mtd_erase_region_info {
 988   uint64_t offset ;
 989   uint32_t erasesize ;
 990   uint32_t numblocks ;
 991   unsigned long *lockmap ;
 992};
 993#line 69 "include/linux/mtd/mtd.h"
 994struct mtd_oob_ops {
 995   unsigned int mode ;
 996   size_t len ;
 997   size_t retlen ;
 998   size_t ooblen ;
 999   size_t oobretlen ;
1000   uint32_t ooboffs ;
1001   uint8_t *datbuf ;
1002   uint8_t *oobbuf ;
1003};
1004#line 99 "include/linux/mtd/mtd.h"
1005struct nand_ecclayout {
1006   __u32 eccbytes ;
1007   __u32 eccpos[448U] ;
1008   __u32 oobavail ;
1009   struct nand_oobfree oobfree[32U] ;
1010};
1011#line 114
1012struct backing_dev_info;
1013#line 114 "include/linux/mtd/mtd.h"
1014struct mtd_info {
1015   u_char type ;
1016   uint32_t flags ;
1017   uint64_t size ;
1018   uint32_t erasesize ;
1019   uint32_t writesize ;
1020   uint32_t writebufsize ;
1021   uint32_t oobsize ;
1022   uint32_t oobavail ;
1023   unsigned int erasesize_shift ;
1024   unsigned int writesize_shift ;
1025   unsigned int erasesize_mask ;
1026   unsigned int writesize_mask ;
1027   char const   *name ;
1028   int index ;
1029   struct nand_ecclayout *ecclayout ;
1030   unsigned int ecc_strength ;
1031   int numeraseregions ;
1032   struct mtd_erase_region_info *eraseregions ;
1033   int (*_erase)(struct mtd_info * , struct erase_info * ) ;
1034   int (*_point)(struct mtd_info * , loff_t  , size_t  , size_t * , void ** , resource_size_t * ) ;
1035   int (*_unpoint)(struct mtd_info * , loff_t  , size_t  ) ;
1036   unsigned long (*_get_unmapped_area)(struct mtd_info * , unsigned long  , unsigned long  ,
1037                                       unsigned long  ) ;
1038   int (*_read)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
1039   int (*_write)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
1040   int (*_panic_write)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
1041   int (*_read_oob)(struct mtd_info * , loff_t  , struct mtd_oob_ops * ) ;
1042   int (*_write_oob)(struct mtd_info * , loff_t  , struct mtd_oob_ops * ) ;
1043   int (*_get_fact_prot_info)(struct mtd_info * , struct otp_info * , size_t  ) ;
1044   int (*_read_fact_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
1045   int (*_get_user_prot_info)(struct mtd_info * , struct otp_info * , size_t  ) ;
1046   int (*_read_user_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
1047   int (*_write_user_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * ,
1048                               u_char * ) ;
1049   int (*_lock_user_prot_reg)(struct mtd_info * , loff_t  , size_t  ) ;
1050   int (*_writev)(struct mtd_info * , struct kvec  const  * , unsigned long  , loff_t  ,
1051                  size_t * ) ;
1052   void (*_sync)(struct mtd_info * ) ;
1053   int (*_lock)(struct mtd_info * , loff_t  , uint64_t  ) ;
1054   int (*_unlock)(struct mtd_info * , loff_t  , uint64_t  ) ;
1055   int (*_is_locked)(struct mtd_info * , loff_t  , uint64_t  ) ;
1056   int (*_block_isbad)(struct mtd_info * , loff_t  ) ;
1057   int (*_block_markbad)(struct mtd_info * , loff_t  ) ;
1058   int (*_suspend)(struct mtd_info * ) ;
1059   void (*_resume)(struct mtd_info * ) ;
1060   int (*_get_device)(struct mtd_info * ) ;
1061   void (*_put_device)(struct mtd_info * ) ;
1062   struct backing_dev_info *backing_dev_info ;
1063   struct notifier_block reboot_notifier ;
1064   struct mtd_ecc_stats ecc_stats ;
1065   int subpage_sft ;
1066   void *priv ;
1067   struct module *owner ;
1068   struct device dev ;
1069   int usecount ;
1070};
1071#line 356
1072struct mtd_partition;
1073#line 356
1074struct mtd_partition;
1075#line 357
1076struct mtd_part_parser_data;
1077#line 357
1078struct mtd_part_parser_data;
1079#line 188 "include/linux/mtd/map.h"
1080union __anonunion_map_word_135 {
1081   unsigned long x[4U] ;
1082};
1083#line 188 "include/linux/mtd/map.h"
1084typedef union __anonunion_map_word_135 map_word;
1085#line 189
1086struct mtd_chip_driver;
1087#line 189 "include/linux/mtd/map.h"
1088struct map_info {
1089   char const   *name ;
1090   unsigned long size ;
1091   resource_size_t phys ;
1092   void *virt ;
1093   void *cached ;
1094   int swap ;
1095   int bankwidth ;
1096   map_word (*read)(struct map_info * , unsigned long  ) ;
1097   void (*copy_from)(struct map_info * , void * , unsigned long  , ssize_t  ) ;
1098   void (*write)(struct map_info * , map_word const    , unsigned long  ) ;
1099   void (*copy_to)(struct map_info * , unsigned long  , void const   * , ssize_t  ) ;
1100   void (*inval_cache)(struct map_info * , unsigned long  , ssize_t  ) ;
1101   void (*set_vpp)(struct map_info * , int  ) ;
1102   unsigned long pfow_base ;
1103   unsigned long map_priv_1 ;
1104   unsigned long map_priv_2 ;
1105   void *fldrv_priv ;
1106   struct mtd_chip_driver *fldrv ;
1107};
1108#line 251 "include/linux/mtd/map.h"
1109struct mtd_chip_driver {
1110   struct mtd_info *(*probe)(struct map_info * ) ;
1111   void (*destroy)(struct mtd_info * ) ;
1112   struct module *module ;
1113   char *name ;
1114   struct list_head list ;
1115};
1116#line 451 "include/linux/mtd/map.h"
1117struct mtd_partition {
1118   char *name ;
1119   uint64_t size ;
1120   uint64_t offset ;
1121   uint32_t mask_flags ;
1122   struct nand_ecclayout *ecclayout ;
1123};
1124#line 46 "include/linux/mtd/partitions.h"
1125struct mtd_part_parser_data {
1126   unsigned long origin ;
1127   struct device_node *of_node ;
1128};
1129#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1130void ldv_spin_lock(void) ;
1131#line 3
1132void ldv_spin_unlock(void) ;
1133#line 4
1134int ldv_spin_trylock(void) ;
1135#line 101 "include/linux/printk.h"
1136extern int printk(char const   *  , ...) ;
1137#line 174 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
1138extern void *ioremap_nocache(resource_size_t  , unsigned long  ) ;
1139#line 187
1140extern void iounmap(void volatile   * ) ;
1141#line 26 "include/linux/export.h"
1142extern struct module __this_module ;
1143#line 220 "include/linux/slub_def.h"
1144extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
1145#line 223
1146void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
1147#line 11 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1148void ldv_check_alloc_flags(gfp_t flags ) ;
1149#line 12
1150void ldv_check_alloc_nonatomic(void) ;
1151#line 14
1152struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
1153#line 362 "include/linux/mtd/mtd.h"
1154extern int mtd_device_parse_register(struct mtd_info * , char const   ** , struct mtd_part_parser_data * ,
1155                                     struct mtd_partition  const  * , int  ) ;
1156#line 369
1157extern int mtd_device_unregister(struct mtd_info * ) ;
1158#line 263 "include/linux/mtd/map.h"
1159extern struct mtd_info *do_map_probe(char const   * , struct map_info * ) ;
1160#line 264
1161extern void map_destroy(struct mtd_info * ) ;
1162#line 450
1163extern void simple_map_init(struct map_info * ) ;
1164#line 70 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1165static struct mtd_partition partition_info[4U]  = {      {(char *)"NetSc520 boot kernel", 786432ULL, 0ULL, 0U, (struct nand_ecclayout *)0}, 
1166        {(char *)"NetSc520 Low BIOS",
1167      262144ULL, 786432ULL, 0U, (struct nand_ecclayout *)0}, 
1168        {(char *)"NetSc520 file system", 15204352ULL, 1048576ULL, 0U, (struct nand_ecclayout *)0}, 
1169        {(char *)"NetSc520 High BIOS",
1170      524288ULL, 16252928ULL, 0U, (struct nand_ecclayout *)0}};
1171#line 97 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1172static struct map_info netsc520_map  = 
1173#line 97
1174     {"netsc520 Flash Bank", 1048576UL, 2097152ULL, (void *)0, (void *)0, 0, 4, (map_word (*)(struct map_info * ,
1175                                                                                            unsigned long  ))0,
1176    (void (*)(struct map_info * , void * , unsigned long  , ssize_t  ))0, (void (*)(struct map_info * ,
1177                                                                                    map_word const    ,
1178                                                                                    unsigned long  ))0,
1179    (void (*)(struct map_info * , unsigned long  , void const   * , ssize_t  ))0,
1180    (void (*)(struct map_info * , unsigned long  , ssize_t  ))0, (void (*)(struct map_info * ,
1181                                                                           int  ))0,
1182    0UL, 0UL, 0UL, (void *)0, (struct mtd_chip_driver *)0};
1183#line 106 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1184static struct mtd_info *mymtd  ;
1185#line 108 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1186static int init_netsc520(void) 
1187{ unsigned long __cil_tmp1 ;
1188  unsigned long __cil_tmp2 ;
1189  unsigned long long __cil_tmp3 ;
1190  unsigned long __cil_tmp4 ;
1191  resource_size_t __cil_tmp5 ;
1192  unsigned long __cil_tmp6 ;
1193  unsigned long __cil_tmp7 ;
1194  resource_size_t __cil_tmp8 ;
1195  unsigned long __cil_tmp9 ;
1196  unsigned long __cil_tmp10 ;
1197  void *__cil_tmp11 ;
1198  unsigned long __cil_tmp12 ;
1199  unsigned long __cil_tmp13 ;
1200  void *__cil_tmp14 ;
1201  unsigned long __cil_tmp15 ;
1202  struct mtd_info *__cil_tmp16 ;
1203  unsigned long __cil_tmp17 ;
1204  unsigned long __cil_tmp18 ;
1205  struct mtd_info *__cil_tmp19 ;
1206  unsigned long __cil_tmp20 ;
1207  unsigned long __cil_tmp21 ;
1208  struct mtd_info *__cil_tmp22 ;
1209  unsigned long __cil_tmp23 ;
1210  unsigned long __cil_tmp24 ;
1211  unsigned long __cil_tmp25 ;
1212  void *__cil_tmp26 ;
1213  void volatile   *__cil_tmp27 ;
1214  unsigned long __cil_tmp28 ;
1215  unsigned long __cil_tmp29 ;
1216  char const   **__cil_tmp30 ;
1217  struct mtd_part_parser_data *__cil_tmp31 ;
1218  struct mtd_partition  const  *__cil_tmp32 ;
1219
1220  {
1221  {
1222#line 110
1223  __cil_tmp1 = (unsigned long )(& netsc520_map) + 8;
1224#line 110
1225  __cil_tmp2 = *((unsigned long *)__cil_tmp1);
1226#line 110
1227  __cil_tmp3 = (unsigned long long )__cil_tmp2;
1228#line 110
1229  __cil_tmp4 = (unsigned long )(& netsc520_map) + 16;
1230#line 110
1231  __cil_tmp5 = *((resource_size_t *)__cil_tmp4);
1232#line 110
1233  printk("<5>NetSc520 flash device: 0x%Lx at 0x%Lx\n", __cil_tmp3, __cil_tmp5);
1234#line 113
1235  __cil_tmp6 = (unsigned long )(& netsc520_map) + 24;
1236#line 113
1237  __cil_tmp7 = (unsigned long )(& netsc520_map) + 16;
1238#line 113
1239  __cil_tmp8 = *((resource_size_t *)__cil_tmp7);
1240#line 113
1241  __cil_tmp9 = (unsigned long )(& netsc520_map) + 8;
1242#line 113
1243  __cil_tmp10 = *((unsigned long *)__cil_tmp9);
1244#line 113
1245  *((void **)__cil_tmp6) = ioremap_nocache(__cil_tmp8, __cil_tmp10);
1246  }
1247  {
1248#line 115
1249  __cil_tmp11 = (void *)0;
1250#line 115
1251  __cil_tmp12 = (unsigned long )__cil_tmp11;
1252#line 115
1253  __cil_tmp13 = (unsigned long )(& netsc520_map) + 24;
1254#line 115
1255  __cil_tmp14 = *((void **)__cil_tmp13);
1256#line 115
1257  __cil_tmp15 = (unsigned long )__cil_tmp14;
1258#line 115
1259  if (__cil_tmp15 == __cil_tmp12) {
1260    {
1261#line 116
1262    printk("Failed to ioremap_nocache\n");
1263    }
1264#line 117
1265    return (-5);
1266  } else {
1267
1268  }
1269  }
1270  {
1271#line 120
1272  simple_map_init(& netsc520_map);
1273#line 122
1274  mymtd = do_map_probe("cfi_probe", & netsc520_map);
1275  }
1276  {
1277#line 123
1278  __cil_tmp16 = (struct mtd_info *)0;
1279#line 123
1280  __cil_tmp17 = (unsigned long )__cil_tmp16;
1281#line 123
1282  __cil_tmp18 = (unsigned long )mymtd;
1283#line 123
1284  if (__cil_tmp18 == __cil_tmp17) {
1285    {
1286#line 124
1287    mymtd = do_map_probe("map_ram", & netsc520_map);
1288    }
1289  } else {
1290
1291  }
1292  }
1293  {
1294#line 125
1295  __cil_tmp19 = (struct mtd_info *)0;
1296#line 125
1297  __cil_tmp20 = (unsigned long )__cil_tmp19;
1298#line 125
1299  __cil_tmp21 = (unsigned long )mymtd;
1300#line 125
1301  if (__cil_tmp21 == __cil_tmp20) {
1302    {
1303#line 126
1304    mymtd = do_map_probe("map_rom", & netsc520_map);
1305    }
1306  } else {
1307
1308  }
1309  }
1310  {
1311#line 128
1312  __cil_tmp22 = (struct mtd_info *)0;
1313#line 128
1314  __cil_tmp23 = (unsigned long )__cil_tmp22;
1315#line 128
1316  __cil_tmp24 = (unsigned long )mymtd;
1317#line 128
1318  if (__cil_tmp24 == __cil_tmp23) {
1319    {
1320#line 129
1321    __cil_tmp25 = (unsigned long )(& netsc520_map) + 24;
1322#line 129
1323    __cil_tmp26 = *((void **)__cil_tmp25);
1324#line 129
1325    __cil_tmp27 = (void volatile   *)__cil_tmp26;
1326#line 129
1327    iounmap(__cil_tmp27);
1328    }
1329#line 130
1330    return (-6);
1331  } else {
1332
1333  }
1334  }
1335  {
1336#line 133
1337  __cil_tmp28 = (unsigned long )mymtd;
1338#line 133
1339  __cil_tmp29 = __cil_tmp28 + 368;
1340#line 133
1341  *((struct module **)__cil_tmp29) = & __this_module;
1342#line 134
1343  __cil_tmp30 = (char const   **)0;
1344#line 134
1345  __cil_tmp31 = (struct mtd_part_parser_data *)0;
1346#line 134
1347  __cil_tmp32 = (struct mtd_partition  const  *)(& partition_info);
1348#line 134
1349  mtd_device_parse_register(mymtd, __cil_tmp30, __cil_tmp31, __cil_tmp32, 4);
1350  }
1351#line 135
1352  return (0);
1353}
1354}
1355#line 138 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1356static void cleanup_netsc520(void) 
1357{ struct mtd_info *__cil_tmp1 ;
1358  unsigned long __cil_tmp2 ;
1359  unsigned long __cil_tmp3 ;
1360  void *__cil_tmp4 ;
1361  unsigned long __cil_tmp5 ;
1362  unsigned long __cil_tmp6 ;
1363  void *__cil_tmp7 ;
1364  unsigned long __cil_tmp8 ;
1365  unsigned long __cil_tmp9 ;
1366  void *__cil_tmp10 ;
1367  void volatile   *__cil_tmp11 ;
1368  unsigned long __cil_tmp12 ;
1369
1370  {
1371  {
1372#line 140
1373  __cil_tmp1 = (struct mtd_info *)0;
1374#line 140
1375  __cil_tmp2 = (unsigned long )__cil_tmp1;
1376#line 140
1377  __cil_tmp3 = (unsigned long )mymtd;
1378#line 140
1379  if (__cil_tmp3 != __cil_tmp2) {
1380    {
1381#line 141
1382    mtd_device_unregister(mymtd);
1383#line 142
1384    map_destroy(mymtd);
1385    }
1386  } else {
1387
1388  }
1389  }
1390  {
1391#line 144
1392  __cil_tmp4 = (void *)0;
1393#line 144
1394  __cil_tmp5 = (unsigned long )__cil_tmp4;
1395#line 144
1396  __cil_tmp6 = (unsigned long )(& netsc520_map) + 24;
1397#line 144
1398  __cil_tmp7 = *((void **)__cil_tmp6);
1399#line 144
1400  __cil_tmp8 = (unsigned long )__cil_tmp7;
1401#line 144
1402  if (__cil_tmp8 != __cil_tmp5) {
1403    {
1404#line 145
1405    __cil_tmp9 = (unsigned long )(& netsc520_map) + 24;
1406#line 145
1407    __cil_tmp10 = *((void **)__cil_tmp9);
1408#line 145
1409    __cil_tmp11 = (void volatile   *)__cil_tmp10;
1410#line 145
1411    iounmap(__cil_tmp11);
1412#line 146
1413    __cil_tmp12 = (unsigned long )(& netsc520_map) + 24;
1414#line 146
1415    *((void **)__cil_tmp12) = (void *)0;
1416    }
1417  } else {
1418
1419  }
1420  }
1421#line 148
1422  return;
1423}
1424}
1425#line 173
1426extern void ldv_check_final_state(void) ;
1427#line 179
1428extern void ldv_initialize(void) ;
1429#line 182
1430extern int __VERIFIER_nondet_int(void) ;
1431#line 185 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1432int LDV_IN_INTERRUPT  ;
1433#line 188 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1434void main(void) 
1435{ int tmp ;
1436  int tmp___0 ;
1437  int tmp___1 ;
1438
1439  {
1440  {
1441#line 200
1442  LDV_IN_INTERRUPT = 1;
1443#line 209
1444  ldv_initialize();
1445#line 220
1446  tmp = init_netsc520();
1447  }
1448#line 220
1449  if (tmp != 0) {
1450#line 221
1451    goto ldv_final;
1452  } else {
1453
1454  }
1455#line 223
1456  goto ldv_15646;
1457  ldv_15645: 
1458  {
1459#line 226
1460  tmp___0 = __VERIFIER_nondet_int();
1461  }
1462  {
1463#line 228
1464  goto switch_default;
1465#line 226
1466  if (0) {
1467    switch_default: /* CIL Label */ ;
1468#line 228
1469    goto ldv_15644;
1470  } else {
1471    switch_break: /* CIL Label */ ;
1472  }
1473  }
1474  ldv_15644: ;
1475  ldv_15646: 
1476  {
1477#line 223
1478  tmp___1 = __VERIFIER_nondet_int();
1479  }
1480#line 223
1481  if (tmp___1 != 0) {
1482#line 224
1483    goto ldv_15645;
1484  } else {
1485#line 226
1486    goto ldv_15647;
1487  }
1488  ldv_15647: ;
1489  {
1490#line 245
1491  cleanup_netsc520();
1492  }
1493  ldv_final: 
1494  {
1495#line 248
1496  ldv_check_final_state();
1497  }
1498#line 251
1499  return;
1500}
1501}
1502#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
1503void ldv_blast_assert(void) 
1504{ 
1505
1506  {
1507  ERROR: ;
1508#line 6
1509  goto ERROR;
1510}
1511}
1512#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
1513extern int __VERIFIER_nondet_int(void) ;
1514#line 272 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1515int ldv_spin  =    0;
1516#line 276 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1517void ldv_check_alloc_flags(gfp_t flags ) 
1518{ 
1519
1520  {
1521#line 279
1522  if (ldv_spin != 0) {
1523#line 279
1524    if (flags != 32U) {
1525      {
1526#line 279
1527      ldv_blast_assert();
1528      }
1529    } else {
1530
1531    }
1532  } else {
1533
1534  }
1535#line 282
1536  return;
1537}
1538}
1539#line 282
1540extern struct page *ldv_some_page(void) ;
1541#line 285 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1542struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
1543{ struct page *tmp ;
1544
1545  {
1546#line 288
1547  if (ldv_spin != 0) {
1548#line 288
1549    if (flags != 32U) {
1550      {
1551#line 288
1552      ldv_blast_assert();
1553      }
1554    } else {
1555
1556    }
1557  } else {
1558
1559  }
1560  {
1561#line 290
1562  tmp = ldv_some_page();
1563  }
1564#line 290
1565  return (tmp);
1566}
1567}
1568#line 294 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1569void ldv_check_alloc_nonatomic(void) 
1570{ 
1571
1572  {
1573#line 297
1574  if (ldv_spin != 0) {
1575    {
1576#line 297
1577    ldv_blast_assert();
1578    }
1579  } else {
1580
1581  }
1582#line 300
1583  return;
1584}
1585}
1586#line 301 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1587void ldv_spin_lock(void) 
1588{ 
1589
1590  {
1591#line 304
1592  ldv_spin = 1;
1593#line 305
1594  return;
1595}
1596}
1597#line 308 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1598void ldv_spin_unlock(void) 
1599{ 
1600
1601  {
1602#line 311
1603  ldv_spin = 0;
1604#line 312
1605  return;
1606}
1607}
1608#line 315 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1609int ldv_spin_trylock(void) 
1610{ int is_lock ;
1611
1612  {
1613  {
1614#line 320
1615  is_lock = __VERIFIER_nondet_int();
1616  }
1617#line 322
1618  if (is_lock != 0) {
1619#line 325
1620    return (0);
1621  } else {
1622#line 330
1623    ldv_spin = 1;
1624#line 332
1625    return (1);
1626  }
1627}
1628}
1629#line 499 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11638/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/maps/netsc520.c.p"
1630void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
1631{ 
1632
1633  {
1634  {
1635#line 505
1636  ldv_check_alloc_flags(ldv_func_arg2);
1637#line 507
1638  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
1639  }
1640#line 508
1641  return ((void *)0);
1642}
1643}