Showing error 135

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