Showing error 510

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