1
2
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 ( 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: ;
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: ;
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:
1914#line 151
1915 result = result * 1024UL;
1916 case_77:
1917#line 153
1918 result = result * 1024UL;
1919 case_107:
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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:
2656#line 377
2657 goto switch_break;
2658 } else {
2659 switch_break: ;
2660 }
2661 }
2662 }
2663 while_break: ;
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}