Showing error 513

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--ts5500_flash.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 1485
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 146 "include/linux/init.h"
  78typedef void (*ctor_fn_t)(void);
  79#line 56 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  80struct module;
  81#line 56
  82struct module;
  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 186 "include/linux/mtd/map.h"
 681union __anonunion_map_word_201 {
 682   unsigned long x[4] ;
 683};
 684#line 186 "include/linux/mtd/map.h"
 685typedef union __anonunion_map_word_201 map_word;
 686#line 208
 687struct mtd_chip_driver;
 688#line 208 "include/linux/mtd/map.h"
 689struct map_info {
 690   char const   *name ;
 691   unsigned long size ;
 692   resource_size_t phys ;
 693   void *virt ;
 694   void *cached ;
 695   int swap ;
 696   int bankwidth ;
 697   map_word (*read)(struct map_info * , unsigned long  ) ;
 698   void (*copy_from)(struct map_info * , void * , unsigned long  , ssize_t  ) ;
 699   void (*write)(struct map_info * , map_word const    , unsigned long  ) ;
 700   void (*copy_to)(struct map_info * , unsigned long  , void const   * , ssize_t  ) ;
 701   void (*inval_cache)(struct map_info * , unsigned long  , ssize_t  ) ;
 702   void (*set_vpp)(struct map_info * , int  ) ;
 703   unsigned long pfow_base ;
 704   unsigned long map_priv_1 ;
 705   unsigned long map_priv_2 ;
 706   void *fldrv_priv ;
 707   struct mtd_chip_driver *fldrv ;
 708};
 709#line 252
 710struct mtd_info;
 711#line 252 "include/linux/mtd/map.h"
 712struct mtd_chip_driver {
 713   struct mtd_info *(*probe)(struct map_info *map ) ;
 714   void (*destroy)(struct mtd_info * ) ;
 715   struct module *module ;
 716   char *name ;
 717   struct list_head list ;
 718};
 719#line 31 "include/linux/uio.h"
 720struct kvec {
 721   void *iov_base ;
 722   size_t iov_len ;
 723};
 724#line 19 "include/linux/klist.h"
 725struct klist_node;
 726#line 19
 727struct klist_node;
 728#line 39 "include/linux/klist.h"
 729struct klist_node {
 730   void *n_klist ;
 731   struct list_head n_node ;
 732   struct kref n_ref ;
 733};
 734#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 735struct dma_map_ops;
 736#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 737struct dev_archdata {
 738   void *acpi_handle ;
 739   struct dma_map_ops *dma_ops ;
 740   void *iommu ;
 741};
 742#line 28 "include/linux/device.h"
 743struct device;
 744#line 29
 745struct device_private;
 746#line 29
 747struct device_private;
 748#line 30
 749struct device_driver;
 750#line 30
 751struct device_driver;
 752#line 31
 753struct driver_private;
 754#line 31
 755struct driver_private;
 756#line 32
 757struct module;
 758#line 33
 759struct class;
 760#line 33
 761struct class;
 762#line 34
 763struct subsys_private;
 764#line 34
 765struct subsys_private;
 766#line 35
 767struct bus_type;
 768#line 35
 769struct bus_type;
 770#line 36
 771struct device_node;
 772#line 36
 773struct device_node;
 774#line 37
 775struct iommu_ops;
 776#line 37
 777struct iommu_ops;
 778#line 39 "include/linux/device.h"
 779struct bus_attribute {
 780   struct attribute attr ;
 781   ssize_t (*show)(struct bus_type *bus , char *buf ) ;
 782   ssize_t (*store)(struct bus_type *bus , char const   *buf , size_t count ) ;
 783};
 784#line 89
 785struct device_attribute;
 786#line 89
 787struct driver_attribute;
 788#line 89 "include/linux/device.h"
 789struct bus_type {
 790   char const   *name ;
 791   char const   *dev_name ;
 792   struct device *dev_root ;
 793   struct bus_attribute *bus_attrs ;
 794   struct device_attribute *dev_attrs ;
 795   struct driver_attribute *drv_attrs ;
 796   int (*match)(struct device *dev , struct device_driver *drv ) ;
 797   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 798   int (*probe)(struct device *dev ) ;
 799   int (*remove)(struct device *dev ) ;
 800   void (*shutdown)(struct device *dev ) ;
 801   int (*suspend)(struct device *dev , pm_message_t state ) ;
 802   int (*resume)(struct device *dev ) ;
 803   struct dev_pm_ops  const  *pm ;
 804   struct iommu_ops *iommu_ops ;
 805   struct subsys_private *p ;
 806};
 807#line 127
 808struct device_type;
 809#line 159
 810struct notifier_block;
 811#line 214
 812struct of_device_id;
 813#line 214 "include/linux/device.h"
 814struct device_driver {
 815   char const   *name ;
 816   struct bus_type *bus ;
 817   struct module *owner ;
 818   char const   *mod_name ;
 819   bool suppress_bind_attrs ;
 820   struct of_device_id  const  *of_match_table ;
 821   int (*probe)(struct device *dev ) ;
 822   int (*remove)(struct device *dev ) ;
 823   void (*shutdown)(struct device *dev ) ;
 824   int (*suspend)(struct device *dev , pm_message_t state ) ;
 825   int (*resume)(struct device *dev ) ;
 826   struct attribute_group  const  **groups ;
 827   struct dev_pm_ops  const  *pm ;
 828   struct driver_private *p ;
 829};
 830#line 249 "include/linux/device.h"
 831struct driver_attribute {
 832   struct attribute attr ;
 833   ssize_t (*show)(struct device_driver *driver , char *buf ) ;
 834   ssize_t (*store)(struct device_driver *driver , char const   *buf , size_t count ) ;
 835};
 836#line 330
 837struct class_attribute;
 838#line 330 "include/linux/device.h"
 839struct class {
 840   char const   *name ;
 841   struct module *owner ;
 842   struct class_attribute *class_attrs ;
 843   struct device_attribute *dev_attrs ;
 844   struct bin_attribute *dev_bin_attrs ;
 845   struct kobject *dev_kobj ;
 846   int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 847   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 848   void (*class_release)(struct class *class ) ;
 849   void (*dev_release)(struct device *dev ) ;
 850   int (*suspend)(struct device *dev , pm_message_t state ) ;
 851   int (*resume)(struct device *dev ) ;
 852   struct kobj_ns_type_operations  const  *ns_type ;
 853   void const   *(*namespace)(struct device *dev ) ;
 854   struct dev_pm_ops  const  *pm ;
 855   struct subsys_private *p ;
 856};
 857#line 397 "include/linux/device.h"
 858struct class_attribute {
 859   struct attribute attr ;
 860   ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
 861   ssize_t (*store)(struct class *class , struct class_attribute *attr , char const   *buf ,
 862                    size_t count ) ;
 863   void const   *(*namespace)(struct class *class , struct class_attribute  const  *attr ) ;
 864};
 865#line 465 "include/linux/device.h"
 866struct device_type {
 867   char const   *name ;
 868   struct attribute_group  const  **groups ;
 869   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 870   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 871   void (*release)(struct device *dev ) ;
 872   struct dev_pm_ops  const  *pm ;
 873};
 874#line 476 "include/linux/device.h"
 875struct device_attribute {
 876   struct attribute attr ;
 877   ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
 878   ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const   *buf ,
 879                    size_t count ) ;
 880};
 881#line 559 "include/linux/device.h"
 882struct device_dma_parameters {
 883   unsigned int max_segment_size ;
 884   unsigned long segment_boundary_mask ;
 885};
 886#line 627
 887struct dma_coherent_mem;
 888#line 627 "include/linux/device.h"
 889struct device {
 890   struct device *parent ;
 891   struct device_private *p ;
 892   struct kobject kobj ;
 893   char const   *init_name ;
 894   struct device_type  const  *type ;
 895   struct mutex mutex ;
 896   struct bus_type *bus ;
 897   struct device_driver *driver ;
 898   void *platform_data ;
 899   struct dev_pm_info power ;
 900   struct dev_pm_domain *pm_domain ;
 901   int numa_node ;
 902   u64 *dma_mask ;
 903   u64 coherent_dma_mask ;
 904   struct device_dma_parameters *dma_parms ;
 905   struct list_head dma_pools ;
 906   struct dma_coherent_mem *dma_mem ;
 907   struct dev_archdata archdata ;
 908   struct device_node *of_node ;
 909   dev_t devt ;
 910   u32 id ;
 911   spinlock_t devres_lock ;
 912   struct list_head devres_head ;
 913   struct klist_node knode_class ;
 914   struct class *class ;
 915   struct attribute_group  const  **groups ;
 916   void (*release)(struct device *dev ) ;
 917};
 918#line 43 "include/linux/pm_wakeup.h"
 919struct wakeup_source {
 920   char const   *name ;
 921   struct list_head entry ;
 922   spinlock_t lock ;
 923   struct timer_list timer ;
 924   unsigned long timer_expires ;
 925   ktime_t total_time ;
 926   ktime_t max_time ;
 927   ktime_t last_time ;
 928   unsigned long event_count ;
 929   unsigned long active_count ;
 930   unsigned long relax_count ;
 931   unsigned long hit_count ;
 932   unsigned int active : 1 ;
 933};
 934#line 143 "include/mtd/mtd-abi.h"
 935struct otp_info {
 936   __u32 start ;
 937   __u32 length ;
 938   __u32 locked ;
 939};
 940#line 217 "include/mtd/mtd-abi.h"
 941struct nand_oobfree {
 942   __u32 offset ;
 943   __u32 length ;
 944};
 945#line 247 "include/mtd/mtd-abi.h"
 946struct mtd_ecc_stats {
 947   __u32 corrected ;
 948   __u32 failed ;
 949   __u32 badblocks ;
 950   __u32 bbtblocks ;
 951};
 952#line 48 "include/linux/mtd/mtd.h"
 953struct erase_info {
 954   struct mtd_info *mtd ;
 955   uint64_t addr ;
 956   uint64_t len ;
 957   uint64_t fail_addr ;
 958   u_long time ;
 959   u_long retries ;
 960   unsigned int dev ;
 961   unsigned int cell ;
 962   void (*callback)(struct erase_info *self ) ;
 963   u_long priv ;
 964   u_char state ;
 965   struct erase_info *next ;
 966};
 967#line 63 "include/linux/mtd/mtd.h"
 968struct mtd_erase_region_info {
 969   uint64_t offset ;
 970   uint32_t erasesize ;
 971   uint32_t numblocks ;
 972   unsigned long *lockmap ;
 973};
 974#line 89 "include/linux/mtd/mtd.h"
 975struct mtd_oob_ops {
 976   unsigned int mode ;
 977   size_t len ;
 978   size_t retlen ;
 979   size_t ooblen ;
 980   size_t oobretlen ;
 981   uint32_t ooboffs ;
 982   uint8_t *datbuf ;
 983   uint8_t *oobbuf ;
 984};
 985#line 108 "include/linux/mtd/mtd.h"
 986struct nand_ecclayout {
 987   __u32 eccbytes ;
 988   __u32 eccpos[448] ;
 989   __u32 oobavail ;
 990   struct nand_oobfree oobfree[32] ;
 991};
 992#line 115
 993struct module;
 994#line 117
 995struct backing_dev_info;
 996#line 117 "include/linux/mtd/mtd.h"
 997struct mtd_info {
 998   u_char type ;
 999   uint32_t flags ;
1000   uint64_t size ;
1001   uint32_t erasesize ;
1002   uint32_t writesize ;
1003   uint32_t writebufsize ;
1004   uint32_t oobsize ;
1005   uint32_t oobavail ;
1006   unsigned int erasesize_shift ;
1007   unsigned int writesize_shift ;
1008   unsigned int erasesize_mask ;
1009   unsigned int writesize_mask ;
1010   char const   *name ;
1011   int index ;
1012   struct nand_ecclayout *ecclayout ;
1013   unsigned int ecc_strength ;
1014   int numeraseregions ;
1015   struct mtd_erase_region_info *eraseregions ;
1016   int (*_erase)(struct mtd_info *mtd , struct erase_info *instr ) ;
1017   int (*_point)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1018                 void **virt , resource_size_t *phys ) ;
1019   int (*_unpoint)(struct mtd_info *mtd , loff_t from , size_t len ) ;
1020   unsigned long (*_get_unmapped_area)(struct mtd_info *mtd , unsigned long len ,
1021                                       unsigned long offset , unsigned long flags ) ;
1022   int (*_read)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1023                u_char *buf ) ;
1024   int (*_write)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1025                 u_char const   *buf ) ;
1026   int (*_panic_write)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1027                       u_char const   *buf ) ;
1028   int (*_read_oob)(struct mtd_info *mtd , loff_t from , struct mtd_oob_ops *ops ) ;
1029   int (*_write_oob)(struct mtd_info *mtd , loff_t to , struct mtd_oob_ops *ops ) ;
1030   int (*_get_fact_prot_info)(struct mtd_info *mtd , struct otp_info *buf , size_t len ) ;
1031   int (*_read_fact_prot_reg)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1032                              u_char *buf ) ;
1033   int (*_get_user_prot_info)(struct mtd_info *mtd , struct otp_info *buf , size_t len ) ;
1034   int (*_read_user_prot_reg)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1035                              u_char *buf ) ;
1036   int (*_write_user_prot_reg)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1037                               u_char *buf ) ;
1038   int (*_lock_user_prot_reg)(struct mtd_info *mtd , loff_t from , size_t len ) ;
1039   int (*_writev)(struct mtd_info *mtd , struct kvec  const  *vecs , unsigned long count ,
1040                  loff_t to , size_t *retlen ) ;
1041   void (*_sync)(struct mtd_info *mtd ) ;
1042   int (*_lock)(struct mtd_info *mtd , loff_t ofs , uint64_t len ) ;
1043   int (*_unlock)(struct mtd_info *mtd , loff_t ofs , uint64_t len ) ;
1044   int (*_is_locked)(struct mtd_info *mtd , loff_t ofs , uint64_t len ) ;
1045   int (*_block_isbad)(struct mtd_info *mtd , loff_t ofs ) ;
1046   int (*_block_markbad)(struct mtd_info *mtd , loff_t ofs ) ;
1047   int (*_suspend)(struct mtd_info *mtd ) ;
1048   void (*_resume)(struct mtd_info *mtd ) ;
1049   int (*_get_device)(struct mtd_info *mtd ) ;
1050   void (*_put_device)(struct mtd_info *mtd ) ;
1051   struct backing_dev_info *backing_dev_info ;
1052   struct notifier_block reboot_notifier ;
1053   struct mtd_ecc_stats ecc_stats ;
1054   int subpage_sft ;
1055   void *priv ;
1056   struct module *owner ;
1057   struct device dev ;
1058   int usecount ;
1059};
1060#line 359
1061struct mtd_partition;
1062#line 359
1063struct mtd_partition;
1064#line 360
1065struct mtd_part_parser_data;
1066#line 360
1067struct mtd_part_parser_data;
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 93 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.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 263 "include/linux/mtd/map.h"
1116extern struct mtd_info *do_map_probe(char const   *name , struct map_info *map ) ;
1117#line 264
1118extern void map_destroy(struct mtd_info *mtd ) ;
1119#line 450
1120extern void simple_map_init(struct map_info * ) ;
1121#line 362 "include/linux/mtd/mtd.h"
1122extern int mtd_device_parse_register(struct mtd_info *mtd , char const   **part_probe_types ,
1123                                     struct mtd_part_parser_data *parser_data , struct mtd_partition  const  *defparts ,
1124                                     int defnr_parts ) ;
1125#line 369
1126extern int mtd_device_unregister(struct mtd_info *master ) ;
1127#line 40 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1128static struct map_info ts5500_map  = 
1129#line 40 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1130     {"TS-5500 Flash", 2097152UL, (resource_size_t )155189248, (void *)0, (void *)0,
1131    0, 1, (map_word (*)(struct map_info * , unsigned long  ))0, (void (*)(struct map_info * ,
1132                                                                          void * ,
1133                                                                          unsigned long  ,
1134                                                                          ssize_t  ))0,
1135    (void (*)(struct map_info * , map_word const    , unsigned long  ))0, (void (*)(struct map_info * ,
1136                                                                                    unsigned long  ,
1137                                                                                    void const   * ,
1138                                                                                    ssize_t  ))0,
1139    (void (*)(struct map_info * , unsigned long  , ssize_t  ))0, (void (*)(struct map_info * ,
1140                                                                           int  ))0,
1141    0UL, 0UL, 0UL, (void *)0, (struct mtd_chip_driver *)0};
1142#line 47 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1143static struct mtd_partition ts5500_partitions[3]  = {      {(char *)"Drive A", (uint64_t )917504, (uint64_t )0, 0U, (struct nand_ecclayout *)0}, 
1144        {(char *)"BIOS",
1145      (uint64_t )131072, (uint64_t )917504, 0U, (struct nand_ecclayout *)0}, 
1146        {(char *)"Drive B", (uint64_t )1048576, (uint64_t )1048576, 0U, (struct nand_ecclayout *)0}};
1147#line 67 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1148static struct mtd_info *mymtd  ;
1149#line 69
1150static int init_ts5500_map(void)  __attribute__((__section__(".init.text"), __no_instrument_function__)) ;
1151#line 69 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1152static int init_ts5500_map(void) 
1153{ int rc ;
1154  unsigned long __cil_tmp2 ;
1155  unsigned long __cil_tmp3 ;
1156  resource_size_t __cil_tmp4 ;
1157  unsigned long __cil_tmp5 ;
1158  unsigned long __cil_tmp6 ;
1159  unsigned long __cil_tmp7 ;
1160  void *__cil_tmp8 ;
1161  unsigned long __cil_tmp9 ;
1162  unsigned long __cil_tmp10 ;
1163  void *__cil_tmp11 ;
1164  char const   **__cil_tmp12 ;
1165  void *__cil_tmp13 ;
1166  struct mtd_part_parser_data *__cil_tmp14 ;
1167  unsigned long __cil_tmp15 ;
1168  unsigned long __cil_tmp16 ;
1169  struct mtd_partition *__cil_tmp17 ;
1170  struct mtd_partition  const  *__cil_tmp18 ;
1171  unsigned long __cil_tmp19 ;
1172  unsigned long __cil_tmp20 ;
1173  int __cil_tmp21 ;
1174  unsigned long __cil_tmp22 ;
1175  void *__cil_tmp23 ;
1176  void volatile   *__cil_tmp24 ;
1177
1178  {
1179  {
1180#line 71
1181  rc = 0;
1182#line 73
1183  __cil_tmp2 = (unsigned long )(& ts5500_map) + 24;
1184#line 73
1185  __cil_tmp3 = (unsigned long )(& ts5500_map) + 16;
1186#line 73
1187  __cil_tmp4 = *((resource_size_t *)__cil_tmp3);
1188#line 73
1189  __cil_tmp5 = (unsigned long )(& ts5500_map) + 8;
1190#line 73
1191  __cil_tmp6 = *((unsigned long *)__cil_tmp5);
1192#line 73
1193  *((void **)__cil_tmp2) = ioremap_nocache(__cil_tmp4, __cil_tmp6);
1194  }
1195  {
1196#line 75
1197  __cil_tmp7 = (unsigned long )(& ts5500_map) + 24;
1198#line 75
1199  __cil_tmp8 = *((void **)__cil_tmp7);
1200#line 75
1201  if (! __cil_tmp8) {
1202    {
1203#line 76
1204    printk("<3>Failed to ioremap_nocache\n");
1205#line 77
1206    rc = -5;
1207    }
1208#line 78
1209    goto err2;
1210  } else {
1211
1212  }
1213  }
1214  {
1215#line 81
1216  simple_map_init(& ts5500_map);
1217#line 83
1218  mymtd = do_map_probe("jedec_probe", & ts5500_map);
1219  }
1220#line 84
1221  if (! mymtd) {
1222    {
1223#line 85
1224    mymtd = do_map_probe("map_rom", & ts5500_map);
1225    }
1226  } else {
1227
1228  }
1229#line 87
1230  if (! mymtd) {
1231#line 88
1232    rc = -6;
1233#line 89
1234    goto err1;
1235  } else {
1236
1237  }
1238  {
1239#line 92
1240  __cil_tmp9 = (unsigned long )mymtd;
1241#line 92
1242  __cil_tmp10 = __cil_tmp9 + 368;
1243#line 92
1244  *((struct module **)__cil_tmp10) = & __this_module;
1245#line 93
1246  __cil_tmp11 = (void *)0;
1247#line 93
1248  __cil_tmp12 = (char const   **)__cil_tmp11;
1249#line 93
1250  __cil_tmp13 = (void *)0;
1251#line 93
1252  __cil_tmp14 = (struct mtd_part_parser_data *)__cil_tmp13;
1253#line 93
1254  __cil_tmp15 = 0 * 40UL;
1255#line 93
1256  __cil_tmp16 = (unsigned long )(ts5500_partitions) + __cil_tmp15;
1257#line 93
1258  __cil_tmp17 = (struct mtd_partition *)__cil_tmp16;
1259#line 93
1260  __cil_tmp18 = (struct mtd_partition  const  *)__cil_tmp17;
1261#line 93
1262  __cil_tmp19 = 120UL / 40UL;
1263#line 93
1264  __cil_tmp20 = __cil_tmp19 + 0UL;
1265#line 93
1266  __cil_tmp21 = (int )__cil_tmp20;
1267#line 93
1268  mtd_device_parse_register(mymtd, __cil_tmp12, __cil_tmp14, __cil_tmp18, __cil_tmp21);
1269  }
1270#line 95
1271  return (0);
1272  err1: 
1273  {
1274#line 98
1275  __cil_tmp22 = (unsigned long )(& ts5500_map) + 24;
1276#line 98
1277  __cil_tmp23 = *((void **)__cil_tmp22);
1278#line 98
1279  __cil_tmp24 = (void volatile   *)__cil_tmp23;
1280#line 98
1281  iounmap(__cil_tmp24);
1282  }
1283  err2: 
1284#line 100
1285  return (rc);
1286}
1287}
1288#line 103
1289static void cleanup_ts5500_map(void)  __attribute__((__section__(".exit.text"), __no_instrument_function__)) ;
1290#line 103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1291static void cleanup_ts5500_map(void) 
1292{ unsigned long __cil_tmp1 ;
1293  unsigned long __cil_tmp2 ;
1294  void *__cil_tmp3 ;
1295  void volatile   *__cil_tmp4 ;
1296  unsigned long __cil_tmp5 ;
1297
1298  {
1299#line 105
1300  if (mymtd) {
1301    {
1302#line 106
1303    mtd_device_unregister(mymtd);
1304#line 107
1305    map_destroy(mymtd);
1306    }
1307  } else {
1308
1309  }
1310  {
1311#line 110
1312  __cil_tmp1 = (unsigned long )(& ts5500_map) + 24;
1313#line 110
1314  if (*((void **)__cil_tmp1)) {
1315    {
1316#line 111
1317    __cil_tmp2 = (unsigned long )(& ts5500_map) + 24;
1318#line 111
1319    __cil_tmp3 = *((void **)__cil_tmp2);
1320#line 111
1321    __cil_tmp4 = (void volatile   *)__cil_tmp3;
1322#line 111
1323    iounmap(__cil_tmp4);
1324#line 112
1325    __cil_tmp5 = (unsigned long )(& ts5500_map) + 24;
1326#line 112
1327    *((void **)__cil_tmp5) = (void *)0;
1328    }
1329  } else {
1330
1331  }
1332  }
1333#line 114
1334  return;
1335}
1336}
1337#line 116 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1338int init_module(void) 
1339{ int tmp ;
1340
1341  {
1342  {
1343#line 116
1344  tmp = init_ts5500_map();
1345  }
1346#line 116
1347  return (tmp);
1348}
1349}
1350#line 117 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1351void cleanup_module(void) 
1352{ 
1353
1354  {
1355  {
1356#line 117
1357  cleanup_ts5500_map();
1358  }
1359#line 117
1360  return;
1361}
1362}
1363#line 119 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1364static char const   __mod_license119[12]  __attribute__((__used__, __unused__, __section__(".modinfo"),
1365__aligned__(1)))  = 
1366#line 119
1367  {      (char const   )'l',      (char const   )'i',      (char const   )'c',      (char const   )'e', 
1368        (char const   )'n',      (char const   )'s',      (char const   )'e',      (char const   )'=', 
1369        (char const   )'G',      (char const   )'P',      (char const   )'L',      (char const   )'\000'};
1370#line 120 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1371static char const   __mod_author120[34]  __attribute__((__used__, __unused__, __section__(".modinfo"),
1372__aligned__(1)))  = 
1373#line 120
1374  {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'h', 
1375        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'S', 
1376        (char const   )'e',      (char const   )'a',      (char const   )'n',      (char const   )' ', 
1377        (char const   )'Y',      (char const   )'o',      (char const   )'u',      (char const   )'n', 
1378        (char const   )'g',      (char const   )' ',      (char const   )'<',      (char const   )'s', 
1379        (char const   )'e',      (char const   )'a',      (char const   )'n',      (char const   )'@', 
1380        (char const   )'m',      (char const   )'e',      (char const   )'s',      (char const   )'s', 
1381        (char const   )'.',      (char const   )'o',      (char const   )'r',      (char const   )'g', 
1382        (char const   )'>',      (char const   )'\000'};
1383#line 121 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1384static char const   __mod_description121[63]  __attribute__((__used__, __unused__,
1385__section__(".modinfo"), __aligned__(1)))  = 
1386#line 121
1387  {      (char const   )'d',      (char const   )'e',      (char const   )'s',      (char const   )'c', 
1388        (char const   )'r',      (char const   )'i',      (char const   )'p',      (char const   )'t', 
1389        (char const   )'i',      (char const   )'o',      (char const   )'n',      (char const   )'=', 
1390        (char const   )'M',      (char const   )'T',      (char const   )'D',      (char const   )' ', 
1391        (char const   )'m',      (char const   )'a',      (char const   )'p',      (char const   )' ', 
1392        (char const   )'d',      (char const   )'r',      (char const   )'i',      (char const   )'v', 
1393        (char const   )'e',      (char const   )'r',      (char const   )' ',      (char const   )'f', 
1394        (char const   )'o',      (char const   )'r',      (char const   )' ',      (char const   )'T', 
1395        (char const   )'e',      (char const   )'c',      (char const   )'h',      (char const   )'o', 
1396        (char const   )'l',      (char const   )'o',      (char const   )'g',      (char const   )'y', 
1397        (char const   )' ',      (char const   )'S',      (char const   )'y',      (char const   )'s', 
1398        (char const   )'t',      (char const   )'e',      (char const   )'m',      (char const   )'s', 
1399        (char const   )' ',      (char const   )'T',      (char const   )'S',      (char const   )'-', 
1400        (char const   )'5',      (char const   )'5',      (char const   )'0',      (char const   )'0', 
1401        (char const   )' ',      (char const   )'b',      (char const   )'o',      (char const   )'a', 
1402        (char const   )'r',      (char const   )'d',      (char const   )'\000'};
1403#line 140
1404void ldv_check_final_state(void) ;
1405#line 146
1406extern void ldv_initialize(void) ;
1407#line 149
1408extern int __VERIFIER_nondet_int(void) ;
1409#line 152 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1410int LDV_IN_INTERRUPT  ;
1411#line 155 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1412void main(void) 
1413{ int tmp ;
1414  int tmp___0 ;
1415  int tmp___1 ;
1416
1417  {
1418  {
1419#line 167
1420  LDV_IN_INTERRUPT = 1;
1421#line 176
1422  ldv_initialize();
1423#line 186
1424  tmp = init_ts5500_map();
1425  }
1426#line 186
1427  if (tmp) {
1428#line 187
1429    goto ldv_final;
1430  } else {
1431
1432  }
1433  {
1434#line 189
1435  while (1) {
1436    while_continue: /* CIL Label */ ;
1437    {
1438#line 189
1439    tmp___1 = __VERIFIER_nondet_int();
1440    }
1441#line 189
1442    if (tmp___1) {
1443
1444    } else {
1445#line 189
1446      goto while_break;
1447    }
1448    {
1449#line 192
1450    tmp___0 = __VERIFIER_nondet_int();
1451    }
1452    {
1453#line 194
1454    goto switch_default;
1455#line 192
1456    if (0) {
1457      switch_default: /* CIL Label */ 
1458#line 194
1459      goto switch_break;
1460    } else {
1461      switch_break: /* CIL Label */ ;
1462    }
1463    }
1464  }
1465  while_break: /* CIL Label */ ;
1466  }
1467  {
1468#line 210
1469  cleanup_ts5500_map();
1470  }
1471  ldv_final: 
1472  {
1473#line 213
1474  ldv_check_final_state();
1475  }
1476#line 216
1477  return;
1478}
1479}
1480#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast-assert.h"
1481void ldv_blast_assert(void) 
1482{ 
1483
1484  {
1485  ERROR: 
1486#line 6
1487  goto ERROR;
1488}
1489}
1490#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast.h"
1491extern int __VERIFIER_nondet_int(void) ;
1492#line 19 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1493int ldv_mutex  =    1;
1494#line 22 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1495int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) 
1496{ int nondetermined ;
1497
1498  {
1499#line 29
1500  if (ldv_mutex == 1) {
1501
1502  } else {
1503    {
1504#line 29
1505    ldv_blast_assert();
1506    }
1507  }
1508  {
1509#line 32
1510  nondetermined = __VERIFIER_nondet_int();
1511  }
1512#line 35
1513  if (nondetermined) {
1514#line 38
1515    ldv_mutex = 2;
1516#line 40
1517    return (0);
1518  } else {
1519#line 45
1520    return (-4);
1521  }
1522}
1523}
1524#line 50 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1525int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) 
1526{ int nondetermined ;
1527
1528  {
1529#line 57
1530  if (ldv_mutex == 1) {
1531
1532  } else {
1533    {
1534#line 57
1535    ldv_blast_assert();
1536    }
1537  }
1538  {
1539#line 60
1540  nondetermined = __VERIFIER_nondet_int();
1541  }
1542#line 63
1543  if (nondetermined) {
1544#line 66
1545    ldv_mutex = 2;
1546#line 68
1547    return (0);
1548  } else {
1549#line 73
1550    return (-4);
1551  }
1552}
1553}
1554#line 78 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1555int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) 
1556{ int atomic_value_after_dec ;
1557
1558  {
1559#line 83
1560  if (ldv_mutex == 1) {
1561
1562  } else {
1563    {
1564#line 83
1565    ldv_blast_assert();
1566    }
1567  }
1568  {
1569#line 86
1570  atomic_value_after_dec = __VERIFIER_nondet_int();
1571  }
1572#line 89
1573  if (atomic_value_after_dec == 0) {
1574#line 92
1575    ldv_mutex = 2;
1576#line 94
1577    return (1);
1578  } else {
1579
1580  }
1581#line 98
1582  return (0);
1583}
1584}
1585#line 103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1586void mutex_lock(struct mutex *lock ) 
1587{ 
1588
1589  {
1590#line 108
1591  if (ldv_mutex == 1) {
1592
1593  } else {
1594    {
1595#line 108
1596    ldv_blast_assert();
1597    }
1598  }
1599#line 110
1600  ldv_mutex = 2;
1601#line 111
1602  return;
1603}
1604}
1605#line 114 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1606int mutex_trylock(struct mutex *lock ) 
1607{ int nondetermined ;
1608
1609  {
1610#line 121
1611  if (ldv_mutex == 1) {
1612
1613  } else {
1614    {
1615#line 121
1616    ldv_blast_assert();
1617    }
1618  }
1619  {
1620#line 124
1621  nondetermined = __VERIFIER_nondet_int();
1622  }
1623#line 127
1624  if (nondetermined) {
1625#line 130
1626    ldv_mutex = 2;
1627#line 132
1628    return (1);
1629  } else {
1630#line 137
1631    return (0);
1632  }
1633}
1634}
1635#line 142 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1636void mutex_unlock(struct mutex *lock ) 
1637{ 
1638
1639  {
1640#line 147
1641  if (ldv_mutex == 2) {
1642
1643  } else {
1644    {
1645#line 147
1646    ldv_blast_assert();
1647    }
1648  }
1649#line 149
1650  ldv_mutex = 1;
1651#line 150
1652  return;
1653}
1654}
1655#line 153 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
1656void ldv_check_final_state(void) 
1657{ 
1658
1659  {
1660#line 156
1661  if (ldv_mutex == 1) {
1662
1663  } else {
1664    {
1665#line 156
1666    ldv_blast_assert();
1667    }
1668  }
1669#line 157
1670  return;
1671}
1672}
1673#line 225 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5455/dscv_tempdir/dscv/ri/32_1/drivers/mtd/maps/ts5500_flash.c.common.c"
1674long s__builtin_expect(long val , long res ) 
1675{ 
1676
1677  {
1678#line 226
1679  return (val);
1680}
1681}