Showing error 1094

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-linux-3.4/43_1a_cilled_safe_ok_nondet_linux-43_1a-drivers--mtd--ftl.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 10755
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 19 "include/asm-generic/int-ll64.h"
    5typedef signed char __s8;
    6#line 20 "include/asm-generic/int-ll64.h"
    7typedef unsigned char __u8;
    8#line 22 "include/asm-generic/int-ll64.h"
    9typedef short __s16;
   10#line 23 "include/asm-generic/int-ll64.h"
   11typedef unsigned short __u16;
   12#line 25 "include/asm-generic/int-ll64.h"
   13typedef int __s32;
   14#line 26 "include/asm-generic/int-ll64.h"
   15typedef unsigned int __u32;
   16#line 29 "include/asm-generic/int-ll64.h"
   17typedef long long __s64;
   18#line 30 "include/asm-generic/int-ll64.h"
   19typedef unsigned long long __u64;
   20#line 43 "include/asm-generic/int-ll64.h"
   21typedef unsigned char u8;
   22#line 45 "include/asm-generic/int-ll64.h"
   23typedef short s16;
   24#line 46 "include/asm-generic/int-ll64.h"
   25typedef unsigned short u16;
   26#line 48 "include/asm-generic/int-ll64.h"
   27typedef int s32;
   28#line 49 "include/asm-generic/int-ll64.h"
   29typedef unsigned int u32;
   30#line 51 "include/asm-generic/int-ll64.h"
   31typedef long long s64;
   32#line 52 "include/asm-generic/int-ll64.h"
   33typedef unsigned long long u64;
   34#line 14 "include/asm-generic/posix_types.h"
   35typedef long __kernel_long_t;
   36#line 15 "include/asm-generic/posix_types.h"
   37typedef unsigned long __kernel_ulong_t;
   38#line 31 "include/asm-generic/posix_types.h"
   39typedef int __kernel_pid_t;
   40#line 52 "include/asm-generic/posix_types.h"
   41typedef unsigned int __kernel_uid32_t;
   42#line 53 "include/asm-generic/posix_types.h"
   43typedef unsigned int __kernel_gid32_t;
   44#line 75 "include/asm-generic/posix_types.h"
   45typedef __kernel_ulong_t __kernel_size_t;
   46#line 76 "include/asm-generic/posix_types.h"
   47typedef __kernel_long_t __kernel_ssize_t;
   48#line 91 "include/asm-generic/posix_types.h"
   49typedef long long __kernel_loff_t;
   50#line 92 "include/asm-generic/posix_types.h"
   51typedef __kernel_long_t __kernel_time_t;
   52#line 93 "include/asm-generic/posix_types.h"
   53typedef __kernel_long_t __kernel_clock_t;
   54#line 94 "include/asm-generic/posix_types.h"
   55typedef int __kernel_timer_t;
   56#line 95 "include/asm-generic/posix_types.h"
   57typedef int __kernel_clockid_t;
   58#line 96 "include/asm-generic/posix_types.h"
   59typedef char *__kernel_caddr_t;
   60#line 21 "include/linux/types.h"
   61typedef __u32 __kernel_dev_t;
   62#line 24 "include/linux/types.h"
   63typedef __kernel_dev_t dev_t;
   64#line 27 "include/linux/types.h"
   65typedef unsigned short umode_t;
   66#line 30 "include/linux/types.h"
   67typedef __kernel_pid_t pid_t;
   68#line 35 "include/linux/types.h"
   69typedef __kernel_clockid_t clockid_t;
   70#line 38 "include/linux/types.h"
   71typedef _Bool bool;
   72#line 40 "include/linux/types.h"
   73typedef __kernel_uid32_t uid_t;
   74#line 41 "include/linux/types.h"
   75typedef __kernel_gid32_t gid_t;
   76#line 54 "include/linux/types.h"
   77typedef __kernel_loff_t loff_t;
   78#line 63 "include/linux/types.h"
   79typedef __kernel_size_t size_t;
   80#line 68 "include/linux/types.h"
   81typedef __kernel_ssize_t ssize_t;
   82#line 78 "include/linux/types.h"
   83typedef __kernel_time_t time_t;
   84#line 88 "include/linux/types.h"
   85typedef __kernel_caddr_t *caddr_t;
   86#line 92 "include/linux/types.h"
   87typedef unsigned char u_char;
   88#line 95 "include/linux/types.h"
   89typedef unsigned long u_long;
   90#line 111 "include/linux/types.h"
   91typedef __s32 int32_t;
   92#line 115 "include/linux/types.h"
   93typedef __u8 uint8_t;
   94#line 116 "include/linux/types.h"
   95typedef __u16 uint16_t;
   96#line 117 "include/linux/types.h"
   97typedef __u32 uint32_t;
   98#line 120 "include/linux/types.h"
   99typedef __u64 uint64_t;
  100#line 142 "include/linux/types.h"
  101typedef unsigned long sector_t;
  102#line 143 "include/linux/types.h"
  103typedef unsigned long blkcnt_t;
  104#line 202 "include/linux/types.h"
  105typedef unsigned int gfp_t;
  106#line 203 "include/linux/types.h"
  107typedef unsigned int fmode_t;
  108#line 206 "include/linux/types.h"
  109typedef u64 phys_addr_t;
  110#line 211 "include/linux/types.h"
  111typedef phys_addr_t resource_size_t;
  112#line 221 "include/linux/types.h"
  113struct __anonstruct_atomic_t_6 {
  114   int counter ;
  115};
  116#line 221 "include/linux/types.h"
  117typedef struct __anonstruct_atomic_t_6 atomic_t;
  118#line 226 "include/linux/types.h"
  119struct __anonstruct_atomic64_t_7 {
  120   long counter ;
  121};
  122#line 226 "include/linux/types.h"
  123typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  124#line 227 "include/linux/types.h"
  125struct list_head {
  126   struct list_head *next ;
  127   struct list_head *prev ;
  128};
  129#line 232
  130struct hlist_node;
  131#line 232 "include/linux/types.h"
  132struct hlist_head {
  133   struct hlist_node *first ;
  134};
  135#line 236 "include/linux/types.h"
  136struct hlist_node {
  137   struct hlist_node *next ;
  138   struct hlist_node **pprev ;
  139};
  140#line 247 "include/linux/types.h"
  141struct rcu_head {
  142   struct rcu_head *next ;
  143   void (*func)(struct rcu_head * ) ;
  144};
  145#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  146struct module;
  147#line 55
  148struct module;
  149#line 146 "include/linux/init.h"
  150typedef void (*ctor_fn_t)(void);
  151#line 305 "include/linux/printk.h"
  152struct _ddebug {
  153   char const   *modname ;
  154   char const   *function ;
  155   char const   *filename ;
  156   char const   *format ;
  157   unsigned int lineno : 18 ;
  158   unsigned char flags ;
  159};
  160#line 46 "include/linux/dynamic_debug.h"
  161struct device;
  162#line 46
  163struct device;
  164#line 57
  165struct completion;
  166#line 57
  167struct completion;
  168#line 58
  169struct pt_regs;
  170#line 58
  171struct pt_regs;
  172#line 348 "include/linux/kernel.h"
  173struct pid;
  174#line 348
  175struct pid;
  176#line 112 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/stat.h"
  177struct timespec;
  178#line 112
  179struct timespec;
  180#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
  181struct page;
  182#line 58
  183struct page;
  184#line 26 "include/asm-generic/getorder.h"
  185struct task_struct;
  186#line 26
  187struct task_struct;
  188#line 28
  189struct mm_struct;
  190#line 28
  191struct mm_struct;
  192#line 268 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/segment.h"
  193struct pt_regs {
  194   unsigned long r15 ;
  195   unsigned long r14 ;
  196   unsigned long r13 ;
  197   unsigned long r12 ;
  198   unsigned long bp ;
  199   unsigned long bx ;
  200   unsigned long r11 ;
  201   unsigned long r10 ;
  202   unsigned long r9 ;
  203   unsigned long r8 ;
  204   unsigned long ax ;
  205   unsigned long cx ;
  206   unsigned long dx ;
  207   unsigned long si ;
  208   unsigned long di ;
  209   unsigned long orig_ax ;
  210   unsigned long ip ;
  211   unsigned long cs ;
  212   unsigned long flags ;
  213   unsigned long sp ;
  214   unsigned long ss ;
  215};
  216#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
  217struct __anonstruct_ldv_2180_13 {
  218   unsigned int a ;
  219   unsigned int b ;
  220};
  221#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
  222struct __anonstruct_ldv_2195_14 {
  223   u16 limit0 ;
  224   u16 base0 ;
  225   unsigned char base1 ;
  226   unsigned char type : 4 ;
  227   unsigned char s : 1 ;
  228   unsigned char dpl : 2 ;
  229   unsigned char p : 1 ;
  230   unsigned char limit : 4 ;
  231   unsigned char avl : 1 ;
  232   unsigned char l : 1 ;
  233   unsigned char d : 1 ;
  234   unsigned char g : 1 ;
  235   unsigned char base2 ;
  236};
  237#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
  238union __anonunion_ldv_2196_12 {
  239   struct __anonstruct_ldv_2180_13 ldv_2180 ;
  240   struct __anonstruct_ldv_2195_14 ldv_2195 ;
  241};
  242#line 125 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
  243struct desc_struct {
  244   union __anonunion_ldv_2196_12 ldv_2196 ;
  245};
  246#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
  247typedef unsigned long pgdval_t;
  248#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
  249typedef unsigned long pgprotval_t;
  250#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
  251struct pgprot {
  252   pgprotval_t pgprot ;
  253};
  254#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  255typedef struct pgprot pgprot_t;
  256#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  257struct __anonstruct_pgd_t_16 {
  258   pgdval_t pgd ;
  259};
  260#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  261typedef struct __anonstruct_pgd_t_16 pgd_t;
  262#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  263typedef struct page *pgtable_t;
  264#line 290
  265struct file;
  266#line 290
  267struct file;
  268#line 305
  269struct seq_file;
  270#line 305
  271struct seq_file;
  272#line 337
  273struct thread_struct;
  274#line 337
  275struct thread_struct;
  276#line 339
  277struct cpumask;
  278#line 339
  279struct cpumask;
  280#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
  281struct arch_spinlock;
  282#line 327
  283struct arch_spinlock;
  284#line 300 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
  285struct kernel_vm86_regs {
  286   struct pt_regs pt ;
  287   unsigned short es ;
  288   unsigned short __esh ;
  289   unsigned short ds ;
  290   unsigned short __dsh ;
  291   unsigned short fs ;
  292   unsigned short __fsh ;
  293   unsigned short gs ;
  294   unsigned short __gsh ;
  295};
  296#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
  297union __anonunion_ldv_2824_19 {
  298   struct pt_regs *regs ;
  299   struct kernel_vm86_regs *vm86 ;
  300};
  301#line 203 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
  302struct math_emu_info {
  303   long ___orig_eip ;
  304   union __anonunion_ldv_2824_19 ldv_2824 ;
  305};
  306#line 306 "include/linux/bitmap.h"
  307struct bug_entry {
  308   int bug_addr_disp ;
  309   int file_disp ;
  310   unsigned short line ;
  311   unsigned short flags ;
  312};
  313#line 89 "include/linux/bug.h"
  314struct cpumask {
  315   unsigned long bits[64U] ;
  316};
  317#line 14 "include/linux/cpumask.h"
  318typedef struct cpumask cpumask_t;
  319#line 637 "include/linux/cpumask.h"
  320typedef struct cpumask *cpumask_var_t;
  321#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
  322struct static_key;
  323#line 234
  324struct static_key;
  325#line 287 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  326struct i387_fsave_struct {
  327   u32 cwd ;
  328   u32 swd ;
  329   u32 twd ;
  330   u32 fip ;
  331   u32 fcs ;
  332   u32 foo ;
  333   u32 fos ;
  334   u32 st_space[20U] ;
  335   u32 status ;
  336};
  337#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  338struct __anonstruct_ldv_5180_24 {
  339   u64 rip ;
  340   u64 rdp ;
  341};
  342#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  343struct __anonstruct_ldv_5186_25 {
  344   u32 fip ;
  345   u32 fcs ;
  346   u32 foo ;
  347   u32 fos ;
  348};
  349#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  350union __anonunion_ldv_5187_23 {
  351   struct __anonstruct_ldv_5180_24 ldv_5180 ;
  352   struct __anonstruct_ldv_5186_25 ldv_5186 ;
  353};
  354#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  355union __anonunion_ldv_5196_26 {
  356   u32 padding1[12U] ;
  357   u32 sw_reserved[12U] ;
  358};
  359#line 305 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  360struct i387_fxsave_struct {
  361   u16 cwd ;
  362   u16 swd ;
  363   u16 twd ;
  364   u16 fop ;
  365   union __anonunion_ldv_5187_23 ldv_5187 ;
  366   u32 mxcsr ;
  367   u32 mxcsr_mask ;
  368   u32 st_space[32U] ;
  369   u32 xmm_space[64U] ;
  370   u32 padding[12U] ;
  371   union __anonunion_ldv_5196_26 ldv_5196 ;
  372};
  373#line 339 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  374struct i387_soft_struct {
  375   u32 cwd ;
  376   u32 swd ;
  377   u32 twd ;
  378   u32 fip ;
  379   u32 fcs ;
  380   u32 foo ;
  381   u32 fos ;
  382   u32 st_space[20U] ;
  383   u8 ftop ;
  384   u8 changed ;
  385   u8 lookahead ;
  386   u8 no_update ;
  387   u8 rm ;
  388   u8 alimit ;
  389   struct math_emu_info *info ;
  390   u32 entry_eip ;
  391};
  392#line 360 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  393struct ymmh_struct {
  394   u32 ymmh_space[64U] ;
  395};
  396#line 365 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  397struct xsave_hdr_struct {
  398   u64 xstate_bv ;
  399   u64 reserved1[2U] ;
  400   u64 reserved2[5U] ;
  401};
  402#line 371 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  403struct xsave_struct {
  404   struct i387_fxsave_struct i387 ;
  405   struct xsave_hdr_struct xsave_hdr ;
  406   struct ymmh_struct ymmh ;
  407};
  408#line 377 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  409union thread_xstate {
  410   struct i387_fsave_struct fsave ;
  411   struct i387_fxsave_struct fxsave ;
  412   struct i387_soft_struct soft ;
  413   struct xsave_struct xsave ;
  414};
  415#line 385 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  416struct fpu {
  417   unsigned int last_cpu ;
  418   unsigned int has_fpu ;
  419   union thread_xstate *state ;
  420};
  421#line 433
  422struct kmem_cache;
  423#line 434
  424struct perf_event;
  425#line 434
  426struct perf_event;
  427#line 435 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  428struct thread_struct {
  429   struct desc_struct tls_array[3U] ;
  430   unsigned long sp0 ;
  431   unsigned long sp ;
  432   unsigned long usersp ;
  433   unsigned short es ;
  434   unsigned short ds ;
  435   unsigned short fsindex ;
  436   unsigned short gsindex ;
  437   unsigned long fs ;
  438   unsigned long gs ;
  439   struct perf_event *ptrace_bps[4U] ;
  440   unsigned long debugreg6 ;
  441   unsigned long ptrace_dr7 ;
  442   unsigned long cr2 ;
  443   unsigned long trap_nr ;
  444   unsigned long error_code ;
  445   struct fpu fpu ;
  446   unsigned long *io_bitmap_ptr ;
  447   unsigned long iopl ;
  448   unsigned int io_bitmap_max ;
  449};
  450#line 23 "include/asm-generic/atomic-long.h"
  451typedef atomic64_t atomic_long_t;
  452#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  453typedef u16 __ticket_t;
  454#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  455typedef u32 __ticketpair_t;
  456#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  457struct __raw_tickets {
  458   __ticket_t head ;
  459   __ticket_t tail ;
  460};
  461#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  462union __anonunion_ldv_5907_29 {
  463   __ticketpair_t head_tail ;
  464   struct __raw_tickets tickets ;
  465};
  466#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  467struct arch_spinlock {
  468   union __anonunion_ldv_5907_29 ldv_5907 ;
  469};
  470#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  471typedef struct arch_spinlock arch_spinlock_t;
  472#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
  473struct __anonstruct_ldv_5914_31 {
  474   u32 read ;
  475   s32 write ;
  476};
  477#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
  478union __anonunion_arch_rwlock_t_30 {
  479   s64 lock ;
  480   struct __anonstruct_ldv_5914_31 ldv_5914 ;
  481};
  482#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
  483typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
  484#line 34
  485struct lockdep_map;
  486#line 34
  487struct lockdep_map;
  488#line 55 "include/linux/debug_locks.h"
  489struct stack_trace {
  490   unsigned int nr_entries ;
  491   unsigned int max_entries ;
  492   unsigned long *entries ;
  493   int skip ;
  494};
  495#line 26 "include/linux/stacktrace.h"
  496struct lockdep_subclass_key {
  497   char __one_byte ;
  498};
  499#line 53 "include/linux/lockdep.h"
  500struct lock_class_key {
  501   struct lockdep_subclass_key subkeys[8U] ;
  502};
  503#line 59 "include/linux/lockdep.h"
  504struct lock_class {
  505   struct list_head hash_entry ;
  506   struct list_head lock_entry ;
  507   struct lockdep_subclass_key *key ;
  508   unsigned int subclass ;
  509   unsigned int dep_gen_id ;
  510   unsigned long usage_mask ;
  511   struct stack_trace usage_traces[13U] ;
  512   struct list_head locks_after ;
  513   struct list_head locks_before ;
  514   unsigned int version ;
  515   unsigned long ops ;
  516   char const   *name ;
  517   int name_version ;
  518   unsigned long contention_point[4U] ;
  519   unsigned long contending_point[4U] ;
  520};
  521#line 144 "include/linux/lockdep.h"
  522struct lockdep_map {
  523   struct lock_class_key *key ;
  524   struct lock_class *class_cache[2U] ;
  525   char const   *name ;
  526   int cpu ;
  527   unsigned long ip ;
  528};
  529#line 187 "include/linux/lockdep.h"
  530struct held_lock {
  531   u64 prev_chain_key ;
  532   unsigned long acquire_ip ;
  533   struct lockdep_map *instance ;
  534   struct lockdep_map *nest_lock ;
  535   u64 waittime_stamp ;
  536   u64 holdtime_stamp ;
  537   unsigned short class_idx : 13 ;
  538   unsigned char irq_context : 2 ;
  539   unsigned char trylock : 1 ;
  540   unsigned char read : 2 ;
  541   unsigned char check : 2 ;
  542   unsigned char hardirqs_off : 1 ;
  543   unsigned short references : 11 ;
  544};
  545#line 556 "include/linux/lockdep.h"
  546struct raw_spinlock {
  547   arch_spinlock_t raw_lock ;
  548   unsigned int magic ;
  549   unsigned int owner_cpu ;
  550   void *owner ;
  551   struct lockdep_map dep_map ;
  552};
  553#line 32 "include/linux/spinlock_types.h"
  554typedef struct raw_spinlock raw_spinlock_t;
  555#line 33 "include/linux/spinlock_types.h"
  556struct __anonstruct_ldv_6122_33 {
  557   u8 __padding[24U] ;
  558   struct lockdep_map dep_map ;
  559};
  560#line 33 "include/linux/spinlock_types.h"
  561union __anonunion_ldv_6123_32 {
  562   struct raw_spinlock rlock ;
  563   struct __anonstruct_ldv_6122_33 ldv_6122 ;
  564};
  565#line 33 "include/linux/spinlock_types.h"
  566struct spinlock {
  567   union __anonunion_ldv_6123_32 ldv_6123 ;
  568};
  569#line 76 "include/linux/spinlock_types.h"
  570typedef struct spinlock spinlock_t;
  571#line 23 "include/linux/rwlock_types.h"
  572struct __anonstruct_rwlock_t_34 {
  573   arch_rwlock_t raw_lock ;
  574   unsigned int magic ;
  575   unsigned int owner_cpu ;
  576   void *owner ;
  577   struct lockdep_map dep_map ;
  578};
  579#line 23 "include/linux/rwlock_types.h"
  580typedef struct __anonstruct_rwlock_t_34 rwlock_t;
  581#line 110 "include/linux/seqlock.h"
  582struct seqcount {
  583   unsigned int sequence ;
  584};
  585#line 121 "include/linux/seqlock.h"
  586typedef struct seqcount seqcount_t;
  587#line 254 "include/linux/seqlock.h"
  588struct timespec {
  589   __kernel_time_t tv_sec ;
  590   long tv_nsec ;
  591};
  592#line 286 "include/linux/time.h"
  593struct kstat {
  594   u64 ino ;
  595   dev_t dev ;
  596   umode_t mode ;
  597   unsigned int nlink ;
  598   uid_t uid ;
  599   gid_t gid ;
  600   dev_t rdev ;
  601   loff_t size ;
  602   struct timespec atime ;
  603   struct timespec mtime ;
  604   struct timespec ctime ;
  605   unsigned long blksize ;
  606   unsigned long long blocks ;
  607};
  608#line 48 "include/linux/wait.h"
  609struct __wait_queue_head {
  610   spinlock_t lock ;
  611   struct list_head task_list ;
  612};
  613#line 53 "include/linux/wait.h"
  614typedef struct __wait_queue_head wait_queue_head_t;
  615#line 98 "include/linux/nodemask.h"
  616struct __anonstruct_nodemask_t_36 {
  617   unsigned long bits[16U] ;
  618};
  619#line 98 "include/linux/nodemask.h"
  620typedef struct __anonstruct_nodemask_t_36 nodemask_t;
  621#line 670 "include/linux/mmzone.h"
  622struct mutex {
  623   atomic_t count ;
  624   spinlock_t wait_lock ;
  625   struct list_head wait_list ;
  626   struct task_struct *owner ;
  627   char const   *name ;
  628   void *magic ;
  629   struct lockdep_map dep_map ;
  630};
  631#line 63 "include/linux/mutex.h"
  632struct mutex_waiter {
  633   struct list_head list ;
  634   struct task_struct *task ;
  635   void *magic ;
  636};
  637#line 171
  638struct rw_semaphore;
  639#line 171
  640struct rw_semaphore;
  641#line 172 "include/linux/mutex.h"
  642struct rw_semaphore {
  643   long count ;
  644   raw_spinlock_t wait_lock ;
  645   struct list_head wait_list ;
  646   struct lockdep_map dep_map ;
  647};
  648#line 128 "include/linux/rwsem.h"
  649struct completion {
  650   unsigned int done ;
  651   wait_queue_head_t wait ;
  652};
  653#line 188 "include/linux/rcupdate.h"
  654struct notifier_block;
  655#line 188
  656struct notifier_block;
  657#line 239 "include/linux/srcu.h"
  658struct notifier_block {
  659   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
  660   struct notifier_block *next ;
  661   int priority ;
  662};
  663#line 312 "include/linux/jiffies.h"
  664union ktime {
  665   s64 tv64 ;
  666};
  667#line 59 "include/linux/ktime.h"
  668typedef union ktime ktime_t;
  669#line 341
  670struct tvec_base;
  671#line 341
  672struct tvec_base;
  673#line 342 "include/linux/ktime.h"
  674struct timer_list {
  675   struct list_head entry ;
  676   unsigned long expires ;
  677   struct tvec_base *base ;
  678   void (*function)(unsigned long  ) ;
  679   unsigned long data ;
  680   int slack ;
  681   int start_pid ;
  682   void *start_site ;
  683   char start_comm[16U] ;
  684   struct lockdep_map lockdep_map ;
  685};
  686#line 289 "include/linux/timer.h"
  687struct hrtimer;
  688#line 289
  689struct hrtimer;
  690#line 290
  691enum hrtimer_restart;
  692#line 302
  693struct work_struct;
  694#line 302
  695struct work_struct;
  696#line 45 "include/linux/workqueue.h"
  697struct work_struct {
  698   atomic_long_t data ;
  699   struct list_head entry ;
  700   void (*func)(struct work_struct * ) ;
  701   struct lockdep_map lockdep_map ;
  702};
  703#line 86 "include/linux/workqueue.h"
  704struct delayed_work {
  705   struct work_struct work ;
  706   struct timer_list timer ;
  707};
  708#line 46 "include/linux/pm.h"
  709struct pm_message {
  710   int event ;
  711};
  712#line 52 "include/linux/pm.h"
  713typedef struct pm_message pm_message_t;
  714#line 53 "include/linux/pm.h"
  715struct dev_pm_ops {
  716   int (*prepare)(struct device * ) ;
  717   void (*complete)(struct device * ) ;
  718   int (*suspend)(struct device * ) ;
  719   int (*resume)(struct device * ) ;
  720   int (*freeze)(struct device * ) ;
  721   int (*thaw)(struct device * ) ;
  722   int (*poweroff)(struct device * ) ;
  723   int (*restore)(struct device * ) ;
  724   int (*suspend_late)(struct device * ) ;
  725   int (*resume_early)(struct device * ) ;
  726   int (*freeze_late)(struct device * ) ;
  727   int (*thaw_early)(struct device * ) ;
  728   int (*poweroff_late)(struct device * ) ;
  729   int (*restore_early)(struct device * ) ;
  730   int (*suspend_noirq)(struct device * ) ;
  731   int (*resume_noirq)(struct device * ) ;
  732   int (*freeze_noirq)(struct device * ) ;
  733   int (*thaw_noirq)(struct device * ) ;
  734   int (*poweroff_noirq)(struct device * ) ;
  735   int (*restore_noirq)(struct device * ) ;
  736   int (*runtime_suspend)(struct device * ) ;
  737   int (*runtime_resume)(struct device * ) ;
  738   int (*runtime_idle)(struct device * ) ;
  739};
  740#line 289
  741enum rpm_status {
  742    RPM_ACTIVE = 0,
  743    RPM_RESUMING = 1,
  744    RPM_SUSPENDED = 2,
  745    RPM_SUSPENDING = 3
  746} ;
  747#line 296
  748enum rpm_request {
  749    RPM_REQ_NONE = 0,
  750    RPM_REQ_IDLE = 1,
  751    RPM_REQ_SUSPEND = 2,
  752    RPM_REQ_AUTOSUSPEND = 3,
  753    RPM_REQ_RESUME = 4
  754} ;
  755#line 304
  756struct wakeup_source;
  757#line 304
  758struct wakeup_source;
  759#line 494 "include/linux/pm.h"
  760struct pm_subsys_data {
  761   spinlock_t lock ;
  762   unsigned int refcount ;
  763};
  764#line 499
  765struct dev_pm_qos_request;
  766#line 499
  767struct pm_qos_constraints;
  768#line 499 "include/linux/pm.h"
  769struct dev_pm_info {
  770   pm_message_t power_state ;
  771   unsigned char can_wakeup : 1 ;
  772   unsigned char async_suspend : 1 ;
  773   bool is_prepared ;
  774   bool is_suspended ;
  775   bool ignore_children ;
  776   spinlock_t lock ;
  777   struct list_head entry ;
  778   struct completion completion ;
  779   struct wakeup_source *wakeup ;
  780   bool wakeup_path ;
  781   struct timer_list suspend_timer ;
  782   unsigned long timer_expires ;
  783   struct work_struct work ;
  784   wait_queue_head_t wait_queue ;
  785   atomic_t usage_count ;
  786   atomic_t child_count ;
  787   unsigned char disable_depth : 3 ;
  788   unsigned char idle_notification : 1 ;
  789   unsigned char request_pending : 1 ;
  790   unsigned char deferred_resume : 1 ;
  791   unsigned char run_wake : 1 ;
  792   unsigned char runtime_auto : 1 ;
  793   unsigned char no_callbacks : 1 ;
  794   unsigned char irq_safe : 1 ;
  795   unsigned char use_autosuspend : 1 ;
  796   unsigned char timer_autosuspends : 1 ;
  797   enum rpm_request request ;
  798   enum rpm_status runtime_status ;
  799   int runtime_error ;
  800   int autosuspend_delay ;
  801   unsigned long last_busy ;
  802   unsigned long active_jiffies ;
  803   unsigned long suspended_jiffies ;
  804   unsigned long accounting_timestamp ;
  805   ktime_t suspend_time ;
  806   s64 max_time_suspended_ns ;
  807   struct dev_pm_qos_request *pq_req ;
  808   struct pm_subsys_data *subsys_data ;
  809   struct pm_qos_constraints *constraints ;
  810};
  811#line 558 "include/linux/pm.h"
  812struct dev_pm_domain {
  813   struct dev_pm_ops ops ;
  814};
  815#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
  816struct __anonstruct_mm_context_t_101 {
  817   void *ldt ;
  818   int size ;
  819   unsigned short ia32_compat ;
  820   struct mutex lock ;
  821   void *vdso ;
  822};
  823#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
  824typedef struct __anonstruct_mm_context_t_101 mm_context_t;
  825#line 18 "include/asm-generic/pci_iomap.h"
  826struct vm_area_struct;
  827#line 18
  828struct vm_area_struct;
  829#line 835 "include/linux/sysctl.h"
  830struct rb_node {
  831   unsigned long rb_parent_color ;
  832   struct rb_node *rb_right ;
  833   struct rb_node *rb_left ;
  834};
  835#line 108 "include/linux/rbtree.h"
  836struct rb_root {
  837   struct rb_node *rb_node ;
  838};
  839#line 176
  840struct nsproxy;
  841#line 176
  842struct nsproxy;
  843#line 37 "include/linux/kmod.h"
  844struct cred;
  845#line 37
  846struct cred;
  847#line 18 "include/linux/elf.h"
  848typedef __u64 Elf64_Addr;
  849#line 19 "include/linux/elf.h"
  850typedef __u16 Elf64_Half;
  851#line 23 "include/linux/elf.h"
  852typedef __u32 Elf64_Word;
  853#line 24 "include/linux/elf.h"
  854typedef __u64 Elf64_Xword;
  855#line 193 "include/linux/elf.h"
  856struct elf64_sym {
  857   Elf64_Word st_name ;
  858   unsigned char st_info ;
  859   unsigned char st_other ;
  860   Elf64_Half st_shndx ;
  861   Elf64_Addr st_value ;
  862   Elf64_Xword st_size ;
  863};
  864#line 201 "include/linux/elf.h"
  865typedef struct elf64_sym Elf64_Sym;
  866#line 445
  867struct sock;
  868#line 445
  869struct sock;
  870#line 446
  871struct kobject;
  872#line 446
  873struct kobject;
  874#line 447
  875enum kobj_ns_type {
  876    KOBJ_NS_TYPE_NONE = 0,
  877    KOBJ_NS_TYPE_NET = 1,
  878    KOBJ_NS_TYPES = 2
  879} ;
  880#line 453 "include/linux/elf.h"
  881struct kobj_ns_type_operations {
  882   enum kobj_ns_type type ;
  883   void *(*grab_current_ns)(void) ;
  884   void const   *(*netlink_ns)(struct sock * ) ;
  885   void const   *(*initial_ns)(void) ;
  886   void (*drop_ns)(void * ) ;
  887};
  888#line 57 "include/linux/kobject_ns.h"
  889struct attribute {
  890   char const   *name ;
  891   umode_t mode ;
  892   struct lock_class_key *key ;
  893   struct lock_class_key skey ;
  894};
  895#line 33 "include/linux/sysfs.h"
  896struct attribute_group {
  897   char const   *name ;
  898   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
  899   struct attribute **attrs ;
  900};
  901#line 62 "include/linux/sysfs.h"
  902struct bin_attribute {
  903   struct attribute attr ;
  904   size_t size ;
  905   void *private ;
  906   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  907                   loff_t  , size_t  ) ;
  908   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  909                    loff_t  , size_t  ) ;
  910   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
  911};
  912#line 98 "include/linux/sysfs.h"
  913struct sysfs_ops {
  914   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
  915   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
  916   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
  917};
  918#line 117
  919struct sysfs_dirent;
  920#line 117
  921struct sysfs_dirent;
  922#line 182 "include/linux/sysfs.h"
  923struct kref {
  924   atomic_t refcount ;
  925};
  926#line 49 "include/linux/kobject.h"
  927struct kset;
  928#line 49
  929struct kobj_type;
  930#line 49 "include/linux/kobject.h"
  931struct kobject {
  932   char const   *name ;
  933   struct list_head entry ;
  934   struct kobject *parent ;
  935   struct kset *kset ;
  936   struct kobj_type *ktype ;
  937   struct sysfs_dirent *sd ;
  938   struct kref kref ;
  939   unsigned char state_initialized : 1 ;
  940   unsigned char state_in_sysfs : 1 ;
  941   unsigned char state_add_uevent_sent : 1 ;
  942   unsigned char state_remove_uevent_sent : 1 ;
  943   unsigned char uevent_suppress : 1 ;
  944};
  945#line 107 "include/linux/kobject.h"
  946struct kobj_type {
  947   void (*release)(struct kobject * ) ;
  948   struct sysfs_ops  const  *sysfs_ops ;
  949   struct attribute **default_attrs ;
  950   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
  951   void const   *(*namespace)(struct kobject * ) ;
  952};
  953#line 115 "include/linux/kobject.h"
  954struct kobj_uevent_env {
  955   char *envp[32U] ;
  956   int envp_idx ;
  957   char buf[2048U] ;
  958   int buflen ;
  959};
  960#line 122 "include/linux/kobject.h"
  961struct kset_uevent_ops {
  962   int (* const  filter)(struct kset * , struct kobject * ) ;
  963   char const   *(* const  name)(struct kset * , struct kobject * ) ;
  964   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
  965};
  966#line 139 "include/linux/kobject.h"
  967struct kset {
  968   struct list_head list ;
  969   spinlock_t list_lock ;
  970   struct kobject kobj ;
  971   struct kset_uevent_ops  const  *uevent_ops ;
  972};
  973#line 215
  974struct kernel_param;
  975#line 215
  976struct kernel_param;
  977#line 216 "include/linux/kobject.h"
  978struct kernel_param_ops {
  979   int (*set)(char const   * , struct kernel_param  const  * ) ;
  980   int (*get)(char * , struct kernel_param  const  * ) ;
  981   void (*free)(void * ) ;
  982};
  983#line 49 "include/linux/moduleparam.h"
  984struct kparam_string;
  985#line 49
  986struct kparam_array;
  987#line 49 "include/linux/moduleparam.h"
  988union __anonunion_ldv_13367_134 {
  989   void *arg ;
  990   struct kparam_string  const  *str ;
  991   struct kparam_array  const  *arr ;
  992};
  993#line 49 "include/linux/moduleparam.h"
  994struct kernel_param {
  995   char const   *name ;
  996   struct kernel_param_ops  const  *ops ;
  997   u16 perm ;
  998   s16 level ;
  999   union __anonunion_ldv_13367_134 ldv_13367 ;
 1000};
 1001#line 61 "include/linux/moduleparam.h"
 1002struct kparam_string {
 1003   unsigned int maxlen ;
 1004   char *string ;
 1005};
 1006#line 67 "include/linux/moduleparam.h"
 1007struct kparam_array {
 1008   unsigned int max ;
 1009   unsigned int elemsize ;
 1010   unsigned int *num ;
 1011   struct kernel_param_ops  const  *ops ;
 1012   void *elem ;
 1013};
 1014#line 458 "include/linux/moduleparam.h"
 1015struct static_key {
 1016   atomic_t enabled ;
 1017};
 1018#line 225 "include/linux/jump_label.h"
 1019struct tracepoint;
 1020#line 225
 1021struct tracepoint;
 1022#line 226 "include/linux/jump_label.h"
 1023struct tracepoint_func {
 1024   void *func ;
 1025   void *data ;
 1026};
 1027#line 29 "include/linux/tracepoint.h"
 1028struct tracepoint {
 1029   char const   *name ;
 1030   struct static_key key ;
 1031   void (*regfunc)(void) ;
 1032   void (*unregfunc)(void) ;
 1033   struct tracepoint_func *funcs ;
 1034};
 1035#line 86 "include/linux/tracepoint.h"
 1036struct kernel_symbol {
 1037   unsigned long value ;
 1038   char const   *name ;
 1039};
 1040#line 27 "include/linux/export.h"
 1041struct mod_arch_specific {
 1042
 1043};
 1044#line 34 "include/linux/module.h"
 1045struct module_param_attrs;
 1046#line 34 "include/linux/module.h"
 1047struct module_kobject {
 1048   struct kobject kobj ;
 1049   struct module *mod ;
 1050   struct kobject *drivers_dir ;
 1051   struct module_param_attrs *mp ;
 1052};
 1053#line 43 "include/linux/module.h"
 1054struct module_attribute {
 1055   struct attribute attr ;
 1056   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 1057   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 1058                    size_t  ) ;
 1059   void (*setup)(struct module * , char const   * ) ;
 1060   int (*test)(struct module * ) ;
 1061   void (*free)(struct module * ) ;
 1062};
 1063#line 69
 1064struct exception_table_entry;
 1065#line 69
 1066struct exception_table_entry;
 1067#line 198
 1068enum module_state {
 1069    MODULE_STATE_LIVE = 0,
 1070    MODULE_STATE_COMING = 1,
 1071    MODULE_STATE_GOING = 2
 1072} ;
 1073#line 204 "include/linux/module.h"
 1074struct module_ref {
 1075   unsigned long incs ;
 1076   unsigned long decs ;
 1077};
 1078#line 219
 1079struct module_sect_attrs;
 1080#line 219
 1081struct module_notes_attrs;
 1082#line 219
 1083struct ftrace_event_call;
 1084#line 219 "include/linux/module.h"
 1085struct module {
 1086   enum module_state state ;
 1087   struct list_head list ;
 1088   char name[56U] ;
 1089   struct module_kobject mkobj ;
 1090   struct module_attribute *modinfo_attrs ;
 1091   char const   *version ;
 1092   char const   *srcversion ;
 1093   struct kobject *holders_dir ;
 1094   struct kernel_symbol  const  *syms ;
 1095   unsigned long const   *crcs ;
 1096   unsigned int num_syms ;
 1097   struct kernel_param *kp ;
 1098   unsigned int num_kp ;
 1099   unsigned int num_gpl_syms ;
 1100   struct kernel_symbol  const  *gpl_syms ;
 1101   unsigned long const   *gpl_crcs ;
 1102   struct kernel_symbol  const  *unused_syms ;
 1103   unsigned long const   *unused_crcs ;
 1104   unsigned int num_unused_syms ;
 1105   unsigned int num_unused_gpl_syms ;
 1106   struct kernel_symbol  const  *unused_gpl_syms ;
 1107   unsigned long const   *unused_gpl_crcs ;
 1108   struct kernel_symbol  const  *gpl_future_syms ;
 1109   unsigned long const   *gpl_future_crcs ;
 1110   unsigned int num_gpl_future_syms ;
 1111   unsigned int num_exentries ;
 1112   struct exception_table_entry *extable ;
 1113   int (*init)(void) ;
 1114   void *module_init ;
 1115   void *module_core ;
 1116   unsigned int init_size ;
 1117   unsigned int core_size ;
 1118   unsigned int init_text_size ;
 1119   unsigned int core_text_size ;
 1120   unsigned int init_ro_size ;
 1121   unsigned int core_ro_size ;
 1122   struct mod_arch_specific arch ;
 1123   unsigned int taints ;
 1124   unsigned int num_bugs ;
 1125   struct list_head bug_list ;
 1126   struct bug_entry *bug_table ;
 1127   Elf64_Sym *symtab ;
 1128   Elf64_Sym *core_symtab ;
 1129   unsigned int num_symtab ;
 1130   unsigned int core_num_syms ;
 1131   char *strtab ;
 1132   char *core_strtab ;
 1133   struct module_sect_attrs *sect_attrs ;
 1134   struct module_notes_attrs *notes_attrs ;
 1135   char *args ;
 1136   void *percpu ;
 1137   unsigned int percpu_size ;
 1138   unsigned int num_tracepoints ;
 1139   struct tracepoint * const  *tracepoints_ptrs ;
 1140   unsigned int num_trace_bprintk_fmt ;
 1141   char const   **trace_bprintk_fmt_start ;
 1142   struct ftrace_event_call **trace_events ;
 1143   unsigned int num_trace_events ;
 1144   struct list_head source_list ;
 1145   struct list_head target_list ;
 1146   struct task_struct *waiter ;
 1147   void (*exit)(void) ;
 1148   struct module_ref *refptr ;
 1149   ctor_fn_t (**ctors)(void) ;
 1150   unsigned int num_ctors ;
 1151};
 1152#line 88 "include/linux/kmemleak.h"
 1153struct kmem_cache_cpu {
 1154   void **freelist ;
 1155   unsigned long tid ;
 1156   struct page *page ;
 1157   struct page *partial ;
 1158   int node ;
 1159   unsigned int stat[26U] ;
 1160};
 1161#line 55 "include/linux/slub_def.h"
 1162struct kmem_cache_node {
 1163   spinlock_t list_lock ;
 1164   unsigned long nr_partial ;
 1165   struct list_head partial ;
 1166   atomic_long_t nr_slabs ;
 1167   atomic_long_t total_objects ;
 1168   struct list_head full ;
 1169};
 1170#line 66 "include/linux/slub_def.h"
 1171struct kmem_cache_order_objects {
 1172   unsigned long x ;
 1173};
 1174#line 76 "include/linux/slub_def.h"
 1175struct kmem_cache {
 1176   struct kmem_cache_cpu *cpu_slab ;
 1177   unsigned long flags ;
 1178   unsigned long min_partial ;
 1179   int size ;
 1180   int objsize ;
 1181   int offset ;
 1182   int cpu_partial ;
 1183   struct kmem_cache_order_objects oo ;
 1184   struct kmem_cache_order_objects max ;
 1185   struct kmem_cache_order_objects min ;
 1186   gfp_t allocflags ;
 1187   int refcount ;
 1188   void (*ctor)(void * ) ;
 1189   int inuse ;
 1190   int align ;
 1191   int reserved ;
 1192   char const   *name ;
 1193   struct list_head list ;
 1194   struct kobject kobj ;
 1195   int remote_node_defrag_ratio ;
 1196   struct kmem_cache_node *node[1024U] ;
 1197};
 1198#line 15 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 1199struct hd_geometry;
 1200#line 15
 1201struct hd_geometry;
 1202#line 16
 1203struct mtd_info;
 1204#line 16
 1205struct mtd_info;
 1206#line 17
 1207struct mtd_blktrans_ops;
 1208#line 17
 1209struct mtd_blktrans_ops;
 1210#line 18
 1211struct inode;
 1212#line 18
 1213struct inode;
 1214#line 19
 1215struct gendisk;
 1216#line 19
 1217struct request_queue;
 1218#line 19 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 1219struct mtd_blktrans_dev {
 1220   struct mtd_blktrans_ops *tr ;
 1221   struct list_head list ;
 1222   struct mtd_info *mtd ;
 1223   struct mutex lock ;
 1224   int devnum ;
 1225   bool bg_stop ;
 1226   unsigned long size ;
 1227   int readonly ;
 1228   int open ;
 1229   struct kref ref ;
 1230   struct gendisk *disk ;
 1231   struct attribute_group *disk_attributes ;
 1232   struct task_struct *thread ;
 1233   struct request_queue *rq ;
 1234   spinlock_t queue_lock ;
 1235   void *priv ;
 1236   fmode_t file_mode ;
 1237};
 1238#line 52 "include/linux/mtd/blktrans.h"
 1239struct mtd_blktrans_ops {
 1240   char *name ;
 1241   int major ;
 1242   int part_bits ;
 1243   int blksize ;
 1244   int blkshift ;
 1245   int (*readsect)(struct mtd_blktrans_dev * , unsigned long  , char * ) ;
 1246   int (*writesect)(struct mtd_blktrans_dev * , unsigned long  , char * ) ;
 1247   int (*discard)(struct mtd_blktrans_dev * , unsigned long  , unsigned int  ) ;
 1248   void (*background)(struct mtd_blktrans_dev * ) ;
 1249   int (*getgeo)(struct mtd_blktrans_dev * , struct hd_geometry * ) ;
 1250   int (*flush)(struct mtd_blktrans_dev * ) ;
 1251   int (*open)(struct mtd_blktrans_dev * ) ;
 1252   int (*release)(struct mtd_blktrans_dev * ) ;
 1253   void (*add_mtd)(struct mtd_blktrans_ops * , struct mtd_info * ) ;
 1254   void (*remove_dev)(struct mtd_blktrans_dev * ) ;
 1255   struct list_head devs ;
 1256   struct list_head list ;
 1257   struct module *owner ;
 1258};
 1259#line 92 "include/linux/mtd/blktrans.h"
 1260struct iovec {
 1261   void *iov_base ;
 1262   __kernel_size_t iov_len ;
 1263};
 1264#line 21 "include/linux/uio.h"
 1265struct kvec {
 1266   void *iov_base ;
 1267   size_t iov_len ;
 1268};
 1269#line 54
 1270struct klist_node;
 1271#line 54
 1272struct klist_node;
 1273#line 37 "include/linux/klist.h"
 1274struct klist_node {
 1275   void *n_klist ;
 1276   struct list_head n_node ;
 1277   struct kref n_ref ;
 1278};
 1279#line 67
 1280struct dma_map_ops;
 1281#line 67 "include/linux/klist.h"
 1282struct dev_archdata {
 1283   void *acpi_handle ;
 1284   struct dma_map_ops *dma_ops ;
 1285   void *iommu ;
 1286};
 1287#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 1288struct device_private;
 1289#line 17
 1290struct device_private;
 1291#line 18
 1292struct device_driver;
 1293#line 18
 1294struct device_driver;
 1295#line 19
 1296struct driver_private;
 1297#line 19
 1298struct driver_private;
 1299#line 20
 1300struct class;
 1301#line 20
 1302struct class;
 1303#line 21
 1304struct subsys_private;
 1305#line 21
 1306struct subsys_private;
 1307#line 22
 1308struct bus_type;
 1309#line 22
 1310struct bus_type;
 1311#line 23
 1312struct device_node;
 1313#line 23
 1314struct device_node;
 1315#line 24
 1316struct iommu_ops;
 1317#line 24
 1318struct iommu_ops;
 1319#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 1320struct bus_attribute {
 1321   struct attribute attr ;
 1322   ssize_t (*show)(struct bus_type * , char * ) ;
 1323   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
 1324};
 1325#line 51 "include/linux/device.h"
 1326struct device_attribute;
 1327#line 51
 1328struct driver_attribute;
 1329#line 51 "include/linux/device.h"
 1330struct bus_type {
 1331   char const   *name ;
 1332   char const   *dev_name ;
 1333   struct device *dev_root ;
 1334   struct bus_attribute *bus_attrs ;
 1335   struct device_attribute *dev_attrs ;
 1336   struct driver_attribute *drv_attrs ;
 1337   int (*match)(struct device * , struct device_driver * ) ;
 1338   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 1339   int (*probe)(struct device * ) ;
 1340   int (*remove)(struct device * ) ;
 1341   void (*shutdown)(struct device * ) ;
 1342   int (*suspend)(struct device * , pm_message_t  ) ;
 1343   int (*resume)(struct device * ) ;
 1344   struct dev_pm_ops  const  *pm ;
 1345   struct iommu_ops *iommu_ops ;
 1346   struct subsys_private *p ;
 1347};
 1348#line 125
 1349struct device_type;
 1350#line 182
 1351struct of_device_id;
 1352#line 182 "include/linux/device.h"
 1353struct device_driver {
 1354   char const   *name ;
 1355   struct bus_type *bus ;
 1356   struct module *owner ;
 1357   char const   *mod_name ;
 1358   bool suppress_bind_attrs ;
 1359   struct of_device_id  const  *of_match_table ;
 1360   int (*probe)(struct device * ) ;
 1361   int (*remove)(struct device * ) ;
 1362   void (*shutdown)(struct device * ) ;
 1363   int (*suspend)(struct device * , pm_message_t  ) ;
 1364   int (*resume)(struct device * ) ;
 1365   struct attribute_group  const  **groups ;
 1366   struct dev_pm_ops  const  *pm ;
 1367   struct driver_private *p ;
 1368};
 1369#line 245 "include/linux/device.h"
 1370struct driver_attribute {
 1371   struct attribute attr ;
 1372   ssize_t (*show)(struct device_driver * , char * ) ;
 1373   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
 1374};
 1375#line 299
 1376struct class_attribute;
 1377#line 299 "include/linux/device.h"
 1378struct class {
 1379   char const   *name ;
 1380   struct module *owner ;
 1381   struct class_attribute *class_attrs ;
 1382   struct device_attribute *dev_attrs ;
 1383   struct bin_attribute *dev_bin_attrs ;
 1384   struct kobject *dev_kobj ;
 1385   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
 1386   char *(*devnode)(struct device * , umode_t * ) ;
 1387   void (*class_release)(struct class * ) ;
 1388   void (*dev_release)(struct device * ) ;
 1389   int (*suspend)(struct device * , pm_message_t  ) ;
 1390   int (*resume)(struct device * ) ;
 1391   struct kobj_ns_type_operations  const  *ns_type ;
 1392   void const   *(*namespace)(struct device * ) ;
 1393   struct dev_pm_ops  const  *pm ;
 1394   struct subsys_private *p ;
 1395};
 1396#line 394 "include/linux/device.h"
 1397struct class_attribute {
 1398   struct attribute attr ;
 1399   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
 1400   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
 1401   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
 1402};
 1403#line 447 "include/linux/device.h"
 1404struct device_type {
 1405   char const   *name ;
 1406   struct attribute_group  const  **groups ;
 1407   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 1408   char *(*devnode)(struct device * , umode_t * ) ;
 1409   void (*release)(struct device * ) ;
 1410   struct dev_pm_ops  const  *pm ;
 1411};
 1412#line 474 "include/linux/device.h"
 1413struct device_attribute {
 1414   struct attribute attr ;
 1415   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
 1416   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
 1417                    size_t  ) ;
 1418};
 1419#line 557 "include/linux/device.h"
 1420struct device_dma_parameters {
 1421   unsigned int max_segment_size ;
 1422   unsigned long segment_boundary_mask ;
 1423};
 1424#line 567
 1425struct dma_coherent_mem;
 1426#line 567 "include/linux/device.h"
 1427struct device {
 1428   struct device *parent ;
 1429   struct device_private *p ;
 1430   struct kobject kobj ;
 1431   char const   *init_name ;
 1432   struct device_type  const  *type ;
 1433   struct mutex mutex ;
 1434   struct bus_type *bus ;
 1435   struct device_driver *driver ;
 1436   void *platform_data ;
 1437   struct dev_pm_info power ;
 1438   struct dev_pm_domain *pm_domain ;
 1439   int numa_node ;
 1440   u64 *dma_mask ;
 1441   u64 coherent_dma_mask ;
 1442   struct device_dma_parameters *dma_parms ;
 1443   struct list_head dma_pools ;
 1444   struct dma_coherent_mem *dma_mem ;
 1445   struct dev_archdata archdata ;
 1446   struct device_node *of_node ;
 1447   dev_t devt ;
 1448   u32 id ;
 1449   spinlock_t devres_lock ;
 1450   struct list_head devres_head ;
 1451   struct klist_node knode_class ;
 1452   struct class *class ;
 1453   struct attribute_group  const  **groups ;
 1454   void (*release)(struct device * ) ;
 1455};
 1456#line 681 "include/linux/device.h"
 1457struct wakeup_source {
 1458   char const   *name ;
 1459   struct list_head entry ;
 1460   spinlock_t lock ;
 1461   struct timer_list timer ;
 1462   unsigned long timer_expires ;
 1463   ktime_t total_time ;
 1464   ktime_t max_time ;
 1465   ktime_t last_time ;
 1466   unsigned long event_count ;
 1467   unsigned long active_count ;
 1468   unsigned long relax_count ;
 1469   unsigned long hit_count ;
 1470   unsigned char active : 1 ;
 1471};
 1472#line 142 "include/mtd/mtd-abi.h"
 1473struct otp_info {
 1474   __u32 start ;
 1475   __u32 length ;
 1476   __u32 locked ;
 1477};
 1478#line 216 "include/mtd/mtd-abi.h"
 1479struct nand_oobfree {
 1480   __u32 offset ;
 1481   __u32 length ;
 1482};
 1483#line 238 "include/mtd/mtd-abi.h"
 1484struct mtd_ecc_stats {
 1485   __u32 corrected ;
 1486   __u32 failed ;
 1487   __u32 badblocks ;
 1488   __u32 bbtblocks ;
 1489};
 1490#line 260 "include/mtd/mtd-abi.h"
 1491struct erase_info {
 1492   struct mtd_info *mtd ;
 1493   uint64_t addr ;
 1494   uint64_t len ;
 1495   uint64_t fail_addr ;
 1496   u_long time ;
 1497   u_long retries ;
 1498   unsigned int dev ;
 1499   unsigned int cell ;
 1500   void (*callback)(struct erase_info * ) ;
 1501   u_long priv ;
 1502   u_char state ;
 1503   struct erase_info *next ;
 1504};
 1505#line 62 "include/linux/mtd/mtd.h"
 1506struct mtd_erase_region_info {
 1507   uint64_t offset ;
 1508   uint32_t erasesize ;
 1509   uint32_t numblocks ;
 1510   unsigned long *lockmap ;
 1511};
 1512#line 69 "include/linux/mtd/mtd.h"
 1513struct mtd_oob_ops {
 1514   unsigned int mode ;
 1515   size_t len ;
 1516   size_t retlen ;
 1517   size_t ooblen ;
 1518   size_t oobretlen ;
 1519   uint32_t ooboffs ;
 1520   uint8_t *datbuf ;
 1521   uint8_t *oobbuf ;
 1522};
 1523#line 99 "include/linux/mtd/mtd.h"
 1524struct nand_ecclayout {
 1525   __u32 eccbytes ;
 1526   __u32 eccpos[448U] ;
 1527   __u32 oobavail ;
 1528   struct nand_oobfree oobfree[32U] ;
 1529};
 1530#line 114
 1531struct backing_dev_info;
 1532#line 114 "include/linux/mtd/mtd.h"
 1533struct mtd_info {
 1534   u_char type ;
 1535   uint32_t flags ;
 1536   uint64_t size ;
 1537   uint32_t erasesize ;
 1538   uint32_t writesize ;
 1539   uint32_t writebufsize ;
 1540   uint32_t oobsize ;
 1541   uint32_t oobavail ;
 1542   unsigned int erasesize_shift ;
 1543   unsigned int writesize_shift ;
 1544   unsigned int erasesize_mask ;
 1545   unsigned int writesize_mask ;
 1546   char const   *name ;
 1547   int index ;
 1548   struct nand_ecclayout *ecclayout ;
 1549   unsigned int ecc_strength ;
 1550   int numeraseregions ;
 1551   struct mtd_erase_region_info *eraseregions ;
 1552   int (*_erase)(struct mtd_info * , struct erase_info * ) ;
 1553   int (*_point)(struct mtd_info * , loff_t  , size_t  , size_t * , void ** , resource_size_t * ) ;
 1554   int (*_unpoint)(struct mtd_info * , loff_t  , size_t  ) ;
 1555   unsigned long (*_get_unmapped_area)(struct mtd_info * , unsigned long  , unsigned long  ,
 1556                                       unsigned long  ) ;
 1557   int (*_read)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
 1558   int (*_write)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
 1559   int (*_panic_write)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
 1560   int (*_read_oob)(struct mtd_info * , loff_t  , struct mtd_oob_ops * ) ;
 1561   int (*_write_oob)(struct mtd_info * , loff_t  , struct mtd_oob_ops * ) ;
 1562   int (*_get_fact_prot_info)(struct mtd_info * , struct otp_info * , size_t  ) ;
 1563   int (*_read_fact_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
 1564   int (*_get_user_prot_info)(struct mtd_info * , struct otp_info * , size_t  ) ;
 1565   int (*_read_user_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
 1566   int (*_write_user_prot_reg)(struct mtd_info * , loff_t  , size_t  , size_t * ,
 1567                               u_char * ) ;
 1568   int (*_lock_user_prot_reg)(struct mtd_info * , loff_t  , size_t  ) ;
 1569   int (*_writev)(struct mtd_info * , struct kvec  const  * , unsigned long  , loff_t  ,
 1570                  size_t * ) ;
 1571   void (*_sync)(struct mtd_info * ) ;
 1572   int (*_lock)(struct mtd_info * , loff_t  , uint64_t  ) ;
 1573   int (*_unlock)(struct mtd_info * , loff_t  , uint64_t  ) ;
 1574   int (*_is_locked)(struct mtd_info * , loff_t  , uint64_t  ) ;
 1575   int (*_block_isbad)(struct mtd_info * , loff_t  ) ;
 1576   int (*_block_markbad)(struct mtd_info * , loff_t  ) ;
 1577   int (*_suspend)(struct mtd_info * ) ;
 1578   void (*_resume)(struct mtd_info * ) ;
 1579   int (*_get_device)(struct mtd_info * ) ;
 1580   void (*_put_device)(struct mtd_info * ) ;
 1581   struct backing_dev_info *backing_dev_info ;
 1582   struct notifier_block reboot_notifier ;
 1583   struct mtd_ecc_stats ecc_stats ;
 1584   int subpage_sft ;
 1585   void *priv ;
 1586   struct module *owner ;
 1587   struct device dev ;
 1588   int usecount ;
 1589};
 1590#line 93 "include/linux/capability.h"
 1591struct kernel_cap_struct {
 1592   __u32 cap[2U] ;
 1593};
 1594#line 96 "include/linux/capability.h"
 1595typedef struct kernel_cap_struct kernel_cap_t;
 1596#line 104
 1597struct dentry;
 1598#line 104
 1599struct dentry;
 1600#line 105
 1601struct user_namespace;
 1602#line 105
 1603struct user_namespace;
 1604#line 554
 1605struct prio_tree_node;
 1606#line 554 "include/linux/capability.h"
 1607struct raw_prio_tree_node {
 1608   struct prio_tree_node *left ;
 1609   struct prio_tree_node *right ;
 1610   struct prio_tree_node *parent ;
 1611};
 1612#line 19 "include/linux/prio_tree.h"
 1613struct prio_tree_node {
 1614   struct prio_tree_node *left ;
 1615   struct prio_tree_node *right ;
 1616   struct prio_tree_node *parent ;
 1617   unsigned long start ;
 1618   unsigned long last ;
 1619};
 1620#line 27 "include/linux/prio_tree.h"
 1621struct prio_tree_root {
 1622   struct prio_tree_node *prio_tree_node ;
 1623   unsigned short index_bits ;
 1624   unsigned short raw ;
 1625};
 1626#line 116
 1627struct address_space;
 1628#line 116
 1629struct address_space;
 1630#line 117 "include/linux/prio_tree.h"
 1631union __anonunion_ldv_15621_137 {
 1632   unsigned long index ;
 1633   void *freelist ;
 1634};
 1635#line 117 "include/linux/prio_tree.h"
 1636struct __anonstruct_ldv_15631_141 {
 1637   unsigned short inuse ;
 1638   unsigned short objects : 15 ;
 1639   unsigned char frozen : 1 ;
 1640};
 1641#line 117 "include/linux/prio_tree.h"
 1642union __anonunion_ldv_15632_140 {
 1643   atomic_t _mapcount ;
 1644   struct __anonstruct_ldv_15631_141 ldv_15631 ;
 1645};
 1646#line 117 "include/linux/prio_tree.h"
 1647struct __anonstruct_ldv_15634_139 {
 1648   union __anonunion_ldv_15632_140 ldv_15632 ;
 1649   atomic_t _count ;
 1650};
 1651#line 117 "include/linux/prio_tree.h"
 1652union __anonunion_ldv_15635_138 {
 1653   unsigned long counters ;
 1654   struct __anonstruct_ldv_15634_139 ldv_15634 ;
 1655};
 1656#line 117 "include/linux/prio_tree.h"
 1657struct __anonstruct_ldv_15636_136 {
 1658   union __anonunion_ldv_15621_137 ldv_15621 ;
 1659   union __anonunion_ldv_15635_138 ldv_15635 ;
 1660};
 1661#line 117 "include/linux/prio_tree.h"
 1662struct __anonstruct_ldv_15643_143 {
 1663   struct page *next ;
 1664   int pages ;
 1665   int pobjects ;
 1666};
 1667#line 117 "include/linux/prio_tree.h"
 1668union __anonunion_ldv_15644_142 {
 1669   struct list_head lru ;
 1670   struct __anonstruct_ldv_15643_143 ldv_15643 ;
 1671};
 1672#line 117 "include/linux/prio_tree.h"
 1673union __anonunion_ldv_15649_144 {
 1674   unsigned long private ;
 1675   struct kmem_cache *slab ;
 1676   struct page *first_page ;
 1677};
 1678#line 117 "include/linux/prio_tree.h"
 1679struct page {
 1680   unsigned long flags ;
 1681   struct address_space *mapping ;
 1682   struct __anonstruct_ldv_15636_136 ldv_15636 ;
 1683   union __anonunion_ldv_15644_142 ldv_15644 ;
 1684   union __anonunion_ldv_15649_144 ldv_15649 ;
 1685   unsigned long debug_flags ;
 1686};
 1687#line 192 "include/linux/mm_types.h"
 1688struct __anonstruct_vm_set_146 {
 1689   struct list_head list ;
 1690   void *parent ;
 1691   struct vm_area_struct *head ;
 1692};
 1693#line 192 "include/linux/mm_types.h"
 1694union __anonunion_shared_145 {
 1695   struct __anonstruct_vm_set_146 vm_set ;
 1696   struct raw_prio_tree_node prio_tree_node ;
 1697};
 1698#line 192
 1699struct anon_vma;
 1700#line 192
 1701struct vm_operations_struct;
 1702#line 192
 1703struct mempolicy;
 1704#line 192 "include/linux/mm_types.h"
 1705struct vm_area_struct {
 1706   struct mm_struct *vm_mm ;
 1707   unsigned long vm_start ;
 1708   unsigned long vm_end ;
 1709   struct vm_area_struct *vm_next ;
 1710   struct vm_area_struct *vm_prev ;
 1711   pgprot_t vm_page_prot ;
 1712   unsigned long vm_flags ;
 1713   struct rb_node vm_rb ;
 1714   union __anonunion_shared_145 shared ;
 1715   struct list_head anon_vma_chain ;
 1716   struct anon_vma *anon_vma ;
 1717   struct vm_operations_struct  const  *vm_ops ;
 1718   unsigned long vm_pgoff ;
 1719   struct file *vm_file ;
 1720   void *vm_private_data ;
 1721   struct mempolicy *vm_policy ;
 1722};
 1723#line 255 "include/linux/mm_types.h"
 1724struct core_thread {
 1725   struct task_struct *task ;
 1726   struct core_thread *next ;
 1727};
 1728#line 261 "include/linux/mm_types.h"
 1729struct core_state {
 1730   atomic_t nr_threads ;
 1731   struct core_thread dumper ;
 1732   struct completion startup ;
 1733};
 1734#line 274 "include/linux/mm_types.h"
 1735struct mm_rss_stat {
 1736   atomic_long_t count[3U] ;
 1737};
 1738#line 287
 1739struct linux_binfmt;
 1740#line 287
 1741struct mmu_notifier_mm;
 1742#line 287 "include/linux/mm_types.h"
 1743struct mm_struct {
 1744   struct vm_area_struct *mmap ;
 1745   struct rb_root mm_rb ;
 1746   struct vm_area_struct *mmap_cache ;
 1747   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 1748                                      unsigned long  , unsigned long  ) ;
 1749   void (*unmap_area)(struct mm_struct * , unsigned long  ) ;
 1750   unsigned long mmap_base ;
 1751   unsigned long task_size ;
 1752   unsigned long cached_hole_size ;
 1753   unsigned long free_area_cache ;
 1754   pgd_t *pgd ;
 1755   atomic_t mm_users ;
 1756   atomic_t mm_count ;
 1757   int map_count ;
 1758   spinlock_t page_table_lock ;
 1759   struct rw_semaphore mmap_sem ;
 1760   struct list_head mmlist ;
 1761   unsigned long hiwater_rss ;
 1762   unsigned long hiwater_vm ;
 1763   unsigned long total_vm ;
 1764   unsigned long locked_vm ;
 1765   unsigned long pinned_vm ;
 1766   unsigned long shared_vm ;
 1767   unsigned long exec_vm ;
 1768   unsigned long stack_vm ;
 1769   unsigned long reserved_vm ;
 1770   unsigned long def_flags ;
 1771   unsigned long nr_ptes ;
 1772   unsigned long start_code ;
 1773   unsigned long end_code ;
 1774   unsigned long start_data ;
 1775   unsigned long end_data ;
 1776   unsigned long start_brk ;
 1777   unsigned long brk ;
 1778   unsigned long start_stack ;
 1779   unsigned long arg_start ;
 1780   unsigned long arg_end ;
 1781   unsigned long env_start ;
 1782   unsigned long env_end ;
 1783   unsigned long saved_auxv[44U] ;
 1784   struct mm_rss_stat rss_stat ;
 1785   struct linux_binfmt *binfmt ;
 1786   cpumask_var_t cpu_vm_mask_var ;
 1787   mm_context_t context ;
 1788   unsigned int faultstamp ;
 1789   unsigned int token_priority ;
 1790   unsigned int last_interval ;
 1791   unsigned long flags ;
 1792   struct core_state *core_state ;
 1793   spinlock_t ioctx_lock ;
 1794   struct hlist_head ioctx_list ;
 1795   struct task_struct *owner ;
 1796   struct file *exe_file ;
 1797   unsigned long num_exe_file_vmas ;
 1798   struct mmu_notifier_mm *mmu_notifier_mm ;
 1799   pgtable_t pmd_huge_pte ;
 1800   struct cpumask cpumask_allocation ;
 1801};
 1802#line 7 "include/asm-generic/cputime.h"
 1803typedef unsigned long cputime_t;
 1804#line 98 "include/linux/sem.h"
 1805struct sem_undo_list;
 1806#line 98 "include/linux/sem.h"
 1807struct sysv_sem {
 1808   struct sem_undo_list *undo_list ;
 1809};
 1810#line 107
 1811struct siginfo;
 1812#line 107
 1813struct siginfo;
 1814#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1815struct __anonstruct_sigset_t_147 {
 1816   unsigned long sig[1U] ;
 1817};
 1818#line 32 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1819typedef struct __anonstruct_sigset_t_147 sigset_t;
 1820#line 17 "include/asm-generic/signal-defs.h"
 1821typedef void __signalfn_t(int  );
 1822#line 18 "include/asm-generic/signal-defs.h"
 1823typedef __signalfn_t *__sighandler_t;
 1824#line 20 "include/asm-generic/signal-defs.h"
 1825typedef void __restorefn_t(void);
 1826#line 21 "include/asm-generic/signal-defs.h"
 1827typedef __restorefn_t *__sigrestore_t;
 1828#line 126 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1829struct sigaction {
 1830   __sighandler_t sa_handler ;
 1831   unsigned long sa_flags ;
 1832   __sigrestore_t sa_restorer ;
 1833   sigset_t sa_mask ;
 1834};
 1835#line 173 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1836struct k_sigaction {
 1837   struct sigaction sa ;
 1838};
 1839#line 185 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1840union sigval {
 1841   int sival_int ;
 1842   void *sival_ptr ;
 1843};
 1844#line 10 "include/asm-generic/siginfo.h"
 1845typedef union sigval sigval_t;
 1846#line 11 "include/asm-generic/siginfo.h"
 1847struct __anonstruct__kill_149 {
 1848   __kernel_pid_t _pid ;
 1849   __kernel_uid32_t _uid ;
 1850};
 1851#line 11 "include/asm-generic/siginfo.h"
 1852struct __anonstruct__timer_150 {
 1853   __kernel_timer_t _tid ;
 1854   int _overrun ;
 1855   char _pad[0U] ;
 1856   sigval_t _sigval ;
 1857   int _sys_private ;
 1858};
 1859#line 11 "include/asm-generic/siginfo.h"
 1860struct __anonstruct__rt_151 {
 1861   __kernel_pid_t _pid ;
 1862   __kernel_uid32_t _uid ;
 1863   sigval_t _sigval ;
 1864};
 1865#line 11 "include/asm-generic/siginfo.h"
 1866struct __anonstruct__sigchld_152 {
 1867   __kernel_pid_t _pid ;
 1868   __kernel_uid32_t _uid ;
 1869   int _status ;
 1870   __kernel_clock_t _utime ;
 1871   __kernel_clock_t _stime ;
 1872};
 1873#line 11 "include/asm-generic/siginfo.h"
 1874struct __anonstruct__sigfault_153 {
 1875   void *_addr ;
 1876   short _addr_lsb ;
 1877};
 1878#line 11 "include/asm-generic/siginfo.h"
 1879struct __anonstruct__sigpoll_154 {
 1880   long _band ;
 1881   int _fd ;
 1882};
 1883#line 11 "include/asm-generic/siginfo.h"
 1884union __anonunion__sifields_148 {
 1885   int _pad[28U] ;
 1886   struct __anonstruct__kill_149 _kill ;
 1887   struct __anonstruct__timer_150 _timer ;
 1888   struct __anonstruct__rt_151 _rt ;
 1889   struct __anonstruct__sigchld_152 _sigchld ;
 1890   struct __anonstruct__sigfault_153 _sigfault ;
 1891   struct __anonstruct__sigpoll_154 _sigpoll ;
 1892};
 1893#line 11 "include/asm-generic/siginfo.h"
 1894struct siginfo {
 1895   int si_signo ;
 1896   int si_errno ;
 1897   int si_code ;
 1898   union __anonunion__sifields_148 _sifields ;
 1899};
 1900#line 102 "include/asm-generic/siginfo.h"
 1901typedef struct siginfo siginfo_t;
 1902#line 14 "include/linux/signal.h"
 1903struct user_struct;
 1904#line 24 "include/linux/signal.h"
 1905struct sigpending {
 1906   struct list_head list ;
 1907   sigset_t signal ;
 1908};
 1909#line 388
 1910enum pid_type {
 1911    PIDTYPE_PID = 0,
 1912    PIDTYPE_PGID = 1,
 1913    PIDTYPE_SID = 2,
 1914    PIDTYPE_MAX = 3
 1915} ;
 1916#line 395
 1917struct pid_namespace;
 1918#line 395 "include/linux/signal.h"
 1919struct upid {
 1920   int nr ;
 1921   struct pid_namespace *ns ;
 1922   struct hlist_node pid_chain ;
 1923};
 1924#line 56 "include/linux/pid.h"
 1925struct pid {
 1926   atomic_t count ;
 1927   unsigned int level ;
 1928   struct hlist_head tasks[3U] ;
 1929   struct rcu_head rcu ;
 1930   struct upid numbers[1U] ;
 1931};
 1932#line 68 "include/linux/pid.h"
 1933struct pid_link {
 1934   struct hlist_node node ;
 1935   struct pid *pid ;
 1936};
 1937#line 10 "include/linux/seccomp.h"
 1938struct __anonstruct_seccomp_t_157 {
 1939   int mode ;
 1940};
 1941#line 10 "include/linux/seccomp.h"
 1942typedef struct __anonstruct_seccomp_t_157 seccomp_t;
 1943#line 427 "include/linux/rculist.h"
 1944struct plist_head {
 1945   struct list_head node_list ;
 1946};
 1947#line 84 "include/linux/plist.h"
 1948struct plist_node {
 1949   int prio ;
 1950   struct list_head prio_list ;
 1951   struct list_head node_list ;
 1952};
 1953#line 38 "include/linux/rtmutex.h"
 1954struct rt_mutex_waiter;
 1955#line 38
 1956struct rt_mutex_waiter;
 1957#line 41 "include/linux/resource.h"
 1958struct rlimit {
 1959   unsigned long rlim_cur ;
 1960   unsigned long rlim_max ;
 1961};
 1962#line 85 "include/linux/resource.h"
 1963struct timerqueue_node {
 1964   struct rb_node node ;
 1965   ktime_t expires ;
 1966};
 1967#line 12 "include/linux/timerqueue.h"
 1968struct timerqueue_head {
 1969   struct rb_root head ;
 1970   struct timerqueue_node *next ;
 1971};
 1972#line 50
 1973struct hrtimer_clock_base;
 1974#line 50
 1975struct hrtimer_clock_base;
 1976#line 51
 1977struct hrtimer_cpu_base;
 1978#line 51
 1979struct hrtimer_cpu_base;
 1980#line 60
 1981enum hrtimer_restart {
 1982    HRTIMER_NORESTART = 0,
 1983    HRTIMER_RESTART = 1
 1984} ;
 1985#line 65 "include/linux/timerqueue.h"
 1986struct hrtimer {
 1987   struct timerqueue_node node ;
 1988   ktime_t _softexpires ;
 1989   enum hrtimer_restart (*function)(struct hrtimer * ) ;
 1990   struct hrtimer_clock_base *base ;
 1991   unsigned long state ;
 1992   int start_pid ;
 1993   void *start_site ;
 1994   char start_comm[16U] ;
 1995};
 1996#line 132 "include/linux/hrtimer.h"
 1997struct hrtimer_clock_base {
 1998   struct hrtimer_cpu_base *cpu_base ;
 1999   int index ;
 2000   clockid_t clockid ;
 2001   struct timerqueue_head active ;
 2002   ktime_t resolution ;
 2003   ktime_t (*get_time)(void) ;
 2004   ktime_t softirq_time ;
 2005   ktime_t offset ;
 2006};
 2007#line 162 "include/linux/hrtimer.h"
 2008struct hrtimer_cpu_base {
 2009   raw_spinlock_t lock ;
 2010   unsigned long active_bases ;
 2011   ktime_t expires_next ;
 2012   int hres_active ;
 2013   int hang_detected ;
 2014   unsigned long nr_events ;
 2015   unsigned long nr_retries ;
 2016   unsigned long nr_hangs ;
 2017   ktime_t max_hang_time ;
 2018   struct hrtimer_clock_base clock_base[3U] ;
 2019};
 2020#line 452 "include/linux/hrtimer.h"
 2021struct task_io_accounting {
 2022   u64 rchar ;
 2023   u64 wchar ;
 2024   u64 syscr ;
 2025   u64 syscw ;
 2026   u64 read_bytes ;
 2027   u64 write_bytes ;
 2028   u64 cancelled_write_bytes ;
 2029};
 2030#line 45 "include/linux/task_io_accounting.h"
 2031struct latency_record {
 2032   unsigned long backtrace[12U] ;
 2033   unsigned int count ;
 2034   unsigned long time ;
 2035   unsigned long max ;
 2036};
 2037#line 29 "include/linux/key.h"
 2038typedef int32_t key_serial_t;
 2039#line 32 "include/linux/key.h"
 2040typedef uint32_t key_perm_t;
 2041#line 33
 2042struct key;
 2043#line 33
 2044struct key;
 2045#line 34
 2046struct signal_struct;
 2047#line 34
 2048struct signal_struct;
 2049#line 35
 2050struct key_type;
 2051#line 35
 2052struct key_type;
 2053#line 37
 2054struct keyring_list;
 2055#line 37
 2056struct keyring_list;
 2057#line 115
 2058struct key_user;
 2059#line 115 "include/linux/key.h"
 2060union __anonunion_ldv_16885_158 {
 2061   time_t expiry ;
 2062   time_t revoked_at ;
 2063};
 2064#line 115 "include/linux/key.h"
 2065union __anonunion_type_data_159 {
 2066   struct list_head link ;
 2067   unsigned long x[2U] ;
 2068   void *p[2U] ;
 2069   int reject_error ;
 2070};
 2071#line 115 "include/linux/key.h"
 2072union __anonunion_payload_160 {
 2073   unsigned long value ;
 2074   void *rcudata ;
 2075   void *data ;
 2076   struct keyring_list *subscriptions ;
 2077};
 2078#line 115 "include/linux/key.h"
 2079struct key {
 2080   atomic_t usage ;
 2081   key_serial_t serial ;
 2082   struct rb_node serial_node ;
 2083   struct key_type *type ;
 2084   struct rw_semaphore sem ;
 2085   struct key_user *user ;
 2086   void *security ;
 2087   union __anonunion_ldv_16885_158 ldv_16885 ;
 2088   uid_t uid ;
 2089   gid_t gid ;
 2090   key_perm_t perm ;
 2091   unsigned short quotalen ;
 2092   unsigned short datalen ;
 2093   unsigned long flags ;
 2094   char *description ;
 2095   union __anonunion_type_data_159 type_data ;
 2096   union __anonunion_payload_160 payload ;
 2097};
 2098#line 316
 2099struct audit_context;
 2100#line 316
 2101struct audit_context;
 2102#line 27 "include/linux/selinux.h"
 2103struct group_info {
 2104   atomic_t usage ;
 2105   int ngroups ;
 2106   int nblocks ;
 2107   gid_t small_block[32U] ;
 2108   gid_t *blocks[0U] ;
 2109};
 2110#line 77 "include/linux/cred.h"
 2111struct thread_group_cred {
 2112   atomic_t usage ;
 2113   pid_t tgid ;
 2114   spinlock_t lock ;
 2115   struct key *session_keyring ;
 2116   struct key *process_keyring ;
 2117   struct rcu_head rcu ;
 2118};
 2119#line 91 "include/linux/cred.h"
 2120struct cred {
 2121   atomic_t usage ;
 2122   atomic_t subscribers ;
 2123   void *put_addr ;
 2124   unsigned int magic ;
 2125   uid_t uid ;
 2126   gid_t gid ;
 2127   uid_t suid ;
 2128   gid_t sgid ;
 2129   uid_t euid ;
 2130   gid_t egid ;
 2131   uid_t fsuid ;
 2132   gid_t fsgid ;
 2133   unsigned int securebits ;
 2134   kernel_cap_t cap_inheritable ;
 2135   kernel_cap_t cap_permitted ;
 2136   kernel_cap_t cap_effective ;
 2137   kernel_cap_t cap_bset ;
 2138   unsigned char jit_keyring ;
 2139   struct key *thread_keyring ;
 2140   struct key *request_key_auth ;
 2141   struct thread_group_cred *tgcred ;
 2142   void *security ;
 2143   struct user_struct *user ;
 2144   struct user_namespace *user_ns ;
 2145   struct group_info *group_info ;
 2146   struct rcu_head rcu ;
 2147};
 2148#line 264
 2149struct llist_node;
 2150#line 64 "include/linux/llist.h"
 2151struct llist_node {
 2152   struct llist_node *next ;
 2153};
 2154#line 185
 2155struct futex_pi_state;
 2156#line 185
 2157struct futex_pi_state;
 2158#line 186
 2159struct robust_list_head;
 2160#line 186
 2161struct robust_list_head;
 2162#line 187
 2163struct bio_list;
 2164#line 187
 2165struct bio_list;
 2166#line 188
 2167struct fs_struct;
 2168#line 188
 2169struct fs_struct;
 2170#line 189
 2171struct perf_event_context;
 2172#line 189
 2173struct perf_event_context;
 2174#line 190
 2175struct blk_plug;
 2176#line 190
 2177struct blk_plug;
 2178#line 149 "include/linux/sched.h"
 2179struct cfs_rq;
 2180#line 149
 2181struct cfs_rq;
 2182#line 44 "include/linux/aio_abi.h"
 2183struct io_event {
 2184   __u64 data ;
 2185   __u64 obj ;
 2186   __s64 res ;
 2187   __s64 res2 ;
 2188};
 2189#line 106
 2190struct kioctx;
 2191#line 106
 2192struct kioctx;
 2193#line 107 "include/linux/aio_abi.h"
 2194union __anonunion_ki_obj_161 {
 2195   void *user ;
 2196   struct task_struct *tsk ;
 2197};
 2198#line 107
 2199struct eventfd_ctx;
 2200#line 107 "include/linux/aio_abi.h"
 2201struct kiocb {
 2202   struct list_head ki_run_list ;
 2203   unsigned long ki_flags ;
 2204   int ki_users ;
 2205   unsigned int ki_key ;
 2206   struct file *ki_filp ;
 2207   struct kioctx *ki_ctx ;
 2208   int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
 2209   ssize_t (*ki_retry)(struct kiocb * ) ;
 2210   void (*ki_dtor)(struct kiocb * ) ;
 2211   union __anonunion_ki_obj_161 ki_obj ;
 2212   __u64 ki_user_data ;
 2213   loff_t ki_pos ;
 2214   void *private ;
 2215   unsigned short ki_opcode ;
 2216   size_t ki_nbytes ;
 2217   char *ki_buf ;
 2218   size_t ki_left ;
 2219   struct iovec ki_inline_vec ;
 2220   struct iovec *ki_iovec ;
 2221   unsigned long ki_nr_segs ;
 2222   unsigned long ki_cur_seg ;
 2223   struct list_head ki_list ;
 2224   struct list_head ki_batch ;
 2225   struct eventfd_ctx *ki_eventfd ;
 2226};
 2227#line 162 "include/linux/aio.h"
 2228struct aio_ring_info {
 2229   unsigned long mmap_base ;
 2230   unsigned long mmap_size ;
 2231   struct page **ring_pages ;
 2232   spinlock_t ring_lock ;
 2233   long nr_pages ;
 2234   unsigned int nr ;
 2235   unsigned int tail ;
 2236   struct page *internal_pages[8U] ;
 2237};
 2238#line 178 "include/linux/aio.h"
 2239struct kioctx {
 2240   atomic_t users ;
 2241   int dead ;
 2242   struct mm_struct *mm ;
 2243   unsigned long user_id ;
 2244   struct hlist_node list ;
 2245   wait_queue_head_t wait ;
 2246   spinlock_t ctx_lock ;
 2247   int reqs_active ;
 2248   struct list_head active_reqs ;
 2249   struct list_head run_list ;
 2250   unsigned int max_reqs ;
 2251   struct aio_ring_info ring_info ;
 2252   struct delayed_work wq ;
 2253   struct rcu_head rcu_head ;
 2254};
 2255#line 406 "include/linux/sched.h"
 2256struct sighand_struct {
 2257   atomic_t count ;
 2258   struct k_sigaction action[64U] ;
 2259   spinlock_t siglock ;
 2260   wait_queue_head_t signalfd_wqh ;
 2261};
 2262#line 449 "include/linux/sched.h"
 2263struct pacct_struct {
 2264   int ac_flag ;
 2265   long ac_exitcode ;
 2266   unsigned long ac_mem ;
 2267   cputime_t ac_utime ;
 2268   cputime_t ac_stime ;
 2269   unsigned long ac_minflt ;
 2270   unsigned long ac_majflt ;
 2271};
 2272#line 457 "include/linux/sched.h"
 2273struct cpu_itimer {
 2274   cputime_t expires ;
 2275   cputime_t incr ;
 2276   u32 error ;
 2277   u32 incr_error ;
 2278};
 2279#line 464 "include/linux/sched.h"
 2280struct task_cputime {
 2281   cputime_t utime ;
 2282   cputime_t stime ;
 2283   unsigned long long sum_exec_runtime ;
 2284};
 2285#line 481 "include/linux/sched.h"
 2286struct thread_group_cputimer {
 2287   struct task_cputime cputime ;
 2288   int running ;
 2289   raw_spinlock_t lock ;
 2290};
 2291#line 517
 2292struct autogroup;
 2293#line 517
 2294struct autogroup;
 2295#line 518
 2296struct tty_struct;
 2297#line 518
 2298struct taskstats;
 2299#line 518
 2300struct tty_audit_buf;
 2301#line 518 "include/linux/sched.h"
 2302struct signal_struct {
 2303   atomic_t sigcnt ;
 2304   atomic_t live ;
 2305   int nr_threads ;
 2306   wait_queue_head_t wait_chldexit ;
 2307   struct task_struct *curr_target ;
 2308   struct sigpending shared_pending ;
 2309   int group_exit_code ;
 2310   int notify_count ;
 2311   struct task_struct *group_exit_task ;
 2312   int group_stop_count ;
 2313   unsigned int flags ;
 2314   unsigned char is_child_subreaper : 1 ;
 2315   unsigned char has_child_subreaper : 1 ;
 2316   struct list_head posix_timers ;
 2317   struct hrtimer real_timer ;
 2318   struct pid *leader_pid ;
 2319   ktime_t it_real_incr ;
 2320   struct cpu_itimer it[2U] ;
 2321   struct thread_group_cputimer cputimer ;
 2322   struct task_cputime cputime_expires ;
 2323   struct list_head cpu_timers[3U] ;
 2324   struct pid *tty_old_pgrp ;
 2325   int leader ;
 2326   struct tty_struct *tty ;
 2327   struct autogroup *autogroup ;
 2328   cputime_t utime ;
 2329   cputime_t stime ;
 2330   cputime_t cutime ;
 2331   cputime_t cstime ;
 2332   cputime_t gtime ;
 2333   cputime_t cgtime ;
 2334   cputime_t prev_utime ;
 2335   cputime_t prev_stime ;
 2336   unsigned long nvcsw ;
 2337   unsigned long nivcsw ;
 2338   unsigned long cnvcsw ;
 2339   unsigned long cnivcsw ;
 2340   unsigned long min_flt ;
 2341   unsigned long maj_flt ;
 2342   unsigned long cmin_flt ;
 2343   unsigned long cmaj_flt ;
 2344   unsigned long inblock ;
 2345   unsigned long oublock ;
 2346   unsigned long cinblock ;
 2347   unsigned long coublock ;
 2348   unsigned long maxrss ;
 2349   unsigned long cmaxrss ;
 2350   struct task_io_accounting ioac ;
 2351   unsigned long long sum_sched_runtime ;
 2352   struct rlimit rlim[16U] ;
 2353   struct pacct_struct pacct ;
 2354   struct taskstats *stats ;
 2355   unsigned int audit_tty ;
 2356   struct tty_audit_buf *tty_audit_buf ;
 2357   struct rw_semaphore group_rwsem ;
 2358   int oom_adj ;
 2359   int oom_score_adj ;
 2360   int oom_score_adj_min ;
 2361   struct mutex cred_guard_mutex ;
 2362};
 2363#line 699 "include/linux/sched.h"
 2364struct user_struct {
 2365   atomic_t __count ;
 2366   atomic_t processes ;
 2367   atomic_t files ;
 2368   atomic_t sigpending ;
 2369   atomic_t inotify_watches ;
 2370   atomic_t inotify_devs ;
 2371   atomic_t fanotify_listeners ;
 2372   atomic_long_t epoll_watches ;
 2373   unsigned long mq_bytes ;
 2374   unsigned long locked_shm ;
 2375   struct key *uid_keyring ;
 2376   struct key *session_keyring ;
 2377   struct hlist_node uidhash_node ;
 2378   uid_t uid ;
 2379   struct user_namespace *user_ns ;
 2380   atomic_long_t locked_vm ;
 2381};
 2382#line 744
 2383struct reclaim_state;
 2384#line 744
 2385struct reclaim_state;
 2386#line 745 "include/linux/sched.h"
 2387struct sched_info {
 2388   unsigned long pcount ;
 2389   unsigned long long run_delay ;
 2390   unsigned long long last_arrival ;
 2391   unsigned long long last_queued ;
 2392};
 2393#line 760 "include/linux/sched.h"
 2394struct task_delay_info {
 2395   spinlock_t lock ;
 2396   unsigned int flags ;
 2397   struct timespec blkio_start ;
 2398   struct timespec blkio_end ;
 2399   u64 blkio_delay ;
 2400   u64 swapin_delay ;
 2401   u32 blkio_count ;
 2402   u32 swapin_count ;
 2403   struct timespec freepages_start ;
 2404   struct timespec freepages_end ;
 2405   u64 freepages_delay ;
 2406   u32 freepages_count ;
 2407};
 2408#line 1069
 2409struct io_context;
 2410#line 1069
 2411struct io_context;
 2412#line 1097
 2413struct pipe_inode_info;
 2414#line 1097
 2415struct pipe_inode_info;
 2416#line 1099
 2417struct rq;
 2418#line 1099
 2419struct rq;
 2420#line 1100 "include/linux/sched.h"
 2421struct sched_class {
 2422   struct sched_class  const  *next ;
 2423   void (*enqueue_task)(struct rq * , struct task_struct * , int  ) ;
 2424   void (*dequeue_task)(struct rq * , struct task_struct * , int  ) ;
 2425   void (*yield_task)(struct rq * ) ;
 2426   bool (*yield_to_task)(struct rq * , struct task_struct * , bool  ) ;
 2427   void (*check_preempt_curr)(struct rq * , struct task_struct * , int  ) ;
 2428   struct task_struct *(*pick_next_task)(struct rq * ) ;
 2429   void (*put_prev_task)(struct rq * , struct task_struct * ) ;
 2430   int (*select_task_rq)(struct task_struct * , int  , int  ) ;
 2431   void (*pre_schedule)(struct rq * , struct task_struct * ) ;
 2432   void (*post_schedule)(struct rq * ) ;
 2433   void (*task_waking)(struct task_struct * ) ;
 2434   void (*task_woken)(struct rq * , struct task_struct * ) ;
 2435   void (*set_cpus_allowed)(struct task_struct * , struct cpumask  const  * ) ;
 2436   void (*rq_online)(struct rq * ) ;
 2437   void (*rq_offline)(struct rq * ) ;
 2438   void (*set_curr_task)(struct rq * ) ;
 2439   void (*task_tick)(struct rq * , struct task_struct * , int  ) ;
 2440   void (*task_fork)(struct task_struct * ) ;
 2441   void (*switched_from)(struct rq * , struct task_struct * ) ;
 2442   void (*switched_to)(struct rq * , struct task_struct * ) ;
 2443   void (*prio_changed)(struct rq * , struct task_struct * , int  ) ;
 2444   unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
 2445   void (*task_move_group)(struct task_struct * , int  ) ;
 2446};
 2447#line 1165 "include/linux/sched.h"
 2448struct load_weight {
 2449   unsigned long weight ;
 2450   unsigned long inv_weight ;
 2451};
 2452#line 1170 "include/linux/sched.h"
 2453struct sched_statistics {
 2454   u64 wait_start ;
 2455   u64 wait_max ;
 2456   u64 wait_count ;
 2457   u64 wait_sum ;
 2458   u64 iowait_count ;
 2459   u64 iowait_sum ;
 2460   u64 sleep_start ;
 2461   u64 sleep_max ;
 2462   s64 sum_sleep_runtime ;
 2463   u64 block_start ;
 2464   u64 block_max ;
 2465   u64 exec_max ;
 2466   u64 slice_max ;
 2467   u64 nr_migrations_cold ;
 2468   u64 nr_failed_migrations_affine ;
 2469   u64 nr_failed_migrations_running ;
 2470   u64 nr_failed_migrations_hot ;
 2471   u64 nr_forced_migrations ;
 2472   u64 nr_wakeups ;
 2473   u64 nr_wakeups_sync ;
 2474   u64 nr_wakeups_migrate ;
 2475   u64 nr_wakeups_local ;
 2476   u64 nr_wakeups_remote ;
 2477   u64 nr_wakeups_affine ;
 2478   u64 nr_wakeups_affine_attempts ;
 2479   u64 nr_wakeups_passive ;
 2480   u64 nr_wakeups_idle ;
 2481};
 2482#line 1205 "include/linux/sched.h"
 2483struct sched_entity {
 2484   struct load_weight load ;
 2485   struct rb_node run_node ;
 2486   struct list_head group_node ;
 2487   unsigned int on_rq ;
 2488   u64 exec_start ;
 2489   u64 sum_exec_runtime ;
 2490   u64 vruntime ;
 2491   u64 prev_sum_exec_runtime ;
 2492   u64 nr_migrations ;
 2493   struct sched_statistics statistics ;
 2494   struct sched_entity *parent ;
 2495   struct cfs_rq *cfs_rq ;
 2496   struct cfs_rq *my_q ;
 2497};
 2498#line 1231
 2499struct rt_rq;
 2500#line 1231 "include/linux/sched.h"
 2501struct sched_rt_entity {
 2502   struct list_head run_list ;
 2503   unsigned long timeout ;
 2504   unsigned int time_slice ;
 2505   int nr_cpus_allowed ;
 2506   struct sched_rt_entity *back ;
 2507   struct sched_rt_entity *parent ;
 2508   struct rt_rq *rt_rq ;
 2509   struct rt_rq *my_q ;
 2510};
 2511#line 1255
 2512struct mem_cgroup;
 2513#line 1255 "include/linux/sched.h"
 2514struct memcg_batch_info {
 2515   int do_batch ;
 2516   struct mem_cgroup *memcg ;
 2517   unsigned long nr_pages ;
 2518   unsigned long memsw_nr_pages ;
 2519};
 2520#line 1616
 2521struct files_struct;
 2522#line 1616
 2523struct css_set;
 2524#line 1616
 2525struct compat_robust_list_head;
 2526#line 1616 "include/linux/sched.h"
 2527struct task_struct {
 2528   long volatile   state ;
 2529   void *stack ;
 2530   atomic_t usage ;
 2531   unsigned int flags ;
 2532   unsigned int ptrace ;
 2533   struct llist_node wake_entry ;
 2534   int on_cpu ;
 2535   int on_rq ;
 2536   int prio ;
 2537   int static_prio ;
 2538   int normal_prio ;
 2539   unsigned int rt_priority ;
 2540   struct sched_class  const  *sched_class ;
 2541   struct sched_entity se ;
 2542   struct sched_rt_entity rt ;
 2543   struct hlist_head preempt_notifiers ;
 2544   unsigned char fpu_counter ;
 2545   unsigned int policy ;
 2546   cpumask_t cpus_allowed ;
 2547   struct sched_info sched_info ;
 2548   struct list_head tasks ;
 2549   struct plist_node pushable_tasks ;
 2550   struct mm_struct *mm ;
 2551   struct mm_struct *active_mm ;
 2552   unsigned char brk_randomized : 1 ;
 2553   int exit_state ;
 2554   int exit_code ;
 2555   int exit_signal ;
 2556   int pdeath_signal ;
 2557   unsigned int jobctl ;
 2558   unsigned int personality ;
 2559   unsigned char did_exec : 1 ;
 2560   unsigned char in_execve : 1 ;
 2561   unsigned char in_iowait : 1 ;
 2562   unsigned char sched_reset_on_fork : 1 ;
 2563   unsigned char sched_contributes_to_load : 1 ;
 2564   unsigned char irq_thread : 1 ;
 2565   pid_t pid ;
 2566   pid_t tgid ;
 2567   unsigned long stack_canary ;
 2568   struct task_struct *real_parent ;
 2569   struct task_struct *parent ;
 2570   struct list_head children ;
 2571   struct list_head sibling ;
 2572   struct task_struct *group_leader ;
 2573   struct list_head ptraced ;
 2574   struct list_head ptrace_entry ;
 2575   struct pid_link pids[3U] ;
 2576   struct list_head thread_group ;
 2577   struct completion *vfork_done ;
 2578   int *set_child_tid ;
 2579   int *clear_child_tid ;
 2580   cputime_t utime ;
 2581   cputime_t stime ;
 2582   cputime_t utimescaled ;
 2583   cputime_t stimescaled ;
 2584   cputime_t gtime ;
 2585   cputime_t prev_utime ;
 2586   cputime_t prev_stime ;
 2587   unsigned long nvcsw ;
 2588   unsigned long nivcsw ;
 2589   struct timespec start_time ;
 2590   struct timespec real_start_time ;
 2591   unsigned long min_flt ;
 2592   unsigned long maj_flt ;
 2593   struct task_cputime cputime_expires ;
 2594   struct list_head cpu_timers[3U] ;
 2595   struct cred  const  *real_cred ;
 2596   struct cred  const  *cred ;
 2597   struct cred *replacement_session_keyring ;
 2598   char comm[16U] ;
 2599   int link_count ;
 2600   int total_link_count ;
 2601   struct sysv_sem sysvsem ;
 2602   unsigned long last_switch_count ;
 2603   struct thread_struct thread ;
 2604   struct fs_struct *fs ;
 2605   struct files_struct *files ;
 2606   struct nsproxy *nsproxy ;
 2607   struct signal_struct *signal ;
 2608   struct sighand_struct *sighand ;
 2609   sigset_t blocked ;
 2610   sigset_t real_blocked ;
 2611   sigset_t saved_sigmask ;
 2612   struct sigpending pending ;
 2613   unsigned long sas_ss_sp ;
 2614   size_t sas_ss_size ;
 2615   int (*notifier)(void * ) ;
 2616   void *notifier_data ;
 2617   sigset_t *notifier_mask ;
 2618   struct audit_context *audit_context ;
 2619   uid_t loginuid ;
 2620   unsigned int sessionid ;
 2621   seccomp_t seccomp ;
 2622   u32 parent_exec_id ;
 2623   u32 self_exec_id ;
 2624   spinlock_t alloc_lock ;
 2625   raw_spinlock_t pi_lock ;
 2626   struct plist_head pi_waiters ;
 2627   struct rt_mutex_waiter *pi_blocked_on ;
 2628   struct mutex_waiter *blocked_on ;
 2629   unsigned int irq_events ;
 2630   unsigned long hardirq_enable_ip ;
 2631   unsigned long hardirq_disable_ip ;
 2632   unsigned int hardirq_enable_event ;
 2633   unsigned int hardirq_disable_event ;
 2634   int hardirqs_enabled ;
 2635   int hardirq_context ;
 2636   unsigned long softirq_disable_ip ;
 2637   unsigned long softirq_enable_ip ;
 2638   unsigned int softirq_disable_event ;
 2639   unsigned int softirq_enable_event ;
 2640   int softirqs_enabled ;
 2641   int softirq_context ;
 2642   u64 curr_chain_key ;
 2643   int lockdep_depth ;
 2644   unsigned int lockdep_recursion ;
 2645   struct held_lock held_locks[48U] ;
 2646   gfp_t lockdep_reclaim_gfp ;
 2647   void *journal_info ;
 2648   struct bio_list *bio_list ;
 2649   struct blk_plug *plug ;
 2650   struct reclaim_state *reclaim_state ;
 2651   struct backing_dev_info *backing_dev_info ;
 2652   struct io_context *io_context ;
 2653   unsigned long ptrace_message ;
 2654   siginfo_t *last_siginfo ;
 2655   struct task_io_accounting ioac ;
 2656   u64 acct_rss_mem1 ;
 2657   u64 acct_vm_mem1 ;
 2658   cputime_t acct_timexpd ;
 2659   nodemask_t mems_allowed ;
 2660   seqcount_t mems_allowed_seq ;
 2661   int cpuset_mem_spread_rotor ;
 2662   int cpuset_slab_spread_rotor ;
 2663   struct css_set *cgroups ;
 2664   struct list_head cg_list ;
 2665   struct robust_list_head *robust_list ;
 2666   struct compat_robust_list_head *compat_robust_list ;
 2667   struct list_head pi_state_list ;
 2668   struct futex_pi_state *pi_state_cache ;
 2669   struct perf_event_context *perf_event_ctxp[2U] ;
 2670   struct mutex perf_event_mutex ;
 2671   struct list_head perf_event_list ;
 2672   struct mempolicy *mempolicy ;
 2673   short il_next ;
 2674   short pref_node_fork ;
 2675   struct rcu_head rcu ;
 2676   struct pipe_inode_info *splice_pipe ;
 2677   struct task_delay_info *delays ;
 2678   int make_it_fail ;
 2679   int nr_dirtied ;
 2680   int nr_dirtied_pause ;
 2681   unsigned long dirty_paused_when ;
 2682   int latency_record_count ;
 2683   struct latency_record latency_record[32U] ;
 2684   unsigned long timer_slack_ns ;
 2685   unsigned long default_timer_slack_ns ;
 2686   struct list_head *scm_work_list ;
 2687   unsigned long trace ;
 2688   unsigned long trace_recursion ;
 2689   struct memcg_batch_info memcg_batch ;
 2690   atomic_t ptrace_bp_refcnt ;
 2691};
 2692#line 413 "include/linux/ptrace.h"
 2693struct block_device;
 2694#line 413
 2695struct block_device;
 2696#line 93 "include/linux/bit_spinlock.h"
 2697struct hlist_bl_node;
 2698#line 93 "include/linux/bit_spinlock.h"
 2699struct hlist_bl_head {
 2700   struct hlist_bl_node *first ;
 2701};
 2702#line 36 "include/linux/list_bl.h"
 2703struct hlist_bl_node {
 2704   struct hlist_bl_node *next ;
 2705   struct hlist_bl_node **pprev ;
 2706};
 2707#line 114 "include/linux/rculist_bl.h"
 2708struct nameidata;
 2709#line 114
 2710struct nameidata;
 2711#line 115
 2712struct path;
 2713#line 115
 2714struct path;
 2715#line 116
 2716struct vfsmount;
 2717#line 116
 2718struct vfsmount;
 2719#line 117 "include/linux/rculist_bl.h"
 2720struct qstr {
 2721   unsigned int hash ;
 2722   unsigned int len ;
 2723   unsigned char const   *name ;
 2724};
 2725#line 72 "include/linux/dcache.h"
 2726struct dentry_operations;
 2727#line 72
 2728struct super_block;
 2729#line 72 "include/linux/dcache.h"
 2730union __anonunion_d_u_163 {
 2731   struct list_head d_child ;
 2732   struct rcu_head d_rcu ;
 2733};
 2734#line 72 "include/linux/dcache.h"
 2735struct dentry {
 2736   unsigned int d_flags ;
 2737   seqcount_t d_seq ;
 2738   struct hlist_bl_node d_hash ;
 2739   struct dentry *d_parent ;
 2740   struct qstr d_name ;
 2741   struct inode *d_inode ;
 2742   unsigned char d_iname[32U] ;
 2743   unsigned int d_count ;
 2744   spinlock_t d_lock ;
 2745   struct dentry_operations  const  *d_op ;
 2746   struct super_block *d_sb ;
 2747   unsigned long d_time ;
 2748   void *d_fsdata ;
 2749   struct list_head d_lru ;
 2750   union __anonunion_d_u_163 d_u ;
 2751   struct list_head d_subdirs ;
 2752   struct list_head d_alias ;
 2753};
 2754#line 123 "include/linux/dcache.h"
 2755struct dentry_operations {
 2756   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 2757   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
 2758   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
 2759                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
 2760   int (*d_delete)(struct dentry  const  * ) ;
 2761   void (*d_release)(struct dentry * ) ;
 2762   void (*d_prune)(struct dentry * ) ;
 2763   void (*d_iput)(struct dentry * , struct inode * ) ;
 2764   char *(*d_dname)(struct dentry * , char * , int  ) ;
 2765   struct vfsmount *(*d_automount)(struct path * ) ;
 2766   int (*d_manage)(struct dentry * , bool  ) ;
 2767};
 2768#line 402 "include/linux/dcache.h"
 2769struct path {
 2770   struct vfsmount *mnt ;
 2771   struct dentry *dentry ;
 2772};
 2773#line 58 "include/linux/radix-tree.h"
 2774struct radix_tree_node;
 2775#line 58 "include/linux/radix-tree.h"
 2776struct radix_tree_root {
 2777   unsigned int height ;
 2778   gfp_t gfp_mask ;
 2779   struct radix_tree_node *rnode ;
 2780};
 2781#line 45 "include/linux/semaphore.h"
 2782struct fiemap_extent {
 2783   __u64 fe_logical ;
 2784   __u64 fe_physical ;
 2785   __u64 fe_length ;
 2786   __u64 fe_reserved64[2U] ;
 2787   __u32 fe_flags ;
 2788   __u32 fe_reserved[3U] ;
 2789};
 2790#line 38 "include/linux/fiemap.h"
 2791struct shrink_control {
 2792   gfp_t gfp_mask ;
 2793   unsigned long nr_to_scan ;
 2794};
 2795#line 14 "include/linux/shrinker.h"
 2796struct shrinker {
 2797   int (*shrink)(struct shrinker * , struct shrink_control * ) ;
 2798   int seeks ;
 2799   long batch ;
 2800   struct list_head list ;
 2801   atomic_long_t nr_in_batch ;
 2802};
 2803#line 43
 2804enum migrate_mode {
 2805    MIGRATE_ASYNC = 0,
 2806    MIGRATE_SYNC_LIGHT = 1,
 2807    MIGRATE_SYNC = 2
 2808} ;
 2809#line 49
 2810struct export_operations;
 2811#line 49
 2812struct export_operations;
 2813#line 50
 2814struct poll_table_struct;
 2815#line 50
 2816struct poll_table_struct;
 2817#line 51
 2818struct kstatfs;
 2819#line 51
 2820struct kstatfs;
 2821#line 435 "include/linux/fs.h"
 2822struct iattr {
 2823   unsigned int ia_valid ;
 2824   umode_t ia_mode ;
 2825   uid_t ia_uid ;
 2826   gid_t ia_gid ;
 2827   loff_t ia_size ;
 2828   struct timespec ia_atime ;
 2829   struct timespec ia_mtime ;
 2830   struct timespec ia_ctime ;
 2831   struct file *ia_file ;
 2832};
 2833#line 119 "include/linux/quota.h"
 2834struct if_dqinfo {
 2835   __u64 dqi_bgrace ;
 2836   __u64 dqi_igrace ;
 2837   __u32 dqi_flags ;
 2838   __u32 dqi_valid ;
 2839};
 2840#line 152 "include/linux/quota.h"
 2841struct fs_disk_quota {
 2842   __s8 d_version ;
 2843   __s8 d_flags ;
 2844   __u16 d_fieldmask ;
 2845   __u32 d_id ;
 2846   __u64 d_blk_hardlimit ;
 2847   __u64 d_blk_softlimit ;
 2848   __u64 d_ino_hardlimit ;
 2849   __u64 d_ino_softlimit ;
 2850   __u64 d_bcount ;
 2851   __u64 d_icount ;
 2852   __s32 d_itimer ;
 2853   __s32 d_btimer ;
 2854   __u16 d_iwarns ;
 2855   __u16 d_bwarns ;
 2856   __s32 d_padding2 ;
 2857   __u64 d_rtb_hardlimit ;
 2858   __u64 d_rtb_softlimit ;
 2859   __u64 d_rtbcount ;
 2860   __s32 d_rtbtimer ;
 2861   __u16 d_rtbwarns ;
 2862   __s16 d_padding3 ;
 2863   char d_padding4[8U] ;
 2864};
 2865#line 75 "include/linux/dqblk_xfs.h"
 2866struct fs_qfilestat {
 2867   __u64 qfs_ino ;
 2868   __u64 qfs_nblks ;
 2869   __u32 qfs_nextents ;
 2870};
 2871#line 150 "include/linux/dqblk_xfs.h"
 2872typedef struct fs_qfilestat fs_qfilestat_t;
 2873#line 151 "include/linux/dqblk_xfs.h"
 2874struct fs_quota_stat {
 2875   __s8 qs_version ;
 2876   __u16 qs_flags ;
 2877   __s8 qs_pad ;
 2878   fs_qfilestat_t qs_uquota ;
 2879   fs_qfilestat_t qs_gquota ;
 2880   __u32 qs_incoredqs ;
 2881   __s32 qs_btimelimit ;
 2882   __s32 qs_itimelimit ;
 2883   __s32 qs_rtbtimelimit ;
 2884   __u16 qs_bwarnlimit ;
 2885   __u16 qs_iwarnlimit ;
 2886};
 2887#line 165
 2888struct dquot;
 2889#line 165
 2890struct dquot;
 2891#line 185 "include/linux/quota.h"
 2892typedef __kernel_uid32_t qid_t;
 2893#line 186 "include/linux/quota.h"
 2894typedef long long qsize_t;
 2895#line 189 "include/linux/quota.h"
 2896struct mem_dqblk {
 2897   qsize_t dqb_bhardlimit ;
 2898   qsize_t dqb_bsoftlimit ;
 2899   qsize_t dqb_curspace ;
 2900   qsize_t dqb_rsvspace ;
 2901   qsize_t dqb_ihardlimit ;
 2902   qsize_t dqb_isoftlimit ;
 2903   qsize_t dqb_curinodes ;
 2904   time_t dqb_btime ;
 2905   time_t dqb_itime ;
 2906};
 2907#line 211
 2908struct quota_format_type;
 2909#line 211
 2910struct quota_format_type;
 2911#line 212 "include/linux/quota.h"
 2912struct mem_dqinfo {
 2913   struct quota_format_type *dqi_format ;
 2914   int dqi_fmt_id ;
 2915   struct list_head dqi_dirty_list ;
 2916   unsigned long dqi_flags ;
 2917   unsigned int dqi_bgrace ;
 2918   unsigned int dqi_igrace ;
 2919   qsize_t dqi_maxblimit ;
 2920   qsize_t dqi_maxilimit ;
 2921   void *dqi_priv ;
 2922};
 2923#line 275 "include/linux/quota.h"
 2924struct dquot {
 2925   struct hlist_node dq_hash ;
 2926   struct list_head dq_inuse ;
 2927   struct list_head dq_free ;
 2928   struct list_head dq_dirty ;
 2929   struct mutex dq_lock ;
 2930   atomic_t dq_count ;
 2931   wait_queue_head_t dq_wait_unused ;
 2932   struct super_block *dq_sb ;
 2933   unsigned int dq_id ;
 2934   loff_t dq_off ;
 2935   unsigned long dq_flags ;
 2936   short dq_type ;
 2937   struct mem_dqblk dq_dqb ;
 2938};
 2939#line 303 "include/linux/quota.h"
 2940struct quota_format_ops {
 2941   int (*check_quota_file)(struct super_block * , int  ) ;
 2942   int (*read_file_info)(struct super_block * , int  ) ;
 2943   int (*write_file_info)(struct super_block * , int  ) ;
 2944   int (*free_file_info)(struct super_block * , int  ) ;
 2945   int (*read_dqblk)(struct dquot * ) ;
 2946   int (*commit_dqblk)(struct dquot * ) ;
 2947   int (*release_dqblk)(struct dquot * ) ;
 2948};
 2949#line 314 "include/linux/quota.h"
 2950struct dquot_operations {
 2951   int (*write_dquot)(struct dquot * ) ;
 2952   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
 2953   void (*destroy_dquot)(struct dquot * ) ;
 2954   int (*acquire_dquot)(struct dquot * ) ;
 2955   int (*release_dquot)(struct dquot * ) ;
 2956   int (*mark_dirty)(struct dquot * ) ;
 2957   int (*write_info)(struct super_block * , int  ) ;
 2958   qsize_t *(*get_reserved_space)(struct inode * ) ;
 2959};
 2960#line 328 "include/linux/quota.h"
 2961struct quotactl_ops {
 2962   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
 2963   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
 2964   int (*quota_off)(struct super_block * , int  ) ;
 2965   int (*quota_sync)(struct super_block * , int  , int  ) ;
 2966   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 2967   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 2968   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 2969   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 2970   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
 2971   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
 2972};
 2973#line 344 "include/linux/quota.h"
 2974struct quota_format_type {
 2975   int qf_fmt_id ;
 2976   struct quota_format_ops  const  *qf_ops ;
 2977   struct module *qf_owner ;
 2978   struct quota_format_type *qf_next ;
 2979};
 2980#line 390 "include/linux/quota.h"
 2981struct quota_info {
 2982   unsigned int flags ;
 2983   struct mutex dqio_mutex ;
 2984   struct mutex dqonoff_mutex ;
 2985   struct rw_semaphore dqptr_sem ;
 2986   struct inode *files[2U] ;
 2987   struct mem_dqinfo info[2U] ;
 2988   struct quota_format_ops  const  *ops[2U] ;
 2989};
 2990#line 421
 2991struct writeback_control;
 2992#line 421
 2993struct writeback_control;
 2994#line 585 "include/linux/fs.h"
 2995union __anonunion_arg_165 {
 2996   char *buf ;
 2997   void *data ;
 2998};
 2999#line 585 "include/linux/fs.h"
 3000struct __anonstruct_read_descriptor_t_164 {
 3001   size_t written ;
 3002   size_t count ;
 3003   union __anonunion_arg_165 arg ;
 3004   int error ;
 3005};
 3006#line 585 "include/linux/fs.h"
 3007typedef struct __anonstruct_read_descriptor_t_164 read_descriptor_t;
 3008#line 588 "include/linux/fs.h"
 3009struct address_space_operations {
 3010   int (*writepage)(struct page * , struct writeback_control * ) ;
 3011   int (*readpage)(struct file * , struct page * ) ;
 3012   int (*writepages)(struct address_space * , struct writeback_control * ) ;
 3013   int (*set_page_dirty)(struct page * ) ;
 3014   int (*readpages)(struct file * , struct address_space * , struct list_head * ,
 3015                    unsigned int  ) ;
 3016   int (*write_begin)(struct file * , struct address_space * , loff_t  , unsigned int  ,
 3017                      unsigned int  , struct page ** , void ** ) ;
 3018   int (*write_end)(struct file * , struct address_space * , loff_t  , unsigned int  ,
 3019                    unsigned int  , struct page * , void * ) ;
 3020   sector_t (*bmap)(struct address_space * , sector_t  ) ;
 3021   void (*invalidatepage)(struct page * , unsigned long  ) ;
 3022   int (*releasepage)(struct page * , gfp_t  ) ;
 3023   void (*freepage)(struct page * ) ;
 3024   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  * , loff_t  ,
 3025                        unsigned long  ) ;
 3026   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
 3027   int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode  ) ;
 3028   int (*launder_page)(struct page * ) ;
 3029   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
 3030   int (*error_remove_page)(struct address_space * , struct page * ) ;
 3031};
 3032#line 642 "include/linux/fs.h"
 3033struct address_space {
 3034   struct inode *host ;
 3035   struct radix_tree_root page_tree ;
 3036   spinlock_t tree_lock ;
 3037   unsigned int i_mmap_writable ;
 3038   struct prio_tree_root i_mmap ;
 3039   struct list_head i_mmap_nonlinear ;
 3040   struct mutex i_mmap_mutex ;
 3041   unsigned long nrpages ;
 3042   unsigned long writeback_index ;
 3043   struct address_space_operations  const  *a_ops ;
 3044   unsigned long flags ;
 3045   struct backing_dev_info *backing_dev_info ;
 3046   spinlock_t private_lock ;
 3047   struct list_head private_list ;
 3048   struct address_space *assoc_mapping ;
 3049};
 3050#line 664
 3051struct hd_struct;
 3052#line 664 "include/linux/fs.h"
 3053struct block_device {
 3054   dev_t bd_dev ;
 3055   int bd_openers ;
 3056   struct inode *bd_inode ;
 3057   struct super_block *bd_super ;
 3058   struct mutex bd_mutex ;
 3059   struct list_head bd_inodes ;
 3060   void *bd_claiming ;
 3061   void *bd_holder ;
 3062   int bd_holders ;
 3063   bool bd_write_holder ;
 3064   struct list_head bd_holder_disks ;
 3065   struct block_device *bd_contains ;
 3066   unsigned int bd_block_size ;
 3067   struct hd_struct *bd_part ;
 3068   unsigned int bd_part_count ;
 3069   int bd_invalidated ;
 3070   struct gendisk *bd_disk ;
 3071   struct request_queue *bd_queue ;
 3072   struct list_head bd_list ;
 3073   unsigned long bd_private ;
 3074   int bd_fsfreeze_count ;
 3075   struct mutex bd_fsfreeze_mutex ;
 3076};
 3077#line 737
 3078struct posix_acl;
 3079#line 737
 3080struct posix_acl;
 3081#line 738
 3082struct inode_operations;
 3083#line 738 "include/linux/fs.h"
 3084union __anonunion_ldv_20011_166 {
 3085   unsigned int const   i_nlink ;
 3086   unsigned int __i_nlink ;
 3087};
 3088#line 738 "include/linux/fs.h"
 3089union __anonunion_ldv_20030_167 {
 3090   struct list_head i_dentry ;
 3091   struct rcu_head i_rcu ;
 3092};
 3093#line 738
 3094struct file_operations;
 3095#line 738
 3096struct file_lock;
 3097#line 738
 3098struct cdev;
 3099#line 738 "include/linux/fs.h"
 3100union __anonunion_ldv_20048_168 {
 3101   struct pipe_inode_info *i_pipe ;
 3102   struct block_device *i_bdev ;
 3103   struct cdev *i_cdev ;
 3104};
 3105#line 738 "include/linux/fs.h"
 3106struct inode {
 3107   umode_t i_mode ;
 3108   unsigned short i_opflags ;
 3109   uid_t i_uid ;
 3110   gid_t i_gid ;
 3111   unsigned int i_flags ;
 3112   struct posix_acl *i_acl ;
 3113   struct posix_acl *i_default_acl ;
 3114   struct inode_operations  const  *i_op ;
 3115   struct super_block *i_sb ;
 3116   struct address_space *i_mapping ;
 3117   void *i_security ;
 3118   unsigned long i_ino ;
 3119   union __anonunion_ldv_20011_166 ldv_20011 ;
 3120   dev_t i_rdev ;
 3121   struct timespec i_atime ;
 3122   struct timespec i_mtime ;
 3123   struct timespec i_ctime ;
 3124   spinlock_t i_lock ;
 3125   unsigned short i_bytes ;
 3126   blkcnt_t i_blocks ;
 3127   loff_t i_size ;
 3128   unsigned long i_state ;
 3129   struct mutex i_mutex ;
 3130   unsigned long dirtied_when ;
 3131   struct hlist_node i_hash ;
 3132   struct list_head i_wb_list ;
 3133   struct list_head i_lru ;
 3134   struct list_head i_sb_list ;
 3135   union __anonunion_ldv_20030_167 ldv_20030 ;
 3136   atomic_t i_count ;
 3137   unsigned int i_blkbits ;
 3138   u64 i_version ;
 3139   atomic_t i_dio_count ;
 3140   atomic_t i_writecount ;
 3141   struct file_operations  const  *i_fop ;
 3142   struct file_lock *i_flock ;
 3143   struct address_space i_data ;
 3144   struct dquot *i_dquot[2U] ;
 3145   struct list_head i_devices ;
 3146   union __anonunion_ldv_20048_168 ldv_20048 ;
 3147   __u32 i_generation ;
 3148   __u32 i_fsnotify_mask ;
 3149   struct hlist_head i_fsnotify_marks ;
 3150   atomic_t i_readcount ;
 3151   void *i_private ;
 3152};
 3153#line 941 "include/linux/fs.h"
 3154struct fown_struct {
 3155   rwlock_t lock ;
 3156   struct pid *pid ;
 3157   enum pid_type pid_type ;
 3158   uid_t uid ;
 3159   uid_t euid ;
 3160   int signum ;
 3161};
 3162#line 949 "include/linux/fs.h"
 3163struct file_ra_state {
 3164   unsigned long start ;
 3165   unsigned int size ;
 3166   unsigned int async_size ;
 3167   unsigned int ra_pages ;
 3168   unsigned int mmap_miss ;
 3169   loff_t prev_pos ;
 3170};
 3171#line 972 "include/linux/fs.h"
 3172union __anonunion_f_u_169 {
 3173   struct list_head fu_list ;
 3174   struct rcu_head fu_rcuhead ;
 3175};
 3176#line 972 "include/linux/fs.h"
 3177struct file {
 3178   union __anonunion_f_u_169 f_u ;
 3179   struct path f_path ;
 3180   struct file_operations  const  *f_op ;
 3181   spinlock_t f_lock ;
 3182   int f_sb_list_cpu ;
 3183   atomic_long_t f_count ;
 3184   unsigned int f_flags ;
 3185   fmode_t f_mode ;
 3186   loff_t f_pos ;
 3187   struct fown_struct f_owner ;
 3188   struct cred  const  *f_cred ;
 3189   struct file_ra_state f_ra ;
 3190   u64 f_version ;
 3191   void *f_security ;
 3192   void *private_data ;
 3193   struct list_head f_ep_links ;
 3194   struct list_head f_tfile_llink ;
 3195   struct address_space *f_mapping ;
 3196   unsigned long f_mnt_write_state ;
 3197};
 3198#line 1111 "include/linux/fs.h"
 3199typedef struct files_struct *fl_owner_t;
 3200#line 1112 "include/linux/fs.h"
 3201struct file_lock_operations {
 3202   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
 3203   void (*fl_release_private)(struct file_lock * ) ;
 3204};
 3205#line 1117 "include/linux/fs.h"
 3206struct lock_manager_operations {
 3207   int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ;
 3208   void (*lm_notify)(struct file_lock * ) ;
 3209   int (*lm_grant)(struct file_lock * , struct file_lock * , int  ) ;
 3210   void (*lm_release_private)(struct file_lock * ) ;
 3211   void (*lm_break)(struct file_lock * ) ;
 3212   int (*lm_change)(struct file_lock ** , int  ) ;
 3213};
 3214#line 1134
 3215struct nlm_lockowner;
 3216#line 1134
 3217struct nlm_lockowner;
 3218#line 1135 "include/linux/fs.h"
 3219struct nfs_lock_info {
 3220   u32 state ;
 3221   struct nlm_lockowner *owner ;
 3222   struct list_head list ;
 3223};
 3224#line 14 "include/linux/nfs_fs_i.h"
 3225struct nfs4_lock_state;
 3226#line 14
 3227struct nfs4_lock_state;
 3228#line 15 "include/linux/nfs_fs_i.h"
 3229struct nfs4_lock_info {
 3230   struct nfs4_lock_state *owner ;
 3231};
 3232#line 19
 3233struct fasync_struct;
 3234#line 19 "include/linux/nfs_fs_i.h"
 3235struct __anonstruct_afs_171 {
 3236   struct list_head link ;
 3237   int state ;
 3238};
 3239#line 19 "include/linux/nfs_fs_i.h"
 3240union __anonunion_fl_u_170 {
 3241   struct nfs_lock_info nfs_fl ;
 3242   struct nfs4_lock_info nfs4_fl ;
 3243   struct __anonstruct_afs_171 afs ;
 3244};
 3245#line 19 "include/linux/nfs_fs_i.h"
 3246struct file_lock {
 3247   struct file_lock *fl_next ;
 3248   struct list_head fl_link ;
 3249   struct list_head fl_block ;
 3250   fl_owner_t fl_owner ;
 3251   unsigned int fl_flags ;
 3252   unsigned char fl_type ;
 3253   unsigned int fl_pid ;
 3254   struct pid *fl_nspid ;
 3255   wait_queue_head_t fl_wait ;
 3256   struct file *fl_file ;
 3257   loff_t fl_start ;
 3258   loff_t fl_end ;
 3259   struct fasync_struct *fl_fasync ;
 3260   unsigned long fl_break_time ;
 3261   unsigned long fl_downgrade_time ;
 3262   struct file_lock_operations  const  *fl_ops ;
 3263   struct lock_manager_operations  const  *fl_lmops ;
 3264   union __anonunion_fl_u_170 fl_u ;
 3265};
 3266#line 1221 "include/linux/fs.h"
 3267struct fasync_struct {
 3268   spinlock_t fa_lock ;
 3269   int magic ;
 3270   int fa_fd ;
 3271   struct fasync_struct *fa_next ;
 3272   struct file *fa_file ;
 3273   struct rcu_head fa_rcu ;
 3274};
 3275#line 1417
 3276struct file_system_type;
 3277#line 1417
 3278struct super_operations;
 3279#line 1417
 3280struct xattr_handler;
 3281#line 1417 "include/linux/fs.h"
 3282struct super_block {
 3283   struct list_head s_list ;
 3284   dev_t s_dev ;
 3285   unsigned char s_dirt ;
 3286   unsigned char s_blocksize_bits ;
 3287   unsigned long s_blocksize ;
 3288   loff_t s_maxbytes ;
 3289   struct file_system_type *s_type ;
 3290   struct super_operations  const  *s_op ;
 3291   struct dquot_operations  const  *dq_op ;
 3292   struct quotactl_ops  const  *s_qcop ;
 3293   struct export_operations  const  *s_export_op ;
 3294   unsigned long s_flags ;
 3295   unsigned long s_magic ;
 3296   struct dentry *s_root ;
 3297   struct rw_semaphore s_umount ;
 3298   struct mutex s_lock ;
 3299   int s_count ;
 3300   atomic_t s_active ;
 3301   void *s_security ;
 3302   struct xattr_handler  const  **s_xattr ;
 3303   struct list_head s_inodes ;
 3304   struct hlist_bl_head s_anon ;
 3305   struct list_head *s_files ;
 3306   struct list_head s_mounts ;
 3307   struct list_head s_dentry_lru ;
 3308   int s_nr_dentry_unused ;
 3309   spinlock_t s_inode_lru_lock ;
 3310   struct list_head s_inode_lru ;
 3311   int s_nr_inodes_unused ;
 3312   struct block_device *s_bdev ;
 3313   struct backing_dev_info *s_bdi ;
 3314   struct mtd_info *s_mtd ;
 3315   struct hlist_node s_instances ;
 3316   struct quota_info s_dquot ;
 3317   int s_frozen ;
 3318   wait_queue_head_t s_wait_unfrozen ;
 3319   char s_id[32U] ;
 3320   u8 s_uuid[16U] ;
 3321   void *s_fs_info ;
 3322   unsigned int s_max_links ;
 3323   fmode_t s_mode ;
 3324   u32 s_time_gran ;
 3325   struct mutex s_vfs_rename_mutex ;
 3326   char *s_subtype ;
 3327   char *s_options ;
 3328   struct dentry_operations  const  *s_d_op ;
 3329   int cleancache_poolid ;
 3330   struct shrinker s_shrink ;
 3331   atomic_long_t s_remove_count ;
 3332   int s_readonly_remount ;
 3333};
 3334#line 1563 "include/linux/fs.h"
 3335struct fiemap_extent_info {
 3336   unsigned int fi_flags ;
 3337   unsigned int fi_extents_mapped ;
 3338   unsigned int fi_extents_max ;
 3339   struct fiemap_extent *fi_extents_start ;
 3340};
 3341#line 1602 "include/linux/fs.h"
 3342struct file_operations {
 3343   struct module *owner ;
 3344   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
 3345   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
 3346   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
 3347   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 3348                       loff_t  ) ;
 3349   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 3350                        loff_t  ) ;
 3351   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
 3352                                                   loff_t  , u64  , unsigned int  ) ) ;
 3353   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
 3354   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 3355   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 3356   int (*mmap)(struct file * , struct vm_area_struct * ) ;
 3357   int (*open)(struct inode * , struct file * ) ;
 3358   int (*flush)(struct file * , fl_owner_t  ) ;
 3359   int (*release)(struct inode * , struct file * ) ;
 3360   int (*fsync)(struct file * , loff_t  , loff_t  , int  ) ;
 3361   int (*aio_fsync)(struct kiocb * , int  ) ;
 3362   int (*fasync)(int  , struct file * , int  ) ;
 3363   int (*lock)(struct file * , int  , struct file_lock * ) ;
 3364   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
 3365                       int  ) ;
 3366   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 3367                                      unsigned long  , unsigned long  ) ;
 3368   int (*check_flags)(int  ) ;
 3369   int (*flock)(struct file * , int  , struct file_lock * ) ;
 3370   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
 3371                           unsigned int  ) ;
 3372   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
 3373                          unsigned int  ) ;
 3374   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
 3375   long (*fallocate)(struct file * , int  , loff_t  , loff_t  ) ;
 3376};
 3377#line 1637 "include/linux/fs.h"
 3378struct inode_operations {
 3379   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
 3380   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
 3381   int (*permission)(struct inode * , int  ) ;
 3382   struct posix_acl *(*get_acl)(struct inode * , int  ) ;
 3383   int (*readlink)(struct dentry * , char * , int  ) ;
 3384   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
 3385   int (*create)(struct inode * , struct dentry * , umode_t  , struct nameidata * ) ;
 3386   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
 3387   int (*unlink)(struct inode * , struct dentry * ) ;
 3388   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
 3389   int (*mkdir)(struct inode * , struct dentry * , umode_t  ) ;
 3390   int (*rmdir)(struct inode * , struct dentry * ) ;
 3391   int (*mknod)(struct inode * , struct dentry * , umode_t  , dev_t  ) ;
 3392   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
 3393   void (*truncate)(struct inode * ) ;
 3394   int (*setattr)(struct dentry * , struct iattr * ) ;
 3395   int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
 3396   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
 3397   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
 3398   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
 3399   int (*removexattr)(struct dentry * , char const   * ) ;
 3400   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
 3401   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64  , u64  ) ;
 3402};
 3403#line 1682 "include/linux/fs.h"
 3404struct super_operations {
 3405   struct inode *(*alloc_inode)(struct super_block * ) ;
 3406   void (*destroy_inode)(struct inode * ) ;
 3407   void (*dirty_inode)(struct inode * , int  ) ;
 3408   int (*write_inode)(struct inode * , struct writeback_control * ) ;
 3409   int (*drop_inode)(struct inode * ) ;
 3410   void (*evict_inode)(struct inode * ) ;
 3411   void (*put_super)(struct super_block * ) ;
 3412   void (*write_super)(struct super_block * ) ;
 3413   int (*sync_fs)(struct super_block * , int  ) ;
 3414   int (*freeze_fs)(struct super_block * ) ;
 3415   int (*unfreeze_fs)(struct super_block * ) ;
 3416   int (*statfs)(struct dentry * , struct kstatfs * ) ;
 3417   int (*remount_fs)(struct super_block * , int * , char * ) ;
 3418   void (*umount_begin)(struct super_block * ) ;
 3419   int (*show_options)(struct seq_file * , struct dentry * ) ;
 3420   int (*show_devname)(struct seq_file * , struct dentry * ) ;
 3421   int (*show_path)(struct seq_file * , struct dentry * ) ;
 3422   int (*show_stats)(struct seq_file * , struct dentry * ) ;
 3423   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
 3424   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
 3425                          loff_t  ) ;
 3426   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
 3427   int (*nr_cached_objects)(struct super_block * ) ;
 3428   void (*free_cached_objects)(struct super_block * , int  ) ;
 3429};
 3430#line 1834 "include/linux/fs.h"
 3431struct file_system_type {
 3432   char const   *name ;
 3433   int fs_flags ;
 3434   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
 3435   void (*kill_sb)(struct super_block * ) ;
 3436   struct module *owner ;
 3437   struct file_system_type *next ;
 3438   struct hlist_head fs_supers ;
 3439   struct lock_class_key s_lock_key ;
 3440   struct lock_class_key s_umount_key ;
 3441   struct lock_class_key s_vfs_rename_key ;
 3442   struct lock_class_key i_lock_key ;
 3443   struct lock_class_key i_mutex_key ;
 3444   struct lock_class_key i_mutex_dir_key ;
 3445};
 3446#line 82 "include/linux/hdreg.h"
 3447struct hd_geometry {
 3448   unsigned char heads ;
 3449   unsigned char sectors ;
 3450   unsigned short cylinders ;
 3451   unsigned long start ;
 3452};
 3453#line 57 "include/linux/blkpg.h"
 3454struct exception_table_entry {
 3455   unsigned long insn ;
 3456   unsigned long fixup ;
 3457};
 3458#line 248 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 3459struct erase_unit_header_t {
 3460   uint8_t LinkTargetTuple[5U] ;
 3461   uint8_t DataOrgTuple[10U] ;
 3462   uint8_t NumTransferUnits ;
 3463   uint32_t EraseCount ;
 3464   uint16_t LogicalEUN ;
 3465   uint8_t BlockSize ;
 3466   uint8_t EraseUnitSize ;
 3467   uint16_t FirstPhysicalEUN ;
 3468   uint16_t NumEraseUnits ;
 3469   uint32_t FormattedSize ;
 3470   uint32_t FirstVMAddress ;
 3471   uint16_t NumVMPages ;
 3472   uint8_t Flags ;
 3473   uint8_t Code ;
 3474   uint32_t SerialNumber ;
 3475   uint32_t AltEUHOffset ;
 3476   uint32_t BAMOffset ;
 3477   uint8_t Reserved[12U] ;
 3478   uint8_t EndTuple[2U] ;
 3479};
 3480#line 54 "include/linux/mtd/ftl.h"
 3481typedef struct erase_unit_header_t erase_unit_header_t;
 3482#line 97 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3483struct eun_info_t {
 3484   uint32_t Offset ;
 3485   uint32_t EraseCount ;
 3486   uint32_t Free ;
 3487   uint32_t Deleted ;
 3488};
 3489#line 137 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3490struct xfer_info_t {
 3491   uint32_t Offset ;
 3492   uint32_t EraseCount ;
 3493   uint16_t state ;
 3494};
 3495#line 142 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3496struct partition_t {
 3497   struct mtd_blktrans_dev mbd ;
 3498   uint32_t state ;
 3499   uint32_t *VirtualBlockMap ;
 3500   uint32_t *VirtualPageMap ;
 3501   uint32_t FreeTotal ;
 3502   struct eun_info_t *EUNInfo ;
 3503   struct xfer_info_t *XferInfo ;
 3504   uint16_t bam_index ;
 3505   uint32_t *bam_cache ;
 3506   uint16_t DataUnits ;
 3507   uint32_t BlocksPerUnit ;
 3508   erase_unit_header_t header ;
 3509};
 3510#line 147 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3511typedef struct partition_t partition_t;
 3512#line 1 "<compiler builtins>"
 3513long __builtin_expect(long  , long  ) ;
 3514#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3515void ldv_spin_lock(void) ;
 3516#line 3
 3517void ldv_spin_unlock(void) ;
 3518#line 4
 3519int ldv_spin_trylock(void) ;
 3520#line 101 "include/linux/printk.h"
 3521extern int printk(char const   *  , ...) ;
 3522#line 45 "include/linux/dynamic_debug.h"
 3523extern int __dynamic_pr_debug(struct _ddebug * , char const   *  , ...) ;
 3524#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/string_64.h"
 3525extern void *memset(void * , int  , size_t  ) ;
 3526#line 64
 3527extern int strcmp(char const   * , char const   * ) ;
 3528#line 82 "include/linux/jiffies.h"
 3529extern unsigned long volatile   jiffies ;
 3530#line 54 "include/linux/vmalloc.h"
 3531extern void *vmalloc(unsigned long  ) ;
 3532#line 57
 3533void *ldv_vmalloc_19(unsigned long ldv_func_arg1 ) ;
 3534#line 70
 3535extern void vfree(void const   * ) ;
 3536#line 26 "include/linux/export.h"
 3537extern struct module __this_module ;
 3538#line 161 "include/linux/slab.h"
 3539extern void kfree(void const   * ) ;
 3540#line 220 "include/linux/slub_def.h"
 3541extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
 3542#line 223
 3543void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
 3544#line 225
 3545extern void *__kmalloc(size_t  , gfp_t  ) ;
 3546#line 268 "include/linux/slub_def.h"
 3547__inline static void *ldv_kmalloc_12(size_t size , gfp_t flags ) 
 3548{ void *tmp___2 ;
 3549
 3550  {
 3551  {
 3552#line 283
 3553  tmp___2 = __kmalloc(size, flags);
 3554  }
 3555#line 283
 3556  return (tmp___2);
 3557}
 3558}
 3559#line 268
 3560__inline static void *kmalloc(size_t size , gfp_t flags ) ;
 3561#line 353 "include/linux/slab.h"
 3562__inline static void *kzalloc(size_t size , gfp_t flags ) ;
 3563#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3564extern void *__VERIFIER_nondet_pointer(void) ;
 3565#line 11
 3566void ldv_check_alloc_flags(gfp_t flags ) ;
 3567#line 12
 3568void ldv_check_alloc_nonatomic(void) ;
 3569#line 14
 3570struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
 3571#line 87 "include/linux/mtd/blktrans.h"
 3572extern int register_mtd_blktrans(struct mtd_blktrans_ops * ) ;
 3573#line 88
 3574extern int deregister_mtd_blktrans(struct mtd_blktrans_ops * ) ;
 3575#line 89
 3576extern int add_mtd_blktrans_dev(struct mtd_blktrans_dev * ) ;
 3577#line 90
 3578extern int del_mtd_blktrans_dev(struct mtd_blktrans_dev * ) ;
 3579#line 246 "include/linux/mtd/mtd.h"
 3580extern int mtd_erase(struct mtd_info * , struct erase_info * ) ;
 3581#line 252
 3582extern int mtd_read(struct mtd_info * , loff_t  , size_t  , size_t * , u_char * ) ;
 3583#line 254
 3584extern int mtd_write(struct mtd_info * , loff_t  , size_t  , size_t * , u_char const   * ) ;
 3585#line 294 "include/linux/mtd/mtd.h"
 3586__inline static void mtd_sync(struct mtd_info *mtd ) 
 3587{ void (*__cil_tmp2)(struct mtd_info * ) ;
 3588  unsigned long __cil_tmp3 ;
 3589  unsigned long __cil_tmp4 ;
 3590  unsigned long __cil_tmp5 ;
 3591  void (*__cil_tmp6)(struct mtd_info * ) ;
 3592  unsigned long __cil_tmp7 ;
 3593  unsigned long __cil_tmp8 ;
 3594  unsigned long __cil_tmp9 ;
 3595  void (*__cil_tmp10)(struct mtd_info * ) ;
 3596
 3597  {
 3598  {
 3599#line 296
 3600  __cil_tmp2 = (void (*)(struct mtd_info * ))0;
 3601#line 296
 3602  __cil_tmp3 = (unsigned long )__cil_tmp2;
 3603#line 296
 3604  __cil_tmp4 = (unsigned long )mtd;
 3605#line 296
 3606  __cil_tmp5 = __cil_tmp4 + 224;
 3607#line 296
 3608  __cil_tmp6 = *((void (**)(struct mtd_info * ))__cil_tmp5);
 3609#line 296
 3610  __cil_tmp7 = (unsigned long )__cil_tmp6;
 3611#line 296
 3612  if (__cil_tmp7 != __cil_tmp3) {
 3613    {
 3614#line 297
 3615    __cil_tmp8 = (unsigned long )mtd;
 3616#line 297
 3617    __cil_tmp9 = __cil_tmp8 + 224;
 3618#line 297
 3619    __cil_tmp10 = *((void (**)(struct mtd_info * ))__cil_tmp9);
 3620#line 297
 3621    (*__cil_tmp10)(mtd);
 3622    }
 3623  } else {
 3624
 3625  }
 3626  }
 3627#line 298
 3628  return;
 3629}
 3630}
 3631#line 95 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3632static int shuffle_freq  =    50;
 3633#line 162
 3634static void ftl_erase_callback(struct erase_info *erase ) ;
 3635#line 173 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 3636static int scan_header(partition_t *part ) 
 3637{ erase_unit_header_t header ;
 3638  loff_t offset ;
 3639  loff_t max_offset ;
 3640  size_t ret ;
 3641  int err ;
 3642  unsigned long long tmp ;
 3643  int tmp___0 ;
 3644  loff_t tmp___1 ;
 3645  unsigned long __cil_tmp10 ;
 3646  unsigned long __cil_tmp11 ;
 3647  unsigned long __cil_tmp12 ;
 3648  unsigned long __cil_tmp13 ;
 3649  unsigned long __cil_tmp14 ;
 3650  unsigned long __cil_tmp15 ;
 3651  struct mtd_info *__cil_tmp16 ;
 3652  unsigned long __cil_tmp17 ;
 3653  unsigned long __cil_tmp18 ;
 3654  uint64_t __cil_tmp19 ;
 3655  unsigned long __cil_tmp20 ;
 3656  unsigned long __cil_tmp21 ;
 3657  unsigned long __cil_tmp22 ;
 3658  struct mtd_info *__cil_tmp23 ;
 3659  unsigned long __cil_tmp24 ;
 3660  unsigned long __cil_tmp25 ;
 3661  unsigned long __cil_tmp26 ;
 3662  unsigned long __cil_tmp27 ;
 3663  unsigned long __cil_tmp28 ;
 3664  struct mtd_info *__cil_tmp29 ;
 3665  u_char *__cil_tmp30 ;
 3666  unsigned long __cil_tmp31 ;
 3667  uint8_t (*__cil_tmp32)[10U] ;
 3668  char const   *__cil_tmp33 ;
 3669  char const   *__cil_tmp34 ;
 3670  unsigned long __cil_tmp35 ;
 3671  unsigned long __cil_tmp36 ;
 3672  unsigned long __cil_tmp37 ;
 3673  struct mtd_info *__cil_tmp38 ;
 3674  unsigned long __cil_tmp39 ;
 3675  unsigned long __cil_tmp40 ;
 3676  uint32_t __cil_tmp41 ;
 3677  unsigned long __cil_tmp42 ;
 3678  unsigned long __cil_tmp43 ;
 3679  unsigned long __cil_tmp44 ;
 3680  struct mtd_info *__cil_tmp45 ;
 3681  unsigned long __cil_tmp46 ;
 3682  unsigned long __cil_tmp47 ;
 3683  uint32_t __cil_tmp48 ;
 3684  unsigned long long __cil_tmp49 ;
 3685  unsigned long long __cil_tmp50 ;
 3686  unsigned long long __cil_tmp51 ;
 3687  unsigned long __cil_tmp52 ;
 3688  uint8_t __cil_tmp53 ;
 3689  unsigned int __cil_tmp54 ;
 3690  unsigned long __cil_tmp55 ;
 3691  uint8_t __cil_tmp56 ;
 3692  unsigned int __cil_tmp57 ;
 3693  unsigned long __cil_tmp58 ;
 3694  uint8_t __cil_tmp59 ;
 3695  unsigned int __cil_tmp60 ;
 3696  unsigned long __cil_tmp61 ;
 3697  uint16_t __cil_tmp62 ;
 3698  int __cil_tmp63 ;
 3699  unsigned long __cil_tmp64 ;
 3700  uint8_t __cil_tmp65 ;
 3701  unsigned short __cil_tmp66 ;
 3702  int __cil_tmp67 ;
 3703  unsigned long __cil_tmp68 ;
 3704  unsigned long __cil_tmp69 ;
 3705  unsigned long __cil_tmp70 ;
 3706  struct mtd_info *__cil_tmp71 ;
 3707  unsigned long __cil_tmp72 ;
 3708  unsigned long __cil_tmp73 ;
 3709  uint32_t __cil_tmp74 ;
 3710  unsigned long __cil_tmp75 ;
 3711  uint8_t __cil_tmp76 ;
 3712  int __cil_tmp77 ;
 3713  int __cil_tmp78 ;
 3714  uint32_t __cil_tmp79 ;
 3715  unsigned long __cil_tmp80 ;
 3716  uint8_t __cil_tmp81 ;
 3717  int __cil_tmp82 ;
 3718  int __cil_tmp83 ;
 3719  unsigned long __cil_tmp84 ;
 3720  unsigned long __cil_tmp85 ;
 3721  unsigned long __cil_tmp86 ;
 3722  struct mtd_info *__cil_tmp87 ;
 3723  unsigned long __cil_tmp88 ;
 3724  unsigned long __cil_tmp89 ;
 3725  uint32_t __cil_tmp90 ;
 3726  unsigned long __cil_tmp91 ;
 3727  unsigned long __cil_tmp92 ;
 3728  erase_unit_header_t *__cil_tmp93 ;
 3729
 3730  {
 3731#line 179
 3732  __cil_tmp10 = 424 + 28;
 3733#line 179
 3734  __cil_tmp11 = (unsigned long )part;
 3735#line 179
 3736  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 3737#line 179
 3738  *((uint32_t *)__cil_tmp12) = 0U;
 3739  {
 3740#line 180
 3741  __cil_tmp13 = 0 + 24;
 3742#line 180
 3743  __cil_tmp14 = (unsigned long )part;
 3744#line 180
 3745  __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
 3746#line 180
 3747  __cil_tmp16 = *((struct mtd_info **)__cil_tmp15);
 3748#line 180
 3749  __cil_tmp17 = (unsigned long )__cil_tmp16;
 3750#line 180
 3751  __cil_tmp18 = __cil_tmp17 + 8;
 3752#line 180
 3753  __cil_tmp19 = *((uint64_t *)__cil_tmp18);
 3754#line 180
 3755  if (1048576ULL < __cil_tmp19) {
 3756#line 180
 3757    tmp = 1048576ULL;
 3758  } else {
 3759#line 180
 3760    __cil_tmp20 = 0 + 24;
 3761#line 180
 3762    __cil_tmp21 = (unsigned long )part;
 3763#line 180
 3764    __cil_tmp22 = __cil_tmp21 + __cil_tmp20;
 3765#line 180
 3766    __cil_tmp23 = *((struct mtd_info **)__cil_tmp22);
 3767#line 180
 3768    __cil_tmp24 = (unsigned long )__cil_tmp23;
 3769#line 180
 3770    __cil_tmp25 = __cil_tmp24 + 8;
 3771#line 180
 3772    tmp = *((uint64_t *)__cil_tmp25);
 3773  }
 3774  }
 3775#line 180
 3776  max_offset = (loff_t )tmp;
 3777#line 182
 3778  offset = 0LL;
 3779#line 182
 3780  goto ldv_22220;
 3781  ldv_22219: 
 3782  {
 3783#line 186
 3784  __cil_tmp26 = 0 + 24;
 3785#line 186
 3786  __cil_tmp27 = (unsigned long )part;
 3787#line 186
 3788  __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
 3789#line 186
 3790  __cil_tmp29 = *((struct mtd_info **)__cil_tmp28);
 3791#line 186
 3792  __cil_tmp30 = (u_char *)(& header);
 3793#line 186
 3794  err = mtd_read(__cil_tmp29, offset, 68UL, & ret, __cil_tmp30);
 3795  }
 3796#line 189
 3797  if (err != 0) {
 3798#line 190
 3799    return (err);
 3800  } else {
 3801
 3802  }
 3803  {
 3804#line 192
 3805  __cil_tmp31 = (unsigned long )(& header) + 5;
 3806#line 192
 3807  __cil_tmp32 = (uint8_t (*)[10U])__cil_tmp31;
 3808#line 192
 3809  __cil_tmp33 = (char const   *)__cil_tmp32;
 3810#line 192
 3811  __cil_tmp34 = __cil_tmp33 + 3U;
 3812#line 192
 3813  tmp___0 = strcmp(__cil_tmp34, "FTL100");
 3814  }
 3815#line 192
 3816  if (tmp___0 == 0) {
 3817#line 192
 3818    goto ldv_22218;
 3819  } else {
 3820
 3821  }
 3822  {
 3823#line 184
 3824  __cil_tmp35 = 0 + 24;
 3825#line 184
 3826  __cil_tmp36 = (unsigned long )part;
 3827#line 184
 3828  __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
 3829#line 184
 3830  __cil_tmp38 = *((struct mtd_info **)__cil_tmp37);
 3831#line 184
 3832  __cil_tmp39 = (unsigned long )__cil_tmp38;
 3833#line 184
 3834  __cil_tmp40 = __cil_tmp39 + 16;
 3835#line 184
 3836  __cil_tmp41 = *((uint32_t *)__cil_tmp40);
 3837#line 184
 3838  if (__cil_tmp41 != 0U) {
 3839#line 184
 3840    __cil_tmp42 = 0 + 24;
 3841#line 184
 3842    __cil_tmp43 = (unsigned long )part;
 3843#line 184
 3844    __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
 3845#line 184
 3846    __cil_tmp45 = *((struct mtd_info **)__cil_tmp44);
 3847#line 184
 3848    __cil_tmp46 = (unsigned long )__cil_tmp45;
 3849#line 184
 3850    __cil_tmp47 = __cil_tmp46 + 16;
 3851#line 184
 3852    __cil_tmp48 = *((uint32_t *)__cil_tmp47);
 3853#line 184
 3854    tmp___1 = (loff_t )__cil_tmp48;
 3855  } else {
 3856#line 184
 3857    tmp___1 = 8192LL;
 3858  }
 3859  }
 3860#line 184
 3861  offset = tmp___1 + offset;
 3862  ldv_22220: ;
 3863  {
 3864#line 182
 3865  __cil_tmp49 = (unsigned long long )max_offset;
 3866#line 182
 3867  __cil_tmp50 = (unsigned long long )offset;
 3868#line 182
 3869  __cil_tmp51 = __cil_tmp50 + 68ULL;
 3870#line 182
 3871  if (__cil_tmp51 < __cil_tmp49) {
 3872#line 184
 3873    goto ldv_22219;
 3874  } else {
 3875#line 186
 3876    goto ldv_22218;
 3877  }
 3878  }
 3879  ldv_22218: ;
 3880#line 195
 3881  if (offset == max_offset) {
 3882    {
 3883#line 196
 3884    printk("<5>ftl_cs: FTL header not found.\n");
 3885    }
 3886#line 197
 3887    return (-2);
 3888  } else {
 3889
 3890  }
 3891  {
 3892#line 199
 3893  __cil_tmp52 = (unsigned long )(& header) + 22;
 3894#line 199
 3895  __cil_tmp53 = *((uint8_t *)__cil_tmp52);
 3896#line 199
 3897  __cil_tmp54 = (unsigned int )__cil_tmp53;
 3898#line 199
 3899  if (__cil_tmp54 != 9U) {
 3900    {
 3901#line 202
 3902    printk("<5>ftl_cs: FTL header corrupt!\n");
 3903    }
 3904#line 203
 3905    return (-1);
 3906  } else {
 3907    {
 3908#line 199
 3909    __cil_tmp55 = (unsigned long )(& header) + 23;
 3910#line 199
 3911    __cil_tmp56 = *((uint8_t *)__cil_tmp55);
 3912#line 199
 3913    __cil_tmp57 = (unsigned int )__cil_tmp56;
 3914#line 199
 3915    if (__cil_tmp57 <= 9U) {
 3916      {
 3917#line 202
 3918      printk("<5>ftl_cs: FTL header corrupt!\n");
 3919      }
 3920#line 203
 3921      return (-1);
 3922    } else {
 3923      {
 3924#line 199
 3925      __cil_tmp58 = (unsigned long )(& header) + 23;
 3926#line 199
 3927      __cil_tmp59 = *((uint8_t *)__cil_tmp58);
 3928#line 199
 3929      __cil_tmp60 = (unsigned int )__cil_tmp59;
 3930#line 199
 3931      if (__cil_tmp60 > 31U) {
 3932        {
 3933#line 202
 3934        printk("<5>ftl_cs: FTL header corrupt!\n");
 3935        }
 3936#line 203
 3937        return (-1);
 3938      } else {
 3939        {
 3940#line 199
 3941        __cil_tmp61 = (unsigned long )(& header) + 26;
 3942#line 199
 3943        __cil_tmp62 = *((uint16_t *)__cil_tmp61);
 3944#line 199
 3945        __cil_tmp63 = (int )__cil_tmp62;
 3946#line 199
 3947        __cil_tmp64 = (unsigned long )(& header) + 15;
 3948#line 199
 3949        __cil_tmp65 = *((uint8_t *)__cil_tmp64);
 3950#line 199
 3951        __cil_tmp66 = (unsigned short )__cil_tmp65;
 3952#line 199
 3953        __cil_tmp67 = (int )__cil_tmp66;
 3954#line 199
 3955        if (__cil_tmp67 >= __cil_tmp63) {
 3956          {
 3957#line 202
 3958          printk("<5>ftl_cs: FTL header corrupt!\n");
 3959          }
 3960#line 203
 3961          return (-1);
 3962        } else {
 3963
 3964        }
 3965        }
 3966      }
 3967      }
 3968    }
 3969    }
 3970  }
 3971  }
 3972  {
 3973#line 205
 3974  __cil_tmp68 = 0 + 24;
 3975#line 205
 3976  __cil_tmp69 = (unsigned long )part;
 3977#line 205
 3978  __cil_tmp70 = __cil_tmp69 + __cil_tmp68;
 3979#line 205
 3980  __cil_tmp71 = *((struct mtd_info **)__cil_tmp70);
 3981#line 205
 3982  __cil_tmp72 = (unsigned long )__cil_tmp71;
 3983#line 205
 3984  __cil_tmp73 = __cil_tmp72 + 16;
 3985#line 205
 3986  __cil_tmp74 = *((uint32_t *)__cil_tmp73);
 3987#line 205
 3988  __cil_tmp75 = (unsigned long )(& header) + 23;
 3989#line 205
 3990  __cil_tmp76 = *((uint8_t *)__cil_tmp75);
 3991#line 205
 3992  __cil_tmp77 = (int )__cil_tmp76;
 3993#line 205
 3994  __cil_tmp78 = 1 << __cil_tmp77;
 3995#line 205
 3996  __cil_tmp79 = (uint32_t )__cil_tmp78;
 3997#line 205
 3998  if (__cil_tmp79 != __cil_tmp74) {
 3999    {
 4000#line 206
 4001    __cil_tmp80 = (unsigned long )(& header) + 23;
 4002#line 206
 4003    __cil_tmp81 = *((uint8_t *)__cil_tmp80);
 4004#line 206
 4005    __cil_tmp82 = (int )__cil_tmp81;
 4006#line 206
 4007    __cil_tmp83 = 1 << __cil_tmp82;
 4008#line 206
 4009    __cil_tmp84 = 0 + 24;
 4010#line 206
 4011    __cil_tmp85 = (unsigned long )part;
 4012#line 206
 4013    __cil_tmp86 = __cil_tmp85 + __cil_tmp84;
 4014#line 206
 4015    __cil_tmp87 = *((struct mtd_info **)__cil_tmp86);
 4016#line 206
 4017    __cil_tmp88 = (unsigned long )__cil_tmp87;
 4018#line 206
 4019    __cil_tmp89 = __cil_tmp88 + 16;
 4020#line 206
 4021    __cil_tmp90 = *((uint32_t *)__cil_tmp89);
 4022#line 206
 4023    printk("<5>ftl: FTL EraseUnitSize %x != MTD erasesize %x\n", __cil_tmp83, __cil_tmp90);
 4024    }
 4025#line 208
 4026    return (-1);
 4027  } else {
 4028
 4029  }
 4030  }
 4031#line 210
 4032  __cil_tmp91 = (unsigned long )part;
 4033#line 210
 4034  __cil_tmp92 = __cil_tmp91 + 424;
 4035#line 210
 4036  __cil_tmp93 = & header;
 4037#line 210
 4038  *((erase_unit_header_t *)__cil_tmp92) = *__cil_tmp93;
 4039#line 211
 4040  return (0);
 4041}
 4042}
 4043#line 214 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 4044static int build_maps(partition_t *part ) 
 4045{ erase_unit_header_t header ;
 4046  uint16_t xvalid ;
 4047  uint16_t xtrans ;
 4048  uint16_t i ;
 4049  unsigned int blocks ;
 4050  unsigned int j ;
 4051  int hdr_ok ;
 4052  int ret ;
 4053  ssize_t retval ;
 4054  loff_t offset ;
 4055  void *tmp ;
 4056  void *tmp___0 ;
 4057  int tmp___1 ;
 4058  void *tmp___2 ;
 4059  void *tmp___3 ;
 4060  unsigned long __cil_tmp17 ;
 4061  unsigned long __cil_tmp18 ;
 4062  unsigned long __cil_tmp19 ;
 4063  unsigned long __cil_tmp20 ;
 4064  unsigned long __cil_tmp21 ;
 4065  uint8_t __cil_tmp22 ;
 4066  uint16_t __cil_tmp23 ;
 4067  int __cil_tmp24 ;
 4068  unsigned long __cil_tmp25 ;
 4069  unsigned long __cil_tmp26 ;
 4070  unsigned long __cil_tmp27 ;
 4071  uint16_t __cil_tmp28 ;
 4072  int __cil_tmp29 ;
 4073  int __cil_tmp30 ;
 4074  unsigned long __cil_tmp31 ;
 4075  unsigned long __cil_tmp32 ;
 4076  uint16_t __cil_tmp33 ;
 4077  unsigned long __cil_tmp34 ;
 4078  unsigned long __cil_tmp35 ;
 4079  unsigned long __cil_tmp36 ;
 4080  unsigned long __cil_tmp37 ;
 4081  struct eun_info_t *__cil_tmp38 ;
 4082  unsigned long __cil_tmp39 ;
 4083  unsigned long __cil_tmp40 ;
 4084  unsigned long __cil_tmp41 ;
 4085  struct eun_info_t *__cil_tmp42 ;
 4086  unsigned long __cil_tmp43 ;
 4087  unsigned long __cil_tmp44 ;
 4088  unsigned long __cil_tmp45 ;
 4089  unsigned long __cil_tmp46 ;
 4090  struct eun_info_t *__cil_tmp47 ;
 4091  struct eun_info_t *__cil_tmp48 ;
 4092  int __cil_tmp49 ;
 4093  int __cil_tmp50 ;
 4094  int __cil_tmp51 ;
 4095  unsigned long __cil_tmp52 ;
 4096  unsigned long __cil_tmp53 ;
 4097  uint16_t __cil_tmp54 ;
 4098  int __cil_tmp55 ;
 4099  unsigned long __cil_tmp56 ;
 4100  unsigned long __cil_tmp57 ;
 4101  unsigned long __cil_tmp58 ;
 4102  uint8_t __cil_tmp59 ;
 4103  unsigned long __cil_tmp60 ;
 4104  unsigned long __cil_tmp61 ;
 4105  unsigned long __cil_tmp62 ;
 4106  unsigned long __cil_tmp63 ;
 4107  struct xfer_info_t *__cil_tmp64 ;
 4108  unsigned long __cil_tmp65 ;
 4109  unsigned long __cil_tmp66 ;
 4110  unsigned long __cil_tmp67 ;
 4111  struct xfer_info_t *__cil_tmp68 ;
 4112  unsigned long __cil_tmp69 ;
 4113  unsigned long __cil_tmp70 ;
 4114  unsigned long __cil_tmp71 ;
 4115  unsigned long __cil_tmp72 ;
 4116  uint8_t __cil_tmp73 ;
 4117  int __cil_tmp74 ;
 4118  unsigned long __cil_tmp75 ;
 4119  unsigned long __cil_tmp76 ;
 4120  unsigned long __cil_tmp77 ;
 4121  uint16_t __cil_tmp78 ;
 4122  int __cil_tmp79 ;
 4123  int __cil_tmp80 ;
 4124  int __cil_tmp81 ;
 4125  int __cil_tmp82 ;
 4126  unsigned long __cil_tmp83 ;
 4127  unsigned long __cil_tmp84 ;
 4128  unsigned long __cil_tmp85 ;
 4129  struct mtd_info *__cil_tmp86 ;
 4130  size_t *__cil_tmp87 ;
 4131  u_char *__cil_tmp88 ;
 4132  unsigned long __cil_tmp89 ;
 4133  uint8_t (*__cil_tmp90)[10U] ;
 4134  char const   *__cil_tmp91 ;
 4135  char const   *__cil_tmp92 ;
 4136  unsigned long __cil_tmp93 ;
 4137  unsigned long __cil_tmp94 ;
 4138  uint16_t __cil_tmp95 ;
 4139  int __cil_tmp96 ;
 4140  unsigned long __cil_tmp97 ;
 4141  uint16_t __cil_tmp98 ;
 4142  int __cil_tmp99 ;
 4143  unsigned long __cil_tmp100 ;
 4144  uint16_t __cil_tmp101 ;
 4145  unsigned long __cil_tmp102 ;
 4146  unsigned long __cil_tmp103 ;
 4147  unsigned long __cil_tmp104 ;
 4148  struct eun_info_t *__cil_tmp105 ;
 4149  struct eun_info_t *__cil_tmp106 ;
 4150  uint32_t __cil_tmp107 ;
 4151  unsigned long __cil_tmp108 ;
 4152  uint16_t __cil_tmp109 ;
 4153  unsigned long __cil_tmp110 ;
 4154  unsigned long __cil_tmp111 ;
 4155  unsigned long __cil_tmp112 ;
 4156  struct eun_info_t *__cil_tmp113 ;
 4157  struct eun_info_t *__cil_tmp114 ;
 4158  unsigned long __cil_tmp115 ;
 4159  uint16_t __cil_tmp116 ;
 4160  unsigned long __cil_tmp117 ;
 4161  unsigned long __cil_tmp118 ;
 4162  unsigned long __cil_tmp119 ;
 4163  struct eun_info_t *__cil_tmp120 ;
 4164  struct eun_info_t *__cil_tmp121 ;
 4165  unsigned long __cil_tmp122 ;
 4166  unsigned long __cil_tmp123 ;
 4167  unsigned long __cil_tmp124 ;
 4168  int __cil_tmp125 ;
 4169  int __cil_tmp126 ;
 4170  int __cil_tmp127 ;
 4171  unsigned long __cil_tmp128 ;
 4172  unsigned long __cil_tmp129 ;
 4173  unsigned long __cil_tmp130 ;
 4174  uint8_t __cil_tmp131 ;
 4175  unsigned short __cil_tmp132 ;
 4176  int __cil_tmp133 ;
 4177  unsigned long __cil_tmp134 ;
 4178  uint16_t __cil_tmp135 ;
 4179  unsigned int __cil_tmp136 ;
 4180  unsigned long __cil_tmp137 ;
 4181  unsigned long __cil_tmp138 ;
 4182  unsigned long __cil_tmp139 ;
 4183  struct xfer_info_t *__cil_tmp140 ;
 4184  struct xfer_info_t *__cil_tmp141 ;
 4185  unsigned long __cil_tmp142 ;
 4186  unsigned long __cil_tmp143 ;
 4187  unsigned long __cil_tmp144 ;
 4188  unsigned long __cil_tmp145 ;
 4189  unsigned long __cil_tmp146 ;
 4190  struct xfer_info_t *__cil_tmp147 ;
 4191  struct xfer_info_t *__cil_tmp148 ;
 4192  unsigned long __cil_tmp149 ;
 4193  unsigned long __cil_tmp150 ;
 4194  unsigned long __cil_tmp151 ;
 4195  unsigned long __cil_tmp152 ;
 4196  unsigned long __cil_tmp153 ;
 4197  unsigned long __cil_tmp154 ;
 4198  struct xfer_info_t *__cil_tmp155 ;
 4199  struct xfer_info_t *__cil_tmp156 ;
 4200  unsigned long __cil_tmp157 ;
 4201  unsigned long __cil_tmp158 ;
 4202  unsigned long __cil_tmp159 ;
 4203  unsigned long __cil_tmp160 ;
 4204  unsigned long __cil_tmp161 ;
 4205  struct xfer_info_t *__cil_tmp162 ;
 4206  struct xfer_info_t *__cil_tmp163 ;
 4207  unsigned long __cil_tmp164 ;
 4208  unsigned long __cil_tmp165 ;
 4209  unsigned long __cil_tmp166 ;
 4210  unsigned long __cil_tmp167 ;
 4211  unsigned long __cil_tmp168 ;
 4212  unsigned long __cil_tmp169 ;
 4213  unsigned long __cil_tmp170 ;
 4214  unsigned long __cil_tmp171 ;
 4215  struct xfer_info_t *__cil_tmp172 ;
 4216  struct xfer_info_t *__cil_tmp173 ;
 4217  unsigned long __cil_tmp174 ;
 4218  unsigned long __cil_tmp175 ;
 4219  unsigned long __cil_tmp176 ;
 4220  unsigned long __cil_tmp177 ;
 4221  unsigned long __cil_tmp178 ;
 4222  struct xfer_info_t *__cil_tmp179 ;
 4223  struct xfer_info_t *__cil_tmp180 ;
 4224  unsigned long __cil_tmp181 ;
 4225  unsigned long __cil_tmp182 ;
 4226  unsigned long __cil_tmp183 ;
 4227  unsigned long __cil_tmp184 ;
 4228  unsigned long __cil_tmp185 ;
 4229  unsigned long __cil_tmp186 ;
 4230  unsigned long __cil_tmp187 ;
 4231  unsigned long __cil_tmp188 ;
 4232  struct xfer_info_t *__cil_tmp189 ;
 4233  struct xfer_info_t *__cil_tmp190 ;
 4234  int __cil_tmp191 ;
 4235  int __cil_tmp192 ;
 4236  int __cil_tmp193 ;
 4237  int __cil_tmp194 ;
 4238  int __cil_tmp195 ;
 4239  unsigned long __cil_tmp196 ;
 4240  unsigned long __cil_tmp197 ;
 4241  unsigned long __cil_tmp198 ;
 4242  uint16_t __cil_tmp199 ;
 4243  int __cil_tmp200 ;
 4244  erase_unit_header_t *__cil_tmp201 ;
 4245  unsigned long __cil_tmp202 ;
 4246  unsigned long __cil_tmp203 ;
 4247  int __cil_tmp204 ;
 4248  unsigned long __cil_tmp205 ;
 4249  uint8_t __cil_tmp206 ;
 4250  unsigned short __cil_tmp207 ;
 4251  int __cil_tmp208 ;
 4252  unsigned long __cil_tmp209 ;
 4253  uint16_t __cil_tmp210 ;
 4254  int __cil_tmp211 ;
 4255  int __cil_tmp212 ;
 4256  int __cil_tmp213 ;
 4257  int __cil_tmp214 ;
 4258  unsigned long __cil_tmp215 ;
 4259  uint8_t __cil_tmp216 ;
 4260  int __cil_tmp217 ;
 4261  unsigned long __cil_tmp218 ;
 4262  uint32_t __cil_tmp219 ;
 4263  unsigned long __cil_tmp220 ;
 4264  unsigned long __cil_tmp221 ;
 4265  unsigned long __cil_tmp222 ;
 4266  unsigned long __cil_tmp223 ;
 4267  uint32_t *__cil_tmp224 ;
 4268  unsigned long __cil_tmp225 ;
 4269  unsigned long __cil_tmp226 ;
 4270  unsigned long __cil_tmp227 ;
 4271  uint32_t *__cil_tmp228 ;
 4272  unsigned long __cil_tmp229 ;
 4273  unsigned long __cil_tmp230 ;
 4274  unsigned long __cil_tmp231 ;
 4275  uint32_t *__cil_tmp232 ;
 4276  void *__cil_tmp233 ;
 4277  unsigned long __cil_tmp234 ;
 4278  unsigned long __cil_tmp235 ;
 4279  unsigned long __cil_tmp236 ;
 4280  unsigned long __cil_tmp237 ;
 4281  unsigned long __cil_tmp238 ;
 4282  uint8_t __cil_tmp239 ;
 4283  int __cil_tmp240 ;
 4284  unsigned long __cil_tmp241 ;
 4285  uint8_t __cil_tmp242 ;
 4286  int __cil_tmp243 ;
 4287  int __cil_tmp244 ;
 4288  int __cil_tmp245 ;
 4289  unsigned long __cil_tmp246 ;
 4290  unsigned long __cil_tmp247 ;
 4291  uint32_t __cil_tmp248 ;
 4292  unsigned long __cil_tmp249 ;
 4293  unsigned long __cil_tmp250 ;
 4294  unsigned long __cil_tmp251 ;
 4295  unsigned long __cil_tmp252 ;
 4296  uint32_t *__cil_tmp253 ;
 4297  unsigned long __cil_tmp254 ;
 4298  unsigned long __cil_tmp255 ;
 4299  unsigned long __cil_tmp256 ;
 4300  uint32_t *__cil_tmp257 ;
 4301  unsigned long __cil_tmp258 ;
 4302  unsigned long __cil_tmp259 ;
 4303  unsigned long __cil_tmp260 ;
 4304  unsigned long __cil_tmp261 ;
 4305  unsigned long __cil_tmp262 ;
 4306  unsigned long __cil_tmp263 ;
 4307  unsigned long __cil_tmp264 ;
 4308  unsigned long __cil_tmp265 ;
 4309  struct eun_info_t *__cil_tmp266 ;
 4310  struct eun_info_t *__cil_tmp267 ;
 4311  unsigned long __cil_tmp268 ;
 4312  unsigned long __cil_tmp269 ;
 4313  unsigned long __cil_tmp270 ;
 4314  unsigned long __cil_tmp271 ;
 4315  unsigned long __cil_tmp272 ;
 4316  struct eun_info_t *__cil_tmp273 ;
 4317  struct eun_info_t *__cil_tmp274 ;
 4318  unsigned long __cil_tmp275 ;
 4319  unsigned long __cil_tmp276 ;
 4320  unsigned long __cil_tmp277 ;
 4321  uint32_t __cil_tmp278 ;
 4322  unsigned long __cil_tmp279 ;
 4323  unsigned long __cil_tmp280 ;
 4324  unsigned long __cil_tmp281 ;
 4325  struct eun_info_t *__cil_tmp282 ;
 4326  struct eun_info_t *__cil_tmp283 ;
 4327  uint32_t __cil_tmp284 ;
 4328  uint32_t __cil_tmp285 ;
 4329  unsigned long __cil_tmp286 ;
 4330  unsigned long __cil_tmp287 ;
 4331  unsigned long __cil_tmp288 ;
 4332  struct mtd_info *__cil_tmp289 ;
 4333  unsigned long __cil_tmp290 ;
 4334  unsigned long __cil_tmp291 ;
 4335  uint32_t __cil_tmp292 ;
 4336  unsigned long __cil_tmp293 ;
 4337  unsigned long __cil_tmp294 ;
 4338  size_t *__cil_tmp295 ;
 4339  unsigned long __cil_tmp296 ;
 4340  unsigned long __cil_tmp297 ;
 4341  uint32_t *__cil_tmp298 ;
 4342  u_char *__cil_tmp299 ;
 4343  unsigned long __cil_tmp300 ;
 4344  unsigned long __cil_tmp301 ;
 4345  unsigned long __cil_tmp302 ;
 4346  uint32_t *__cil_tmp303 ;
 4347  uint32_t *__cil_tmp304 ;
 4348  uint32_t __cil_tmp305 ;
 4349  unsigned long __cil_tmp306 ;
 4350  unsigned long __cil_tmp307 ;
 4351  unsigned long __cil_tmp308 ;
 4352  struct eun_info_t *__cil_tmp309 ;
 4353  struct eun_info_t *__cil_tmp310 ;
 4354  unsigned long __cil_tmp311 ;
 4355  unsigned long __cil_tmp312 ;
 4356  unsigned long __cil_tmp313 ;
 4357  unsigned long __cil_tmp314 ;
 4358  unsigned long __cil_tmp315 ;
 4359  struct eun_info_t *__cil_tmp316 ;
 4360  struct eun_info_t *__cil_tmp317 ;
 4361  unsigned long __cil_tmp318 ;
 4362  unsigned long __cil_tmp319 ;
 4363  uint32_t __cil_tmp320 ;
 4364  unsigned long __cil_tmp321 ;
 4365  unsigned long __cil_tmp322 ;
 4366  unsigned long __cil_tmp323 ;
 4367  unsigned long __cil_tmp324 ;
 4368  uint32_t __cil_tmp325 ;
 4369  unsigned long __cil_tmp326 ;
 4370  unsigned long __cil_tmp327 ;
 4371  unsigned long __cil_tmp328 ;
 4372  uint32_t *__cil_tmp329 ;
 4373  uint32_t *__cil_tmp330 ;
 4374  uint32_t __cil_tmp331 ;
 4375  unsigned int __cil_tmp332 ;
 4376  unsigned long __cil_tmp333 ;
 4377  unsigned long __cil_tmp334 ;
 4378  unsigned long __cil_tmp335 ;
 4379  uint32_t *__cil_tmp336 ;
 4380  uint32_t *__cil_tmp337 ;
 4381  uint32_t __cil_tmp338 ;
 4382  uint32_t __cil_tmp339 ;
 4383  unsigned long __cil_tmp340 ;
 4384  unsigned long __cil_tmp341 ;
 4385  unsigned long __cil_tmp342 ;
 4386  uint32_t *__cil_tmp343 ;
 4387  uint32_t *__cil_tmp344 ;
 4388  uint32_t __cil_tmp345 ;
 4389  uint32_t __cil_tmp346 ;
 4390  unsigned long __cil_tmp347 ;
 4391  unsigned long __cil_tmp348 ;
 4392  unsigned long __cil_tmp349 ;
 4393  uint32_t *__cil_tmp350 ;
 4394  uint32_t *__cil_tmp351 ;
 4395  unsigned long __cil_tmp352 ;
 4396  uint8_t __cil_tmp353 ;
 4397  int __cil_tmp354 ;
 4398  unsigned int __cil_tmp355 ;
 4399  unsigned long __cil_tmp356 ;
 4400  uint8_t __cil_tmp357 ;
 4401  int __cil_tmp358 ;
 4402  int __cil_tmp359 ;
 4403  int __cil_tmp360 ;
 4404  unsigned int __cil_tmp361 ;
 4405  unsigned long __cil_tmp362 ;
 4406  unsigned long __cil_tmp363 ;
 4407  unsigned long __cil_tmp364 ;
 4408  uint32_t *__cil_tmp365 ;
 4409  uint32_t *__cil_tmp366 ;
 4410  uint32_t __cil_tmp367 ;
 4411  unsigned long __cil_tmp368 ;
 4412  unsigned long __cil_tmp369 ;
 4413  unsigned long __cil_tmp370 ;
 4414  struct eun_info_t *__cil_tmp371 ;
 4415  struct eun_info_t *__cil_tmp372 ;
 4416  unsigned long __cil_tmp373 ;
 4417  unsigned long __cil_tmp374 ;
 4418  unsigned long __cil_tmp375 ;
 4419  unsigned long __cil_tmp376 ;
 4420  unsigned long __cil_tmp377 ;
 4421  struct eun_info_t *__cil_tmp378 ;
 4422  struct eun_info_t *__cil_tmp379 ;
 4423  unsigned long __cil_tmp380 ;
 4424  unsigned long __cil_tmp381 ;
 4425  uint32_t __cil_tmp382 ;
 4426  unsigned long __cil_tmp383 ;
 4427  unsigned long __cil_tmp384 ;
 4428  unsigned long __cil_tmp385 ;
 4429  uint32_t *__cil_tmp386 ;
 4430  uint32_t *__cil_tmp387 ;
 4431  uint32_t __cil_tmp388 ;
 4432  unsigned long __cil_tmp389 ;
 4433  unsigned long __cil_tmp390 ;
 4434  unsigned long __cil_tmp391 ;
 4435  struct eun_info_t *__cil_tmp392 ;
 4436  struct eun_info_t *__cil_tmp393 ;
 4437  unsigned long __cil_tmp394 ;
 4438  unsigned long __cil_tmp395 ;
 4439  unsigned long __cil_tmp396 ;
 4440  unsigned long __cil_tmp397 ;
 4441  unsigned long __cil_tmp398 ;
 4442  struct eun_info_t *__cil_tmp399 ;
 4443  struct eun_info_t *__cil_tmp400 ;
 4444  unsigned long __cil_tmp401 ;
 4445  unsigned long __cil_tmp402 ;
 4446  uint32_t __cil_tmp403 ;
 4447  unsigned long __cil_tmp404 ;
 4448  unsigned long __cil_tmp405 ;
 4449  uint32_t __cil_tmp406 ;
 4450  int __cil_tmp407 ;
 4451  int __cil_tmp408 ;
 4452  int __cil_tmp409 ;
 4453  unsigned long __cil_tmp410 ;
 4454  unsigned long __cil_tmp411 ;
 4455  uint16_t __cil_tmp412 ;
 4456  int __cil_tmp413 ;
 4457  unsigned long __cil_tmp414 ;
 4458  unsigned long __cil_tmp415 ;
 4459  uint32_t *__cil_tmp416 ;
 4460  void const   *__cil_tmp417 ;
 4461  unsigned long __cil_tmp418 ;
 4462  unsigned long __cil_tmp419 ;
 4463  uint32_t *__cil_tmp420 ;
 4464  void const   *__cil_tmp421 ;
 4465  unsigned long __cil_tmp422 ;
 4466  unsigned long __cil_tmp423 ;
 4467  struct xfer_info_t *__cil_tmp424 ;
 4468  void const   *__cil_tmp425 ;
 4469  unsigned long __cil_tmp426 ;
 4470  unsigned long __cil_tmp427 ;
 4471  struct eun_info_t *__cil_tmp428 ;
 4472  void const   *__cil_tmp429 ;
 4473
 4474  {
 4475  {
 4476#line 219
 4477  ret = -1;
 4478#line 224
 4479  __cil_tmp17 = (unsigned long )part;
 4480#line 224
 4481  __cil_tmp18 = __cil_tmp17 + 416;
 4482#line 224
 4483  __cil_tmp19 = 424 + 15;
 4484#line 224
 4485  __cil_tmp20 = (unsigned long )part;
 4486#line 224
 4487  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
 4488#line 224
 4489  __cil_tmp22 = *((uint8_t *)__cil_tmp21);
 4490#line 224
 4491  __cil_tmp23 = (uint16_t )__cil_tmp22;
 4492#line 224
 4493  __cil_tmp24 = (int )__cil_tmp23;
 4494#line 224
 4495  __cil_tmp25 = 424 + 26;
 4496#line 224
 4497  __cil_tmp26 = (unsigned long )part;
 4498#line 224
 4499  __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
 4500#line 224
 4501  __cil_tmp28 = *((uint16_t *)__cil_tmp27);
 4502#line 224
 4503  __cil_tmp29 = (int )__cil_tmp28;
 4504#line 224
 4505  __cil_tmp30 = __cil_tmp29 - __cil_tmp24;
 4506#line 224
 4507  *((uint16_t *)__cil_tmp18) = (uint16_t )__cil_tmp30;
 4508#line 226
 4509  __cil_tmp31 = (unsigned long )part;
 4510#line 226
 4511  __cil_tmp32 = __cil_tmp31 + 416;
 4512#line 226
 4513  __cil_tmp33 = *((uint16_t *)__cil_tmp32);
 4514#line 226
 4515  __cil_tmp34 = (unsigned long )__cil_tmp33;
 4516#line 226
 4517  __cil_tmp35 = __cil_tmp34 * 16UL;
 4518#line 226
 4519  tmp = kmalloc(__cil_tmp35, 208U);
 4520#line 226
 4521  __cil_tmp36 = (unsigned long )part;
 4522#line 226
 4523  __cil_tmp37 = __cil_tmp36 + 384;
 4524#line 226
 4525  *((struct eun_info_t **)__cil_tmp37) = (struct eun_info_t *)tmp;
 4526  }
 4527  {
 4528#line 228
 4529  __cil_tmp38 = (struct eun_info_t *)0;
 4530#line 228
 4531  __cil_tmp39 = (unsigned long )__cil_tmp38;
 4532#line 228
 4533  __cil_tmp40 = (unsigned long )part;
 4534#line 228
 4535  __cil_tmp41 = __cil_tmp40 + 384;
 4536#line 228
 4537  __cil_tmp42 = *((struct eun_info_t **)__cil_tmp41);
 4538#line 228
 4539  __cil_tmp43 = (unsigned long )__cil_tmp42;
 4540#line 228
 4541  if (__cil_tmp43 == __cil_tmp39) {
 4542#line 229
 4543    goto out;
 4544  } else {
 4545
 4546  }
 4547  }
 4548#line 230
 4549  i = (uint16_t )0U;
 4550#line 230
 4551  goto ldv_22236;
 4552  ldv_22235: 
 4553#line 231
 4554  __cil_tmp44 = (unsigned long )i;
 4555#line 231
 4556  __cil_tmp45 = (unsigned long )part;
 4557#line 231
 4558  __cil_tmp46 = __cil_tmp45 + 384;
 4559#line 231
 4560  __cil_tmp47 = *((struct eun_info_t **)__cil_tmp46);
 4561#line 231
 4562  __cil_tmp48 = __cil_tmp47 + __cil_tmp44;
 4563#line 231
 4564  *((uint32_t *)__cil_tmp48) = 4294967295U;
 4565#line 230
 4566  __cil_tmp49 = (int )i;
 4567#line 230
 4568  __cil_tmp50 = __cil_tmp49 + 1;
 4569#line 230
 4570  i = (uint16_t )__cil_tmp50;
 4571  ldv_22236: ;
 4572  {
 4573#line 230
 4574  __cil_tmp51 = (int )i;
 4575#line 230
 4576  __cil_tmp52 = (unsigned long )part;
 4577#line 230
 4578  __cil_tmp53 = __cil_tmp52 + 416;
 4579#line 230
 4580  __cil_tmp54 = *((uint16_t *)__cil_tmp53);
 4581#line 230
 4582  __cil_tmp55 = (int )__cil_tmp54;
 4583#line 230
 4584  if (__cil_tmp55 > __cil_tmp51) {
 4585#line 231
 4586    goto ldv_22235;
 4587  } else {
 4588#line 233
 4589    goto ldv_22237;
 4590  }
 4591  }
 4592  ldv_22237: 
 4593  {
 4594#line 232
 4595  __cil_tmp56 = 424 + 15;
 4596#line 232
 4597  __cil_tmp57 = (unsigned long )part;
 4598#line 232
 4599  __cil_tmp58 = __cil_tmp57 + __cil_tmp56;
 4600#line 232
 4601  __cil_tmp59 = *((uint8_t *)__cil_tmp58);
 4602#line 232
 4603  __cil_tmp60 = (unsigned long )__cil_tmp59;
 4604#line 232
 4605  __cil_tmp61 = __cil_tmp60 * 12UL;
 4606#line 232
 4607  tmp___0 = kmalloc(__cil_tmp61, 208U);
 4608#line 232
 4609  __cil_tmp62 = (unsigned long )part;
 4610#line 232
 4611  __cil_tmp63 = __cil_tmp62 + 392;
 4612#line 232
 4613  *((struct xfer_info_t **)__cil_tmp63) = (struct xfer_info_t *)tmp___0;
 4614  }
 4615  {
 4616#line 235
 4617  __cil_tmp64 = (struct xfer_info_t *)0;
 4618#line 235
 4619  __cil_tmp65 = (unsigned long )__cil_tmp64;
 4620#line 235
 4621  __cil_tmp66 = (unsigned long )part;
 4622#line 235
 4623  __cil_tmp67 = __cil_tmp66 + 392;
 4624#line 235
 4625  __cil_tmp68 = *((struct xfer_info_t **)__cil_tmp67);
 4626#line 235
 4627  __cil_tmp69 = (unsigned long )__cil_tmp68;
 4628#line 235
 4629  if (__cil_tmp69 == __cil_tmp65) {
 4630#line 236
 4631    goto out_EUNInfo;
 4632  } else {
 4633
 4634  }
 4635  }
 4636#line 238
 4637  xtrans = (uint16_t )0U;
 4638#line 238
 4639  xvalid = xtrans;
 4640#line 239
 4641  i = (uint16_t )0U;
 4642#line 239
 4643  goto ldv_22241;
 4644  ldv_22240: 
 4645  {
 4646#line 240
 4647  __cil_tmp70 = 424 + 23;
 4648#line 240
 4649  __cil_tmp71 = (unsigned long )part;
 4650#line 240
 4651  __cil_tmp72 = __cil_tmp71 + __cil_tmp70;
 4652#line 240
 4653  __cil_tmp73 = *((uint8_t *)__cil_tmp72);
 4654#line 240
 4655  __cil_tmp74 = (int )__cil_tmp73;
 4656#line 240
 4657  __cil_tmp75 = 424 + 24;
 4658#line 240
 4659  __cil_tmp76 = (unsigned long )part;
 4660#line 240
 4661  __cil_tmp77 = __cil_tmp76 + __cil_tmp75;
 4662#line 240
 4663  __cil_tmp78 = *((uint16_t *)__cil_tmp77);
 4664#line 240
 4665  __cil_tmp79 = (int )__cil_tmp78;
 4666#line 240
 4667  __cil_tmp80 = (int )i;
 4668#line 240
 4669  __cil_tmp81 = __cil_tmp80 + __cil_tmp79;
 4670#line 240
 4671  __cil_tmp82 = __cil_tmp81 << __cil_tmp74;
 4672#line 240
 4673  offset = (loff_t )__cil_tmp82;
 4674#line 242
 4675  __cil_tmp83 = 0 + 24;
 4676#line 242
 4677  __cil_tmp84 = (unsigned long )part;
 4678#line 242
 4679  __cil_tmp85 = __cil_tmp84 + __cil_tmp83;
 4680#line 242
 4681  __cil_tmp86 = *((struct mtd_info **)__cil_tmp85);
 4682#line 242
 4683  __cil_tmp87 = (size_t *)(& retval);
 4684#line 242
 4685  __cil_tmp88 = (u_char *)(& header);
 4686#line 242
 4687  ret = mtd_read(__cil_tmp86, offset, 68UL, __cil_tmp87, __cil_tmp88);
 4688  }
 4689#line 245
 4690  if (ret != 0) {
 4691#line 246
 4692    goto out_XferInfo;
 4693  } else {
 4694
 4695  }
 4696  {
 4697#line 248
 4698  ret = -1;
 4699#line 250
 4700  __cil_tmp89 = (unsigned long )(& header) + 5;
 4701#line 250
 4702  __cil_tmp90 = (uint8_t (*)[10U])__cil_tmp89;
 4703#line 250
 4704  __cil_tmp91 = (char const   *)__cil_tmp90;
 4705#line 250
 4706  __cil_tmp92 = __cil_tmp91 + 3U;
 4707#line 250
 4708  tmp___1 = strcmp(__cil_tmp92, "FTL100");
 4709#line 250
 4710  hdr_ok = tmp___1 == 0;
 4711  }
 4712#line 251
 4713  if (hdr_ok != 0) {
 4714    {
 4715#line 251
 4716    __cil_tmp93 = (unsigned long )part;
 4717#line 251
 4718    __cil_tmp94 = __cil_tmp93 + 416;
 4719#line 251
 4720    __cil_tmp95 = *((uint16_t *)__cil_tmp94);
 4721#line 251
 4722    __cil_tmp96 = (int )__cil_tmp95;
 4723#line 251
 4724    __cil_tmp97 = (unsigned long )(& header) + 20;
 4725#line 251
 4726    __cil_tmp98 = *((uint16_t *)__cil_tmp97);
 4727#line 251
 4728    __cil_tmp99 = (int )__cil_tmp98;
 4729#line 251
 4730    if (__cil_tmp99 < __cil_tmp96) {
 4731      {
 4732#line 251
 4733      __cil_tmp100 = (unsigned long )(& header) + 20;
 4734#line 251
 4735      __cil_tmp101 = *((uint16_t *)__cil_tmp100);
 4736#line 251
 4737      __cil_tmp102 = (unsigned long )__cil_tmp101;
 4738#line 251
 4739      __cil_tmp103 = (unsigned long )part;
 4740#line 251
 4741      __cil_tmp104 = __cil_tmp103 + 384;
 4742#line 251
 4743      __cil_tmp105 = *((struct eun_info_t **)__cil_tmp104);
 4744#line 251
 4745      __cil_tmp106 = __cil_tmp105 + __cil_tmp102;
 4746#line 251
 4747      __cil_tmp107 = *((uint32_t *)__cil_tmp106);
 4748#line 251
 4749      if (__cil_tmp107 == 4294967295U) {
 4750#line 253
 4751        __cil_tmp108 = (unsigned long )(& header) + 20;
 4752#line 253
 4753        __cil_tmp109 = *((uint16_t *)__cil_tmp108);
 4754#line 253
 4755        __cil_tmp110 = (unsigned long )__cil_tmp109;
 4756#line 253
 4757        __cil_tmp111 = (unsigned long )part;
 4758#line 253
 4759        __cil_tmp112 = __cil_tmp111 + 384;
 4760#line 253
 4761        __cil_tmp113 = *((struct eun_info_t **)__cil_tmp112);
 4762#line 253
 4763        __cil_tmp114 = __cil_tmp113 + __cil_tmp110;
 4764#line 253
 4765        *((uint32_t *)__cil_tmp114) = (uint32_t )offset;
 4766#line 254
 4767        __cil_tmp115 = (unsigned long )(& header) + 20;
 4768#line 254
 4769        __cil_tmp116 = *((uint16_t *)__cil_tmp115);
 4770#line 254
 4771        __cil_tmp117 = (unsigned long )__cil_tmp116;
 4772#line 254
 4773        __cil_tmp118 = (unsigned long )part;
 4774#line 254
 4775        __cil_tmp119 = __cil_tmp118 + 384;
 4776#line 254
 4777        __cil_tmp120 = *((struct eun_info_t **)__cil_tmp119);
 4778#line 254
 4779        __cil_tmp121 = __cil_tmp120 + __cil_tmp117;
 4780#line 254
 4781        __cil_tmp122 = (unsigned long )__cil_tmp121;
 4782#line 254
 4783        __cil_tmp123 = __cil_tmp122 + 4;
 4784#line 254
 4785        __cil_tmp124 = (unsigned long )(& header) + 16;
 4786#line 254
 4787        *((uint32_t *)__cil_tmp123) = *((uint32_t *)__cil_tmp124);
 4788#line 256
 4789        __cil_tmp125 = (int )xvalid;
 4790#line 256
 4791        __cil_tmp126 = __cil_tmp125 + 1;
 4792#line 256
 4793        xvalid = (uint16_t )__cil_tmp126;
 4794      } else {
 4795#line 251
 4796        goto _L___0;
 4797      }
 4798      }
 4799    } else {
 4800#line 251
 4801      goto _L___0;
 4802    }
 4803    }
 4804  } else {
 4805    _L___0: /* CIL Label */ 
 4806    {
 4807#line 258
 4808    __cil_tmp127 = (int )xtrans;
 4809#line 258
 4810    __cil_tmp128 = 424 + 15;
 4811#line 258
 4812    __cil_tmp129 = (unsigned long )part;
 4813#line 258
 4814    __cil_tmp130 = __cil_tmp129 + __cil_tmp128;
 4815#line 258
 4816    __cil_tmp131 = *((uint8_t *)__cil_tmp130);
 4817#line 258
 4818    __cil_tmp132 = (unsigned short )__cil_tmp131;
 4819#line 258
 4820    __cil_tmp133 = (int )__cil_tmp132;
 4821#line 258
 4822    if (__cil_tmp133 == __cil_tmp127) {
 4823      {
 4824#line 259
 4825      printk("<5>ftl_cs: format error: too many transfer units!\n");
 4826      }
 4827#line 261
 4828      goto out_XferInfo;
 4829    } else {
 4830
 4831    }
 4832    }
 4833#line 263
 4834    if (hdr_ok != 0) {
 4835      {
 4836#line 263
 4837      __cil_tmp134 = (unsigned long )(& header) + 20;
 4838#line 263
 4839      __cil_tmp135 = *((uint16_t *)__cil_tmp134);
 4840#line 263
 4841      __cil_tmp136 = (unsigned int )__cil_tmp135;
 4842#line 263
 4843      if (__cil_tmp136 == 65535U) {
 4844#line 264
 4845        __cil_tmp137 = (unsigned long )xtrans;
 4846#line 264
 4847        __cil_tmp138 = (unsigned long )part;
 4848#line 264
 4849        __cil_tmp139 = __cil_tmp138 + 392;
 4850#line 264
 4851        __cil_tmp140 = *((struct xfer_info_t **)__cil_tmp139);
 4852#line 264
 4853        __cil_tmp141 = __cil_tmp140 + __cil_tmp137;
 4854#line 264
 4855        __cil_tmp142 = (unsigned long )__cil_tmp141;
 4856#line 264
 4857        __cil_tmp143 = __cil_tmp142 + 8;
 4858#line 264
 4859        *((uint16_t *)__cil_tmp143) = (uint16_t )3U;
 4860#line 265
 4861        __cil_tmp144 = (unsigned long )xtrans;
 4862#line 265
 4863        __cil_tmp145 = (unsigned long )part;
 4864#line 265
 4865        __cil_tmp146 = __cil_tmp145 + 392;
 4866#line 265
 4867        __cil_tmp147 = *((struct xfer_info_t **)__cil_tmp146);
 4868#line 265
 4869        __cil_tmp148 = __cil_tmp147 + __cil_tmp144;
 4870#line 265
 4871        __cil_tmp149 = (unsigned long )__cil_tmp148;
 4872#line 265
 4873        __cil_tmp150 = __cil_tmp149 + 4;
 4874#line 265
 4875        __cil_tmp151 = (unsigned long )(& header) + 16;
 4876#line 265
 4877        *((uint32_t *)__cil_tmp150) = *((uint32_t *)__cil_tmp151);
 4878      } else {
 4879#line 267
 4880        __cil_tmp152 = (unsigned long )xtrans;
 4881#line 267
 4882        __cil_tmp153 = (unsigned long )part;
 4883#line 267
 4884        __cil_tmp154 = __cil_tmp153 + 392;
 4885#line 267
 4886        __cil_tmp155 = *((struct xfer_info_t **)__cil_tmp154);
 4887#line 267
 4888        __cil_tmp156 = __cil_tmp155 + __cil_tmp152;
 4889#line 267
 4890        __cil_tmp157 = (unsigned long )__cil_tmp156;
 4891#line 267
 4892        __cil_tmp158 = __cil_tmp157 + 8;
 4893#line 267
 4894        *((uint16_t *)__cil_tmp158) = (uint16_t )0U;
 4895#line 269
 4896        __cil_tmp159 = (unsigned long )xtrans;
 4897#line 269
 4898        __cil_tmp160 = (unsigned long )part;
 4899#line 269
 4900        __cil_tmp161 = __cil_tmp160 + 392;
 4901#line 269
 4902        __cil_tmp162 = *((struct xfer_info_t **)__cil_tmp161);
 4903#line 269
 4904        __cil_tmp163 = __cil_tmp162 + __cil_tmp159;
 4905#line 269
 4906        __cil_tmp164 = (unsigned long )__cil_tmp163;
 4907#line 269
 4908        __cil_tmp165 = __cil_tmp164 + 4;
 4909#line 269
 4910        __cil_tmp166 = 424 + 16;
 4911#line 269
 4912        __cil_tmp167 = (unsigned long )part;
 4913#line 269
 4914        __cil_tmp168 = __cil_tmp167 + __cil_tmp166;
 4915#line 269
 4916        *((uint32_t *)__cil_tmp165) = *((uint32_t *)__cil_tmp168);
 4917      }
 4918      }
 4919    } else {
 4920#line 267
 4921      __cil_tmp169 = (unsigned long )xtrans;
 4922#line 267
 4923      __cil_tmp170 = (unsigned long )part;
 4924#line 267
 4925      __cil_tmp171 = __cil_tmp170 + 392;
 4926#line 267
 4927      __cil_tmp172 = *((struct xfer_info_t **)__cil_tmp171);
 4928#line 267
 4929      __cil_tmp173 = __cil_tmp172 + __cil_tmp169;
 4930#line 267
 4931      __cil_tmp174 = (unsigned long )__cil_tmp173;
 4932#line 267
 4933      __cil_tmp175 = __cil_tmp174 + 8;
 4934#line 267
 4935      *((uint16_t *)__cil_tmp175) = (uint16_t )0U;
 4936#line 269
 4937      __cil_tmp176 = (unsigned long )xtrans;
 4938#line 269
 4939      __cil_tmp177 = (unsigned long )part;
 4940#line 269
 4941      __cil_tmp178 = __cil_tmp177 + 392;
 4942#line 269
 4943      __cil_tmp179 = *((struct xfer_info_t **)__cil_tmp178);
 4944#line 269
 4945      __cil_tmp180 = __cil_tmp179 + __cil_tmp176;
 4946#line 269
 4947      __cil_tmp181 = (unsigned long )__cil_tmp180;
 4948#line 269
 4949      __cil_tmp182 = __cil_tmp181 + 4;
 4950#line 269
 4951      __cil_tmp183 = 424 + 16;
 4952#line 269
 4953      __cil_tmp184 = (unsigned long )part;
 4954#line 269
 4955      __cil_tmp185 = __cil_tmp184 + __cil_tmp183;
 4956#line 269
 4957      *((uint32_t *)__cil_tmp182) = *((uint32_t *)__cil_tmp185);
 4958    }
 4959#line 272
 4960    __cil_tmp186 = (unsigned long )xtrans;
 4961#line 272
 4962    __cil_tmp187 = (unsigned long )part;
 4963#line 272
 4964    __cil_tmp188 = __cil_tmp187 + 392;
 4965#line 272
 4966    __cil_tmp189 = *((struct xfer_info_t **)__cil_tmp188);
 4967#line 272
 4968    __cil_tmp190 = __cil_tmp189 + __cil_tmp186;
 4969#line 272
 4970    *((uint32_t *)__cil_tmp190) = (uint32_t )offset;
 4971#line 273
 4972    __cil_tmp191 = (int )xtrans;
 4973#line 273
 4974    __cil_tmp192 = __cil_tmp191 + 1;
 4975#line 273
 4976    xtrans = (uint16_t )__cil_tmp192;
 4977  }
 4978#line 239
 4979  __cil_tmp193 = (int )i;
 4980#line 239
 4981  __cil_tmp194 = __cil_tmp193 + 1;
 4982#line 239
 4983  i = (uint16_t )__cil_tmp194;
 4984  ldv_22241: ;
 4985  {
 4986#line 239
 4987  __cil_tmp195 = (int )i;
 4988#line 239
 4989  __cil_tmp196 = 424 + 26;
 4990#line 239
 4991  __cil_tmp197 = (unsigned long )part;
 4992#line 239
 4993  __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
 4994#line 239
 4995  __cil_tmp199 = *((uint16_t *)__cil_tmp198);
 4996#line 239
 4997  __cil_tmp200 = (int )__cil_tmp199;
 4998#line 239
 4999  if (__cil_tmp200 > __cil_tmp195) {
 5000#line 240
 5001    goto ldv_22240;
 5002  } else {
 5003#line 242
 5004    goto ldv_22242;
 5005  }
 5006  }
 5007  ldv_22242: 
 5008#line 277
 5009  __cil_tmp201 = & header;
 5010#line 277
 5011  __cil_tmp202 = (unsigned long )part;
 5012#line 277
 5013  __cil_tmp203 = __cil_tmp202 + 424;
 5014#line 277
 5015  *__cil_tmp201 = *((erase_unit_header_t *)__cil_tmp203);
 5016  {
 5017#line 278
 5018  __cil_tmp204 = (int )xtrans;
 5019#line 278
 5020  __cil_tmp205 = (unsigned long )(& header) + 15;
 5021#line 278
 5022  __cil_tmp206 = *((uint8_t *)__cil_tmp205);
 5023#line 278
 5024  __cil_tmp207 = (unsigned short )__cil_tmp206;
 5025#line 278
 5026  __cil_tmp208 = (int )__cil_tmp207;
 5027#line 278
 5028  if (__cil_tmp208 != __cil_tmp204) {
 5029    {
 5030#line 280
 5031    printk("<5>ftl_cs: format error: erase units don\'t add up!\n");
 5032    }
 5033#line 282
 5034    goto out_XferInfo;
 5035  } else {
 5036    {
 5037#line 278
 5038    __cil_tmp209 = (unsigned long )(& header) + 26;
 5039#line 278
 5040    __cil_tmp210 = *((uint16_t *)__cil_tmp209);
 5041#line 278
 5042    __cil_tmp211 = (int )__cil_tmp210;
 5043#line 278
 5044    __cil_tmp212 = (int )xtrans;
 5045#line 278
 5046    __cil_tmp213 = (int )xvalid;
 5047#line 278
 5048    __cil_tmp214 = __cil_tmp213 + __cil_tmp212;
 5049#line 278
 5050    if (__cil_tmp214 != __cil_tmp211) {
 5051      {
 5052#line 280
 5053      printk("<5>ftl_cs: format error: erase units don\'t add up!\n");
 5054      }
 5055#line 282
 5056      goto out_XferInfo;
 5057    } else {
 5058
 5059    }
 5060    }
 5061  }
 5062  }
 5063  {
 5064#line 286
 5065  __cil_tmp215 = (unsigned long )(& header) + 22;
 5066#line 286
 5067  __cil_tmp216 = *((uint8_t *)__cil_tmp215);
 5068#line 286
 5069  __cil_tmp217 = (int )__cil_tmp216;
 5070#line 286
 5071  __cil_tmp218 = (unsigned long )(& header) + 28;
 5072#line 286
 5073  __cil_tmp219 = *((uint32_t *)__cil_tmp218);
 5074#line 286
 5075  blocks = __cil_tmp219 >> __cil_tmp217;
 5076#line 287
 5077  __cil_tmp220 = (unsigned long )blocks;
 5078#line 287
 5079  __cil_tmp221 = __cil_tmp220 * 4UL;
 5080#line 287
 5081  tmp___2 = ldv_vmalloc_19(__cil_tmp221);
 5082#line 287
 5083  __cil_tmp222 = (unsigned long )part;
 5084#line 287
 5085  __cil_tmp223 = __cil_tmp222 + 360;
 5086#line 287
 5087  *((uint32_t **)__cil_tmp223) = (uint32_t *)tmp___2;
 5088  }
 5089  {
 5090#line 288
 5091  __cil_tmp224 = (uint32_t *)0;
 5092#line 288
 5093  __cil_tmp225 = (unsigned long )__cil_tmp224;
 5094#line 288
 5095  __cil_tmp226 = (unsigned long )part;
 5096#line 288
 5097  __cil_tmp227 = __cil_tmp226 + 360;
 5098#line 288
 5099  __cil_tmp228 = *((uint32_t **)__cil_tmp227);
 5100#line 288
 5101  __cil_tmp229 = (unsigned long )__cil_tmp228;
 5102#line 288
 5103  if (__cil_tmp229 == __cil_tmp225) {
 5104#line 289
 5105    goto out_XferInfo;
 5106  } else {
 5107
 5108  }
 5109  }
 5110  {
 5111#line 291
 5112  __cil_tmp230 = (unsigned long )part;
 5113#line 291
 5114  __cil_tmp231 = __cil_tmp230 + 360;
 5115#line 291
 5116  __cil_tmp232 = *((uint32_t **)__cil_tmp231);
 5117#line 291
 5118  __cil_tmp233 = (void *)__cil_tmp232;
 5119#line 291
 5120  __cil_tmp234 = (unsigned long )blocks;
 5121#line 291
 5122  __cil_tmp235 = __cil_tmp234 * 4UL;
 5123#line 291
 5124  memset(__cil_tmp233, 255, __cil_tmp235);
 5125#line 292
 5126  __cil_tmp236 = (unsigned long )part;
 5127#line 292
 5128  __cil_tmp237 = __cil_tmp236 + 420;
 5129#line 292
 5130  __cil_tmp238 = (unsigned long )(& header) + 22;
 5131#line 292
 5132  __cil_tmp239 = *((uint8_t *)__cil_tmp238);
 5133#line 292
 5134  __cil_tmp240 = (int )__cil_tmp239;
 5135#line 292
 5136  __cil_tmp241 = (unsigned long )(& header) + 23;
 5137#line 292
 5138  __cil_tmp242 = *((uint8_t *)__cil_tmp241);
 5139#line 292
 5140  __cil_tmp243 = (int )__cil_tmp242;
 5141#line 292
 5142  __cil_tmp244 = 1 << __cil_tmp243;
 5143#line 292
 5144  __cil_tmp245 = __cil_tmp244 >> __cil_tmp240;
 5145#line 292
 5146  *((uint32_t *)__cil_tmp237) = (uint32_t )__cil_tmp245;
 5147#line 294
 5148  __cil_tmp246 = (unsigned long )part;
 5149#line 294
 5150  __cil_tmp247 = __cil_tmp246 + 420;
 5151#line 294
 5152  __cil_tmp248 = *((uint32_t *)__cil_tmp247);
 5153#line 294
 5154  __cil_tmp249 = (unsigned long )__cil_tmp248;
 5155#line 294
 5156  __cil_tmp250 = __cil_tmp249 * 4UL;
 5157#line 294
 5158  tmp___3 = kmalloc(__cil_tmp250, 208U);
 5159#line 294
 5160  __cil_tmp251 = (unsigned long )part;
 5161#line 294
 5162  __cil_tmp252 = __cil_tmp251 + 408;
 5163#line 294
 5164  *((uint32_t **)__cil_tmp252) = (uint32_t *)tmp___3;
 5165  }
 5166  {
 5167#line 296
 5168  __cil_tmp253 = (uint32_t *)0;
 5169#line 296
 5170  __cil_tmp254 = (unsigned long )__cil_tmp253;
 5171#line 296
 5172  __cil_tmp255 = (unsigned long )part;
 5173#line 296
 5174  __cil_tmp256 = __cil_tmp255 + 408;
 5175#line 296
 5176  __cil_tmp257 = *((uint32_t **)__cil_tmp256);
 5177#line 296
 5178  __cil_tmp258 = (unsigned long )__cil_tmp257;
 5179#line 296
 5180  if (__cil_tmp258 == __cil_tmp254) {
 5181#line 297
 5182    goto out_VirtualBlockMap;
 5183  } else {
 5184
 5185  }
 5186  }
 5187#line 299
 5188  __cil_tmp259 = (unsigned long )part;
 5189#line 299
 5190  __cil_tmp260 = __cil_tmp259 + 400;
 5191#line 299
 5192  *((uint16_t *)__cil_tmp260) = (uint16_t )65535U;
 5193#line 300
 5194  __cil_tmp261 = (unsigned long )part;
 5195#line 300
 5196  __cil_tmp262 = __cil_tmp261 + 376;
 5197#line 300
 5198  *((uint32_t *)__cil_tmp262) = 0U;
 5199#line 302
 5200  i = (uint16_t )0U;
 5201#line 302
 5202  goto ldv_22249;
 5203  ldv_22248: 
 5204  {
 5205#line 303
 5206  __cil_tmp263 = (unsigned long )i;
 5207#line 303
 5208  __cil_tmp264 = (unsigned long )part;
 5209#line 303
 5210  __cil_tmp265 = __cil_tmp264 + 384;
 5211#line 303
 5212  __cil_tmp266 = *((struct eun_info_t **)__cil_tmp265);
 5213#line 303
 5214  __cil_tmp267 = __cil_tmp266 + __cil_tmp263;
 5215#line 303
 5216  __cil_tmp268 = (unsigned long )__cil_tmp267;
 5217#line 303
 5218  __cil_tmp269 = __cil_tmp268 + 8;
 5219#line 303
 5220  *((uint32_t *)__cil_tmp269) = 0U;
 5221#line 304
 5222  __cil_tmp270 = (unsigned long )i;
 5223#line 304
 5224  __cil_tmp271 = (unsigned long )part;
 5225#line 304
 5226  __cil_tmp272 = __cil_tmp271 + 384;
 5227#line 304
 5228  __cil_tmp273 = *((struct eun_info_t **)__cil_tmp272);
 5229#line 304
 5230  __cil_tmp274 = __cil_tmp273 + __cil_tmp270;
 5231#line 304
 5232  __cil_tmp275 = (unsigned long )__cil_tmp274;
 5233#line 304
 5234  __cil_tmp276 = __cil_tmp275 + 12;
 5235#line 304
 5236  *((uint32_t *)__cil_tmp276) = 0U;
 5237#line 305
 5238  __cil_tmp277 = (unsigned long )(& header) + 48;
 5239#line 305
 5240  __cil_tmp278 = *((uint32_t *)__cil_tmp277);
 5241#line 305
 5242  __cil_tmp279 = (unsigned long )i;
 5243#line 305
 5244  __cil_tmp280 = (unsigned long )part;
 5245#line 305
 5246  __cil_tmp281 = __cil_tmp280 + 384;
 5247#line 305
 5248  __cil_tmp282 = *((struct eun_info_t **)__cil_tmp281);
 5249#line 305
 5250  __cil_tmp283 = __cil_tmp282 + __cil_tmp279;
 5251#line 305
 5252  __cil_tmp284 = *((uint32_t *)__cil_tmp283);
 5253#line 305
 5254  __cil_tmp285 = __cil_tmp284 + __cil_tmp278;
 5255#line 305
 5256  offset = (loff_t )__cil_tmp285;
 5257#line 307
 5258  __cil_tmp286 = 0 + 24;
 5259#line 307
 5260  __cil_tmp287 = (unsigned long )part;
 5261#line 307
 5262  __cil_tmp288 = __cil_tmp287 + __cil_tmp286;
 5263#line 307
 5264  __cil_tmp289 = *((struct mtd_info **)__cil_tmp288);
 5265#line 307
 5266  __cil_tmp290 = (unsigned long )part;
 5267#line 307
 5268  __cil_tmp291 = __cil_tmp290 + 420;
 5269#line 307
 5270  __cil_tmp292 = *((uint32_t *)__cil_tmp291);
 5271#line 307
 5272  __cil_tmp293 = (unsigned long )__cil_tmp292;
 5273#line 307
 5274  __cil_tmp294 = __cil_tmp293 * 4UL;
 5275#line 307
 5276  __cil_tmp295 = (size_t *)(& retval);
 5277#line 307
 5278  __cil_tmp296 = (unsigned long )part;
 5279#line 307
 5280  __cil_tmp297 = __cil_tmp296 + 408;
 5281#line 307
 5282  __cil_tmp298 = *((uint32_t **)__cil_tmp297);
 5283#line 307
 5284  __cil_tmp299 = (u_char *)__cil_tmp298;
 5285#line 307
 5286  ret = mtd_read(__cil_tmp289, offset, __cil_tmp294, __cil_tmp295, __cil_tmp299);
 5287  }
 5288#line 311
 5289  if (ret != 0) {
 5290#line 312
 5291    goto out_bam_cache;
 5292  } else {
 5293
 5294  }
 5295#line 314
 5296  j = 0U;
 5297#line 314
 5298  goto ldv_22246;
 5299  ldv_22245: ;
 5300  {
 5301#line 315
 5302  __cil_tmp300 = (unsigned long )j;
 5303#line 315
 5304  __cil_tmp301 = (unsigned long )part;
 5305#line 315
 5306  __cil_tmp302 = __cil_tmp301 + 408;
 5307#line 315
 5308  __cil_tmp303 = *((uint32_t **)__cil_tmp302);
 5309#line 315
 5310  __cil_tmp304 = __cil_tmp303 + __cil_tmp300;
 5311#line 315
 5312  __cil_tmp305 = *__cil_tmp304;
 5313#line 315
 5314  if (__cil_tmp305 == 4294967295U) {
 5315#line 316
 5316    __cil_tmp306 = (unsigned long )i;
 5317#line 316
 5318    __cil_tmp307 = (unsigned long )part;
 5319#line 316
 5320    __cil_tmp308 = __cil_tmp307 + 384;
 5321#line 316
 5322    __cil_tmp309 = *((struct eun_info_t **)__cil_tmp308);
 5323#line 316
 5324    __cil_tmp310 = __cil_tmp309 + __cil_tmp306;
 5325#line 316
 5326    __cil_tmp311 = (unsigned long )__cil_tmp310;
 5327#line 316
 5328    __cil_tmp312 = __cil_tmp311 + 8;
 5329#line 316
 5330    __cil_tmp313 = (unsigned long )i;
 5331#line 316
 5332    __cil_tmp314 = (unsigned long )part;
 5333#line 316
 5334    __cil_tmp315 = __cil_tmp314 + 384;
 5335#line 316
 5336    __cil_tmp316 = *((struct eun_info_t **)__cil_tmp315);
 5337#line 316
 5338    __cil_tmp317 = __cil_tmp316 + __cil_tmp313;
 5339#line 316
 5340    __cil_tmp318 = (unsigned long )__cil_tmp317;
 5341#line 316
 5342    __cil_tmp319 = __cil_tmp318 + 8;
 5343#line 316
 5344    __cil_tmp320 = *((uint32_t *)__cil_tmp319);
 5345#line 316
 5346    *((uint32_t *)__cil_tmp312) = __cil_tmp320 + 1U;
 5347#line 317
 5348    __cil_tmp321 = (unsigned long )part;
 5349#line 317
 5350    __cil_tmp322 = __cil_tmp321 + 376;
 5351#line 317
 5352    __cil_tmp323 = (unsigned long )part;
 5353#line 317
 5354    __cil_tmp324 = __cil_tmp323 + 376;
 5355#line 317
 5356    __cil_tmp325 = *((uint32_t *)__cil_tmp324);
 5357#line 317
 5358    *((uint32_t *)__cil_tmp322) = __cil_tmp325 + 1U;
 5359  } else {
 5360    {
 5361#line 318
 5362    __cil_tmp326 = (unsigned long )j;
 5363#line 318
 5364    __cil_tmp327 = (unsigned long )part;
 5365#line 318
 5366    __cil_tmp328 = __cil_tmp327 + 408;
 5367#line 318
 5368    __cil_tmp329 = *((uint32_t **)__cil_tmp328);
 5369#line 318
 5370    __cil_tmp330 = __cil_tmp329 + __cil_tmp326;
 5371#line 318
 5372    __cil_tmp331 = *__cil_tmp330;
 5373#line 318
 5374    __cil_tmp332 = __cil_tmp331 & 127U;
 5375#line 318
 5376    if (__cil_tmp332 == 64U) {
 5377      {
 5378#line 318
 5379      __cil_tmp333 = (unsigned long )j;
 5380#line 318
 5381      __cil_tmp334 = (unsigned long )part;
 5382#line 318
 5383      __cil_tmp335 = __cil_tmp334 + 408;
 5384#line 318
 5385      __cil_tmp336 = *((uint32_t **)__cil_tmp335);
 5386#line 318
 5387      __cil_tmp337 = __cil_tmp336 + __cil_tmp333;
 5388#line 318
 5389      __cil_tmp338 = *__cil_tmp337;
 5390#line 318
 5391      __cil_tmp339 = __cil_tmp338 >> 9;
 5392#line 318
 5393      if (__cil_tmp339 < blocks) {
 5394#line 320
 5395        __cil_tmp340 = (unsigned long )j;
 5396#line 320
 5397        __cil_tmp341 = (unsigned long )part;
 5398#line 320
 5399        __cil_tmp342 = __cil_tmp341 + 408;
 5400#line 320
 5401        __cil_tmp343 = *((uint32_t **)__cil_tmp342);
 5402#line 320
 5403        __cil_tmp344 = __cil_tmp343 + __cil_tmp340;
 5404#line 320
 5405        __cil_tmp345 = *__cil_tmp344;
 5406#line 320
 5407        __cil_tmp346 = __cil_tmp345 >> 9;
 5408#line 320
 5409        __cil_tmp347 = (unsigned long )__cil_tmp346;
 5410#line 320
 5411        __cil_tmp348 = (unsigned long )part;
 5412#line 320
 5413        __cil_tmp349 = __cil_tmp348 + 360;
 5414#line 320
 5415        __cil_tmp350 = *((uint32_t **)__cil_tmp349);
 5416#line 320
 5417        __cil_tmp351 = __cil_tmp350 + __cil_tmp347;
 5418#line 320
 5419        __cil_tmp352 = (unsigned long )(& header) + 22;
 5420#line 320
 5421        __cil_tmp353 = *((uint8_t *)__cil_tmp352);
 5422#line 320
 5423        __cil_tmp354 = (int )__cil_tmp353;
 5424#line 320
 5425        __cil_tmp355 = j << __cil_tmp354;
 5426#line 320
 5427        __cil_tmp356 = (unsigned long )(& header) + 23;
 5428#line 320
 5429        __cil_tmp357 = *((uint8_t *)__cil_tmp356);
 5430#line 320
 5431        __cil_tmp358 = (int )__cil_tmp357;
 5432#line 320
 5433        __cil_tmp359 = (int )i;
 5434#line 320
 5435        __cil_tmp360 = __cil_tmp359 << __cil_tmp358;
 5436#line 320
 5437        __cil_tmp361 = (unsigned int )__cil_tmp360;
 5438#line 320
 5439        *__cil_tmp351 = __cil_tmp361 + __cil_tmp355;
 5440      } else {
 5441#line 318
 5442        goto _L___1;
 5443      }
 5444      }
 5445    } else {
 5446      _L___1: /* CIL Label */ 
 5447      {
 5448#line 322
 5449      __cil_tmp362 = (unsigned long )j;
 5450#line 322
 5451      __cil_tmp363 = (unsigned long )part;
 5452#line 322
 5453      __cil_tmp364 = __cil_tmp363 + 408;
 5454#line 322
 5455      __cil_tmp365 = *((uint32_t **)__cil_tmp364);
 5456#line 322
 5457      __cil_tmp366 = __cil_tmp365 + __cil_tmp362;
 5458#line 322
 5459      __cil_tmp367 = *__cil_tmp366;
 5460#line 322
 5461      if (__cil_tmp367 == 0U) {
 5462#line 323
 5463        __cil_tmp368 = (unsigned long )i;
 5464#line 323
 5465        __cil_tmp369 = (unsigned long )part;
 5466#line 323
 5467        __cil_tmp370 = __cil_tmp369 + 384;
 5468#line 323
 5469        __cil_tmp371 = *((struct eun_info_t **)__cil_tmp370);
 5470#line 323
 5471        __cil_tmp372 = __cil_tmp371 + __cil_tmp368;
 5472#line 323
 5473        __cil_tmp373 = (unsigned long )__cil_tmp372;
 5474#line 323
 5475        __cil_tmp374 = __cil_tmp373 + 12;
 5476#line 323
 5477        __cil_tmp375 = (unsigned long )i;
 5478#line 323
 5479        __cil_tmp376 = (unsigned long )part;
 5480#line 323
 5481        __cil_tmp377 = __cil_tmp376 + 384;
 5482#line 323
 5483        __cil_tmp378 = *((struct eun_info_t **)__cil_tmp377);
 5484#line 323
 5485        __cil_tmp379 = __cil_tmp378 + __cil_tmp375;
 5486#line 323
 5487        __cil_tmp380 = (unsigned long )__cil_tmp379;
 5488#line 323
 5489        __cil_tmp381 = __cil_tmp380 + 12;
 5490#line 323
 5491        __cil_tmp382 = *((uint32_t *)__cil_tmp381);
 5492#line 323
 5493        *((uint32_t *)__cil_tmp374) = __cil_tmp382 + 1U;
 5494      } else {
 5495        {
 5496#line 322
 5497        __cil_tmp383 = (unsigned long )j;
 5498#line 322
 5499        __cil_tmp384 = (unsigned long )part;
 5500#line 322
 5501        __cil_tmp385 = __cil_tmp384 + 408;
 5502#line 322
 5503        __cil_tmp386 = *((uint32_t **)__cil_tmp385);
 5504#line 322
 5505        __cil_tmp387 = __cil_tmp386 + __cil_tmp383;
 5506#line 322
 5507        __cil_tmp388 = *__cil_tmp387;
 5508#line 322
 5509        if (__cil_tmp388 == 4294967294U) {
 5510#line 323
 5511          __cil_tmp389 = (unsigned long )i;
 5512#line 323
 5513          __cil_tmp390 = (unsigned long )part;
 5514#line 323
 5515          __cil_tmp391 = __cil_tmp390 + 384;
 5516#line 323
 5517          __cil_tmp392 = *((struct eun_info_t **)__cil_tmp391);
 5518#line 323
 5519          __cil_tmp393 = __cil_tmp392 + __cil_tmp389;
 5520#line 323
 5521          __cil_tmp394 = (unsigned long )__cil_tmp393;
 5522#line 323
 5523          __cil_tmp395 = __cil_tmp394 + 12;
 5524#line 323
 5525          __cil_tmp396 = (unsigned long )i;
 5526#line 323
 5527          __cil_tmp397 = (unsigned long )part;
 5528#line 323
 5529          __cil_tmp398 = __cil_tmp397 + 384;
 5530#line 323
 5531          __cil_tmp399 = *((struct eun_info_t **)__cil_tmp398);
 5532#line 323
 5533          __cil_tmp400 = __cil_tmp399 + __cil_tmp396;
 5534#line 323
 5535          __cil_tmp401 = (unsigned long )__cil_tmp400;
 5536#line 323
 5537          __cil_tmp402 = __cil_tmp401 + 12;
 5538#line 323
 5539          __cil_tmp403 = *((uint32_t *)__cil_tmp402);
 5540#line 323
 5541          *((uint32_t *)__cil_tmp395) = __cil_tmp403 + 1U;
 5542        } else {
 5543
 5544        }
 5545        }
 5546      }
 5547      }
 5548    }
 5549    }
 5550  }
 5551  }
 5552#line 314
 5553  j = j + 1U;
 5554  ldv_22246: ;
 5555  {
 5556#line 314
 5557  __cil_tmp404 = (unsigned long )part;
 5558#line 314
 5559  __cil_tmp405 = __cil_tmp404 + 420;
 5560#line 314
 5561  __cil_tmp406 = *((uint32_t *)__cil_tmp405);
 5562#line 314
 5563  if (__cil_tmp406 > j) {
 5564#line 315
 5565    goto ldv_22245;
 5566  } else {
 5567#line 317
 5568    goto ldv_22247;
 5569  }
 5570  }
 5571  ldv_22247: 
 5572#line 302
 5573  __cil_tmp407 = (int )i;
 5574#line 302
 5575  __cil_tmp408 = __cil_tmp407 + 1;
 5576#line 302
 5577  i = (uint16_t )__cil_tmp408;
 5578  ldv_22249: ;
 5579  {
 5580#line 302
 5581  __cil_tmp409 = (int )i;
 5582#line 302
 5583  __cil_tmp410 = (unsigned long )part;
 5584#line 302
 5585  __cil_tmp411 = __cil_tmp410 + 416;
 5586#line 302
 5587  __cil_tmp412 = *((uint16_t *)__cil_tmp411);
 5588#line 302
 5589  __cil_tmp413 = (int )__cil_tmp412;
 5590#line 302
 5591  if (__cil_tmp413 > __cil_tmp409) {
 5592#line 303
 5593    goto ldv_22248;
 5594  } else {
 5595#line 305
 5596    goto ldv_22250;
 5597  }
 5598  }
 5599  ldv_22250: 
 5600#line 327
 5601  ret = 0;
 5602#line 328
 5603  goto out;
 5604  out_bam_cache: 
 5605  {
 5606#line 331
 5607  __cil_tmp414 = (unsigned long )part;
 5608#line 331
 5609  __cil_tmp415 = __cil_tmp414 + 408;
 5610#line 331
 5611  __cil_tmp416 = *((uint32_t **)__cil_tmp415);
 5612#line 331
 5613  __cil_tmp417 = (void const   *)__cil_tmp416;
 5614#line 331
 5615  kfree(__cil_tmp417);
 5616  }
 5617  out_VirtualBlockMap: 
 5618  {
 5619#line 333
 5620  __cil_tmp418 = (unsigned long )part;
 5621#line 333
 5622  __cil_tmp419 = __cil_tmp418 + 360;
 5623#line 333
 5624  __cil_tmp420 = *((uint32_t **)__cil_tmp419);
 5625#line 333
 5626  __cil_tmp421 = (void const   *)__cil_tmp420;
 5627#line 333
 5628  vfree(__cil_tmp421);
 5629  }
 5630  out_XferInfo: 
 5631  {
 5632#line 335
 5633  __cil_tmp422 = (unsigned long )part;
 5634#line 335
 5635  __cil_tmp423 = __cil_tmp422 + 392;
 5636#line 335
 5637  __cil_tmp424 = *((struct xfer_info_t **)__cil_tmp423);
 5638#line 335
 5639  __cil_tmp425 = (void const   *)__cil_tmp424;
 5640#line 335
 5641  kfree(__cil_tmp425);
 5642  }
 5643  out_EUNInfo: 
 5644  {
 5645#line 337
 5646  __cil_tmp426 = (unsigned long )part;
 5647#line 337
 5648  __cil_tmp427 = __cil_tmp426 + 384;
 5649#line 337
 5650  __cil_tmp428 = *((struct eun_info_t **)__cil_tmp427);
 5651#line 337
 5652  __cil_tmp429 = (void const   *)__cil_tmp428;
 5653#line 337
 5654  kfree(__cil_tmp429);
 5655  }
 5656  out: ;
 5657#line 339
 5658  return (ret);
 5659}
 5660}
 5661#line 349 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 5662static int erase_xfer(partition_t *part , uint16_t xfernum ) 
 5663{ int ret ;
 5664  struct xfer_info_t *xfer ;
 5665  struct erase_info *erase ;
 5666  struct _ddebug descriptor ;
 5667  long tmp ;
 5668  void *tmp___0 ;
 5669  unsigned long __cil_tmp9 ;
 5670  unsigned long __cil_tmp10 ;
 5671  unsigned long __cil_tmp11 ;
 5672  struct xfer_info_t *__cil_tmp12 ;
 5673  struct _ddebug *__cil_tmp13 ;
 5674  unsigned long __cil_tmp14 ;
 5675  unsigned long __cil_tmp15 ;
 5676  unsigned long __cil_tmp16 ;
 5677  unsigned long __cil_tmp17 ;
 5678  unsigned long __cil_tmp18 ;
 5679  unsigned long __cil_tmp19 ;
 5680  unsigned char __cil_tmp20 ;
 5681  long __cil_tmp21 ;
 5682  long __cil_tmp22 ;
 5683  uint32_t __cil_tmp23 ;
 5684  unsigned long __cil_tmp24 ;
 5685  unsigned long __cil_tmp25 ;
 5686  struct erase_info *__cil_tmp26 ;
 5687  unsigned long __cil_tmp27 ;
 5688  unsigned long __cil_tmp28 ;
 5689  unsigned long __cil_tmp29 ;
 5690  unsigned long __cil_tmp30 ;
 5691  unsigned long __cil_tmp31 ;
 5692  unsigned long __cil_tmp32 ;
 5693  unsigned long __cil_tmp33 ;
 5694  unsigned long __cil_tmp34 ;
 5695  unsigned long __cil_tmp35 ;
 5696  uint32_t __cil_tmp36 ;
 5697  unsigned long __cil_tmp37 ;
 5698  unsigned long __cil_tmp38 ;
 5699  unsigned long __cil_tmp39 ;
 5700  unsigned long __cil_tmp40 ;
 5701  unsigned long __cil_tmp41 ;
 5702  uint8_t __cil_tmp42 ;
 5703  int __cil_tmp43 ;
 5704  int __cil_tmp44 ;
 5705  unsigned long __cil_tmp45 ;
 5706  unsigned long __cil_tmp46 ;
 5707  unsigned long __cil_tmp47 ;
 5708  unsigned long __cil_tmp48 ;
 5709  unsigned long __cil_tmp49 ;
 5710  struct mtd_info *__cil_tmp50 ;
 5711  unsigned long __cil_tmp51 ;
 5712  unsigned long __cil_tmp52 ;
 5713  unsigned long __cil_tmp53 ;
 5714  unsigned long __cil_tmp54 ;
 5715  uint32_t __cil_tmp55 ;
 5716  void const   *__cil_tmp56 ;
 5717
 5718  {
 5719  {
 5720#line 356
 5721  __cil_tmp9 = (unsigned long )xfernum;
 5722#line 356
 5723  __cil_tmp10 = (unsigned long )part;
 5724#line 356
 5725  __cil_tmp11 = __cil_tmp10 + 392;
 5726#line 356
 5727  __cil_tmp12 = *((struct xfer_info_t **)__cil_tmp11);
 5728#line 356
 5729  xfer = __cil_tmp12 + __cil_tmp9;
 5730#line 357
 5731  __cil_tmp13 = & descriptor;
 5732#line 357
 5733  *((char const   **)__cil_tmp13) = "ftl";
 5734#line 357
 5735  __cil_tmp14 = (unsigned long )(& descriptor) + 8;
 5736#line 357
 5737  *((char const   **)__cil_tmp14) = "erase_xfer";
 5738#line 357
 5739  __cil_tmp15 = (unsigned long )(& descriptor) + 16;
 5740#line 357
 5741  *((char const   **)__cil_tmp15) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 5742#line 357
 5743  __cil_tmp16 = (unsigned long )(& descriptor) + 24;
 5744#line 357
 5745  *((char const   **)__cil_tmp16) = "ftl_cs: erasing xfer unit at 0x%x\n";
 5746#line 357
 5747  __cil_tmp17 = (unsigned long )(& descriptor) + 32;
 5748#line 357
 5749  *((unsigned int *)__cil_tmp17) = 357U;
 5750#line 357
 5751  __cil_tmp18 = (unsigned long )(& descriptor) + 35;
 5752#line 357
 5753  *((unsigned char *)__cil_tmp18) = (unsigned char)0;
 5754#line 357
 5755  __cil_tmp19 = (unsigned long )(& descriptor) + 35;
 5756#line 357
 5757  __cil_tmp20 = *((unsigned char *)__cil_tmp19);
 5758#line 357
 5759  __cil_tmp21 = (long )__cil_tmp20;
 5760#line 357
 5761  __cil_tmp22 = __cil_tmp21 & 1L;
 5762#line 357
 5763  tmp = __builtin_expect(__cil_tmp22, 0L);
 5764  }
 5765#line 357
 5766  if (tmp != 0L) {
 5767    {
 5768#line 357
 5769    __cil_tmp23 = *((uint32_t *)xfer);
 5770#line 357
 5771    __dynamic_pr_debug(& descriptor, "ftl_cs: erasing xfer unit at 0x%x\n", __cil_tmp23);
 5772    }
 5773  } else {
 5774
 5775  }
 5776  {
 5777#line 358
 5778  __cil_tmp24 = (unsigned long )xfer;
 5779#line 358
 5780  __cil_tmp25 = __cil_tmp24 + 8;
 5781#line 358
 5782  *((uint16_t *)__cil_tmp25) = (uint16_t )1U;
 5783#line 363
 5784  tmp___0 = kmalloc(88UL, 208U);
 5785#line 363
 5786  erase = (struct erase_info *)tmp___0;
 5787  }
 5788  {
 5789#line 364
 5790  __cil_tmp26 = (struct erase_info *)0;
 5791#line 364
 5792  __cil_tmp27 = (unsigned long )__cil_tmp26;
 5793#line 364
 5794  __cil_tmp28 = (unsigned long )erase;
 5795#line 364
 5796  if (__cil_tmp28 == __cil_tmp27) {
 5797#line 365
 5798    return (-12);
 5799  } else {
 5800
 5801  }
 5802  }
 5803  {
 5804#line 367
 5805  __cil_tmp29 = 0 + 24;
 5806#line 367
 5807  __cil_tmp30 = (unsigned long )part;
 5808#line 367
 5809  __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
 5810#line 367
 5811  *((struct mtd_info **)erase) = *((struct mtd_info **)__cil_tmp31);
 5812#line 368
 5813  __cil_tmp32 = (unsigned long )erase;
 5814#line 368
 5815  __cil_tmp33 = __cil_tmp32 + 56;
 5816#line 368
 5817  *((void (**)(struct erase_info * ))__cil_tmp33) = & ftl_erase_callback;
 5818#line 369
 5819  __cil_tmp34 = (unsigned long )erase;
 5820#line 369
 5821  __cil_tmp35 = __cil_tmp34 + 8;
 5822#line 369
 5823  __cil_tmp36 = *((uint32_t *)xfer);
 5824#line 369
 5825  *((uint64_t *)__cil_tmp35) = (uint64_t )__cil_tmp36;
 5826#line 370
 5827  __cil_tmp37 = (unsigned long )erase;
 5828#line 370
 5829  __cil_tmp38 = __cil_tmp37 + 16;
 5830#line 370
 5831  __cil_tmp39 = 424 + 23;
 5832#line 370
 5833  __cil_tmp40 = (unsigned long )part;
 5834#line 370
 5835  __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
 5836#line 370
 5837  __cil_tmp42 = *((uint8_t *)__cil_tmp41);
 5838#line 370
 5839  __cil_tmp43 = (int )__cil_tmp42;
 5840#line 370
 5841  __cil_tmp44 = 1 << __cil_tmp43;
 5842#line 370
 5843  *((uint64_t *)__cil_tmp38) = (uint64_t )__cil_tmp44;
 5844#line 371
 5845  __cil_tmp45 = (unsigned long )erase;
 5846#line 371
 5847  __cil_tmp46 = __cil_tmp45 + 64;
 5848#line 371
 5849  *((u_long *)__cil_tmp46) = (unsigned long )part;
 5850#line 373
 5851  __cil_tmp47 = 0 + 24;
 5852#line 373
 5853  __cil_tmp48 = (unsigned long )part;
 5854#line 373
 5855  __cil_tmp49 = __cil_tmp48 + __cil_tmp47;
 5856#line 373
 5857  __cil_tmp50 = *((struct mtd_info **)__cil_tmp49);
 5858#line 373
 5859  ret = mtd_erase(__cil_tmp50, erase);
 5860  }
 5861#line 375
 5862  if (ret == 0) {
 5863#line 376
 5864    __cil_tmp51 = (unsigned long )xfer;
 5865#line 376
 5866    __cil_tmp52 = __cil_tmp51 + 4;
 5867#line 376
 5868    __cil_tmp53 = (unsigned long )xfer;
 5869#line 376
 5870    __cil_tmp54 = __cil_tmp53 + 4;
 5871#line 376
 5872    __cil_tmp55 = *((uint32_t *)__cil_tmp54);
 5873#line 376
 5874    *((uint32_t *)__cil_tmp52) = __cil_tmp55 + 1U;
 5875  } else {
 5876    {
 5877#line 378
 5878    __cil_tmp56 = (void const   *)erase;
 5879#line 378
 5880    kfree(__cil_tmp56);
 5881    }
 5882  }
 5883#line 380
 5884  return (ret);
 5885}
 5886}
 5887#line 390 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 5888static void ftl_erase_callback(struct erase_info *erase ) 
 5889{ partition_t *part ;
 5890  struct xfer_info_t *xfer ;
 5891  int i ;
 5892  unsigned long __cil_tmp5 ;
 5893  unsigned long __cil_tmp6 ;
 5894  u_long __cil_tmp7 ;
 5895  unsigned long __cil_tmp8 ;
 5896  unsigned long __cil_tmp9 ;
 5897  uint64_t __cil_tmp10 ;
 5898  unsigned long __cil_tmp11 ;
 5899  unsigned long __cil_tmp12 ;
 5900  unsigned long __cil_tmp13 ;
 5901  struct xfer_info_t *__cil_tmp14 ;
 5902  struct xfer_info_t *__cil_tmp15 ;
 5903  uint32_t __cil_tmp16 ;
 5904  uint64_t __cil_tmp17 ;
 5905  unsigned long __cil_tmp18 ;
 5906  unsigned long __cil_tmp19 ;
 5907  unsigned long __cil_tmp20 ;
 5908  uint8_t __cil_tmp21 ;
 5909  int __cil_tmp22 ;
 5910  unsigned long __cil_tmp23 ;
 5911  unsigned long __cil_tmp24 ;
 5912  unsigned long __cil_tmp25 ;
 5913  uint8_t __cil_tmp26 ;
 5914  int __cil_tmp27 ;
 5915  unsigned long __cil_tmp28 ;
 5916  unsigned long __cil_tmp29 ;
 5917  unsigned long __cil_tmp30 ;
 5918  struct xfer_info_t *__cil_tmp31 ;
 5919  unsigned long __cil_tmp32 ;
 5920  unsigned long __cil_tmp33 ;
 5921  u_char __cil_tmp34 ;
 5922  unsigned int __cil_tmp35 ;
 5923  unsigned long __cil_tmp36 ;
 5924  unsigned long __cil_tmp37 ;
 5925  unsigned long __cil_tmp38 ;
 5926  unsigned long __cil_tmp39 ;
 5927  unsigned long __cil_tmp40 ;
 5928  unsigned long __cil_tmp41 ;
 5929  u_char __cil_tmp42 ;
 5930  int __cil_tmp43 ;
 5931  void const   *__cil_tmp44 ;
 5932
 5933  {
 5934#line 397
 5935  __cil_tmp5 = (unsigned long )erase;
 5936#line 397
 5937  __cil_tmp6 = __cil_tmp5 + 64;
 5938#line 397
 5939  __cil_tmp7 = *((u_long *)__cil_tmp6);
 5940#line 397
 5941  part = (partition_t *)__cil_tmp7;
 5942#line 399
 5943  i = 0;
 5944#line 399
 5945  goto ldv_22268;
 5946  ldv_22267: ;
 5947  {
 5948#line 400
 5949  __cil_tmp8 = (unsigned long )erase;
 5950#line 400
 5951  __cil_tmp9 = __cil_tmp8 + 8;
 5952#line 400
 5953  __cil_tmp10 = *((uint64_t *)__cil_tmp9);
 5954#line 400
 5955  __cil_tmp11 = (unsigned long )i;
 5956#line 400
 5957  __cil_tmp12 = (unsigned long )part;
 5958#line 400
 5959  __cil_tmp13 = __cil_tmp12 + 392;
 5960#line 400
 5961  __cil_tmp14 = *((struct xfer_info_t **)__cil_tmp13);
 5962#line 400
 5963  __cil_tmp15 = __cil_tmp14 + __cil_tmp11;
 5964#line 400
 5965  __cil_tmp16 = *((uint32_t *)__cil_tmp15);
 5966#line 400
 5967  __cil_tmp17 = (uint64_t )__cil_tmp16;
 5968#line 400
 5969  if (__cil_tmp17 == __cil_tmp10) {
 5970#line 400
 5971    goto ldv_22266;
 5972  } else {
 5973
 5974  }
 5975  }
 5976#line 399
 5977  i = i + 1;
 5978  ldv_22268: ;
 5979  {
 5980#line 399
 5981  __cil_tmp18 = 424 + 15;
 5982#line 399
 5983  __cil_tmp19 = (unsigned long )part;
 5984#line 399
 5985  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
 5986#line 399
 5987  __cil_tmp21 = *((uint8_t *)__cil_tmp20);
 5988#line 399
 5989  __cil_tmp22 = (int )__cil_tmp21;
 5990#line 399
 5991  if (__cil_tmp22 > i) {
 5992#line 400
 5993    goto ldv_22267;
 5994  } else {
 5995#line 402
 5996    goto ldv_22266;
 5997  }
 5998  }
 5999  ldv_22266: ;
 6000  {
 6001#line 402
 6002  __cil_tmp23 = 424 + 15;
 6003#line 402
 6004  __cil_tmp24 = (unsigned long )part;
 6005#line 402
 6006  __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
 6007#line 402
 6008  __cil_tmp26 = *((uint8_t *)__cil_tmp25);
 6009#line 402
 6010  __cil_tmp27 = (int )__cil_tmp26;
 6011#line 402
 6012  if (__cil_tmp27 == i) {
 6013    {
 6014#line 403
 6015    printk("<5>ftl_cs: internal error: erase lookup failed!\n");
 6016    }
 6017#line 405
 6018    return;
 6019  } else {
 6020
 6021  }
 6022  }
 6023#line 408
 6024  __cil_tmp28 = (unsigned long )i;
 6025#line 408
 6026  __cil_tmp29 = (unsigned long )part;
 6027#line 408
 6028  __cil_tmp30 = __cil_tmp29 + 392;
 6029#line 408
 6030  __cil_tmp31 = *((struct xfer_info_t **)__cil_tmp30);
 6031#line 408
 6032  xfer = __cil_tmp31 + __cil_tmp28;
 6033  {
 6034#line 409
 6035  __cil_tmp32 = (unsigned long )erase;
 6036#line 409
 6037  __cil_tmp33 = __cil_tmp32 + 72;
 6038#line 409
 6039  __cil_tmp34 = *((u_char *)__cil_tmp33);
 6040#line 409
 6041  __cil_tmp35 = (unsigned int )__cil_tmp34;
 6042#line 409
 6043  if (__cil_tmp35 == 8U) {
 6044#line 410
 6045    __cil_tmp36 = (unsigned long )xfer;
 6046#line 410
 6047    __cil_tmp37 = __cil_tmp36 + 8;
 6048#line 410
 6049    *((uint16_t *)__cil_tmp37) = (uint16_t )2U;
 6050  } else {
 6051    {
 6052#line 412
 6053    __cil_tmp38 = (unsigned long )xfer;
 6054#line 412
 6055    __cil_tmp39 = __cil_tmp38 + 8;
 6056#line 412
 6057    *((uint16_t *)__cil_tmp39) = (uint16_t )4U;
 6058#line 413
 6059    __cil_tmp40 = (unsigned long )erase;
 6060#line 413
 6061    __cil_tmp41 = __cil_tmp40 + 72;
 6062#line 413
 6063    __cil_tmp42 = *((u_char *)__cil_tmp41);
 6064#line 413
 6065    __cil_tmp43 = (int )__cil_tmp42;
 6066#line 413
 6067    printk("<5>ftl_cs: erase failed: state = %d\n", __cil_tmp43);
 6068    }
 6069  }
 6070  }
 6071  {
 6072#line 417
 6073  __cil_tmp44 = (void const   *)erase;
 6074#line 417
 6075  kfree(__cil_tmp44);
 6076  }
 6077#line 418
 6078  return;
 6079}
 6080}
 6081#line 421 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 6082static int prepare_xfer(partition_t *part , int i ) 
 6083{ erase_unit_header_t header ;
 6084  struct xfer_info_t *xfer ;
 6085  int nbam ;
 6086  int ret ;
 6087  uint32_t ctl ;
 6088  ssize_t retlen ;
 6089  loff_t offset ;
 6090  struct _ddebug descriptor ;
 6091  long tmp ;
 6092  unsigned long __cil_tmp12 ;
 6093  unsigned long __cil_tmp13 ;
 6094  unsigned long __cil_tmp14 ;
 6095  struct xfer_info_t *__cil_tmp15 ;
 6096  unsigned long __cil_tmp16 ;
 6097  unsigned long __cil_tmp17 ;
 6098  struct _ddebug *__cil_tmp18 ;
 6099  unsigned long __cil_tmp19 ;
 6100  unsigned long __cil_tmp20 ;
 6101  unsigned long __cil_tmp21 ;
 6102  unsigned long __cil_tmp22 ;
 6103  unsigned long __cil_tmp23 ;
 6104  unsigned long __cil_tmp24 ;
 6105  unsigned char __cil_tmp25 ;
 6106  long __cil_tmp26 ;
 6107  long __cil_tmp27 ;
 6108  uint32_t __cil_tmp28 ;
 6109  erase_unit_header_t *__cil_tmp29 ;
 6110  unsigned long __cil_tmp30 ;
 6111  unsigned long __cil_tmp31 ;
 6112  unsigned long __cil_tmp32 ;
 6113  unsigned long __cil_tmp33 ;
 6114  unsigned long __cil_tmp34 ;
 6115  unsigned long __cil_tmp35 ;
 6116  unsigned long __cil_tmp36 ;
 6117  unsigned long __cil_tmp37 ;
 6118  unsigned long __cil_tmp38 ;
 6119  struct mtd_info *__cil_tmp39 ;
 6120  uint32_t __cil_tmp40 ;
 6121  loff_t __cil_tmp41 ;
 6122  size_t *__cil_tmp42 ;
 6123  u_char const   *__cil_tmp43 ;
 6124  unsigned long __cil_tmp44 ;
 6125  unsigned long __cil_tmp45 ;
 6126  unsigned long __cil_tmp46 ;
 6127  uint32_t __cil_tmp47 ;
 6128  unsigned long __cil_tmp48 ;
 6129  unsigned long __cil_tmp49 ;
 6130  unsigned long __cil_tmp50 ;
 6131  uint32_t __cil_tmp51 ;
 6132  unsigned long __cil_tmp52 ;
 6133  unsigned long __cil_tmp53 ;
 6134  unsigned long __cil_tmp54 ;
 6135  unsigned long __cil_tmp55 ;
 6136  unsigned long __cil_tmp56 ;
 6137  unsigned long __cil_tmp57 ;
 6138  unsigned long __cil_tmp58 ;
 6139  unsigned long __cil_tmp59 ;
 6140  uint32_t __cil_tmp60 ;
 6141  uint32_t __cil_tmp61 ;
 6142  uint32_t __cil_tmp62 ;
 6143  uint32_t *__cil_tmp63 ;
 6144  unsigned long __cil_tmp64 ;
 6145  unsigned long __cil_tmp65 ;
 6146  unsigned long __cil_tmp66 ;
 6147  struct mtd_info *__cil_tmp67 ;
 6148  size_t *__cil_tmp68 ;
 6149  u_char const   *__cil_tmp69 ;
 6150  unsigned long long __cil_tmp70 ;
 6151  unsigned long long __cil_tmp71 ;
 6152  unsigned long __cil_tmp72 ;
 6153  unsigned long __cil_tmp73 ;
 6154
 6155  {
 6156  {
 6157#line 430
 6158  __cil_tmp12 = (unsigned long )i;
 6159#line 430
 6160  __cil_tmp13 = (unsigned long )part;
 6161#line 430
 6162  __cil_tmp14 = __cil_tmp13 + 392;
 6163#line 430
 6164  __cil_tmp15 = *((struct xfer_info_t **)__cil_tmp14);
 6165#line 430
 6166  xfer = __cil_tmp15 + __cil_tmp12;
 6167#line 431
 6168  __cil_tmp16 = (unsigned long )xfer;
 6169#line 431
 6170  __cil_tmp17 = __cil_tmp16 + 8;
 6171#line 431
 6172  *((uint16_t *)__cil_tmp17) = (uint16_t )4U;
 6173#line 433
 6174  __cil_tmp18 = & descriptor;
 6175#line 433
 6176  *((char const   **)__cil_tmp18) = "ftl";
 6177#line 433
 6178  __cil_tmp19 = (unsigned long )(& descriptor) + 8;
 6179#line 433
 6180  *((char const   **)__cil_tmp19) = "prepare_xfer";
 6181#line 433
 6182  __cil_tmp20 = (unsigned long )(& descriptor) + 16;
 6183#line 433
 6184  *((char const   **)__cil_tmp20) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 6185#line 433
 6186  __cil_tmp21 = (unsigned long )(& descriptor) + 24;
 6187#line 433
 6188  *((char const   **)__cil_tmp21) = "ftl_cs: preparing xfer unit at 0x%x\n";
 6189#line 433
 6190  __cil_tmp22 = (unsigned long )(& descriptor) + 32;
 6191#line 433
 6192  *((unsigned int *)__cil_tmp22) = 433U;
 6193#line 433
 6194  __cil_tmp23 = (unsigned long )(& descriptor) + 35;
 6195#line 433
 6196  *((unsigned char *)__cil_tmp23) = (unsigned char)0;
 6197#line 433
 6198  __cil_tmp24 = (unsigned long )(& descriptor) + 35;
 6199#line 433
 6200  __cil_tmp25 = *((unsigned char *)__cil_tmp24);
 6201#line 433
 6202  __cil_tmp26 = (long )__cil_tmp25;
 6203#line 433
 6204  __cil_tmp27 = __cil_tmp26 & 1L;
 6205#line 433
 6206  tmp = __builtin_expect(__cil_tmp27, 0L);
 6207  }
 6208#line 433
 6209  if (tmp != 0L) {
 6210    {
 6211#line 433
 6212    __cil_tmp28 = *((uint32_t *)xfer);
 6213#line 433
 6214    __dynamic_pr_debug(& descriptor, "ftl_cs: preparing xfer unit at 0x%x\n", __cil_tmp28);
 6215    }
 6216  } else {
 6217
 6218  }
 6219  {
 6220#line 436
 6221  __cil_tmp29 = & header;
 6222#line 436
 6223  __cil_tmp30 = (unsigned long )part;
 6224#line 436
 6225  __cil_tmp31 = __cil_tmp30 + 424;
 6226#line 436
 6227  *__cil_tmp29 = *((erase_unit_header_t *)__cil_tmp31);
 6228#line 437
 6229  __cil_tmp32 = (unsigned long )(& header) + 20;
 6230#line 437
 6231  *((uint16_t *)__cil_tmp32) = (uint16_t )65535U;
 6232#line 438
 6233  __cil_tmp33 = (unsigned long )(& header) + 16;
 6234#line 438
 6235  __cil_tmp34 = (unsigned long )xfer;
 6236#line 438
 6237  __cil_tmp35 = __cil_tmp34 + 4;
 6238#line 438
 6239  *((uint32_t *)__cil_tmp33) = *((uint32_t *)__cil_tmp35);
 6240#line 440
 6241  __cil_tmp36 = 0 + 24;
 6242#line 440
 6243  __cil_tmp37 = (unsigned long )part;
 6244#line 440
 6245  __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
 6246#line 440
 6247  __cil_tmp39 = *((struct mtd_info **)__cil_tmp38);
 6248#line 440
 6249  __cil_tmp40 = *((uint32_t *)xfer);
 6250#line 440
 6251  __cil_tmp41 = (loff_t )__cil_tmp40;
 6252#line 440
 6253  __cil_tmp42 = (size_t *)(& retlen);
 6254#line 440
 6255  __cil_tmp43 = (u_char const   *)(& header);
 6256#line 440
 6257  ret = mtd_write(__cil_tmp39, __cil_tmp41, 68UL, __cil_tmp42, __cil_tmp43);
 6258  }
 6259#line 443
 6260  if (ret != 0) {
 6261#line 444
 6262    return (ret);
 6263  } else {
 6264
 6265  }
 6266#line 448
 6267  __cil_tmp44 = 424 + 48;
 6268#line 448
 6269  __cil_tmp45 = (unsigned long )part;
 6270#line 448
 6271  __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
 6272#line 448
 6273  __cil_tmp47 = *((uint32_t *)__cil_tmp46);
 6274#line 448
 6275  __cil_tmp48 = (unsigned long )__cil_tmp47;
 6276#line 448
 6277  __cil_tmp49 = (unsigned long )part;
 6278#line 448
 6279  __cil_tmp50 = __cil_tmp49 + 420;
 6280#line 448
 6281  __cil_tmp51 = *((uint32_t *)__cil_tmp50);
 6282#line 448
 6283  __cil_tmp52 = (unsigned long )__cil_tmp51;
 6284#line 448
 6285  __cil_tmp53 = __cil_tmp52 * 4UL;
 6286#line 448
 6287  __cil_tmp54 = __cil_tmp53 + __cil_tmp48;
 6288#line 448
 6289  __cil_tmp55 = __cil_tmp54 + 511UL;
 6290#line 448
 6291  __cil_tmp56 = __cil_tmp55 / 512UL;
 6292#line 448
 6293  nbam = (int )__cil_tmp56;
 6294#line 451
 6295  __cil_tmp57 = 424 + 48;
 6296#line 451
 6297  __cil_tmp58 = (unsigned long )part;
 6298#line 451
 6299  __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
 6300#line 451
 6301  __cil_tmp60 = *((uint32_t *)__cil_tmp59);
 6302#line 451
 6303  __cil_tmp61 = *((uint32_t *)xfer);
 6304#line 451
 6305  __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
 6306#line 451
 6307  offset = (loff_t )__cil_tmp62;
 6308#line 452
 6309  __cil_tmp63 = & ctl;
 6310#line 452
 6311  *__cil_tmp63 = 48U;
 6312#line 454
 6313  i = 0;
 6314#line 454
 6315  goto ldv_22283;
 6316  ldv_22282: 
 6317  {
 6318#line 456
 6319  __cil_tmp64 = 0 + 24;
 6320#line 456
 6321  __cil_tmp65 = (unsigned long )part;
 6322#line 456
 6323  __cil_tmp66 = __cil_tmp65 + __cil_tmp64;
 6324#line 456
 6325  __cil_tmp67 = *((struct mtd_info **)__cil_tmp66);
 6326#line 456
 6327  __cil_tmp68 = (size_t *)(& retlen);
 6328#line 456
 6329  __cil_tmp69 = (u_char const   *)(& ctl);
 6330#line 456
 6331  ret = mtd_write(__cil_tmp67, offset, 4UL, __cil_tmp68, __cil_tmp69);
 6332  }
 6333#line 459
 6334  if (ret != 0) {
 6335#line 460
 6336    return (ret);
 6337  } else {
 6338
 6339  }
 6340#line 454
 6341  i = i + 1;
 6342#line 454
 6343  __cil_tmp70 = (unsigned long long )offset;
 6344#line 454
 6345  __cil_tmp71 = __cil_tmp70 + 4ULL;
 6346#line 454
 6347  offset = (loff_t )__cil_tmp71;
 6348  ldv_22283: ;
 6349#line 454
 6350  if (i < nbam) {
 6351#line 455
 6352    goto ldv_22282;
 6353  } else {
 6354#line 457
 6355    goto ldv_22284;
 6356  }
 6357  ldv_22284: 
 6358#line 462
 6359  __cil_tmp72 = (unsigned long )xfer;
 6360#line 462
 6361  __cil_tmp73 = __cil_tmp72 + 8;
 6362#line 462
 6363  *((uint16_t *)__cil_tmp73) = (uint16_t )3U;
 6364#line 463
 6365  return (0);
 6366}
 6367}
 6368#line 479 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 6369static int copy_erase_unit(partition_t *part , uint16_t srcunit , uint16_t xferunit ) 
 6370{ u_char buf[512U] ;
 6371  struct eun_info_t *eun ;
 6372  struct xfer_info_t *xfer ;
 6373  uint32_t src ;
 6374  uint32_t dest ;
 6375  uint32_t free ;
 6376  uint32_t i ;
 6377  uint16_t unit ;
 6378  int ret ;
 6379  ssize_t retlen ;
 6380  loff_t offset ;
 6381  uint16_t srcunitswap ;
 6382  struct _ddebug descriptor ;
 6383  long tmp ;
 6384  uint16_t *__cil_tmp18 ;
 6385  unsigned long __cil_tmp19 ;
 6386  unsigned long __cil_tmp20 ;
 6387  unsigned long __cil_tmp21 ;
 6388  struct eun_info_t *__cil_tmp22 ;
 6389  unsigned long __cil_tmp23 ;
 6390  unsigned long __cil_tmp24 ;
 6391  unsigned long __cil_tmp25 ;
 6392  struct xfer_info_t *__cil_tmp26 ;
 6393  struct _ddebug *__cil_tmp27 ;
 6394  unsigned long __cil_tmp28 ;
 6395  unsigned long __cil_tmp29 ;
 6396  unsigned long __cil_tmp30 ;
 6397  unsigned long __cil_tmp31 ;
 6398  unsigned long __cil_tmp32 ;
 6399  unsigned long __cil_tmp33 ;
 6400  unsigned char __cil_tmp34 ;
 6401  long __cil_tmp35 ;
 6402  long __cil_tmp36 ;
 6403  uint32_t __cil_tmp37 ;
 6404  uint32_t __cil_tmp38 ;
 6405  int __cil_tmp39 ;
 6406  unsigned long __cil_tmp40 ;
 6407  unsigned long __cil_tmp41 ;
 6408  uint16_t __cil_tmp42 ;
 6409  int __cil_tmp43 ;
 6410  unsigned long __cil_tmp44 ;
 6411  unsigned long __cil_tmp45 ;
 6412  unsigned long __cil_tmp46 ;
 6413  uint32_t __cil_tmp47 ;
 6414  uint32_t __cil_tmp48 ;
 6415  uint32_t __cil_tmp49 ;
 6416  unsigned long __cil_tmp50 ;
 6417  unsigned long __cil_tmp51 ;
 6418  unsigned long __cil_tmp52 ;
 6419  struct mtd_info *__cil_tmp53 ;
 6420  unsigned long __cil_tmp54 ;
 6421  unsigned long __cil_tmp55 ;
 6422  uint32_t __cil_tmp56 ;
 6423  unsigned long __cil_tmp57 ;
 6424  unsigned long __cil_tmp58 ;
 6425  size_t *__cil_tmp59 ;
 6426  unsigned long __cil_tmp60 ;
 6427  unsigned long __cil_tmp61 ;
 6428  uint32_t *__cil_tmp62 ;
 6429  u_char *__cil_tmp63 ;
 6430  unsigned long __cil_tmp64 ;
 6431  unsigned long __cil_tmp65 ;
 6432  unsigned long __cil_tmp66 ;
 6433  unsigned long __cil_tmp67 ;
 6434  uint32_t __cil_tmp68 ;
 6435  uint32_t __cil_tmp69 ;
 6436  uint16_t *__cil_tmp70 ;
 6437  unsigned long __cil_tmp71 ;
 6438  unsigned long __cil_tmp72 ;
 6439  unsigned long __cil_tmp73 ;
 6440  struct mtd_info *__cil_tmp74 ;
 6441  size_t *__cil_tmp75 ;
 6442  u_char const   *__cil_tmp76 ;
 6443  unsigned long __cil_tmp77 ;
 6444  unsigned long __cil_tmp78 ;
 6445  unsigned long __cil_tmp79 ;
 6446  uint32_t *__cil_tmp80 ;
 6447  uint32_t *__cil_tmp81 ;
 6448  uint32_t __cil_tmp82 ;
 6449  unsigned int __cil_tmp83 ;
 6450  unsigned long __cil_tmp84 ;
 6451  unsigned long __cil_tmp85 ;
 6452  unsigned long __cil_tmp86 ;
 6453  struct mtd_info *__cil_tmp87 ;
 6454  loff_t __cil_tmp88 ;
 6455  size_t *__cil_tmp89 ;
 6456  u_char *__cil_tmp90 ;
 6457  unsigned long __cil_tmp91 ;
 6458  unsigned long __cil_tmp92 ;
 6459  unsigned long __cil_tmp93 ;
 6460  struct mtd_info *__cil_tmp94 ;
 6461  loff_t __cil_tmp95 ;
 6462  size_t *__cil_tmp96 ;
 6463  u_char const   *__cil_tmp97 ;
 6464  unsigned long __cil_tmp98 ;
 6465  unsigned long __cil_tmp99 ;
 6466  unsigned long __cil_tmp100 ;
 6467  uint32_t *__cil_tmp101 ;
 6468  uint32_t *__cil_tmp102 ;
 6469  unsigned long __cil_tmp103 ;
 6470  unsigned long __cil_tmp104 ;
 6471  uint32_t __cil_tmp105 ;
 6472  unsigned long __cil_tmp106 ;
 6473  unsigned long __cil_tmp107 ;
 6474  unsigned long __cil_tmp108 ;
 6475  struct mtd_info *__cil_tmp109 ;
 6476  unsigned long __cil_tmp110 ;
 6477  unsigned long __cil_tmp111 ;
 6478  unsigned long __cil_tmp112 ;
 6479  uint32_t __cil_tmp113 ;
 6480  uint32_t __cil_tmp114 ;
 6481  uint32_t __cil_tmp115 ;
 6482  loff_t __cil_tmp116 ;
 6483  unsigned long __cil_tmp117 ;
 6484  unsigned long __cil_tmp118 ;
 6485  uint32_t __cil_tmp119 ;
 6486  unsigned long __cil_tmp120 ;
 6487  unsigned long __cil_tmp121 ;
 6488  size_t *__cil_tmp122 ;
 6489  unsigned long __cil_tmp123 ;
 6490  unsigned long __cil_tmp124 ;
 6491  uint32_t *__cil_tmp125 ;
 6492  u_char const   *__cil_tmp126 ;
 6493  unsigned long __cil_tmp127 ;
 6494  unsigned long __cil_tmp128 ;
 6495  unsigned long __cil_tmp129 ;
 6496  struct mtd_info *__cil_tmp130 ;
 6497  uint32_t __cil_tmp131 ;
 6498  uint32_t __cil_tmp132 ;
 6499  loff_t __cil_tmp133 ;
 6500  size_t *__cil_tmp134 ;
 6501  u_char const   *__cil_tmp135 ;
 6502  unsigned long __cil_tmp136 ;
 6503  unsigned long __cil_tmp137 ;
 6504  unsigned long __cil_tmp138 ;
 6505  unsigned long __cil_tmp139 ;
 6506  unsigned long __cil_tmp140 ;
 6507  unsigned long __cil_tmp141 ;
 6508  unsigned long __cil_tmp142 ;
 6509  unsigned long __cil_tmp143 ;
 6510  unsigned long __cil_tmp144 ;
 6511  unsigned long __cil_tmp145 ;
 6512  unsigned long __cil_tmp146 ;
 6513  unsigned long __cil_tmp147 ;
 6514  uint32_t __cil_tmp148 ;
 6515  unsigned long __cil_tmp149 ;
 6516  unsigned long __cil_tmp150 ;
 6517  uint32_t __cil_tmp151 ;
 6518  unsigned long __cil_tmp152 ;
 6519  unsigned long __cil_tmp153 ;
 6520  unsigned long __cil_tmp154 ;
 6521  unsigned long __cil_tmp155 ;
 6522  uint32_t __cil_tmp156 ;
 6523  unsigned long __cil_tmp157 ;
 6524  unsigned long __cil_tmp158 ;
 6525  unsigned long __cil_tmp159 ;
 6526  unsigned long __cil_tmp160 ;
 6527  unsigned long __cil_tmp161 ;
 6528  unsigned long __cil_tmp162 ;
 6529
 6530  {
 6531  {
 6532#line 490
 6533  __cil_tmp18 = & srcunitswap;
 6534#line 490
 6535  *__cil_tmp18 = srcunit;
 6536#line 492
 6537  __cil_tmp19 = (unsigned long )srcunit;
 6538#line 492
 6539  __cil_tmp20 = (unsigned long )part;
 6540#line 492
 6541  __cil_tmp21 = __cil_tmp20 + 384;
 6542#line 492
 6543  __cil_tmp22 = *((struct eun_info_t **)__cil_tmp21);
 6544#line 492
 6545  eun = __cil_tmp22 + __cil_tmp19;
 6546#line 493
 6547  __cil_tmp23 = (unsigned long )xferunit;
 6548#line 493
 6549  __cil_tmp24 = (unsigned long )part;
 6550#line 493
 6551  __cil_tmp25 = __cil_tmp24 + 392;
 6552#line 493
 6553  __cil_tmp26 = *((struct xfer_info_t **)__cil_tmp25);
 6554#line 493
 6555  xfer = __cil_tmp26 + __cil_tmp23;
 6556#line 494
 6557  __cil_tmp27 = & descriptor;
 6558#line 494
 6559  *((char const   **)__cil_tmp27) = "ftl";
 6560#line 494
 6561  __cil_tmp28 = (unsigned long )(& descriptor) + 8;
 6562#line 494
 6563  *((char const   **)__cil_tmp28) = "copy_erase_unit";
 6564#line 494
 6565  __cil_tmp29 = (unsigned long )(& descriptor) + 16;
 6566#line 494
 6567  *((char const   **)__cil_tmp29) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 6568#line 494
 6569  __cil_tmp30 = (unsigned long )(& descriptor) + 24;
 6570#line 494
 6571  *((char const   **)__cil_tmp30) = "ftl_cs: copying block 0x%x to 0x%x\n";
 6572#line 494
 6573  __cil_tmp31 = (unsigned long )(& descriptor) + 32;
 6574#line 494
 6575  *((unsigned int *)__cil_tmp31) = 495U;
 6576#line 494
 6577  __cil_tmp32 = (unsigned long )(& descriptor) + 35;
 6578#line 494
 6579  *((unsigned char *)__cil_tmp32) = (unsigned char)0;
 6580#line 494
 6581  __cil_tmp33 = (unsigned long )(& descriptor) + 35;
 6582#line 494
 6583  __cil_tmp34 = *((unsigned char *)__cil_tmp33);
 6584#line 494
 6585  __cil_tmp35 = (long )__cil_tmp34;
 6586#line 494
 6587  __cil_tmp36 = __cil_tmp35 & 1L;
 6588#line 494
 6589  tmp = __builtin_expect(__cil_tmp36, 0L);
 6590  }
 6591#line 494
 6592  if (tmp != 0L) {
 6593    {
 6594#line 494
 6595    __cil_tmp37 = *((uint32_t *)eun);
 6596#line 494
 6597    __cil_tmp38 = *((uint32_t *)xfer);
 6598#line 494
 6599    __dynamic_pr_debug(& descriptor, "ftl_cs: copying block 0x%x to 0x%x\n", __cil_tmp37,
 6600                       __cil_tmp38);
 6601    }
 6602  } else {
 6603
 6604  }
 6605  {
 6606#line 499
 6607  __cil_tmp39 = (int )srcunit;
 6608#line 499
 6609  __cil_tmp40 = (unsigned long )part;
 6610#line 499
 6611  __cil_tmp41 = __cil_tmp40 + 400;
 6612#line 499
 6613  __cil_tmp42 = *((uint16_t *)__cil_tmp41);
 6614#line 499
 6615  __cil_tmp43 = (int )__cil_tmp42;
 6616#line 499
 6617  if (__cil_tmp43 != __cil_tmp39) {
 6618    {
 6619#line 501
 6620    __cil_tmp44 = 424 + 48;
 6621#line 501
 6622    __cil_tmp45 = (unsigned long )part;
 6623#line 501
 6624    __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
 6625#line 501
 6626    __cil_tmp47 = *((uint32_t *)__cil_tmp46);
 6627#line 501
 6628    __cil_tmp48 = *((uint32_t *)eun);
 6629#line 501
 6630    __cil_tmp49 = __cil_tmp48 + __cil_tmp47;
 6631#line 501
 6632    offset = (loff_t )__cil_tmp49;
 6633#line 503
 6634    __cil_tmp50 = 0 + 24;
 6635#line 503
 6636    __cil_tmp51 = (unsigned long )part;
 6637#line 503
 6638    __cil_tmp52 = __cil_tmp51 + __cil_tmp50;
 6639#line 503
 6640    __cil_tmp53 = *((struct mtd_info **)__cil_tmp52);
 6641#line 503
 6642    __cil_tmp54 = (unsigned long )part;
 6643#line 503
 6644    __cil_tmp55 = __cil_tmp54 + 420;
 6645#line 503
 6646    __cil_tmp56 = *((uint32_t *)__cil_tmp55);
 6647#line 503
 6648    __cil_tmp57 = (unsigned long )__cil_tmp56;
 6649#line 503
 6650    __cil_tmp58 = __cil_tmp57 * 4UL;
 6651#line 503
 6652    __cil_tmp59 = (size_t *)(& retlen);
 6653#line 503
 6654    __cil_tmp60 = (unsigned long )part;
 6655#line 503
 6656    __cil_tmp61 = __cil_tmp60 + 408;
 6657#line 503
 6658    __cil_tmp62 = *((uint32_t **)__cil_tmp61);
 6659#line 503
 6660    __cil_tmp63 = (u_char *)__cil_tmp62;
 6661#line 503
 6662    ret = mtd_read(__cil_tmp53, offset, __cil_tmp58, __cil_tmp59, __cil_tmp63);
 6663#line 508
 6664    __cil_tmp64 = (unsigned long )part;
 6665#line 508
 6666    __cil_tmp65 = __cil_tmp64 + 400;
 6667#line 508
 6668    *((uint16_t *)__cil_tmp65) = (uint16_t )65535U;
 6669    }
 6670#line 510
 6671    if (ret != 0) {
 6672      {
 6673#line 511
 6674      printk("<4>ftl: Failed to read BAM cache in copy_erase_unit()!\n");
 6675      }
 6676#line 512
 6677      return (ret);
 6678    } else {
 6679
 6680    }
 6681  } else {
 6682
 6683  }
 6684  }
 6685  {
 6686#line 517
 6687  __cil_tmp66 = (unsigned long )xfer;
 6688#line 517
 6689  __cil_tmp67 = __cil_tmp66 + 8;
 6690#line 517
 6691  *((uint16_t *)__cil_tmp67) = (uint16_t )0U;
 6692#line 518
 6693  __cil_tmp68 = *((uint32_t *)xfer);
 6694#line 518
 6695  __cil_tmp69 = __cil_tmp68 + 20U;
 6696#line 518
 6697  offset = (loff_t )__cil_tmp69;
 6698#line 519
 6699  __cil_tmp70 = & unit;
 6700#line 519
 6701  *__cil_tmp70 = (uint16_t )32767U;
 6702#line 521
 6703  __cil_tmp71 = 0 + 24;
 6704#line 521
 6705  __cil_tmp72 = (unsigned long )part;
 6706#line 521
 6707  __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
 6708#line 521
 6709  __cil_tmp74 = *((struct mtd_info **)__cil_tmp73);
 6710#line 521
 6711  __cil_tmp75 = (size_t *)(& retlen);
 6712#line 521
 6713  __cil_tmp76 = (u_char const   *)(& unit);
 6714#line 521
 6715  ret = mtd_write(__cil_tmp74, offset, 2UL, __cil_tmp75, __cil_tmp76);
 6716  }
 6717#line 524
 6718  if (ret != 0) {
 6719    {
 6720#line 525
 6721    printk("<4>ftl: Failed to write back to BAM cache in copy_erase_unit()!\n");
 6722    }
 6723#line 526
 6724    return (ret);
 6725  } else {
 6726
 6727  }
 6728#line 530
 6729  src = *((uint32_t *)eun);
 6730#line 530
 6731  dest = *((uint32_t *)xfer);
 6732#line 532
 6733  free = 0U;
 6734#line 533
 6735  ret = 0;
 6736#line 534
 6737  i = 0U;
 6738#line 534
 6739  goto ldv_22310;
 6740  ldv_22309: ;
 6741  {
 6742#line 535
 6743  __cil_tmp77 = (unsigned long )i;
 6744#line 535
 6745  __cil_tmp78 = (unsigned long )part;
 6746#line 535
 6747  __cil_tmp79 = __cil_tmp78 + 408;
 6748#line 535
 6749  __cil_tmp80 = *((uint32_t **)__cil_tmp79);
 6750#line 535
 6751  __cil_tmp81 = __cil_tmp80 + __cil_tmp77;
 6752#line 535
 6753  __cil_tmp82 = *__cil_tmp81;
 6754#line 535
 6755  __cil_tmp83 = __cil_tmp82 & 127U;
 6756#line 536
 6757  if ((int )__cil_tmp83 == 48) {
 6758#line 536
 6759    goto case_48;
 6760  } else
 6761#line 539
 6762  if ((int )__cil_tmp83 == 64) {
 6763#line 539
 6764    goto case_64;
 6765  } else
 6766#line 540
 6767  if ((int )__cil_tmp83 == 96) {
 6768#line 540
 6769    goto case_96;
 6770  } else {
 6771    {
 6772#line 557
 6773    goto switch_default;
 6774#line 535
 6775    if (0) {
 6776      case_48: /* CIL Label */ ;
 6777#line 538
 6778      goto ldv_22305;
 6779      case_64: /* CIL Label */ ;
 6780      case_96: /* CIL Label */ 
 6781      {
 6782#line 541
 6783      __cil_tmp84 = 0 + 24;
 6784#line 541
 6785      __cil_tmp85 = (unsigned long )part;
 6786#line 541
 6787      __cil_tmp86 = __cil_tmp85 + __cil_tmp84;
 6788#line 541
 6789      __cil_tmp87 = *((struct mtd_info **)__cil_tmp86);
 6790#line 541
 6791      __cil_tmp88 = (loff_t )src;
 6792#line 541
 6793      __cil_tmp89 = (size_t *)(& retlen);
 6794#line 541
 6795      __cil_tmp90 = (u_char *)(& buf);
 6796#line 541
 6797      ret = mtd_read(__cil_tmp87, __cil_tmp88, 512UL, __cil_tmp89, __cil_tmp90);
 6798      }
 6799#line 543
 6800      if (ret != 0) {
 6801        {
 6802#line 544
 6803        printk("<4>ftl: Error reading old xfer unit in copy_erase_unit\n");
 6804        }
 6805#line 545
 6806        return (ret);
 6807      } else {
 6808
 6809      }
 6810      {
 6811#line 549
 6812      __cil_tmp91 = 0 + 24;
 6813#line 549
 6814      __cil_tmp92 = (unsigned long )part;
 6815#line 549
 6816      __cil_tmp93 = __cil_tmp92 + __cil_tmp91;
 6817#line 549
 6818      __cil_tmp94 = *((struct mtd_info **)__cil_tmp93);
 6819#line 549
 6820      __cil_tmp95 = (loff_t )dest;
 6821#line 549
 6822      __cil_tmp96 = (size_t *)(& retlen);
 6823#line 549
 6824      __cil_tmp97 = (u_char const   *)(& buf);
 6825#line 549
 6826      ret = mtd_write(__cil_tmp94, __cil_tmp95, 512UL, __cil_tmp96, __cil_tmp97);
 6827      }
 6828#line 551
 6829      if (ret != 0) {
 6830        {
 6831#line 552
 6832        printk("<4>ftl: Error writing new xfer unit in copy_erase_unit\n");
 6833        }
 6834#line 553
 6835        return (ret);
 6836      } else {
 6837
 6838      }
 6839#line 556
 6840      goto ldv_22305;
 6841      switch_default: /* CIL Label */ 
 6842#line 559
 6843      __cil_tmp98 = (unsigned long )i;
 6844#line 559
 6845      __cil_tmp99 = (unsigned long )part;
 6846#line 559
 6847      __cil_tmp100 = __cil_tmp99 + 408;
 6848#line 559
 6849      __cil_tmp101 = *((uint32_t **)__cil_tmp100);
 6850#line 559
 6851      __cil_tmp102 = __cil_tmp101 + __cil_tmp98;
 6852#line 559
 6853      *__cil_tmp102 = 4294967295U;
 6854#line 560
 6855      free = free + 1U;
 6856#line 561
 6857      goto ldv_22305;
 6858    } else {
 6859      switch_break: /* CIL Label */ ;
 6860    }
 6861    }
 6862  }
 6863  }
 6864  ldv_22305: 
 6865#line 563
 6866  src = src + 512U;
 6867#line 564
 6868  dest = dest + 512U;
 6869#line 534
 6870  i = i + 1U;
 6871  ldv_22310: ;
 6872  {
 6873#line 534
 6874  __cil_tmp103 = (unsigned long )part;
 6875#line 534
 6876  __cil_tmp104 = __cil_tmp103 + 420;
 6877#line 534
 6878  __cil_tmp105 = *((uint32_t *)__cil_tmp104);
 6879#line 534
 6880  if (__cil_tmp105 > i) {
 6881#line 535
 6882    goto ldv_22309;
 6883  } else {
 6884#line 537
 6885    goto ldv_22311;
 6886  }
 6887  }
 6888  ldv_22311: 
 6889  {
 6890#line 568
 6891  __cil_tmp106 = 0 + 24;
 6892#line 568
 6893  __cil_tmp107 = (unsigned long )part;
 6894#line 568
 6895  __cil_tmp108 = __cil_tmp107 + __cil_tmp106;
 6896#line 568
 6897  __cil_tmp109 = *((struct mtd_info **)__cil_tmp108);
 6898#line 568
 6899  __cil_tmp110 = 424 + 48;
 6900#line 568
 6901  __cil_tmp111 = (unsigned long )part;
 6902#line 568
 6903  __cil_tmp112 = __cil_tmp111 + __cil_tmp110;
 6904#line 568
 6905  __cil_tmp113 = *((uint32_t *)__cil_tmp112);
 6906#line 568
 6907  __cil_tmp114 = *((uint32_t *)xfer);
 6908#line 568
 6909  __cil_tmp115 = __cil_tmp114 + __cil_tmp113;
 6910#line 568
 6911  __cil_tmp116 = (loff_t )__cil_tmp115;
 6912#line 568
 6913  __cil_tmp117 = (unsigned long )part;
 6914#line 568
 6915  __cil_tmp118 = __cil_tmp117 + 420;
 6916#line 568
 6917  __cil_tmp119 = *((uint32_t *)__cil_tmp118);
 6918#line 568
 6919  __cil_tmp120 = (unsigned long )__cil_tmp119;
 6920#line 568
 6921  __cil_tmp121 = __cil_tmp120 * 4UL;
 6922#line 568
 6923  __cil_tmp122 = (size_t *)(& retlen);
 6924#line 568
 6925  __cil_tmp123 = (unsigned long )part;
 6926#line 568
 6927  __cil_tmp124 = __cil_tmp123 + 408;
 6928#line 568
 6929  __cil_tmp125 = *((uint32_t **)__cil_tmp124);
 6930#line 568
 6931  __cil_tmp126 = (u_char const   *)__cil_tmp125;
 6932#line 568
 6933  ret = mtd_write(__cil_tmp109, __cil_tmp116, __cil_tmp121, __cil_tmp122, __cil_tmp126);
 6934  }
 6935#line 573
 6936  if (ret != 0) {
 6937    {
 6938#line 574
 6939    printk("<4>ftl: Error writing BAM in copy_erase_unit\n");
 6940    }
 6941#line 575
 6942    return (ret);
 6943  } else {
 6944
 6945  }
 6946  {
 6947#line 580
 6948  __cil_tmp127 = 0 + 24;
 6949#line 580
 6950  __cil_tmp128 = (unsigned long )part;
 6951#line 580
 6952  __cil_tmp129 = __cil_tmp128 + __cil_tmp127;
 6953#line 580
 6954  __cil_tmp130 = *((struct mtd_info **)__cil_tmp129);
 6955#line 580
 6956  __cil_tmp131 = *((uint32_t *)xfer);
 6957#line 580
 6958  __cil_tmp132 = __cil_tmp131 + 20U;
 6959#line 580
 6960  __cil_tmp133 = (loff_t )__cil_tmp132;
 6961#line 580
 6962  __cil_tmp134 = (size_t *)(& retlen);
 6963#line 580
 6964  __cil_tmp135 = (u_char const   *)(& srcunitswap);
 6965#line 580
 6966  ret = mtd_write(__cil_tmp130, __cil_tmp133, 2UL, __cil_tmp134, __cil_tmp135);
 6967  }
 6968#line 583
 6969  if (ret != 0) {
 6970    {
 6971#line 584
 6972    printk("<4>ftl: Error writing new LogicalEUN in copy_erase_unit\n");
 6973    }
 6974#line 585
 6975    return (ret);
 6976  } else {
 6977
 6978  }
 6979#line 590
 6980  __cil_tmp136 = (unsigned long )xfer;
 6981#line 590
 6982  __cil_tmp137 = __cil_tmp136 + 4;
 6983#line 590
 6984  i = *((uint32_t *)__cil_tmp137);
 6985#line 591
 6986  __cil_tmp138 = (unsigned long )xfer;
 6987#line 591
 6988  __cil_tmp139 = __cil_tmp138 + 4;
 6989#line 591
 6990  __cil_tmp140 = (unsigned long )eun;
 6991#line 591
 6992  __cil_tmp141 = __cil_tmp140 + 4;
 6993#line 591
 6994  *((uint32_t *)__cil_tmp139) = *((uint32_t *)__cil_tmp141);
 6995#line 592
 6996  __cil_tmp142 = (unsigned long )eun;
 6997#line 592
 6998  __cil_tmp143 = __cil_tmp142 + 4;
 6999#line 592
 7000  *((uint32_t *)__cil_tmp143) = i;
 7001#line 593
 7002  i = *((uint32_t *)xfer);
 7003#line 594
 7004  *((uint32_t *)xfer) = *((uint32_t *)eun);
 7005#line 595
 7006  *((uint32_t *)eun) = i;
 7007#line 596
 7008  __cil_tmp144 = (unsigned long )part;
 7009#line 596
 7010  __cil_tmp145 = __cil_tmp144 + 376;
 7011#line 596
 7012  __cil_tmp146 = (unsigned long )eun;
 7013#line 596
 7014  __cil_tmp147 = __cil_tmp146 + 8;
 7015#line 596
 7016  __cil_tmp148 = *((uint32_t *)__cil_tmp147);
 7017#line 596
 7018  __cil_tmp149 = (unsigned long )part;
 7019#line 596
 7020  __cil_tmp150 = __cil_tmp149 + 376;
 7021#line 596
 7022  __cil_tmp151 = *((uint32_t *)__cil_tmp150);
 7023#line 596
 7024  *((uint32_t *)__cil_tmp145) = __cil_tmp151 - __cil_tmp148;
 7025#line 597
 7026  __cil_tmp152 = (unsigned long )part;
 7027#line 597
 7028  __cil_tmp153 = __cil_tmp152 + 376;
 7029#line 597
 7030  __cil_tmp154 = (unsigned long )part;
 7031#line 597
 7032  __cil_tmp155 = __cil_tmp154 + 376;
 7033#line 597
 7034  __cil_tmp156 = *((uint32_t *)__cil_tmp155);
 7035#line 597
 7036  *((uint32_t *)__cil_tmp153) = __cil_tmp156 + free;
 7037#line 598
 7038  __cil_tmp157 = (unsigned long )eun;
 7039#line 598
 7040  __cil_tmp158 = __cil_tmp157 + 8;
 7041#line 598
 7042  *((uint32_t *)__cil_tmp158) = free;
 7043#line 599
 7044  __cil_tmp159 = (unsigned long )eun;
 7045#line 599
 7046  __cil_tmp160 = __cil_tmp159 + 12;
 7047#line 599
 7048  *((uint32_t *)__cil_tmp160) = 0U;
 7049#line 602
 7050  __cil_tmp161 = (unsigned long )part;
 7051#line 602
 7052  __cil_tmp162 = __cil_tmp161 + 400;
 7053#line 602
 7054  *((uint16_t *)__cil_tmp162) = srcunit;
 7055#line 604
 7056  return (0);
 7057}
 7058}
 7059#line 623 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 7060static int reclaim_block(partition_t *part ) 
 7061{ uint16_t i ;
 7062  uint16_t eun ;
 7063  uint16_t xfer ;
 7064  uint32_t best ;
 7065  int queued ;
 7066  int ret ;
 7067  struct _ddebug descriptor ;
 7068  long tmp ;
 7069  struct _ddebug descriptor___0 ;
 7070  long tmp___0 ;
 7071  int n ;
 7072  struct _ddebug descriptor___1 ;
 7073  long tmp___1 ;
 7074  struct _ddebug descriptor___2 ;
 7075  long tmp___2 ;
 7076  struct _ddebug descriptor___3 ;
 7077  long tmp___3 ;
 7078  struct _ddebug descriptor___4 ;
 7079  long tmp___4 ;
 7080  struct _ddebug descriptor___5 ;
 7081  long tmp___5 ;
 7082  struct _ddebug descriptor___6 ;
 7083  long tmp___6 ;
 7084  int ne ;
 7085  struct _ddebug descriptor___7 ;
 7086  long tmp___7 ;
 7087  struct _ddebug descriptor___8 ;
 7088  long tmp___8 ;
 7089  int ne___0 ;
 7090  struct _ddebug descriptor___9 ;
 7091  long tmp___9 ;
 7092  struct _ddebug *__cil_tmp33 ;
 7093  unsigned long __cil_tmp34 ;
 7094  unsigned long __cil_tmp35 ;
 7095  unsigned long __cil_tmp36 ;
 7096  unsigned long __cil_tmp37 ;
 7097  unsigned long __cil_tmp38 ;
 7098  unsigned long __cil_tmp39 ;
 7099  unsigned char __cil_tmp40 ;
 7100  long __cil_tmp41 ;
 7101  long __cil_tmp42 ;
 7102  struct _ddebug *__cil_tmp43 ;
 7103  unsigned long __cil_tmp44 ;
 7104  unsigned long __cil_tmp45 ;
 7105  unsigned long __cil_tmp46 ;
 7106  unsigned long __cil_tmp47 ;
 7107  unsigned long __cil_tmp48 ;
 7108  unsigned long __cil_tmp49 ;
 7109  unsigned char __cil_tmp50 ;
 7110  long __cil_tmp51 ;
 7111  long __cil_tmp52 ;
 7112  unsigned long __cil_tmp53 ;
 7113  unsigned long __cil_tmp54 ;
 7114  unsigned long __cil_tmp55 ;
 7115  uint8_t __cil_tmp56 ;
 7116  int __cil_tmp57 ;
 7117  unsigned long __cil_tmp58 ;
 7118  unsigned long __cil_tmp59 ;
 7119  unsigned long __cil_tmp60 ;
 7120  struct xfer_info_t *__cil_tmp61 ;
 7121  struct xfer_info_t *__cil_tmp62 ;
 7122  unsigned long __cil_tmp63 ;
 7123  unsigned long __cil_tmp64 ;
 7124  uint16_t __cil_tmp65 ;
 7125  unsigned int __cil_tmp66 ;
 7126  struct _ddebug *__cil_tmp67 ;
 7127  unsigned long __cil_tmp68 ;
 7128  unsigned long __cil_tmp69 ;
 7129  unsigned long __cil_tmp70 ;
 7130  unsigned long __cil_tmp71 ;
 7131  unsigned long __cil_tmp72 ;
 7132  unsigned long __cil_tmp73 ;
 7133  unsigned char __cil_tmp74 ;
 7134  long __cil_tmp75 ;
 7135  long __cil_tmp76 ;
 7136  int __cil_tmp77 ;
 7137  int __cil_tmp78 ;
 7138  uint16_t __cil_tmp79 ;
 7139  unsigned long __cil_tmp80 ;
 7140  unsigned long __cil_tmp81 ;
 7141  unsigned long __cil_tmp82 ;
 7142  struct xfer_info_t *__cil_tmp83 ;
 7143  struct xfer_info_t *__cil_tmp84 ;
 7144  unsigned long __cil_tmp85 ;
 7145  unsigned long __cil_tmp86 ;
 7146  uint16_t __cil_tmp87 ;
 7147  unsigned int __cil_tmp88 ;
 7148  struct _ddebug *__cil_tmp89 ;
 7149  unsigned long __cil_tmp90 ;
 7150  unsigned long __cil_tmp91 ;
 7151  unsigned long __cil_tmp92 ;
 7152  unsigned long __cil_tmp93 ;
 7153  unsigned long __cil_tmp94 ;
 7154  unsigned long __cil_tmp95 ;
 7155  unsigned char __cil_tmp96 ;
 7156  long __cil_tmp97 ;
 7157  long __cil_tmp98 ;
 7158  int __cil_tmp99 ;
 7159  unsigned long __cil_tmp100 ;
 7160  unsigned long __cil_tmp101 ;
 7161  unsigned long __cil_tmp102 ;
 7162  struct xfer_info_t *__cil_tmp103 ;
 7163  struct xfer_info_t *__cil_tmp104 ;
 7164  unsigned long __cil_tmp105 ;
 7165  unsigned long __cil_tmp106 ;
 7166  uint16_t __cil_tmp107 ;
 7167  unsigned int __cil_tmp108 ;
 7168  struct _ddebug *__cil_tmp109 ;
 7169  unsigned long __cil_tmp110 ;
 7170  unsigned long __cil_tmp111 ;
 7171  unsigned long __cil_tmp112 ;
 7172  unsigned long __cil_tmp113 ;
 7173  unsigned long __cil_tmp114 ;
 7174  unsigned long __cil_tmp115 ;
 7175  unsigned char __cil_tmp116 ;
 7176  long __cil_tmp117 ;
 7177  long __cil_tmp118 ;
 7178  int __cil_tmp119 ;
 7179  int __cil_tmp120 ;
 7180  unsigned long __cil_tmp121 ;
 7181  unsigned long __cil_tmp122 ;
 7182  unsigned long __cil_tmp123 ;
 7183  struct xfer_info_t *__cil_tmp124 ;
 7184  struct xfer_info_t *__cil_tmp125 ;
 7185  unsigned long __cil_tmp126 ;
 7186  unsigned long __cil_tmp127 ;
 7187  uint16_t __cil_tmp128 ;
 7188  unsigned int __cil_tmp129 ;
 7189  struct _ddebug *__cil_tmp130 ;
 7190  unsigned long __cil_tmp131 ;
 7191  unsigned long __cil_tmp132 ;
 7192  unsigned long __cil_tmp133 ;
 7193  unsigned long __cil_tmp134 ;
 7194  unsigned long __cil_tmp135 ;
 7195  unsigned long __cil_tmp136 ;
 7196  unsigned char __cil_tmp137 ;
 7197  long __cil_tmp138 ;
 7198  long __cil_tmp139 ;
 7199  int __cil_tmp140 ;
 7200  unsigned long __cil_tmp141 ;
 7201  unsigned long __cil_tmp142 ;
 7202  unsigned long __cil_tmp143 ;
 7203  struct xfer_info_t *__cil_tmp144 ;
 7204  struct xfer_info_t *__cil_tmp145 ;
 7205  unsigned long __cil_tmp146 ;
 7206  unsigned long __cil_tmp147 ;
 7207  uint32_t __cil_tmp148 ;
 7208  unsigned long __cil_tmp149 ;
 7209  unsigned long __cil_tmp150 ;
 7210  unsigned long __cil_tmp151 ;
 7211  struct xfer_info_t *__cil_tmp152 ;
 7212  struct xfer_info_t *__cil_tmp153 ;
 7213  unsigned long __cil_tmp154 ;
 7214  unsigned long __cil_tmp155 ;
 7215  struct _ddebug *__cil_tmp156 ;
 7216  unsigned long __cil_tmp157 ;
 7217  unsigned long __cil_tmp158 ;
 7218  unsigned long __cil_tmp159 ;
 7219  unsigned long __cil_tmp160 ;
 7220  unsigned long __cil_tmp161 ;
 7221  unsigned long __cil_tmp162 ;
 7222  unsigned char __cil_tmp163 ;
 7223  long __cil_tmp164 ;
 7224  long __cil_tmp165 ;
 7225  int __cil_tmp166 ;
 7226  unsigned long __cil_tmp167 ;
 7227  unsigned long __cil_tmp168 ;
 7228  unsigned long __cil_tmp169 ;
 7229  struct xfer_info_t *__cil_tmp170 ;
 7230  struct xfer_info_t *__cil_tmp171 ;
 7231  unsigned long __cil_tmp172 ;
 7232  unsigned long __cil_tmp173 ;
 7233  uint16_t __cil_tmp174 ;
 7234  int __cil_tmp175 ;
 7235  int __cil_tmp176 ;
 7236  int __cil_tmp177 ;
 7237  int __cil_tmp178 ;
 7238  unsigned long __cil_tmp179 ;
 7239  unsigned long __cil_tmp180 ;
 7240  unsigned long __cil_tmp181 ;
 7241  uint8_t __cil_tmp182 ;
 7242  unsigned short __cil_tmp183 ;
 7243  int __cil_tmp184 ;
 7244  unsigned int __cil_tmp185 ;
 7245  struct _ddebug *__cil_tmp186 ;
 7246  unsigned long __cil_tmp187 ;
 7247  unsigned long __cil_tmp188 ;
 7248  unsigned long __cil_tmp189 ;
 7249  unsigned long __cil_tmp190 ;
 7250  unsigned long __cil_tmp191 ;
 7251  unsigned long __cil_tmp192 ;
 7252  unsigned char __cil_tmp193 ;
 7253  long __cil_tmp194 ;
 7254  long __cil_tmp195 ;
 7255  unsigned long __cil_tmp196 ;
 7256  unsigned long __cil_tmp197 ;
 7257  unsigned long __cil_tmp198 ;
 7258  struct mtd_info *__cil_tmp199 ;
 7259  struct _ddebug *__cil_tmp200 ;
 7260  unsigned long __cil_tmp201 ;
 7261  unsigned long __cil_tmp202 ;
 7262  unsigned long __cil_tmp203 ;
 7263  unsigned long __cil_tmp204 ;
 7264  unsigned long __cil_tmp205 ;
 7265  unsigned long __cil_tmp206 ;
 7266  unsigned char __cil_tmp207 ;
 7267  long __cil_tmp208 ;
 7268  long __cil_tmp209 ;
 7269  unsigned int __cil_tmp210 ;
 7270  int *__cil_tmp211 ;
 7271  int __cil_tmp212 ;
 7272  unsigned long __cil_tmp213 ;
 7273  unsigned long __cil_tmp214 ;
 7274  unsigned long __cil_tmp215 ;
 7275  struct _ddebug *__cil_tmp216 ;
 7276  unsigned long __cil_tmp217 ;
 7277  unsigned long __cil_tmp218 ;
 7278  unsigned long __cil_tmp219 ;
 7279  unsigned long __cil_tmp220 ;
 7280  unsigned long __cil_tmp221 ;
 7281  unsigned long __cil_tmp222 ;
 7282  unsigned char __cil_tmp223 ;
 7283  long __cil_tmp224 ;
 7284  long __cil_tmp225 ;
 7285  unsigned long __cil_tmp226 ;
 7286  unsigned long __cil_tmp227 ;
 7287  unsigned long __cil_tmp228 ;
 7288  struct eun_info_t *__cil_tmp229 ;
 7289  struct eun_info_t *__cil_tmp230 ;
 7290  unsigned long __cil_tmp231 ;
 7291  unsigned long __cil_tmp232 ;
 7292  uint32_t __cil_tmp233 ;
 7293  unsigned long __cil_tmp234 ;
 7294  unsigned long __cil_tmp235 ;
 7295  unsigned long __cil_tmp236 ;
 7296  struct eun_info_t *__cil_tmp237 ;
 7297  struct eun_info_t *__cil_tmp238 ;
 7298  unsigned long __cil_tmp239 ;
 7299  unsigned long __cil_tmp240 ;
 7300  int __cil_tmp241 ;
 7301  int __cil_tmp242 ;
 7302  int __cil_tmp243 ;
 7303  unsigned long __cil_tmp244 ;
 7304  unsigned long __cil_tmp245 ;
 7305  uint16_t __cil_tmp246 ;
 7306  int __cil_tmp247 ;
 7307  unsigned long __cil_tmp248 ;
 7308  unsigned long __cil_tmp249 ;
 7309  unsigned long __cil_tmp250 ;
 7310  struct eun_info_t *__cil_tmp251 ;
 7311  struct eun_info_t *__cil_tmp252 ;
 7312  unsigned long __cil_tmp253 ;
 7313  unsigned long __cil_tmp254 ;
 7314  uint32_t __cil_tmp255 ;
 7315  unsigned long __cil_tmp256 ;
 7316  unsigned long __cil_tmp257 ;
 7317  unsigned long __cil_tmp258 ;
 7318  struct eun_info_t *__cil_tmp259 ;
 7319  struct eun_info_t *__cil_tmp260 ;
 7320  unsigned long __cil_tmp261 ;
 7321  unsigned long __cil_tmp262 ;
 7322  int __cil_tmp263 ;
 7323  int __cil_tmp264 ;
 7324  int __cil_tmp265 ;
 7325  unsigned long __cil_tmp266 ;
 7326  unsigned long __cil_tmp267 ;
 7327  uint16_t __cil_tmp268 ;
 7328  int __cil_tmp269 ;
 7329  struct _ddebug *__cil_tmp270 ;
 7330  unsigned long __cil_tmp271 ;
 7331  unsigned long __cil_tmp272 ;
 7332  unsigned long __cil_tmp273 ;
 7333  unsigned long __cil_tmp274 ;
 7334  unsigned long __cil_tmp275 ;
 7335  unsigned long __cil_tmp276 ;
 7336  unsigned char __cil_tmp277 ;
 7337  long __cil_tmp278 ;
 7338  long __cil_tmp279 ;
 7339  int __cil_tmp280 ;
 7340  uint16_t __cil_tmp281 ;
 7341  int __cil_tmp282 ;
 7342  uint16_t __cil_tmp283 ;
 7343  int __cil_tmp284 ;
 7344  uint16_t __cil_tmp285 ;
 7345
 7346  {
 7347  {
 7348#line 629
 7349  __cil_tmp33 = & descriptor;
 7350#line 629
 7351  *((char const   **)__cil_tmp33) = "ftl";
 7352#line 629
 7353  __cil_tmp34 = (unsigned long )(& descriptor) + 8;
 7354#line 629
 7355  *((char const   **)__cil_tmp34) = "reclaim_block";
 7356#line 629
 7357  __cil_tmp35 = (unsigned long )(& descriptor) + 16;
 7358#line 629
 7359  *((char const   **)__cil_tmp35) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7360#line 629
 7361  __cil_tmp36 = (unsigned long )(& descriptor) + 24;
 7362#line 629
 7363  *((char const   **)__cil_tmp36) = "ftl_cs: reclaiming space...\n";
 7364#line 629
 7365  __cil_tmp37 = (unsigned long )(& descriptor) + 32;
 7366#line 629
 7367  *((unsigned int *)__cil_tmp37) = 629U;
 7368#line 629
 7369  __cil_tmp38 = (unsigned long )(& descriptor) + 35;
 7370#line 629
 7371  *((unsigned char *)__cil_tmp38) = (unsigned char)0;
 7372#line 629
 7373  __cil_tmp39 = (unsigned long )(& descriptor) + 35;
 7374#line 629
 7375  __cil_tmp40 = *((unsigned char *)__cil_tmp39);
 7376#line 629
 7377  __cil_tmp41 = (long )__cil_tmp40;
 7378#line 629
 7379  __cil_tmp42 = __cil_tmp41 & 1L;
 7380#line 629
 7381  tmp = __builtin_expect(__cil_tmp42, 0L);
 7382  }
 7383#line 629
 7384  if (tmp != 0L) {
 7385    {
 7386#line 629
 7387    __dynamic_pr_debug(& descriptor, "ftl_cs: reclaiming space...\n");
 7388    }
 7389  } else {
 7390
 7391  }
 7392  {
 7393#line 630
 7394  __cil_tmp43 = & descriptor___0;
 7395#line 630
 7396  *((char const   **)__cil_tmp43) = "ftl";
 7397#line 630
 7398  __cil_tmp44 = (unsigned long )(& descriptor___0) + 8;
 7399#line 630
 7400  *((char const   **)__cil_tmp44) = "reclaim_block";
 7401#line 630
 7402  __cil_tmp45 = (unsigned long )(& descriptor___0) + 16;
 7403#line 630
 7404  *((char const   **)__cil_tmp45) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7405#line 630
 7406  __cil_tmp46 = (unsigned long )(& descriptor___0) + 24;
 7407#line 630
 7408  *((char const   **)__cil_tmp46) = "NumTransferUnits == %x\n";
 7409#line 630
 7410  __cil_tmp47 = (unsigned long )(& descriptor___0) + 32;
 7411#line 630
 7412  *((unsigned int *)__cil_tmp47) = 630U;
 7413#line 630
 7414  __cil_tmp48 = (unsigned long )(& descriptor___0) + 35;
 7415#line 630
 7416  *((unsigned char *)__cil_tmp48) = (unsigned char)0;
 7417#line 630
 7418  __cil_tmp49 = (unsigned long )(& descriptor___0) + 35;
 7419#line 630
 7420  __cil_tmp50 = *((unsigned char *)__cil_tmp49);
 7421#line 630
 7422  __cil_tmp51 = (long )__cil_tmp50;
 7423#line 630
 7424  __cil_tmp52 = __cil_tmp51 & 1L;
 7425#line 630
 7426  tmp___0 = __builtin_expect(__cil_tmp52, 0L);
 7427  }
 7428#line 630
 7429  if (tmp___0 != 0L) {
 7430    {
 7431#line 630
 7432    __cil_tmp53 = 424 + 15;
 7433#line 630
 7434    __cil_tmp54 = (unsigned long )part;
 7435#line 630
 7436    __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
 7437#line 630
 7438    __cil_tmp56 = *((uint8_t *)__cil_tmp55);
 7439#line 630
 7440    __cil_tmp57 = (int )__cil_tmp56;
 7441#line 630
 7442    __dynamic_pr_debug(& descriptor___0, "NumTransferUnits == %x\n", __cil_tmp57);
 7443    }
 7444  } else {
 7445
 7446  }
 7447#line 632
 7448  best = 4294967295U;
 7449#line 632
 7450  xfer = (uint16_t )65535U;
 7451  ldv_22336: 
 7452#line 634
 7453  queued = 0;
 7454#line 635
 7455  i = (uint16_t )0U;
 7456#line 635
 7457  goto ldv_22331;
 7458  ldv_22330: 
 7459#line 636
 7460  n = 0;
 7461  {
 7462#line 637
 7463  __cil_tmp58 = (unsigned long )i;
 7464#line 637
 7465  __cil_tmp59 = (unsigned long )part;
 7466#line 637
 7467  __cil_tmp60 = __cil_tmp59 + 392;
 7468#line 637
 7469  __cil_tmp61 = *((struct xfer_info_t **)__cil_tmp60);
 7470#line 637
 7471  __cil_tmp62 = __cil_tmp61 + __cil_tmp58;
 7472#line 637
 7473  __cil_tmp63 = (unsigned long )__cil_tmp62;
 7474#line 637
 7475  __cil_tmp64 = __cil_tmp63 + 8;
 7476#line 637
 7477  __cil_tmp65 = *((uint16_t *)__cil_tmp64);
 7478#line 637
 7479  __cil_tmp66 = (unsigned int )__cil_tmp65;
 7480#line 637
 7481  if (__cil_tmp66 == 0U) {
 7482    {
 7483#line 638
 7484    __cil_tmp67 = & descriptor___1;
 7485#line 638
 7486    *((char const   **)__cil_tmp67) = "ftl";
 7487#line 638
 7488    __cil_tmp68 = (unsigned long )(& descriptor___1) + 8;
 7489#line 638
 7490    *((char const   **)__cil_tmp68) = "reclaim_block";
 7491#line 638
 7492    __cil_tmp69 = (unsigned long )(& descriptor___1) + 16;
 7493#line 638
 7494    *((char const   **)__cil_tmp69) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7495#line 638
 7496    __cil_tmp70 = (unsigned long )(& descriptor___1) + 24;
 7497#line 638
 7498    *((char const   **)__cil_tmp70) = "XferInfo[%d].state == XFER_UNKNOWN\n";
 7499#line 638
 7500    __cil_tmp71 = (unsigned long )(& descriptor___1) + 32;
 7501#line 638
 7502    *((unsigned int *)__cil_tmp71) = 638U;
 7503#line 638
 7504    __cil_tmp72 = (unsigned long )(& descriptor___1) + 35;
 7505#line 638
 7506    *((unsigned char *)__cil_tmp72) = (unsigned char)0;
 7507#line 638
 7508    __cil_tmp73 = (unsigned long )(& descriptor___1) + 35;
 7509#line 638
 7510    __cil_tmp74 = *((unsigned char *)__cil_tmp73);
 7511#line 638
 7512    __cil_tmp75 = (long )__cil_tmp74;
 7513#line 638
 7514    __cil_tmp76 = __cil_tmp75 & 1L;
 7515#line 638
 7516    tmp___1 = __builtin_expect(__cil_tmp76, 0L);
 7517    }
 7518#line 638
 7519    if (tmp___1 != 0L) {
 7520      {
 7521#line 638
 7522      __cil_tmp77 = (int )i;
 7523#line 638
 7524      __dynamic_pr_debug(& descriptor___1, "XferInfo[%d].state == XFER_UNKNOWN\n",
 7525                         __cil_tmp77);
 7526      }
 7527    } else {
 7528
 7529    }
 7530    {
 7531#line 639
 7532    n = 1;
 7533#line 640
 7534    __cil_tmp78 = (int )i;
 7535#line 640
 7536    __cil_tmp79 = (uint16_t )__cil_tmp78;
 7537#line 640
 7538    erase_xfer(part, __cil_tmp79);
 7539    }
 7540  } else {
 7541
 7542  }
 7543  }
 7544  {
 7545#line 642
 7546  __cil_tmp80 = (unsigned long )i;
 7547#line 642
 7548  __cil_tmp81 = (unsigned long )part;
 7549#line 642
 7550  __cil_tmp82 = __cil_tmp81 + 392;
 7551#line 642
 7552  __cil_tmp83 = *((struct xfer_info_t **)__cil_tmp82);
 7553#line 642
 7554  __cil_tmp84 = __cil_tmp83 + __cil_tmp80;
 7555#line 642
 7556  __cil_tmp85 = (unsigned long )__cil_tmp84;
 7557#line 642
 7558  __cil_tmp86 = __cil_tmp85 + 8;
 7559#line 642
 7560  __cil_tmp87 = *((uint16_t *)__cil_tmp86);
 7561#line 642
 7562  __cil_tmp88 = (unsigned int )__cil_tmp87;
 7563#line 642
 7564  if (__cil_tmp88 == 1U) {
 7565    {
 7566#line 643
 7567    __cil_tmp89 = & descriptor___2;
 7568#line 643
 7569    *((char const   **)__cil_tmp89) = "ftl";
 7570#line 643
 7571    __cil_tmp90 = (unsigned long )(& descriptor___2) + 8;
 7572#line 643
 7573    *((char const   **)__cil_tmp90) = "reclaim_block";
 7574#line 643
 7575    __cil_tmp91 = (unsigned long )(& descriptor___2) + 16;
 7576#line 643
 7577    *((char const   **)__cil_tmp91) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7578#line 643
 7579    __cil_tmp92 = (unsigned long )(& descriptor___2) + 24;
 7580#line 643
 7581    *((char const   **)__cil_tmp92) = "XferInfo[%d].state == XFER_ERASING\n";
 7582#line 643
 7583    __cil_tmp93 = (unsigned long )(& descriptor___2) + 32;
 7584#line 643
 7585    *((unsigned int *)__cil_tmp93) = 643U;
 7586#line 643
 7587    __cil_tmp94 = (unsigned long )(& descriptor___2) + 35;
 7588#line 643
 7589    *((unsigned char *)__cil_tmp94) = (unsigned char)0;
 7590#line 643
 7591    __cil_tmp95 = (unsigned long )(& descriptor___2) + 35;
 7592#line 643
 7593    __cil_tmp96 = *((unsigned char *)__cil_tmp95);
 7594#line 643
 7595    __cil_tmp97 = (long )__cil_tmp96;
 7596#line 643
 7597    __cil_tmp98 = __cil_tmp97 & 1L;
 7598#line 643
 7599    tmp___2 = __builtin_expect(__cil_tmp98, 0L);
 7600    }
 7601#line 643
 7602    if (tmp___2 != 0L) {
 7603      {
 7604#line 643
 7605      __cil_tmp99 = (int )i;
 7606#line 643
 7607      __dynamic_pr_debug(& descriptor___2, "XferInfo[%d].state == XFER_ERASING\n",
 7608                         __cil_tmp99);
 7609      }
 7610    } else {
 7611
 7612    }
 7613#line 644
 7614    n = 1;
 7615#line 645
 7616    queued = 1;
 7617  } else {
 7618    {
 7619#line 647
 7620    __cil_tmp100 = (unsigned long )i;
 7621#line 647
 7622    __cil_tmp101 = (unsigned long )part;
 7623#line 647
 7624    __cil_tmp102 = __cil_tmp101 + 392;
 7625#line 647
 7626    __cil_tmp103 = *((struct xfer_info_t **)__cil_tmp102);
 7627#line 647
 7628    __cil_tmp104 = __cil_tmp103 + __cil_tmp100;
 7629#line 647
 7630    __cil_tmp105 = (unsigned long )__cil_tmp104;
 7631#line 647
 7632    __cil_tmp106 = __cil_tmp105 + 8;
 7633#line 647
 7634    __cil_tmp107 = *((uint16_t *)__cil_tmp106);
 7635#line 647
 7636    __cil_tmp108 = (unsigned int )__cil_tmp107;
 7637#line 647
 7638    if (__cil_tmp108 == 2U) {
 7639      {
 7640#line 648
 7641      __cil_tmp109 = & descriptor___3;
 7642#line 648
 7643      *((char const   **)__cil_tmp109) = "ftl";
 7644#line 648
 7645      __cil_tmp110 = (unsigned long )(& descriptor___3) + 8;
 7646#line 648
 7647      *((char const   **)__cil_tmp110) = "reclaim_block";
 7648#line 648
 7649      __cil_tmp111 = (unsigned long )(& descriptor___3) + 16;
 7650#line 648
 7651      *((char const   **)__cil_tmp111) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7652#line 648
 7653      __cil_tmp112 = (unsigned long )(& descriptor___3) + 24;
 7654#line 648
 7655      *((char const   **)__cil_tmp112) = "XferInfo[%d].state == XFER_ERASED\n";
 7656#line 648
 7657      __cil_tmp113 = (unsigned long )(& descriptor___3) + 32;
 7658#line 648
 7659      *((unsigned int *)__cil_tmp113) = 648U;
 7660#line 648
 7661      __cil_tmp114 = (unsigned long )(& descriptor___3) + 35;
 7662#line 648
 7663      *((unsigned char *)__cil_tmp114) = (unsigned char)0;
 7664#line 648
 7665      __cil_tmp115 = (unsigned long )(& descriptor___3) + 35;
 7666#line 648
 7667      __cil_tmp116 = *((unsigned char *)__cil_tmp115);
 7668#line 648
 7669      __cil_tmp117 = (long )__cil_tmp116;
 7670#line 648
 7671      __cil_tmp118 = __cil_tmp117 & 1L;
 7672#line 648
 7673      tmp___3 = __builtin_expect(__cil_tmp118, 0L);
 7674      }
 7675#line 648
 7676      if (tmp___3 != 0L) {
 7677        {
 7678#line 648
 7679        __cil_tmp119 = (int )i;
 7680#line 648
 7681        __dynamic_pr_debug(& descriptor___3, "XferInfo[%d].state == XFER_ERASED\n",
 7682                           __cil_tmp119);
 7683        }
 7684      } else {
 7685
 7686      }
 7687      {
 7688#line 649
 7689      n = 1;
 7690#line 650
 7691      __cil_tmp120 = (int )i;
 7692#line 650
 7693      prepare_xfer(part, __cil_tmp120);
 7694      }
 7695    } else {
 7696
 7697    }
 7698    }
 7699  }
 7700  }
 7701  {
 7702#line 652
 7703  __cil_tmp121 = (unsigned long )i;
 7704#line 652
 7705  __cil_tmp122 = (unsigned long )part;
 7706#line 652
 7707  __cil_tmp123 = __cil_tmp122 + 392;
 7708#line 652
 7709  __cil_tmp124 = *((struct xfer_info_t **)__cil_tmp123);
 7710#line 652
 7711  __cil_tmp125 = __cil_tmp124 + __cil_tmp121;
 7712#line 652
 7713  __cil_tmp126 = (unsigned long )__cil_tmp125;
 7714#line 652
 7715  __cil_tmp127 = __cil_tmp126 + 8;
 7716#line 652
 7717  __cil_tmp128 = *((uint16_t *)__cil_tmp127);
 7718#line 652
 7719  __cil_tmp129 = (unsigned int )__cil_tmp128;
 7720#line 652
 7721  if (__cil_tmp129 == 3U) {
 7722    {
 7723#line 653
 7724    __cil_tmp130 = & descriptor___4;
 7725#line 653
 7726    *((char const   **)__cil_tmp130) = "ftl";
 7727#line 653
 7728    __cil_tmp131 = (unsigned long )(& descriptor___4) + 8;
 7729#line 653
 7730    *((char const   **)__cil_tmp131) = "reclaim_block";
 7731#line 653
 7732    __cil_tmp132 = (unsigned long )(& descriptor___4) + 16;
 7733#line 653
 7734    *((char const   **)__cil_tmp132) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7735#line 653
 7736    __cil_tmp133 = (unsigned long )(& descriptor___4) + 24;
 7737#line 653
 7738    *((char const   **)__cil_tmp133) = "XferInfo[%d].state == XFER_PREPARED\n";
 7739#line 653
 7740    __cil_tmp134 = (unsigned long )(& descriptor___4) + 32;
 7741#line 653
 7742    *((unsigned int *)__cil_tmp134) = 653U;
 7743#line 653
 7744    __cil_tmp135 = (unsigned long )(& descriptor___4) + 35;
 7745#line 653
 7746    *((unsigned char *)__cil_tmp135) = (unsigned char)0;
 7747#line 653
 7748    __cil_tmp136 = (unsigned long )(& descriptor___4) + 35;
 7749#line 653
 7750    __cil_tmp137 = *((unsigned char *)__cil_tmp136);
 7751#line 653
 7752    __cil_tmp138 = (long )__cil_tmp137;
 7753#line 653
 7754    __cil_tmp139 = __cil_tmp138 & 1L;
 7755#line 653
 7756    tmp___4 = __builtin_expect(__cil_tmp139, 0L);
 7757    }
 7758#line 653
 7759    if (tmp___4 != 0L) {
 7760      {
 7761#line 653
 7762      __cil_tmp140 = (int )i;
 7763#line 653
 7764      __dynamic_pr_debug(& descriptor___4, "XferInfo[%d].state == XFER_PREPARED\n",
 7765                         __cil_tmp140);
 7766      }
 7767    } else {
 7768
 7769    }
 7770#line 654
 7771    n = 1;
 7772    {
 7773#line 655
 7774    __cil_tmp141 = (unsigned long )i;
 7775#line 655
 7776    __cil_tmp142 = (unsigned long )part;
 7777#line 655
 7778    __cil_tmp143 = __cil_tmp142 + 392;
 7779#line 655
 7780    __cil_tmp144 = *((struct xfer_info_t **)__cil_tmp143);
 7781#line 655
 7782    __cil_tmp145 = __cil_tmp144 + __cil_tmp141;
 7783#line 655
 7784    __cil_tmp146 = (unsigned long )__cil_tmp145;
 7785#line 655
 7786    __cil_tmp147 = __cil_tmp146 + 4;
 7787#line 655
 7788    __cil_tmp148 = *((uint32_t *)__cil_tmp147);
 7789#line 655
 7790    if (__cil_tmp148 <= best) {
 7791#line 656
 7792      __cil_tmp149 = (unsigned long )i;
 7793#line 656
 7794      __cil_tmp150 = (unsigned long )part;
 7795#line 656
 7796      __cil_tmp151 = __cil_tmp150 + 392;
 7797#line 656
 7798      __cil_tmp152 = *((struct xfer_info_t **)__cil_tmp151);
 7799#line 656
 7800      __cil_tmp153 = __cil_tmp152 + __cil_tmp149;
 7801#line 656
 7802      __cil_tmp154 = (unsigned long )__cil_tmp153;
 7803#line 656
 7804      __cil_tmp155 = __cil_tmp154 + 4;
 7805#line 656
 7806      best = *((uint32_t *)__cil_tmp155);
 7807#line 657
 7808      xfer = i;
 7809    } else {
 7810
 7811    }
 7812    }
 7813  } else {
 7814
 7815  }
 7816  }
 7817#line 660
 7818  if (n == 0) {
 7819    {
 7820#line 661
 7821    __cil_tmp156 = & descriptor___5;
 7822#line 661
 7823    *((char const   **)__cil_tmp156) = "ftl";
 7824#line 661
 7825    __cil_tmp157 = (unsigned long )(& descriptor___5) + 8;
 7826#line 661
 7827    *((char const   **)__cil_tmp157) = "reclaim_block";
 7828#line 661
 7829    __cil_tmp158 = (unsigned long )(& descriptor___5) + 16;
 7830#line 661
 7831    *((char const   **)__cil_tmp158) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7832#line 661
 7833    __cil_tmp159 = (unsigned long )(& descriptor___5) + 24;
 7834#line 661
 7835    *((char const   **)__cil_tmp159) = "XferInfo[%d].state == %x\n";
 7836#line 661
 7837    __cil_tmp160 = (unsigned long )(& descriptor___5) + 32;
 7838#line 661
 7839    *((unsigned int *)__cil_tmp160) = 661U;
 7840#line 661
 7841    __cil_tmp161 = (unsigned long )(& descriptor___5) + 35;
 7842#line 661
 7843    *((unsigned char *)__cil_tmp161) = (unsigned char)0;
 7844#line 661
 7845    __cil_tmp162 = (unsigned long )(& descriptor___5) + 35;
 7846#line 661
 7847    __cil_tmp163 = *((unsigned char *)__cil_tmp162);
 7848#line 661
 7849    __cil_tmp164 = (long )__cil_tmp163;
 7850#line 661
 7851    __cil_tmp165 = __cil_tmp164 & 1L;
 7852#line 661
 7853    tmp___5 = __builtin_expect(__cil_tmp165, 0L);
 7854    }
 7855#line 661
 7856    if (tmp___5 != 0L) {
 7857      {
 7858#line 661
 7859      __cil_tmp166 = (int )i;
 7860#line 661
 7861      __cil_tmp167 = (unsigned long )i;
 7862#line 661
 7863      __cil_tmp168 = (unsigned long )part;
 7864#line 661
 7865      __cil_tmp169 = __cil_tmp168 + 392;
 7866#line 661
 7867      __cil_tmp170 = *((struct xfer_info_t **)__cil_tmp169);
 7868#line 661
 7869      __cil_tmp171 = __cil_tmp170 + __cil_tmp167;
 7870#line 661
 7871      __cil_tmp172 = (unsigned long )__cil_tmp171;
 7872#line 661
 7873      __cil_tmp173 = __cil_tmp172 + 8;
 7874#line 661
 7875      __cil_tmp174 = *((uint16_t *)__cil_tmp173);
 7876#line 661
 7877      __cil_tmp175 = (int )__cil_tmp174;
 7878#line 661
 7879      __dynamic_pr_debug(& descriptor___5, "XferInfo[%d].state == %x\n", __cil_tmp166,
 7880                         __cil_tmp175);
 7881      }
 7882    } else {
 7883
 7884    }
 7885  } else {
 7886
 7887  }
 7888#line 635
 7889  __cil_tmp176 = (int )i;
 7890#line 635
 7891  __cil_tmp177 = __cil_tmp176 + 1;
 7892#line 635
 7893  i = (uint16_t )__cil_tmp177;
 7894  ldv_22331: ;
 7895  {
 7896#line 635
 7897  __cil_tmp178 = (int )i;
 7898#line 635
 7899  __cil_tmp179 = 424 + 15;
 7900#line 635
 7901  __cil_tmp180 = (unsigned long )part;
 7902#line 635
 7903  __cil_tmp181 = __cil_tmp180 + __cil_tmp179;
 7904#line 635
 7905  __cil_tmp182 = *((uint8_t *)__cil_tmp181);
 7906#line 635
 7907  __cil_tmp183 = (unsigned short )__cil_tmp182;
 7908#line 635
 7909  __cil_tmp184 = (int )__cil_tmp183;
 7910#line 635
 7911  if (__cil_tmp184 > __cil_tmp178) {
 7912#line 636
 7913    goto ldv_22330;
 7914  } else {
 7915#line 638
 7916    goto ldv_22332;
 7917  }
 7918  }
 7919  ldv_22332: ;
 7920  {
 7921#line 664
 7922  __cil_tmp185 = (unsigned int )xfer;
 7923#line 664
 7924  if (__cil_tmp185 == 65535U) {
 7925#line 665
 7926    if (queued != 0) {
 7927      {
 7928#line 666
 7929      __cil_tmp186 = & descriptor___6;
 7930#line 666
 7931      *((char const   **)__cil_tmp186) = "ftl";
 7932#line 666
 7933      __cil_tmp187 = (unsigned long )(& descriptor___6) + 8;
 7934#line 666
 7935      *((char const   **)__cil_tmp187) = "reclaim_block";
 7936#line 666
 7937      __cil_tmp188 = (unsigned long )(& descriptor___6) + 16;
 7938#line 666
 7939      *((char const   **)__cil_tmp188) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 7940#line 666
 7941      __cil_tmp189 = (unsigned long )(& descriptor___6) + 24;
 7942#line 666
 7943      *((char const   **)__cil_tmp189) = "ftl_cs: waiting for transfer unit to be prepared...\n";
 7944#line 666
 7945      __cil_tmp190 = (unsigned long )(& descriptor___6) + 32;
 7946#line 666
 7947      *((unsigned int *)__cil_tmp190) = 667U;
 7948#line 666
 7949      __cil_tmp191 = (unsigned long )(& descriptor___6) + 35;
 7950#line 666
 7951      *((unsigned char *)__cil_tmp191) = (unsigned char)0;
 7952#line 666
 7953      __cil_tmp192 = (unsigned long )(& descriptor___6) + 35;
 7954#line 666
 7955      __cil_tmp193 = *((unsigned char *)__cil_tmp192);
 7956#line 666
 7957      __cil_tmp194 = (long )__cil_tmp193;
 7958#line 666
 7959      __cil_tmp195 = __cil_tmp194 & 1L;
 7960#line 666
 7961      tmp___6 = __builtin_expect(__cil_tmp195, 0L);
 7962      }
 7963#line 666
 7964      if (tmp___6 != 0L) {
 7965        {
 7966#line 666
 7967        __dynamic_pr_debug(& descriptor___6, "ftl_cs: waiting for transfer unit to be prepared...\n");
 7968        }
 7969      } else {
 7970
 7971      }
 7972      {
 7973#line 668
 7974      __cil_tmp196 = 0 + 24;
 7975#line 668
 7976      __cil_tmp197 = (unsigned long )part;
 7977#line 668
 7978      __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
 7979#line 668
 7980      __cil_tmp199 = *((struct mtd_info **)__cil_tmp198);
 7981#line 668
 7982      mtd_sync(__cil_tmp199);
 7983      }
 7984    } else {
 7985#line 670
 7986      ne = 0;
 7987#line 671
 7988      ne = ne + 1;
 7989#line 671
 7990      if (ne <= 4) {
 7991        {
 7992#line 672
 7993        printk("<5>ftl_cs: reclaim failed: no suitable transfer units!\n");
 7994        }
 7995      } else {
 7996        {
 7997#line 675
 7998        __cil_tmp200 = & descriptor___7;
 7999#line 675
 8000        *((char const   **)__cil_tmp200) = "ftl";
 8001#line 675
 8002        __cil_tmp201 = (unsigned long )(& descriptor___7) + 8;
 8003#line 675
 8004        *((char const   **)__cil_tmp201) = "reclaim_block";
 8005#line 675
 8006        __cil_tmp202 = (unsigned long )(& descriptor___7) + 16;
 8007#line 675
 8008        *((char const   **)__cil_tmp202) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 8009#line 675
 8010        __cil_tmp203 = (unsigned long )(& descriptor___7) + 24;
 8011#line 675
 8012        *((char const   **)__cil_tmp203) = "ftl_cs: reclaim failed: no suitable transfer units!\n";
 8013#line 675
 8014        __cil_tmp204 = (unsigned long )(& descriptor___7) + 32;
 8015#line 675
 8016        *((unsigned int *)__cil_tmp204) = 676U;
 8017#line 675
 8018        __cil_tmp205 = (unsigned long )(& descriptor___7) + 35;
 8019#line 675
 8020        *((unsigned char *)__cil_tmp205) = (unsigned char)0;
 8021#line 675
 8022        __cil_tmp206 = (unsigned long )(& descriptor___7) + 35;
 8023#line 675
 8024        __cil_tmp207 = *((unsigned char *)__cil_tmp206);
 8025#line 675
 8026        __cil_tmp208 = (long )__cil_tmp207;
 8027#line 675
 8028        __cil_tmp209 = __cil_tmp208 & 1L;
 8029#line 675
 8030        tmp___7 = __builtin_expect(__cil_tmp209, 0L);
 8031        }
 8032#line 675
 8033        if (tmp___7 != 0L) {
 8034          {
 8035#line 675
 8036          __dynamic_pr_debug(& descriptor___7, "ftl_cs: reclaim failed: no suitable transfer units!\n");
 8037          }
 8038        } else {
 8039
 8040        }
 8041      }
 8042#line 678
 8043      return (-5);
 8044    }
 8045  } else {
 8046
 8047  }
 8048  }
 8049  {
 8050#line 681
 8051  __cil_tmp210 = (unsigned int )xfer;
 8052#line 681
 8053  if (__cil_tmp210 == 65535U) {
 8054#line 682
 8055    goto ldv_22336;
 8056  } else {
 8057#line 684
 8058    goto ldv_22337;
 8059  }
 8060  }
 8061  ldv_22337: 
 8062#line 683
 8063  eun = (uint16_t )0U;
 8064  {
 8065#line 684
 8066  __cil_tmp211 = & shuffle_freq;
 8067#line 684
 8068  __cil_tmp212 = *__cil_tmp211;
 8069#line 684
 8070  __cil_tmp213 = (unsigned long )__cil_tmp212;
 8071#line 684
 8072  __cil_tmp214 = (unsigned long )jiffies;
 8073#line 684
 8074  __cil_tmp215 = __cil_tmp214 % __cil_tmp213;
 8075#line 684
 8076  if (__cil_tmp215 == 0UL) {
 8077    {
 8078#line 685
 8079    __cil_tmp216 = & descriptor___8;
 8080#line 685
 8081    *((char const   **)__cil_tmp216) = "ftl";
 8082#line 685
 8083    __cil_tmp217 = (unsigned long )(& descriptor___8) + 8;
 8084#line 685
 8085    *((char const   **)__cil_tmp217) = "reclaim_block";
 8086#line 685
 8087    __cil_tmp218 = (unsigned long )(& descriptor___8) + 16;
 8088#line 685
 8089    *((char const   **)__cil_tmp218) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 8090#line 685
 8091    __cil_tmp219 = (unsigned long )(& descriptor___8) + 24;
 8092#line 685
 8093    *((char const   **)__cil_tmp219) = "ftl_cs: recycling freshest block...\n";
 8094#line 685
 8095    __cil_tmp220 = (unsigned long )(& descriptor___8) + 32;
 8096#line 685
 8097    *((unsigned int *)__cil_tmp220) = 685U;
 8098#line 685
 8099    __cil_tmp221 = (unsigned long )(& descriptor___8) + 35;
 8100#line 685
 8101    *((unsigned char *)__cil_tmp221) = (unsigned char)0;
 8102#line 685
 8103    __cil_tmp222 = (unsigned long )(& descriptor___8) + 35;
 8104#line 685
 8105    __cil_tmp223 = *((unsigned char *)__cil_tmp222);
 8106#line 685
 8107    __cil_tmp224 = (long )__cil_tmp223;
 8108#line 685
 8109    __cil_tmp225 = __cil_tmp224 & 1L;
 8110#line 685
 8111    tmp___8 = __builtin_expect(__cil_tmp225, 0L);
 8112    }
 8113#line 685
 8114    if (tmp___8 != 0L) {
 8115      {
 8116#line 685
 8117      __dynamic_pr_debug(& descriptor___8, "ftl_cs: recycling freshest block...\n");
 8118      }
 8119    } else {
 8120
 8121    }
 8122#line 686
 8123    best = 4294967295U;
 8124#line 687
 8125    i = (uint16_t )0U;
 8126#line 687
 8127    goto ldv_22340;
 8128    ldv_22339: ;
 8129    {
 8130#line 688
 8131    __cil_tmp226 = (unsigned long )i;
 8132#line 688
 8133    __cil_tmp227 = (unsigned long )part;
 8134#line 688
 8135    __cil_tmp228 = __cil_tmp227 + 384;
 8136#line 688
 8137    __cil_tmp229 = *((struct eun_info_t **)__cil_tmp228);
 8138#line 688
 8139    __cil_tmp230 = __cil_tmp229 + __cil_tmp226;
 8140#line 688
 8141    __cil_tmp231 = (unsigned long )__cil_tmp230;
 8142#line 688
 8143    __cil_tmp232 = __cil_tmp231 + 4;
 8144#line 688
 8145    __cil_tmp233 = *((uint32_t *)__cil_tmp232);
 8146#line 688
 8147    if (__cil_tmp233 <= best) {
 8148#line 689
 8149      __cil_tmp234 = (unsigned long )i;
 8150#line 689
 8151      __cil_tmp235 = (unsigned long )part;
 8152#line 689
 8153      __cil_tmp236 = __cil_tmp235 + 384;
 8154#line 689
 8155      __cil_tmp237 = *((struct eun_info_t **)__cil_tmp236);
 8156#line 689
 8157      __cil_tmp238 = __cil_tmp237 + __cil_tmp234;
 8158#line 689
 8159      __cil_tmp239 = (unsigned long )__cil_tmp238;
 8160#line 689
 8161      __cil_tmp240 = __cil_tmp239 + 4;
 8162#line 689
 8163      best = *((uint32_t *)__cil_tmp240);
 8164#line 690
 8165      eun = i;
 8166    } else {
 8167
 8168    }
 8169    }
 8170#line 687
 8171    __cil_tmp241 = (int )i;
 8172#line 687
 8173    __cil_tmp242 = __cil_tmp241 + 1;
 8174#line 687
 8175    i = (uint16_t )__cil_tmp242;
 8176    ldv_22340: ;
 8177    {
 8178#line 687
 8179    __cil_tmp243 = (int )i;
 8180#line 687
 8181    __cil_tmp244 = (unsigned long )part;
 8182#line 687
 8183    __cil_tmp245 = __cil_tmp244 + 416;
 8184#line 687
 8185    __cil_tmp246 = *((uint16_t *)__cil_tmp245);
 8186#line 687
 8187    __cil_tmp247 = (int )__cil_tmp246;
 8188#line 687
 8189    if (__cil_tmp247 > __cil_tmp243) {
 8190#line 688
 8191      goto ldv_22339;
 8192    } else {
 8193#line 690
 8194      goto ldv_22341;
 8195    }
 8196    }
 8197    ldv_22341: ;
 8198  } else {
 8199#line 693
 8200    best = 0U;
 8201#line 694
 8202    i = (uint16_t )0U;
 8203#line 694
 8204    goto ldv_22343;
 8205    ldv_22342: ;
 8206    {
 8207#line 695
 8208    __cil_tmp248 = (unsigned long )i;
 8209#line 695
 8210    __cil_tmp249 = (unsigned long )part;
 8211#line 695
 8212    __cil_tmp250 = __cil_tmp249 + 384;
 8213#line 695
 8214    __cil_tmp251 = *((struct eun_info_t **)__cil_tmp250);
 8215#line 695
 8216    __cil_tmp252 = __cil_tmp251 + __cil_tmp248;
 8217#line 695
 8218    __cil_tmp253 = (unsigned long )__cil_tmp252;
 8219#line 695
 8220    __cil_tmp254 = __cil_tmp253 + 12;
 8221#line 695
 8222    __cil_tmp255 = *((uint32_t *)__cil_tmp254);
 8223#line 695
 8224    if (__cil_tmp255 >= best) {
 8225#line 696
 8226      __cil_tmp256 = (unsigned long )i;
 8227#line 696
 8228      __cil_tmp257 = (unsigned long )part;
 8229#line 696
 8230      __cil_tmp258 = __cil_tmp257 + 384;
 8231#line 696
 8232      __cil_tmp259 = *((struct eun_info_t **)__cil_tmp258);
 8233#line 696
 8234      __cil_tmp260 = __cil_tmp259 + __cil_tmp256;
 8235#line 696
 8236      __cil_tmp261 = (unsigned long )__cil_tmp260;
 8237#line 696
 8238      __cil_tmp262 = __cil_tmp261 + 12;
 8239#line 696
 8240      best = *((uint32_t *)__cil_tmp262);
 8241#line 697
 8242      eun = i;
 8243    } else {
 8244
 8245    }
 8246    }
 8247#line 694
 8248    __cil_tmp263 = (int )i;
 8249#line 694
 8250    __cil_tmp264 = __cil_tmp263 + 1;
 8251#line 694
 8252    i = (uint16_t )__cil_tmp264;
 8253    ldv_22343: ;
 8254    {
 8255#line 694
 8256    __cil_tmp265 = (int )i;
 8257#line 694
 8258    __cil_tmp266 = (unsigned long )part;
 8259#line 694
 8260    __cil_tmp267 = __cil_tmp266 + 416;
 8261#line 694
 8262    __cil_tmp268 = *((uint16_t *)__cil_tmp267);
 8263#line 694
 8264    __cil_tmp269 = (int )__cil_tmp268;
 8265#line 694
 8266    if (__cil_tmp269 > __cil_tmp265) {
 8267#line 695
 8268      goto ldv_22342;
 8269    } else {
 8270#line 697
 8271      goto ldv_22344;
 8272    }
 8273    }
 8274    ldv_22344: ;
 8275#line 699
 8276    if (best == 0U) {
 8277#line 700
 8278      ne___0 = 0;
 8279#line 701
 8280      ne___0 = ne___0 + 1;
 8281#line 701
 8282      if (ne___0 <= 4) {
 8283        {
 8284#line 702
 8285        printk("<5>ftl_cs: reclaim failed: no free blocks!\n");
 8286        }
 8287      } else {
 8288        {
 8289#line 705
 8290        __cil_tmp270 = & descriptor___9;
 8291#line 705
 8292        *((char const   **)__cil_tmp270) = "ftl";
 8293#line 705
 8294        __cil_tmp271 = (unsigned long )(& descriptor___9) + 8;
 8295#line 705
 8296        *((char const   **)__cil_tmp271) = "reclaim_block";
 8297#line 705
 8298        __cil_tmp272 = (unsigned long )(& descriptor___9) + 16;
 8299#line 705
 8300        *((char const   **)__cil_tmp272) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 8301#line 705
 8302        __cil_tmp273 = (unsigned long )(& descriptor___9) + 24;
 8303#line 705
 8304        *((char const   **)__cil_tmp273) = "ftl_cs: reclaim failed: no free blocks!\n";
 8305#line 705
 8306        __cil_tmp274 = (unsigned long )(& descriptor___9) + 32;
 8307#line 705
 8308        *((unsigned int *)__cil_tmp274) = 706U;
 8309#line 705
 8310        __cil_tmp275 = (unsigned long )(& descriptor___9) + 35;
 8311#line 705
 8312        *((unsigned char *)__cil_tmp275) = (unsigned char)0;
 8313#line 705
 8314        __cil_tmp276 = (unsigned long )(& descriptor___9) + 35;
 8315#line 705
 8316        __cil_tmp277 = *((unsigned char *)__cil_tmp276);
 8317#line 705
 8318        __cil_tmp278 = (long )__cil_tmp277;
 8319#line 705
 8320        __cil_tmp279 = __cil_tmp278 & 1L;
 8321#line 705
 8322        tmp___9 = __builtin_expect(__cil_tmp279, 0L);
 8323        }
 8324#line 705
 8325        if (tmp___9 != 0L) {
 8326          {
 8327#line 705
 8328          __dynamic_pr_debug(& descriptor___9, "ftl_cs: reclaim failed: no free blocks!\n");
 8329          }
 8330        } else {
 8331
 8332        }
 8333      }
 8334#line 708
 8335      return (-5);
 8336    } else {
 8337
 8338    }
 8339  }
 8340  }
 8341  {
 8342#line 711
 8343  __cil_tmp280 = (int )eun;
 8344#line 711
 8345  __cil_tmp281 = (uint16_t )__cil_tmp280;
 8346#line 711
 8347  __cil_tmp282 = (int )xfer;
 8348#line 711
 8349  __cil_tmp283 = (uint16_t )__cil_tmp282;
 8350#line 711
 8351  ret = copy_erase_unit(part, __cil_tmp281, __cil_tmp283);
 8352  }
 8353#line 712
 8354  if (ret == 0) {
 8355    {
 8356#line 713
 8357    __cil_tmp284 = (int )xfer;
 8358#line 713
 8359    __cil_tmp285 = (uint16_t )__cil_tmp284;
 8360#line 713
 8361    erase_xfer(part, __cil_tmp285);
 8362    }
 8363  } else {
 8364    {
 8365#line 715
 8366    printk("<5>ftl_cs: copy_erase_unit failed!\n");
 8367    }
 8368  }
 8369#line 716
 8370  return (ret);
 8371}
 8372}
 8373#line 742 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 8374static uint32_t find_free(partition_t *part ) 
 8375{ uint16_t stop ;
 8376  uint16_t eun ;
 8377  uint32_t blk ;
 8378  size_t retlen ;
 8379  int ret ;
 8380  struct _ddebug descriptor ;
 8381  long tmp ;
 8382  unsigned long __cil_tmp9 ;
 8383  unsigned long __cil_tmp10 ;
 8384  uint16_t __cil_tmp11 ;
 8385  unsigned int __cil_tmp12 ;
 8386  unsigned long __cil_tmp13 ;
 8387  unsigned long __cil_tmp14 ;
 8388  unsigned long __cil_tmp15 ;
 8389  unsigned long __cil_tmp16 ;
 8390  unsigned long __cil_tmp17 ;
 8391  struct eun_info_t *__cil_tmp18 ;
 8392  struct eun_info_t *__cil_tmp19 ;
 8393  unsigned long __cil_tmp20 ;
 8394  unsigned long __cil_tmp21 ;
 8395  uint32_t __cil_tmp22 ;
 8396  int __cil_tmp23 ;
 8397  int __cil_tmp24 ;
 8398  unsigned long __cil_tmp25 ;
 8399  unsigned long __cil_tmp26 ;
 8400  uint16_t __cil_tmp27 ;
 8401  int __cil_tmp28 ;
 8402  unsigned short __cil_tmp29 ;
 8403  int __cil_tmp30 ;
 8404  int __cil_tmp31 ;
 8405  int __cil_tmp32 ;
 8406  unsigned long __cil_tmp33 ;
 8407  unsigned long __cil_tmp34 ;
 8408  unsigned long __cil_tmp35 ;
 8409  struct eun_info_t *__cil_tmp36 ;
 8410  struct eun_info_t *__cil_tmp37 ;
 8411  unsigned long __cil_tmp38 ;
 8412  unsigned long __cil_tmp39 ;
 8413  uint32_t __cil_tmp40 ;
 8414  int __cil_tmp41 ;
 8415  unsigned long __cil_tmp42 ;
 8416  unsigned long __cil_tmp43 ;
 8417  uint16_t __cil_tmp44 ;
 8418  int __cil_tmp45 ;
 8419  unsigned long __cil_tmp46 ;
 8420  unsigned long __cil_tmp47 ;
 8421  unsigned long __cil_tmp48 ;
 8422  unsigned long __cil_tmp49 ;
 8423  unsigned long __cil_tmp50 ;
 8424  struct mtd_info *__cil_tmp51 ;
 8425  unsigned long __cil_tmp52 ;
 8426  unsigned long __cil_tmp53 ;
 8427  unsigned long __cil_tmp54 ;
 8428  uint32_t __cil_tmp55 ;
 8429  unsigned long __cil_tmp56 ;
 8430  unsigned long __cil_tmp57 ;
 8431  unsigned long __cil_tmp58 ;
 8432  struct eun_info_t *__cil_tmp59 ;
 8433  struct eun_info_t *__cil_tmp60 ;
 8434  uint32_t __cil_tmp61 ;
 8435  uint32_t __cil_tmp62 ;
 8436  loff_t __cil_tmp63 ;
 8437  unsigned long __cil_tmp64 ;
 8438  unsigned long __cil_tmp65 ;
 8439  uint32_t __cil_tmp66 ;
 8440  unsigned long __cil_tmp67 ;
 8441  unsigned long __cil_tmp68 ;
 8442  unsigned long __cil_tmp69 ;
 8443  unsigned long __cil_tmp70 ;
 8444  uint32_t *__cil_tmp71 ;
 8445  u_char *__cil_tmp72 ;
 8446  unsigned long __cil_tmp73 ;
 8447  unsigned long __cil_tmp74 ;
 8448  unsigned long __cil_tmp75 ;
 8449  unsigned long __cil_tmp76 ;
 8450  unsigned long __cil_tmp77 ;
 8451  uint32_t *__cil_tmp78 ;
 8452  uint32_t *__cil_tmp79 ;
 8453  uint32_t __cil_tmp80 ;
 8454  unsigned long __cil_tmp81 ;
 8455  unsigned long __cil_tmp82 ;
 8456  uint32_t __cil_tmp83 ;
 8457  unsigned long __cil_tmp84 ;
 8458  unsigned long __cil_tmp85 ;
 8459  uint32_t __cil_tmp86 ;
 8460  struct _ddebug *__cil_tmp87 ;
 8461  unsigned long __cil_tmp88 ;
 8462  unsigned long __cil_tmp89 ;
 8463  unsigned long __cil_tmp90 ;
 8464  unsigned long __cil_tmp91 ;
 8465  unsigned long __cil_tmp92 ;
 8466  unsigned long __cil_tmp93 ;
 8467  unsigned char __cil_tmp94 ;
 8468  long __cil_tmp95 ;
 8469  long __cil_tmp96 ;
 8470  int __cil_tmp97 ;
 8471
 8472  {
 8473  {
 8474#line 750
 8475  __cil_tmp9 = (unsigned long )part;
 8476#line 750
 8477  __cil_tmp10 = __cil_tmp9 + 400;
 8478#line 750
 8479  __cil_tmp11 = *((uint16_t *)__cil_tmp10);
 8480#line 750
 8481  __cil_tmp12 = (unsigned int )__cil_tmp11;
 8482#line 750
 8483  if (__cil_tmp12 != 65535U) {
 8484#line 750
 8485    __cil_tmp13 = (unsigned long )part;
 8486#line 750
 8487    __cil_tmp14 = __cil_tmp13 + 400;
 8488#line 750
 8489    stop = *((uint16_t *)__cil_tmp14);
 8490  } else {
 8491#line 750
 8492    stop = (uint16_t )0U;
 8493  }
 8494  }
 8495#line 751
 8496  eun = stop;
 8497  ldv_22356: ;
 8498  {
 8499#line 753
 8500  __cil_tmp15 = (unsigned long )eun;
 8501#line 753
 8502  __cil_tmp16 = (unsigned long )part;
 8503#line 753
 8504  __cil_tmp17 = __cil_tmp16 + 384;
 8505#line 753
 8506  __cil_tmp18 = *((struct eun_info_t **)__cil_tmp17);
 8507#line 753
 8508  __cil_tmp19 = __cil_tmp18 + __cil_tmp15;
 8509#line 753
 8510  __cil_tmp20 = (unsigned long )__cil_tmp19;
 8511#line 753
 8512  __cil_tmp21 = __cil_tmp20 + 8;
 8513#line 753
 8514  __cil_tmp22 = *((uint32_t *)__cil_tmp21);
 8515#line 753
 8516  if (__cil_tmp22 != 0U) {
 8517#line 753
 8518    goto ldv_22355;
 8519  } else {
 8520
 8521  }
 8522  }
 8523#line 755
 8524  __cil_tmp23 = (int )eun;
 8525#line 755
 8526  __cil_tmp24 = __cil_tmp23 + 1;
 8527#line 755
 8528  eun = (uint16_t )__cil_tmp24;
 8529  {
 8530#line 755
 8531  __cil_tmp25 = (unsigned long )part;
 8532#line 755
 8533  __cil_tmp26 = __cil_tmp25 + 416;
 8534#line 755
 8535  __cil_tmp27 = *((uint16_t *)__cil_tmp26);
 8536#line 755
 8537  __cil_tmp28 = (int )__cil_tmp27;
 8538#line 755
 8539  __cil_tmp29 = (unsigned short )eun;
 8540#line 755
 8541  __cil_tmp30 = (int )__cil_tmp29;
 8542#line 755
 8543  if (__cil_tmp30 == __cil_tmp28) {
 8544#line 755
 8545    eun = (uint16_t )0U;
 8546  } else {
 8547
 8548  }
 8549  }
 8550  {
 8551#line 756
 8552  __cil_tmp31 = (int )stop;
 8553#line 756
 8554  __cil_tmp32 = (int )eun;
 8555#line 756
 8556  if (__cil_tmp32 != __cil_tmp31) {
 8557#line 757
 8558    goto ldv_22356;
 8559  } else {
 8560#line 759
 8561    goto ldv_22355;
 8562  }
 8563  }
 8564  ldv_22355: ;
 8565  {
 8566#line 758
 8567  __cil_tmp33 = (unsigned long )eun;
 8568#line 758
 8569  __cil_tmp34 = (unsigned long )part;
 8570#line 758
 8571  __cil_tmp35 = __cil_tmp34 + 384;
 8572#line 758
 8573  __cil_tmp36 = *((struct eun_info_t **)__cil_tmp35);
 8574#line 758
 8575  __cil_tmp37 = __cil_tmp36 + __cil_tmp33;
 8576#line 758
 8577  __cil_tmp38 = (unsigned long )__cil_tmp37;
 8578#line 758
 8579  __cil_tmp39 = __cil_tmp38 + 8;
 8580#line 758
 8581  __cil_tmp40 = *((uint32_t *)__cil_tmp39);
 8582#line 758
 8583  if (__cil_tmp40 == 0U) {
 8584#line 759
 8585    return (0U);
 8586  } else {
 8587
 8588  }
 8589  }
 8590  {
 8591#line 762
 8592  __cil_tmp41 = (int )eun;
 8593#line 762
 8594  __cil_tmp42 = (unsigned long )part;
 8595#line 762
 8596  __cil_tmp43 = __cil_tmp42 + 400;
 8597#line 762
 8598  __cil_tmp44 = *((uint16_t *)__cil_tmp43);
 8599#line 762
 8600  __cil_tmp45 = (int )__cil_tmp44;
 8601#line 762
 8602  if (__cil_tmp45 != __cil_tmp41) {
 8603    {
 8604#line 764
 8605    __cil_tmp46 = (unsigned long )part;
 8606#line 764
 8607    __cil_tmp47 = __cil_tmp46 + 400;
 8608#line 764
 8609    *((uint16_t *)__cil_tmp47) = (uint16_t )65535U;
 8610#line 766
 8611    __cil_tmp48 = 0 + 24;
 8612#line 766
 8613    __cil_tmp49 = (unsigned long )part;
 8614#line 766
 8615    __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
 8616#line 766
 8617    __cil_tmp51 = *((struct mtd_info **)__cil_tmp50);
 8618#line 766
 8619    __cil_tmp52 = 424 + 48;
 8620#line 766
 8621    __cil_tmp53 = (unsigned long )part;
 8622#line 766
 8623    __cil_tmp54 = __cil_tmp53 + __cil_tmp52;
 8624#line 766
 8625    __cil_tmp55 = *((uint32_t *)__cil_tmp54);
 8626#line 766
 8627    __cil_tmp56 = (unsigned long )eun;
 8628#line 766
 8629    __cil_tmp57 = (unsigned long )part;
 8630#line 766
 8631    __cil_tmp58 = __cil_tmp57 + 384;
 8632#line 766
 8633    __cil_tmp59 = *((struct eun_info_t **)__cil_tmp58);
 8634#line 766
 8635    __cil_tmp60 = __cil_tmp59 + __cil_tmp56;
 8636#line 766
 8637    __cil_tmp61 = *((uint32_t *)__cil_tmp60);
 8638#line 766
 8639    __cil_tmp62 = __cil_tmp61 + __cil_tmp55;
 8640#line 766
 8641    __cil_tmp63 = (loff_t )__cil_tmp62;
 8642#line 766
 8643    __cil_tmp64 = (unsigned long )part;
 8644#line 766
 8645    __cil_tmp65 = __cil_tmp64 + 420;
 8646#line 766
 8647    __cil_tmp66 = *((uint32_t *)__cil_tmp65);
 8648#line 766
 8649    __cil_tmp67 = (unsigned long )__cil_tmp66;
 8650#line 766
 8651    __cil_tmp68 = __cil_tmp67 * 4UL;
 8652#line 766
 8653    __cil_tmp69 = (unsigned long )part;
 8654#line 766
 8655    __cil_tmp70 = __cil_tmp69 + 408;
 8656#line 766
 8657    __cil_tmp71 = *((uint32_t **)__cil_tmp70);
 8658#line 766
 8659    __cil_tmp72 = (u_char *)__cil_tmp71;
 8660#line 766
 8661    ret = mtd_read(__cil_tmp51, __cil_tmp63, __cil_tmp68, & retlen, __cil_tmp72);
 8662    }
 8663#line 772
 8664    if (ret != 0) {
 8665      {
 8666#line 773
 8667      printk("<4>ftl: Error reading BAM in find_free\n");
 8668      }
 8669#line 774
 8670      return (0U);
 8671    } else {
 8672
 8673    }
 8674#line 776
 8675    __cil_tmp73 = (unsigned long )part;
 8676#line 776
 8677    __cil_tmp74 = __cil_tmp73 + 400;
 8678#line 776
 8679    *((uint16_t *)__cil_tmp74) = eun;
 8680  } else {
 8681
 8682  }
 8683  }
 8684#line 780
 8685  blk = 0U;
 8686#line 780
 8687  goto ldv_22359;
 8688  ldv_22358: ;
 8689  {
 8690#line 781
 8691  __cil_tmp75 = (unsigned long )blk;
 8692#line 781
 8693  __cil_tmp76 = (unsigned long )part;
 8694#line 781
 8695  __cil_tmp77 = __cil_tmp76 + 408;
 8696#line 781
 8697  __cil_tmp78 = *((uint32_t **)__cil_tmp77);
 8698#line 781
 8699  __cil_tmp79 = __cil_tmp78 + __cil_tmp75;
 8700#line 781
 8701  __cil_tmp80 = *__cil_tmp79;
 8702#line 781
 8703  if (__cil_tmp80 == 4294967295U) {
 8704#line 781
 8705    goto ldv_22357;
 8706  } else {
 8707
 8708  }
 8709  }
 8710#line 780
 8711  blk = blk + 1U;
 8712  ldv_22359: ;
 8713  {
 8714#line 780
 8715  __cil_tmp81 = (unsigned long )part;
 8716#line 780
 8717  __cil_tmp82 = __cil_tmp81 + 420;
 8718#line 780
 8719  __cil_tmp83 = *((uint32_t *)__cil_tmp82);
 8720#line 780
 8721  if (__cil_tmp83 > blk) {
 8722#line 781
 8723    goto ldv_22358;
 8724  } else {
 8725#line 783
 8726    goto ldv_22357;
 8727  }
 8728  }
 8729  ldv_22357: ;
 8730  {
 8731#line 782
 8732  __cil_tmp84 = (unsigned long )part;
 8733#line 782
 8734  __cil_tmp85 = __cil_tmp84 + 420;
 8735#line 782
 8736  __cil_tmp86 = *((uint32_t *)__cil_tmp85);
 8737#line 782
 8738  if (__cil_tmp86 == blk) {
 8739    {
 8740#line 788
 8741    printk("<5>ftl_cs: bad free list!\n");
 8742    }
 8743#line 789
 8744    return (0U);
 8745  } else {
 8746
 8747  }
 8748  }
 8749  {
 8750#line 791
 8751  __cil_tmp87 = & descriptor;
 8752#line 791
 8753  *((char const   **)__cil_tmp87) = "ftl";
 8754#line 791
 8755  __cil_tmp88 = (unsigned long )(& descriptor) + 8;
 8756#line 791
 8757  *((char const   **)__cil_tmp88) = "find_free";
 8758#line 791
 8759  __cil_tmp89 = (unsigned long )(& descriptor) + 16;
 8760#line 791
 8761  *((char const   **)__cil_tmp89) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 8762#line 791
 8763  __cil_tmp90 = (unsigned long )(& descriptor) + 24;
 8764#line 791
 8765  *((char const   **)__cil_tmp90) = "ftl_cs: found free block at %d in %d\n";
 8766#line 791
 8767  __cil_tmp91 = (unsigned long )(& descriptor) + 32;
 8768#line 791
 8769  *((unsigned int *)__cil_tmp91) = 791U;
 8770#line 791
 8771  __cil_tmp92 = (unsigned long )(& descriptor) + 35;
 8772#line 791
 8773  *((unsigned char *)__cil_tmp92) = (unsigned char)0;
 8774#line 791
 8775  __cil_tmp93 = (unsigned long )(& descriptor) + 35;
 8776#line 791
 8777  __cil_tmp94 = *((unsigned char *)__cil_tmp93);
 8778#line 791
 8779  __cil_tmp95 = (long )__cil_tmp94;
 8780#line 791
 8781  __cil_tmp96 = __cil_tmp95 & 1L;
 8782#line 791
 8783  tmp = __builtin_expect(__cil_tmp96, 0L);
 8784  }
 8785#line 791
 8786  if (tmp != 0L) {
 8787    {
 8788#line 791
 8789    __cil_tmp97 = (int )eun;
 8790#line 791
 8791    __dynamic_pr_debug(& descriptor, "ftl_cs: found free block at %d in %d\n", blk,
 8792                       __cil_tmp97);
 8793    }
 8794  } else {
 8795
 8796  }
 8797#line 792
 8798  return (blk);
 8799}
 8800}
 8801#line 803 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 8802static int ftl_read(partition_t *part , caddr_t buffer , u_long sector , u_long nblocks ) 
 8803{ uint32_t log_addr ;
 8804  uint32_t bsize ;
 8805  u_long i ;
 8806  int ret ;
 8807  size_t offset ;
 8808  size_t retlen ;
 8809  struct _ddebug descriptor ;
 8810  long tmp ;
 8811  struct _ddebug *__cil_tmp13 ;
 8812  unsigned long __cil_tmp14 ;
 8813  unsigned long __cil_tmp15 ;
 8814  unsigned long __cil_tmp16 ;
 8815  unsigned long __cil_tmp17 ;
 8816  unsigned long __cil_tmp18 ;
 8817  unsigned long __cil_tmp19 ;
 8818  unsigned char __cil_tmp20 ;
 8819  long __cil_tmp21 ;
 8820  long __cil_tmp22 ;
 8821  unsigned long __cil_tmp23 ;
 8822  unsigned long __cil_tmp24 ;
 8823  uint32_t __cil_tmp25 ;
 8824  unsigned int __cil_tmp26 ;
 8825  unsigned long __cil_tmp27 ;
 8826  unsigned long __cil_tmp28 ;
 8827  unsigned long __cil_tmp29 ;
 8828  uint8_t __cil_tmp30 ;
 8829  int __cil_tmp31 ;
 8830  int __cil_tmp32 ;
 8831  unsigned long __cil_tmp33 ;
 8832  unsigned long __cil_tmp34 ;
 8833  unsigned long __cil_tmp35 ;
 8834  uint32_t __cil_tmp36 ;
 8835  u_long __cil_tmp37 ;
 8836  u_long __cil_tmp38 ;
 8837  u_long __cil_tmp39 ;
 8838  u_long __cil_tmp40 ;
 8839  unsigned long __cil_tmp41 ;
 8840  unsigned long __cil_tmp42 ;
 8841  uint32_t *__cil_tmp43 ;
 8842  uint32_t *__cil_tmp44 ;
 8843  void *__cil_tmp45 ;
 8844  unsigned int __cil_tmp46 ;
 8845  uint32_t __cil_tmp47 ;
 8846  unsigned long __cil_tmp48 ;
 8847  unsigned long __cil_tmp49 ;
 8848  unsigned long __cil_tmp50 ;
 8849  struct eun_info_t *__cil_tmp51 ;
 8850  struct eun_info_t *__cil_tmp52 ;
 8851  uint32_t __cil_tmp53 ;
 8852  uint32_t __cil_tmp54 ;
 8853  unsigned long __cil_tmp55 ;
 8854  unsigned long __cil_tmp56 ;
 8855  unsigned long __cil_tmp57 ;
 8856  struct mtd_info *__cil_tmp58 ;
 8857  loff_t __cil_tmp59 ;
 8858  u_char *__cil_tmp60 ;
 8859
 8860  {
 8861  {
 8862#line 811
 8863  __cil_tmp13 = & descriptor;
 8864#line 811
 8865  *((char const   **)__cil_tmp13) = "ftl";
 8866#line 811
 8867  __cil_tmp14 = (unsigned long )(& descriptor) + 8;
 8868#line 811
 8869  *((char const   **)__cil_tmp14) = "ftl_read";
 8870#line 811
 8871  __cil_tmp15 = (unsigned long )(& descriptor) + 16;
 8872#line 811
 8873  *((char const   **)__cil_tmp15) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 8874#line 811
 8875  __cil_tmp16 = (unsigned long )(& descriptor) + 24;
 8876#line 811
 8877  *((char const   **)__cil_tmp16) = "ftl_cs: ftl_read(0x%p, 0x%lx, %ld)\n";
 8878#line 811
 8879  __cil_tmp17 = (unsigned long )(& descriptor) + 32;
 8880#line 811
 8881  *((unsigned int *)__cil_tmp17) = 812U;
 8882#line 811
 8883  __cil_tmp18 = (unsigned long )(& descriptor) + 35;
 8884#line 811
 8885  *((unsigned char *)__cil_tmp18) = (unsigned char)0;
 8886#line 811
 8887  __cil_tmp19 = (unsigned long )(& descriptor) + 35;
 8888#line 811
 8889  __cil_tmp20 = *((unsigned char *)__cil_tmp19);
 8890#line 811
 8891  __cil_tmp21 = (long )__cil_tmp20;
 8892#line 811
 8893  __cil_tmp22 = __cil_tmp21 & 1L;
 8894#line 811
 8895  tmp = __builtin_expect(__cil_tmp22, 0L);
 8896  }
 8897#line 811
 8898  if (tmp != 0L) {
 8899    {
 8900#line 811
 8901    __dynamic_pr_debug(& descriptor, "ftl_cs: ftl_read(0x%p, 0x%lx, %ld)\n", part,
 8902                       sector, nblocks);
 8903    }
 8904  } else {
 8905
 8906  }
 8907  {
 8908#line 813
 8909  __cil_tmp23 = (unsigned long )part;
 8910#line 813
 8911  __cil_tmp24 = __cil_tmp23 + 352;
 8912#line 813
 8913  __cil_tmp25 = *((uint32_t *)__cil_tmp24);
 8914#line 813
 8915  __cil_tmp26 = __cil_tmp25 & 1U;
 8916#line 813
 8917  if (__cil_tmp26 == 0U) {
 8918    {
 8919#line 814
 8920    printk("<5>ftl_cs: bad partition\n");
 8921    }
 8922#line 815
 8923    return (-5);
 8924  } else {
 8925
 8926  }
 8927  }
 8928#line 817
 8929  __cil_tmp27 = 424 + 23;
 8930#line 817
 8931  __cil_tmp28 = (unsigned long )part;
 8932#line 817
 8933  __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
 8934#line 817
 8935  __cil_tmp30 = *((uint8_t *)__cil_tmp29);
 8936#line 817
 8937  __cil_tmp31 = (int )__cil_tmp30;
 8938#line 817
 8939  __cil_tmp32 = 1 << __cil_tmp31;
 8940#line 817
 8941  bsize = (uint32_t )__cil_tmp32;
 8942#line 819
 8943  i = 0UL;
 8944#line 819
 8945  goto ldv_22377;
 8946  ldv_22376: ;
 8947  {
 8948#line 820
 8949  __cil_tmp33 = 424 + 28;
 8950#line 820
 8951  __cil_tmp34 = (unsigned long )part;
 8952#line 820
 8953  __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
 8954#line 820
 8955  __cil_tmp36 = *((uint32_t *)__cil_tmp35);
 8956#line 820
 8957  __cil_tmp37 = (u_long )__cil_tmp36;
 8958#line 820
 8959  __cil_tmp38 = sector + i;
 8960#line 820
 8961  __cil_tmp39 = __cil_tmp38 * 512UL;
 8962#line 820
 8963  if (__cil_tmp39 >= __cil_tmp37) {
 8964    {
 8965#line 821
 8966    printk("<5>ftl_cs: bad read offset\n");
 8967    }
 8968#line 822
 8969    return (-5);
 8970  } else {
 8971
 8972  }
 8973  }
 8974#line 824
 8975  __cil_tmp40 = sector + i;
 8976#line 824
 8977  __cil_tmp41 = (unsigned long )part;
 8978#line 824
 8979  __cil_tmp42 = __cil_tmp41 + 360;
 8980#line 824
 8981  __cil_tmp43 = *((uint32_t **)__cil_tmp42);
 8982#line 824
 8983  __cil_tmp44 = __cil_tmp43 + __cil_tmp40;
 8984#line 824
 8985  log_addr = *__cil_tmp44;
 8986#line 825
 8987  if (log_addr == 4294967295U) {
 8988    {
 8989#line 826
 8990    __cil_tmp45 = (void *)buffer;
 8991#line 826
 8992    memset(__cil_tmp45, 0, 512UL);
 8993    }
 8994  } else {
 8995    {
 8996#line 828
 8997    __cil_tmp46 = log_addr % bsize;
 8998#line 828
 8999    __cil_tmp47 = log_addr / bsize;
 9000#line 828
 9001    __cil_tmp48 = (unsigned long )__cil_tmp47;
 9002#line 828
 9003    __cil_tmp49 = (unsigned long )part;
 9004#line 828
 9005    __cil_tmp50 = __cil_tmp49 + 384;
 9006#line 828
 9007    __cil_tmp51 = *((struct eun_info_t **)__cil_tmp50);
 9008#line 828
 9009    __cil_tmp52 = __cil_tmp51 + __cil_tmp48;
 9010#line 828
 9011    __cil_tmp53 = *((uint32_t *)__cil_tmp52);
 9012#line 828
 9013    __cil_tmp54 = __cil_tmp53 + __cil_tmp46;
 9014#line 828
 9015    offset = (size_t )__cil_tmp54;
 9016#line 830
 9017    __cil_tmp55 = 0 + 24;
 9018#line 830
 9019    __cil_tmp56 = (unsigned long )part;
 9020#line 830
 9021    __cil_tmp57 = __cil_tmp56 + __cil_tmp55;
 9022#line 830
 9023    __cil_tmp58 = *((struct mtd_info **)__cil_tmp57);
 9024#line 830
 9025    __cil_tmp59 = (loff_t )offset;
 9026#line 830
 9027    __cil_tmp60 = (u_char *)buffer;
 9028#line 830
 9029    ret = mtd_read(__cil_tmp58, __cil_tmp59, 512UL, & retlen, __cil_tmp60);
 9030    }
 9031#line 833
 9032    if (ret != 0) {
 9033      {
 9034#line 834
 9035      printk("<4>Error reading MTD device in ftl_read()\n");
 9036      }
 9037#line 835
 9038      return (ret);
 9039    } else {
 9040
 9041    }
 9042  }
 9043#line 838
 9044  buffer = buffer + 512UL;
 9045#line 819
 9046  i = i + 1UL;
 9047  ldv_22377: ;
 9048#line 819
 9049  if (i < nblocks) {
 9050#line 820
 9051    goto ldv_22376;
 9052  } else {
 9053#line 822
 9054    goto ldv_22378;
 9055  }
 9056  ldv_22378: ;
 9057#line 840
 9058  return (0);
 9059}
 9060}
 9061#line 849 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 9062static int set_bam_entry(partition_t *part , uint32_t log_addr , uint32_t virt_addr ) 
 9063{ uint32_t bsize ;
 9064  uint32_t blk ;
 9065  uint32_t le_virt_addr ;
 9066  uint16_t eun ;
 9067  int ret ;
 9068  size_t retlen ;
 9069  size_t offset ;
 9070  struct _ddebug descriptor ;
 9071  long tmp ;
 9072  struct _ddebug *__cil_tmp13 ;
 9073  unsigned long __cil_tmp14 ;
 9074  unsigned long __cil_tmp15 ;
 9075  unsigned long __cil_tmp16 ;
 9076  unsigned long __cil_tmp17 ;
 9077  unsigned long __cil_tmp18 ;
 9078  unsigned long __cil_tmp19 ;
 9079  unsigned char __cil_tmp20 ;
 9080  long __cil_tmp21 ;
 9081  long __cil_tmp22 ;
 9082  unsigned long __cil_tmp23 ;
 9083  unsigned long __cil_tmp24 ;
 9084  unsigned long __cil_tmp25 ;
 9085  uint8_t __cil_tmp26 ;
 9086  int __cil_tmp27 ;
 9087  int __cil_tmp28 ;
 9088  uint32_t __cil_tmp29 ;
 9089  unsigned int __cil_tmp30 ;
 9090  unsigned long __cil_tmp31 ;
 9091  unsigned long __cil_tmp32 ;
 9092  unsigned long __cil_tmp33 ;
 9093  uint32_t __cil_tmp34 ;
 9094  unsigned long __cil_tmp35 ;
 9095  unsigned long __cil_tmp36 ;
 9096  unsigned long __cil_tmp37 ;
 9097  unsigned long __cil_tmp38 ;
 9098  unsigned long __cil_tmp39 ;
 9099  unsigned long __cil_tmp40 ;
 9100  struct eun_info_t *__cil_tmp41 ;
 9101  struct eun_info_t *__cil_tmp42 ;
 9102  uint32_t __cil_tmp43 ;
 9103  unsigned long __cil_tmp44 ;
 9104  unsigned long __cil_tmp45 ;
 9105  uint32_t *__cil_tmp46 ;
 9106  int __cil_tmp47 ;
 9107  unsigned long __cil_tmp48 ;
 9108  unsigned long __cil_tmp49 ;
 9109  uint16_t __cil_tmp50 ;
 9110  int __cil_tmp51 ;
 9111  unsigned long __cil_tmp52 ;
 9112  unsigned long __cil_tmp53 ;
 9113  unsigned long __cil_tmp54 ;
 9114  uint32_t *__cil_tmp55 ;
 9115  uint32_t *__cil_tmp56 ;
 9116  uint32_t *__cil_tmp57 ;
 9117  unsigned long __cil_tmp58 ;
 9118  unsigned long __cil_tmp59 ;
 9119  unsigned long __cil_tmp60 ;
 9120  struct mtd_info *__cil_tmp61 ;
 9121  loff_t __cil_tmp62 ;
 9122  u_char const   *__cil_tmp63 ;
 9123
 9124  {
 9125  {
 9126#line 860
 9127  __cil_tmp13 = & descriptor;
 9128#line 860
 9129  *((char const   **)__cil_tmp13) = "ftl";
 9130#line 860
 9131  __cil_tmp14 = (unsigned long )(& descriptor) + 8;
 9132#line 860
 9133  *((char const   **)__cil_tmp14) = "set_bam_entry";
 9134#line 860
 9135  __cil_tmp15 = (unsigned long )(& descriptor) + 16;
 9136#line 860
 9137  *((char const   **)__cil_tmp15) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 9138#line 860
 9139  __cil_tmp16 = (unsigned long )(& descriptor) + 24;
 9140#line 860
 9141  *((char const   **)__cil_tmp16) = "ftl_cs: set_bam_entry(0x%p, 0x%x, 0x%x)\n";
 9142#line 860
 9143  __cil_tmp17 = (unsigned long )(& descriptor) + 32;
 9144#line 860
 9145  *((unsigned int *)__cil_tmp17) = 861U;
 9146#line 860
 9147  __cil_tmp18 = (unsigned long )(& descriptor) + 35;
 9148#line 860
 9149  *((unsigned char *)__cil_tmp18) = (unsigned char)0;
 9150#line 860
 9151  __cil_tmp19 = (unsigned long )(& descriptor) + 35;
 9152#line 860
 9153  __cil_tmp20 = *((unsigned char *)__cil_tmp19);
 9154#line 860
 9155  __cil_tmp21 = (long )__cil_tmp20;
 9156#line 860
 9157  __cil_tmp22 = __cil_tmp21 & 1L;
 9158#line 860
 9159  tmp = __builtin_expect(__cil_tmp22, 0L);
 9160  }
 9161#line 860
 9162  if (tmp != 0L) {
 9163    {
 9164#line 860
 9165    __dynamic_pr_debug(& descriptor, "ftl_cs: set_bam_entry(0x%p, 0x%x, 0x%x)\n",
 9166                       part, log_addr, virt_addr);
 9167    }
 9168  } else {
 9169
 9170  }
 9171#line 862
 9172  __cil_tmp23 = 424 + 23;
 9173#line 862
 9174  __cil_tmp24 = (unsigned long )part;
 9175#line 862
 9176  __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
 9177#line 862
 9178  __cil_tmp26 = *((uint8_t *)__cil_tmp25);
 9179#line 862
 9180  __cil_tmp27 = (int )__cil_tmp26;
 9181#line 862
 9182  __cil_tmp28 = 1 << __cil_tmp27;
 9183#line 862
 9184  bsize = (uint32_t )__cil_tmp28;
 9185#line 863
 9186  __cil_tmp29 = log_addr / bsize;
 9187#line 863
 9188  eun = (uint16_t )__cil_tmp29;
 9189#line 864
 9190  __cil_tmp30 = log_addr % bsize;
 9191#line 864
 9192  blk = __cil_tmp30 / 512U;
 9193#line 865
 9194  __cil_tmp31 = 424 + 48;
 9195#line 865
 9196  __cil_tmp32 = (unsigned long )part;
 9197#line 865
 9198  __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
 9199#line 865
 9200  __cil_tmp34 = *((uint32_t *)__cil_tmp33);
 9201#line 865
 9202  __cil_tmp35 = (unsigned long )__cil_tmp34;
 9203#line 865
 9204  __cil_tmp36 = (unsigned long )blk;
 9205#line 865
 9206  __cil_tmp37 = __cil_tmp36 * 4UL;
 9207#line 865
 9208  __cil_tmp38 = (unsigned long )eun;
 9209#line 865
 9210  __cil_tmp39 = (unsigned long )part;
 9211#line 865
 9212  __cil_tmp40 = __cil_tmp39 + 384;
 9213#line 865
 9214  __cil_tmp41 = *((struct eun_info_t **)__cil_tmp40);
 9215#line 865
 9216  __cil_tmp42 = __cil_tmp41 + __cil_tmp38;
 9217#line 865
 9218  __cil_tmp43 = *((uint32_t *)__cil_tmp42);
 9219#line 865
 9220  __cil_tmp44 = (unsigned long )__cil_tmp43;
 9221#line 865
 9222  __cil_tmp45 = __cil_tmp44 + __cil_tmp37;
 9223#line 865
 9224  offset = __cil_tmp45 + __cil_tmp35;
 9225#line 889
 9226  __cil_tmp46 = & le_virt_addr;
 9227#line 889
 9228  *__cil_tmp46 = virt_addr;
 9229  {
 9230#line 890
 9231  __cil_tmp47 = (int )eun;
 9232#line 890
 9233  __cil_tmp48 = (unsigned long )part;
 9234#line 890
 9235  __cil_tmp49 = __cil_tmp48 + 400;
 9236#line 890
 9237  __cil_tmp50 = *((uint16_t *)__cil_tmp49);
 9238#line 890
 9239  __cil_tmp51 = (int )__cil_tmp50;
 9240#line 890
 9241  if (__cil_tmp51 == __cil_tmp47) {
 9242#line 904
 9243    __cil_tmp52 = (unsigned long )blk;
 9244#line 904
 9245    __cil_tmp53 = (unsigned long )part;
 9246#line 904
 9247    __cil_tmp54 = __cil_tmp53 + 408;
 9248#line 904
 9249    __cil_tmp55 = *((uint32_t **)__cil_tmp54);
 9250#line 904
 9251    __cil_tmp56 = __cil_tmp55 + __cil_tmp52;
 9252#line 904
 9253    __cil_tmp57 = & le_virt_addr;
 9254#line 904
 9255    *__cil_tmp56 = *__cil_tmp57;
 9256  } else {
 9257
 9258  }
 9259  }
 9260  {
 9261#line 906
 9262  __cil_tmp58 = 0 + 24;
 9263#line 906
 9264  __cil_tmp59 = (unsigned long )part;
 9265#line 906
 9266  __cil_tmp60 = __cil_tmp59 + __cil_tmp58;
 9267#line 906
 9268  __cil_tmp61 = *((struct mtd_info **)__cil_tmp60);
 9269#line 906
 9270  __cil_tmp62 = (loff_t )offset;
 9271#line 906
 9272  __cil_tmp63 = (u_char const   *)(& le_virt_addr);
 9273#line 906
 9274  ret = mtd_write(__cil_tmp61, __cil_tmp62, 4UL, & retlen, __cil_tmp63);
 9275  }
 9276#line 909
 9277  if (ret != 0) {
 9278    {
 9279#line 910
 9280    printk("<5>ftl_cs: set_bam_entry() failed!\n");
 9281#line 911
 9282    printk("<5>ftl_cs:   log_addr = 0x%x, new = 0x%x\n", log_addr, virt_addr);
 9283    }
 9284  } else {
 9285
 9286  }
 9287#line 914
 9288  return (ret);
 9289}
 9290}
 9291#line 917 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 9292static int ftl_write(partition_t *part , caddr_t buffer , u_long sector , u_long nblocks ) 
 9293{ uint32_t bsize ;
 9294  uint32_t log_addr ;
 9295  uint32_t virt_addr ;
 9296  uint32_t old_addr ;
 9297  uint32_t blk ;
 9298  u_long i ;
 9299  int ret ;
 9300  size_t retlen ;
 9301  size_t offset ;
 9302  struct _ddebug descriptor ;
 9303  long tmp ;
 9304  int ne ;
 9305  int tmp___0 ;
 9306  int tmp___1 ;
 9307  int tmp___2 ;
 9308  struct _ddebug *__cil_tmp20 ;
 9309  unsigned long __cil_tmp21 ;
 9310  unsigned long __cil_tmp22 ;
 9311  unsigned long __cil_tmp23 ;
 9312  unsigned long __cil_tmp24 ;
 9313  unsigned long __cil_tmp25 ;
 9314  unsigned long __cil_tmp26 ;
 9315  unsigned char __cil_tmp27 ;
 9316  long __cil_tmp28 ;
 9317  long __cil_tmp29 ;
 9318  unsigned long __cil_tmp30 ;
 9319  unsigned long __cil_tmp31 ;
 9320  uint32_t __cil_tmp32 ;
 9321  unsigned int __cil_tmp33 ;
 9322  unsigned long __cil_tmp34 ;
 9323  unsigned long __cil_tmp35 ;
 9324  uint32_t __cil_tmp36 ;
 9325  u_long __cil_tmp37 ;
 9326  unsigned long __cil_tmp38 ;
 9327  unsigned long __cil_tmp39 ;
 9328  unsigned long __cil_tmp40 ;
 9329  uint8_t __cil_tmp41 ;
 9330  int __cil_tmp42 ;
 9331  int __cil_tmp43 ;
 9332  uint32_t __cil_tmp44 ;
 9333  uint32_t __cil_tmp45 ;
 9334  unsigned long __cil_tmp46 ;
 9335  unsigned long __cil_tmp47 ;
 9336  unsigned long __cil_tmp48 ;
 9337  uint32_t __cil_tmp49 ;
 9338  uint32_t __cil_tmp50 ;
 9339  unsigned long __cil_tmp51 ;
 9340  unsigned long __cil_tmp52 ;
 9341  uint16_t __cil_tmp53 ;
 9342  uint32_t __cil_tmp54 ;
 9343  uint32_t __cil_tmp55 ;
 9344  unsigned long __cil_tmp56 ;
 9345  unsigned long __cil_tmp57 ;
 9346  uint16_t __cil_tmp58 ;
 9347  unsigned long __cil_tmp59 ;
 9348  unsigned long __cil_tmp60 ;
 9349  unsigned long __cil_tmp61 ;
 9350  struct eun_info_t *__cil_tmp62 ;
 9351  struct eun_info_t *__cil_tmp63 ;
 9352  unsigned long __cil_tmp64 ;
 9353  unsigned long __cil_tmp65 ;
 9354  unsigned long __cil_tmp66 ;
 9355  unsigned long __cil_tmp67 ;
 9356  uint16_t __cil_tmp68 ;
 9357  unsigned long __cil_tmp69 ;
 9358  unsigned long __cil_tmp70 ;
 9359  unsigned long __cil_tmp71 ;
 9360  struct eun_info_t *__cil_tmp72 ;
 9361  struct eun_info_t *__cil_tmp73 ;
 9362  unsigned long __cil_tmp74 ;
 9363  unsigned long __cil_tmp75 ;
 9364  uint32_t __cil_tmp76 ;
 9365  unsigned long __cil_tmp77 ;
 9366  unsigned long __cil_tmp78 ;
 9367  unsigned long __cil_tmp79 ;
 9368  unsigned long __cil_tmp80 ;
 9369  uint32_t __cil_tmp81 ;
 9370  unsigned long __cil_tmp82 ;
 9371  unsigned long __cil_tmp83 ;
 9372  uint16_t __cil_tmp84 ;
 9373  unsigned long __cil_tmp85 ;
 9374  unsigned long __cil_tmp86 ;
 9375  unsigned long __cil_tmp87 ;
 9376  struct eun_info_t *__cil_tmp88 ;
 9377  struct eun_info_t *__cil_tmp89 ;
 9378  unsigned long __cil_tmp90 ;
 9379  unsigned long __cil_tmp91 ;
 9380  unsigned long __cil_tmp92 ;
 9381  unsigned long __cil_tmp93 ;
 9382  uint16_t __cil_tmp94 ;
 9383  unsigned long __cil_tmp95 ;
 9384  unsigned long __cil_tmp96 ;
 9385  unsigned long __cil_tmp97 ;
 9386  struct eun_info_t *__cil_tmp98 ;
 9387  struct eun_info_t *__cil_tmp99 ;
 9388  unsigned long __cil_tmp100 ;
 9389  unsigned long __cil_tmp101 ;
 9390  uint32_t __cil_tmp102 ;
 9391  uint32_t __cil_tmp103 ;
 9392  unsigned long __cil_tmp104 ;
 9393  unsigned long __cil_tmp105 ;
 9394  uint16_t __cil_tmp106 ;
 9395  unsigned long __cil_tmp107 ;
 9396  unsigned long __cil_tmp108 ;
 9397  unsigned long __cil_tmp109 ;
 9398  struct eun_info_t *__cil_tmp110 ;
 9399  struct eun_info_t *__cil_tmp111 ;
 9400  uint32_t __cil_tmp112 ;
 9401  uint32_t __cil_tmp113 ;
 9402  unsigned long __cil_tmp114 ;
 9403  unsigned long __cil_tmp115 ;
 9404  unsigned long __cil_tmp116 ;
 9405  struct mtd_info *__cil_tmp117 ;
 9406  loff_t __cil_tmp118 ;
 9407  u_char const   *__cil_tmp119 ;
 9408  u_long __cil_tmp120 ;
 9409  unsigned long __cil_tmp121 ;
 9410  unsigned long __cil_tmp122 ;
 9411  uint32_t *__cil_tmp123 ;
 9412  uint32_t *__cil_tmp124 ;
 9413  u_long __cil_tmp125 ;
 9414  unsigned long __cil_tmp126 ;
 9415  unsigned long __cil_tmp127 ;
 9416  uint32_t *__cil_tmp128 ;
 9417  uint32_t *__cil_tmp129 ;
 9418  uint32_t __cil_tmp130 ;
 9419  unsigned long __cil_tmp131 ;
 9420  unsigned long __cil_tmp132 ;
 9421  unsigned long __cil_tmp133 ;
 9422  struct eun_info_t *__cil_tmp134 ;
 9423  struct eun_info_t *__cil_tmp135 ;
 9424  unsigned long __cil_tmp136 ;
 9425  unsigned long __cil_tmp137 ;
 9426  uint32_t __cil_tmp138 ;
 9427  unsigned long __cil_tmp139 ;
 9428  unsigned long __cil_tmp140 ;
 9429  unsigned long __cil_tmp141 ;
 9430  struct eun_info_t *__cil_tmp142 ;
 9431  struct eun_info_t *__cil_tmp143 ;
 9432  unsigned long __cil_tmp144 ;
 9433  unsigned long __cil_tmp145 ;
 9434  uint32_t __cil_tmp146 ;
 9435  u_long __cil_tmp147 ;
 9436  unsigned long __cil_tmp148 ;
 9437  unsigned long __cil_tmp149 ;
 9438  uint32_t *__cil_tmp150 ;
 9439  uint32_t *__cil_tmp151 ;
 9440  unsigned long __cil_tmp152 ;
 9441  unsigned long __cil_tmp153 ;
 9442  uint16_t __cil_tmp154 ;
 9443  unsigned long __cil_tmp155 ;
 9444  unsigned long __cil_tmp156 ;
 9445  unsigned long __cil_tmp157 ;
 9446  struct eun_info_t *__cil_tmp158 ;
 9447  struct eun_info_t *__cil_tmp159 ;
 9448  unsigned long __cil_tmp160 ;
 9449  unsigned long __cil_tmp161 ;
 9450  unsigned long __cil_tmp162 ;
 9451  unsigned long __cil_tmp163 ;
 9452  uint16_t __cil_tmp164 ;
 9453  unsigned long __cil_tmp165 ;
 9454  unsigned long __cil_tmp166 ;
 9455  unsigned long __cil_tmp167 ;
 9456  struct eun_info_t *__cil_tmp168 ;
 9457  struct eun_info_t *__cil_tmp169 ;
 9458  unsigned long __cil_tmp170 ;
 9459  unsigned long __cil_tmp171 ;
 9460  uint32_t __cil_tmp172 ;
 9461
 9462  {
 9463  {
 9464#line 925
 9465  __cil_tmp20 = & descriptor;
 9466#line 925
 9467  *((char const   **)__cil_tmp20) = "ftl";
 9468#line 925
 9469  __cil_tmp21 = (unsigned long )(& descriptor) + 8;
 9470#line 925
 9471  *((char const   **)__cil_tmp21) = "ftl_write";
 9472#line 925
 9473  __cil_tmp22 = (unsigned long )(& descriptor) + 16;
 9474#line 925
 9475  *((char const   **)__cil_tmp22) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
 9476#line 925
 9477  __cil_tmp23 = (unsigned long )(& descriptor) + 24;
 9478#line 925
 9479  *((char const   **)__cil_tmp23) = "ftl_cs: ftl_write(0x%p, %ld, %ld)\n";
 9480#line 925
 9481  __cil_tmp24 = (unsigned long )(& descriptor) + 32;
 9482#line 925
 9483  *((unsigned int *)__cil_tmp24) = 926U;
 9484#line 925
 9485  __cil_tmp25 = (unsigned long )(& descriptor) + 35;
 9486#line 925
 9487  *((unsigned char *)__cil_tmp25) = (unsigned char)0;
 9488#line 925
 9489  __cil_tmp26 = (unsigned long )(& descriptor) + 35;
 9490#line 925
 9491  __cil_tmp27 = *((unsigned char *)__cil_tmp26);
 9492#line 925
 9493  __cil_tmp28 = (long )__cil_tmp27;
 9494#line 925
 9495  __cil_tmp29 = __cil_tmp28 & 1L;
 9496#line 925
 9497  tmp = __builtin_expect(__cil_tmp29, 0L);
 9498  }
 9499#line 925
 9500  if (tmp != 0L) {
 9501    {
 9502#line 925
 9503    __dynamic_pr_debug(& descriptor, "ftl_cs: ftl_write(0x%p, %ld, %ld)\n", part,
 9504                       sector, nblocks);
 9505    }
 9506  } else {
 9507
 9508  }
 9509  {
 9510#line 927
 9511  __cil_tmp30 = (unsigned long )part;
 9512#line 927
 9513  __cil_tmp31 = __cil_tmp30 + 352;
 9514#line 927
 9515  __cil_tmp32 = *((uint32_t *)__cil_tmp31);
 9516#line 927
 9517  __cil_tmp33 = __cil_tmp32 & 1U;
 9518#line 927
 9519  if (__cil_tmp33 == 0U) {
 9520    {
 9521#line 928
 9522    printk("<5>ftl_cs: bad partition\n");
 9523    }
 9524#line 929
 9525    return (-5);
 9526  } else {
 9527
 9528  }
 9529  }
 9530#line 932
 9531  goto ldv_22411;
 9532  ldv_22410: 
 9533  {
 9534#line 933
 9535  ret = reclaim_block(part);
 9536  }
 9537#line 934
 9538  if (ret != 0) {
 9539#line 935
 9540    return (ret);
 9541  } else {
 9542
 9543  }
 9544  ldv_22411: ;
 9545  {
 9546#line 932
 9547  __cil_tmp34 = (unsigned long )part;
 9548#line 932
 9549  __cil_tmp35 = __cil_tmp34 + 376;
 9550#line 932
 9551  __cil_tmp36 = *((uint32_t *)__cil_tmp35);
 9552#line 932
 9553  __cil_tmp37 = (u_long )__cil_tmp36;
 9554#line 932
 9555  if (__cil_tmp37 < nblocks) {
 9556#line 933
 9557    goto ldv_22410;
 9558  } else {
 9559#line 935
 9560    goto ldv_22412;
 9561  }
 9562  }
 9563  ldv_22412: 
 9564#line 938
 9565  __cil_tmp38 = 424 + 23;
 9566#line 938
 9567  __cil_tmp39 = (unsigned long )part;
 9568#line 938
 9569  __cil_tmp40 = __cil_tmp39 + __cil_tmp38;
 9570#line 938
 9571  __cil_tmp41 = *((uint8_t *)__cil_tmp40);
 9572#line 938
 9573  __cil_tmp42 = (int )__cil_tmp41;
 9574#line 938
 9575  __cil_tmp43 = 1 << __cil_tmp42;
 9576#line 938
 9577  bsize = (uint32_t )__cil_tmp43;
 9578#line 940
 9579  __cil_tmp44 = (uint32_t )sector;
 9580#line 940
 9581  __cil_tmp45 = __cil_tmp44 * 512U;
 9582#line 940
 9583  virt_addr = __cil_tmp45 | 64U;
 9584#line 941
 9585  i = 0UL;
 9586#line 941
 9587  goto ldv_22415;
 9588  ldv_22414: ;
 9589  {
 9590#line 942
 9591  __cil_tmp46 = 424 + 28;
 9592#line 942
 9593  __cil_tmp47 = (unsigned long )part;
 9594#line 942
 9595  __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
 9596#line 942
 9597  __cil_tmp49 = *((uint32_t *)__cil_tmp48);
 9598#line 942
 9599  if (__cil_tmp49 <= virt_addr) {
 9600    {
 9601#line 943
 9602    printk("<5>ftl_cs: bad write offset\n");
 9603    }
 9604#line 944
 9605    return (-5);
 9606  } else {
 9607
 9608  }
 9609  }
 9610  {
 9611#line 948
 9612  blk = find_free(part);
 9613  }
 9614#line 949
 9615  if (blk == 0U) {
 9616#line 950
 9617    ne = 0;
 9618#line 951
 9619    ne = ne + 1;
 9620#line 951
 9621    if (ne <= 4) {
 9622      {
 9623#line 952
 9624      printk("<5>ftl_cs: internal error: no free blocks!\n");
 9625      }
 9626    } else {
 9627
 9628    }
 9629#line 954
 9630    return (-28);
 9631  } else {
 9632
 9633  }
 9634  {
 9635#line 958
 9636  __cil_tmp50 = blk * 512U;
 9637#line 958
 9638  __cil_tmp51 = (unsigned long )part;
 9639#line 958
 9640  __cil_tmp52 = __cil_tmp51 + 400;
 9641#line 958
 9642  __cil_tmp53 = *((uint16_t *)__cil_tmp52);
 9643#line 958
 9644  __cil_tmp54 = (uint32_t )__cil_tmp53;
 9645#line 958
 9646  __cil_tmp55 = __cil_tmp54 * bsize;
 9647#line 958
 9648  log_addr = __cil_tmp55 + __cil_tmp50;
 9649#line 959
 9650  __cil_tmp56 = (unsigned long )part;
 9651#line 959
 9652  __cil_tmp57 = __cil_tmp56 + 400;
 9653#line 959
 9654  __cil_tmp58 = *((uint16_t *)__cil_tmp57);
 9655#line 959
 9656  __cil_tmp59 = (unsigned long )__cil_tmp58;
 9657#line 959
 9658  __cil_tmp60 = (unsigned long )part;
 9659#line 959
 9660  __cil_tmp61 = __cil_tmp60 + 384;
 9661#line 959
 9662  __cil_tmp62 = *((struct eun_info_t **)__cil_tmp61);
 9663#line 959
 9664  __cil_tmp63 = __cil_tmp62 + __cil_tmp59;
 9665#line 959
 9666  __cil_tmp64 = (unsigned long )__cil_tmp63;
 9667#line 959
 9668  __cil_tmp65 = __cil_tmp64 + 8;
 9669#line 959
 9670  __cil_tmp66 = (unsigned long )part;
 9671#line 959
 9672  __cil_tmp67 = __cil_tmp66 + 400;
 9673#line 959
 9674  __cil_tmp68 = *((uint16_t *)__cil_tmp67);
 9675#line 959
 9676  __cil_tmp69 = (unsigned long )__cil_tmp68;
 9677#line 959
 9678  __cil_tmp70 = (unsigned long )part;
 9679#line 959
 9680  __cil_tmp71 = __cil_tmp70 + 384;
 9681#line 959
 9682  __cil_tmp72 = *((struct eun_info_t **)__cil_tmp71);
 9683#line 959
 9684  __cil_tmp73 = __cil_tmp72 + __cil_tmp69;
 9685#line 959
 9686  __cil_tmp74 = (unsigned long )__cil_tmp73;
 9687#line 959
 9688  __cil_tmp75 = __cil_tmp74 + 8;
 9689#line 959
 9690  __cil_tmp76 = *((uint32_t *)__cil_tmp75);
 9691#line 959
 9692  *((uint32_t *)__cil_tmp65) = __cil_tmp76 - 1U;
 9693#line 960
 9694  __cil_tmp77 = (unsigned long )part;
 9695#line 960
 9696  __cil_tmp78 = __cil_tmp77 + 376;
 9697#line 960
 9698  __cil_tmp79 = (unsigned long )part;
 9699#line 960
 9700  __cil_tmp80 = __cil_tmp79 + 376;
 9701#line 960
 9702  __cil_tmp81 = *((uint32_t *)__cil_tmp80);
 9703#line 960
 9704  *((uint32_t *)__cil_tmp78) = __cil_tmp81 - 1U;
 9705#line 961
 9706  tmp___0 = set_bam_entry(part, log_addr, 4294967294U);
 9707  }
 9708#line 961
 9709  if (tmp___0 != 0) {
 9710#line 962
 9711    return (-5);
 9712  } else {
 9713
 9714  }
 9715  {
 9716#line 963
 9717  __cil_tmp82 = (unsigned long )part;
 9718#line 963
 9719  __cil_tmp83 = __cil_tmp82 + 400;
 9720#line 963
 9721  __cil_tmp84 = *((uint16_t *)__cil_tmp83);
 9722#line 963
 9723  __cil_tmp85 = (unsigned long )__cil_tmp84;
 9724#line 963
 9725  __cil_tmp86 = (unsigned long )part;
 9726#line 963
 9727  __cil_tmp87 = __cil_tmp86 + 384;
 9728#line 963
 9729  __cil_tmp88 = *((struct eun_info_t **)__cil_tmp87);
 9730#line 963
 9731  __cil_tmp89 = __cil_tmp88 + __cil_tmp85;
 9732#line 963
 9733  __cil_tmp90 = (unsigned long )__cil_tmp89;
 9734#line 963
 9735  __cil_tmp91 = __cil_tmp90 + 12;
 9736#line 963
 9737  __cil_tmp92 = (unsigned long )part;
 9738#line 963
 9739  __cil_tmp93 = __cil_tmp92 + 400;
 9740#line 963
 9741  __cil_tmp94 = *((uint16_t *)__cil_tmp93);
 9742#line 963
 9743  __cil_tmp95 = (unsigned long )__cil_tmp94;
 9744#line 963
 9745  __cil_tmp96 = (unsigned long )part;
 9746#line 963
 9747  __cil_tmp97 = __cil_tmp96 + 384;
 9748#line 963
 9749  __cil_tmp98 = *((struct eun_info_t **)__cil_tmp97);
 9750#line 963
 9751  __cil_tmp99 = __cil_tmp98 + __cil_tmp95;
 9752#line 963
 9753  __cil_tmp100 = (unsigned long )__cil_tmp99;
 9754#line 963
 9755  __cil_tmp101 = __cil_tmp100 + 12;
 9756#line 963
 9757  __cil_tmp102 = *((uint32_t *)__cil_tmp101);
 9758#line 963
 9759  *((uint32_t *)__cil_tmp91) = __cil_tmp102 + 1U;
 9760#line 964
 9761  __cil_tmp103 = blk * 512U;
 9762#line 964
 9763  __cil_tmp104 = (unsigned long )part;
 9764#line 964
 9765  __cil_tmp105 = __cil_tmp104 + 400;
 9766#line 964
 9767  __cil_tmp106 = *((uint16_t *)__cil_tmp105);
 9768#line 964
 9769  __cil_tmp107 = (unsigned long )__cil_tmp106;
 9770#line 964
 9771  __cil_tmp108 = (unsigned long )part;
 9772#line 964
 9773  __cil_tmp109 = __cil_tmp108 + 384;
 9774#line 964
 9775  __cil_tmp110 = *((struct eun_info_t **)__cil_tmp109);
 9776#line 964
 9777  __cil_tmp111 = __cil_tmp110 + __cil_tmp107;
 9778#line 964
 9779  __cil_tmp112 = *((uint32_t *)__cil_tmp111);
 9780#line 964
 9781  __cil_tmp113 = __cil_tmp112 + __cil_tmp103;
 9782#line 964
 9783  offset = (size_t )__cil_tmp113;
 9784#line 966
 9785  __cil_tmp114 = 0 + 24;
 9786#line 966
 9787  __cil_tmp115 = (unsigned long )part;
 9788#line 966
 9789  __cil_tmp116 = __cil_tmp115 + __cil_tmp114;
 9790#line 966
 9791  __cil_tmp117 = *((struct mtd_info **)__cil_tmp116);
 9792#line 966
 9793  __cil_tmp118 = (loff_t )offset;
 9794#line 966
 9795  __cil_tmp119 = (u_char const   *)buffer;
 9796#line 966
 9797  ret = mtd_write(__cil_tmp117, __cil_tmp118, 512UL, & retlen, __cil_tmp119);
 9798  }
 9799#line 968
 9800  if (ret != 0) {
 9801    {
 9802#line 969
 9803    printk("<5>ftl_cs: block write failed!\n");
 9804#line 970
 9805    printk("<5>ftl_cs:   log_addr = 0x%x, virt_addr = 0x%x, Offset = 0x%zx\n", log_addr,
 9806           virt_addr, offset);
 9807    }
 9808#line 973
 9809    return (-5);
 9810  } else {
 9811
 9812  }
 9813#line 977
 9814  __cil_tmp120 = sector + i;
 9815#line 977
 9816  __cil_tmp121 = (unsigned long )part;
 9817#line 977
 9818  __cil_tmp122 = __cil_tmp121 + 360;
 9819#line 977
 9820  __cil_tmp123 = *((uint32_t **)__cil_tmp122);
 9821#line 977
 9822  __cil_tmp124 = __cil_tmp123 + __cil_tmp120;
 9823#line 977
 9824  old_addr = *__cil_tmp124;
 9825#line 978
 9826  if (old_addr != 4294967295U) {
 9827    {
 9828#line 979
 9829    __cil_tmp125 = sector + i;
 9830#line 979
 9831    __cil_tmp126 = (unsigned long )part;
 9832#line 979
 9833    __cil_tmp127 = __cil_tmp126 + 360;
 9834#line 979
 9835    __cil_tmp128 = *((uint32_t **)__cil_tmp127);
 9836#line 979
 9837    __cil_tmp129 = __cil_tmp128 + __cil_tmp125;
 9838#line 979
 9839    *__cil_tmp129 = 4294967295U;
 9840#line 980
 9841    __cil_tmp130 = old_addr / bsize;
 9842#line 980
 9843    __cil_tmp131 = (unsigned long )__cil_tmp130;
 9844#line 980
 9845    __cil_tmp132 = (unsigned long )part;
 9846#line 980
 9847    __cil_tmp133 = __cil_tmp132 + 384;
 9848#line 980
 9849    __cil_tmp134 = *((struct eun_info_t **)__cil_tmp133);
 9850#line 980
 9851    __cil_tmp135 = __cil_tmp134 + __cil_tmp131;
 9852#line 980
 9853    __cil_tmp136 = (unsigned long )__cil_tmp135;
 9854#line 980
 9855    __cil_tmp137 = __cil_tmp136 + 12;
 9856#line 980
 9857    __cil_tmp138 = old_addr / bsize;
 9858#line 980
 9859    __cil_tmp139 = (unsigned long )__cil_tmp138;
 9860#line 980
 9861    __cil_tmp140 = (unsigned long )part;
 9862#line 980
 9863    __cil_tmp141 = __cil_tmp140 + 384;
 9864#line 980
 9865    __cil_tmp142 = *((struct eun_info_t **)__cil_tmp141);
 9866#line 980
 9867    __cil_tmp143 = __cil_tmp142 + __cil_tmp139;
 9868#line 980
 9869    __cil_tmp144 = (unsigned long )__cil_tmp143;
 9870#line 980
 9871    __cil_tmp145 = __cil_tmp144 + 12;
 9872#line 980
 9873    __cil_tmp146 = *((uint32_t *)__cil_tmp145);
 9874#line 980
 9875    *((uint32_t *)__cil_tmp137) = __cil_tmp146 + 1U;
 9876#line 981
 9877    tmp___1 = set_bam_entry(part, old_addr, 0U);
 9878    }
 9879#line 981
 9880    if (tmp___1 != 0) {
 9881#line 982
 9882      return (-5);
 9883    } else {
 9884
 9885    }
 9886  } else {
 9887
 9888  }
 9889  {
 9890#line 986
 9891  tmp___2 = set_bam_entry(part, log_addr, virt_addr);
 9892  }
 9893#line 986
 9894  if (tmp___2 != 0) {
 9895#line 987
 9896    return (-5);
 9897  } else {
 9898
 9899  }
 9900#line 988
 9901  __cil_tmp147 = sector + i;
 9902#line 988
 9903  __cil_tmp148 = (unsigned long )part;
 9904#line 988
 9905  __cil_tmp149 = __cil_tmp148 + 360;
 9906#line 988
 9907  __cil_tmp150 = *((uint32_t **)__cil_tmp149);
 9908#line 988
 9909  __cil_tmp151 = __cil_tmp150 + __cil_tmp147;
 9910#line 988
 9911  *__cil_tmp151 = log_addr;
 9912#line 989
 9913  __cil_tmp152 = (unsigned long )part;
 9914#line 989
 9915  __cil_tmp153 = __cil_tmp152 + 400;
 9916#line 989
 9917  __cil_tmp154 = *((uint16_t *)__cil_tmp153);
 9918#line 989
 9919  __cil_tmp155 = (unsigned long )__cil_tmp154;
 9920#line 989
 9921  __cil_tmp156 = (unsigned long )part;
 9922#line 989
 9923  __cil_tmp157 = __cil_tmp156 + 384;
 9924#line 989
 9925  __cil_tmp158 = *((struct eun_info_t **)__cil_tmp157);
 9926#line 989
 9927  __cil_tmp159 = __cil_tmp158 + __cil_tmp155;
 9928#line 989
 9929  __cil_tmp160 = (unsigned long )__cil_tmp159;
 9930#line 989
 9931  __cil_tmp161 = __cil_tmp160 + 12;
 9932#line 989
 9933  __cil_tmp162 = (unsigned long )part;
 9934#line 989
 9935  __cil_tmp163 = __cil_tmp162 + 400;
 9936#line 989
 9937  __cil_tmp164 = *((uint16_t *)__cil_tmp163);
 9938#line 989
 9939  __cil_tmp165 = (unsigned long )__cil_tmp164;
 9940#line 989
 9941  __cil_tmp166 = (unsigned long )part;
 9942#line 989
 9943  __cil_tmp167 = __cil_tmp166 + 384;
 9944#line 989
 9945  __cil_tmp168 = *((struct eun_info_t **)__cil_tmp167);
 9946#line 989
 9947  __cil_tmp169 = __cil_tmp168 + __cil_tmp165;
 9948#line 989
 9949  __cil_tmp170 = (unsigned long )__cil_tmp169;
 9950#line 989
 9951  __cil_tmp171 = __cil_tmp170 + 12;
 9952#line 989
 9953  __cil_tmp172 = *((uint32_t *)__cil_tmp171);
 9954#line 989
 9955  *((uint32_t *)__cil_tmp161) = __cil_tmp172 - 1U;
 9956#line 991
 9957  buffer = buffer + 512UL;
 9958#line 992
 9959  virt_addr = virt_addr + 512U;
 9960#line 941
 9961  i = i + 1UL;
 9962  ldv_22415: ;
 9963#line 941
 9964  if (i < nblocks) {
 9965#line 942
 9966    goto ldv_22414;
 9967  } else {
 9968#line 944
 9969    goto ldv_22416;
 9970  }
 9971  ldv_22416: ;
 9972#line 994
 9973  return (0);
 9974}
 9975}
 9976#line 997 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
 9977static int ftl_getgeo(struct mtd_blktrans_dev *dev , struct hd_geometry *geo ) 
 9978{ partition_t *part ;
 9979  u_long sect ;
 9980  unsigned long __cil_tmp5 ;
 9981  unsigned long __cil_tmp6 ;
 9982  unsigned long __cil_tmp7 ;
 9983  uint32_t __cil_tmp8 ;
 9984  uint32_t __cil_tmp9 ;
 9985  unsigned long __cil_tmp10 ;
 9986  unsigned long __cil_tmp11 ;
 9987  unsigned long __cil_tmp12 ;
 9988  unsigned long __cil_tmp13 ;
 9989  u_long __cil_tmp14 ;
 9990
 9991  {
 9992#line 999
 9993  part = (partition_t *)dev;
 9994#line 1003
 9995  __cil_tmp5 = 424 + 28;
 9996#line 1003
 9997  __cil_tmp6 = (unsigned long )part;
 9998#line 1003
 9999  __cil_tmp7 = __cil_tmp6 + __cil_tmp5;
10000#line 1003
10001  __cil_tmp8 = *((uint32_t *)__cil_tmp7);
10002#line 1003
10003  __cil_tmp9 = __cil_tmp8 / 512U;
10004#line 1003
10005  sect = (u_long )__cil_tmp9;
10006#line 1005
10007  *((unsigned char *)geo) = (unsigned char)1;
10008#line 1006
10009  __cil_tmp10 = (unsigned long )geo;
10010#line 1006
10011  __cil_tmp11 = __cil_tmp10 + 1;
10012#line 1006
10013  *((unsigned char *)__cil_tmp11) = (unsigned char)8;
10014#line 1007
10015  __cil_tmp12 = (unsigned long )geo;
10016#line 1007
10017  __cil_tmp13 = __cil_tmp12 + 2;
10018#line 1007
10019  __cil_tmp14 = sect >> 3;
10020#line 1007
10021  *((unsigned short *)__cil_tmp13) = (unsigned short )__cil_tmp14;
10022#line 1009
10023  return (0);
10024}
10025}
10026#line 1012 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10027static int ftl_readsect(struct mtd_blktrans_dev *dev , unsigned long block , char *buf ) 
10028{ int tmp ;
10029  partition_t *__cil_tmp5 ;
10030  caddr_t __cil_tmp6 ;
10031
10032  {
10033  {
10034#line 1015
10035  __cil_tmp5 = (partition_t *)dev;
10036#line 1015
10037  __cil_tmp6 = (caddr_t )buf;
10038#line 1015
10039  tmp = ftl_read(__cil_tmp5, __cil_tmp6, block, 1UL);
10040  }
10041#line 1015
10042  return (tmp);
10043}
10044}
10045#line 1018 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10046static int ftl_writesect(struct mtd_blktrans_dev *dev , unsigned long block , char *buf ) 
10047{ int tmp ;
10048  partition_t *__cil_tmp5 ;
10049  caddr_t __cil_tmp6 ;
10050
10051  {
10052  {
10053#line 1021
10054  __cil_tmp5 = (partition_t *)dev;
10055#line 1021
10056  __cil_tmp6 = (caddr_t )buf;
10057#line 1021
10058  tmp = ftl_write(__cil_tmp5, __cil_tmp6, block, 1UL);
10059  }
10060#line 1021
10061  return (tmp);
10062}
10063}
10064#line 1024 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10065static int ftl_discardsect(struct mtd_blktrans_dev *dev , unsigned long sector , unsigned int nr_sects ) 
10066{ partition_t *part ;
10067  uint32_t bsize ;
10068  struct _ddebug descriptor ;
10069  long tmp ;
10070  uint32_t old_addr ;
10071  int tmp___0 ;
10072  unsigned long __cil_tmp10 ;
10073  unsigned long __cil_tmp11 ;
10074  unsigned long __cil_tmp12 ;
10075  uint8_t __cil_tmp13 ;
10076  int __cil_tmp14 ;
10077  int __cil_tmp15 ;
10078  struct _ddebug *__cil_tmp16 ;
10079  unsigned long __cil_tmp17 ;
10080  unsigned long __cil_tmp18 ;
10081  unsigned long __cil_tmp19 ;
10082  unsigned long __cil_tmp20 ;
10083  unsigned long __cil_tmp21 ;
10084  unsigned long __cil_tmp22 ;
10085  unsigned char __cil_tmp23 ;
10086  long __cil_tmp24 ;
10087  long __cil_tmp25 ;
10088  unsigned long __cil_tmp26 ;
10089  unsigned long __cil_tmp27 ;
10090  uint32_t *__cil_tmp28 ;
10091  uint32_t *__cil_tmp29 ;
10092  unsigned long __cil_tmp30 ;
10093  unsigned long __cil_tmp31 ;
10094  uint32_t *__cil_tmp32 ;
10095  uint32_t *__cil_tmp33 ;
10096  uint32_t __cil_tmp34 ;
10097  unsigned long __cil_tmp35 ;
10098  unsigned long __cil_tmp36 ;
10099  unsigned long __cil_tmp37 ;
10100  struct eun_info_t *__cil_tmp38 ;
10101  struct eun_info_t *__cil_tmp39 ;
10102  unsigned long __cil_tmp40 ;
10103  unsigned long __cil_tmp41 ;
10104  uint32_t __cil_tmp42 ;
10105  unsigned long __cil_tmp43 ;
10106  unsigned long __cil_tmp44 ;
10107  unsigned long __cil_tmp45 ;
10108  struct eun_info_t *__cil_tmp46 ;
10109  struct eun_info_t *__cil_tmp47 ;
10110  unsigned long __cil_tmp48 ;
10111  unsigned long __cil_tmp49 ;
10112  uint32_t __cil_tmp50 ;
10113
10114  {
10115  {
10116#line 1027
10117  part = (partition_t *)dev;
10118#line 1028
10119  __cil_tmp10 = 424 + 23;
10120#line 1028
10121  __cil_tmp11 = (unsigned long )part;
10122#line 1028
10123  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
10124#line 1028
10125  __cil_tmp13 = *((uint8_t *)__cil_tmp12);
10126#line 1028
10127  __cil_tmp14 = (int )__cil_tmp13;
10128#line 1028
10129  __cil_tmp15 = 1 << __cil_tmp14;
10130#line 1028
10131  bsize = (uint32_t )__cil_tmp15;
10132#line 1030
10133  __cil_tmp16 = & descriptor;
10134#line 1030
10135  *((char const   **)__cil_tmp16) = "ftl";
10136#line 1030
10137  __cil_tmp17 = (unsigned long )(& descriptor) + 8;
10138#line 1030
10139  *((char const   **)__cil_tmp17) = "ftl_discardsect";
10140#line 1030
10141  __cil_tmp18 = (unsigned long )(& descriptor) + 16;
10142#line 1030
10143  *((char const   **)__cil_tmp18) = "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p";
10144#line 1030
10145  __cil_tmp19 = (unsigned long )(& descriptor) + 24;
10146#line 1030
10147  *((char const   **)__cil_tmp19) = "FTL erase sector %ld for %d sectors\n";
10148#line 1030
10149  __cil_tmp20 = (unsigned long )(& descriptor) + 32;
10150#line 1030
10151  *((unsigned int *)__cil_tmp20) = 1031U;
10152#line 1030
10153  __cil_tmp21 = (unsigned long )(& descriptor) + 35;
10154#line 1030
10155  *((unsigned char *)__cil_tmp21) = (unsigned char)0;
10156#line 1030
10157  __cil_tmp22 = (unsigned long )(& descriptor) + 35;
10158#line 1030
10159  __cil_tmp23 = *((unsigned char *)__cil_tmp22);
10160#line 1030
10161  __cil_tmp24 = (long )__cil_tmp23;
10162#line 1030
10163  __cil_tmp25 = __cil_tmp24 & 1L;
10164#line 1030
10165  tmp = __builtin_expect(__cil_tmp25, 0L);
10166  }
10167#line 1030
10168  if (tmp != 0L) {
10169    {
10170#line 1030
10171    __dynamic_pr_debug(& descriptor, "FTL erase sector %ld for %d sectors\n", sector,
10172                       nr_sects);
10173    }
10174  } else {
10175
10176  }
10177#line 1033
10178  goto ldv_22444;
10179  ldv_22443: 
10180#line 1034
10181  __cil_tmp26 = (unsigned long )part;
10182#line 1034
10183  __cil_tmp27 = __cil_tmp26 + 360;
10184#line 1034
10185  __cil_tmp28 = *((uint32_t **)__cil_tmp27);
10186#line 1034
10187  __cil_tmp29 = __cil_tmp28 + sector;
10188#line 1034
10189  old_addr = *__cil_tmp29;
10190#line 1035
10191  if (old_addr != 4294967295U) {
10192    {
10193#line 1036
10194    __cil_tmp30 = (unsigned long )part;
10195#line 1036
10196    __cil_tmp31 = __cil_tmp30 + 360;
10197#line 1036
10198    __cil_tmp32 = *((uint32_t **)__cil_tmp31);
10199#line 1036
10200    __cil_tmp33 = __cil_tmp32 + sector;
10201#line 1036
10202    *__cil_tmp33 = 4294967295U;
10203#line 1037
10204    __cil_tmp34 = old_addr / bsize;
10205#line 1037
10206    __cil_tmp35 = (unsigned long )__cil_tmp34;
10207#line 1037
10208    __cil_tmp36 = (unsigned long )part;
10209#line 1037
10210    __cil_tmp37 = __cil_tmp36 + 384;
10211#line 1037
10212    __cil_tmp38 = *((struct eun_info_t **)__cil_tmp37);
10213#line 1037
10214    __cil_tmp39 = __cil_tmp38 + __cil_tmp35;
10215#line 1037
10216    __cil_tmp40 = (unsigned long )__cil_tmp39;
10217#line 1037
10218    __cil_tmp41 = __cil_tmp40 + 12;
10219#line 1037
10220    __cil_tmp42 = old_addr / bsize;
10221#line 1037
10222    __cil_tmp43 = (unsigned long )__cil_tmp42;
10223#line 1037
10224    __cil_tmp44 = (unsigned long )part;
10225#line 1037
10226    __cil_tmp45 = __cil_tmp44 + 384;
10227#line 1037
10228    __cil_tmp46 = *((struct eun_info_t **)__cil_tmp45);
10229#line 1037
10230    __cil_tmp47 = __cil_tmp46 + __cil_tmp43;
10231#line 1037
10232    __cil_tmp48 = (unsigned long )__cil_tmp47;
10233#line 1037
10234    __cil_tmp49 = __cil_tmp48 + 12;
10235#line 1037
10236    __cil_tmp50 = *((uint32_t *)__cil_tmp49);
10237#line 1037
10238    *((uint32_t *)__cil_tmp41) = __cil_tmp50 + 1U;
10239#line 1038
10240    tmp___0 = set_bam_entry(part, old_addr, 0U);
10241    }
10242#line 1038
10243    if (tmp___0 != 0) {
10244#line 1039
10245      return (-5);
10246    } else {
10247
10248    }
10249  } else {
10250
10251  }
10252#line 1041
10253  nr_sects = nr_sects - 1U;
10254#line 1042
10255  sector = sector + 1UL;
10256  ldv_22444: ;
10257#line 1033
10258  if (nr_sects != 0U) {
10259#line 1034
10260    goto ldv_22443;
10261  } else {
10262#line 1036
10263    goto ldv_22445;
10264  }
10265  ldv_22445: ;
10266#line 1045
10267  return (0);
10268}
10269}
10270#line 1049 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10271static void ftl_freepart(partition_t *part ) 
10272{ unsigned long __cil_tmp2 ;
10273  unsigned long __cil_tmp3 ;
10274  uint32_t *__cil_tmp4 ;
10275  void const   *__cil_tmp5 ;
10276  unsigned long __cil_tmp6 ;
10277  unsigned long __cil_tmp7 ;
10278  unsigned long __cil_tmp8 ;
10279  unsigned long __cil_tmp9 ;
10280  uint32_t *__cil_tmp10 ;
10281  void const   *__cil_tmp11 ;
10282  unsigned long __cil_tmp12 ;
10283  unsigned long __cil_tmp13 ;
10284  unsigned long __cil_tmp14 ;
10285  unsigned long __cil_tmp15 ;
10286  struct eun_info_t *__cil_tmp16 ;
10287  void const   *__cil_tmp17 ;
10288  unsigned long __cil_tmp18 ;
10289  unsigned long __cil_tmp19 ;
10290  unsigned long __cil_tmp20 ;
10291  unsigned long __cil_tmp21 ;
10292  struct xfer_info_t *__cil_tmp22 ;
10293  void const   *__cil_tmp23 ;
10294  unsigned long __cil_tmp24 ;
10295  unsigned long __cil_tmp25 ;
10296  unsigned long __cil_tmp26 ;
10297  unsigned long __cil_tmp27 ;
10298  uint32_t *__cil_tmp28 ;
10299  void const   *__cil_tmp29 ;
10300  unsigned long __cil_tmp30 ;
10301  unsigned long __cil_tmp31 ;
10302
10303  {
10304  {
10305#line 1051
10306  __cil_tmp2 = (unsigned long )part;
10307#line 1051
10308  __cil_tmp3 = __cil_tmp2 + 360;
10309#line 1051
10310  __cil_tmp4 = *((uint32_t **)__cil_tmp3);
10311#line 1051
10312  __cil_tmp5 = (void const   *)__cil_tmp4;
10313#line 1051
10314  vfree(__cil_tmp5);
10315#line 1052
10316  __cil_tmp6 = (unsigned long )part;
10317#line 1052
10318  __cil_tmp7 = __cil_tmp6 + 360;
10319#line 1052
10320  *((uint32_t **)__cil_tmp7) = (uint32_t *)0;
10321#line 1053
10322  __cil_tmp8 = (unsigned long )part;
10323#line 1053
10324  __cil_tmp9 = __cil_tmp8 + 368;
10325#line 1053
10326  __cil_tmp10 = *((uint32_t **)__cil_tmp9);
10327#line 1053
10328  __cil_tmp11 = (void const   *)__cil_tmp10;
10329#line 1053
10330  kfree(__cil_tmp11);
10331#line 1054
10332  __cil_tmp12 = (unsigned long )part;
10333#line 1054
10334  __cil_tmp13 = __cil_tmp12 + 368;
10335#line 1054
10336  *((uint32_t **)__cil_tmp13) = (uint32_t *)0;
10337#line 1055
10338  __cil_tmp14 = (unsigned long )part;
10339#line 1055
10340  __cil_tmp15 = __cil_tmp14 + 384;
10341#line 1055
10342  __cil_tmp16 = *((struct eun_info_t **)__cil_tmp15);
10343#line 1055
10344  __cil_tmp17 = (void const   *)__cil_tmp16;
10345#line 1055
10346  kfree(__cil_tmp17);
10347#line 1056
10348  __cil_tmp18 = (unsigned long )part;
10349#line 1056
10350  __cil_tmp19 = __cil_tmp18 + 384;
10351#line 1056
10352  *((struct eun_info_t **)__cil_tmp19) = (struct eun_info_t *)0;
10353#line 1057
10354  __cil_tmp20 = (unsigned long )part;
10355#line 1057
10356  __cil_tmp21 = __cil_tmp20 + 392;
10357#line 1057
10358  __cil_tmp22 = *((struct xfer_info_t **)__cil_tmp21);
10359#line 1057
10360  __cil_tmp23 = (void const   *)__cil_tmp22;
10361#line 1057
10362  kfree(__cil_tmp23);
10363#line 1058
10364  __cil_tmp24 = (unsigned long )part;
10365#line 1058
10366  __cil_tmp25 = __cil_tmp24 + 392;
10367#line 1058
10368  *((struct xfer_info_t **)__cil_tmp25) = (struct xfer_info_t *)0;
10369#line 1059
10370  __cil_tmp26 = (unsigned long )part;
10371#line 1059
10372  __cil_tmp27 = __cil_tmp26 + 408;
10373#line 1059
10374  __cil_tmp28 = *((uint32_t **)__cil_tmp27);
10375#line 1059
10376  __cil_tmp29 = (void const   *)__cil_tmp28;
10377#line 1059
10378  kfree(__cil_tmp29);
10379#line 1060
10380  __cil_tmp30 = (unsigned long )part;
10381#line 1060
10382  __cil_tmp31 = __cil_tmp30 + 408;
10383#line 1060
10384  *((uint32_t **)__cil_tmp31) = (uint32_t *)0;
10385  }
10386#line 1061
10387  return;
10388}
10389}
10390#line 1063 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10391static void ftl_add_mtd(struct mtd_blktrans_ops *tr , struct mtd_info *mtd ) 
10392{ partition_t *partition ;
10393  void *tmp ;
10394  int tmp___0 ;
10395  int tmp___1 ;
10396  int tmp___2 ;
10397  partition_t *__cil_tmp8 ;
10398  unsigned long __cil_tmp9 ;
10399  unsigned long __cil_tmp10 ;
10400  unsigned long __cil_tmp11 ;
10401  unsigned long __cil_tmp12 ;
10402  char const   *__cil_tmp13 ;
10403  unsigned long __cil_tmp14 ;
10404  unsigned long __cil_tmp15 ;
10405  unsigned long __cil_tmp16 ;
10406  unsigned long __cil_tmp17 ;
10407  unsigned long __cil_tmp18 ;
10408  unsigned long __cil_tmp19 ;
10409  unsigned long __cil_tmp20 ;
10410  unsigned long __cil_tmp21 ;
10411  unsigned long __cil_tmp22 ;
10412  unsigned long __cil_tmp23 ;
10413  unsigned long __cil_tmp24 ;
10414  uint32_t __cil_tmp25 ;
10415  uint32_t __cil_tmp26 ;
10416  unsigned long __cil_tmp27 ;
10417  unsigned long __cil_tmp28 ;
10418  unsigned long __cil_tmp29 ;
10419  struct mtd_blktrans_dev *__cil_tmp30 ;
10420  void const   *__cil_tmp31 ;
10421
10422  {
10423  {
10424#line 1067
10425  tmp = kzalloc(496UL, 208U);
10426#line 1067
10427  partition = (partition_t *)tmp;
10428  }
10429  {
10430#line 1069
10431  __cil_tmp8 = (partition_t *)0;
10432#line 1069
10433  __cil_tmp9 = (unsigned long )__cil_tmp8;
10434#line 1069
10435  __cil_tmp10 = (unsigned long )partition;
10436#line 1069
10437  if (__cil_tmp10 == __cil_tmp9) {
10438    {
10439#line 1070
10440    __cil_tmp11 = (unsigned long )mtd;
10441#line 1070
10442    __cil_tmp12 = __cil_tmp11 + 56;
10443#line 1070
10444    __cil_tmp13 = *((char const   **)__cil_tmp12);
10445#line 1070
10446    printk("<4>No memory to scan for FTL on %s\n", __cil_tmp13);
10447    }
10448#line 1072
10449    return;
10450  } else {
10451
10452  }
10453  }
10454  {
10455#line 1075
10456  __cil_tmp14 = 0 + 24;
10457#line 1075
10458  __cil_tmp15 = (unsigned long )partition;
10459#line 1075
10460  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
10461#line 1075
10462  *((struct mtd_info **)__cil_tmp16) = mtd;
10463#line 1077
10464  tmp___1 = scan_header(partition);
10465  }
10466#line 1077
10467  if (tmp___1 == 0) {
10468    {
10469#line 1077
10470    tmp___2 = build_maps(partition);
10471    }
10472#line 1077
10473    if (tmp___2 == 0) {
10474      {
10475#line 1080
10476      __cil_tmp17 = (unsigned long )partition;
10477#line 1080
10478      __cil_tmp18 = __cil_tmp17 + 352;
10479#line 1080
10480      *((uint32_t *)__cil_tmp18) = 1U;
10481#line 1085
10482      __cil_tmp19 = 0 + 208;
10483#line 1085
10484      __cil_tmp20 = (unsigned long )partition;
10485#line 1085
10486      __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
10487#line 1085
10488      __cil_tmp22 = 424 + 28;
10489#line 1085
10490      __cil_tmp23 = (unsigned long )partition;
10491#line 1085
10492      __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
10493#line 1085
10494      __cil_tmp25 = *((uint32_t *)__cil_tmp24);
10495#line 1085
10496      __cil_tmp26 = __cil_tmp25 >> 9;
10497#line 1085
10498      *((unsigned long *)__cil_tmp21) = (unsigned long )__cil_tmp26;
10499#line 1087
10500      *((struct mtd_blktrans_ops **)partition) = tr;
10501#line 1088
10502      __cil_tmp27 = 0 + 200;
10503#line 1088
10504      __cil_tmp28 = (unsigned long )partition;
10505#line 1088
10506      __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
10507#line 1088
10508      *((int *)__cil_tmp29) = -1;
10509#line 1089
10510      __cil_tmp30 = (struct mtd_blktrans_dev *)partition;
10511#line 1089
10512      tmp___0 = add_mtd_blktrans_dev(__cil_tmp30);
10513      }
10514#line 1089
10515      if (tmp___0 == 0) {
10516#line 1090
10517        return;
10518      } else {
10519
10520      }
10521    } else {
10522
10523    }
10524  } else {
10525
10526  }
10527  {
10528#line 1093
10529  ftl_freepart(partition);
10530#line 1094
10531  __cil_tmp31 = (void const   *)partition;
10532#line 1094
10533  kfree(__cil_tmp31);
10534  }
10535#line 1095
10536  return;
10537}
10538}
10539#line 1097 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10540static void ftl_remove_dev(struct mtd_blktrans_dev *dev ) 
10541{ partition_t *__cil_tmp2 ;
10542
10543  {
10544  {
10545#line 1099
10546  del_mtd_blktrans_dev(dev);
10547#line 1100
10548  __cil_tmp2 = (partition_t *)dev;
10549#line 1100
10550  ftl_freepart(__cil_tmp2);
10551  }
10552#line 1101
10553  return;
10554}
10555}
10556#line 1103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10557static struct mtd_blktrans_ops ftl_tr  = 
10558#line 1103
10559     {(char *)"ftl", 44, 4, 512, 0, & ftl_readsect, & ftl_writesect, & ftl_discardsect,
10560    (void (*)(struct mtd_blktrans_dev * ))0, & ftl_getgeo, (int (*)(struct mtd_blktrans_dev * ))0,
10561    (int (*)(struct mtd_blktrans_dev * ))0, (int (*)(struct mtd_blktrans_dev * ))0,
10562    & ftl_add_mtd, & ftl_remove_dev, {(struct list_head *)0, (struct list_head *)0},
10563    {(struct list_head *)0, (struct list_head *)0}, & __this_module};
10564#line 1117 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10565static int init_ftl(void) 
10566{ int tmp ;
10567
10568  {
10569  {
10570#line 1119
10571  tmp = register_mtd_blktrans(& ftl_tr);
10572  }
10573#line 1119
10574  return (tmp);
10575}
10576}
10577#line 1122 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10578static void cleanup_ftl(void) 
10579{ 
10580
10581  {
10582  {
10583#line 1124
10584  deregister_mtd_blktrans(& ftl_tr);
10585  }
10586#line 1125
10587  return;
10588}
10589}
10590#line 1151
10591extern void ldv_check_final_state(void) ;
10592#line 1157
10593extern void ldv_initialize(void) ;
10594#line 1160
10595extern int __VERIFIER_nondet_int(void) ;
10596#line 1163 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10597int LDV_IN_INTERRUPT  ;
10598#line 1166 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10599void main(void) 
10600{ struct mtd_blktrans_dev *var_group1 ;
10601  unsigned long var_ftl_readsect_13_p1 ;
10602  char *var_ftl_readsect_13_p2 ;
10603  unsigned long var_ftl_writesect_14_p1 ;
10604  char *var_ftl_writesect_14_p2 ;
10605  unsigned long var_ftl_discardsect_15_p1 ;
10606  unsigned int var_ftl_discardsect_15_p2 ;
10607  struct hd_geometry *var_group2 ;
10608  struct mtd_blktrans_ops *var_group3 ;
10609  struct mtd_info *var_group4 ;
10610  int tmp ;
10611  int tmp___0 ;
10612  int tmp___1 ;
10613
10614  {
10615  {
10616#line 1380
10617  LDV_IN_INTERRUPT = 1;
10618#line 1389
10619  ldv_initialize();
10620#line 1422
10621  tmp = init_ftl();
10622  }
10623#line 1422
10624  if (tmp != 0) {
10625#line 1423
10626    goto ldv_final;
10627  } else {
10628
10629  }
10630#line 1427
10631  goto ldv_22509;
10632  ldv_22508: 
10633  {
10634#line 1430
10635  tmp___0 = __VERIFIER_nondet_int();
10636  }
10637#line 1432
10638  if (tmp___0 == 0) {
10639#line 1432
10640    goto case_0;
10641  } else
10642#line 1477
10643  if (tmp___0 == 1) {
10644#line 1477
10645    goto case_1;
10646  } else
10647#line 1522
10648  if (tmp___0 == 2) {
10649#line 1522
10650    goto case_2;
10651  } else
10652#line 1567
10653  if (tmp___0 == 3) {
10654#line 1567
10655    goto case_3;
10656  } else
10657#line 1612
10658  if (tmp___0 == 4) {
10659#line 1612
10660    goto case_4;
10661  } else
10662#line 1653
10663  if (tmp___0 == 5) {
10664#line 1653
10665    goto case_5;
10666  } else {
10667    {
10668#line 1696
10669    goto switch_default;
10670#line 1430
10671    if (0) {
10672      case_0: /* CIL Label */ 
10673      {
10674#line 1465
10675      ftl_readsect(var_group1, var_ftl_readsect_13_p1, var_ftl_readsect_13_p2);
10676      }
10677#line 1476
10678      goto ldv_22501;
10679      case_1: /* CIL Label */ 
10680      {
10681#line 1510
10682      ftl_writesect(var_group1, var_ftl_writesect_14_p1, var_ftl_writesect_14_p2);
10683      }
10684#line 1521
10685      goto ldv_22501;
10686      case_2: /* CIL Label */ 
10687      {
10688#line 1555
10689      ftl_discardsect(var_group1, var_ftl_discardsect_15_p1, var_ftl_discardsect_15_p2);
10690      }
10691#line 1566
10692      goto ldv_22501;
10693      case_3: /* CIL Label */ 
10694      {
10695#line 1600
10696      ftl_getgeo(var_group1, var_group2);
10697      }
10698#line 1611
10699      goto ldv_22501;
10700      case_4: /* CIL Label */ 
10701      {
10702#line 1645
10703      ftl_add_mtd(var_group3, var_group4);
10704      }
10705#line 1652
10706      goto ldv_22501;
10707      case_5: /* CIL Label */ 
10708      {
10709#line 1688
10710      ftl_remove_dev(var_group1);
10711      }
10712#line 1695
10713      goto ldv_22501;
10714      switch_default: /* CIL Label */ ;
10715#line 1696
10716      goto ldv_22501;
10717    } else {
10718      switch_break: /* CIL Label */ ;
10719    }
10720    }
10721  }
10722  ldv_22501: ;
10723  ldv_22509: 
10724  {
10725#line 1427
10726  tmp___1 = __VERIFIER_nondet_int();
10727  }
10728#line 1427
10729  if (tmp___1 != 0) {
10730#line 1428
10731    goto ldv_22508;
10732  } else {
10733#line 1430
10734    goto ldv_22510;
10735  }
10736  ldv_22510: ;
10737  {
10738#line 1735
10739  cleanup_ftl();
10740  }
10741  ldv_final: 
10742  {
10743#line 1738
10744  ldv_check_final_state();
10745  }
10746#line 1741
10747  return;
10748}
10749}
10750#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
10751void ldv_blast_assert(void) 
10752{ 
10753
10754  {
10755  ERROR: ;
10756#line 6
10757  goto ERROR;
10758}
10759}
10760#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
10761extern int __VERIFIER_nondet_int(void) ;
10762#line 1762 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10763int ldv_spin  =    0;
10764#line 1766 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10765void ldv_check_alloc_flags(gfp_t flags ) 
10766{ 
10767
10768  {
10769#line 1769
10770  if (ldv_spin != 0) {
10771#line 1769
10772    if (flags != 32U) {
10773      {
10774#line 1769
10775      ldv_blast_assert();
10776      }
10777    } else {
10778
10779    }
10780  } else {
10781
10782  }
10783#line 1772
10784  return;
10785}
10786}
10787#line 1772
10788extern struct page *ldv_some_page(void) ;
10789#line 1775 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10790struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
10791{ struct page *tmp ;
10792
10793  {
10794#line 1778
10795  if (ldv_spin != 0) {
10796#line 1778
10797    if (flags != 32U) {
10798      {
10799#line 1778
10800      ldv_blast_assert();
10801      }
10802    } else {
10803
10804    }
10805  } else {
10806
10807  }
10808  {
10809#line 1780
10810  tmp = ldv_some_page();
10811  }
10812#line 1780
10813  return (tmp);
10814}
10815}
10816#line 1784 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10817void ldv_check_alloc_nonatomic(void) 
10818{ 
10819
10820  {
10821#line 1787
10822  if (ldv_spin != 0) {
10823    {
10824#line 1787
10825    ldv_blast_assert();
10826    }
10827  } else {
10828
10829  }
10830#line 1790
10831  return;
10832}
10833}
10834#line 1791 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10835void ldv_spin_lock(void) 
10836{ 
10837
10838  {
10839#line 1794
10840  ldv_spin = 1;
10841#line 1795
10842  return;
10843}
10844}
10845#line 1798 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10846void ldv_spin_unlock(void) 
10847{ 
10848
10849  {
10850#line 1801
10851  ldv_spin = 0;
10852#line 1802
10853  return;
10854}
10855}
10856#line 1805 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10857int ldv_spin_trylock(void) 
10858{ int is_lock ;
10859
10860  {
10861  {
10862#line 1810
10863  is_lock = __VERIFIER_nondet_int();
10864  }
10865#line 1812
10866  if (is_lock != 0) {
10867#line 1815
10868    return (0);
10869  } else {
10870#line 1820
10871    ldv_spin = 1;
10872#line 1822
10873    return (1);
10874  }
10875}
10876}
10877#line 1944 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10878__inline static void *kmalloc(size_t size , gfp_t flags ) 
10879{ 
10880
10881  {
10882  {
10883#line 1950
10884  ldv_check_alloc_flags(flags);
10885#line 1952
10886  ldv_kmalloc_12(size, flags);
10887  }
10888#line 1953
10889  return ((void *)0);
10890}
10891}
10892#line 1989 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10893void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
10894{ 
10895
10896  {
10897  {
10898#line 1995
10899  ldv_check_alloc_flags(ldv_func_arg2);
10900#line 1997
10901  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
10902  }
10903#line 1998
10904  return ((void *)0);
10905}
10906}
10907#line 2000 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10908__inline static void *kzalloc(size_t size , gfp_t flags ) 
10909{ void *tmp ;
10910
10911  {
10912  {
10913#line 2006
10914  ldv_check_alloc_flags(flags);
10915#line 2007
10916  tmp = __VERIFIER_nondet_pointer();
10917  }
10918#line 2007
10919  return (tmp);
10920}
10921}
10922#line 2021 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/11861/dscv_tempdir/dscv/ri/43_1a/drivers/mtd/ftl.c.p"
10923void *ldv_vmalloc_19(unsigned long ldv_func_arg1 ) 
10924{ 
10925
10926  {
10927  {
10928#line 2026
10929  ldv_check_alloc_nonatomic();
10930#line 2028
10931  vmalloc(ldv_func_arg1);
10932  }
10933#line 2029
10934  return ((void *)0);
10935}
10936}