Showing error 505

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--devices--phram.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 2683
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 202 "include/linux/types.h"
  57typedef unsigned int gfp_t;
  58#line 206 "include/linux/types.h"
  59typedef u64 phys_addr_t;
  60#line 211 "include/linux/types.h"
  61typedef phys_addr_t resource_size_t;
  62#line 219 "include/linux/types.h"
  63struct __anonstruct_atomic_t_7 {
  64   int counter ;
  65};
  66#line 219 "include/linux/types.h"
  67typedef struct __anonstruct_atomic_t_7 atomic_t;
  68#line 224 "include/linux/types.h"
  69struct __anonstruct_atomic64_t_8 {
  70   long counter ;
  71};
  72#line 224 "include/linux/types.h"
  73typedef struct __anonstruct_atomic64_t_8 atomic64_t;
  74#line 229 "include/linux/types.h"
  75struct list_head {
  76   struct list_head *next ;
  77   struct list_head *prev ;
  78};
  79#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page.h"
  80struct page;
  81#line 18
  82struct page;
  83#line 56 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  84struct module;
  85#line 56
  86struct module;
  87#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/thread_info.h"
  88struct task_struct;
  89#line 20
  90struct task_struct;
  91#line 7 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  92struct task_struct;
  93#line 146 "include/linux/init.h"
  94typedef void (*ctor_fn_t)(void);
  95#line 295 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  96struct file;
  97#line 295
  98struct file;
  99#line 46 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 100struct page;
 101#line 52
 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 47 "include/linux/dynamic_debug.h"
 110struct device;
 111#line 47
 112struct device;
 113#line 135 "include/linux/kernel.h"
 114struct completion;
 115#line 135
 116struct completion;
 117#line 8 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/current.h"
 118struct task_struct;
 119#line 10 "include/asm-generic/bug.h"
 120struct bug_entry {
 121   int bug_addr_disp ;
 122   int file_disp ;
 123   unsigned short line ;
 124   unsigned short flags ;
 125};
 126#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 127struct static_key;
 128#line 234
 129struct static_key;
 130#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 131struct kmem_cache;
 132#line 23 "include/asm-generic/atomic-long.h"
 133typedef atomic64_t atomic_long_t;
 134#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 135typedef u16 __ticket_t;
 136#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 137typedef u32 __ticketpair_t;
 138#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 139struct __raw_tickets {
 140   __ticket_t head ;
 141   __ticket_t tail ;
 142};
 143#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 144union __anonunion____missing_field_name_36 {
 145   __ticketpair_t head_tail ;
 146   struct __raw_tickets tickets ;
 147};
 148#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 149struct arch_spinlock {
 150   union __anonunion____missing_field_name_36 __annonCompField17 ;
 151};
 152#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 153typedef struct arch_spinlock arch_spinlock_t;
 154#line 12 "include/linux/lockdep.h"
 155struct task_struct;
 156#line 20 "include/linux/spinlock_types.h"
 157struct raw_spinlock {
 158   arch_spinlock_t raw_lock ;
 159   unsigned int magic ;
 160   unsigned int owner_cpu ;
 161   void *owner ;
 162};
 163#line 64 "include/linux/spinlock_types.h"
 164union __anonunion____missing_field_name_39 {
 165   struct raw_spinlock rlock ;
 166};
 167#line 64 "include/linux/spinlock_types.h"
 168struct spinlock {
 169   union __anonunion____missing_field_name_39 __annonCompField19 ;
 170};
 171#line 64 "include/linux/spinlock_types.h"
 172typedef struct spinlock spinlock_t;
 173#line 8 "include/linux/vmalloc.h"
 174struct vm_area_struct;
 175#line 8
 176struct vm_area_struct;
 177#line 49 "include/linux/wait.h"
 178struct __wait_queue_head {
 179   spinlock_t lock ;
 180   struct list_head task_list ;
 181};
 182#line 53 "include/linux/wait.h"
 183typedef struct __wait_queue_head wait_queue_head_t;
 184#line 55
 185struct task_struct;
 186#line 60 "include/linux/pageblock-flags.h"
 187struct page;
 188#line 48 "include/linux/mutex.h"
 189struct mutex {
 190   atomic_t count ;
 191   spinlock_t wait_lock ;
 192   struct list_head wait_list ;
 193   struct task_struct *owner ;
 194   char const   *name ;
 195   void *magic ;
 196};
 197#line 25 "include/linux/completion.h"
 198struct completion {
 199   unsigned int done ;
 200   wait_queue_head_t wait ;
 201};
 202#line 188 "include/linux/rcupdate.h"
 203struct notifier_block;
 204#line 188
 205struct notifier_block;
 206#line 50 "include/linux/notifier.h"
 207struct notifier_block {
 208   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
 209   struct notifier_block *next ;
 210   int priority ;
 211};
 212#line 9 "include/linux/memory_hotplug.h"
 213struct page;
 214#line 202 "include/linux/ioport.h"
 215struct device;
 216#line 103 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mpspec.h"
 217struct device;
 218#line 46 "include/linux/ktime.h"
 219union ktime {
 220   s64 tv64 ;
 221};
 222#line 59 "include/linux/ktime.h"
 223typedef union ktime ktime_t;
 224#line 10 "include/linux/timer.h"
 225struct tvec_base;
 226#line 10
 227struct tvec_base;
 228#line 12 "include/linux/timer.h"
 229struct timer_list {
 230   struct list_head entry ;
 231   unsigned long expires ;
 232   struct tvec_base *base ;
 233   void (*function)(unsigned long  ) ;
 234   unsigned long data ;
 235   int slack ;
 236   int start_pid ;
 237   void *start_site ;
 238   char start_comm[16] ;
 239};
 240#line 17 "include/linux/workqueue.h"
 241struct work_struct;
 242#line 17
 243struct work_struct;
 244#line 79 "include/linux/workqueue.h"
 245struct work_struct {
 246   atomic_long_t data ;
 247   struct list_head entry ;
 248   void (*func)(struct work_struct *work ) ;
 249};
 250#line 42 "include/linux/pm.h"
 251struct device;
 252#line 50 "include/linux/pm.h"
 253struct pm_message {
 254   int event ;
 255};
 256#line 50 "include/linux/pm.h"
 257typedef struct pm_message pm_message_t;
 258#line 264 "include/linux/pm.h"
 259struct dev_pm_ops {
 260   int (*prepare)(struct device *dev ) ;
 261   void (*complete)(struct device *dev ) ;
 262   int (*suspend)(struct device *dev ) ;
 263   int (*resume)(struct device *dev ) ;
 264   int (*freeze)(struct device *dev ) ;
 265   int (*thaw)(struct device *dev ) ;
 266   int (*poweroff)(struct device *dev ) ;
 267   int (*restore)(struct device *dev ) ;
 268   int (*suspend_late)(struct device *dev ) ;
 269   int (*resume_early)(struct device *dev ) ;
 270   int (*freeze_late)(struct device *dev ) ;
 271   int (*thaw_early)(struct device *dev ) ;
 272   int (*poweroff_late)(struct device *dev ) ;
 273   int (*restore_early)(struct device *dev ) ;
 274   int (*suspend_noirq)(struct device *dev ) ;
 275   int (*resume_noirq)(struct device *dev ) ;
 276   int (*freeze_noirq)(struct device *dev ) ;
 277   int (*thaw_noirq)(struct device *dev ) ;
 278   int (*poweroff_noirq)(struct device *dev ) ;
 279   int (*restore_noirq)(struct device *dev ) ;
 280   int (*runtime_suspend)(struct device *dev ) ;
 281   int (*runtime_resume)(struct device *dev ) ;
 282   int (*runtime_idle)(struct device *dev ) ;
 283};
 284#line 458
 285enum rpm_status {
 286    RPM_ACTIVE = 0,
 287    RPM_RESUMING = 1,
 288    RPM_SUSPENDED = 2,
 289    RPM_SUSPENDING = 3
 290} ;
 291#line 480
 292enum rpm_request {
 293    RPM_REQ_NONE = 0,
 294    RPM_REQ_IDLE = 1,
 295    RPM_REQ_SUSPEND = 2,
 296    RPM_REQ_AUTOSUSPEND = 3,
 297    RPM_REQ_RESUME = 4
 298} ;
 299#line 488
 300struct wakeup_source;
 301#line 488
 302struct wakeup_source;
 303#line 495 "include/linux/pm.h"
 304struct pm_subsys_data {
 305   spinlock_t lock ;
 306   unsigned int refcount ;
 307};
 308#line 506
 309struct dev_pm_qos_request;
 310#line 506
 311struct pm_qos_constraints;
 312#line 506 "include/linux/pm.h"
 313struct dev_pm_info {
 314   pm_message_t power_state ;
 315   unsigned int can_wakeup : 1 ;
 316   unsigned int async_suspend : 1 ;
 317   bool is_prepared : 1 ;
 318   bool is_suspended : 1 ;
 319   bool ignore_children : 1 ;
 320   spinlock_t lock ;
 321   struct list_head entry ;
 322   struct completion completion ;
 323   struct wakeup_source *wakeup ;
 324   bool wakeup_path : 1 ;
 325   struct timer_list suspend_timer ;
 326   unsigned long timer_expires ;
 327   struct work_struct work ;
 328   wait_queue_head_t wait_queue ;
 329   atomic_t usage_count ;
 330   atomic_t child_count ;
 331   unsigned int disable_depth : 3 ;
 332   unsigned int idle_notification : 1 ;
 333   unsigned int request_pending : 1 ;
 334   unsigned int deferred_resume : 1 ;
 335   unsigned int run_wake : 1 ;
 336   unsigned int runtime_auto : 1 ;
 337   unsigned int no_callbacks : 1 ;
 338   unsigned int irq_safe : 1 ;
 339   unsigned int use_autosuspend : 1 ;
 340   unsigned int timer_autosuspends : 1 ;
 341   enum rpm_request request ;
 342   enum rpm_status runtime_status ;
 343   int runtime_error ;
 344   int autosuspend_delay ;
 345   unsigned long last_busy ;
 346   unsigned long active_jiffies ;
 347   unsigned long suspended_jiffies ;
 348   unsigned long accounting_timestamp ;
 349   ktime_t suspend_time ;
 350   s64 max_time_suspended_ns ;
 351   struct dev_pm_qos_request *pq_req ;
 352   struct pm_subsys_data *subsys_data ;
 353   struct pm_qos_constraints *constraints ;
 354};
 355#line 564 "include/linux/pm.h"
 356struct dev_pm_domain {
 357   struct dev_pm_ops ops ;
 358};
 359#line 994 "include/linux/mmzone.h"
 360struct page;
 361#line 10 "include/linux/gfp.h"
 362struct vm_area_struct;
 363#line 29 "include/linux/sysctl.h"
 364struct completion;
 365#line 49 "include/linux/kmod.h"
 366struct file;
 367#line 270 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/elf.h"
 368struct task_struct;
 369#line 18 "include/linux/elf.h"
 370typedef __u64 Elf64_Addr;
 371#line 19 "include/linux/elf.h"
 372typedef __u16 Elf64_Half;
 373#line 23 "include/linux/elf.h"
 374typedef __u32 Elf64_Word;
 375#line 24 "include/linux/elf.h"
 376typedef __u64 Elf64_Xword;
 377#line 194 "include/linux/elf.h"
 378struct elf64_sym {
 379   Elf64_Word st_name ;
 380   unsigned char st_info ;
 381   unsigned char st_other ;
 382   Elf64_Half st_shndx ;
 383   Elf64_Addr st_value ;
 384   Elf64_Xword st_size ;
 385};
 386#line 194 "include/linux/elf.h"
 387typedef struct elf64_sym Elf64_Sym;
 388#line 438
 389struct file;
 390#line 20 "include/linux/kobject_ns.h"
 391struct sock;
 392#line 20
 393struct sock;
 394#line 21
 395struct kobject;
 396#line 21
 397struct kobject;
 398#line 27
 399enum kobj_ns_type {
 400    KOBJ_NS_TYPE_NONE = 0,
 401    KOBJ_NS_TYPE_NET = 1,
 402    KOBJ_NS_TYPES = 2
 403} ;
 404#line 40 "include/linux/kobject_ns.h"
 405struct kobj_ns_type_operations {
 406   enum kobj_ns_type type ;
 407   void *(*grab_current_ns)(void) ;
 408   void const   *(*netlink_ns)(struct sock *sk ) ;
 409   void const   *(*initial_ns)(void) ;
 410   void (*drop_ns)(void * ) ;
 411};
 412#line 22 "include/linux/sysfs.h"
 413struct kobject;
 414#line 23
 415struct module;
 416#line 24
 417enum kobj_ns_type;
 418#line 26 "include/linux/sysfs.h"
 419struct attribute {
 420   char const   *name ;
 421   umode_t mode ;
 422};
 423#line 56 "include/linux/sysfs.h"
 424struct attribute_group {
 425   char const   *name ;
 426   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 427   struct attribute **attrs ;
 428};
 429#line 85
 430struct file;
 431#line 86
 432struct vm_area_struct;
 433#line 88 "include/linux/sysfs.h"
 434struct bin_attribute {
 435   struct attribute attr ;
 436   size_t size ;
 437   void *private ;
 438   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 439                   loff_t  , size_t  ) ;
 440   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 441                    loff_t  , size_t  ) ;
 442   int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
 443};
 444#line 112 "include/linux/sysfs.h"
 445struct sysfs_ops {
 446   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 447   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 448   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 449};
 450#line 118
 451struct sysfs_dirent;
 452#line 118
 453struct sysfs_dirent;
 454#line 22 "include/linux/kref.h"
 455struct kref {
 456   atomic_t refcount ;
 457};
 458#line 60 "include/linux/kobject.h"
 459struct kset;
 460#line 60
 461struct kobj_type;
 462#line 60 "include/linux/kobject.h"
 463struct kobject {
 464   char const   *name ;
 465   struct list_head entry ;
 466   struct kobject *parent ;
 467   struct kset *kset ;
 468   struct kobj_type *ktype ;
 469   struct sysfs_dirent *sd ;
 470   struct kref kref ;
 471   unsigned int state_initialized : 1 ;
 472   unsigned int state_in_sysfs : 1 ;
 473   unsigned int state_add_uevent_sent : 1 ;
 474   unsigned int state_remove_uevent_sent : 1 ;
 475   unsigned int uevent_suppress : 1 ;
 476};
 477#line 108 "include/linux/kobject.h"
 478struct kobj_type {
 479   void (*release)(struct kobject *kobj ) ;
 480   struct sysfs_ops  const  *sysfs_ops ;
 481   struct attribute **default_attrs ;
 482   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject *kobj ) ;
 483   void const   *(*namespace)(struct kobject *kobj ) ;
 484};
 485#line 116 "include/linux/kobject.h"
 486struct kobj_uevent_env {
 487   char *envp[32] ;
 488   int envp_idx ;
 489   char buf[2048] ;
 490   int buflen ;
 491};
 492#line 123 "include/linux/kobject.h"
 493struct kset_uevent_ops {
 494   int (* const  filter)(struct kset *kset , struct kobject *kobj ) ;
 495   char const   *(* const  name)(struct kset *kset , struct kobject *kobj ) ;
 496   int (* const  uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
 497};
 498#line 140
 499struct sock;
 500#line 159 "include/linux/kobject.h"
 501struct kset {
 502   struct list_head list ;
 503   spinlock_t list_lock ;
 504   struct kobject kobj ;
 505   struct kset_uevent_ops  const  *uevent_ops ;
 506};
 507#line 39 "include/linux/moduleparam.h"
 508struct kernel_param;
 509#line 39
 510struct kernel_param;
 511#line 41 "include/linux/moduleparam.h"
 512struct kernel_param_ops {
 513   int (*set)(char const   *val , struct kernel_param  const  *kp ) ;
 514   int (*get)(char *buffer , struct kernel_param  const  *kp ) ;
 515   void (*free)(void *arg ) ;
 516};
 517#line 50
 518struct kparam_string;
 519#line 50
 520struct kparam_array;
 521#line 50 "include/linux/moduleparam.h"
 522union __anonunion____missing_field_name_199 {
 523   void *arg ;
 524   struct kparam_string  const  *str ;
 525   struct kparam_array  const  *arr ;
 526};
 527#line 50 "include/linux/moduleparam.h"
 528struct kernel_param {
 529   char const   *name ;
 530   struct kernel_param_ops  const  *ops ;
 531   u16 perm ;
 532   s16 level ;
 533   union __anonunion____missing_field_name_199 __annonCompField32 ;
 534};
 535#line 63 "include/linux/moduleparam.h"
 536struct kparam_string {
 537   unsigned int maxlen ;
 538   char *string ;
 539};
 540#line 69 "include/linux/moduleparam.h"
 541struct kparam_array {
 542   unsigned int max ;
 543   unsigned int elemsize ;
 544   unsigned int *num ;
 545   struct kernel_param_ops  const  *ops ;
 546   void *elem ;
 547};
 548#line 445
 549struct module;
 550#line 80 "include/linux/jump_label.h"
 551struct module;
 552#line 143 "include/linux/jump_label.h"
 553struct static_key {
 554   atomic_t enabled ;
 555};
 556#line 22 "include/linux/tracepoint.h"
 557struct module;
 558#line 23
 559struct tracepoint;
 560#line 23
 561struct tracepoint;
 562#line 25 "include/linux/tracepoint.h"
 563struct tracepoint_func {
 564   void *func ;
 565   void *data ;
 566};
 567#line 30 "include/linux/tracepoint.h"
 568struct tracepoint {
 569   char const   *name ;
 570   struct static_key key ;
 571   void (*regfunc)(void) ;
 572   void (*unregfunc)(void) ;
 573   struct tracepoint_func *funcs ;
 574};
 575#line 19 "include/linux/export.h"
 576struct kernel_symbol {
 577   unsigned long value ;
 578   char const   *name ;
 579};
 580#line 8 "include/asm-generic/module.h"
 581struct mod_arch_specific {
 582
 583};
 584#line 35 "include/linux/module.h"
 585struct module;
 586#line 37
 587struct module_param_attrs;
 588#line 37 "include/linux/module.h"
 589struct module_kobject {
 590   struct kobject kobj ;
 591   struct module *mod ;
 592   struct kobject *drivers_dir ;
 593   struct module_param_attrs *mp ;
 594};
 595#line 44 "include/linux/module.h"
 596struct module_attribute {
 597   struct attribute attr ;
 598   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 599   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 600                    size_t count ) ;
 601   void (*setup)(struct module * , char const   * ) ;
 602   int (*test)(struct module * ) ;
 603   void (*free)(struct module * ) ;
 604};
 605#line 71
 606struct exception_table_entry;
 607#line 71
 608struct exception_table_entry;
 609#line 182
 610struct notifier_block;
 611#line 199
 612enum module_state {
 613    MODULE_STATE_LIVE = 0,
 614    MODULE_STATE_COMING = 1,
 615    MODULE_STATE_GOING = 2
 616} ;
 617#line 215 "include/linux/module.h"
 618struct module_ref {
 619   unsigned long incs ;
 620   unsigned long decs ;
 621} __attribute__((__aligned__((2) *  (sizeof(unsigned long )) ))) ;
 622#line 220
 623struct module_sect_attrs;
 624#line 220
 625struct module_notes_attrs;
 626#line 220
 627struct ftrace_event_call;
 628#line 220 "include/linux/module.h"
 629struct module {
 630   enum module_state state ;
 631   struct list_head list ;
 632   char name[64UL - sizeof(unsigned long )] ;
 633   struct module_kobject mkobj ;
 634   struct module_attribute *modinfo_attrs ;
 635   char const   *version ;
 636   char const   *srcversion ;
 637   struct kobject *holders_dir ;
 638   struct kernel_symbol  const  *syms ;
 639   unsigned long const   *crcs ;
 640   unsigned int num_syms ;
 641   struct kernel_param *kp ;
 642   unsigned int num_kp ;
 643   unsigned int num_gpl_syms ;
 644   struct kernel_symbol  const  *gpl_syms ;
 645   unsigned long const   *gpl_crcs ;
 646   struct kernel_symbol  const  *unused_syms ;
 647   unsigned long const   *unused_crcs ;
 648   unsigned int num_unused_syms ;
 649   unsigned int num_unused_gpl_syms ;
 650   struct kernel_symbol  const  *unused_gpl_syms ;
 651   unsigned long const   *unused_gpl_crcs ;
 652   struct kernel_symbol  const  *gpl_future_syms ;
 653   unsigned long const   *gpl_future_crcs ;
 654   unsigned int num_gpl_future_syms ;
 655   unsigned int num_exentries ;
 656   struct exception_table_entry *extable ;
 657   int (*init)(void) ;
 658   void *module_init ;
 659   void *module_core ;
 660   unsigned int init_size ;
 661   unsigned int core_size ;
 662   unsigned int init_text_size ;
 663   unsigned int core_text_size ;
 664   unsigned int init_ro_size ;
 665   unsigned int core_ro_size ;
 666   struct mod_arch_specific arch ;
 667   unsigned int taints ;
 668   unsigned int num_bugs ;
 669   struct list_head bug_list ;
 670   struct bug_entry *bug_table ;
 671   Elf64_Sym *symtab ;
 672   Elf64_Sym *core_symtab ;
 673   unsigned int num_symtab ;
 674   unsigned int core_num_syms ;
 675   char *strtab ;
 676   char *core_strtab ;
 677   struct module_sect_attrs *sect_attrs ;
 678   struct module_notes_attrs *notes_attrs ;
 679   char *args ;
 680   void *percpu ;
 681   unsigned int percpu_size ;
 682   unsigned int num_tracepoints ;
 683   struct tracepoint * const  *tracepoints_ptrs ;
 684   unsigned int num_trace_bprintk_fmt ;
 685   char const   **trace_bprintk_fmt_start ;
 686   struct ftrace_event_call **trace_events ;
 687   unsigned int num_trace_events ;
 688   struct list_head source_list ;
 689   struct list_head target_list ;
 690   struct task_struct *waiter ;
 691   void (*exit)(void) ;
 692   struct module_ref *refptr ;
 693   ctor_fn_t *ctors ;
 694   unsigned int num_ctors ;
 695};
 696#line 46 "include/linux/slub_def.h"
 697struct kmem_cache_cpu {
 698   void **freelist ;
 699   unsigned long tid ;
 700   struct page *page ;
 701   struct page *partial ;
 702   int node ;
 703   unsigned int stat[26] ;
 704};
 705#line 57 "include/linux/slub_def.h"
 706struct kmem_cache_node {
 707   spinlock_t list_lock ;
 708   unsigned long nr_partial ;
 709   struct list_head partial ;
 710   atomic_long_t nr_slabs ;
 711   atomic_long_t total_objects ;
 712   struct list_head full ;
 713};
 714#line 73 "include/linux/slub_def.h"
 715struct kmem_cache_order_objects {
 716   unsigned long x ;
 717};
 718#line 80 "include/linux/slub_def.h"
 719struct kmem_cache {
 720   struct kmem_cache_cpu *cpu_slab ;
 721   unsigned long flags ;
 722   unsigned long min_partial ;
 723   int size ;
 724   int objsize ;
 725   int offset ;
 726   int cpu_partial ;
 727   struct kmem_cache_order_objects oo ;
 728   struct kmem_cache_order_objects max ;
 729   struct kmem_cache_order_objects min ;
 730   gfp_t allocflags ;
 731   int refcount ;
 732   void (*ctor)(void * ) ;
 733   int inuse ;
 734   int align ;
 735   int reserved ;
 736   char const   *name ;
 737   struct list_head list ;
 738   struct kobject kobj ;
 739   int remote_node_defrag_ratio ;
 740   struct kmem_cache_node *node[1 << 10] ;
 741};
 742#line 31 "include/linux/uio.h"
 743struct kvec {
 744   void *iov_base ;
 745   size_t iov_len ;
 746};
 747#line 19 "include/linux/klist.h"
 748struct klist_node;
 749#line 19
 750struct klist_node;
 751#line 39 "include/linux/klist.h"
 752struct klist_node {
 753   void *n_klist ;
 754   struct list_head n_node ;
 755   struct kref n_ref ;
 756};
 757#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 758struct dma_map_ops;
 759#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 760struct dev_archdata {
 761   void *acpi_handle ;
 762   struct dma_map_ops *dma_ops ;
 763   void *iommu ;
 764};
 765#line 28 "include/linux/device.h"
 766struct device;
 767#line 29
 768struct device_private;
 769#line 29
 770struct device_private;
 771#line 30
 772struct device_driver;
 773#line 30
 774struct device_driver;
 775#line 31
 776struct driver_private;
 777#line 31
 778struct driver_private;
 779#line 32
 780struct module;
 781#line 33
 782struct class;
 783#line 33
 784struct class;
 785#line 34
 786struct subsys_private;
 787#line 34
 788struct subsys_private;
 789#line 35
 790struct bus_type;
 791#line 35
 792struct bus_type;
 793#line 36
 794struct device_node;
 795#line 36
 796struct device_node;
 797#line 37
 798struct iommu_ops;
 799#line 37
 800struct iommu_ops;
 801#line 39 "include/linux/device.h"
 802struct bus_attribute {
 803   struct attribute attr ;
 804   ssize_t (*show)(struct bus_type *bus , char *buf ) ;
 805   ssize_t (*store)(struct bus_type *bus , char const   *buf , size_t count ) ;
 806};
 807#line 89
 808struct device_attribute;
 809#line 89
 810struct driver_attribute;
 811#line 89 "include/linux/device.h"
 812struct bus_type {
 813   char const   *name ;
 814   char const   *dev_name ;
 815   struct device *dev_root ;
 816   struct bus_attribute *bus_attrs ;
 817   struct device_attribute *dev_attrs ;
 818   struct driver_attribute *drv_attrs ;
 819   int (*match)(struct device *dev , struct device_driver *drv ) ;
 820   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 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 dev_pm_ops  const  *pm ;
 827   struct iommu_ops *iommu_ops ;
 828   struct subsys_private *p ;
 829};
 830#line 127
 831struct device_type;
 832#line 159
 833struct notifier_block;
 834#line 214
 835struct of_device_id;
 836#line 214 "include/linux/device.h"
 837struct device_driver {
 838   char const   *name ;
 839   struct bus_type *bus ;
 840   struct module *owner ;
 841   char const   *mod_name ;
 842   bool suppress_bind_attrs ;
 843   struct of_device_id  const  *of_match_table ;
 844   int (*probe)(struct device *dev ) ;
 845   int (*remove)(struct device *dev ) ;
 846   void (*shutdown)(struct device *dev ) ;
 847   int (*suspend)(struct device *dev , pm_message_t state ) ;
 848   int (*resume)(struct device *dev ) ;
 849   struct attribute_group  const  **groups ;
 850   struct dev_pm_ops  const  *pm ;
 851   struct driver_private *p ;
 852};
 853#line 249 "include/linux/device.h"
 854struct driver_attribute {
 855   struct attribute attr ;
 856   ssize_t (*show)(struct device_driver *driver , char *buf ) ;
 857   ssize_t (*store)(struct device_driver *driver , char const   *buf , size_t count ) ;
 858};
 859#line 330
 860struct class_attribute;
 861#line 330 "include/linux/device.h"
 862struct class {
 863   char const   *name ;
 864   struct module *owner ;
 865   struct class_attribute *class_attrs ;
 866   struct device_attribute *dev_attrs ;
 867   struct bin_attribute *dev_bin_attrs ;
 868   struct kobject *dev_kobj ;
 869   int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 870   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 871   void (*class_release)(struct class *class ) ;
 872   void (*dev_release)(struct device *dev ) ;
 873   int (*suspend)(struct device *dev , pm_message_t state ) ;
 874   int (*resume)(struct device *dev ) ;
 875   struct kobj_ns_type_operations  const  *ns_type ;
 876   void const   *(*namespace)(struct device *dev ) ;
 877   struct dev_pm_ops  const  *pm ;
 878   struct subsys_private *p ;
 879};
 880#line 397 "include/linux/device.h"
 881struct class_attribute {
 882   struct attribute attr ;
 883   ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
 884   ssize_t (*store)(struct class *class , struct class_attribute *attr , char const   *buf ,
 885                    size_t count ) ;
 886   void const   *(*namespace)(struct class *class , struct class_attribute  const  *attr ) ;
 887};
 888#line 465 "include/linux/device.h"
 889struct device_type {
 890   char const   *name ;
 891   struct attribute_group  const  **groups ;
 892   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 893   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 894   void (*release)(struct device *dev ) ;
 895   struct dev_pm_ops  const  *pm ;
 896};
 897#line 476 "include/linux/device.h"
 898struct device_attribute {
 899   struct attribute attr ;
 900   ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
 901   ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const   *buf ,
 902                    size_t count ) ;
 903};
 904#line 559 "include/linux/device.h"
 905struct device_dma_parameters {
 906   unsigned int max_segment_size ;
 907   unsigned long segment_boundary_mask ;
 908};
 909#line 627
 910struct dma_coherent_mem;
 911#line 627 "include/linux/device.h"
 912struct device {
 913   struct device *parent ;
 914   struct device_private *p ;
 915   struct kobject kobj ;
 916   char const   *init_name ;
 917   struct device_type  const  *type ;
 918   struct mutex mutex ;
 919   struct bus_type *bus ;
 920   struct device_driver *driver ;
 921   void *platform_data ;
 922   struct dev_pm_info power ;
 923   struct dev_pm_domain *pm_domain ;
 924   int numa_node ;
 925   u64 *dma_mask ;
 926   u64 coherent_dma_mask ;
 927   struct device_dma_parameters *dma_parms ;
 928   struct list_head dma_pools ;
 929   struct dma_coherent_mem *dma_mem ;
 930   struct dev_archdata archdata ;
 931   struct device_node *of_node ;
 932   dev_t devt ;
 933   u32 id ;
 934   spinlock_t devres_lock ;
 935   struct list_head devres_head ;
 936   struct klist_node knode_class ;
 937   struct class *class ;
 938   struct attribute_group  const  **groups ;
 939   void (*release)(struct device *dev ) ;
 940};
 941#line 43 "include/linux/pm_wakeup.h"
 942struct wakeup_source {
 943   char const   *name ;
 944   struct list_head entry ;
 945   spinlock_t lock ;
 946   struct timer_list timer ;
 947   unsigned long timer_expires ;
 948   ktime_t total_time ;
 949   ktime_t max_time ;
 950   ktime_t last_time ;
 951   unsigned long event_count ;
 952   unsigned long active_count ;
 953   unsigned long relax_count ;
 954   unsigned long hit_count ;
 955   unsigned int active : 1 ;
 956};
 957#line 143 "include/mtd/mtd-abi.h"
 958struct otp_info {
 959   __u32 start ;
 960   __u32 length ;
 961   __u32 locked ;
 962};
 963#line 217 "include/mtd/mtd-abi.h"
 964struct nand_oobfree {
 965   __u32 offset ;
 966   __u32 length ;
 967};
 968#line 247 "include/mtd/mtd-abi.h"
 969struct mtd_ecc_stats {
 970   __u32 corrected ;
 971   __u32 failed ;
 972   __u32 badblocks ;
 973   __u32 bbtblocks ;
 974};
 975#line 48 "include/linux/mtd/mtd.h"
 976struct mtd_info;
 977#line 48 "include/linux/mtd/mtd.h"
 978struct erase_info {
 979   struct mtd_info *mtd ;
 980   uint64_t addr ;
 981   uint64_t len ;
 982   uint64_t fail_addr ;
 983   u_long time ;
 984   u_long retries ;
 985   unsigned int dev ;
 986   unsigned int cell ;
 987   void (*callback)(struct erase_info *self ) ;
 988   u_long priv ;
 989   u_char state ;
 990   struct erase_info *next ;
 991};
 992#line 63 "include/linux/mtd/mtd.h"
 993struct mtd_erase_region_info {
 994   uint64_t offset ;
 995   uint32_t erasesize ;
 996   uint32_t numblocks ;
 997   unsigned long *lockmap ;
 998};
 999#line 89 "include/linux/mtd/mtd.h"
1000struct mtd_oob_ops {
1001   unsigned int mode ;
1002   size_t len ;
1003   size_t retlen ;
1004   size_t ooblen ;
1005   size_t oobretlen ;
1006   uint32_t ooboffs ;
1007   uint8_t *datbuf ;
1008   uint8_t *oobbuf ;
1009};
1010#line 108 "include/linux/mtd/mtd.h"
1011struct nand_ecclayout {
1012   __u32 eccbytes ;
1013   __u32 eccpos[448] ;
1014   __u32 oobavail ;
1015   struct nand_oobfree oobfree[32] ;
1016};
1017#line 115
1018struct module;
1019#line 117
1020struct backing_dev_info;
1021#line 117 "include/linux/mtd/mtd.h"
1022struct mtd_info {
1023   u_char type ;
1024   uint32_t flags ;
1025   uint64_t size ;
1026   uint32_t erasesize ;
1027   uint32_t writesize ;
1028   uint32_t writebufsize ;
1029   uint32_t oobsize ;
1030   uint32_t oobavail ;
1031   unsigned int erasesize_shift ;
1032   unsigned int writesize_shift ;
1033   unsigned int erasesize_mask ;
1034   unsigned int writesize_mask ;
1035   char const   *name ;
1036   int index ;
1037   struct nand_ecclayout *ecclayout ;
1038   unsigned int ecc_strength ;
1039   int numeraseregions ;
1040   struct mtd_erase_region_info *eraseregions ;
1041   int (*_erase)(struct mtd_info *mtd , struct erase_info *instr ) ;
1042   int (*_point)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1043                 void **virt , resource_size_t *phys ) ;
1044   int (*_unpoint)(struct mtd_info *mtd , loff_t from , size_t len ) ;
1045   unsigned long (*_get_unmapped_area)(struct mtd_info *mtd , unsigned long len ,
1046                                       unsigned long offset , unsigned long flags ) ;
1047   int (*_read)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1048                u_char *buf ) ;
1049   int (*_write)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1050                 u_char const   *buf ) ;
1051   int (*_panic_write)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1052                       u_char const   *buf ) ;
1053   int (*_read_oob)(struct mtd_info *mtd , loff_t from , struct mtd_oob_ops *ops ) ;
1054   int (*_write_oob)(struct mtd_info *mtd , loff_t to , struct mtd_oob_ops *ops ) ;
1055   int (*_get_fact_prot_info)(struct mtd_info *mtd , struct otp_info *buf , size_t len ) ;
1056   int (*_read_fact_prot_reg)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1057                              u_char *buf ) ;
1058   int (*_get_user_prot_info)(struct mtd_info *mtd , struct otp_info *buf , size_t len ) ;
1059   int (*_read_user_prot_reg)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1060                              u_char *buf ) ;
1061   int (*_write_user_prot_reg)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1062                               u_char *buf ) ;
1063   int (*_lock_user_prot_reg)(struct mtd_info *mtd , loff_t from , size_t len ) ;
1064   int (*_writev)(struct mtd_info *mtd , struct kvec  const  *vecs , unsigned long count ,
1065                  loff_t to , size_t *retlen ) ;
1066   void (*_sync)(struct mtd_info *mtd ) ;
1067   int (*_lock)(struct mtd_info *mtd , loff_t ofs , uint64_t len ) ;
1068   int (*_unlock)(struct mtd_info *mtd , loff_t ofs , uint64_t len ) ;
1069   int (*_is_locked)(struct mtd_info *mtd , loff_t ofs , uint64_t len ) ;
1070   int (*_block_isbad)(struct mtd_info *mtd , loff_t ofs ) ;
1071   int (*_block_markbad)(struct mtd_info *mtd , loff_t ofs ) ;
1072   int (*_suspend)(struct mtd_info *mtd ) ;
1073   void (*_resume)(struct mtd_info *mtd ) ;
1074   int (*_get_device)(struct mtd_info *mtd ) ;
1075   void (*_put_device)(struct mtd_info *mtd ) ;
1076   struct backing_dev_info *backing_dev_info ;
1077   struct notifier_block reboot_notifier ;
1078   struct mtd_ecc_stats ecc_stats ;
1079   int subpage_sft ;
1080   void *priv ;
1081   struct module *owner ;
1082   struct device dev ;
1083   int usecount ;
1084};
1085#line 359
1086struct mtd_partition;
1087#line 359
1088struct mtd_partition;
1089#line 360
1090struct mtd_part_parser_data;
1091#line 360
1092struct mtd_part_parser_data;
1093#line 30 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1094struct phram_mtd_list {
1095   struct mtd_info mtd ;
1096   struct list_head list ;
1097};
1098#line 1 "<compiler builtins>"
1099
1100#line 1
1101long __builtin_expect(long val , long res ) ;
1102#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
1103extern void *memset(void *s , int c , size_t n ) ;
1104#line 61
1105extern unsigned long strlen(char const   *s ) ;
1106#line 62
1107extern char *strcpy(char *dest , char const   *src ) ;
1108#line 63 "include/linux/string.h"
1109extern char *strrchr(char const   * , int  ) ;
1110#line 84
1111extern __kernel_size_t strnlen(char const   * , __kernel_size_t  ) ;
1112#line 90
1113extern char *strsep(char ** , char const   * ) ;
1114#line 174 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
1115extern void *ioremap_nocache(resource_size_t offset , unsigned long size ) ;
1116#line 182
1117__inline static void *ioremap(resource_size_t offset , unsigned long size )  __attribute__((__no_instrument_function__)) ;
1118#line 182 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
1119__inline static void *ioremap(resource_size_t offset , unsigned long size ) 
1120{ void *tmp ;
1121
1122  {
1123  {
1124#line 184
1125  tmp = ioremap_nocache(offset, size);
1126  }
1127#line 184
1128  return (tmp);
1129}
1130}
1131#line 187
1132extern void iounmap(void volatile   *addr ) ;
1133#line 100 "include/linux/printk.h"
1134extern int ( /* format attribute */  printk)(char const   *fmt  , ...) ;
1135#line 307 "include/linux/kernel.h"
1136extern unsigned long simple_strtoul(char const   * , char ** , unsigned int  ) ;
1137#line 47 "include/linux/list.h"
1138extern void __list_add(struct list_head *new , struct list_head *prev , struct list_head *next ) ;
1139#line 74
1140__inline static void list_add_tail(struct list_head *new , struct list_head *head )  __attribute__((__no_instrument_function__)) ;
1141#line 74 "include/linux/list.h"
1142__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
1143{ unsigned long __cil_tmp3 ;
1144  unsigned long __cil_tmp4 ;
1145  struct list_head *__cil_tmp5 ;
1146
1147  {
1148  {
1149#line 76
1150  __cil_tmp3 = (unsigned long )head;
1151#line 76
1152  __cil_tmp4 = __cil_tmp3 + 8;
1153#line 76
1154  __cil_tmp5 = *((struct list_head **)__cil_tmp4);
1155#line 76
1156  __list_add(new, __cil_tmp5, head);
1157  }
1158#line 77
1159  return;
1160}
1161}
1162#line 152 "include/linux/mutex.h"
1163void mutex_lock(struct mutex *lock ) ;
1164#line 153
1165int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) ;
1166#line 154
1167int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) ;
1168#line 168
1169int mutex_trylock(struct mutex *lock ) ;
1170#line 169
1171void mutex_unlock(struct mutex *lock ) ;
1172#line 170
1173int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) ;
1174#line 26 "include/linux/export.h"
1175extern struct module __this_module ;
1176#line 67 "include/linux/module.h"
1177int init_module(void) ;
1178#line 68
1179void cleanup_module(void) ;
1180#line 161 "include/linux/slab.h"
1181extern void kfree(void const   * ) ;
1182#line 221 "include/linux/slub_def.h"
1183extern void *__kmalloc(size_t size , gfp_t flags ) ;
1184#line 268
1185__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
1186                                                                    gfp_t flags )  __attribute__((__no_instrument_function__)) ;
1187#line 268 "include/linux/slub_def.h"
1188__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
1189                                                                    gfp_t flags ) 
1190{ void *tmp___2 ;
1191
1192  {
1193  {
1194#line 283
1195  tmp___2 = __kmalloc(size, flags);
1196  }
1197#line 283
1198  return (tmp___2);
1199}
1200}
1201#line 349 "include/linux/slab.h"
1202__inline static void *kzalloc(size_t size , gfp_t flags )  __attribute__((__no_instrument_function__)) ;
1203#line 349 "include/linux/slab.h"
1204__inline static void *kzalloc(size_t size , gfp_t flags ) 
1205{ void *tmp ;
1206  unsigned int __cil_tmp4 ;
1207
1208  {
1209  {
1210#line 351
1211  __cil_tmp4 = flags | 32768U;
1212#line 351
1213  tmp = kmalloc(size, __cil_tmp4);
1214  }
1215#line 351
1216  return (tmp);
1217}
1218}
1219#line 362 "include/linux/mtd/mtd.h"
1220extern int mtd_device_parse_register(struct mtd_info *mtd , char const   **part_probe_types ,
1221                                     struct mtd_part_parser_data *parser_data , struct mtd_partition  const  *defparts ,
1222                                     int defnr_parts ) ;
1223#line 369
1224extern int mtd_device_unregister(struct mtd_info *master ) ;
1225#line 388
1226extern void mtd_erase_callback(struct erase_info *instr ) ;
1227#line 35 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1228static struct list_head phram_list  =    {& phram_list, & phram_list};
1229#line 37 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1230static int phram_erase(struct mtd_info *mtd , struct erase_info *instr ) 
1231{ u_char *start ;
1232  unsigned long __cil_tmp4 ;
1233  unsigned long __cil_tmp5 ;
1234  void *__cil_tmp6 ;
1235  unsigned long __cil_tmp7 ;
1236  unsigned long __cil_tmp8 ;
1237  uint64_t __cil_tmp9 ;
1238  u_char *__cil_tmp10 ;
1239  void *__cil_tmp11 ;
1240  unsigned long __cil_tmp12 ;
1241  unsigned long __cil_tmp13 ;
1242  uint64_t __cil_tmp14 ;
1243  size_t __cil_tmp15 ;
1244  unsigned long __cil_tmp16 ;
1245  unsigned long __cil_tmp17 ;
1246
1247  {
1248  {
1249#line 39
1250  __cil_tmp4 = (unsigned long )mtd;
1251#line 39
1252  __cil_tmp5 = __cil_tmp4 + 360;
1253#line 39
1254  __cil_tmp6 = *((void **)__cil_tmp5);
1255#line 39
1256  start = (u_char *)__cil_tmp6;
1257#line 41
1258  __cil_tmp7 = (unsigned long )instr;
1259#line 41
1260  __cil_tmp8 = __cil_tmp7 + 8;
1261#line 41
1262  __cil_tmp9 = *((uint64_t *)__cil_tmp8);
1263#line 41
1264  __cil_tmp10 = start + __cil_tmp9;
1265#line 41
1266  __cil_tmp11 = (void *)__cil_tmp10;
1267#line 41
1268  __cil_tmp12 = (unsigned long )instr;
1269#line 41
1270  __cil_tmp13 = __cil_tmp12 + 16;
1271#line 41
1272  __cil_tmp14 = *((uint64_t *)__cil_tmp13);
1273#line 41
1274  __cil_tmp15 = (size_t )__cil_tmp14;
1275#line 41
1276  memset(__cil_tmp11, 255, __cil_tmp15);
1277#line 48
1278  __cil_tmp16 = (unsigned long )instr;
1279#line 48
1280  __cil_tmp17 = __cil_tmp16 + 72;
1281#line 48
1282  *((u_char *)__cil_tmp17) = (u_char )8;
1283#line 49
1284  mtd_erase_callback(instr);
1285  }
1286#line 50
1287  return (0);
1288}
1289}
1290#line 53 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1291static int phram_point(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1292                       void **virt , resource_size_t *phys ) 
1293{ unsigned long __cil_tmp7 ;
1294  unsigned long __cil_tmp8 ;
1295  void *__cil_tmp9 ;
1296
1297  {
1298#line 56
1299  __cil_tmp7 = (unsigned long )mtd;
1300#line 56
1301  __cil_tmp8 = __cil_tmp7 + 360;
1302#line 56
1303  __cil_tmp9 = *((void **)__cil_tmp8);
1304#line 56
1305  *virt = __cil_tmp9 + from;
1306#line 57
1307  *retlen = len;
1308#line 58
1309  return (0);
1310}
1311}
1312#line 61 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1313static int phram_unpoint(struct mtd_info *mtd , loff_t from , size_t len ) 
1314{ 
1315
1316  {
1317#line 63
1318  return (0);
1319}
1320}
1321#line 66 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1322static int phram_read(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen ,
1323                      u_char *buf ) 
1324{ u_char *start ;
1325  size_t __len ;
1326  void *__ret ;
1327  unsigned long __cil_tmp9 ;
1328  unsigned long __cil_tmp10 ;
1329  void *__cil_tmp11 ;
1330  void *__cil_tmp12 ;
1331  u_char *__cil_tmp13 ;
1332  void const   *__cil_tmp14 ;
1333
1334  {
1335  {
1336#line 69
1337  __cil_tmp9 = (unsigned long )mtd;
1338#line 69
1339  __cil_tmp10 = __cil_tmp9 + 360;
1340#line 69
1341  __cil_tmp11 = *((void **)__cil_tmp10);
1342#line 69
1343  start = (u_char *)__cil_tmp11;
1344#line 71
1345  __len = len;
1346#line 71
1347  __cil_tmp12 = (void *)buf;
1348#line 71
1349  __cil_tmp13 = start + from;
1350#line 71
1351  __cil_tmp14 = (void const   *)__cil_tmp13;
1352#line 71
1353  __ret = __builtin_memcpy(__cil_tmp12, __cil_tmp14, __len);
1354#line 72
1355  *retlen = len;
1356  }
1357#line 73
1358  return (0);
1359}
1360}
1361#line 76 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1362static int phram_write(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen ,
1363                       u_char const   *buf ) 
1364{ u_char *start ;
1365  size_t __len ;
1366  void *__ret ;
1367  unsigned long __cil_tmp9 ;
1368  unsigned long __cil_tmp10 ;
1369  void *__cil_tmp11 ;
1370  u_char *__cil_tmp12 ;
1371  void *__cil_tmp13 ;
1372  void const   *__cil_tmp14 ;
1373
1374  {
1375  {
1376#line 79
1377  __cil_tmp9 = (unsigned long )mtd;
1378#line 79
1379  __cil_tmp10 = __cil_tmp9 + 360;
1380#line 79
1381  __cil_tmp11 = *((void **)__cil_tmp10);
1382#line 79
1383  start = (u_char *)__cil_tmp11;
1384#line 81
1385  __len = len;
1386#line 81
1387  __cil_tmp12 = start + to;
1388#line 81
1389  __cil_tmp13 = (void *)__cil_tmp12;
1390#line 81
1391  __cil_tmp14 = (void const   *)buf;
1392#line 81
1393  __ret = __builtin_memcpy(__cil_tmp13, __cil_tmp14, __len);
1394#line 82
1395  *retlen = len;
1396  }
1397#line 83
1398  return (0);
1399}
1400}
1401#line 86 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1402static void unregister_devices(void) 
1403{ struct phram_mtd_list *this ;
1404  struct phram_mtd_list *safe ;
1405  struct list_head  const  *__mptr ;
1406  struct list_head  const  *__mptr___0 ;
1407  struct list_head  const  *__mptr___1 ;
1408  struct list_head *__cil_tmp6 ;
1409  struct list_head *__cil_tmp7 ;
1410  struct phram_mtd_list *__cil_tmp8 ;
1411  unsigned long __cil_tmp9 ;
1412  unsigned long __cil_tmp10 ;
1413  struct list_head *__cil_tmp11 ;
1414  unsigned int __cil_tmp12 ;
1415  char *__cil_tmp13 ;
1416  char *__cil_tmp14 ;
1417  unsigned long __cil_tmp15 ;
1418  unsigned long __cil_tmp16 ;
1419  struct list_head *__cil_tmp17 ;
1420  struct phram_mtd_list *__cil_tmp18 ;
1421  unsigned long __cil_tmp19 ;
1422  unsigned long __cil_tmp20 ;
1423  struct list_head *__cil_tmp21 ;
1424  unsigned int __cil_tmp22 ;
1425  char *__cil_tmp23 ;
1426  char *__cil_tmp24 ;
1427  unsigned long __cil_tmp25 ;
1428  unsigned long __cil_tmp26 ;
1429  unsigned long __cil_tmp27 ;
1430  struct list_head *__cil_tmp28 ;
1431  unsigned long __cil_tmp29 ;
1432  struct mtd_info *__cil_tmp30 ;
1433  unsigned long __cil_tmp31 ;
1434  unsigned long __cil_tmp32 ;
1435  unsigned long __cil_tmp33 ;
1436  void *__cil_tmp34 ;
1437  void volatile   *__cil_tmp35 ;
1438  unsigned long __cil_tmp36 ;
1439  unsigned long __cil_tmp37 ;
1440  unsigned long __cil_tmp38 ;
1441  char const   *__cil_tmp39 ;
1442  void const   *__cil_tmp40 ;
1443  void const   *__cil_tmp41 ;
1444  unsigned long __cil_tmp42 ;
1445  unsigned long __cil_tmp43 ;
1446  struct list_head *__cil_tmp44 ;
1447  struct phram_mtd_list *__cil_tmp45 ;
1448  unsigned long __cil_tmp46 ;
1449  unsigned long __cil_tmp47 ;
1450  struct list_head *__cil_tmp48 ;
1451  unsigned int __cil_tmp49 ;
1452  char *__cil_tmp50 ;
1453  char *__cil_tmp51 ;
1454
1455  {
1456#line 90
1457  __cil_tmp6 = & phram_list;
1458#line 90
1459  __cil_tmp7 = *((struct list_head **)__cil_tmp6);
1460#line 90
1461  __mptr = (struct list_head  const  *)__cil_tmp7;
1462#line 90
1463  __cil_tmp8 = (struct phram_mtd_list *)0;
1464#line 90
1465  __cil_tmp9 = (unsigned long )__cil_tmp8;
1466#line 90
1467  __cil_tmp10 = __cil_tmp9 + 1152;
1468#line 90
1469  __cil_tmp11 = (struct list_head *)__cil_tmp10;
1470#line 90
1471  __cil_tmp12 = (unsigned int )__cil_tmp11;
1472#line 90
1473  __cil_tmp13 = (char *)__mptr;
1474#line 90
1475  __cil_tmp14 = __cil_tmp13 - __cil_tmp12;
1476#line 90
1477  this = (struct phram_mtd_list *)__cil_tmp14;
1478#line 90
1479  __cil_tmp15 = (unsigned long )this;
1480#line 90
1481  __cil_tmp16 = __cil_tmp15 + 1152;
1482#line 90
1483  __cil_tmp17 = *((struct list_head **)__cil_tmp16);
1484#line 90
1485  __mptr___0 = (struct list_head  const  *)__cil_tmp17;
1486#line 90
1487  __cil_tmp18 = (struct phram_mtd_list *)0;
1488#line 90
1489  __cil_tmp19 = (unsigned long )__cil_tmp18;
1490#line 90
1491  __cil_tmp20 = __cil_tmp19 + 1152;
1492#line 90
1493  __cil_tmp21 = (struct list_head *)__cil_tmp20;
1494#line 90
1495  __cil_tmp22 = (unsigned int )__cil_tmp21;
1496#line 90
1497  __cil_tmp23 = (char *)__mptr___0;
1498#line 90
1499  __cil_tmp24 = __cil_tmp23 - __cil_tmp22;
1500#line 90
1501  safe = (struct phram_mtd_list *)__cil_tmp24;
1502  {
1503#line 90
1504  while (1) {
1505    while_continue: /* CIL Label */ ;
1506    {
1507#line 90
1508    __cil_tmp25 = (unsigned long )(& phram_list);
1509#line 90
1510    __cil_tmp26 = (unsigned long )this;
1511#line 90
1512    __cil_tmp27 = __cil_tmp26 + 1152;
1513#line 90
1514    __cil_tmp28 = (struct list_head *)__cil_tmp27;
1515#line 90
1516    __cil_tmp29 = (unsigned long )__cil_tmp28;
1517#line 90
1518    if (__cil_tmp29 != __cil_tmp25) {
1519
1520    } else {
1521#line 90
1522      goto while_break;
1523    }
1524    }
1525    {
1526#line 91
1527    __cil_tmp30 = (struct mtd_info *)this;
1528#line 91
1529    mtd_device_unregister(__cil_tmp30);
1530#line 92
1531    __cil_tmp31 = 0 + 360;
1532#line 92
1533    __cil_tmp32 = (unsigned long )this;
1534#line 92
1535    __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
1536#line 92
1537    __cil_tmp34 = *((void **)__cil_tmp33);
1538#line 92
1539    __cil_tmp35 = (void volatile   *)__cil_tmp34;
1540#line 92
1541    iounmap(__cil_tmp35);
1542#line 93
1543    __cil_tmp36 = 0 + 56;
1544#line 93
1545    __cil_tmp37 = (unsigned long )this;
1546#line 93
1547    __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
1548#line 93
1549    __cil_tmp39 = *((char const   **)__cil_tmp38);
1550#line 93
1551    __cil_tmp40 = (void const   *)__cil_tmp39;
1552#line 93
1553    kfree(__cil_tmp40);
1554#line 94
1555    __cil_tmp41 = (void const   *)this;
1556#line 94
1557    kfree(__cil_tmp41);
1558#line 90
1559    this = safe;
1560#line 90
1561    __cil_tmp42 = (unsigned long )safe;
1562#line 90
1563    __cil_tmp43 = __cil_tmp42 + 1152;
1564#line 90
1565    __cil_tmp44 = *((struct list_head **)__cil_tmp43);
1566#line 90
1567    __mptr___1 = (struct list_head  const  *)__cil_tmp44;
1568#line 90
1569    __cil_tmp45 = (struct phram_mtd_list *)0;
1570#line 90
1571    __cil_tmp46 = (unsigned long )__cil_tmp45;
1572#line 90
1573    __cil_tmp47 = __cil_tmp46 + 1152;
1574#line 90
1575    __cil_tmp48 = (struct list_head *)__cil_tmp47;
1576#line 90
1577    __cil_tmp49 = (unsigned int )__cil_tmp48;
1578#line 90
1579    __cil_tmp50 = (char *)__mptr___1;
1580#line 90
1581    __cil_tmp51 = __cil_tmp50 - __cil_tmp49;
1582#line 90
1583    safe = (struct phram_mtd_list *)__cil_tmp51;
1584    }
1585  }
1586  while_break: /* CIL Label */ ;
1587  }
1588#line 96
1589  return;
1590}
1591}
1592#line 98 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1593static int register_device(char *name , unsigned long start , unsigned long len ) 
1594{ struct phram_mtd_list *new ;
1595  int ret ;
1596  void *tmp ;
1597  int tmp___0 ;
1598  unsigned long __cil_tmp8 ;
1599  unsigned long __cil_tmp9 ;
1600  unsigned long __cil_tmp10 ;
1601  resource_size_t __cil_tmp11 ;
1602  unsigned long __cil_tmp12 ;
1603  unsigned long __cil_tmp13 ;
1604  unsigned long __cil_tmp14 ;
1605  void *__cil_tmp15 ;
1606  unsigned long __cil_tmp16 ;
1607  unsigned long __cil_tmp17 ;
1608  unsigned long __cil_tmp18 ;
1609  unsigned long __cil_tmp19 ;
1610  unsigned long __cil_tmp20 ;
1611  unsigned long __cil_tmp21 ;
1612  unsigned long __cil_tmp22 ;
1613  unsigned long __cil_tmp23 ;
1614  unsigned long __cil_tmp24 ;
1615  unsigned long __cil_tmp25 ;
1616  unsigned long __cil_tmp26 ;
1617  unsigned long __cil_tmp27 ;
1618  unsigned long __cil_tmp28 ;
1619  unsigned long __cil_tmp29 ;
1620  unsigned long __cil_tmp30 ;
1621  unsigned long __cil_tmp31 ;
1622  unsigned long __cil_tmp32 ;
1623  unsigned long __cil_tmp33 ;
1624  unsigned long __cil_tmp34 ;
1625  unsigned long __cil_tmp35 ;
1626  unsigned long __cil_tmp36 ;
1627  unsigned long __cil_tmp37 ;
1628  unsigned long __cil_tmp38 ;
1629  unsigned long __cil_tmp39 ;
1630  unsigned long __cil_tmp40 ;
1631  unsigned long __cil_tmp41 ;
1632  unsigned long __cil_tmp42 ;
1633  unsigned long __cil_tmp43 ;
1634  unsigned long __cil_tmp44 ;
1635  unsigned long __cil_tmp45 ;
1636  unsigned long __cil_tmp46 ;
1637  unsigned long __cil_tmp47 ;
1638  unsigned long __cil_tmp48 ;
1639  unsigned long __cil_tmp49 ;
1640  struct mtd_info *__cil_tmp50 ;
1641  void *__cil_tmp51 ;
1642  char const   **__cil_tmp52 ;
1643  void *__cil_tmp53 ;
1644  struct mtd_part_parser_data *__cil_tmp54 ;
1645  void *__cil_tmp55 ;
1646  struct mtd_partition  const  *__cil_tmp56 ;
1647  unsigned long __cil_tmp57 ;
1648  unsigned long __cil_tmp58 ;
1649  struct list_head *__cil_tmp59 ;
1650  unsigned long __cil_tmp60 ;
1651  unsigned long __cil_tmp61 ;
1652  unsigned long __cil_tmp62 ;
1653  void *__cil_tmp63 ;
1654  void volatile   *__cil_tmp64 ;
1655  void const   *__cil_tmp65 ;
1656
1657  {
1658  {
1659#line 101
1660  ret = -12;
1661#line 103
1662  tmp = kzalloc(1168UL, 208U);
1663#line 103
1664  new = (struct phram_mtd_list *)tmp;
1665  }
1666#line 104
1667  if (! new) {
1668#line 105
1669    goto out0;
1670  } else {
1671
1672  }
1673  {
1674#line 107
1675  ret = -5;
1676#line 108
1677  __cil_tmp8 = 0 + 360;
1678#line 108
1679  __cil_tmp9 = (unsigned long )new;
1680#line 108
1681  __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
1682#line 108
1683  __cil_tmp11 = (resource_size_t )start;
1684#line 108
1685  *((void **)__cil_tmp10) = ioremap(__cil_tmp11, len);
1686  }
1687  {
1688#line 109
1689  __cil_tmp12 = 0 + 360;
1690#line 109
1691  __cil_tmp13 = (unsigned long )new;
1692#line 109
1693  __cil_tmp14 = __cil_tmp13 + __cil_tmp12;
1694#line 109
1695  __cil_tmp15 = *((void **)__cil_tmp14);
1696#line 109
1697  if (! __cil_tmp15) {
1698    {
1699#line 110
1700    printk("<3>phram: ioremap failed\n");
1701    }
1702#line 111
1703    goto out1;
1704  } else {
1705
1706  }
1707  }
1708  {
1709#line 115
1710  __cil_tmp16 = 0 + 56;
1711#line 115
1712  __cil_tmp17 = (unsigned long )new;
1713#line 115
1714  __cil_tmp18 = __cil_tmp17 + __cil_tmp16;
1715#line 115
1716  *((char const   **)__cil_tmp18) = (char const   *)name;
1717#line 116
1718  __cil_tmp19 = 0 + 8;
1719#line 116
1720  __cil_tmp20 = (unsigned long )new;
1721#line 116
1722  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
1723#line 116
1724  *((uint64_t *)__cil_tmp21) = (uint64_t )len;
1725#line 117
1726  __cil_tmp22 = 0 + 4;
1727#line 117
1728  __cil_tmp23 = (unsigned long )new;
1729#line 117
1730  __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
1731#line 117
1732  *((uint32_t *)__cil_tmp24) = (uint32_t )7168;
1733#line 118
1734  __cil_tmp25 = 0 + 96;
1735#line 118
1736  __cil_tmp26 = (unsigned long )new;
1737#line 118
1738  __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
1739#line 118
1740  *((int (**)(struct mtd_info *mtd , struct erase_info *instr ))__cil_tmp27) = & phram_erase;
1741#line 119
1742  __cil_tmp28 = 0 + 104;
1743#line 119
1744  __cil_tmp29 = (unsigned long )new;
1745#line 119
1746  __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
1747#line 119
1748  *((int (**)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen , void **virt ,
1749              resource_size_t *phys ))__cil_tmp30) = & phram_point;
1750#line 120
1751  __cil_tmp31 = 0 + 112;
1752#line 120
1753  __cil_tmp32 = (unsigned long )new;
1754#line 120
1755  __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
1756#line 120
1757  *((int (**)(struct mtd_info *mtd , loff_t from , size_t len ))__cil_tmp33) = & phram_unpoint;
1758#line 121
1759  __cil_tmp34 = 0 + 128;
1760#line 121
1761  __cil_tmp35 = (unsigned long )new;
1762#line 121
1763  __cil_tmp36 = __cil_tmp35 + __cil_tmp34;
1764#line 121
1765  *((int (**)(struct mtd_info *mtd , loff_t from , size_t len , size_t *retlen , u_char *buf ))__cil_tmp36) = & phram_read;
1766#line 122
1767  __cil_tmp37 = 0 + 136;
1768#line 122
1769  __cil_tmp38 = (unsigned long )new;
1770#line 122
1771  __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
1772#line 122
1773  *((int (**)(struct mtd_info *mtd , loff_t to , size_t len , size_t *retlen , u_char const   *buf ))__cil_tmp39) = & phram_write;
1774#line 123
1775  __cil_tmp40 = 0 + 368;
1776#line 123
1777  __cil_tmp41 = (unsigned long )new;
1778#line 123
1779  __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
1780#line 123
1781  *((struct module **)__cil_tmp42) = & __this_module;
1782#line 124
1783  *((u_char *)new) = (u_char )1;
1784#line 125
1785  __cil_tmp43 = 0 + 16;
1786#line 125
1787  __cil_tmp44 = (unsigned long )new;
1788#line 125
1789  __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
1790#line 125
1791  __cil_tmp46 = 1UL << 12;
1792#line 125
1793  *((uint32_t *)__cil_tmp45) = (uint32_t )__cil_tmp46;
1794#line 126
1795  __cil_tmp47 = 0 + 20;
1796#line 126
1797  __cil_tmp48 = (unsigned long )new;
1798#line 126
1799  __cil_tmp49 = __cil_tmp48 + __cil_tmp47;
1800#line 126
1801  *((uint32_t *)__cil_tmp49) = (uint32_t )1;
1802#line 128
1803  ret = -11;
1804#line 129
1805  __cil_tmp50 = (struct mtd_info *)new;
1806#line 129
1807  __cil_tmp51 = (void *)0;
1808#line 129
1809  __cil_tmp52 = (char const   **)__cil_tmp51;
1810#line 129
1811  __cil_tmp53 = (void *)0;
1812#line 129
1813  __cil_tmp54 = (struct mtd_part_parser_data *)__cil_tmp53;
1814#line 129
1815  __cil_tmp55 = (void *)0;
1816#line 129
1817  __cil_tmp56 = (struct mtd_partition  const  *)__cil_tmp55;
1818#line 129
1819  tmp___0 = mtd_device_parse_register(__cil_tmp50, __cil_tmp52, __cil_tmp54, __cil_tmp56,
1820                                      0);
1821  }
1822#line 129
1823  if (tmp___0) {
1824    {
1825#line 130
1826    printk("<3>phram: Failed to register new device\n");
1827    }
1828#line 131
1829    goto out2;
1830  } else {
1831
1832  }
1833  {
1834#line 134
1835  __cil_tmp57 = (unsigned long )new;
1836#line 134
1837  __cil_tmp58 = __cil_tmp57 + 1152;
1838#line 134
1839  __cil_tmp59 = (struct list_head *)__cil_tmp58;
1840#line 134
1841  list_add_tail(__cil_tmp59, & phram_list);
1842  }
1843#line 135
1844  return (0);
1845  out2: 
1846  {
1847#line 138
1848  __cil_tmp60 = 0 + 360;
1849#line 138
1850  __cil_tmp61 = (unsigned long )new;
1851#line 138
1852  __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
1853#line 138
1854  __cil_tmp63 = *((void **)__cil_tmp62);
1855#line 138
1856  __cil_tmp64 = (void volatile   *)__cil_tmp63;
1857#line 138
1858  iounmap(__cil_tmp64);
1859  }
1860  out1: 
1861  {
1862#line 140
1863  __cil_tmp65 = (void const   *)new;
1864#line 140
1865  kfree(__cil_tmp65);
1866  }
1867  out0: 
1868#line 142
1869  return (ret);
1870}
1871}
1872#line 145 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1873static int ustrtoul(char const   *cp , char **endp , unsigned int base ) 
1874{ unsigned long result ;
1875  unsigned long tmp ;
1876  char *__cil_tmp6 ;
1877  char __cil_tmp7 ;
1878  char *__cil_tmp8 ;
1879  char *__cil_tmp9 ;
1880  char __cil_tmp10 ;
1881  int __cil_tmp11 ;
1882  char *__cil_tmp12 ;
1883
1884  {
1885  {
1886#line 147
1887  tmp = simple_strtoul(cp, endp, base);
1888#line 147
1889  result = tmp;
1890  }
1891  {
1892#line 149
1893  __cil_tmp6 = *endp;
1894#line 149
1895  __cil_tmp7 = *__cil_tmp6;
1896#line 150
1897  if ((int )__cil_tmp7 == 71) {
1898#line 150
1899    goto case_71;
1900  } else
1901#line 152
1902  if ((int )__cil_tmp7 == 77) {
1903#line 152
1904    goto case_77;
1905  } else
1906#line 154
1907  if ((int )__cil_tmp7 == 107) {
1908#line 154
1909    goto case_107;
1910  } else
1911#line 149
1912  if (0) {
1913    case_71: /* CIL Label */ 
1914#line 151
1915    result = result * 1024UL;
1916    case_77: /* CIL Label */ 
1917#line 153
1918    result = result * 1024UL;
1919    case_107: /* CIL Label */ 
1920#line 155
1921    result = result * 1024UL;
1922    {
1923#line 157
1924    __cil_tmp8 = *endp;
1925#line 157
1926    __cil_tmp9 = __cil_tmp8 + 1;
1927#line 157
1928    __cil_tmp10 = *__cil_tmp9;
1929#line 157
1930    __cil_tmp11 = (int )__cil_tmp10;
1931#line 157
1932    if (__cil_tmp11 == 105) {
1933#line 158
1934      __cil_tmp12 = *endp;
1935#line 158
1936      *endp = __cil_tmp12 + 2;
1937    } else {
1938
1939    }
1940    }
1941  } else {
1942    switch_break: /* CIL Label */ ;
1943  }
1944  }
1945#line 160
1946  return ((int )result);
1947}
1948}
1949#line 163 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1950static int parse_num32(uint32_t *num32 , char const   *token ) 
1951{ char *endp ;
1952  unsigned long n ;
1953  int tmp ;
1954  char **__cil_tmp6 ;
1955  char *__cil_tmp7 ;
1956
1957  {
1958  {
1959#line 168
1960  tmp = ustrtoul(token, & endp, 0U);
1961#line 168
1962  n = (unsigned long )tmp;
1963  }
1964  {
1965#line 169
1966  __cil_tmp6 = & endp;
1967#line 169
1968  __cil_tmp7 = *__cil_tmp6;
1969#line 169
1970  if (*__cil_tmp7) {
1971#line 170
1972    return (-22);
1973  } else {
1974
1975  }
1976  }
1977#line 172
1978  *num32 = (uint32_t )n;
1979#line 173
1980  return (0);
1981}
1982}
1983#line 176 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
1984static int parse_name(char **pname , char const   *token ) 
1985{ size_t len ;
1986  char *name ;
1987  unsigned long tmp ;
1988  void *tmp___0 ;
1989
1990  {
1991  {
1992#line 181
1993  tmp = strlen(token);
1994#line 181
1995  len = tmp + 1UL;
1996  }
1997#line 182
1998  if (len > 64UL) {
1999#line 183
2000    return (-28);
2001  } else {
2002
2003  }
2004  {
2005#line 185
2006  tmp___0 = kmalloc(len, 208U);
2007#line 185
2008  name = (char *)tmp___0;
2009  }
2010#line 186
2011  if (! name) {
2012#line 187
2013    return (-12);
2014  } else {
2015
2016  }
2017  {
2018#line 189
2019  strcpy(name, token);
2020#line 191
2021  *pname = name;
2022  }
2023#line 192
2024  return (0);
2025}
2026}
2027#line 196
2028__inline static void kill_final_newline(char *str )  __attribute__((__no_instrument_function__)) ;
2029#line 196 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2030__inline static void kill_final_newline(char *str ) 
2031{ char *newline ;
2032  char *tmp ;
2033  char const   *__cil_tmp4 ;
2034  char *__cil_tmp5 ;
2035  char __cil_tmp6 ;
2036
2037  {
2038  {
2039#line 198
2040  __cil_tmp4 = (char const   *)str;
2041#line 198
2042  tmp = strrchr(__cil_tmp4, '\n');
2043#line 198
2044  newline = tmp;
2045  }
2046#line 199
2047  if (newline) {
2048    {
2049#line 199
2050    __cil_tmp5 = newline + 1;
2051#line 199
2052    __cil_tmp6 = *__cil_tmp5;
2053#line 199
2054    if (! __cil_tmp6) {
2055#line 200
2056      *newline = (char)0;
2057    } else {
2058
2059    }
2060    }
2061  } else {
2062
2063  }
2064#line 201
2065  return;
2066}
2067}
2068#line 217 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2069static char phram_paramline[88]  __attribute__((__section__(".init.data")))  ;
2070#line 219
2071static int phram_setup(char const   *val )  __attribute__((__section__(".init.text"),
2072__no_instrument_function__)) ;
2073#line 219 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2074static int phram_setup(char const   *val ) 
2075{ char buf[88] ;
2076  char *str ;
2077  char *token[3] ;
2078  char *name ;
2079  uint32_t start ;
2080  uint32_t len ;
2081  int i ;
2082  int ret ;
2083  __kernel_size_t tmp ;
2084  char **__cil_tmp11 ;
2085  unsigned long __cil_tmp12 ;
2086  unsigned long __cil_tmp13 ;
2087  char **__cil_tmp14 ;
2088  char *__cil_tmp15 ;
2089  char **__cil_tmp16 ;
2090  char *__cil_tmp17 ;
2091  unsigned long __cil_tmp18 ;
2092  unsigned long __cil_tmp19 ;
2093  char **__cil_tmp20 ;
2094  unsigned long __cil_tmp21 ;
2095  unsigned long __cil_tmp22 ;
2096  char *__cil_tmp23 ;
2097  unsigned long __cil_tmp24 ;
2098  unsigned long __cil_tmp25 ;
2099  char *__cil_tmp26 ;
2100  char const   *__cil_tmp27 ;
2101  unsigned long __cil_tmp28 ;
2102  unsigned long __cil_tmp29 ;
2103  char *__cil_tmp30 ;
2104  char const   *__cil_tmp31 ;
2105  char **__cil_tmp32 ;
2106  char *__cil_tmp33 ;
2107  void const   *__cil_tmp34 ;
2108  unsigned long __cil_tmp35 ;
2109  unsigned long __cil_tmp36 ;
2110  char *__cil_tmp37 ;
2111  char const   *__cil_tmp38 ;
2112  char **__cil_tmp39 ;
2113  char *__cil_tmp40 ;
2114  void const   *__cil_tmp41 ;
2115  char **__cil_tmp42 ;
2116  char *__cil_tmp43 ;
2117  uint32_t *__cil_tmp44 ;
2118  uint32_t __cil_tmp45 ;
2119  unsigned long __cil_tmp46 ;
2120  uint32_t *__cil_tmp47 ;
2121  uint32_t __cil_tmp48 ;
2122  unsigned long __cil_tmp49 ;
2123  char **__cil_tmp50 ;
2124  char *__cil_tmp51 ;
2125  uint32_t *__cil_tmp52 ;
2126  uint32_t __cil_tmp53 ;
2127  uint32_t *__cil_tmp54 ;
2128  uint32_t __cil_tmp55 ;
2129  char **__cil_tmp56 ;
2130  char *__cil_tmp57 ;
2131  void const   *__cil_tmp58 ;
2132
2133  {
2134  {
2135#line 221
2136  __cil_tmp11 = & str;
2137#line 221
2138  __cil_tmp12 = 0 * 1UL;
2139#line 221
2140  __cil_tmp13 = (unsigned long )(buf) + __cil_tmp12;
2141#line 221
2142  *__cil_tmp11 = (char *)__cil_tmp13;
2143#line 228
2144  tmp = strnlen(val, 88UL);
2145  }
2146#line 228
2147  if (tmp >= 88UL) {
2148    {
2149#line 229
2150    while (1) {
2151      while_continue: /* CIL Label */ ;
2152      {
2153#line 229
2154      printk("<3>phram: parameter too long\n");
2155      }
2156#line 229
2157      return (1);
2158#line 229
2159      goto while_break;
2160    }
2161    while_break: /* CIL Label */ ;
2162    }
2163  } else {
2164
2165  }
2166  {
2167#line 231
2168  __cil_tmp14 = & str;
2169#line 231
2170  __cil_tmp15 = *__cil_tmp14;
2171#line 231
2172  strcpy(__cil_tmp15, val);
2173#line 232
2174  __cil_tmp16 = & str;
2175#line 232
2176  __cil_tmp17 = *__cil_tmp16;
2177#line 232
2178  kill_final_newline(__cil_tmp17);
2179#line 234
2180  i = 0;
2181  }
2182  {
2183#line 234
2184  while (1) {
2185    while_continue___0: /* CIL Label */ ;
2186#line 234
2187    if (i < 3) {
2188
2189    } else {
2190#line 234
2191      goto while_break___0;
2192    }
2193    {
2194#line 235
2195    __cil_tmp18 = i * 8UL;
2196#line 235
2197    __cil_tmp19 = (unsigned long )(token) + __cil_tmp18;
2198#line 235
2199    *((char **)__cil_tmp19) = strsep(& str, ",");
2200#line 234
2201    i = i + 1;
2202    }
2203  }
2204  while_break___0: /* CIL Label */ ;
2205  }
2206  {
2207#line 237
2208  __cil_tmp20 = & str;
2209#line 237
2210  if (*__cil_tmp20) {
2211    {
2212#line 238
2213    while (1) {
2214      while_continue___1: /* CIL Label */ ;
2215      {
2216#line 238
2217      printk("<3>phram: too many arguments\n");
2218      }
2219#line 238
2220      return (1);
2221#line 238
2222      goto while_break___1;
2223    }
2224    while_break___1: /* CIL Label */ ;
2225    }
2226  } else {
2227
2228  }
2229  }
2230  {
2231#line 240
2232  __cil_tmp21 = 2 * 8UL;
2233#line 240
2234  __cil_tmp22 = (unsigned long )(token) + __cil_tmp21;
2235#line 240
2236  __cil_tmp23 = *((char **)__cil_tmp22);
2237#line 240
2238  if (! __cil_tmp23) {
2239    {
2240#line 241
2241    while (1) {
2242      while_continue___2: /* CIL Label */ ;
2243      {
2244#line 241
2245      printk("<3>phram: not enough arguments\n");
2246      }
2247#line 241
2248      return (1);
2249#line 241
2250      goto while_break___2;
2251    }
2252    while_break___2: /* CIL Label */ ;
2253    }
2254  } else {
2255
2256  }
2257  }
2258  {
2259#line 243
2260  __cil_tmp24 = 0 * 8UL;
2261#line 243
2262  __cil_tmp25 = (unsigned long )(token) + __cil_tmp24;
2263#line 243
2264  __cil_tmp26 = *((char **)__cil_tmp25);
2265#line 243
2266  __cil_tmp27 = (char const   *)__cil_tmp26;
2267#line 243
2268  ret = parse_name(& name, __cil_tmp27);
2269  }
2270#line 244
2271  if (ret) {
2272#line 245
2273    return (ret);
2274  } else {
2275
2276  }
2277  {
2278#line 247
2279  __cil_tmp28 = 1 * 8UL;
2280#line 247
2281  __cil_tmp29 = (unsigned long )(token) + __cil_tmp28;
2282#line 247
2283  __cil_tmp30 = *((char **)__cil_tmp29);
2284#line 247
2285  __cil_tmp31 = (char const   *)__cil_tmp30;
2286#line 247
2287  ret = parse_num32(& start, __cil_tmp31);
2288  }
2289#line 248
2290  if (ret) {
2291    {
2292#line 249
2293    __cil_tmp32 = & name;
2294#line 249
2295    __cil_tmp33 = *__cil_tmp32;
2296#line 249
2297    __cil_tmp34 = (void const   *)__cil_tmp33;
2298#line 249
2299    kfree(__cil_tmp34);
2300    }
2301    {
2302#line 250
2303    while (1) {
2304      while_continue___3: /* CIL Label */ ;
2305      {
2306#line 250
2307      printk("<3>phram: illegal start address\n");
2308      }
2309#line 250
2310      return (1);
2311#line 250
2312      goto while_break___3;
2313    }
2314    while_break___3: /* CIL Label */ ;
2315    }
2316  } else {
2317
2318  }
2319  {
2320#line 253
2321  __cil_tmp35 = 2 * 8UL;
2322#line 253
2323  __cil_tmp36 = (unsigned long )(token) + __cil_tmp35;
2324#line 253
2325  __cil_tmp37 = *((char **)__cil_tmp36);
2326#line 253
2327  __cil_tmp38 = (char const   *)__cil_tmp37;
2328#line 253
2329  ret = parse_num32(& len, __cil_tmp38);
2330  }
2331#line 254
2332  if (ret) {
2333    {
2334#line 255
2335    __cil_tmp39 = & name;
2336#line 255
2337    __cil_tmp40 = *__cil_tmp39;
2338#line 255
2339    __cil_tmp41 = (void const   *)__cil_tmp40;
2340#line 255
2341    kfree(__cil_tmp41);
2342    }
2343    {
2344#line 256
2345    while (1) {
2346      while_continue___4: /* CIL Label */ ;
2347      {
2348#line 256
2349      printk("<3>phram: illegal device length\n");
2350      }
2351#line 256
2352      return (1);
2353#line 256
2354      goto while_break___4;
2355    }
2356    while_break___4: /* CIL Label */ ;
2357    }
2358  } else {
2359
2360  }
2361  {
2362#line 259
2363  __cil_tmp42 = & name;
2364#line 259
2365  __cil_tmp43 = *__cil_tmp42;
2366#line 259
2367  __cil_tmp44 = & start;
2368#line 259
2369  __cil_tmp45 = *__cil_tmp44;
2370#line 259
2371  __cil_tmp46 = (unsigned long )__cil_tmp45;
2372#line 259
2373  __cil_tmp47 = & len;
2374#line 259
2375  __cil_tmp48 = *__cil_tmp47;
2376#line 259
2377  __cil_tmp49 = (unsigned long )__cil_tmp48;
2378#line 259
2379  ret = register_device(__cil_tmp43, __cil_tmp46, __cil_tmp49);
2380  }
2381#line 260
2382  if (! ret) {
2383    {
2384#line 261
2385    __cil_tmp50 = & name;
2386#line 261
2387    __cil_tmp51 = *__cil_tmp50;
2388#line 261
2389    __cil_tmp52 = & len;
2390#line 261
2391    __cil_tmp53 = *__cil_tmp52;
2392#line 261
2393    __cil_tmp54 = & start;
2394#line 261
2395    __cil_tmp55 = *__cil_tmp54;
2396#line 261
2397    printk("<6>phram: %s device: %#x at %#x\n", __cil_tmp51, __cil_tmp53, __cil_tmp55);
2398    }
2399  } else {
2400    {
2401#line 263
2402    __cil_tmp56 = & name;
2403#line 263
2404    __cil_tmp57 = *__cil_tmp56;
2405#line 263
2406    __cil_tmp58 = (void const   *)__cil_tmp57;
2407#line 263
2408    kfree(__cil_tmp58);
2409    }
2410  }
2411#line 265
2412  return (ret);
2413}
2414}
2415#line 268
2416static int phram_param_call(char const   *val , struct kernel_param *kp )  __attribute__((__section__(".init.text"),
2417__no_instrument_function__)) ;
2418#line 268 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2419static int phram_param_call(char const   *val , struct kernel_param *kp ) 
2420{ unsigned long tmp ;
2421  unsigned long __cil_tmp4 ;
2422  unsigned long __cil_tmp5 ;
2423  char *__cil_tmp6 ;
2424
2425  {
2426  {
2427#line 274
2428  tmp = strlen(val);
2429  }
2430#line 274
2431  if (tmp >= 88UL) {
2432#line 275
2433    return (-28);
2434  } else {
2435
2436  }
2437  {
2438#line 276
2439  __cil_tmp4 = 0 * 1UL;
2440#line 276
2441  __cil_tmp5 = (unsigned long )(phram_paramline) + __cil_tmp4;
2442#line 276
2443  __cil_tmp6 = (char *)__cil_tmp5;
2444#line 276
2445  strcpy(__cil_tmp6, val);
2446  }
2447#line 278
2448  return (0);
2449}
2450}
2451#line 281 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2452static struct kernel_param_ops __param_ops_phram  =    {(int (*)(char const   *val , struct kernel_param  const  *kp ))((void *)(& phram_param_call)),
2453    (int (*)(char *buffer , struct kernel_param  const  *kp ))((void *)0), (void (*)(void *arg ))0};
2454#line 281 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2455static char const   __param_str_phram[6]  = {      (char const   )'p',      (char const   )'h',      (char const   )'r',      (char const   )'a', 
2456        (char const   )'m',      (char const   )'\000'};
2457#line 281 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2458static struct kernel_param  const  __param_phram  __attribute__((__used__, __unused__,
2459__section__("__param"), __aligned__(sizeof(void *))))  =    {__param_str_phram, (struct kernel_param_ops  const  *)(& __param_ops_phram), (u16 )0UL,
2460    (s16 )0, {(void *)0}};
2461#line 282 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2462static char const   __mod_phram282[65]  __attribute__((__used__, __unused__, __section__(".modinfo"),
2463__aligned__(1)))  = 
2464#line 282
2465  {      (char const   )'p',      (char const   )'a',      (char const   )'r',      (char const   )'m', 
2466        (char const   )'=',      (char const   )'p',      (char const   )'h',      (char const   )'r', 
2467        (char const   )'a',      (char const   )'m',      (char const   )':',      (char const   )'M', 
2468        (char const   )'e',      (char const   )'m',      (char const   )'o',      (char const   )'r', 
2469        (char const   )'y',      (char const   )' ',      (char const   )'r',      (char const   )'e', 
2470        (char const   )'g',      (char const   )'i',      (char const   )'o',      (char const   )'n', 
2471        (char const   )' ',      (char const   )'t',      (char const   )'o',      (char const   )' ', 
2472        (char const   )'m',      (char const   )'a',      (char const   )'p',      (char const   )'.', 
2473        (char const   )' ',      (char const   )'\"',      (char const   )'p',      (char const   )'h', 
2474        (char const   )'r',      (char const   )'a',      (char const   )'m',      (char const   )'=', 
2475        (char const   )'<',      (char const   )'n',      (char const   )'a',      (char const   )'m', 
2476        (char const   )'e',      (char const   )'>',      (char const   )',',      (char const   )'<', 
2477        (char const   )'s',      (char const   )'t',      (char const   )'a',      (char const   )'r', 
2478        (char const   )'t',      (char const   )'>',      (char const   )',',      (char const   )'<', 
2479        (char const   )'l',      (char const   )'e',      (char const   )'n',      (char const   )'g', 
2480        (char const   )'t',      (char const   )'h',      (char const   )'>',      (char const   )'\"', 
2481        (char const   )'\000'};
2482#line 285
2483static int init_phram(void)  __attribute__((__section__(".init.text"), __no_instrument_function__)) ;
2484#line 285 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2485static int init_phram(void) 
2486{ int tmp___3 ;
2487  unsigned long __cil_tmp2 ;
2488  unsigned long __cil_tmp3 ;
2489  unsigned long __cil_tmp4 ;
2490  unsigned long __cil_tmp5 ;
2491  char *__cil_tmp6 ;
2492  char const   *__cil_tmp7 ;
2493
2494  {
2495  {
2496#line 287
2497  __cil_tmp2 = 0 * 1UL;
2498#line 287
2499  __cil_tmp3 = (unsigned long )(phram_paramline) + __cil_tmp2;
2500#line 287
2501  if (*((char *)__cil_tmp3)) {
2502    {
2503#line 288
2504    __cil_tmp4 = 0 * 1UL;
2505#line 288
2506    __cil_tmp5 = (unsigned long )(phram_paramline) + __cil_tmp4;
2507#line 288
2508    __cil_tmp6 = (char *)__cil_tmp5;
2509#line 288
2510    __cil_tmp7 = (char const   *)__cil_tmp6;
2511#line 288
2512    tmp___3 = phram_setup(__cil_tmp7);
2513    }
2514#line 288
2515    return (tmp___3);
2516  } else {
2517
2518  }
2519  }
2520#line 290
2521  return (0);
2522}
2523}
2524#line 293
2525static void cleanup_phram(void)  __attribute__((__section__(".exit.text"), __no_instrument_function__)) ;
2526#line 293 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2527static void cleanup_phram(void) 
2528{ 
2529
2530  {
2531  {
2532#line 295
2533  unregister_devices();
2534  }
2535#line 296
2536  return;
2537}
2538}
2539#line 298 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2540int init_module(void) 
2541{ int tmp___3 ;
2542
2543  {
2544  {
2545#line 298
2546  tmp___3 = init_phram();
2547  }
2548#line 298
2549  return (tmp___3);
2550}
2551}
2552#line 299 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2553void cleanup_module(void) 
2554{ 
2555
2556  {
2557  {
2558#line 299
2559  cleanup_phram();
2560  }
2561#line 299
2562  return;
2563}
2564}
2565#line 301 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2566static char const   __mod_license301[12]  __attribute__((__used__, __unused__, __section__(".modinfo"),
2567__aligned__(1)))  = 
2568#line 301
2569  {      (char const   )'l',      (char const   )'i',      (char const   )'c',      (char const   )'e', 
2570        (char const   )'n',      (char const   )'s',      (char const   )'e',      (char const   )'=', 
2571        (char const   )'G',      (char const   )'P',      (char const   )'L',      (char const   )'\000'};
2572#line 302 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2573static char const   __mod_author302[42]  __attribute__((__used__, __unused__, __section__(".modinfo"),
2574__aligned__(1)))  = 
2575#line 302
2576  {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'h', 
2577        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'J', 
2578        (char const   )'o',      (char const   )'e',      (char const   )'r',      (char const   )'n', 
2579        (char const   )' ',      (char const   )'E',      (char const   )'n',      (char const   )'g', 
2580        (char const   )'e',      (char const   )'l',      (char const   )' ',      (char const   )'<', 
2581        (char const   )'j',      (char const   )'o',      (char const   )'e',      (char const   )'r', 
2582        (char const   )'n',      (char const   )'@',      (char const   )'w',      (char const   )'h', 
2583        (char const   )'.',      (char const   )'f',      (char const   )'h',      (char const   )'-', 
2584        (char const   )'w',      (char const   )'e',      (char const   )'d',      (char const   )'e', 
2585        (char const   )'l',      (char const   )'.',      (char const   )'d',      (char const   )'e', 
2586        (char const   )'>',      (char const   )'\000'};
2587#line 303 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2588static char const   __mod_description303[40]  __attribute__((__used__, __unused__,
2589__section__(".modinfo"), __aligned__(1)))  = 
2590#line 303
2591  {      (char const   )'d',      (char const   )'e',      (char const   )'s',      (char const   )'c', 
2592        (char const   )'r',      (char const   )'i',      (char const   )'p',      (char const   )'t', 
2593        (char const   )'i',      (char const   )'o',      (char const   )'n',      (char const   )'=', 
2594        (char const   )'M',      (char const   )'T',      (char const   )'D',      (char const   )' ', 
2595        (char const   )'d',      (char const   )'r',      (char const   )'i',      (char const   )'v', 
2596        (char const   )'e',      (char const   )'r',      (char const   )' ',      (char const   )'f', 
2597        (char const   )'o',      (char const   )'r',      (char const   )' ',      (char const   )'p', 
2598        (char const   )'h',      (char const   )'y',      (char const   )'s',      (char const   )'i', 
2599        (char const   )'c',      (char const   )'a',      (char const   )'l',      (char const   )' ', 
2600        (char const   )'R',      (char const   )'A',      (char const   )'M',      (char const   )'\000'};
2601#line 321
2602void ldv_check_final_state(void) ;
2603#line 327
2604extern void ldv_initialize(void) ;
2605#line 330
2606extern int __VERIFIER_nondet_int(void) ;
2607#line 333 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2608int LDV_IN_INTERRUPT  ;
2609#line 336 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2610void main(void) 
2611{ int tmp___3 ;
2612  int tmp___4 ;
2613  int tmp___5 ;
2614
2615  {
2616  {
2617#line 348
2618  LDV_IN_INTERRUPT = 1;
2619#line 357
2620  ldv_initialize();
2621#line 369
2622  tmp___3 = init_phram();
2623  }
2624#line 369
2625  if (tmp___3) {
2626#line 370
2627    goto ldv_final;
2628  } else {
2629
2630  }
2631  {
2632#line 372
2633  while (1) {
2634    while_continue: /* CIL Label */ ;
2635    {
2636#line 372
2637    tmp___5 = __VERIFIER_nondet_int();
2638    }
2639#line 372
2640    if (tmp___5) {
2641
2642    } else {
2643#line 372
2644      goto while_break;
2645    }
2646    {
2647#line 375
2648    tmp___4 = __VERIFIER_nondet_int();
2649    }
2650    {
2651#line 377
2652    goto switch_default;
2653#line 375
2654    if (0) {
2655      switch_default: /* CIL Label */ 
2656#line 377
2657      goto switch_break;
2658    } else {
2659      switch_break: /* CIL Label */ ;
2660    }
2661    }
2662  }
2663  while_break: /* CIL Label */ ;
2664  }
2665  {
2666#line 395
2667  cleanup_phram();
2668  }
2669  ldv_final: 
2670  {
2671#line 398
2672  ldv_check_final_state();
2673  }
2674#line 401
2675  return;
2676}
2677}
2678#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast-assert.h"
2679void ldv_blast_assert(void) 
2680{ 
2681
2682  {
2683  ERROR: 
2684#line 6
2685  goto ERROR;
2686}
2687}
2688#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast.h"
2689extern int __VERIFIER_nondet_int(void) ;
2690#line 19 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2691int ldv_mutex  =    1;
2692#line 22 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2693int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) 
2694{ int nondetermined ;
2695
2696  {
2697#line 29
2698  if (ldv_mutex == 1) {
2699
2700  } else {
2701    {
2702#line 29
2703    ldv_blast_assert();
2704    }
2705  }
2706  {
2707#line 32
2708  nondetermined = __VERIFIER_nondet_int();
2709  }
2710#line 35
2711  if (nondetermined) {
2712#line 38
2713    ldv_mutex = 2;
2714#line 40
2715    return (0);
2716  } else {
2717#line 45
2718    return (-4);
2719  }
2720}
2721}
2722#line 50 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2723int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) 
2724{ int nondetermined ;
2725
2726  {
2727#line 57
2728  if (ldv_mutex == 1) {
2729
2730  } else {
2731    {
2732#line 57
2733    ldv_blast_assert();
2734    }
2735  }
2736  {
2737#line 60
2738  nondetermined = __VERIFIER_nondet_int();
2739  }
2740#line 63
2741  if (nondetermined) {
2742#line 66
2743    ldv_mutex = 2;
2744#line 68
2745    return (0);
2746  } else {
2747#line 73
2748    return (-4);
2749  }
2750}
2751}
2752#line 78 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2753int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) 
2754{ int atomic_value_after_dec ;
2755
2756  {
2757#line 83
2758  if (ldv_mutex == 1) {
2759
2760  } else {
2761    {
2762#line 83
2763    ldv_blast_assert();
2764    }
2765  }
2766  {
2767#line 86
2768  atomic_value_after_dec = __VERIFIER_nondet_int();
2769  }
2770#line 89
2771  if (atomic_value_after_dec == 0) {
2772#line 92
2773    ldv_mutex = 2;
2774#line 94
2775    return (1);
2776  } else {
2777
2778  }
2779#line 98
2780  return (0);
2781}
2782}
2783#line 103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2784void mutex_lock(struct mutex *lock ) 
2785{ 
2786
2787  {
2788#line 108
2789  if (ldv_mutex == 1) {
2790
2791  } else {
2792    {
2793#line 108
2794    ldv_blast_assert();
2795    }
2796  }
2797#line 110
2798  ldv_mutex = 2;
2799#line 111
2800  return;
2801}
2802}
2803#line 114 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2804int mutex_trylock(struct mutex *lock ) 
2805{ int nondetermined ;
2806
2807  {
2808#line 121
2809  if (ldv_mutex == 1) {
2810
2811  } else {
2812    {
2813#line 121
2814    ldv_blast_assert();
2815    }
2816  }
2817  {
2818#line 124
2819  nondetermined = __VERIFIER_nondet_int();
2820  }
2821#line 127
2822  if (nondetermined) {
2823#line 130
2824    ldv_mutex = 2;
2825#line 132
2826    return (1);
2827  } else {
2828#line 137
2829    return (0);
2830  }
2831}
2832}
2833#line 142 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2834void mutex_unlock(struct mutex *lock ) 
2835{ 
2836
2837  {
2838#line 147
2839  if (ldv_mutex == 2) {
2840
2841  } else {
2842    {
2843#line 147
2844    ldv_blast_assert();
2845    }
2846  }
2847#line 149
2848  ldv_mutex = 1;
2849#line 150
2850  return;
2851}
2852}
2853#line 153 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
2854void ldv_check_final_state(void) 
2855{ 
2856
2857  {
2858#line 156
2859  if (ldv_mutex == 1) {
2860
2861  } else {
2862    {
2863#line 156
2864    ldv_blast_assert();
2865    }
2866  }
2867#line 157
2868  return;
2869}
2870}
2871#line 410 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/5414/dscv_tempdir/dscv/ri/32_1/drivers/mtd/devices/phram.c.common.c"
2872long s__builtin_expect(long val , long res ) 
2873{ 
2874
2875  {
2876#line 411
2877  return (val);
2878}
2879}