Showing error 149

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-usb-serial-whiteheat.ko_safe.cil.out.i.pp.cil.c
Line in file: 13308
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 110 "include/linux/types.h"
   83typedef __s32 int32_t;
   84#line 114 "include/linux/types.h"
   85typedef __u8 uint8_t;
   86#line 116 "include/linux/types.h"
   87typedef __u32 uint32_t;
   88#line 141 "include/linux/types.h"
   89typedef unsigned long sector_t;
   90#line 142 "include/linux/types.h"
   91typedef unsigned long blkcnt_t;
   92#line 154 "include/linux/types.h"
   93typedef u64 dma_addr_t;
   94#line 177 "include/linux/types.h"
   95typedef __u16 __le16;
   96#line 178 "include/linux/types.h"
   97typedef __u16 __be16;
   98#line 180 "include/linux/types.h"
   99typedef __u32 __be32;
  100#line 201 "include/linux/types.h"
  101typedef unsigned int gfp_t;
  102#line 202 "include/linux/types.h"
  103typedef unsigned int fmode_t;
  104#line 212 "include/linux/types.h"
  105struct __anonstruct_atomic_t_7 {
  106   int counter ;
  107};
  108#line 212 "include/linux/types.h"
  109typedef struct __anonstruct_atomic_t_7 atomic_t;
  110#line 217 "include/linux/types.h"
  111struct __anonstruct_atomic64_t_8 {
  112   long counter ;
  113};
  114#line 217 "include/linux/types.h"
  115typedef struct __anonstruct_atomic64_t_8 atomic64_t;
  116#line 222 "include/linux/types.h"
  117struct list_head {
  118   struct list_head *next ;
  119   struct list_head *prev ;
  120};
  121#line 226
  122struct hlist_node;
  123#line 226
  124struct hlist_node;
  125#line 226
  126struct hlist_node;
  127#line 226 "include/linux/types.h"
  128struct hlist_head {
  129   struct hlist_node *first ;
  130};
  131#line 230 "include/linux/types.h"
  132struct hlist_node {
  133   struct hlist_node *next ;
  134   struct hlist_node **pprev ;
  135};
  136#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/alternative.h"
  137struct module;
  138#line 59
  139struct module;
  140#line 59
  141struct module;
  142#line 59
  143struct module;
  144#line 145 "include/linux/init.h"
  145typedef void (*ctor_fn_t)(void);
  146#line 10 "include/asm-generic/bug.h"
  147struct bug_entry {
  148   int bug_addr_disp ;
  149   int file_disp ;
  150   unsigned short line ;
  151   unsigned short flags ;
  152};
  153#line 113 "include/linux/kernel.h"
  154struct completion;
  155#line 113
  156struct completion;
  157#line 113
  158struct completion;
  159#line 113
  160struct completion;
  161#line 114
  162struct pt_regs;
  163#line 114
  164struct pt_regs;
  165#line 114
  166struct pt_regs;
  167#line 114
  168struct pt_regs;
  169#line 322
  170struct pid;
  171#line 322
  172struct pid;
  173#line 322
  174struct pid;
  175#line 322
  176struct pid;
  177#line 12 "include/linux/thread_info.h"
  178struct timespec;
  179#line 12
  180struct timespec;
  181#line 12
  182struct timespec;
  183#line 12
  184struct timespec;
  185#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page.h"
  186struct page;
  187#line 18
  188struct page;
  189#line 18
  190struct page;
  191#line 18
  192struct page;
  193#line 20 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
  194struct task_struct;
  195#line 20
  196struct task_struct;
  197#line 20
  198struct task_struct;
  199#line 20
  200struct task_struct;
  201#line 7 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  202struct task_struct;
  203#line 8
  204struct mm_struct;
  205#line 8
  206struct mm_struct;
  207#line 8
  208struct mm_struct;
  209#line 8
  210struct mm_struct;
  211#line 99 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/ptrace.h"
  212struct pt_regs {
  213   unsigned long r15 ;
  214   unsigned long r14 ;
  215   unsigned long r13 ;
  216   unsigned long r12 ;
  217   unsigned long bp ;
  218   unsigned long bx ;
  219   unsigned long r11 ;
  220   unsigned long r10 ;
  221   unsigned long r9 ;
  222   unsigned long r8 ;
  223   unsigned long ax ;
  224   unsigned long cx ;
  225   unsigned long dx ;
  226   unsigned long si ;
  227   unsigned long di ;
  228   unsigned long orig_ax ;
  229   unsigned long ip ;
  230   unsigned long cs ;
  231   unsigned long flags ;
  232   unsigned long sp ;
  233   unsigned long ss ;
  234};
  235#line 136
  236struct task_struct;
  237#line 141 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
  238struct kernel_vm86_regs {
  239   struct pt_regs pt ;
  240   unsigned short es ;
  241   unsigned short __esh ;
  242   unsigned short ds ;
  243   unsigned short __dsh ;
  244   unsigned short fs ;
  245   unsigned short __fsh ;
  246   unsigned short gs ;
  247   unsigned short __gsh ;
  248};
  249#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
  250union __anonunion____missing_field_name_14 {
  251   struct pt_regs *regs ;
  252   struct kernel_vm86_regs *vm86 ;
  253};
  254#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
  255struct math_emu_info {
  256   long ___orig_eip ;
  257   union __anonunion____missing_field_name_14 __annonCompField5 ;
  258};
  259#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
  260struct task_struct;
  261#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"
  262typedef unsigned long pgdval_t;
  263#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"
  264typedef unsigned long pgprotval_t;
  265#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  266struct pgprot {
  267   pgprotval_t pgprot ;
  268};
  269#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  270typedef struct pgprot pgprot_t;
  271#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  272struct __anonstruct_pgd_t_17 {
  273   pgdval_t pgd ;
  274};
  275#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  276typedef struct __anonstruct_pgd_t_17 pgd_t;
  277#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  278typedef struct page *pgtable_t;
  279#line 293
  280struct file;
  281#line 293
  282struct file;
  283#line 293
  284struct file;
  285#line 293
  286struct file;
  287#line 311
  288struct seq_file;
  289#line 311
  290struct seq_file;
  291#line 311
  292struct seq_file;
  293#line 311
  294struct seq_file;
  295#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  296struct __anonstruct____missing_field_name_22 {
  297   unsigned int a ;
  298   unsigned int b ;
  299};
  300#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  301struct __anonstruct____missing_field_name_23 {
  302   u16 limit0 ;
  303   u16 base0 ;
  304   unsigned int base1 : 8 ;
  305   unsigned int type : 4 ;
  306   unsigned int s : 1 ;
  307   unsigned int dpl : 2 ;
  308   unsigned int p : 1 ;
  309   unsigned int limit : 4 ;
  310   unsigned int avl : 1 ;
  311   unsigned int l : 1 ;
  312   unsigned int d : 1 ;
  313   unsigned int g : 1 ;
  314   unsigned int base2 : 8 ;
  315};
  316#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  317union __anonunion____missing_field_name_21 {
  318   struct __anonstruct____missing_field_name_22 __annonCompField7 ;
  319   struct __anonstruct____missing_field_name_23 __annonCompField8 ;
  320};
  321#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  322struct desc_struct {
  323   union __anonunion____missing_field_name_21 __annonCompField9 ;
  324} __attribute__((__packed__)) ;
  325#line 45 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
  326struct page;
  327#line 46
  328struct thread_struct;
  329#line 46
  330struct thread_struct;
  331#line 46
  332struct thread_struct;
  333#line 46
  334struct thread_struct;
  335#line 49
  336struct mm_struct;
  337#line 50
  338struct desc_struct;
  339#line 51
  340struct task_struct;
  341#line 52
  342struct cpumask;
  343#line 52
  344struct cpumask;
  345#line 52
  346struct cpumask;
  347#line 52
  348struct cpumask;
  349#line 322
  350struct arch_spinlock;
  351#line 322
  352struct arch_spinlock;
  353#line 322
  354struct arch_spinlock;
  355#line 322
  356struct arch_spinlock;
  357#line 13 "include/linux/cpumask.h"
  358struct cpumask {
  359   unsigned long bits[((4096UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
  360};
  361#line 13 "include/linux/cpumask.h"
  362typedef struct cpumask cpumask_t;
  363#line 622 "include/linux/cpumask.h"
  364typedef struct cpumask *cpumask_var_t;
  365#line 20 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/system.h"
  366struct task_struct;
  367#line 11 "include/linux/personality.h"
  368struct pt_regs;
  369#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  370struct i387_fsave_struct {
  371   u32 cwd ;
  372   u32 swd ;
  373   u32 twd ;
  374   u32 fip ;
  375   u32 fcs ;
  376   u32 foo ;
  377   u32 fos ;
  378   u32 st_space[20] ;
  379   u32 status ;
  380};
  381#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  382struct __anonstruct____missing_field_name_31 {
  383   u64 rip ;
  384   u64 rdp ;
  385};
  386#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  387struct __anonstruct____missing_field_name_32 {
  388   u32 fip ;
  389   u32 fcs ;
  390   u32 foo ;
  391   u32 fos ;
  392};
  393#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  394union __anonunion____missing_field_name_30 {
  395   struct __anonstruct____missing_field_name_31 __annonCompField12 ;
  396   struct __anonstruct____missing_field_name_32 __annonCompField13 ;
  397};
  398#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  399union __anonunion____missing_field_name_33 {
  400   u32 padding1[12] ;
  401   u32 sw_reserved[12] ;
  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"
  404struct i387_fxsave_struct {
  405   u16 cwd ;
  406   u16 swd ;
  407   u16 twd ;
  408   u16 fop ;
  409   union __anonunion____missing_field_name_30 __annonCompField14 ;
  410   u32 mxcsr ;
  411   u32 mxcsr_mask ;
  412   u32 st_space[32] ;
  413   u32 xmm_space[64] ;
  414   u32 padding[12] ;
  415   union __anonunion____missing_field_name_33 __annonCompField15 ;
  416} __attribute__((__aligned__(16))) ;
  417#line 331 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  418struct i387_soft_struct {
  419   u32 cwd ;
  420   u32 swd ;
  421   u32 twd ;
  422   u32 fip ;
  423   u32 fcs ;
  424   u32 foo ;
  425   u32 fos ;
  426   u32 st_space[20] ;
  427   u8 ftop ;
  428   u8 changed ;
  429   u8 lookahead ;
  430   u8 no_update ;
  431   u8 rm ;
  432   u8 alimit ;
  433   struct math_emu_info *info ;
  434   u32 entry_eip ;
  435};
  436#line 351 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  437struct ymmh_struct {
  438   u32 ymmh_space[64] ;
  439};
  440#line 356 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  441struct xsave_hdr_struct {
  442   u64 xstate_bv ;
  443   u64 reserved1[2] ;
  444   u64 reserved2[5] ;
  445} __attribute__((__packed__)) ;
  446#line 362 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  447struct xsave_struct {
  448   struct i387_fxsave_struct i387 ;
  449   struct xsave_hdr_struct xsave_hdr ;
  450   struct ymmh_struct ymmh ;
  451} __attribute__((__packed__, __aligned__(64))) ;
  452#line 369 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  453union thread_xstate {
  454   struct i387_fsave_struct fsave ;
  455   struct i387_fxsave_struct fxsave ;
  456   struct i387_soft_struct soft ;
  457   struct xsave_struct xsave ;
  458};
  459#line 376 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  460struct fpu {
  461   union thread_xstate *state ;
  462};
  463#line 421
  464struct kmem_cache;
  465#line 421
  466struct kmem_cache;
  467#line 421
  468struct kmem_cache;
  469#line 423
  470struct perf_event;
  471#line 423
  472struct perf_event;
  473#line 423
  474struct perf_event;
  475#line 423
  476struct perf_event;
  477#line 425 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  478struct thread_struct {
  479   struct desc_struct tls_array[3] ;
  480   unsigned long sp0 ;
  481   unsigned long sp ;
  482   unsigned long usersp ;
  483   unsigned short es ;
  484   unsigned short ds ;
  485   unsigned short fsindex ;
  486   unsigned short gsindex ;
  487   unsigned long fs ;
  488   unsigned long gs ;
  489   struct perf_event *ptrace_bps[4] ;
  490   unsigned long debugreg6 ;
  491   unsigned long ptrace_dr7 ;
  492   unsigned long cr2 ;
  493   unsigned long trap_no ;
  494   unsigned long error_code ;
  495   struct fpu fpu ;
  496   unsigned long *io_bitmap_ptr ;
  497   unsigned long iopl ;
  498   unsigned int io_bitmap_max ;
  499};
  500#line 23 "include/asm-generic/atomic-long.h"
  501typedef atomic64_t atomic_long_t;
  502#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  503struct arch_spinlock {
  504   unsigned int slock ;
  505};
  506#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  507typedef struct arch_spinlock arch_spinlock_t;
  508#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  509struct __anonstruct_arch_rwlock_t_36 {
  510   unsigned int lock ;
  511};
  512#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  513typedef struct __anonstruct_arch_rwlock_t_36 arch_rwlock_t;
  514#line 12 "include/linux/lockdep.h"
  515struct task_struct;
  516#line 13
  517struct lockdep_map;
  518#line 13
  519struct lockdep_map;
  520#line 13
  521struct lockdep_map;
  522#line 13
  523struct lockdep_map;
  524#line 8 "include/linux/debug_locks.h"
  525struct task_struct;
  526#line 48
  527struct task_struct;
  528#line 4 "include/linux/stacktrace.h"
  529struct task_struct;
  530#line 5
  531struct pt_regs;
  532#line 8
  533struct task_struct;
  534#line 10 "include/linux/stacktrace.h"
  535struct stack_trace {
  536   unsigned int nr_entries ;
  537   unsigned int max_entries ;
  538   unsigned long *entries ;
  539   int skip ;
  540};
  541#line 50 "include/linux/lockdep.h"
  542struct lockdep_subclass_key {
  543   char __one_byte ;
  544} __attribute__((__packed__)) ;
  545#line 54 "include/linux/lockdep.h"
  546struct lock_class_key {
  547   struct lockdep_subclass_key subkeys[8UL] ;
  548};
  549#line 65 "include/linux/lockdep.h"
  550struct lock_class {
  551   struct list_head hash_entry ;
  552   struct list_head lock_entry ;
  553   struct lockdep_subclass_key *key ;
  554   unsigned int subclass ;
  555   unsigned int dep_gen_id ;
  556   unsigned long usage_mask ;
  557   struct stack_trace usage_traces[13] ;
  558   struct list_head locks_after ;
  559   struct list_head locks_before ;
  560   unsigned int version ;
  561   unsigned long ops ;
  562   char const   *name ;
  563   int name_version ;
  564   unsigned long contention_point[4] ;
  565   unsigned long contending_point[4] ;
  566};
  567#line 150 "include/linux/lockdep.h"
  568struct lockdep_map {
  569   struct lock_class_key *key ;
  570   struct lock_class *class_cache[2] ;
  571   char const   *name ;
  572   int cpu ;
  573   unsigned long ip ;
  574};
  575#line 196 "include/linux/lockdep.h"
  576struct held_lock {
  577   u64 prev_chain_key ;
  578   unsigned long acquire_ip ;
  579   struct lockdep_map *instance ;
  580   struct lockdep_map *nest_lock ;
  581   u64 waittime_stamp ;
  582   u64 holdtime_stamp ;
  583   unsigned int class_idx : 13 ;
  584   unsigned int irq_context : 2 ;
  585   unsigned int trylock : 1 ;
  586   unsigned int read : 2 ;
  587   unsigned int check : 2 ;
  588   unsigned int hardirqs_off : 1 ;
  589   unsigned int references : 11 ;
  590};
  591#line 20 "include/linux/spinlock_types.h"
  592struct raw_spinlock {
  593   arch_spinlock_t raw_lock ;
  594   unsigned int magic ;
  595   unsigned int owner_cpu ;
  596   void *owner ;
  597   struct lockdep_map dep_map ;
  598};
  599#line 20 "include/linux/spinlock_types.h"
  600typedef struct raw_spinlock raw_spinlock_t;
  601#line 64 "include/linux/spinlock_types.h"
  602struct __anonstruct____missing_field_name_38 {
  603   u8 __padding[(unsigned int )(& ((struct raw_spinlock *)0)->dep_map)] ;
  604   struct lockdep_map dep_map ;
  605};
  606#line 64 "include/linux/spinlock_types.h"
  607union __anonunion____missing_field_name_37 {
  608   struct raw_spinlock rlock ;
  609   struct __anonstruct____missing_field_name_38 __annonCompField17 ;
  610};
  611#line 64 "include/linux/spinlock_types.h"
  612struct spinlock {
  613   union __anonunion____missing_field_name_37 __annonCompField18 ;
  614};
  615#line 64 "include/linux/spinlock_types.h"
  616typedef struct spinlock spinlock_t;
  617#line 11 "include/linux/rwlock_types.h"
  618struct __anonstruct_rwlock_t_39 {
  619   arch_rwlock_t raw_lock ;
  620   unsigned int magic ;
  621   unsigned int owner_cpu ;
  622   void *owner ;
  623   struct lockdep_map dep_map ;
  624};
  625#line 11 "include/linux/rwlock_types.h"
  626typedef struct __anonstruct_rwlock_t_39 rwlock_t;
  627#line 28 "include/linux/wait.h"
  628struct __wait_queue;
  629#line 28
  630struct __wait_queue;
  631#line 28
  632struct __wait_queue;
  633#line 28 "include/linux/wait.h"
  634typedef struct __wait_queue wait_queue_t;
  635#line 32 "include/linux/wait.h"
  636struct __wait_queue {
  637   unsigned int flags ;
  638   void *private ;
  639   int (*func)(wait_queue_t *wait , unsigned int mode , int flags , void *key ) ;
  640   struct list_head task_list ;
  641};
  642#line 50 "include/linux/wait.h"
  643struct __wait_queue_head {
  644   spinlock_t lock ;
  645   struct list_head task_list ;
  646};
  647#line 54 "include/linux/wait.h"
  648typedef struct __wait_queue_head wait_queue_head_t;
  649#line 56
  650struct task_struct;
  651#line 119 "include/linux/seqlock.h"
  652struct seqcount {
  653   unsigned int sequence ;
  654};
  655#line 119 "include/linux/seqlock.h"
  656typedef struct seqcount seqcount_t;
  657#line 96 "include/linux/nodemask.h"
  658struct __anonstruct_nodemask_t_41 {
  659   unsigned long bits[(((unsigned long )(1 << 10) + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
  660};
  661#line 96 "include/linux/nodemask.h"
  662typedef struct __anonstruct_nodemask_t_41 nodemask_t;
  663#line 60 "include/linux/pageblock-flags.h"
  664struct page;
  665#line 48 "include/linux/mutex.h"
  666struct mutex {
  667   atomic_t count ;
  668   spinlock_t wait_lock ;
  669   struct list_head wait_list ;
  670   struct task_struct *owner ;
  671   char const   *name ;
  672   void *magic ;
  673   struct lockdep_map dep_map ;
  674};
  675#line 69 "include/linux/mutex.h"
  676struct mutex_waiter {
  677   struct list_head list ;
  678   struct task_struct *task ;
  679   void *magic ;
  680};
  681#line 20 "include/linux/rwsem.h"
  682struct rw_semaphore;
  683#line 20
  684struct rw_semaphore;
  685#line 20
  686struct rw_semaphore;
  687#line 20
  688struct rw_semaphore;
  689#line 26 "include/linux/rwsem.h"
  690struct rw_semaphore {
  691   long count ;
  692   spinlock_t wait_lock ;
  693   struct list_head wait_list ;
  694   struct lockdep_map dep_map ;
  695};
  696#line 8 "include/linux/memory_hotplug.h"
  697struct page;
  698#line 177 "include/linux/ioport.h"
  699struct device;
  700#line 177
  701struct device;
  702#line 177
  703struct device;
  704#line 177
  705struct device;
  706#line 103 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mpspec.h"
  707struct device;
  708#line 14 "include/linux/time.h"
  709struct timespec {
  710   __kernel_time_t tv_sec ;
  711   long tv_nsec ;
  712};
  713#line 46 "include/linux/ktime.h"
  714union ktime {
  715   s64 tv64 ;
  716};
  717#line 59 "include/linux/ktime.h"
  718typedef union ktime ktime_t;
  719#line 10 "include/linux/timer.h"
  720struct tvec_base;
  721#line 10
  722struct tvec_base;
  723#line 10
  724struct tvec_base;
  725#line 10
  726struct tvec_base;
  727#line 12 "include/linux/timer.h"
  728struct timer_list {
  729   struct list_head entry ;
  730   unsigned long expires ;
  731   struct tvec_base *base ;
  732   void (*function)(unsigned long  ) ;
  733   unsigned long data ;
  734   int slack ;
  735   int start_pid ;
  736   void *start_site ;
  737   char start_comm[16] ;
  738   struct lockdep_map lockdep_map ;
  739};
  740#line 289
  741struct hrtimer;
  742#line 289
  743struct hrtimer;
  744#line 289
  745struct hrtimer;
  746#line 289
  747struct hrtimer;
  748#line 290
  749enum hrtimer_restart;
  750#line 290
  751enum hrtimer_restart;
  752#line 290
  753enum hrtimer_restart;
  754#line 17 "include/linux/workqueue.h"
  755struct work_struct;
  756#line 17
  757struct work_struct;
  758#line 17
  759struct work_struct;
  760#line 17
  761struct work_struct;
  762#line 79 "include/linux/workqueue.h"
  763struct work_struct {
  764   atomic_long_t data ;
  765   struct list_head entry ;
  766   void (*func)(struct work_struct *work ) ;
  767   struct lockdep_map lockdep_map ;
  768};
  769#line 92 "include/linux/workqueue.h"
  770struct delayed_work {
  771   struct work_struct work ;
  772   struct timer_list timer ;
  773};
  774#line 25 "include/linux/completion.h"
  775struct completion {
  776   unsigned int done ;
  777   wait_queue_head_t wait ;
  778};
  779#line 42 "include/linux/pm.h"
  780struct device;
  781#line 50 "include/linux/pm.h"
  782struct pm_message {
  783   int event ;
  784};
  785#line 50 "include/linux/pm.h"
  786typedef struct pm_message pm_message_t;
  787#line 204 "include/linux/pm.h"
  788struct dev_pm_ops {
  789   int (*prepare)(struct device *dev ) ;
  790   void (*complete)(struct device *dev ) ;
  791   int (*suspend)(struct device *dev ) ;
  792   int (*resume)(struct device *dev ) ;
  793   int (*freeze)(struct device *dev ) ;
  794   int (*thaw)(struct device *dev ) ;
  795   int (*poweroff)(struct device *dev ) ;
  796   int (*restore)(struct device *dev ) ;
  797   int (*suspend_noirq)(struct device *dev ) ;
  798   int (*resume_noirq)(struct device *dev ) ;
  799   int (*freeze_noirq)(struct device *dev ) ;
  800   int (*thaw_noirq)(struct device *dev ) ;
  801   int (*poweroff_noirq)(struct device *dev ) ;
  802   int (*restore_noirq)(struct device *dev ) ;
  803   int (*runtime_suspend)(struct device *dev ) ;
  804   int (*runtime_resume)(struct device *dev ) ;
  805   int (*runtime_idle)(struct device *dev ) ;
  806};
  807#line 392
  808enum rpm_status {
  809    RPM_ACTIVE = 0,
  810    RPM_RESUMING = 1,
  811    RPM_SUSPENDED = 2,
  812    RPM_SUSPENDING = 3
  813} ;
  814#line 414
  815enum rpm_request {
  816    RPM_REQ_NONE = 0,
  817    RPM_REQ_IDLE = 1,
  818    RPM_REQ_SUSPEND = 2,
  819    RPM_REQ_AUTOSUSPEND = 3,
  820    RPM_REQ_RESUME = 4
  821} ;
  822#line 422
  823struct wakeup_source;
  824#line 422
  825struct wakeup_source;
  826#line 422
  827struct wakeup_source;
  828#line 422
  829struct wakeup_source;
  830#line 424 "include/linux/pm.h"
  831struct dev_pm_info {
  832   pm_message_t power_state ;
  833   unsigned int can_wakeup : 1 ;
  834   unsigned int async_suspend : 1 ;
  835   bool is_prepared : 1 ;
  836   bool is_suspended : 1 ;
  837   spinlock_t lock ;
  838   struct list_head entry ;
  839   struct completion completion ;
  840   struct wakeup_source *wakeup ;
  841   struct timer_list suspend_timer ;
  842   unsigned long timer_expires ;
  843   struct work_struct work ;
  844   wait_queue_head_t wait_queue ;
  845   atomic_t usage_count ;
  846   atomic_t child_count ;
  847   unsigned int disable_depth : 3 ;
  848   unsigned int ignore_children : 1 ;
  849   unsigned int idle_notification : 1 ;
  850   unsigned int request_pending : 1 ;
  851   unsigned int deferred_resume : 1 ;
  852   unsigned int run_wake : 1 ;
  853   unsigned int runtime_auto : 1 ;
  854   unsigned int no_callbacks : 1 ;
  855   unsigned int irq_safe : 1 ;
  856   unsigned int use_autosuspend : 1 ;
  857   unsigned int timer_autosuspends : 1 ;
  858   enum rpm_request request ;
  859   enum rpm_status runtime_status ;
  860   int runtime_error ;
  861   int autosuspend_delay ;
  862   unsigned long last_busy ;
  863   unsigned long active_jiffies ;
  864   unsigned long suspended_jiffies ;
  865   unsigned long accounting_timestamp ;
  866   void *subsys_data ;
  867};
  868#line 475 "include/linux/pm.h"
  869struct dev_power_domain {
  870   struct dev_pm_ops ops ;
  871};
  872#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  873struct __anonstruct_mm_context_t_111 {
  874   void *ldt ;
  875   int size ;
  876   unsigned short ia32_compat ;
  877   struct mutex lock ;
  878   void *vdso ;
  879};
  880#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  881typedef struct __anonstruct_mm_context_t_111 mm_context_t;
  882#line 8 "include/linux/vmalloc.h"
  883struct vm_area_struct;
  884#line 8
  885struct vm_area_struct;
  886#line 8
  887struct vm_area_struct;
  888#line 8
  889struct vm_area_struct;
  890#line 964 "include/linux/mmzone.h"
  891struct page;
  892#line 10 "include/linux/gfp.h"
  893struct vm_area_struct;
  894#line 20 "include/linux/kobject_ns.h"
  895struct sock;
  896#line 20
  897struct sock;
  898#line 20
  899struct sock;
  900#line 20
  901struct sock;
  902#line 21
  903struct kobject;
  904#line 21
  905struct kobject;
  906#line 21
  907struct kobject;
  908#line 21
  909struct kobject;
  910#line 27
  911enum kobj_ns_type {
  912    KOBJ_NS_TYPE_NONE = 0,
  913    KOBJ_NS_TYPE_NET = 1,
  914    KOBJ_NS_TYPES = 2
  915} ;
  916#line 40 "include/linux/kobject_ns.h"
  917struct kobj_ns_type_operations {
  918   enum kobj_ns_type type ;
  919   void *(*grab_current_ns)(void) ;
  920   void const   *(*netlink_ns)(struct sock *sk ) ;
  921   void const   *(*initial_ns)(void) ;
  922   void (*drop_ns)(void * ) ;
  923};
  924#line 22 "include/linux/sysfs.h"
  925struct kobject;
  926#line 23
  927struct module;
  928#line 24
  929enum kobj_ns_type;
  930#line 26 "include/linux/sysfs.h"
  931struct attribute {
  932   char const   *name ;
  933   mode_t mode ;
  934   struct lock_class_key *key ;
  935   struct lock_class_key skey ;
  936};
  937#line 56 "include/linux/sysfs.h"
  938struct attribute_group {
  939   char const   *name ;
  940   mode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
  941   struct attribute **attrs ;
  942};
  943#line 85
  944struct file;
  945#line 86
  946struct vm_area_struct;
  947#line 88 "include/linux/sysfs.h"
  948struct bin_attribute {
  949   struct attribute attr ;
  950   size_t size ;
  951   void *private ;
  952   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  953                   loff_t  , size_t  ) ;
  954   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  955                    loff_t  , size_t  ) ;
  956   int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
  957};
  958#line 112 "include/linux/sysfs.h"
  959struct sysfs_ops {
  960   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
  961   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
  962};
  963#line 117
  964struct sysfs_dirent;
  965#line 117
  966struct sysfs_dirent;
  967#line 117
  968struct sysfs_dirent;
  969#line 117
  970struct sysfs_dirent;
  971#line 20 "include/linux/kref.h"
  972struct kref {
  973   atomic_t refcount ;
  974};
  975#line 60 "include/linux/kobject.h"
  976struct kset;
  977#line 60
  978struct kset;
  979#line 60
  980struct kset;
  981#line 60
  982struct kobj_type;
  983#line 60
  984struct kobj_type;
  985#line 60
  986struct kobj_type;
  987#line 60 "include/linux/kobject.h"
  988struct kobject {
  989   char const   *name ;
  990   struct list_head entry ;
  991   struct kobject *parent ;
  992   struct kset *kset ;
  993   struct kobj_type *ktype ;
  994   struct sysfs_dirent *sd ;
  995   struct kref kref ;
  996   unsigned int state_initialized : 1 ;
  997   unsigned int state_in_sysfs : 1 ;
  998   unsigned int state_add_uevent_sent : 1 ;
  999   unsigned int state_remove_uevent_sent : 1 ;
 1000   unsigned int uevent_suppress : 1 ;
 1001};
 1002#line 110 "include/linux/kobject.h"
 1003struct kobj_type {
 1004   void (*release)(struct kobject *kobj ) ;
 1005   struct sysfs_ops  const  *sysfs_ops ;
 1006   struct attribute **default_attrs ;
 1007   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject *kobj ) ;
 1008   void const   *(*namespace)(struct kobject *kobj ) ;
 1009};
 1010#line 118 "include/linux/kobject.h"
 1011struct kobj_uevent_env {
 1012   char *envp[32] ;
 1013   int envp_idx ;
 1014   char buf[2048] ;
 1015   int buflen ;
 1016};
 1017#line 125 "include/linux/kobject.h"
 1018struct kset_uevent_ops {
 1019   int (* const  filter)(struct kset *kset , struct kobject *kobj ) ;
 1020   char const   *(* const  name)(struct kset *kset , struct kobject *kobj ) ;
 1021   int (* const  uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
 1022};
 1023#line 142
 1024struct sock;
 1025#line 161 "include/linux/kobject.h"
 1026struct kset {
 1027   struct list_head list ;
 1028   spinlock_t list_lock ;
 1029   struct kobject kobj ;
 1030   struct kset_uevent_ops  const  *uevent_ops ;
 1031};
 1032#line 38 "include/linux/slub_def.h"
 1033struct kmem_cache_cpu {
 1034   void **freelist ;
 1035   unsigned long tid ;
 1036   struct page *page ;
 1037   int node ;
 1038   unsigned int stat[19] ;
 1039};
 1040#line 48 "include/linux/slub_def.h"
 1041struct kmem_cache_node {
 1042   spinlock_t list_lock ;
 1043   unsigned long nr_partial ;
 1044   struct list_head partial ;
 1045   atomic_long_t nr_slabs ;
 1046   atomic_long_t total_objects ;
 1047   struct list_head full ;
 1048};
 1049#line 64 "include/linux/slub_def.h"
 1050struct kmem_cache_order_objects {
 1051   unsigned long x ;
 1052};
 1053#line 71 "include/linux/slub_def.h"
 1054struct kmem_cache {
 1055   struct kmem_cache_cpu *cpu_slab ;
 1056   unsigned long flags ;
 1057   unsigned long min_partial ;
 1058   int size ;
 1059   int objsize ;
 1060   int offset ;
 1061   struct kmem_cache_order_objects oo ;
 1062   struct kmem_cache_order_objects max ;
 1063   struct kmem_cache_order_objects min ;
 1064   gfp_t allocflags ;
 1065   int refcount ;
 1066   void (*ctor)(void * ) ;
 1067   int inuse ;
 1068   int align ;
 1069   int reserved ;
 1070   char const   *name ;
 1071   struct list_head list ;
 1072   struct kobject kobj ;
 1073   int remote_node_defrag_ratio ;
 1074   struct kmem_cache_node *node[1 << 10] ;
 1075};
 1076#line 15 "include/linux/blk_types.h"
 1077struct page;
 1078#line 16
 1079struct block_device;
 1080#line 16
 1081struct block_device;
 1082#line 16
 1083struct block_device;
 1084#line 16
 1085struct block_device;
 1086#line 72 "include/linux/rcupdate.h"
 1087struct rcu_head {
 1088   struct rcu_head *next ;
 1089   void (*func)(struct rcu_head *head ) ;
 1090};
 1091#line 33 "include/linux/list_bl.h"
 1092struct hlist_bl_node;
 1093#line 33
 1094struct hlist_bl_node;
 1095#line 33
 1096struct hlist_bl_node;
 1097#line 33 "include/linux/list_bl.h"
 1098struct hlist_bl_head {
 1099   struct hlist_bl_node *first ;
 1100};
 1101#line 37 "include/linux/list_bl.h"
 1102struct hlist_bl_node {
 1103   struct hlist_bl_node *next ;
 1104   struct hlist_bl_node **pprev ;
 1105};
 1106#line 13 "include/linux/dcache.h"
 1107struct nameidata;
 1108#line 13
 1109struct nameidata;
 1110#line 13
 1111struct nameidata;
 1112#line 13
 1113struct nameidata;
 1114#line 14
 1115struct path;
 1116#line 14
 1117struct path;
 1118#line 14
 1119struct path;
 1120#line 14
 1121struct path;
 1122#line 15
 1123struct vfsmount;
 1124#line 15
 1125struct vfsmount;
 1126#line 15
 1127struct vfsmount;
 1128#line 15
 1129struct vfsmount;
 1130#line 35 "include/linux/dcache.h"
 1131struct qstr {
 1132   unsigned int hash ;
 1133   unsigned int len ;
 1134   unsigned char const   *name ;
 1135};
 1136#line 116
 1137struct inode;
 1138#line 116
 1139struct inode;
 1140#line 116
 1141struct inode;
 1142#line 116
 1143struct dentry_operations;
 1144#line 116
 1145struct dentry_operations;
 1146#line 116
 1147struct dentry_operations;
 1148#line 116
 1149struct super_block;
 1150#line 116
 1151struct super_block;
 1152#line 116
 1153struct super_block;
 1154#line 116 "include/linux/dcache.h"
 1155union __anonunion_d_u_135 {
 1156   struct list_head d_child ;
 1157   struct rcu_head d_rcu ;
 1158};
 1159#line 116 "include/linux/dcache.h"
 1160struct dentry {
 1161   unsigned int d_flags ;
 1162   seqcount_t d_seq ;
 1163   struct hlist_bl_node d_hash ;
 1164   struct dentry *d_parent ;
 1165   struct qstr d_name ;
 1166   struct inode *d_inode ;
 1167   unsigned char d_iname[32] ;
 1168   unsigned int d_count ;
 1169   spinlock_t d_lock ;
 1170   struct dentry_operations  const  *d_op ;
 1171   struct super_block *d_sb ;
 1172   unsigned long d_time ;
 1173   void *d_fsdata ;
 1174   struct list_head d_lru ;
 1175   union __anonunion_d_u_135 d_u ;
 1176   struct list_head d_subdirs ;
 1177   struct list_head d_alias ;
 1178};
 1179#line 159 "include/linux/dcache.h"
 1180struct dentry_operations {
 1181   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 1182   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
 1183   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
 1184                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
 1185   int (*d_delete)(struct dentry  const  * ) ;
 1186   void (*d_release)(struct dentry * ) ;
 1187   void (*d_iput)(struct dentry * , struct inode * ) ;
 1188   char *(*d_dname)(struct dentry * , char * , int  ) ;
 1189   struct vfsmount *(*d_automount)(struct path * ) ;
 1190   int (*d_manage)(struct dentry * , bool  ) ;
 1191} __attribute__((__aligned__((1) <<  (6) ))) ;
 1192#line 4 "include/linux/path.h"
 1193struct dentry;
 1194#line 5
 1195struct vfsmount;
 1196#line 7 "include/linux/path.h"
 1197struct path {
 1198   struct vfsmount *mnt ;
 1199   struct dentry *dentry ;
 1200};
 1201#line 62 "include/linux/stat.h"
 1202struct kstat {
 1203   u64 ino ;
 1204   dev_t dev ;
 1205   umode_t mode ;
 1206   unsigned int nlink ;
 1207   uid_t uid ;
 1208   gid_t gid ;
 1209   dev_t rdev ;
 1210   loff_t size ;
 1211   struct timespec atime ;
 1212   struct timespec mtime ;
 1213   struct timespec ctime ;
 1214   unsigned long blksize ;
 1215   unsigned long long blocks ;
 1216};
 1217#line 57 "include/linux/radix-tree.h"
 1218struct radix_tree_node;
 1219#line 57
 1220struct radix_tree_node;
 1221#line 57
 1222struct radix_tree_node;
 1223#line 57 "include/linux/radix-tree.h"
 1224struct radix_tree_root {
 1225   unsigned int height ;
 1226   gfp_t gfp_mask ;
 1227   struct radix_tree_node *rnode ;
 1228};
 1229#line 14 "include/linux/prio_tree.h"
 1230struct prio_tree_node;
 1231#line 14
 1232struct prio_tree_node;
 1233#line 14
 1234struct prio_tree_node;
 1235#line 14 "include/linux/prio_tree.h"
 1236struct raw_prio_tree_node {
 1237   struct prio_tree_node *left ;
 1238   struct prio_tree_node *right ;
 1239   struct prio_tree_node *parent ;
 1240};
 1241#line 20 "include/linux/prio_tree.h"
 1242struct prio_tree_node {
 1243   struct prio_tree_node *left ;
 1244   struct prio_tree_node *right ;
 1245   struct prio_tree_node *parent ;
 1246   unsigned long start ;
 1247   unsigned long last ;
 1248};
 1249#line 28 "include/linux/prio_tree.h"
 1250struct prio_tree_root {
 1251   struct prio_tree_node *prio_tree_node ;
 1252   unsigned short index_bits ;
 1253   unsigned short raw ;
 1254};
 1255#line 6 "include/linux/pid.h"
 1256enum pid_type {
 1257    PIDTYPE_PID = 0,
 1258    PIDTYPE_PGID = 1,
 1259    PIDTYPE_SID = 2,
 1260    PIDTYPE_MAX = 3
 1261} ;
 1262#line 50
 1263struct pid_namespace;
 1264#line 50
 1265struct pid_namespace;
 1266#line 50
 1267struct pid_namespace;
 1268#line 50 "include/linux/pid.h"
 1269struct upid {
 1270   int nr ;
 1271   struct pid_namespace *ns ;
 1272   struct hlist_node pid_chain ;
 1273};
 1274#line 57 "include/linux/pid.h"
 1275struct pid {
 1276   atomic_t count ;
 1277   unsigned int level ;
 1278   struct hlist_head tasks[3] ;
 1279   struct rcu_head rcu ;
 1280   struct upid numbers[1] ;
 1281};
 1282#line 69 "include/linux/pid.h"
 1283struct pid_link {
 1284   struct hlist_node node ;
 1285   struct pid *pid ;
 1286};
 1287#line 100
 1288struct pid_namespace;
 1289#line 18 "include/linux/capability.h"
 1290struct task_struct;
 1291#line 94 "include/linux/capability.h"
 1292struct kernel_cap_struct {
 1293   __u32 cap[2] ;
 1294};
 1295#line 94 "include/linux/capability.h"
 1296typedef struct kernel_cap_struct kernel_cap_t;
 1297#line 376
 1298struct dentry;
 1299#line 377
 1300struct user_namespace;
 1301#line 377
 1302struct user_namespace;
 1303#line 377
 1304struct user_namespace;
 1305#line 377
 1306struct user_namespace;
 1307#line 16 "include/linux/fiemap.h"
 1308struct fiemap_extent {
 1309   __u64 fe_logical ;
 1310   __u64 fe_physical ;
 1311   __u64 fe_length ;
 1312   __u64 fe_reserved64[2] ;
 1313   __u32 fe_flags ;
 1314   __u32 fe_reserved[3] ;
 1315};
 1316#line 399 "include/linux/fs.h"
 1317struct export_operations;
 1318#line 399
 1319struct export_operations;
 1320#line 399
 1321struct export_operations;
 1322#line 399
 1323struct export_operations;
 1324#line 401
 1325struct iovec;
 1326#line 401
 1327struct iovec;
 1328#line 401
 1329struct iovec;
 1330#line 401
 1331struct iovec;
 1332#line 402
 1333struct nameidata;
 1334#line 403
 1335struct kiocb;
 1336#line 403
 1337struct kiocb;
 1338#line 403
 1339struct kiocb;
 1340#line 403
 1341struct kiocb;
 1342#line 404
 1343struct kobject;
 1344#line 405
 1345struct pipe_inode_info;
 1346#line 405
 1347struct pipe_inode_info;
 1348#line 405
 1349struct pipe_inode_info;
 1350#line 405
 1351struct pipe_inode_info;
 1352#line 406
 1353struct poll_table_struct;
 1354#line 406
 1355struct poll_table_struct;
 1356#line 406
 1357struct poll_table_struct;
 1358#line 406
 1359struct poll_table_struct;
 1360#line 407
 1361struct kstatfs;
 1362#line 407
 1363struct kstatfs;
 1364#line 407
 1365struct kstatfs;
 1366#line 407
 1367struct kstatfs;
 1368#line 408
 1369struct vm_area_struct;
 1370#line 409
 1371struct vfsmount;
 1372#line 410
 1373struct cred;
 1374#line 410
 1375struct cred;
 1376#line 410
 1377struct cred;
 1378#line 410
 1379struct cred;
 1380#line 460 "include/linux/fs.h"
 1381struct iattr {
 1382   unsigned int ia_valid ;
 1383   umode_t ia_mode ;
 1384   uid_t ia_uid ;
 1385   gid_t ia_gid ;
 1386   loff_t ia_size ;
 1387   struct timespec ia_atime ;
 1388   struct timespec ia_mtime ;
 1389   struct timespec ia_ctime ;
 1390   struct file *ia_file ;
 1391};
 1392#line 129 "include/linux/quota.h"
 1393struct if_dqinfo {
 1394   __u64 dqi_bgrace ;
 1395   __u64 dqi_igrace ;
 1396   __u32 dqi_flags ;
 1397   __u32 dqi_valid ;
 1398};
 1399#line 50 "include/linux/dqblk_xfs.h"
 1400struct fs_disk_quota {
 1401   __s8 d_version ;
 1402   __s8 d_flags ;
 1403   __u16 d_fieldmask ;
 1404   __u32 d_id ;
 1405   __u64 d_blk_hardlimit ;
 1406   __u64 d_blk_softlimit ;
 1407   __u64 d_ino_hardlimit ;
 1408   __u64 d_ino_softlimit ;
 1409   __u64 d_bcount ;
 1410   __u64 d_icount ;
 1411   __s32 d_itimer ;
 1412   __s32 d_btimer ;
 1413   __u16 d_iwarns ;
 1414   __u16 d_bwarns ;
 1415   __s32 d_padding2 ;
 1416   __u64 d_rtb_hardlimit ;
 1417   __u64 d_rtb_softlimit ;
 1418   __u64 d_rtbcount ;
 1419   __s32 d_rtbtimer ;
 1420   __u16 d_rtbwarns ;
 1421   __s16 d_padding3 ;
 1422   char d_padding4[8] ;
 1423};
 1424#line 146 "include/linux/dqblk_xfs.h"
 1425struct fs_qfilestat {
 1426   __u64 qfs_ino ;
 1427   __u64 qfs_nblks ;
 1428   __u32 qfs_nextents ;
 1429};
 1430#line 146 "include/linux/dqblk_xfs.h"
 1431typedef struct fs_qfilestat fs_qfilestat_t;
 1432#line 152 "include/linux/dqblk_xfs.h"
 1433struct fs_quota_stat {
 1434   __s8 qs_version ;
 1435   __u16 qs_flags ;
 1436   __s8 qs_pad ;
 1437   fs_qfilestat_t qs_uquota ;
 1438   fs_qfilestat_t qs_gquota ;
 1439   __u32 qs_incoredqs ;
 1440   __s32 qs_btimelimit ;
 1441   __s32 qs_itimelimit ;
 1442   __s32 qs_rtbtimelimit ;
 1443   __u16 qs_bwarnlimit ;
 1444   __u16 qs_iwarnlimit ;
 1445};
 1446#line 17 "include/linux/dqblk_qtree.h"
 1447struct dquot;
 1448#line 17
 1449struct dquot;
 1450#line 17
 1451struct dquot;
 1452#line 17
 1453struct dquot;
 1454#line 185 "include/linux/quota.h"
 1455typedef __kernel_uid32_t qid_t;
 1456#line 186 "include/linux/quota.h"
 1457typedef long long qsize_t;
 1458#line 200 "include/linux/quota.h"
 1459struct mem_dqblk {
 1460   qsize_t dqb_bhardlimit ;
 1461   qsize_t dqb_bsoftlimit ;
 1462   qsize_t dqb_curspace ;
 1463   qsize_t dqb_rsvspace ;
 1464   qsize_t dqb_ihardlimit ;
 1465   qsize_t dqb_isoftlimit ;
 1466   qsize_t dqb_curinodes ;
 1467   time_t dqb_btime ;
 1468   time_t dqb_itime ;
 1469};
 1470#line 215
 1471struct quota_format_type;
 1472#line 215
 1473struct quota_format_type;
 1474#line 215
 1475struct quota_format_type;
 1476#line 215
 1477struct quota_format_type;
 1478#line 217 "include/linux/quota.h"
 1479struct mem_dqinfo {
 1480   struct quota_format_type *dqi_format ;
 1481   int dqi_fmt_id ;
 1482   struct list_head dqi_dirty_list ;
 1483   unsigned long dqi_flags ;
 1484   unsigned int dqi_bgrace ;
 1485   unsigned int dqi_igrace ;
 1486   qsize_t dqi_maxblimit ;
 1487   qsize_t dqi_maxilimit ;
 1488   void *dqi_priv ;
 1489};
 1490#line 230
 1491struct super_block;
 1492#line 284 "include/linux/quota.h"
 1493struct dquot {
 1494   struct hlist_node dq_hash ;
 1495   struct list_head dq_inuse ;
 1496   struct list_head dq_free ;
 1497   struct list_head dq_dirty ;
 1498   struct mutex dq_lock ;
 1499   atomic_t dq_count ;
 1500   wait_queue_head_t dq_wait_unused ;
 1501   struct super_block *dq_sb ;
 1502   unsigned int dq_id ;
 1503   loff_t dq_off ;
 1504   unsigned long dq_flags ;
 1505   short dq_type ;
 1506   struct mem_dqblk dq_dqb ;
 1507};
 1508#line 301 "include/linux/quota.h"
 1509struct quota_format_ops {
 1510   int (*check_quota_file)(struct super_block *sb , int type ) ;
 1511   int (*read_file_info)(struct super_block *sb , int type ) ;
 1512   int (*write_file_info)(struct super_block *sb , int type ) ;
 1513   int (*free_file_info)(struct super_block *sb , int type ) ;
 1514   int (*read_dqblk)(struct dquot *dquot ) ;
 1515   int (*commit_dqblk)(struct dquot *dquot ) ;
 1516   int (*release_dqblk)(struct dquot *dquot ) ;
 1517};
 1518#line 312 "include/linux/quota.h"
 1519struct dquot_operations {
 1520   int (*write_dquot)(struct dquot * ) ;
 1521   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
 1522   void (*destroy_dquot)(struct dquot * ) ;
 1523   int (*acquire_dquot)(struct dquot * ) ;
 1524   int (*release_dquot)(struct dquot * ) ;
 1525   int (*mark_dirty)(struct dquot * ) ;
 1526   int (*write_info)(struct super_block * , int  ) ;
 1527   qsize_t *(*get_reserved_space)(struct inode * ) ;
 1528};
 1529#line 325
 1530struct path;
 1531#line 328 "include/linux/quota.h"
 1532struct quotactl_ops {
 1533   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
 1534   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
 1535   int (*quota_off)(struct super_block * , int  ) ;
 1536   int (*quota_sync)(struct super_block * , int  , int  ) ;
 1537   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1538   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1539   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1540   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1541   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
 1542   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
 1543};
 1544#line 341 "include/linux/quota.h"
 1545struct quota_format_type {
 1546   int qf_fmt_id ;
 1547   struct quota_format_ops  const  *qf_ops ;
 1548   struct module *qf_owner ;
 1549   struct quota_format_type *qf_next ;
 1550};
 1551#line 395 "include/linux/quota.h"
 1552struct quota_info {
 1553   unsigned int flags ;
 1554   struct mutex dqio_mutex ;
 1555   struct mutex dqonoff_mutex ;
 1556   struct rw_semaphore dqptr_sem ;
 1557   struct inode *files[2] ;
 1558   struct mem_dqinfo info[2] ;
 1559   struct quota_format_ops  const  *ops[2] ;
 1560};
 1561#line 523 "include/linux/fs.h"
 1562struct page;
 1563#line 524
 1564struct address_space;
 1565#line 524
 1566struct address_space;
 1567#line 524
 1568struct address_space;
 1569#line 524
 1570struct address_space;
 1571#line 525
 1572struct writeback_control;
 1573#line 525
 1574struct writeback_control;
 1575#line 525
 1576struct writeback_control;
 1577#line 525
 1578struct writeback_control;
 1579#line 568 "include/linux/fs.h"
 1580union __anonunion_arg_143 {
 1581   char *buf ;
 1582   void *data ;
 1583};
 1584#line 568 "include/linux/fs.h"
 1585struct __anonstruct_read_descriptor_t_142 {
 1586   size_t written ;
 1587   size_t count ;
 1588   union __anonunion_arg_143 arg ;
 1589   int error ;
 1590};
 1591#line 568 "include/linux/fs.h"
 1592typedef struct __anonstruct_read_descriptor_t_142 read_descriptor_t;
 1593#line 581 "include/linux/fs.h"
 1594struct address_space_operations {
 1595   int (*writepage)(struct page *page , struct writeback_control *wbc ) ;
 1596   int (*readpage)(struct file * , struct page * ) ;
 1597   int (*writepages)(struct address_space * , struct writeback_control * ) ;
 1598   int (*set_page_dirty)(struct page *page ) ;
 1599   int (*readpages)(struct file *filp , struct address_space *mapping , struct list_head *pages ,
 1600                    unsigned int nr_pages ) ;
 1601   int (*write_begin)(struct file * , struct address_space *mapping , loff_t pos ,
 1602                      unsigned int len , unsigned int flags , struct page **pagep ,
 1603                      void **fsdata ) ;
 1604   int (*write_end)(struct file * , struct address_space *mapping , loff_t pos , unsigned int len ,
 1605                    unsigned int copied , struct page *page , void *fsdata ) ;
 1606   sector_t (*bmap)(struct address_space * , sector_t  ) ;
 1607   void (*invalidatepage)(struct page * , unsigned long  ) ;
 1608   int (*releasepage)(struct page * , gfp_t  ) ;
 1609   void (*freepage)(struct page * ) ;
 1610   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  *iov , loff_t offset ,
 1611                        unsigned long nr_segs ) ;
 1612   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
 1613   int (*migratepage)(struct address_space * , struct page * , struct page * ) ;
 1614   int (*launder_page)(struct page * ) ;
 1615   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
 1616   int (*error_remove_page)(struct address_space * , struct page * ) ;
 1617};
 1618#line 633
 1619struct backing_dev_info;
 1620#line 633
 1621struct backing_dev_info;
 1622#line 633
 1623struct backing_dev_info;
 1624#line 633
 1625struct backing_dev_info;
 1626#line 634 "include/linux/fs.h"
 1627struct address_space {
 1628   struct inode *host ;
 1629   struct radix_tree_root page_tree ;
 1630   spinlock_t tree_lock ;
 1631   unsigned int i_mmap_writable ;
 1632   struct prio_tree_root i_mmap ;
 1633   struct list_head i_mmap_nonlinear ;
 1634   struct mutex i_mmap_mutex ;
 1635   unsigned long nrpages ;
 1636   unsigned long writeback_index ;
 1637   struct address_space_operations  const  *a_ops ;
 1638   unsigned long flags ;
 1639   struct backing_dev_info *backing_dev_info ;
 1640   spinlock_t private_lock ;
 1641   struct list_head private_list ;
 1642   struct address_space *assoc_mapping ;
 1643} __attribute__((__aligned__(sizeof(long )))) ;
 1644#line 658
 1645struct hd_struct;
 1646#line 658
 1647struct hd_struct;
 1648#line 658
 1649struct hd_struct;
 1650#line 658
 1651struct gendisk;
 1652#line 658
 1653struct gendisk;
 1654#line 658
 1655struct gendisk;
 1656#line 658 "include/linux/fs.h"
 1657struct block_device {
 1658   dev_t bd_dev ;
 1659   int bd_openers ;
 1660   struct inode *bd_inode ;
 1661   struct super_block *bd_super ;
 1662   struct mutex bd_mutex ;
 1663   struct list_head bd_inodes ;
 1664   void *bd_claiming ;
 1665   void *bd_holder ;
 1666   int bd_holders ;
 1667   bool bd_write_holder ;
 1668   struct list_head bd_holder_disks ;
 1669   struct block_device *bd_contains ;
 1670   unsigned int bd_block_size ;
 1671   struct hd_struct *bd_part ;
 1672   unsigned int bd_part_count ;
 1673   int bd_invalidated ;
 1674   struct gendisk *bd_disk ;
 1675   struct list_head bd_list ;
 1676   unsigned long bd_private ;
 1677   int bd_fsfreeze_count ;
 1678   struct mutex bd_fsfreeze_mutex ;
 1679};
 1680#line 735
 1681struct posix_acl;
 1682#line 735
 1683struct posix_acl;
 1684#line 735
 1685struct posix_acl;
 1686#line 735
 1687struct posix_acl;
 1688#line 738
 1689struct inode_operations;
 1690#line 738
 1691struct inode_operations;
 1692#line 738
 1693struct inode_operations;
 1694#line 738 "include/linux/fs.h"
 1695union __anonunion____missing_field_name_144 {
 1696   struct list_head i_dentry ;
 1697   struct rcu_head i_rcu ;
 1698};
 1699#line 738
 1700struct file_operations;
 1701#line 738
 1702struct file_operations;
 1703#line 738
 1704struct file_operations;
 1705#line 738
 1706struct file_lock;
 1707#line 738
 1708struct file_lock;
 1709#line 738
 1710struct file_lock;
 1711#line 738
 1712struct cdev;
 1713#line 738
 1714struct cdev;
 1715#line 738
 1716struct cdev;
 1717#line 738 "include/linux/fs.h"
 1718union __anonunion____missing_field_name_145 {
 1719   struct pipe_inode_info *i_pipe ;
 1720   struct block_device *i_bdev ;
 1721   struct cdev *i_cdev ;
 1722};
 1723#line 738 "include/linux/fs.h"
 1724struct inode {
 1725   umode_t i_mode ;
 1726   uid_t i_uid ;
 1727   gid_t i_gid ;
 1728   struct inode_operations  const  *i_op ;
 1729   struct super_block *i_sb ;
 1730   spinlock_t i_lock ;
 1731   unsigned int i_flags ;
 1732   unsigned long i_state ;
 1733   void *i_security ;
 1734   struct mutex i_mutex ;
 1735   unsigned long dirtied_when ;
 1736   struct hlist_node i_hash ;
 1737   struct list_head i_wb_list ;
 1738   struct list_head i_lru ;
 1739   struct list_head i_sb_list ;
 1740   union __anonunion____missing_field_name_144 __annonCompField29 ;
 1741   unsigned long i_ino ;
 1742   atomic_t i_count ;
 1743   unsigned int i_nlink ;
 1744   dev_t i_rdev ;
 1745   unsigned int i_blkbits ;
 1746   u64 i_version ;
 1747   loff_t i_size ;
 1748   struct timespec i_atime ;
 1749   struct timespec i_mtime ;
 1750   struct timespec i_ctime ;
 1751   blkcnt_t i_blocks ;
 1752   unsigned short i_bytes ;
 1753   struct rw_semaphore i_alloc_sem ;
 1754   struct file_operations  const  *i_fop ;
 1755   struct file_lock *i_flock ;
 1756   struct address_space *i_mapping ;
 1757   struct address_space i_data ;
 1758   struct dquot *i_dquot[2] ;
 1759   struct list_head i_devices ;
 1760   union __anonunion____missing_field_name_145 __annonCompField30 ;
 1761   __u32 i_generation ;
 1762   __u32 i_fsnotify_mask ;
 1763   struct hlist_head i_fsnotify_marks ;
 1764   atomic_t i_readcount ;
 1765   atomic_t i_writecount ;
 1766   struct posix_acl *i_acl ;
 1767   struct posix_acl *i_default_acl ;
 1768   void *i_private ;
 1769};
 1770#line 903 "include/linux/fs.h"
 1771struct fown_struct {
 1772   rwlock_t lock ;
 1773   struct pid *pid ;
 1774   enum pid_type pid_type ;
 1775   uid_t uid ;
 1776   uid_t euid ;
 1777   int signum ;
 1778};
 1779#line 914 "include/linux/fs.h"
 1780struct file_ra_state {
 1781   unsigned long start ;
 1782   unsigned int size ;
 1783   unsigned int async_size ;
 1784   unsigned int ra_pages ;
 1785   unsigned int mmap_miss ;
 1786   loff_t prev_pos ;
 1787};
 1788#line 937 "include/linux/fs.h"
 1789union __anonunion_f_u_146 {
 1790   struct list_head fu_list ;
 1791   struct rcu_head fu_rcuhead ;
 1792};
 1793#line 937 "include/linux/fs.h"
 1794struct file {
 1795   union __anonunion_f_u_146 f_u ;
 1796   struct path f_path ;
 1797   struct file_operations  const  *f_op ;
 1798   spinlock_t f_lock ;
 1799   int f_sb_list_cpu ;
 1800   atomic_long_t f_count ;
 1801   unsigned int f_flags ;
 1802   fmode_t f_mode ;
 1803   loff_t f_pos ;
 1804   struct fown_struct f_owner ;
 1805   struct cred  const  *f_cred ;
 1806   struct file_ra_state f_ra ;
 1807   u64 f_version ;
 1808   void *f_security ;
 1809   void *private_data ;
 1810   struct list_head f_ep_links ;
 1811   struct address_space *f_mapping ;
 1812   unsigned long f_mnt_write_state ;
 1813};
 1814#line 1064
 1815struct files_struct;
 1816#line 1064
 1817struct files_struct;
 1818#line 1064
 1819struct files_struct;
 1820#line 1064 "include/linux/fs.h"
 1821typedef struct files_struct *fl_owner_t;
 1822#line 1066 "include/linux/fs.h"
 1823struct file_lock_operations {
 1824   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
 1825   void (*fl_release_private)(struct file_lock * ) ;
 1826};
 1827#line 1071 "include/linux/fs.h"
 1828struct lock_manager_operations {
 1829   int (*fl_compare_owner)(struct file_lock * , struct file_lock * ) ;
 1830   void (*fl_notify)(struct file_lock * ) ;
 1831   int (*fl_grant)(struct file_lock * , struct file_lock * , int  ) ;
 1832   void (*fl_release_private)(struct file_lock * ) ;
 1833   void (*fl_break)(struct file_lock * ) ;
 1834   int (*fl_change)(struct file_lock ** , int  ) ;
 1835};
 1836#line 8 "include/linux/nfs_fs_i.h"
 1837struct nlm_lockowner;
 1838#line 8
 1839struct nlm_lockowner;
 1840#line 8
 1841struct nlm_lockowner;
 1842#line 8
 1843struct nlm_lockowner;
 1844#line 13 "include/linux/nfs_fs_i.h"
 1845struct nfs_lock_info {
 1846   u32 state ;
 1847   struct nlm_lockowner *owner ;
 1848   struct list_head list ;
 1849};
 1850#line 19
 1851struct nfs4_lock_state;
 1852#line 19
 1853struct nfs4_lock_state;
 1854#line 19
 1855struct nfs4_lock_state;
 1856#line 19
 1857struct nfs4_lock_state;
 1858#line 20 "include/linux/nfs_fs_i.h"
 1859struct nfs4_lock_info {
 1860   struct nfs4_lock_state *owner ;
 1861};
 1862#line 1091 "include/linux/fs.h"
 1863struct fasync_struct;
 1864#line 1091
 1865struct fasync_struct;
 1866#line 1091
 1867struct fasync_struct;
 1868#line 1091 "include/linux/fs.h"
 1869struct __anonstruct_afs_148 {
 1870   struct list_head link ;
 1871   int state ;
 1872};
 1873#line 1091 "include/linux/fs.h"
 1874union __anonunion_fl_u_147 {
 1875   struct nfs_lock_info nfs_fl ;
 1876   struct nfs4_lock_info nfs4_fl ;
 1877   struct __anonstruct_afs_148 afs ;
 1878};
 1879#line 1091 "include/linux/fs.h"
 1880struct file_lock {
 1881   struct file_lock *fl_next ;
 1882   struct list_head fl_link ;
 1883   struct list_head fl_block ;
 1884   fl_owner_t fl_owner ;
 1885   unsigned char fl_flags ;
 1886   unsigned char fl_type ;
 1887   unsigned int fl_pid ;
 1888   struct pid *fl_nspid ;
 1889   wait_queue_head_t fl_wait ;
 1890   struct file *fl_file ;
 1891   loff_t fl_start ;
 1892   loff_t fl_end ;
 1893   struct fasync_struct *fl_fasync ;
 1894   unsigned long fl_break_time ;
 1895   struct file_lock_operations  const  *fl_ops ;
 1896   struct lock_manager_operations  const  *fl_lmops ;
 1897   union __anonunion_fl_u_147 fl_u ;
 1898};
 1899#line 1324 "include/linux/fs.h"
 1900struct fasync_struct {
 1901   spinlock_t fa_lock ;
 1902   int magic ;
 1903   int fa_fd ;
 1904   struct fasync_struct *fa_next ;
 1905   struct file *fa_file ;
 1906   struct rcu_head fa_rcu ;
 1907};
 1908#line 1364
 1909struct file_system_type;
 1910#line 1364
 1911struct file_system_type;
 1912#line 1364
 1913struct file_system_type;
 1914#line 1364
 1915struct super_operations;
 1916#line 1364
 1917struct super_operations;
 1918#line 1364
 1919struct super_operations;
 1920#line 1364
 1921struct xattr_handler;
 1922#line 1364
 1923struct xattr_handler;
 1924#line 1364
 1925struct xattr_handler;
 1926#line 1364
 1927struct mtd_info;
 1928#line 1364
 1929struct mtd_info;
 1930#line 1364
 1931struct mtd_info;
 1932#line 1364 "include/linux/fs.h"
 1933struct super_block {
 1934   struct list_head s_list ;
 1935   dev_t s_dev ;
 1936   unsigned char s_dirt ;
 1937   unsigned char s_blocksize_bits ;
 1938   unsigned long s_blocksize ;
 1939   loff_t s_maxbytes ;
 1940   struct file_system_type *s_type ;
 1941   struct super_operations  const  *s_op ;
 1942   struct dquot_operations  const  *dq_op ;
 1943   struct quotactl_ops  const  *s_qcop ;
 1944   struct export_operations  const  *s_export_op ;
 1945   unsigned long s_flags ;
 1946   unsigned long s_magic ;
 1947   struct dentry *s_root ;
 1948   struct rw_semaphore s_umount ;
 1949   struct mutex s_lock ;
 1950   int s_count ;
 1951   atomic_t s_active ;
 1952   void *s_security ;
 1953   struct xattr_handler  const  **s_xattr ;
 1954   struct list_head s_inodes ;
 1955   struct hlist_bl_head s_anon ;
 1956   struct list_head *s_files ;
 1957   struct list_head s_dentry_lru ;
 1958   int s_nr_dentry_unused ;
 1959   struct block_device *s_bdev ;
 1960   struct backing_dev_info *s_bdi ;
 1961   struct mtd_info *s_mtd ;
 1962   struct list_head s_instances ;
 1963   struct quota_info s_dquot ;
 1964   int s_frozen ;
 1965   wait_queue_head_t s_wait_unfrozen ;
 1966   char s_id[32] ;
 1967   u8 s_uuid[16] ;
 1968   void *s_fs_info ;
 1969   fmode_t s_mode ;
 1970   u32 s_time_gran ;
 1971   struct mutex s_vfs_rename_mutex ;
 1972   char *s_subtype ;
 1973   char *s_options ;
 1974   struct dentry_operations  const  *s_d_op ;
 1975   int cleancache_poolid ;
 1976};
 1977#line 1499 "include/linux/fs.h"
 1978struct fiemap_extent_info {
 1979   unsigned int fi_flags ;
 1980   unsigned int fi_extents_mapped ;
 1981   unsigned int fi_extents_max ;
 1982   struct fiemap_extent *fi_extents_start ;
 1983};
 1984#line 1546 "include/linux/fs.h"
 1985struct file_operations {
 1986   struct module *owner ;
 1987   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
 1988   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
 1989   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
 1990   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 1991                       loff_t  ) ;
 1992   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 1993                        loff_t  ) ;
 1994   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
 1995                                                   loff_t  , u64  , unsigned int  ) ) ;
 1996   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
 1997   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 1998   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 1999   int (*mmap)(struct file * , struct vm_area_struct * ) ;
 2000   int (*open)(struct inode * , struct file * ) ;
 2001   int (*flush)(struct file * , fl_owner_t id ) ;
 2002   int (*release)(struct inode * , struct file * ) ;
 2003   int (*fsync)(struct file * , int datasync ) ;
 2004   int (*aio_fsync)(struct kiocb * , int datasync ) ;
 2005   int (*fasync)(int  , struct file * , int  ) ;
 2006   int (*lock)(struct file * , int  , struct file_lock * ) ;
 2007   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
 2008                       int  ) ;
 2009   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 2010                                      unsigned long  , unsigned long  ) ;
 2011   int (*check_flags)(int  ) ;
 2012   int (*flock)(struct file * , int  , struct file_lock * ) ;
 2013   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
 2014                           unsigned int  ) ;
 2015   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
 2016                          unsigned int  ) ;
 2017   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
 2018   long (*fallocate)(struct file *file , int mode , loff_t offset , loff_t len ) ;
 2019};
 2020#line 1578 "include/linux/fs.h"
 2021struct inode_operations {
 2022   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
 2023   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
 2024   int (*permission)(struct inode * , int  , unsigned int  ) ;
 2025   int (*check_acl)(struct inode * , int  , unsigned int  ) ;
 2026   int (*readlink)(struct dentry * , char * , int  ) ;
 2027   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
 2028   int (*create)(struct inode * , struct dentry * , int  , struct nameidata * ) ;
 2029   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
 2030   int (*unlink)(struct inode * , struct dentry * ) ;
 2031   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
 2032   int (*mkdir)(struct inode * , struct dentry * , int  ) ;
 2033   int (*rmdir)(struct inode * , struct dentry * ) ;
 2034   int (*mknod)(struct inode * , struct dentry * , int  , dev_t  ) ;
 2035   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
 2036   void (*truncate)(struct inode * ) ;
 2037   int (*setattr)(struct dentry * , struct iattr * ) ;
 2038   int (*getattr)(struct vfsmount *mnt , struct dentry * , struct kstat * ) ;
 2039   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
 2040   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
 2041   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
 2042   int (*removexattr)(struct dentry * , char const   * ) ;
 2043   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
 2044   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 start , u64 len ) ;
 2045} __attribute__((__aligned__((1) <<  (6) ))) ;
 2046#line 1608
 2047struct seq_file;
 2048#line 1622 "include/linux/fs.h"
 2049struct super_operations {
 2050   struct inode *(*alloc_inode)(struct super_block *sb ) ;
 2051   void (*destroy_inode)(struct inode * ) ;
 2052   void (*dirty_inode)(struct inode * , int flags ) ;
 2053   int (*write_inode)(struct inode * , struct writeback_control *wbc ) ;
 2054   int (*drop_inode)(struct inode * ) ;
 2055   void (*evict_inode)(struct inode * ) ;
 2056   void (*put_super)(struct super_block * ) ;
 2057   void (*write_super)(struct super_block * ) ;
 2058   int (*sync_fs)(struct super_block *sb , int wait ) ;
 2059   int (*freeze_fs)(struct super_block * ) ;
 2060   int (*unfreeze_fs)(struct super_block * ) ;
 2061   int (*statfs)(struct dentry * , struct kstatfs * ) ;
 2062   int (*remount_fs)(struct super_block * , int * , char * ) ;
 2063   void (*umount_begin)(struct super_block * ) ;
 2064   int (*show_options)(struct seq_file * , struct vfsmount * ) ;
 2065   int (*show_devname)(struct seq_file * , struct vfsmount * ) ;
 2066   int (*show_path)(struct seq_file * , struct vfsmount * ) ;
 2067   int (*show_stats)(struct seq_file * , struct vfsmount * ) ;
 2068   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
 2069   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
 2070                          loff_t  ) ;
 2071   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
 2072};
 2073#line 1802 "include/linux/fs.h"
 2074struct file_system_type {
 2075   char const   *name ;
 2076   int fs_flags ;
 2077   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
 2078   void (*kill_sb)(struct super_block * ) ;
 2079   struct module *owner ;
 2080   struct file_system_type *next ;
 2081   struct list_head fs_supers ;
 2082   struct lock_class_key s_lock_key ;
 2083   struct lock_class_key s_umount_key ;
 2084   struct lock_class_key s_vfs_rename_key ;
 2085   struct lock_class_key i_lock_key ;
 2086   struct lock_class_key i_mutex_key ;
 2087   struct lock_class_key i_mutex_dir_key ;
 2088   struct lock_class_key i_alloc_sem_key ;
 2089};
 2090#line 6 "include/asm-generic/termbits.h"
 2091typedef unsigned char cc_t;
 2092#line 7 "include/asm-generic/termbits.h"
 2093typedef unsigned int speed_t;
 2094#line 8 "include/asm-generic/termbits.h"
 2095typedef unsigned int tcflag_t;
 2096#line 31 "include/asm-generic/termbits.h"
 2097struct ktermios {
 2098   tcflag_t c_iflag ;
 2099   tcflag_t c_oflag ;
 2100   tcflag_t c_cflag ;
 2101   tcflag_t c_lflag ;
 2102   cc_t c_line ;
 2103   cc_t c_cc[19] ;
 2104   speed_t c_ispeed ;
 2105   speed_t c_ospeed ;
 2106};
 2107#line 14 "include/asm-generic/termios.h"
 2108struct winsize {
 2109   unsigned short ws_row ;
 2110   unsigned short ws_col ;
 2111   unsigned short ws_xpixel ;
 2112   unsigned short ws_ypixel ;
 2113};
 2114#line 94 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
 2115struct exception_table_entry {
 2116   unsigned long insn ;
 2117   unsigned long fixup ;
 2118};
 2119#line 9 "include/linux/termios.h"
 2120struct termiox {
 2121   __u16 x_hflag ;
 2122   __u16 x_cflag ;
 2123   __u16 x_rflag[5] ;
 2124   __u16 x_sflag ;
 2125};
 2126#line 8 "include/linux/cdev.h"
 2127struct file_operations;
 2128#line 9
 2129struct inode;
 2130#line 10
 2131struct module;
 2132#line 12 "include/linux/cdev.h"
 2133struct cdev {
 2134   struct kobject kobj ;
 2135   struct module *owner ;
 2136   struct file_operations  const  *ops ;
 2137   struct list_head list ;
 2138   dev_t dev ;
 2139   unsigned int count ;
 2140};
 2141#line 239 "include/linux/tty_driver.h"
 2142struct tty_struct;
 2143#line 239
 2144struct tty_struct;
 2145#line 239
 2146struct tty_struct;
 2147#line 239
 2148struct tty_struct;
 2149#line 240
 2150struct tty_driver;
 2151#line 240
 2152struct tty_driver;
 2153#line 240
 2154struct tty_driver;
 2155#line 240
 2156struct tty_driver;
 2157#line 241
 2158struct serial_icounter_struct;
 2159#line 241
 2160struct serial_icounter_struct;
 2161#line 241
 2162struct serial_icounter_struct;
 2163#line 241
 2164struct serial_icounter_struct;
 2165#line 243 "include/linux/tty_driver.h"
 2166struct tty_operations {
 2167   struct tty_struct *(*lookup)(struct tty_driver *driver , struct inode *inode ,
 2168                                int idx ) ;
 2169   int (*install)(struct tty_driver *driver , struct tty_struct *tty ) ;
 2170   void (*remove)(struct tty_driver *driver , struct tty_struct *tty ) ;
 2171   int (*open)(struct tty_struct *tty , struct file *filp ) ;
 2172   void (*close)(struct tty_struct *tty , struct file *filp ) ;
 2173   void (*shutdown)(struct tty_struct *tty ) ;
 2174   void (*cleanup)(struct tty_struct *tty ) ;
 2175   int (*write)(struct tty_struct *tty , unsigned char const   *buf , int count ) ;
 2176   int (*put_char)(struct tty_struct *tty , unsigned char ch ) ;
 2177   void (*flush_chars)(struct tty_struct *tty ) ;
 2178   int (*write_room)(struct tty_struct *tty ) ;
 2179   int (*chars_in_buffer)(struct tty_struct *tty ) ;
 2180   int (*ioctl)(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
 2181   long (*compat_ioctl)(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
 2182   void (*set_termios)(struct tty_struct *tty , struct ktermios *old ) ;
 2183   void (*throttle)(struct tty_struct *tty ) ;
 2184   void (*unthrottle)(struct tty_struct *tty ) ;
 2185   void (*stop)(struct tty_struct *tty ) ;
 2186   void (*start)(struct tty_struct *tty ) ;
 2187   void (*hangup)(struct tty_struct *tty ) ;
 2188   int (*break_ctl)(struct tty_struct *tty , int state ) ;
 2189   void (*flush_buffer)(struct tty_struct *tty ) ;
 2190   void (*set_ldisc)(struct tty_struct *tty ) ;
 2191   void (*wait_until_sent)(struct tty_struct *tty , int timeout ) ;
 2192   void (*send_xchar)(struct tty_struct *tty , char ch ) ;
 2193   int (*tiocmget)(struct tty_struct *tty ) ;
 2194   int (*tiocmset)(struct tty_struct *tty , unsigned int set , unsigned int clear ) ;
 2195   int (*resize)(struct tty_struct *tty , struct winsize *ws ) ;
 2196   int (*set_termiox)(struct tty_struct *tty , struct termiox *tnew ) ;
 2197   int (*get_icount)(struct tty_struct *tty , struct serial_icounter_struct *icount ) ;
 2198   int (*poll_init)(struct tty_driver *driver , int line , char *options ) ;
 2199   int (*poll_get_char)(struct tty_driver *driver , int line ) ;
 2200   void (*poll_put_char)(struct tty_driver *driver , int line , char ch ) ;
 2201   struct file_operations  const  *proc_fops ;
 2202};
 2203#line 288
 2204struct proc_dir_entry;
 2205#line 288
 2206struct proc_dir_entry;
 2207#line 288
 2208struct proc_dir_entry;
 2209#line 288 "include/linux/tty_driver.h"
 2210struct tty_driver {
 2211   int magic ;
 2212   struct kref kref ;
 2213   struct cdev cdev ;
 2214   struct module *owner ;
 2215   char const   *driver_name ;
 2216   char const   *name ;
 2217   int name_base ;
 2218   int major ;
 2219   int minor_start ;
 2220   int minor_num ;
 2221   int num ;
 2222   short type ;
 2223   short subtype ;
 2224   struct ktermios init_termios ;
 2225   int flags ;
 2226   struct proc_dir_entry *proc_entry ;
 2227   struct tty_driver *other ;
 2228   struct tty_struct **ttys ;
 2229   struct ktermios **termios ;
 2230   struct ktermios **termios_locked ;
 2231   void *driver_state ;
 2232   struct tty_operations  const  *ops ;
 2233   struct list_head tty_drivers ;
 2234};
 2235#line 19 "include/linux/klist.h"
 2236struct klist_node;
 2237#line 19
 2238struct klist_node;
 2239#line 19
 2240struct klist_node;
 2241#line 19
 2242struct klist_node;
 2243#line 39 "include/linux/klist.h"
 2244struct klist_node {
 2245   void *n_klist ;
 2246   struct list_head n_node ;
 2247   struct kref n_ref ;
 2248};
 2249#line 29 "include/linux/sysctl.h"
 2250struct completion;
 2251#line 937
 2252struct nsproxy;
 2253#line 937
 2254struct nsproxy;
 2255#line 937
 2256struct nsproxy;
 2257#line 937
 2258struct nsproxy;
 2259#line 48 "include/linux/kmod.h"
 2260struct cred;
 2261#line 49
 2262struct file;
 2263#line 264 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/elf.h"
 2264struct task_struct;
 2265#line 10 "include/linux/elf.h"
 2266struct file;
 2267#line 27 "include/linux/elf.h"
 2268typedef __u64 Elf64_Addr;
 2269#line 28 "include/linux/elf.h"
 2270typedef __u16 Elf64_Half;
 2271#line 32 "include/linux/elf.h"
 2272typedef __u32 Elf64_Word;
 2273#line 33 "include/linux/elf.h"
 2274typedef __u64 Elf64_Xword;
 2275#line 203 "include/linux/elf.h"
 2276struct elf64_sym {
 2277   Elf64_Word st_name ;
 2278   unsigned char st_info ;
 2279   unsigned char st_other ;
 2280   Elf64_Half st_shndx ;
 2281   Elf64_Addr st_value ;
 2282   Elf64_Xword st_size ;
 2283};
 2284#line 203 "include/linux/elf.h"
 2285typedef struct elf64_sym Elf64_Sym;
 2286#line 34 "include/linux/moduleparam.h"
 2287struct kernel_param;
 2288#line 34
 2289struct kernel_param;
 2290#line 34
 2291struct kernel_param;
 2292#line 34
 2293struct kernel_param;
 2294#line 36 "include/linux/moduleparam.h"
 2295struct kernel_param_ops {
 2296   int (*set)(char const   *val , struct kernel_param  const  *kp ) ;
 2297   int (*get)(char *buffer , struct kernel_param  const  *kp ) ;
 2298   void (*free)(void *arg ) ;
 2299};
 2300#line 48
 2301struct kparam_string;
 2302#line 48
 2303struct kparam_string;
 2304#line 48
 2305struct kparam_string;
 2306#line 48
 2307struct kparam_array;
 2308#line 48
 2309struct kparam_array;
 2310#line 48
 2311struct kparam_array;
 2312#line 48 "include/linux/moduleparam.h"
 2313union __anonunion____missing_field_name_211 {
 2314   void *arg ;
 2315   struct kparam_string  const  *str ;
 2316   struct kparam_array  const  *arr ;
 2317};
 2318#line 48 "include/linux/moduleparam.h"
 2319struct kernel_param {
 2320   char const   *name ;
 2321   struct kernel_param_ops  const  *ops ;
 2322   u16 perm ;
 2323   u16 flags ;
 2324   union __anonunion____missing_field_name_211 __annonCompField33 ;
 2325};
 2326#line 61 "include/linux/moduleparam.h"
 2327struct kparam_string {
 2328   unsigned int maxlen ;
 2329   char *string ;
 2330};
 2331#line 67 "include/linux/moduleparam.h"
 2332struct kparam_array {
 2333   unsigned int max ;
 2334   unsigned int elemsize ;
 2335   unsigned int *num ;
 2336   struct kernel_param_ops  const  *ops ;
 2337   void *elem ;
 2338};
 2339#line 391
 2340struct module;
 2341#line 26 "include/linux/jump_label.h"
 2342struct module;
 2343#line 61 "include/linux/jump_label.h"
 2344struct jump_label_key {
 2345   atomic_t enabled ;
 2346};
 2347#line 22 "include/linux/tracepoint.h"
 2348struct module;
 2349#line 23
 2350struct tracepoint;
 2351#line 23
 2352struct tracepoint;
 2353#line 23
 2354struct tracepoint;
 2355#line 23
 2356struct tracepoint;
 2357#line 25 "include/linux/tracepoint.h"
 2358struct tracepoint_func {
 2359   void *func ;
 2360   void *data ;
 2361};
 2362#line 30 "include/linux/tracepoint.h"
 2363struct tracepoint {
 2364   char const   *name ;
 2365   struct jump_label_key key ;
 2366   void (*regfunc)(void) ;
 2367   void (*unregfunc)(void) ;
 2368   struct tracepoint_func *funcs ;
 2369};
 2370#line 8 "include/asm-generic/module.h"
 2371struct mod_arch_specific {
 2372
 2373};
 2374#line 21 "include/trace/events/module.h"
 2375struct module;
 2376#line 37 "include/linux/module.h"
 2377struct kernel_symbol {
 2378   unsigned long value ;
 2379   char const   *name ;
 2380};
 2381#line 49
 2382struct module;
 2383#line 51 "include/linux/module.h"
 2384struct module_attribute {
 2385   struct attribute attr ;
 2386   ssize_t (*show)(struct module_attribute * , struct module * , char * ) ;
 2387   ssize_t (*store)(struct module_attribute * , struct module * , char const   * ,
 2388                    size_t count ) ;
 2389   void (*setup)(struct module * , char const   * ) ;
 2390   int (*test)(struct module * ) ;
 2391   void (*free)(struct module * ) ;
 2392};
 2393#line 70
 2394struct module_param_attrs;
 2395#line 70
 2396struct module_param_attrs;
 2397#line 70
 2398struct module_param_attrs;
 2399#line 70 "include/linux/module.h"
 2400struct module_kobject {
 2401   struct kobject kobj ;
 2402   struct module *mod ;
 2403   struct kobject *drivers_dir ;
 2404   struct module_param_attrs *mp ;
 2405};
 2406#line 83
 2407struct exception_table_entry;
 2408#line 265
 2409enum module_state {
 2410    MODULE_STATE_LIVE = 0,
 2411    MODULE_STATE_COMING = 1,
 2412    MODULE_STATE_GOING = 2
 2413} ;
 2414#line 272
 2415struct module_sect_attrs;
 2416#line 272
 2417struct module_sect_attrs;
 2418#line 272
 2419struct module_sect_attrs;
 2420#line 272
 2421struct module_notes_attrs;
 2422#line 272
 2423struct module_notes_attrs;
 2424#line 272
 2425struct module_notes_attrs;
 2426#line 272
 2427struct ftrace_event_call;
 2428#line 272
 2429struct ftrace_event_call;
 2430#line 272
 2431struct ftrace_event_call;
 2432#line 272 "include/linux/module.h"
 2433struct module_ref {
 2434   unsigned int incs ;
 2435   unsigned int decs ;
 2436};
 2437#line 272 "include/linux/module.h"
 2438struct module {
 2439   enum module_state state ;
 2440   struct list_head list ;
 2441   char name[64UL - sizeof(unsigned long )] ;
 2442   struct module_kobject mkobj ;
 2443   struct module_attribute *modinfo_attrs ;
 2444   char const   *version ;
 2445   char const   *srcversion ;
 2446   struct kobject *holders_dir ;
 2447   struct kernel_symbol  const  *syms ;
 2448   unsigned long const   *crcs ;
 2449   unsigned int num_syms ;
 2450   struct kernel_param *kp ;
 2451   unsigned int num_kp ;
 2452   unsigned int num_gpl_syms ;
 2453   struct kernel_symbol  const  *gpl_syms ;
 2454   unsigned long const   *gpl_crcs ;
 2455   struct kernel_symbol  const  *unused_syms ;
 2456   unsigned long const   *unused_crcs ;
 2457   unsigned int num_unused_syms ;
 2458   unsigned int num_unused_gpl_syms ;
 2459   struct kernel_symbol  const  *unused_gpl_syms ;
 2460   unsigned long const   *unused_gpl_crcs ;
 2461   struct kernel_symbol  const  *gpl_future_syms ;
 2462   unsigned long const   *gpl_future_crcs ;
 2463   unsigned int num_gpl_future_syms ;
 2464   unsigned int num_exentries ;
 2465   struct exception_table_entry *extable ;
 2466   int (*init)(void) ;
 2467   void *module_init ;
 2468   void *module_core ;
 2469   unsigned int init_size ;
 2470   unsigned int core_size ;
 2471   unsigned int init_text_size ;
 2472   unsigned int core_text_size ;
 2473   unsigned int init_ro_size ;
 2474   unsigned int core_ro_size ;
 2475   struct mod_arch_specific arch ;
 2476   unsigned int taints ;
 2477   unsigned int num_bugs ;
 2478   struct list_head bug_list ;
 2479   struct bug_entry *bug_table ;
 2480   Elf64_Sym *symtab ;
 2481   Elf64_Sym *core_symtab ;
 2482   unsigned int num_symtab ;
 2483   unsigned int core_num_syms ;
 2484   char *strtab ;
 2485   char *core_strtab ;
 2486   struct module_sect_attrs *sect_attrs ;
 2487   struct module_notes_attrs *notes_attrs ;
 2488   char *args ;
 2489   void *percpu ;
 2490   unsigned int percpu_size ;
 2491   unsigned int num_tracepoints ;
 2492   struct tracepoint * const  *tracepoints_ptrs ;
 2493   unsigned int num_trace_bprintk_fmt ;
 2494   char const   **trace_bprintk_fmt_start ;
 2495   struct ftrace_event_call **trace_events ;
 2496   unsigned int num_trace_events ;
 2497   unsigned int num_ftrace_callsites ;
 2498   unsigned long *ftrace_callsites ;
 2499   struct list_head source_list ;
 2500   struct list_head target_list ;
 2501   struct task_struct *waiter ;
 2502   void (*exit)(void) ;
 2503   struct module_ref *refptr ;
 2504   ctor_fn_t *ctors ;
 2505   unsigned int num_ctors ;
 2506};
 2507#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 2508struct dma_map_ops;
 2509#line 4
 2510struct dma_map_ops;
 2511#line 4
 2512struct dma_map_ops;
 2513#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 2514struct dev_archdata {
 2515   void *acpi_handle ;
 2516   struct dma_map_ops *dma_ops ;
 2517   void *iommu ;
 2518};
 2519#line 28 "include/linux/device.h"
 2520struct device;
 2521#line 29
 2522struct device_private;
 2523#line 29
 2524struct device_private;
 2525#line 29
 2526struct device_private;
 2527#line 29
 2528struct device_private;
 2529#line 30
 2530struct device_driver;
 2531#line 30
 2532struct device_driver;
 2533#line 30
 2534struct device_driver;
 2535#line 30
 2536struct device_driver;
 2537#line 31
 2538struct driver_private;
 2539#line 31
 2540struct driver_private;
 2541#line 31
 2542struct driver_private;
 2543#line 31
 2544struct driver_private;
 2545#line 32
 2546struct class;
 2547#line 32
 2548struct class;
 2549#line 32
 2550struct class;
 2551#line 32
 2552struct class;
 2553#line 33
 2554struct subsys_private;
 2555#line 33
 2556struct subsys_private;
 2557#line 33
 2558struct subsys_private;
 2559#line 33
 2560struct subsys_private;
 2561#line 34
 2562struct bus_type;
 2563#line 34
 2564struct bus_type;
 2565#line 34
 2566struct bus_type;
 2567#line 34
 2568struct bus_type;
 2569#line 35
 2570struct device_node;
 2571#line 35
 2572struct device_node;
 2573#line 35
 2574struct device_node;
 2575#line 35
 2576struct device_node;
 2577#line 37 "include/linux/device.h"
 2578struct bus_attribute {
 2579   struct attribute attr ;
 2580   ssize_t (*show)(struct bus_type *bus , char *buf ) ;
 2581   ssize_t (*store)(struct bus_type *bus , char const   *buf , size_t count ) ;
 2582};
 2583#line 82
 2584struct device_attribute;
 2585#line 82
 2586struct device_attribute;
 2587#line 82
 2588struct device_attribute;
 2589#line 82
 2590struct driver_attribute;
 2591#line 82
 2592struct driver_attribute;
 2593#line 82
 2594struct driver_attribute;
 2595#line 82 "include/linux/device.h"
 2596struct bus_type {
 2597   char const   *name ;
 2598   struct bus_attribute *bus_attrs ;
 2599   struct device_attribute *dev_attrs ;
 2600   struct driver_attribute *drv_attrs ;
 2601   int (*match)(struct device *dev , struct device_driver *drv ) ;
 2602   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 2603   int (*probe)(struct device *dev ) ;
 2604   int (*remove)(struct device *dev ) ;
 2605   void (*shutdown)(struct device *dev ) ;
 2606   int (*suspend)(struct device *dev , pm_message_t state ) ;
 2607   int (*resume)(struct device *dev ) ;
 2608   struct dev_pm_ops  const  *pm ;
 2609   struct subsys_private *p ;
 2610};
 2611#line 185
 2612struct of_device_id;
 2613#line 185
 2614struct of_device_id;
 2615#line 185
 2616struct of_device_id;
 2617#line 185 "include/linux/device.h"
 2618struct device_driver {
 2619   char const   *name ;
 2620   struct bus_type *bus ;
 2621   struct module *owner ;
 2622   char const   *mod_name ;
 2623   bool suppress_bind_attrs ;
 2624   struct of_device_id  const  *of_match_table ;
 2625   int (*probe)(struct device *dev ) ;
 2626   int (*remove)(struct device *dev ) ;
 2627   void (*shutdown)(struct device *dev ) ;
 2628   int (*suspend)(struct device *dev , pm_message_t state ) ;
 2629   int (*resume)(struct device *dev ) ;
 2630   struct attribute_group  const  **groups ;
 2631   struct dev_pm_ops  const  *pm ;
 2632   struct driver_private *p ;
 2633};
 2634#line 222 "include/linux/device.h"
 2635struct driver_attribute {
 2636   struct attribute attr ;
 2637   ssize_t (*show)(struct device_driver *driver , char *buf ) ;
 2638   ssize_t (*store)(struct device_driver *driver , char const   *buf , size_t count ) ;
 2639};
 2640#line 280
 2641struct class_attribute;
 2642#line 280
 2643struct class_attribute;
 2644#line 280
 2645struct class_attribute;
 2646#line 280 "include/linux/device.h"
 2647struct class {
 2648   char const   *name ;
 2649   struct module *owner ;
 2650   struct class_attribute *class_attrs ;
 2651   struct device_attribute *dev_attrs ;
 2652   struct bin_attribute *dev_bin_attrs ;
 2653   struct kobject *dev_kobj ;
 2654   int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 2655   char *(*devnode)(struct device *dev , mode_t *mode ) ;
 2656   void (*class_release)(struct class *class ) ;
 2657   void (*dev_release)(struct device *dev ) ;
 2658   int (*suspend)(struct device *dev , pm_message_t state ) ;
 2659   int (*resume)(struct device *dev ) ;
 2660   struct kobj_ns_type_operations  const  *ns_type ;
 2661   void const   *(*namespace)(struct device *dev ) ;
 2662   struct dev_pm_ops  const  *pm ;
 2663   struct subsys_private *p ;
 2664};
 2665#line 306
 2666struct device_type;
 2667#line 306
 2668struct device_type;
 2669#line 306
 2670struct device_type;
 2671#line 347 "include/linux/device.h"
 2672struct class_attribute {
 2673   struct attribute attr ;
 2674   ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
 2675   ssize_t (*store)(struct class *class , struct class_attribute *attr , char const   *buf ,
 2676                    size_t count ) ;
 2677};
 2678#line 413 "include/linux/device.h"
 2679struct device_type {
 2680   char const   *name ;
 2681   struct attribute_group  const  **groups ;
 2682   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 2683   char *(*devnode)(struct device *dev , mode_t *mode ) ;
 2684   void (*release)(struct device *dev ) ;
 2685   struct dev_pm_ops  const  *pm ;
 2686};
 2687#line 424 "include/linux/device.h"
 2688struct device_attribute {
 2689   struct attribute attr ;
 2690   ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
 2691   ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const   *buf ,
 2692                    size_t count ) ;
 2693};
 2694#line 484 "include/linux/device.h"
 2695struct device_dma_parameters {
 2696   unsigned int max_segment_size ;
 2697   unsigned long segment_boundary_mask ;
 2698};
 2699#line 551
 2700struct dma_coherent_mem;
 2701#line 551
 2702struct dma_coherent_mem;
 2703#line 551
 2704struct dma_coherent_mem;
 2705#line 551 "include/linux/device.h"
 2706struct device {
 2707   struct device *parent ;
 2708   struct device_private *p ;
 2709   struct kobject kobj ;
 2710   char const   *init_name ;
 2711   struct device_type  const  *type ;
 2712   struct mutex mutex ;
 2713   struct bus_type *bus ;
 2714   struct device_driver *driver ;
 2715   void *platform_data ;
 2716   struct dev_pm_info power ;
 2717   struct dev_power_domain *pwr_domain ;
 2718   int numa_node ;
 2719   u64 *dma_mask ;
 2720   u64 coherent_dma_mask ;
 2721   struct device_dma_parameters *dma_parms ;
 2722   struct list_head dma_pools ;
 2723   struct dma_coherent_mem *dma_mem ;
 2724   struct dev_archdata archdata ;
 2725   struct device_node *of_node ;
 2726   dev_t devt ;
 2727   spinlock_t devres_lock ;
 2728   struct list_head devres_head ;
 2729   struct klist_node knode_class ;
 2730   struct class *class ;
 2731   struct attribute_group  const  **groups ;
 2732   void (*release)(struct device *dev ) ;
 2733};
 2734#line 43 "include/linux/pm_wakeup.h"
 2735struct wakeup_source {
 2736   char *name ;
 2737   struct list_head entry ;
 2738   spinlock_t lock ;
 2739   struct timer_list timer ;
 2740   unsigned long timer_expires ;
 2741   ktime_t total_time ;
 2742   ktime_t max_time ;
 2743   ktime_t last_time ;
 2744   unsigned long event_count ;
 2745   unsigned long active_count ;
 2746   unsigned long relax_count ;
 2747   unsigned long hit_count ;
 2748   unsigned int active : 1 ;
 2749};
 2750#line 49 "include/linux/pps_kernel.h"
 2751struct pps_event_time {
 2752   struct timespec ts_real ;
 2753};
 2754#line 114 "include/linux/tty_ldisc.h"
 2755struct tty_ldisc_ops {
 2756   int magic ;
 2757   char *name ;
 2758   int num ;
 2759   int flags ;
 2760   int (*open)(struct tty_struct * ) ;
 2761   void (*close)(struct tty_struct * ) ;
 2762   void (*flush_buffer)(struct tty_struct *tty ) ;
 2763   ssize_t (*chars_in_buffer)(struct tty_struct *tty ) ;
 2764   ssize_t (*read)(struct tty_struct *tty , struct file *file , unsigned char *buf ,
 2765                   size_t nr ) ;
 2766   ssize_t (*write)(struct tty_struct *tty , struct file *file , unsigned char const   *buf ,
 2767                    size_t nr ) ;
 2768   int (*ioctl)(struct tty_struct *tty , struct file *file , unsigned int cmd , unsigned long arg ) ;
 2769   long (*compat_ioctl)(struct tty_struct *tty , struct file *file , unsigned int cmd ,
 2770                        unsigned long arg ) ;
 2771   void (*set_termios)(struct tty_struct *tty , struct ktermios *old ) ;
 2772   unsigned int (*poll)(struct tty_struct * , struct file * , struct poll_table_struct * ) ;
 2773   int (*hangup)(struct tty_struct *tty ) ;
 2774   void (*receive_buf)(struct tty_struct * , unsigned char const   *cp , char *fp ,
 2775                       int count ) ;
 2776   void (*write_wakeup)(struct tty_struct * ) ;
 2777   void (*dcd_change)(struct tty_struct * , unsigned int  , struct pps_event_time * ) ;
 2778   struct module *owner ;
 2779   int refcount ;
 2780};
 2781#line 154 "include/linux/tty_ldisc.h"
 2782struct tty_ldisc {
 2783   struct tty_ldisc_ops *ops ;
 2784   atomic_t users ;
 2785};
 2786#line 63 "include/linux/tty.h"
 2787struct tty_buffer {
 2788   struct tty_buffer *next ;
 2789   char *char_buf_ptr ;
 2790   unsigned char *flag_buf_ptr ;
 2791   int used ;
 2792   int size ;
 2793   int commit ;
 2794   int read ;
 2795   unsigned long data[0] ;
 2796};
 2797#line 86 "include/linux/tty.h"
 2798struct tty_bufhead {
 2799   struct work_struct work ;
 2800   spinlock_t lock ;
 2801   struct tty_buffer *head ;
 2802   struct tty_buffer *tail ;
 2803   struct tty_buffer *free ;
 2804   int memory_used ;
 2805};
 2806#line 187
 2807struct device;
 2808#line 188
 2809struct signal_struct;
 2810#line 188
 2811struct signal_struct;
 2812#line 188
 2813struct signal_struct;
 2814#line 188
 2815struct signal_struct;
 2816#line 201
 2817struct tty_port;
 2818#line 201
 2819struct tty_port;
 2820#line 201
 2821struct tty_port;
 2822#line 201
 2823struct tty_port;
 2824#line 203 "include/linux/tty.h"
 2825struct tty_port_operations {
 2826   int (*carrier_raised)(struct tty_port *port ) ;
 2827   void (*dtr_rts)(struct tty_port *port , int raise ) ;
 2828   void (*shutdown)(struct tty_port *port ) ;
 2829   void (*drop)(struct tty_port *port ) ;
 2830   int (*activate)(struct tty_port *port , struct tty_struct *tty ) ;
 2831   void (*destruct)(struct tty_port *port ) ;
 2832};
 2833#line 222 "include/linux/tty.h"
 2834struct tty_port {
 2835   struct tty_struct *tty ;
 2836   struct tty_port_operations  const  *ops ;
 2837   spinlock_t lock ;
 2838   int blocked_open ;
 2839   int count ;
 2840   wait_queue_head_t open_wait ;
 2841   wait_queue_head_t close_wait ;
 2842   wait_queue_head_t delta_msr_wait ;
 2843   unsigned long flags ;
 2844   unsigned char console : 1 ;
 2845   struct mutex mutex ;
 2846   struct mutex buf_mutex ;
 2847   unsigned char *xmit_buf ;
 2848   unsigned int close_delay ;
 2849   unsigned int closing_wait ;
 2850   int drain_delay ;
 2851   struct kref kref ;
 2852};
 2853#line 256
 2854struct tty_operations;
 2855#line 258 "include/linux/tty.h"
 2856struct tty_struct {
 2857   int magic ;
 2858   struct kref kref ;
 2859   struct device *dev ;
 2860   struct tty_driver *driver ;
 2861   struct tty_operations  const  *ops ;
 2862   int index ;
 2863   struct mutex ldisc_mutex ;
 2864   struct tty_ldisc *ldisc ;
 2865   struct mutex termios_mutex ;
 2866   spinlock_t ctrl_lock ;
 2867   struct ktermios *termios ;
 2868   struct ktermios *termios_locked ;
 2869   struct termiox *termiox ;
 2870   char name[64] ;
 2871   struct pid *pgrp ;
 2872   struct pid *session ;
 2873   unsigned long flags ;
 2874   int count ;
 2875   struct winsize winsize ;
 2876   unsigned char stopped : 1 ;
 2877   unsigned char hw_stopped : 1 ;
 2878   unsigned char flow_stopped : 1 ;
 2879   unsigned char packet : 1 ;
 2880   unsigned char low_latency : 1 ;
 2881   unsigned char warned : 1 ;
 2882   unsigned char ctrl_status ;
 2883   unsigned int receive_room ;
 2884   struct tty_struct *link ;
 2885   struct fasync_struct *fasync ;
 2886   struct tty_bufhead buf ;
 2887   int alt_speed ;
 2888   wait_queue_head_t write_wait ;
 2889   wait_queue_head_t read_wait ;
 2890   struct work_struct hangup_work ;
 2891   void *disc_data ;
 2892   void *driver_data ;
 2893   struct list_head tty_files ;
 2894   unsigned int column ;
 2895   unsigned char lnext : 1 ;
 2896   unsigned char erasing : 1 ;
 2897   unsigned char raw : 1 ;
 2898   unsigned char real_raw : 1 ;
 2899   unsigned char icanon : 1 ;
 2900   unsigned char closing : 1 ;
 2901   unsigned char echo_overrun : 1 ;
 2902   unsigned short minimum_to_wake ;
 2903   unsigned long overrun_time ;
 2904   int num_overrun ;
 2905   unsigned long process_char_map[256UL / (8UL * sizeof(unsigned long ))] ;
 2906   char *read_buf ;
 2907   int read_head ;
 2908   int read_tail ;
 2909   int read_cnt ;
 2910   unsigned long read_flags[4096UL / (8UL * sizeof(unsigned long ))] ;
 2911   unsigned char *echo_buf ;
 2912   unsigned int echo_pos ;
 2913   unsigned int echo_cnt ;
 2914   int canon_data ;
 2915   unsigned long canon_head ;
 2916   unsigned int canon_column ;
 2917   struct mutex atomic_read_lock ;
 2918   struct mutex atomic_write_lock ;
 2919   struct mutex output_lock ;
 2920   struct mutex echo_lock ;
 2921   unsigned char *write_buf ;
 2922   int write_cnt ;
 2923   spinlock_t read_lock ;
 2924   struct work_struct SAK_work ;
 2925   struct tty_port *port ;
 2926};
 2927#line 12 "include/linux/mod_devicetable.h"
 2928typedef unsigned long kernel_ulong_t;
 2929#line 98 "include/linux/mod_devicetable.h"
 2930struct usb_device_id {
 2931   __u16 match_flags ;
 2932   __u16 idVendor ;
 2933   __u16 idProduct ;
 2934   __u16 bcdDevice_lo ;
 2935   __u16 bcdDevice_hi ;
 2936   __u8 bDeviceClass ;
 2937   __u8 bDeviceSubClass ;
 2938   __u8 bDeviceProtocol ;
 2939   __u8 bInterfaceClass ;
 2940   __u8 bInterfaceSubClass ;
 2941   __u8 bInterfaceProtocol ;
 2942   kernel_ulong_t driver_info ;
 2943};
 2944#line 219 "include/linux/mod_devicetable.h"
 2945struct of_device_id {
 2946   char name[32] ;
 2947   char type[32] ;
 2948   char compatible[128] ;
 2949   void *data ;
 2950};
 2951#line 244 "include/linux/usb/ch9.h"
 2952struct usb_device_descriptor {
 2953   __u8 bLength ;
 2954   __u8 bDescriptorType ;
 2955   __le16 bcdUSB ;
 2956   __u8 bDeviceClass ;
 2957   __u8 bDeviceSubClass ;
 2958   __u8 bDeviceProtocol ;
 2959   __u8 bMaxPacketSize0 ;
 2960   __le16 idVendor ;
 2961   __le16 idProduct ;
 2962   __le16 bcdDevice ;
 2963   __u8 iManufacturer ;
 2964   __u8 iProduct ;
 2965   __u8 iSerialNumber ;
 2966   __u8 bNumConfigurations ;
 2967} __attribute__((__packed__)) ;
 2968#line 300 "include/linux/usb/ch9.h"
 2969struct usb_config_descriptor {
 2970   __u8 bLength ;
 2971   __u8 bDescriptorType ;
 2972   __le16 wTotalLength ;
 2973   __u8 bNumInterfaces ;
 2974   __u8 bConfigurationValue ;
 2975   __u8 iConfiguration ;
 2976   __u8 bmAttributes ;
 2977   __u8 bMaxPower ;
 2978} __attribute__((__packed__)) ;
 2979#line 337 "include/linux/usb/ch9.h"
 2980struct usb_interface_descriptor {
 2981   __u8 bLength ;
 2982   __u8 bDescriptorType ;
 2983   __u8 bInterfaceNumber ;
 2984   __u8 bAlternateSetting ;
 2985   __u8 bNumEndpoints ;
 2986   __u8 bInterfaceClass ;
 2987   __u8 bInterfaceSubClass ;
 2988   __u8 bInterfaceProtocol ;
 2989   __u8 iInterface ;
 2990} __attribute__((__packed__)) ;
 2991#line 355 "include/linux/usb/ch9.h"
 2992struct usb_endpoint_descriptor {
 2993   __u8 bLength ;
 2994   __u8 bDescriptorType ;
 2995   __u8 bEndpointAddress ;
 2996   __u8 bmAttributes ;
 2997   __le16 wMaxPacketSize ;
 2998   __u8 bInterval ;
 2999   __u8 bRefresh ;
 3000   __u8 bSynchAddress ;
 3001} __attribute__((__packed__)) ;
 3002#line 576 "include/linux/usb/ch9.h"
 3003struct usb_ss_ep_comp_descriptor {
 3004   __u8 bLength ;
 3005   __u8 bDescriptorType ;
 3006   __u8 bMaxBurst ;
 3007   __u8 bmAttributes ;
 3008   __le16 wBytesPerInterval ;
 3009} __attribute__((__packed__)) ;
 3010#line 637 "include/linux/usb/ch9.h"
 3011struct usb_interface_assoc_descriptor {
 3012   __u8 bLength ;
 3013   __u8 bDescriptorType ;
 3014   __u8 bFirstInterface ;
 3015   __u8 bInterfaceCount ;
 3016   __u8 bFunctionClass ;
 3017   __u8 bFunctionSubClass ;
 3018   __u8 bFunctionProtocol ;
 3019   __u8 iFunction ;
 3020} __attribute__((__packed__)) ;
 3021#line 846
 3022enum usb_device_speed {
 3023    USB_SPEED_UNKNOWN = 0,
 3024    USB_SPEED_LOW = 1,
 3025    USB_SPEED_FULL = 2,
 3026    USB_SPEED_HIGH = 3,
 3027    USB_SPEED_WIRELESS = 4,
 3028    USB_SPEED_SUPER = 5
 3029} ;
 3030#line 854
 3031enum usb_device_state {
 3032    USB_STATE_NOTATTACHED = 0,
 3033    USB_STATE_ATTACHED = 1,
 3034    USB_STATE_POWERED = 2,
 3035    USB_STATE_RECONNECTING = 3,
 3036    USB_STATE_UNAUTHENTICATED = 4,
 3037    USB_STATE_DEFAULT = 5,
 3038    USB_STATE_ADDRESS = 6,
 3039    USB_STATE_CONFIGURED = 7,
 3040    USB_STATE_SUSPENDED = 8
 3041} ;
 3042#line 10 "include/linux/irqreturn.h"
 3043enum irqreturn {
 3044    IRQ_NONE = 0,
 3045    IRQ_HANDLED = 1,
 3046    IRQ_WAKE_THREAD = 2
 3047} ;
 3048#line 16 "include/linux/irqreturn.h"
 3049typedef enum irqreturn irqreturn_t;
 3050#line 31 "include/linux/irq.h"
 3051struct seq_file;
 3052#line 12 "include/linux/irqdesc.h"
 3053struct proc_dir_entry;
 3054#line 39
 3055struct irqaction;
 3056#line 39
 3057struct irqaction;
 3058#line 39
 3059struct irqaction;
 3060#line 16 "include/linux/profile.h"
 3061struct proc_dir_entry;
 3062#line 17
 3063struct pt_regs;
 3064#line 65
 3065struct task_struct;
 3066#line 66
 3067struct mm_struct;
 3068#line 88
 3069struct pt_regs;
 3070#line 363 "include/linux/irq.h"
 3071struct irqaction;
 3072#line 132 "include/linux/hardirq.h"
 3073struct task_struct;
 3074#line 100 "include/linux/rbtree.h"
 3075struct rb_node {
 3076   unsigned long rb_parent_color ;
 3077   struct rb_node *rb_right ;
 3078   struct rb_node *rb_left ;
 3079} __attribute__((__aligned__(sizeof(long )))) ;
 3080#line 110 "include/linux/rbtree.h"
 3081struct rb_root {
 3082   struct rb_node *rb_node ;
 3083};
 3084#line 8 "include/linux/timerqueue.h"
 3085struct timerqueue_node {
 3086   struct rb_node node ;
 3087   ktime_t expires ;
 3088};
 3089#line 13 "include/linux/timerqueue.h"
 3090struct timerqueue_head {
 3091   struct rb_root head ;
 3092   struct timerqueue_node *next ;
 3093};
 3094#line 27 "include/linux/hrtimer.h"
 3095struct hrtimer_clock_base;
 3096#line 27
 3097struct hrtimer_clock_base;
 3098#line 27
 3099struct hrtimer_clock_base;
 3100#line 27
 3101struct hrtimer_clock_base;
 3102#line 28
 3103struct hrtimer_cpu_base;
 3104#line 28
 3105struct hrtimer_cpu_base;
 3106#line 28
 3107struct hrtimer_cpu_base;
 3108#line 28
 3109struct hrtimer_cpu_base;
 3110#line 44
 3111enum hrtimer_restart {
 3112    HRTIMER_NORESTART = 0,
 3113    HRTIMER_RESTART = 1
 3114} ;
 3115#line 108 "include/linux/hrtimer.h"
 3116struct hrtimer {
 3117   struct timerqueue_node node ;
 3118   ktime_t _softexpires ;
 3119   enum hrtimer_restart (*function)(struct hrtimer * ) ;
 3120   struct hrtimer_clock_base *base ;
 3121   unsigned long state ;
 3122   int start_pid ;
 3123   void *start_site ;
 3124   char start_comm[16] ;
 3125};
 3126#line 145 "include/linux/hrtimer.h"
 3127struct hrtimer_clock_base {
 3128   struct hrtimer_cpu_base *cpu_base ;
 3129   int index ;
 3130   clockid_t clockid ;
 3131   struct timerqueue_head active ;
 3132   ktime_t resolution ;
 3133   ktime_t (*get_time)(void) ;
 3134   ktime_t softirq_time ;
 3135   ktime_t offset ;
 3136};
 3137#line 178 "include/linux/hrtimer.h"
 3138struct hrtimer_cpu_base {
 3139   raw_spinlock_t lock ;
 3140   unsigned long active_bases ;
 3141   ktime_t expires_next ;
 3142   int hres_active ;
 3143   int hang_detected ;
 3144   unsigned long nr_events ;
 3145   unsigned long nr_retries ;
 3146   unsigned long nr_hangs ;
 3147   ktime_t max_hang_time ;
 3148   struct hrtimer_clock_base clock_base[3] ;
 3149};
 3150#line 9 "include/trace/events/irq.h"
 3151struct irqaction;
 3152#line 106 "include/linux/interrupt.h"
 3153struct irqaction {
 3154   irqreturn_t (*handler)(int  , void * ) ;
 3155   unsigned long flags ;
 3156   void *dev_id ;
 3157   struct irqaction *next ;
 3158   int irq ;
 3159   irqreturn_t (*thread_fn)(int  , void * ) ;
 3160   struct task_struct *thread ;
 3161   unsigned long thread_flags ;
 3162   unsigned long thread_mask ;
 3163   char const   *name ;
 3164   struct proc_dir_entry *dir ;
 3165} __attribute__((__aligned__((1) <<  (12) ))) ;
 3166#line 172
 3167struct device;
 3168#line 682
 3169struct seq_file;
 3170#line 23 "include/linux/mm_types.h"
 3171struct address_space;
 3172#line 34 "include/linux/mm_types.h"
 3173struct __anonstruct____missing_field_name_223 {
 3174   u16 inuse ;
 3175   u16 objects ;
 3176};
 3177#line 34 "include/linux/mm_types.h"
 3178union __anonunion____missing_field_name_222 {
 3179   atomic_t _mapcount ;
 3180   struct __anonstruct____missing_field_name_223 __annonCompField34 ;
 3181};
 3182#line 34 "include/linux/mm_types.h"
 3183struct __anonstruct____missing_field_name_225 {
 3184   unsigned long private ;
 3185   struct address_space *mapping ;
 3186};
 3187#line 34 "include/linux/mm_types.h"
 3188union __anonunion____missing_field_name_224 {
 3189   struct __anonstruct____missing_field_name_225 __annonCompField36 ;
 3190   struct kmem_cache *slab ;
 3191   struct page *first_page ;
 3192};
 3193#line 34 "include/linux/mm_types.h"
 3194union __anonunion____missing_field_name_226 {
 3195   unsigned long index ;
 3196   void *freelist ;
 3197};
 3198#line 34 "include/linux/mm_types.h"
 3199struct page {
 3200   unsigned long flags ;
 3201   atomic_t _count ;
 3202   union __anonunion____missing_field_name_222 __annonCompField35 ;
 3203   union __anonunion____missing_field_name_224 __annonCompField37 ;
 3204   union __anonunion____missing_field_name_226 __annonCompField38 ;
 3205   struct list_head lru ;
 3206};
 3207#line 132 "include/linux/mm_types.h"
 3208struct __anonstruct_vm_set_228 {
 3209   struct list_head list ;
 3210   void *parent ;
 3211   struct vm_area_struct *head ;
 3212};
 3213#line 132 "include/linux/mm_types.h"
 3214union __anonunion_shared_227 {
 3215   struct __anonstruct_vm_set_228 vm_set ;
 3216   struct raw_prio_tree_node prio_tree_node ;
 3217};
 3218#line 132
 3219struct anon_vma;
 3220#line 132
 3221struct anon_vma;
 3222#line 132
 3223struct anon_vma;
 3224#line 132
 3225struct vm_operations_struct;
 3226#line 132
 3227struct vm_operations_struct;
 3228#line 132
 3229struct vm_operations_struct;
 3230#line 132
 3231struct mempolicy;
 3232#line 132
 3233struct mempolicy;
 3234#line 132
 3235struct mempolicy;
 3236#line 132 "include/linux/mm_types.h"
 3237struct vm_area_struct {
 3238   struct mm_struct *vm_mm ;
 3239   unsigned long vm_start ;
 3240   unsigned long vm_end ;
 3241   struct vm_area_struct *vm_next ;
 3242   struct vm_area_struct *vm_prev ;
 3243   pgprot_t vm_page_prot ;
 3244   unsigned long vm_flags ;
 3245   struct rb_node vm_rb ;
 3246   union __anonunion_shared_227 shared ;
 3247   struct list_head anon_vma_chain ;
 3248   struct anon_vma *anon_vma ;
 3249   struct vm_operations_struct  const  *vm_ops ;
 3250   unsigned long vm_pgoff ;
 3251   struct file *vm_file ;
 3252   void *vm_private_data ;
 3253   struct mempolicy *vm_policy ;
 3254};
 3255#line 189 "include/linux/mm_types.h"
 3256struct core_thread {
 3257   struct task_struct *task ;
 3258   struct core_thread *next ;
 3259};
 3260#line 194 "include/linux/mm_types.h"
 3261struct core_state {
 3262   atomic_t nr_threads ;
 3263   struct core_thread dumper ;
 3264   struct completion startup ;
 3265};
 3266#line 216 "include/linux/mm_types.h"
 3267struct mm_rss_stat {
 3268   atomic_long_t count[3] ;
 3269};
 3270#line 220
 3271struct linux_binfmt;
 3272#line 220
 3273struct linux_binfmt;
 3274#line 220
 3275struct linux_binfmt;
 3276#line 220
 3277struct mmu_notifier_mm;
 3278#line 220
 3279struct mmu_notifier_mm;
 3280#line 220
 3281struct mmu_notifier_mm;
 3282#line 220 "include/linux/mm_types.h"
 3283struct mm_struct {
 3284   struct vm_area_struct *mmap ;
 3285   struct rb_root mm_rb ;
 3286   struct vm_area_struct *mmap_cache ;
 3287   unsigned long (*get_unmapped_area)(struct file *filp , unsigned long addr , unsigned long len ,
 3288                                      unsigned long pgoff , unsigned long flags ) ;
 3289   void (*unmap_area)(struct mm_struct *mm , unsigned long addr ) ;
 3290   unsigned long mmap_base ;
 3291   unsigned long task_size ;
 3292   unsigned long cached_hole_size ;
 3293   unsigned long free_area_cache ;
 3294   pgd_t *pgd ;
 3295   atomic_t mm_users ;
 3296   atomic_t mm_count ;
 3297   int map_count ;
 3298   spinlock_t page_table_lock ;
 3299   struct rw_semaphore mmap_sem ;
 3300   struct list_head mmlist ;
 3301   unsigned long hiwater_rss ;
 3302   unsigned long hiwater_vm ;
 3303   unsigned long total_vm ;
 3304   unsigned long locked_vm ;
 3305   unsigned long shared_vm ;
 3306   unsigned long exec_vm ;
 3307   unsigned long stack_vm ;
 3308   unsigned long reserved_vm ;
 3309   unsigned long def_flags ;
 3310   unsigned long nr_ptes ;
 3311   unsigned long start_code ;
 3312   unsigned long end_code ;
 3313   unsigned long start_data ;
 3314   unsigned long end_data ;
 3315   unsigned long start_brk ;
 3316   unsigned long brk ;
 3317   unsigned long start_stack ;
 3318   unsigned long arg_start ;
 3319   unsigned long arg_end ;
 3320   unsigned long env_start ;
 3321   unsigned long env_end ;
 3322   unsigned long saved_auxv[44] ;
 3323   struct mm_rss_stat rss_stat ;
 3324   struct linux_binfmt *binfmt ;
 3325   cpumask_var_t cpu_vm_mask_var ;
 3326   mm_context_t context ;
 3327   unsigned int faultstamp ;
 3328   unsigned int token_priority ;
 3329   unsigned int last_interval ;
 3330   atomic_t oom_disable_count ;
 3331   unsigned long flags ;
 3332   struct core_state *core_state ;
 3333   spinlock_t ioctx_lock ;
 3334   struct hlist_head ioctx_list ;
 3335   struct task_struct *owner ;
 3336   struct file *exe_file ;
 3337   unsigned long num_exe_file_vmas ;
 3338   struct mmu_notifier_mm *mmu_notifier_mm ;
 3339   pgtable_t pmd_huge_pte ;
 3340   struct cpumask cpumask_allocation ;
 3341};
 3342#line 7 "include/asm-generic/cputime.h"
 3343typedef unsigned long cputime_t;
 3344#line 84 "include/linux/sem.h"
 3345struct task_struct;
 3346#line 122
 3347struct sem_undo_list;
 3348#line 122
 3349struct sem_undo_list;
 3350#line 122
 3351struct sem_undo_list;
 3352#line 135 "include/linux/sem.h"
 3353struct sem_undo_list {
 3354   atomic_t refcnt ;
 3355   spinlock_t lock ;
 3356   struct list_head list_proc ;
 3357};
 3358#line 141 "include/linux/sem.h"
 3359struct sysv_sem {
 3360   struct sem_undo_list *undo_list ;
 3361};
 3362#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 3363struct siginfo;
 3364#line 10
 3365struct siginfo;
 3366#line 10
 3367struct siginfo;
 3368#line 10
 3369struct siginfo;
 3370#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 3371struct __anonstruct_sigset_t_230 {
 3372   unsigned long sig[1] ;
 3373};
 3374#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 3375typedef struct __anonstruct_sigset_t_230 sigset_t;
 3376#line 17 "include/asm-generic/signal-defs.h"
 3377typedef void __signalfn_t(int  );
 3378#line 18 "include/asm-generic/signal-defs.h"
 3379typedef __signalfn_t *__sighandler_t;
 3380#line 20 "include/asm-generic/signal-defs.h"
 3381typedef void __restorefn_t(void);
 3382#line 21 "include/asm-generic/signal-defs.h"
 3383typedef __restorefn_t *__sigrestore_t;
 3384#line 167 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 3385struct sigaction {
 3386   __sighandler_t sa_handler ;
 3387   unsigned long sa_flags ;
 3388   __sigrestore_t sa_restorer ;
 3389   sigset_t sa_mask ;
 3390};
 3391#line 174 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 3392struct k_sigaction {
 3393   struct sigaction sa ;
 3394};
 3395#line 7 "include/asm-generic/siginfo.h"
 3396union sigval {
 3397   int sival_int ;
 3398   void *sival_ptr ;
 3399};
 3400#line 7 "include/asm-generic/siginfo.h"
 3401typedef union sigval sigval_t;
 3402#line 40 "include/asm-generic/siginfo.h"
 3403struct __anonstruct__kill_232 {
 3404   __kernel_pid_t _pid ;
 3405   __kernel_uid32_t _uid ;
 3406};
 3407#line 40 "include/asm-generic/siginfo.h"
 3408struct __anonstruct__timer_233 {
 3409   __kernel_timer_t _tid ;
 3410   int _overrun ;
 3411   char _pad[sizeof(__kernel_uid32_t ) - sizeof(int )] ;
 3412   sigval_t _sigval ;
 3413   int _sys_private ;
 3414};
 3415#line 40 "include/asm-generic/siginfo.h"
 3416struct __anonstruct__rt_234 {
 3417   __kernel_pid_t _pid ;
 3418   __kernel_uid32_t _uid ;
 3419   sigval_t _sigval ;
 3420};
 3421#line 40 "include/asm-generic/siginfo.h"
 3422struct __anonstruct__sigchld_235 {
 3423   __kernel_pid_t _pid ;
 3424   __kernel_uid32_t _uid ;
 3425   int _status ;
 3426   __kernel_clock_t _utime ;
 3427   __kernel_clock_t _stime ;
 3428};
 3429#line 40 "include/asm-generic/siginfo.h"
 3430struct __anonstruct__sigfault_236 {
 3431   void *_addr ;
 3432   short _addr_lsb ;
 3433};
 3434#line 40 "include/asm-generic/siginfo.h"
 3435struct __anonstruct__sigpoll_237 {
 3436   long _band ;
 3437   int _fd ;
 3438};
 3439#line 40 "include/asm-generic/siginfo.h"
 3440union __anonunion__sifields_231 {
 3441   int _pad[(128UL - 4UL * sizeof(int )) / sizeof(int )] ;
 3442   struct __anonstruct__kill_232 _kill ;
 3443   struct __anonstruct__timer_233 _timer ;
 3444   struct __anonstruct__rt_234 _rt ;
 3445   struct __anonstruct__sigchld_235 _sigchld ;
 3446   struct __anonstruct__sigfault_236 _sigfault ;
 3447   struct __anonstruct__sigpoll_237 _sigpoll ;
 3448};
 3449#line 40 "include/asm-generic/siginfo.h"
 3450struct siginfo {
 3451   int si_signo ;
 3452   int si_errno ;
 3453   int si_code ;
 3454   union __anonunion__sifields_231 _sifields ;
 3455};
 3456#line 40 "include/asm-generic/siginfo.h"
 3457typedef struct siginfo siginfo_t;
 3458#line 280
 3459struct siginfo;
 3460#line 10 "include/linux/signal.h"
 3461struct task_struct;
 3462#line 18
 3463struct user_struct;
 3464#line 18
 3465struct user_struct;
 3466#line 18
 3467struct user_struct;
 3468#line 28 "include/linux/signal.h"
 3469struct sigpending {
 3470   struct list_head list ;
 3471   sigset_t signal ;
 3472};
 3473#line 239
 3474struct timespec;
 3475#line 240
 3476struct pt_regs;
 3477#line 97 "include/linux/proportions.h"
 3478struct prop_local_single {
 3479   unsigned long events ;
 3480   unsigned long period ;
 3481   int shift ;
 3482   spinlock_t lock ;
 3483};
 3484#line 10 "include/linux/seccomp.h"
 3485struct __anonstruct_seccomp_t_240 {
 3486   int mode ;
 3487};
 3488#line 10 "include/linux/seccomp.h"
 3489typedef struct __anonstruct_seccomp_t_240 seccomp_t;
 3490#line 82 "include/linux/plist.h"
 3491struct plist_head {
 3492   struct list_head node_list ;
 3493   raw_spinlock_t *rawlock ;
 3494   spinlock_t *spinlock ;
 3495};
 3496#line 90 "include/linux/plist.h"
 3497struct plist_node {
 3498   int prio ;
 3499   struct list_head prio_list ;
 3500   struct list_head node_list ;
 3501};
 3502#line 40 "include/linux/rtmutex.h"
 3503struct rt_mutex_waiter;
 3504#line 40
 3505struct rt_mutex_waiter;
 3506#line 40
 3507struct rt_mutex_waiter;
 3508#line 40
 3509struct rt_mutex_waiter;
 3510#line 42 "include/linux/resource.h"
 3511struct rlimit {
 3512   unsigned long rlim_cur ;
 3513   unsigned long rlim_max ;
 3514};
 3515#line 81
 3516struct task_struct;
 3517#line 11 "include/linux/task_io_accounting.h"
 3518struct task_io_accounting {
 3519   u64 rchar ;
 3520   u64 wchar ;
 3521   u64 syscr ;
 3522   u64 syscw ;
 3523   u64 read_bytes ;
 3524   u64 write_bytes ;
 3525   u64 cancelled_write_bytes ;
 3526};
 3527#line 18 "include/linux/latencytop.h"
 3528struct latency_record {
 3529   unsigned long backtrace[12] ;
 3530   unsigned int count ;
 3531   unsigned long time ;
 3532   unsigned long max ;
 3533};
 3534#line 26
 3535struct task_struct;
 3536#line 29 "include/linux/key.h"
 3537typedef int32_t key_serial_t;
 3538#line 32 "include/linux/key.h"
 3539typedef uint32_t key_perm_t;
 3540#line 34
 3541struct key;
 3542#line 34
 3543struct key;
 3544#line 34
 3545struct key;
 3546#line 34
 3547struct key;
 3548#line 74
 3549struct seq_file;
 3550#line 75
 3551struct user_struct;
 3552#line 76
 3553struct signal_struct;
 3554#line 77
 3555struct cred;
 3556#line 79
 3557struct key_type;
 3558#line 79
 3559struct key_type;
 3560#line 79
 3561struct key_type;
 3562#line 79
 3563struct key_type;
 3564#line 81
 3565struct keyring_list;
 3566#line 81
 3567struct keyring_list;
 3568#line 81
 3569struct keyring_list;
 3570#line 81
 3571struct keyring_list;
 3572#line 124
 3573struct key_user;
 3574#line 124
 3575struct key_user;
 3576#line 124
 3577struct key_user;
 3578#line 124 "include/linux/key.h"
 3579union __anonunion____missing_field_name_241 {
 3580   time_t expiry ;
 3581   time_t revoked_at ;
 3582};
 3583#line 124 "include/linux/key.h"
 3584union __anonunion_type_data_242 {
 3585   struct list_head link ;
 3586   unsigned long x[2] ;
 3587   void *p[2] ;
 3588   int reject_error ;
 3589};
 3590#line 124 "include/linux/key.h"
 3591union __anonunion_payload_243 {
 3592   unsigned long value ;
 3593   void *rcudata ;
 3594   void *data ;
 3595   struct keyring_list *subscriptions ;
 3596};
 3597#line 124 "include/linux/key.h"
 3598struct key {
 3599   atomic_t usage ;
 3600   key_serial_t serial ;
 3601   struct rb_node serial_node ;
 3602   struct key_type *type ;
 3603   struct rw_semaphore sem ;
 3604   struct key_user *user ;
 3605   void *security ;
 3606   union __anonunion____missing_field_name_241 __annonCompField39 ;
 3607   uid_t uid ;
 3608   gid_t gid ;
 3609   key_perm_t perm ;
 3610   unsigned short quotalen ;
 3611   unsigned short datalen ;
 3612   unsigned long flags ;
 3613   char *description ;
 3614   union __anonunion_type_data_242 type_data ;
 3615   union __anonunion_payload_243 payload ;
 3616};
 3617#line 18 "include/linux/selinux.h"
 3618struct audit_context;
 3619#line 18
 3620struct audit_context;
 3621#line 18
 3622struct audit_context;
 3623#line 18
 3624struct audit_context;
 3625#line 21 "include/linux/cred.h"
 3626struct user_struct;
 3627#line 22
 3628struct cred;
 3629#line 23
 3630struct inode;
 3631#line 31 "include/linux/cred.h"
 3632struct group_info {
 3633   atomic_t usage ;
 3634   int ngroups ;
 3635   int nblocks ;
 3636   gid_t small_block[32] ;
 3637   gid_t *blocks[0] ;
 3638};
 3639#line 83 "include/linux/cred.h"
 3640struct thread_group_cred {
 3641   atomic_t usage ;
 3642   pid_t tgid ;
 3643   spinlock_t lock ;
 3644   struct key *session_keyring ;
 3645   struct key *process_keyring ;
 3646   struct rcu_head rcu ;
 3647};
 3648#line 116 "include/linux/cred.h"
 3649struct cred {
 3650   atomic_t usage ;
 3651   atomic_t subscribers ;
 3652   void *put_addr ;
 3653   unsigned int magic ;
 3654   uid_t uid ;
 3655   gid_t gid ;
 3656   uid_t suid ;
 3657   gid_t sgid ;
 3658   uid_t euid ;
 3659   gid_t egid ;
 3660   uid_t fsuid ;
 3661   gid_t fsgid ;
 3662   unsigned int securebits ;
 3663   kernel_cap_t cap_inheritable ;
 3664   kernel_cap_t cap_permitted ;
 3665   kernel_cap_t cap_effective ;
 3666   kernel_cap_t cap_bset ;
 3667   unsigned char jit_keyring ;
 3668   struct key *thread_keyring ;
 3669   struct key *request_key_auth ;
 3670   struct thread_group_cred *tgcred ;
 3671   void *security ;
 3672   struct user_struct *user ;
 3673   struct user_namespace *user_ns ;
 3674   struct group_info *group_info ;
 3675   struct rcu_head rcu ;
 3676};
 3677#line 97 "include/linux/sched.h"
 3678struct futex_pi_state;
 3679#line 97
 3680struct futex_pi_state;
 3681#line 97
 3682struct futex_pi_state;
 3683#line 97
 3684struct futex_pi_state;
 3685#line 98
 3686struct robust_list_head;
 3687#line 98
 3688struct robust_list_head;
 3689#line 98
 3690struct robust_list_head;
 3691#line 98
 3692struct robust_list_head;
 3693#line 99
 3694struct bio_list;
 3695#line 99
 3696struct bio_list;
 3697#line 99
 3698struct bio_list;
 3699#line 99
 3700struct bio_list;
 3701#line 100
 3702struct fs_struct;
 3703#line 100
 3704struct fs_struct;
 3705#line 100
 3706struct fs_struct;
 3707#line 100
 3708struct fs_struct;
 3709#line 101
 3710struct perf_event_context;
 3711#line 101
 3712struct perf_event_context;
 3713#line 101
 3714struct perf_event_context;
 3715#line 101
 3716struct perf_event_context;
 3717#line 102
 3718struct blk_plug;
 3719#line 102
 3720struct blk_plug;
 3721#line 102
 3722struct blk_plug;
 3723#line 102
 3724struct blk_plug;
 3725#line 150
 3726struct seq_file;
 3727#line 151
 3728struct cfs_rq;
 3729#line 151
 3730struct cfs_rq;
 3731#line 151
 3732struct cfs_rq;
 3733#line 151
 3734struct cfs_rq;
 3735#line 259
 3736struct task_struct;
 3737#line 364
 3738struct nsproxy;
 3739#line 365
 3740struct user_namespace;
 3741#line 58 "include/linux/aio_abi.h"
 3742struct io_event {
 3743   __u64 data ;
 3744   __u64 obj ;
 3745   __s64 res ;
 3746   __s64 res2 ;
 3747};
 3748#line 16 "include/linux/uio.h"
 3749struct iovec {
 3750   void *iov_base ;
 3751   __kernel_size_t iov_len ;
 3752};
 3753#line 15 "include/linux/aio.h"
 3754struct kioctx;
 3755#line 15
 3756struct kioctx;
 3757#line 15
 3758struct kioctx;
 3759#line 15
 3760struct kioctx;
 3761#line 87 "include/linux/aio.h"
 3762union __anonunion_ki_obj_245 {
 3763   void *user ;
 3764   struct task_struct *tsk ;
 3765};
 3766#line 87
 3767struct eventfd_ctx;
 3768#line 87
 3769struct eventfd_ctx;
 3770#line 87
 3771struct eventfd_ctx;
 3772#line 87 "include/linux/aio.h"
 3773struct kiocb {
 3774   struct list_head ki_run_list ;
 3775   unsigned long ki_flags ;
 3776   int ki_users ;
 3777   unsigned int ki_key ;
 3778   struct file *ki_filp ;
 3779   struct kioctx *ki_ctx ;
 3780   int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
 3781   ssize_t (*ki_retry)(struct kiocb * ) ;
 3782   void (*ki_dtor)(struct kiocb * ) ;
 3783   union __anonunion_ki_obj_245 ki_obj ;
 3784   __u64 ki_user_data ;
 3785   loff_t ki_pos ;
 3786   void *private ;
 3787   unsigned short ki_opcode ;
 3788   size_t ki_nbytes ;
 3789   char *ki_buf ;
 3790   size_t ki_left ;
 3791   struct iovec ki_inline_vec ;
 3792   struct iovec *ki_iovec ;
 3793   unsigned long ki_nr_segs ;
 3794   unsigned long ki_cur_seg ;
 3795   struct list_head ki_list ;
 3796   struct eventfd_ctx *ki_eventfd ;
 3797};
 3798#line 165 "include/linux/aio.h"
 3799struct aio_ring_info {
 3800   unsigned long mmap_base ;
 3801   unsigned long mmap_size ;
 3802   struct page **ring_pages ;
 3803   spinlock_t ring_lock ;
 3804   long nr_pages ;
 3805   unsigned int nr ;
 3806   unsigned int tail ;
 3807   struct page *internal_pages[8] ;
 3808};
 3809#line 178 "include/linux/aio.h"
 3810struct kioctx {
 3811   atomic_t users ;
 3812   int dead ;
 3813   struct mm_struct *mm ;
 3814   unsigned long user_id ;
 3815   struct hlist_node list ;
 3816   wait_queue_head_t wait ;
 3817   spinlock_t ctx_lock ;
 3818   int reqs_active ;
 3819   struct list_head active_reqs ;
 3820   struct list_head run_list ;
 3821   unsigned int max_reqs ;
 3822   struct aio_ring_info ring_info ;
 3823   struct delayed_work wq ;
 3824   struct rcu_head rcu_head ;
 3825};
 3826#line 213
 3827struct mm_struct;
 3828#line 441 "include/linux/sched.h"
 3829struct sighand_struct {
 3830   atomic_t count ;
 3831   struct k_sigaction action[64] ;
 3832   spinlock_t siglock ;
 3833   wait_queue_head_t signalfd_wqh ;
 3834};
 3835#line 448 "include/linux/sched.h"
 3836struct pacct_struct {
 3837   int ac_flag ;
 3838   long ac_exitcode ;
 3839   unsigned long ac_mem ;
 3840   cputime_t ac_utime ;
 3841   cputime_t ac_stime ;
 3842   unsigned long ac_minflt ;
 3843   unsigned long ac_majflt ;
 3844};
 3845#line 456 "include/linux/sched.h"
 3846struct cpu_itimer {
 3847   cputime_t expires ;
 3848   cputime_t incr ;
 3849   u32 error ;
 3850   u32 incr_error ;
 3851};
 3852#line 474 "include/linux/sched.h"
 3853struct task_cputime {
 3854   cputime_t utime ;
 3855   cputime_t stime ;
 3856   unsigned long long sum_exec_runtime ;
 3857};
 3858#line 510 "include/linux/sched.h"
 3859struct thread_group_cputimer {
 3860   struct task_cputime cputime ;
 3861   int running ;
 3862   spinlock_t lock ;
 3863};
 3864#line 517
 3865struct autogroup;
 3866#line 517
 3867struct autogroup;
 3868#line 517
 3869struct autogroup;
 3870#line 517
 3871struct autogroup;
 3872#line 526
 3873struct taskstats;
 3874#line 526
 3875struct taskstats;
 3876#line 526
 3877struct taskstats;
 3878#line 526
 3879struct tty_audit_buf;
 3880#line 526
 3881struct tty_audit_buf;
 3882#line 526
 3883struct tty_audit_buf;
 3884#line 526 "include/linux/sched.h"
 3885struct signal_struct {
 3886   atomic_t sigcnt ;
 3887   atomic_t live ;
 3888   int nr_threads ;
 3889   wait_queue_head_t wait_chldexit ;
 3890   struct task_struct *curr_target ;
 3891   struct sigpending shared_pending ;
 3892   int group_exit_code ;
 3893   int notify_count ;
 3894   struct task_struct *group_exit_task ;
 3895   int group_stop_count ;
 3896   unsigned int flags ;
 3897   struct list_head posix_timers ;
 3898   struct hrtimer real_timer ;
 3899   struct pid *leader_pid ;
 3900   ktime_t it_real_incr ;
 3901   struct cpu_itimer it[2] ;
 3902   struct thread_group_cputimer cputimer ;
 3903   struct task_cputime cputime_expires ;
 3904   struct list_head cpu_timers[3] ;
 3905   struct pid *tty_old_pgrp ;
 3906   int leader ;
 3907   struct tty_struct *tty ;
 3908   struct autogroup *autogroup ;
 3909   cputime_t utime ;
 3910   cputime_t stime ;
 3911   cputime_t cutime ;
 3912   cputime_t cstime ;
 3913   cputime_t gtime ;
 3914   cputime_t cgtime ;
 3915   cputime_t prev_utime ;
 3916   cputime_t prev_stime ;
 3917   unsigned long nvcsw ;
 3918   unsigned long nivcsw ;
 3919   unsigned long cnvcsw ;
 3920   unsigned long cnivcsw ;
 3921   unsigned long min_flt ;
 3922   unsigned long maj_flt ;
 3923   unsigned long cmin_flt ;
 3924   unsigned long cmaj_flt ;
 3925   unsigned long inblock ;
 3926   unsigned long oublock ;
 3927   unsigned long cinblock ;
 3928   unsigned long coublock ;
 3929   unsigned long maxrss ;
 3930   unsigned long cmaxrss ;
 3931   struct task_io_accounting ioac ;
 3932   unsigned long long sum_sched_runtime ;
 3933   struct rlimit rlim[16] ;
 3934   struct pacct_struct pacct ;
 3935   struct taskstats *stats ;
 3936   unsigned int audit_tty ;
 3937   struct tty_audit_buf *tty_audit_buf ;
 3938   struct rw_semaphore threadgroup_fork_lock ;
 3939   int oom_adj ;
 3940   int oom_score_adj ;
 3941   int oom_score_adj_min ;
 3942   struct mutex cred_guard_mutex ;
 3943};
 3944#line 687 "include/linux/sched.h"
 3945struct user_struct {
 3946   atomic_t __count ;
 3947   atomic_t processes ;
 3948   atomic_t files ;
 3949   atomic_t sigpending ;
 3950   atomic_t inotify_watches ;
 3951   atomic_t inotify_devs ;
 3952   atomic_t fanotify_listeners ;
 3953   atomic_long_t epoll_watches ;
 3954   unsigned long mq_bytes ;
 3955   unsigned long locked_shm ;
 3956   struct key *uid_keyring ;
 3957   struct key *session_keyring ;
 3958   struct hlist_node uidhash_node ;
 3959   uid_t uid ;
 3960   struct user_namespace *user_ns ;
 3961   atomic_long_t locked_vm ;
 3962};
 3963#line 731
 3964struct backing_dev_info;
 3965#line 732
 3966struct reclaim_state;
 3967#line 732
 3968struct reclaim_state;
 3969#line 732
 3970struct reclaim_state;
 3971#line 732
 3972struct reclaim_state;
 3973#line 735 "include/linux/sched.h"
 3974struct sched_info {
 3975   unsigned long pcount ;
 3976   unsigned long long run_delay ;
 3977   unsigned long long last_arrival ;
 3978   unsigned long long last_queued ;
 3979};
 3980#line 747 "include/linux/sched.h"
 3981struct task_delay_info {
 3982   spinlock_t lock ;
 3983   unsigned int flags ;
 3984   struct timespec blkio_start ;
 3985   struct timespec blkio_end ;
 3986   u64 blkio_delay ;
 3987   u64 swapin_delay ;
 3988   u32 blkio_count ;
 3989   u32 swapin_count ;
 3990   struct timespec freepages_start ;
 3991   struct timespec freepages_end ;
 3992   u64 freepages_delay ;
 3993   u32 freepages_count ;
 3994};
 3995#line 1050
 3996struct io_context;
 3997#line 1050
 3998struct io_context;
 3999#line 1050
 4000struct io_context;
 4001#line 1050
 4002struct io_context;
 4003#line 1059
 4004struct audit_context;
 4005#line 1060
 4006struct mempolicy;
 4007#line 1061
 4008struct pipe_inode_info;
 4009#line 1064
 4010struct rq;
 4011#line 1064
 4012struct rq;
 4013#line 1064
 4014struct rq;
 4015#line 1064
 4016struct rq;
 4017#line 1084 "include/linux/sched.h"
 4018struct sched_class {
 4019   struct sched_class  const  *next ;
 4020   void (*enqueue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
 4021   void (*dequeue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
 4022   void (*yield_task)(struct rq *rq ) ;
 4023   bool (*yield_to_task)(struct rq *rq , struct task_struct *p , bool preempt ) ;
 4024   void (*check_preempt_curr)(struct rq *rq , struct task_struct *p , int flags ) ;
 4025   struct task_struct *(*pick_next_task)(struct rq *rq ) ;
 4026   void (*put_prev_task)(struct rq *rq , struct task_struct *p ) ;
 4027   int (*select_task_rq)(struct task_struct *p , int sd_flag , int flags ) ;
 4028   void (*pre_schedule)(struct rq *this_rq , struct task_struct *task ) ;
 4029   void (*post_schedule)(struct rq *this_rq ) ;
 4030   void (*task_waking)(struct task_struct *task ) ;
 4031   void (*task_woken)(struct rq *this_rq , struct task_struct *task ) ;
 4032   void (*set_cpus_allowed)(struct task_struct *p , struct cpumask  const  *newmask ) ;
 4033   void (*rq_online)(struct rq *rq ) ;
 4034   void (*rq_offline)(struct rq *rq ) ;
 4035   void (*set_curr_task)(struct rq *rq ) ;
 4036   void (*task_tick)(struct rq *rq , struct task_struct *p , int queued ) ;
 4037   void (*task_fork)(struct task_struct *p ) ;
 4038   void (*switched_from)(struct rq *this_rq , struct task_struct *task ) ;
 4039   void (*switched_to)(struct rq *this_rq , struct task_struct *task ) ;
 4040   void (*prio_changed)(struct rq *this_rq , struct task_struct *task , int oldprio ) ;
 4041   unsigned int (*get_rr_interval)(struct rq *rq , struct task_struct *task ) ;
 4042   void (*task_move_group)(struct task_struct *p , int on_rq ) ;
 4043};
 4044#line 1129 "include/linux/sched.h"
 4045struct load_weight {
 4046   unsigned long weight ;
 4047   unsigned long inv_weight ;
 4048};
 4049#line 1134 "include/linux/sched.h"
 4050struct sched_statistics {
 4051   u64 wait_start ;
 4052   u64 wait_max ;
 4053   u64 wait_count ;
 4054   u64 wait_sum ;
 4055   u64 iowait_count ;
 4056   u64 iowait_sum ;
 4057   u64 sleep_start ;
 4058   u64 sleep_max ;
 4059   s64 sum_sleep_runtime ;
 4060   u64 block_start ;
 4061   u64 block_max ;
 4062   u64 exec_max ;
 4063   u64 slice_max ;
 4064   u64 nr_migrations_cold ;
 4065   u64 nr_failed_migrations_affine ;
 4066   u64 nr_failed_migrations_running ;
 4067   u64 nr_failed_migrations_hot ;
 4068   u64 nr_forced_migrations ;
 4069   u64 nr_wakeups ;
 4070   u64 nr_wakeups_sync ;
 4071   u64 nr_wakeups_migrate ;
 4072   u64 nr_wakeups_local ;
 4073   u64 nr_wakeups_remote ;
 4074   u64 nr_wakeups_affine ;
 4075   u64 nr_wakeups_affine_attempts ;
 4076   u64 nr_wakeups_passive ;
 4077   u64 nr_wakeups_idle ;
 4078};
 4079#line 1169 "include/linux/sched.h"
 4080struct sched_entity {
 4081   struct load_weight load ;
 4082   struct rb_node run_node ;
 4083   struct list_head group_node ;
 4084   unsigned int on_rq ;
 4085   u64 exec_start ;
 4086   u64 sum_exec_runtime ;
 4087   u64 vruntime ;
 4088   u64 prev_sum_exec_runtime ;
 4089   u64 nr_migrations ;
 4090   struct sched_statistics statistics ;
 4091   struct sched_entity *parent ;
 4092   struct cfs_rq *cfs_rq ;
 4093   struct cfs_rq *my_q ;
 4094};
 4095#line 1195
 4096struct rt_rq;
 4097#line 1195
 4098struct rt_rq;
 4099#line 1195
 4100struct rt_rq;
 4101#line 1195 "include/linux/sched.h"
 4102struct sched_rt_entity {
 4103   struct list_head run_list ;
 4104   unsigned long timeout ;
 4105   unsigned int time_slice ;
 4106   int nr_cpus_allowed ;
 4107   struct sched_rt_entity *back ;
 4108   struct sched_rt_entity *parent ;
 4109   struct rt_rq *rt_rq ;
 4110   struct rt_rq *my_q ;
 4111};
 4112#line 1220
 4113struct css_set;
 4114#line 1220
 4115struct css_set;
 4116#line 1220
 4117struct css_set;
 4118#line 1220
 4119struct compat_robust_list_head;
 4120#line 1220
 4121struct compat_robust_list_head;
 4122#line 1220
 4123struct compat_robust_list_head;
 4124#line 1220
 4125struct ftrace_ret_stack;
 4126#line 1220
 4127struct ftrace_ret_stack;
 4128#line 1220
 4129struct ftrace_ret_stack;
 4130#line 1220
 4131struct mem_cgroup;
 4132#line 1220
 4133struct mem_cgroup;
 4134#line 1220
 4135struct mem_cgroup;
 4136#line 1220 "include/linux/sched.h"
 4137struct memcg_batch_info {
 4138   int do_batch ;
 4139   struct mem_cgroup *memcg ;
 4140   unsigned long nr_pages ;
 4141   unsigned long memsw_nr_pages ;
 4142};
 4143#line 1220 "include/linux/sched.h"
 4144struct task_struct {
 4145   long volatile   state ;
 4146   void *stack ;
 4147   atomic_t usage ;
 4148   unsigned int flags ;
 4149   unsigned int ptrace ;
 4150   struct task_struct *wake_entry ;
 4151   int on_cpu ;
 4152   int on_rq ;
 4153   int prio ;
 4154   int static_prio ;
 4155   int normal_prio ;
 4156   unsigned int rt_priority ;
 4157   struct sched_class  const  *sched_class ;
 4158   struct sched_entity se ;
 4159   struct sched_rt_entity rt ;
 4160   struct hlist_head preempt_notifiers ;
 4161   unsigned char fpu_counter ;
 4162   unsigned int btrace_seq ;
 4163   unsigned int policy ;
 4164   cpumask_t cpus_allowed ;
 4165   struct sched_info sched_info ;
 4166   struct list_head tasks ;
 4167   struct plist_node pushable_tasks ;
 4168   struct mm_struct *mm ;
 4169   struct mm_struct *active_mm ;
 4170   unsigned int brk_randomized : 1 ;
 4171   int exit_state ;
 4172   int exit_code ;
 4173   int exit_signal ;
 4174   int pdeath_signal ;
 4175   unsigned int group_stop ;
 4176   unsigned int personality ;
 4177   unsigned int did_exec : 1 ;
 4178   unsigned int in_execve : 1 ;
 4179   unsigned int in_iowait : 1 ;
 4180   unsigned int sched_reset_on_fork : 1 ;
 4181   unsigned int sched_contributes_to_load : 1 ;
 4182   pid_t pid ;
 4183   pid_t tgid ;
 4184   unsigned long stack_canary ;
 4185   struct task_struct *real_parent ;
 4186   struct task_struct *parent ;
 4187   struct list_head children ;
 4188   struct list_head sibling ;
 4189   struct task_struct *group_leader ;
 4190   struct list_head ptraced ;
 4191   struct list_head ptrace_entry ;
 4192   struct pid_link pids[3] ;
 4193   struct list_head thread_group ;
 4194   struct completion *vfork_done ;
 4195   int *set_child_tid ;
 4196   int *clear_child_tid ;
 4197   cputime_t utime ;
 4198   cputime_t stime ;
 4199   cputime_t utimescaled ;
 4200   cputime_t stimescaled ;
 4201   cputime_t gtime ;
 4202   cputime_t prev_utime ;
 4203   cputime_t prev_stime ;
 4204   unsigned long nvcsw ;
 4205   unsigned long nivcsw ;
 4206   struct timespec start_time ;
 4207   struct timespec real_start_time ;
 4208   unsigned long min_flt ;
 4209   unsigned long maj_flt ;
 4210   struct task_cputime cputime_expires ;
 4211   struct list_head cpu_timers[3] ;
 4212   struct cred  const  *real_cred ;
 4213   struct cred  const  *cred ;
 4214   struct cred *replacement_session_keyring ;
 4215   char comm[16] ;
 4216   int link_count ;
 4217   int total_link_count ;
 4218   struct sysv_sem sysvsem ;
 4219   unsigned long last_switch_count ;
 4220   struct thread_struct thread ;
 4221   struct fs_struct *fs ;
 4222   struct files_struct *files ;
 4223   struct nsproxy *nsproxy ;
 4224   struct signal_struct *signal ;
 4225   struct sighand_struct *sighand ;
 4226   sigset_t blocked ;
 4227   sigset_t real_blocked ;
 4228   sigset_t saved_sigmask ;
 4229   struct sigpending pending ;
 4230   unsigned long sas_ss_sp ;
 4231   size_t sas_ss_size ;
 4232   int (*notifier)(void *priv ) ;
 4233   void *notifier_data ;
 4234   sigset_t *notifier_mask ;
 4235   struct audit_context *audit_context ;
 4236   uid_t loginuid ;
 4237   unsigned int sessionid ;
 4238   seccomp_t seccomp ;
 4239   u32 parent_exec_id ;
 4240   u32 self_exec_id ;
 4241   spinlock_t alloc_lock ;
 4242   struct irqaction *irqaction ;
 4243   raw_spinlock_t pi_lock ;
 4244   struct plist_head pi_waiters ;
 4245   struct rt_mutex_waiter *pi_blocked_on ;
 4246   struct mutex_waiter *blocked_on ;
 4247   unsigned int irq_events ;
 4248   unsigned long hardirq_enable_ip ;
 4249   unsigned long hardirq_disable_ip ;
 4250   unsigned int hardirq_enable_event ;
 4251   unsigned int hardirq_disable_event ;
 4252   int hardirqs_enabled ;
 4253   int hardirq_context ;
 4254   unsigned long softirq_disable_ip ;
 4255   unsigned long softirq_enable_ip ;
 4256   unsigned int softirq_disable_event ;
 4257   unsigned int softirq_enable_event ;
 4258   int softirqs_enabled ;
 4259   int softirq_context ;
 4260   u64 curr_chain_key ;
 4261   int lockdep_depth ;
 4262   unsigned int lockdep_recursion ;
 4263   struct held_lock held_locks[48UL] ;
 4264   gfp_t lockdep_reclaim_gfp ;
 4265   void *journal_info ;
 4266   struct bio_list *bio_list ;
 4267   struct blk_plug *plug ;
 4268   struct reclaim_state *reclaim_state ;
 4269   struct backing_dev_info *backing_dev_info ;
 4270   struct io_context *io_context ;
 4271   unsigned long ptrace_message ;
 4272   siginfo_t *last_siginfo ;
 4273   struct task_io_accounting ioac ;
 4274   u64 acct_rss_mem1 ;
 4275   u64 acct_vm_mem1 ;
 4276   cputime_t acct_timexpd ;
 4277   nodemask_t mems_allowed ;
 4278   int mems_allowed_change_disable ;
 4279   int cpuset_mem_spread_rotor ;
 4280   int cpuset_slab_spread_rotor ;
 4281   struct css_set *cgroups ;
 4282   struct list_head cg_list ;
 4283   struct robust_list_head *robust_list ;
 4284   struct compat_robust_list_head *compat_robust_list ;
 4285   struct list_head pi_state_list ;
 4286   struct futex_pi_state *pi_state_cache ;
 4287   struct perf_event_context *perf_event_ctxp[2] ;
 4288   struct mutex perf_event_mutex ;
 4289   struct list_head perf_event_list ;
 4290   struct mempolicy *mempolicy ;
 4291   short il_next ;
 4292   short pref_node_fork ;
 4293   atomic_t fs_excl ;
 4294   struct rcu_head rcu ;
 4295   struct pipe_inode_info *splice_pipe ;
 4296   struct task_delay_info *delays ;
 4297   int make_it_fail ;
 4298   struct prop_local_single dirties ;
 4299   int latency_record_count ;
 4300   struct latency_record latency_record[32] ;
 4301   unsigned long timer_slack_ns ;
 4302   unsigned long default_timer_slack_ns ;
 4303   struct list_head *scm_work_list ;
 4304   int curr_ret_stack ;
 4305   struct ftrace_ret_stack *ret_stack ;
 4306   unsigned long long ftrace_timestamp ;
 4307   atomic_t trace_overrun ;
 4308   atomic_t tracing_graph_pause ;
 4309   unsigned long trace ;
 4310   unsigned long trace_recursion ;
 4311   struct memcg_batch_info memcg_batch ;
 4312   atomic_t ptrace_bp_refcnt ;
 4313};
 4314#line 1634
 4315struct pid_namespace;
 4316#line 25 "include/linux/usb.h"
 4317struct usb_device;
 4318#line 25
 4319struct usb_device;
 4320#line 25
 4321struct usb_device;
 4322#line 25
 4323struct usb_device;
 4324#line 26
 4325struct usb_driver;
 4326#line 26
 4327struct usb_driver;
 4328#line 26
 4329struct usb_driver;
 4330#line 26
 4331struct usb_driver;
 4332#line 27
 4333struct wusb_dev;
 4334#line 27
 4335struct wusb_dev;
 4336#line 27
 4337struct wusb_dev;
 4338#line 27
 4339struct wusb_dev;
 4340#line 47
 4341struct ep_device;
 4342#line 47
 4343struct ep_device;
 4344#line 47
 4345struct ep_device;
 4346#line 47
 4347struct ep_device;
 4348#line 64 "include/linux/usb.h"
 4349struct usb_host_endpoint {
 4350   struct usb_endpoint_descriptor desc ;
 4351   struct usb_ss_ep_comp_descriptor ss_ep_comp ;
 4352   struct list_head urb_list ;
 4353   void *hcpriv ;
 4354   struct ep_device *ep_dev ;
 4355   unsigned char *extra ;
 4356   int extralen ;
 4357   int enabled ;
 4358};
 4359#line 77 "include/linux/usb.h"
 4360struct usb_host_interface {
 4361   struct usb_interface_descriptor desc ;
 4362   struct usb_host_endpoint *endpoint ;
 4363   char *string ;
 4364   unsigned char *extra ;
 4365   int extralen ;
 4366};
 4367#line 90
 4368enum usb_interface_condition {
 4369    USB_INTERFACE_UNBOUND = 0,
 4370    USB_INTERFACE_BINDING = 1,
 4371    USB_INTERFACE_BOUND = 2,
 4372    USB_INTERFACE_UNBINDING = 3
 4373} ;
 4374#line 159 "include/linux/usb.h"
 4375struct usb_interface {
 4376   struct usb_host_interface *altsetting ;
 4377   struct usb_host_interface *cur_altsetting ;
 4378   unsigned int num_altsetting ;
 4379   struct usb_interface_assoc_descriptor *intf_assoc ;
 4380   int minor ;
 4381   enum usb_interface_condition condition ;
 4382   unsigned int sysfs_files_created : 1 ;
 4383   unsigned int ep_devs_created : 1 ;
 4384   unsigned int unregistering : 1 ;
 4385   unsigned int needs_remote_wakeup : 1 ;
 4386   unsigned int needs_altsetting0 : 1 ;
 4387   unsigned int needs_binding : 1 ;
 4388   unsigned int reset_running : 1 ;
 4389   unsigned int resetting_device : 1 ;
 4390   struct device dev ;
 4391   struct device *usb_dev ;
 4392   atomic_t pm_usage_cnt ;
 4393   struct work_struct reset_ws ;
 4394};
 4395#line 222 "include/linux/usb.h"
 4396struct usb_interface_cache {
 4397   unsigned int num_altsetting ;
 4398   struct kref ref ;
 4399   struct usb_host_interface altsetting[0] ;
 4400};
 4401#line 274 "include/linux/usb.h"
 4402struct usb_host_config {
 4403   struct usb_config_descriptor desc ;
 4404   char *string ;
 4405   struct usb_interface_assoc_descriptor *intf_assoc[16] ;
 4406   struct usb_interface *interface[32] ;
 4407   struct usb_interface_cache *intf_cache[32] ;
 4408   unsigned char *extra ;
 4409   int extralen ;
 4410};
 4411#line 305 "include/linux/usb.h"
 4412struct usb_devmap {
 4413   unsigned long devicemap[128UL / (8UL * sizeof(unsigned long ))] ;
 4414};
 4415#line 312
 4416struct mon_bus;
 4417#line 312
 4418struct mon_bus;
 4419#line 312
 4420struct mon_bus;
 4421#line 312 "include/linux/usb.h"
 4422struct usb_bus {
 4423   struct device *controller ;
 4424   int busnum ;
 4425   char const   *bus_name ;
 4426   u8 uses_dma ;
 4427   u8 uses_pio_for_control ;
 4428   u8 otg_port ;
 4429   unsigned int is_b_host : 1 ;
 4430   unsigned int b_hnp_enable : 1 ;
 4431   unsigned int sg_tablesize ;
 4432   int devnum_next ;
 4433   struct usb_devmap devmap ;
 4434   struct usb_device *root_hub ;
 4435   struct usb_bus *hs_companion ;
 4436   struct list_head bus_list ;
 4437   int bandwidth_allocated ;
 4438   int bandwidth_int_reqs ;
 4439   int bandwidth_isoc_reqs ;
 4440   struct dentry *usbfs_dentry ;
 4441   struct mon_bus *mon_bus ;
 4442   int monitored ;
 4443};
 4444#line 367
 4445struct usb_tt;
 4446#line 367
 4447struct usb_tt;
 4448#line 367
 4449struct usb_tt;
 4450#line 367
 4451struct usb_tt;
 4452#line 426 "include/linux/usb.h"
 4453struct usb_device {
 4454   int devnum ;
 4455   char devpath[16] ;
 4456   u32 route ;
 4457   enum usb_device_state state ;
 4458   enum usb_device_speed speed ;
 4459   struct usb_tt *tt ;
 4460   int ttport ;
 4461   unsigned int toggle[2] ;
 4462   struct usb_device *parent ;
 4463   struct usb_bus *bus ;
 4464   struct usb_host_endpoint ep0 ;
 4465   struct device dev ;
 4466   struct usb_device_descriptor descriptor ;
 4467   struct usb_host_config *config ;
 4468   struct usb_host_config *actconfig ;
 4469   struct usb_host_endpoint *ep_in[16] ;
 4470   struct usb_host_endpoint *ep_out[16] ;
 4471   char **rawdescriptors ;
 4472   unsigned short bus_mA ;
 4473   u8 portnum ;
 4474   u8 level ;
 4475   unsigned int can_submit : 1 ;
 4476   unsigned int persist_enabled : 1 ;
 4477   unsigned int have_langid : 1 ;
 4478   unsigned int authorized : 1 ;
 4479   unsigned int authenticated : 1 ;
 4480   unsigned int wusb : 1 ;
 4481   int string_langid ;
 4482   char *product ;
 4483   char *manufacturer ;
 4484   char *serial ;
 4485   struct list_head filelist ;
 4486   struct device *usb_classdev ;
 4487   struct dentry *usbfs_dentry ;
 4488   int maxchild ;
 4489   struct usb_device *children[31] ;
 4490   u32 quirks ;
 4491   atomic_t urbnum ;
 4492   unsigned long active_duration ;
 4493   unsigned long connect_time ;
 4494   unsigned int do_remote_wakeup : 1 ;
 4495   unsigned int reset_resume : 1 ;
 4496   struct wusb_dev *wusb_dev ;
 4497   int slot_id ;
 4498};
 4499#line 763 "include/linux/usb.h"
 4500struct usb_dynids {
 4501   spinlock_t lock ;
 4502   struct list_head list ;
 4503};
 4504#line 782 "include/linux/usb.h"
 4505struct usbdrv_wrap {
 4506   struct device_driver driver ;
 4507   int for_devices ;
 4508};
 4509#line 843 "include/linux/usb.h"
 4510struct usb_driver {
 4511   char const   *name ;
 4512   int (*probe)(struct usb_interface *intf , struct usb_device_id  const  *id ) ;
 4513   void (*disconnect)(struct usb_interface *intf ) ;
 4514   int (*unlocked_ioctl)(struct usb_interface *intf , unsigned int code , void *buf ) ;
 4515   int (*suspend)(struct usb_interface *intf , pm_message_t message ) ;
 4516   int (*resume)(struct usb_interface *intf ) ;
 4517   int (*reset_resume)(struct usb_interface *intf ) ;
 4518   int (*pre_reset)(struct usb_interface *intf ) ;
 4519   int (*post_reset)(struct usb_interface *intf ) ;
 4520   struct usb_device_id  const  *id_table ;
 4521   struct usb_dynids dynids ;
 4522   struct usbdrv_wrap drvwrap ;
 4523   unsigned int no_dynamic_id : 1 ;
 4524   unsigned int supports_autosuspend : 1 ;
 4525   unsigned int soft_unbind : 1 ;
 4526};
 4527#line 983 "include/linux/usb.h"
 4528struct usb_iso_packet_descriptor {
 4529   unsigned int offset ;
 4530   unsigned int length ;
 4531   unsigned int actual_length ;
 4532   int status ;
 4533};
 4534#line 990
 4535struct urb;
 4536#line 990
 4537struct urb;
 4538#line 990
 4539struct urb;
 4540#line 990
 4541struct urb;
 4542#line 992 "include/linux/usb.h"
 4543struct usb_anchor {
 4544   struct list_head urb_list ;
 4545   wait_queue_head_t wait ;
 4546   spinlock_t lock ;
 4547   unsigned int poisoned : 1 ;
 4548};
 4549#line 1183
 4550struct scatterlist;
 4551#line 1183
 4552struct scatterlist;
 4553#line 1183
 4554struct scatterlist;
 4555#line 1183 "include/linux/usb.h"
 4556struct urb {
 4557   struct kref kref ;
 4558   void *hcpriv ;
 4559   atomic_t use_count ;
 4560   atomic_t reject ;
 4561   int unlinked ;
 4562   struct list_head urb_list ;
 4563   struct list_head anchor_list ;
 4564   struct usb_anchor *anchor ;
 4565   struct usb_device *dev ;
 4566   struct usb_host_endpoint *ep ;
 4567   unsigned int pipe ;
 4568   unsigned int stream_id ;
 4569   int status ;
 4570   unsigned int transfer_flags ;
 4571   void *transfer_buffer ;
 4572   dma_addr_t transfer_dma ;
 4573   struct scatterlist *sg ;
 4574   int num_sgs ;
 4575   u32 transfer_buffer_length ;
 4576   u32 actual_length ;
 4577   unsigned char *setup_packet ;
 4578   dma_addr_t setup_dma ;
 4579   int start_frame ;
 4580   int number_of_packets ;
 4581   int interval ;
 4582   int error_count ;
 4583   void *context ;
 4584   void (*complete)(struct urb * ) ;
 4585   struct usb_iso_packet_descriptor iso_frame_desc[0] ;
 4586};
 4587#line 1388
 4588struct scatterlist;
 4589#line 35 "include/linux/serial.h"
 4590struct serial_struct {
 4591   int type ;
 4592   int line ;
 4593   unsigned int port ;
 4594   int irq ;
 4595   int flags ;
 4596   int xmit_fifo_size ;
 4597   int custom_divisor ;
 4598   int baud_base ;
 4599   unsigned short close_delay ;
 4600   char io_type ;
 4601   char reserved_char[1] ;
 4602   int hub6 ;
 4603   unsigned short closing_wait ;
 4604   unsigned short closing_wait2 ;
 4605   unsigned char *iomem_base ;
 4606   unsigned short iomem_reg_shift ;
 4607   unsigned int port_high ;
 4608   unsigned long iomap_base ;
 4609};
 4610#line 193 "include/linux/serial.h"
 4611struct serial_icounter_struct {
 4612   int cts ;
 4613   int dsr ;
 4614   int rng ;
 4615   int dcd ;
 4616   int rx ;
 4617   int tx ;
 4618   int frame ;
 4619   int overrun ;
 4620   int parity ;
 4621   int brk ;
 4622   int buf_overrun ;
 4623   int reserved[9] ;
 4624};
 4625#line 6 "include/asm-generic/scatterlist.h"
 4626struct scatterlist {
 4627   unsigned long sg_magic ;
 4628   unsigned long page_link ;
 4629   unsigned int offset ;
 4630   unsigned int length ;
 4631   dma_addr_t dma_address ;
 4632   unsigned int dma_length ;
 4633};
 4634#line 19 "include/linux/mm.h"
 4635struct mempolicy;
 4636#line 20
 4637struct anon_vma;
 4638#line 21
 4639struct file_ra_state;
 4640#line 22
 4641struct user_struct;
 4642#line 23
 4643struct writeback_control;
 4644#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_64.h"
 4645struct mm_struct;
 4646#line 656 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable.h"
 4647struct vm_area_struct;
 4648#line 185 "include/linux/mm.h"
 4649struct vm_fault {
 4650   unsigned int flags ;
 4651   unsigned long pgoff ;
 4652   void *virtual_address ;
 4653   struct page *page ;
 4654};
 4655#line 202 "include/linux/mm.h"
 4656struct vm_operations_struct {
 4657   void (*open)(struct vm_area_struct *area ) ;
 4658   void (*close)(struct vm_area_struct *area ) ;
 4659   int (*fault)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
 4660   int (*page_mkwrite)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
 4661   int (*access)(struct vm_area_struct *vma , unsigned long addr , void *buf , int len ,
 4662                 int write ) ;
 4663   int (*set_policy)(struct vm_area_struct *vma , struct mempolicy *new ) ;
 4664   struct mempolicy *(*get_policy)(struct vm_area_struct *vma , unsigned long addr ) ;
 4665   int (*migrate)(struct vm_area_struct *vma , nodemask_t const   *from , nodemask_t const   *to ,
 4666                  unsigned long flags ) ;
 4667};
 4668#line 244
 4669struct inode;
 4670#line 197 "include/linux/page-flags.h"
 4671struct page;
 4672#line 58 "include/linux/kfifo.h"
 4673struct __kfifo {
 4674   unsigned int in ;
 4675   unsigned int out ;
 4676   unsigned int mask ;
 4677   unsigned int esize ;
 4678   void *data ;
 4679};
 4680#line 96 "include/linux/kfifo.h"
 4681union __anonunion____missing_field_name_247 {
 4682   struct __kfifo kfifo ;
 4683   unsigned char *type ;
 4684   char (*rectype)[0] ;
 4685   void *ptr ;
 4686   void const   *ptr_const ;
 4687};
 4688#line 96 "include/linux/kfifo.h"
 4689struct kfifo {
 4690   union __anonunion____missing_field_name_247 __annonCompField41 ;
 4691   unsigned char buf[0] ;
 4692};
 4693#line 31 "include/linux/usb/serial.h"
 4694enum port_dev_state {
 4695    PORT_UNREGISTERED = 0,
 4696    PORT_REGISTERING = 1,
 4697    PORT_REGISTERED = 2,
 4698    PORT_UNREGISTERING = 3
 4699} ;
 4700#line 82
 4701struct usb_serial;
 4702#line 82
 4703struct usb_serial;
 4704#line 82
 4705struct usb_serial;
 4706#line 82 "include/linux/usb/serial.h"
 4707struct usb_serial_port {
 4708   struct usb_serial *serial ;
 4709   struct tty_port port ;
 4710   spinlock_t lock ;
 4711   unsigned char number ;
 4712   unsigned char *interrupt_in_buffer ;
 4713   struct urb *interrupt_in_urb ;
 4714   __u8 interrupt_in_endpointAddress ;
 4715   unsigned char *interrupt_out_buffer ;
 4716   int interrupt_out_size ;
 4717   struct urb *interrupt_out_urb ;
 4718   __u8 interrupt_out_endpointAddress ;
 4719   unsigned char *bulk_in_buffer ;
 4720   int bulk_in_size ;
 4721   struct urb *read_urb ;
 4722   __u8 bulk_in_endpointAddress ;
 4723   unsigned char *bulk_out_buffer ;
 4724   int bulk_out_size ;
 4725   struct urb *write_urb ;
 4726   struct kfifo write_fifo ;
 4727   int write_urb_busy ;
 4728   unsigned char *bulk_out_buffers[2] ;
 4729   struct urb *write_urbs[2] ;
 4730   unsigned long write_urbs_free ;
 4731   __u8 bulk_out_endpointAddress ;
 4732   int tx_bytes ;
 4733   unsigned long flags ;
 4734   wait_queue_head_t write_wait ;
 4735   struct work_struct work ;
 4736   char throttled ;
 4737   char throttle_req ;
 4738   unsigned long sysrq ;
 4739   struct device dev ;
 4740   enum port_dev_state dev_state ;
 4741};
 4742#line 155
 4743struct usb_serial_driver;
 4744#line 155
 4745struct usb_serial_driver;
 4746#line 155
 4747struct usb_serial_driver;
 4748#line 155 "include/linux/usb/serial.h"
 4749struct usb_serial {
 4750   struct usb_device *dev ;
 4751   struct usb_serial_driver *type ;
 4752   struct usb_interface *interface ;
 4753   unsigned char disconnected : 1 ;
 4754   unsigned char suspending : 1 ;
 4755   unsigned char attached : 1 ;
 4756   unsigned char minor ;
 4757   unsigned char num_ports ;
 4758   unsigned char num_port_pointers ;
 4759   char num_interrupt_in ;
 4760   char num_interrupt_out ;
 4761   char num_bulk_in ;
 4762   char num_bulk_out ;
 4763   struct usb_serial_port *port[8] ;
 4764   struct kref kref ;
 4765   struct mutex disc_mutex ;
 4766   void *private ;
 4767};
 4768#line 230 "include/linux/usb/serial.h"
 4769struct usb_serial_driver {
 4770   char const   *description ;
 4771   struct usb_device_id  const  *id_table ;
 4772   char num_ports ;
 4773   struct list_head driver_list ;
 4774   struct device_driver driver ;
 4775   struct usb_driver *usb_driver ;
 4776   struct usb_dynids dynids ;
 4777   size_t bulk_in_size ;
 4778   size_t bulk_out_size ;
 4779   int (*probe)(struct usb_serial *serial , struct usb_device_id  const  *id ) ;
 4780   int (*attach)(struct usb_serial *serial ) ;
 4781   int (*calc_num_ports)(struct usb_serial *serial ) ;
 4782   void (*disconnect)(struct usb_serial *serial ) ;
 4783   void (*release)(struct usb_serial *serial ) ;
 4784   int (*port_probe)(struct usb_serial_port *port ) ;
 4785   int (*port_remove)(struct usb_serial_port *port ) ;
 4786   int (*suspend)(struct usb_serial *serial , pm_message_t message ) ;
 4787   int (*resume)(struct usb_serial *serial ) ;
 4788   int (*open)(struct tty_struct *tty , struct usb_serial_port *port ) ;
 4789   void (*close)(struct usb_serial_port *port ) ;
 4790   int (*write)(struct tty_struct *tty , struct usb_serial_port *port , unsigned char const   *buf ,
 4791                int count ) ;
 4792   int (*write_room)(struct tty_struct *tty ) ;
 4793   int (*ioctl)(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
 4794   void (*set_termios)(struct tty_struct *tty , struct usb_serial_port *port , struct ktermios *old ) ;
 4795   void (*break_ctl)(struct tty_struct *tty , int break_state ) ;
 4796   int (*chars_in_buffer)(struct tty_struct *tty ) ;
 4797   void (*throttle)(struct tty_struct *tty ) ;
 4798   void (*unthrottle)(struct tty_struct *tty ) ;
 4799   int (*tiocmget)(struct tty_struct *tty ) ;
 4800   int (*tiocmset)(struct tty_struct *tty , unsigned int set , unsigned int clear ) ;
 4801   int (*get_icount)(struct tty_struct *tty , struct serial_icounter_struct *icount ) ;
 4802   void (*dtr_rts)(struct usb_serial_port *port , int on ) ;
 4803   int (*carrier_raised)(struct usb_serial_port *port ) ;
 4804   void (*init_termios)(struct tty_struct *tty ) ;
 4805   void (*read_int_callback)(struct urb *urb ) ;
 4806   void (*write_int_callback)(struct urb *urb ) ;
 4807   void (*read_bulk_callback)(struct urb *urb ) ;
 4808   void (*write_bulk_callback)(struct urb *urb ) ;
 4809   void (*process_read_urb)(struct urb *urb ) ;
 4810   int (*prepare_write_buffer)(struct usb_serial_port *port , void *dest , size_t size ) ;
 4811};
 4812#line 12 "include/linux/firmware.h"
 4813struct firmware {
 4814   size_t size ;
 4815   u8 const   *data ;
 4816   struct page **pages ;
 4817};
 4818#line 18
 4819struct device;
 4820#line 17 "include/linux/ihex.h"
 4821struct ihex_binrec {
 4822   __be32 addr ;
 4823   __be16 len ;
 4824   uint8_t data[0] ;
 4825} __attribute__((__packed__)) ;
 4826#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4827struct whiteheat_simple {
 4828   __u8 port ;
 4829};
 4830#line 92 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4831struct whiteheat_port_settings {
 4832   __u8 port ;
 4833   __u32 baud ;
 4834   __u8 bits ;
 4835   __u8 stop ;
 4836   __u8 parity ;
 4837   __u8 sflow ;
 4838   __u8 xoff ;
 4839   __u8 xon ;
 4840   __u8 hflow ;
 4841   __u8 lloop ;
 4842} __attribute__((__packed__)) ;
 4843#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4844struct whiteheat_set_rdb {
 4845   __u8 port ;
 4846   __u8 state ;
 4847};
 4848#line 161 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4849struct whiteheat_purge {
 4850   __u8 port ;
 4851   __u8 what ;
 4852};
 4853#line 242 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4854struct whiteheat_dr_info {
 4855   __u8 mcr ;
 4856};
 4857#line 250 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4858struct whiteheat_hw_eeprom_info {
 4859   __u8 b0 ;
 4860   __u8 vendor_id_low ;
 4861   __u8 vendor_id_high ;
 4862   __u8 product_id_low ;
 4863   __u8 product_id_high ;
 4864   __u8 device_id_low ;
 4865   __u8 device_id_high ;
 4866   __u8 not_used_1 ;
 4867   __u8 serial_number_0 ;
 4868   __u8 serial_number_1 ;
 4869   __u8 serial_number_2 ;
 4870   __u8 serial_number_3 ;
 4871   __u8 not_used_2 ;
 4872   __u8 not_used_3 ;
 4873   __u8 checksum_low ;
 4874   __u8 checksum_high ;
 4875};
 4876#line 250 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
 4877struct whiteheat_hw_info {
 4878   __u8 hw_id ;
 4879   __u8 sw_major_rev ;
 4880   __u8 sw_minor_rev ;
 4881   struct whiteheat_hw_eeprom_info hw_eeprom_info ;
 4882};
 4883#line 211 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 4884struct whiteheat_command_private {
 4885   struct mutex mutex ;
 4886   __u8 port_running ;
 4887   __u8 command_finished ;
 4888   wait_queue_head_t wait_command ;
 4889   __u8 result_buffer[64] ;
 4890};
 4891#line 227 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 4892struct whiteheat_urb_wrap {
 4893   struct list_head list ;
 4894   struct urb *urb ;
 4895};
 4896#line 232 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 4897struct whiteheat_private {
 4898   spinlock_t lock ;
 4899   __u8 flags ;
 4900   __u8 mcr ;
 4901   struct list_head rx_urbs_free ;
 4902   struct list_head rx_urbs_submitted ;
 4903   struct list_head rx_urb_q ;
 4904   struct work_struct rx_work ;
 4905   struct usb_serial_port *port ;
 4906   struct list_head tx_urbs_free ;
 4907   struct list_head tx_urbs_submitted ;
 4908   struct mutex deathwarrant ;
 4909};
 4910#line 1 "<compiler builtins>"
 4911
 4912#line 7 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/swab.h"
 4913__inline static __u32 __arch_swab32(__u32 val )  __attribute__((__const__)) ;
 4914#line 7
 4915__inline static __u32 __arch_swab32(__u32 val )  __attribute__((__const__)) ;
 4916#line 7 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/swab.h"
 4917__inline static __u32 __arch_swab32(__u32 val ) 
 4918{ 
 4919
 4920  {
 4921#line 21
 4922  __asm__  ("bswapl %0": "=r" (val): "0" (val));
 4923#line 25
 4924  return (val);
 4925}
 4926}
 4927#line 46 "include/linux/swab.h"
 4928__inline static __u16 __fswab16(__u16 val )  __attribute__((__const__)) ;
 4929#line 46
 4930__inline static __u16 __fswab16(__u16 val )  __attribute__((__const__)) ;
 4931#line 46 "include/linux/swab.h"
 4932__inline static __u16 __fswab16(__u16 val ) 
 4933{ int __cil_tmp2 ;
 4934  int __cil_tmp3 ;
 4935  int __cil_tmp4 ;
 4936  int __cil_tmp5 ;
 4937  int __cil_tmp6 ;
 4938  int __cil_tmp7 ;
 4939  int __cil_tmp8 ;
 4940
 4941  {
 4942  {
 4943#line 51
 4944  __cil_tmp2 = (int )val;
 4945#line 51
 4946  __cil_tmp3 = __cil_tmp2 & 65280;
 4947#line 51
 4948  __cil_tmp4 = __cil_tmp3 >> 8;
 4949#line 51
 4950  __cil_tmp5 = (int )val;
 4951#line 51
 4952  __cil_tmp6 = __cil_tmp5 & 255;
 4953#line 51
 4954  __cil_tmp7 = __cil_tmp6 << 8;
 4955#line 51
 4956  __cil_tmp8 = __cil_tmp7 | __cil_tmp4;
 4957#line 51
 4958  return ((__u16 )__cil_tmp8);
 4959  }
 4960}
 4961}
 4962#line 55
 4963__inline static __u32 __fswab32(__u32 val )  __attribute__((__const__)) ;
 4964#line 55
 4965__inline static __u32 __fswab32(__u32 val )  __attribute__((__const__)) ;
 4966#line 55 "include/linux/swab.h"
 4967__inline static __u32 __fswab32(__u32 val ) 
 4968{ __u32 tmp ;
 4969
 4970  {
 4971  {
 4972#line 58
 4973  tmp = __arch_swab32(val);
 4974  }
 4975#line 58
 4976  return (tmp);
 4977}
 4978}
 4979#line 100 "include/linux/printk.h"
 4980extern int printk(char const   *fmt  , ...) ;
 4981#line 170 "include/linux/kernel.h"
 4982extern void might_fault(void) ;
 4983#line 88 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/percpu.h"
 4984extern void __bad_percpu_size(void) ;
 4985#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 4986extern struct task_struct *current_task  __attribute__((__section__(".data..percpu"))) ;
 4987#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 4988__inline static struct task_struct *( __attribute__((__always_inline__)) get_current)(void) 
 4989{ struct task_struct *pfo_ret__ ;
 4990  int __cil_tmp2 ;
 4991  int __cil_tmp3 ;
 4992  int __cil_tmp4 ;
 4993  int __cil_tmp5 ;
 4994
 4995  {
 4996  {
 4997#line 14
 4998  __cil_tmp2 = (int )8UL;
 4999#line 14
 5000  if (__cil_tmp2 == 1) {
 5001#line 14
 5002    goto case_1;
 5003  } else {
 5004    {
 5005#line 14
 5006    __cil_tmp3 = (int )8UL;
 5007#line 14
 5008    if (__cil_tmp3 == 2) {
 5009#line 14
 5010      goto case_2;
 5011    } else {
 5012      {
 5013#line 14
 5014      __cil_tmp4 = (int )8UL;
 5015#line 14
 5016      if (__cil_tmp4 == 4) {
 5017#line 14
 5018        goto case_4;
 5019      } else {
 5020        {
 5021#line 14
 5022        __cil_tmp5 = (int )8UL;
 5023#line 14
 5024        if (__cil_tmp5 == 8) {
 5025#line 14
 5026          goto case_8;
 5027        } else {
 5028#line 14
 5029          goto switch_default;
 5030#line 14
 5031          if (0) {
 5032            case_1: 
 5033#line 14
 5034/*            __asm__  ("mov"
 5035                      "b "
 5036                      "%%"
 5037                      "gs"
 5038                      ":"
 5039                      "%P"
 5040                      "1"
 5041                      ",%0": "=q" (pfo_ret__): "p" (& current_task));*/
 5042#line 14
 5043            goto switch_break;
 5044            case_2: 
 5045#line 14
 5046            __asm__  ("mov"
 5047                      "w "
 5048                      "%%"
 5049                      "gs"
 5050                      ":"
 5051                      "%P"
 5052                      "1"
 5053                      ",%0": "=r" (pfo_ret__): "p" (& current_task));
 5054#line 14
 5055            goto switch_break;
 5056            case_4: 
 5057#line 14
 5058/*            __asm__  ("mov"
 5059                      "l "
 5060                      "%%"
 5061                      "gs"
 5062                      ":"
 5063                      "%P"
 5064                      "1"
 5065                      ",%0": "=r" (pfo_ret__): "p" (& current_task));*/
 5066#line 14
 5067            goto switch_break;
 5068            case_8: 
 5069#line 14
 5070            __asm__  ("mov"
 5071                      "q "
 5072                      "%%"
 5073                      "gs"
 5074                      ":"
 5075                      "%P"
 5076                      "1"
 5077                      ",%0": "=r" (pfo_ret__): "p" (& current_task));
 5078#line 14
 5079            goto switch_break;
 5080            switch_default: 
 5081            {
 5082#line 14
 5083            __bad_percpu_size();
 5084            }
 5085          } else {
 5086            switch_break: ;
 5087          }
 5088        }
 5089        }
 5090      }
 5091      }
 5092    }
 5093    }
 5094  }
 5095  }
 5096#line 14
 5097  return (pfo_ret__);
 5098}
 5099}
 5100#line 34 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
 5101extern void *__memcpy(void *to , void const   *from , size_t len ) ;
 5102#line 55
 5103extern void *memset(void *s , int c , size_t n ) ;
 5104#line 24 "include/linux/list.h"
 5105__inline static void INIT_LIST_HEAD(struct list_head *list ) 
 5106{ 
 5107
 5108  {
 5109#line 26
 5110  list->next = list;
 5111#line 27
 5112  list->prev = list;
 5113#line 28
 5114  return;
 5115}
 5116}
 5117#line 47
 5118extern void __list_add(struct list_head *new , struct list_head *prev , struct list_head *next ) ;
 5119#line 60 "include/linux/list.h"
 5120__inline static void list_add(struct list_head *new , struct list_head *head ) 
 5121{ struct list_head *__cil_tmp3 ;
 5122
 5123  {
 5124  {
 5125#line 62
 5126  __cil_tmp3 = head->next;
 5127#line 62
 5128  __list_add(new, head, __cil_tmp3);
 5129  }
 5130#line 63
 5131  return;
 5132}
 5133}
 5134#line 74 "include/linux/list.h"
 5135__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
 5136{ struct list_head *__cil_tmp3 ;
 5137
 5138  {
 5139  {
 5140#line 76
 5141  __cil_tmp3 = head->prev;
 5142#line 76
 5143  __list_add(new, __cil_tmp3, head);
 5144  }
 5145#line 77
 5146  return;
 5147}
 5148}
 5149#line 111
 5150extern void __list_del_entry(struct list_head *entry ) ;
 5151#line 112
 5152extern void list_del(struct list_head *entry ) ;
 5153#line 153 "include/linux/list.h"
 5154__inline static void list_move(struct list_head *list , struct list_head *head ) 
 5155{ 
 5156
 5157  {
 5158  {
 5159#line 155
 5160  __list_del_entry(list);
 5161#line 156
 5162  list_add(list, head);
 5163  }
 5164#line 157
 5165  return;
 5166}
 5167}
 5168#line 186 "include/linux/list.h"
 5169__inline static int list_empty(struct list_head  const  *head ) 
 5170{ unsigned long __cil_tmp2 ;
 5171  struct list_head *__cil_tmp3 ;
 5172  unsigned long __cil_tmp4 ;
 5173
 5174  {
 5175  {
 5176#line 188
 5177  __cil_tmp2 = (unsigned long )head;
 5178#line 188
 5179  __cil_tmp3 = head->next;
 5180#line 188
 5181  __cil_tmp4 = (unsigned long )__cil_tmp3;
 5182#line 188
 5183  return (__cil_tmp4 == __cil_tmp2);
 5184  }
 5185}
 5186}
 5187#line 261 "include/linux/lockdep.h"
 5188extern void lockdep_init_map(struct lockdep_map *lock , char const   *name , struct lock_class_key *key ,
 5189                             int subclass ) ;
 5190#line 93 "include/linux/spinlock.h"
 5191extern void __raw_spin_lock_init(raw_spinlock_t *lock , char const   *name , struct lock_class_key *key ) ;
 5192#line 22 "include/linux/spinlock_api_smp.h"
 5193extern void _raw_spin_lock(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 5194#line 29
 5195extern void _raw_spin_lock_irq(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 5196#line 32
 5197extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 5198#line 39
 5199extern void _raw_spin_unlock(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 5200#line 41
 5201extern void _raw_spin_unlock_irq(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 5202#line 42
 5203extern void _raw_spin_unlock_irqrestore(raw_spinlock_t *lock , unsigned long flags )  __attribute__((__section__(".spinlock.text"))) ;
 5204#line 272 "include/linux/spinlock.h"
 5205__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
 5206{ 
 5207
 5208  {
 5209#line 274
 5210  return (& lock->__annonCompField18.rlock);
 5211}
 5212}
 5213#line 283 "include/linux/spinlock.h"
 5214__inline static void spin_lock(spinlock_t *lock ) 
 5215{ struct raw_spinlock *__cil_tmp2 ;
 5216
 5217  {
 5218  {
 5219#line 285
 5220  __cil_tmp2 = & lock->__annonCompField18.rlock;
 5221#line 285
 5222  _raw_spin_lock(__cil_tmp2);
 5223  }
 5224#line 286
 5225  return;
 5226}
 5227}
 5228#line 308 "include/linux/spinlock.h"
 5229__inline static void spin_lock_irq(spinlock_t *lock ) 
 5230{ struct raw_spinlock *__cil_tmp2 ;
 5231
 5232  {
 5233  {
 5234#line 310
 5235  __cil_tmp2 = & lock->__annonCompField18.rlock;
 5236#line 310
 5237  _raw_spin_lock_irq(__cil_tmp2);
 5238  }
 5239#line 311
 5240  return;
 5241}
 5242}
 5243#line 323 "include/linux/spinlock.h"
 5244__inline static void spin_unlock(spinlock_t *lock ) 
 5245{ struct raw_spinlock *__cil_tmp2 ;
 5246
 5247  {
 5248  {
 5249#line 325
 5250  __cil_tmp2 = & lock->__annonCompField18.rlock;
 5251#line 325
 5252  _raw_spin_unlock(__cil_tmp2);
 5253  }
 5254#line 326
 5255  return;
 5256}
 5257}
 5258#line 333 "include/linux/spinlock.h"
 5259__inline static void spin_unlock_irq(spinlock_t *lock ) 
 5260{ struct raw_spinlock *__cil_tmp2 ;
 5261
 5262  {
 5263  {
 5264#line 335
 5265  __cil_tmp2 = & lock->__annonCompField18.rlock;
 5266#line 335
 5267  _raw_spin_unlock_irq(__cil_tmp2);
 5268  }
 5269#line 336
 5270  return;
 5271}
 5272}
 5273#line 338 "include/linux/spinlock.h"
 5274__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) 
 5275{ struct raw_spinlock *__cil_tmp3 ;
 5276
 5277  {
 5278  {
 5279#line 340
 5280  while (1) {
 5281    while_continue: /* CIL Label */ ;
 5282    {
 5283#line 340
 5284    __cil_tmp3 = & lock->__annonCompField18.rlock;
 5285#line 340
 5286    _raw_spin_unlock_irqrestore(__cil_tmp3, flags);
 5287    }
 5288#line 340
 5289    goto while_break;
 5290  }
 5291  while_break___0: /* CIL Label */ ;
 5292  }
 5293
 5294  while_break: ;
 5295#line 341
 5296  return;
 5297}
 5298}
 5299#line 80 "include/linux/wait.h"
 5300extern void __init_waitqueue_head(wait_queue_head_t *q , struct lock_class_key * ) ;
 5301#line 156
 5302extern void __wake_up(wait_queue_head_t *q , unsigned int mode , int nr , void *key ) ;
 5303#line 584
 5304extern void prepare_to_wait(wait_queue_head_t *q , wait_queue_t *wait , int state ) ;
 5305#line 586
 5306extern void finish_wait(wait_queue_head_t *q , wait_queue_t *wait ) ;
 5307#line 589
 5308extern int autoremove_wake_function(wait_queue_t *wait , unsigned int mode , int sync ,
 5309                                    void *key ) ;
 5310#line 115 "include/linux/mutex.h"
 5311extern void __mutex_init(struct mutex *lock , char const   *name , struct lock_class_key *key ) ;
 5312#line 134
 5313extern void mutex_lock_nested(struct mutex *lock , unsigned int subclass ) ;
 5314#line 169
 5315extern void mutex_unlock(struct mutex *lock ) ;
 5316#line 156 "include/linux/workqueue.h"
 5317extern void __init_work(struct work_struct *work , int onstack ) ;
 5318#line 360
 5319extern int schedule_work(struct work_struct *work ) ;
 5320#line 141 "include/linux/slab.h"
 5321extern void kfree(void const   * ) ;
 5322#line 221 "include/linux/slub_def.h"
 5323extern void *__kmalloc(size_t size , gfp_t flags ) ;
 5324#line 255 "include/linux/slub_def.h"
 5325__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
 5326                                                                    gfp_t flags ) 
 5327{ void *tmp___2 ;
 5328
 5329  {
 5330  {
 5331#line 270
 5332  tmp___2 = __kmalloc(size, flags);
 5333  }
 5334#line 270
 5335  return (tmp___2);
 5336}
 5337}
 5338#line 39 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 5339extern unsigned long __attribute__((__warn_unused_result__))  _copy_to_user(void *to ,
 5340                                                                            void const   *from ,
 5341                                                                            unsigned int len ) ;
 5342#line 62 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 5343__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_to_user)(void *dst ,
 5344                                                                                                                void const   *src ,
 5345                                                                                                                unsigned int size ) 
 5346{ unsigned long tmp ;
 5347  unsigned long tmp___0 ;
 5348  unsigned long tmp___1 ;
 5349
 5350  {
 5351  {
 5352#line 65
 5353  might_fault();
 5354#line 67
 5355  tmp___1 = (unsigned long )_copy_to_user(dst, src, size);
 5356#line 67
 5357  tmp___0 = tmp___1;
 5358#line 67
 5359  tmp = tmp___0;
 5360  }
 5361#line 67
 5362  return ((int )tmp);
 5363}
 5364}
 5365#line 303 "include/linux/moduleparam.h"
 5366extern struct kernel_param_ops param_ops_int ;
 5367#line 329
 5368extern struct kernel_param_ops param_ops_bool ;
 5369#line 79 "include/linux/module.h"
 5370int init_module(void) ;
 5371#line 80
 5372void cleanup_module(void) ;
 5373#line 99
 5374extern struct module __this_module ;
 5375#line 705 "include/linux/device.h"
 5376extern void *dev_get_drvdata(struct device  const  *dev )  __attribute__((__ldv_model__)) ;
 5377#line 706
 5378extern int dev_set_drvdata(struct device *dev , void *data ) ;
 5379#line 788
 5380extern int dev_printk(char const   *level , struct device  const  *dev , char const   *fmt 
 5381                      , ...) ;
 5382#line 797
 5383extern int dev_err(struct device  const  *dev , char const   *fmt  , ...) ;
 5384#line 803
 5385extern int _dev_info(struct device  const  *dev , char const   *fmt  , ...) ;
 5386#line 399 "include/linux/tty.h"
 5387extern void tty_kref_put(struct tty_struct *tty ) ;
 5388#line 439
 5389extern void tty_flip_buffer_push(struct tty_struct *tty ) ;
 5390#line 444
 5391extern speed_t tty_get_baud_rate(struct tty_struct *tty ) ;
 5392#line 449
 5393extern void tty_encode_baud_rate(struct tty_struct *tty , speed_t ibaud , speed_t obaud ) ;
 5394#line 505
 5395extern struct tty_struct *tty_port_tty_get(struct tty_port *port ) ;
 5396#line 6 "include/linux/tty_flip.h"
 5397extern int tty_insert_flip_string_fixed_flag(struct tty_struct *tty , unsigned char const   *chars ,
 5398                                             char flag , size_t size ) ;
 5399#line 23 "include/linux/tty_flip.h"
 5400__inline static int tty_insert_flip_string(struct tty_struct *tty , unsigned char const   *chars ,
 5401                                           size_t size ) 
 5402{ int tmp ;
 5403
 5404  {
 5405  {
 5406#line 25
 5407  tmp = tty_insert_flip_string_fixed_flag(tty, chars, (char)0, size);
 5408  }
 5409#line 25
 5410  return (tmp);
 5411}
 5412}
 5413#line 357 "include/linux/sched.h"
 5414extern long schedule_timeout(long timeout ) ;
 5415#line 929 "include/linux/usb.h"
 5416extern int usb_register_driver(struct usb_driver * , struct module * , char const   * ) ;
 5417#line 931 "include/linux/usb.h"
 5418__inline static int usb_register(struct usb_driver *driver ) 
 5419{ int tmp___7 ;
 5420
 5421  {
 5422  {
 5423#line 933
 5424  tmp___7 = usb_register_driver(driver, & __this_module, "whiteheat");
 5425  }
 5426#line 933
 5427  return (tmp___7);
 5428}
 5429}
 5430#line 935
 5431extern void usb_deregister(struct usb_driver * ) ;
 5432#line 1268 "include/linux/usb.h"
 5433__inline static void usb_fill_bulk_urb(struct urb *urb , struct usb_device *dev ,
 5434                                       unsigned int pipe , void *transfer_buffer ,
 5435                                       int buffer_length , void (*complete_fn)(struct urb * ) ,
 5436                                       void *context ) 
 5437{ 
 5438
 5439  {
 5440#line 1276
 5441  urb->dev = dev;
 5442#line 1277
 5443  urb->pipe = pipe;
 5444#line 1278
 5445  urb->transfer_buffer = transfer_buffer;
 5446#line 1279
 5447  urb->transfer_buffer_length = (u32 )buffer_length;
 5448#line 1280
 5449  urb->complete = complete_fn;
 5450#line 1281
 5451  urb->context = context;
 5452#line 1282
 5453  return;
 5454}
 5455}
 5456#line 1332
 5457struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags )  __attribute__((__ldv_model__)) ;
 5458#line 1333
 5459void usb_free_urb(struct urb *urb )  __attribute__((__ldv_model__)) ;
 5460#line 1336
 5461extern int usb_submit_urb(struct urb *urb , gfp_t mem_flags ) ;
 5462#line 1338
 5463extern void usb_kill_urb(struct urb *urb ) ;
 5464#line 1377
 5465void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
 5466                         dma_addr_t *dma )  __attribute__((__ldv_model__)) ;
 5467#line 1379
 5468void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma )  __attribute__((__ldv_model__)) ;
 5469#line 1407
 5470extern int usb_bulk_msg(struct usb_device *usb_dev , unsigned int pipe , void *data ,
 5471                        int len , int *actual_length , int timeout ) ;
 5472#line 1420
 5473extern int usb_clear_halt(struct usb_device *dev , int pipe ) ;
 5474#line 1526 "include/linux/usb.h"
 5475__inline static unsigned int __create_pipe(struct usb_device *dev , unsigned int endpoint ) 
 5476{ unsigned int __cil_tmp3 ;
 5477  int __cil_tmp4 ;
 5478  int __cil_tmp5 ;
 5479  unsigned int __cil_tmp6 ;
 5480
 5481  {
 5482  {
 5483#line 1529
 5484  __cil_tmp3 = endpoint << 15;
 5485#line 1529
 5486  __cil_tmp4 = dev->devnum;
 5487#line 1529
 5488  __cil_tmp5 = __cil_tmp4 << 8;
 5489#line 1529
 5490  __cil_tmp6 = (unsigned int )__cil_tmp5;
 5491#line 1529
 5492  return (__cil_tmp6 | __cil_tmp3);
 5493  }
 5494}
 5495}
 5496#line 127 "include/linux/usb/serial.h"
 5497__inline static void *usb_get_serial_port_data(struct usb_serial_port *port ) 
 5498{ void *tmp___7 ;
 5499  struct device *__cil_tmp3 ;
 5500  struct device  const  *__cil_tmp4 ;
 5501
 5502  {
 5503  {
 5504#line 129
 5505  __cil_tmp3 = & port->dev;
 5506#line 129
 5507  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
 5508#line 129
 5509  tmp___7 = dev_get_drvdata(__cil_tmp4);
 5510  }
 5511#line 129
 5512  return (tmp___7);
 5513}
 5514}
 5515#line 132 "include/linux/usb/serial.h"
 5516__inline static void usb_set_serial_port_data(struct usb_serial_port *port , void *data ) 
 5517{ struct device *__cil_tmp3 ;
 5518
 5519  {
 5520  {
 5521#line 135
 5522  __cil_tmp3 = & port->dev;
 5523#line 135
 5524  dev_set_drvdata(__cil_tmp3, data);
 5525  }
 5526#line 136
 5527  return;
 5528}
 5529}
 5530#line 298
 5531extern int usb_serial_register(struct usb_serial_driver *driver ) ;
 5532#line 299
 5533extern void usb_serial_deregister(struct usb_serial_driver *driver ) ;
 5534#line 300
 5535extern void usb_serial_port_softint(struct usb_serial_port *port ) ;
 5536#line 302
 5537extern int usb_serial_probe(struct usb_interface *iface , struct usb_device_id  const  *id ) ;
 5538#line 304
 5539extern void usb_serial_disconnect(struct usb_interface *iface ) ;
 5540#line 309
 5541extern int ezusb_writememory(struct usb_serial *serial , int address , unsigned char *data ,
 5542                             int length , __u8 bRequest ) ;
 5543#line 311
 5544extern int ezusb_set_reset(struct usb_serial *serial , unsigned char reset_bit ) ;
 5545#line 363 "include/linux/usb/serial.h"
 5546__inline static void usb_serial_debug_data(int debug , struct device *dev , char const   *function ,
 5547                                           int size , unsigned char const   *data ) 
 5548{ int i ;
 5549  struct device  const  *__cil_tmp7 ;
 5550  unsigned char const   *__cil_tmp8 ;
 5551  unsigned char __cil_tmp9 ;
 5552  int __cil_tmp10 ;
 5553
 5554  {
 5555#line 370
 5556  if (debug) {
 5557    {
 5558#line 371
 5559    __cil_tmp7 = (struct device  const  *)dev;
 5560#line 371
 5561    dev_printk("<7>", __cil_tmp7, "%s - length = %d, data = ", function, size);
 5562#line 373
 5563    i = 0;
 5564    }
 5565    {
 5566#line 373
 5567    while (1) {
 5568      while_continue: /* CIL Label */ ;
 5569
 5570#line 373
 5571      if (i < size) {
 5572
 5573      } else {
 5574#line 373
 5575        goto while_break;
 5576      }
 5577      {
 5578#line 374
 5579      __cil_tmp8 = data + i;
 5580#line 374
 5581      __cil_tmp9 = *__cil_tmp8;
 5582#line 374
 5583      __cil_tmp10 = (int const   )__cil_tmp9;
 5584#line 374
 5585      printk("%.2x ", __cil_tmp10);
 5586#line 373
 5587      i = i + 1;
 5588      }
 5589    }
 5590    while_break___0: /* CIL Label */ ;
 5591    }
 5592
 5593    while_break: 
 5594    {
 5595#line 375
 5596    printk("\n");
 5597    }
 5598  } else {
 5599
 5600  }
 5601#line 377
 5602  return;
 5603}
 5604}
 5605#line 39 "include/linux/firmware.h"
 5606extern int request_firmware(struct firmware  const  **fw , char const   *name , struct device *device ) ;
 5607#line 46
 5608extern void release_firmware(struct firmware  const  *fw ) ;
 5609#line 24 "include/linux/ihex.h"
 5610__inline static struct ihex_binrec  const  *ihex_next_binrec(struct ihex_binrec  const  *rec ) 
 5611{ int next ;
 5612  __u16 tmp___7 ;
 5613  struct ihex_binrec  const  *tmp___9 ;
 5614  __u16 tmp___10 ;
 5615  __be16 __cil_tmp6 ;
 5616  __be16 __cil_tmp7 ;
 5617  int __cil_tmp8 ;
 5618  int __cil_tmp9 ;
 5619  int __cil_tmp10 ;
 5620  uint8_t const   *__cil_tmp11 ;
 5621  void *__cil_tmp12 ;
 5622  __be16 __cil_tmp13 ;
 5623  __be16 __cil_tmp14 ;
 5624  void *__cil_tmp15 ;
 5625
 5626  {
 5627  {
 5628#line 27
 5629  __cil_tmp6 = rec->len;
 5630#line 27
 5631  __cil_tmp7 = (__be16 )__cil_tmp6;
 5632#line 27
 5633  tmp___7 = __fswab16(__cil_tmp7);
 5634#line 27
 5635  __cil_tmp8 = (int )tmp___7;
 5636#line 27
 5637  __cil_tmp9 = __cil_tmp8 + 5;
 5638#line 27
 5639  __cil_tmp10 = __cil_tmp9 & -4;
 5640#line 27
 5641  next = __cil_tmp10 - 2;
 5642#line 28
 5643  __cil_tmp11 = & rec->data[next];
 5644#line 28
 5645  __cil_tmp12 = (void *)__cil_tmp11;
 5646#line 28
 5647  rec = (struct ihex_binrec  const  *)__cil_tmp12;
 5648#line 30
 5649  __cil_tmp13 = rec->len;
 5650#line 30
 5651  __cil_tmp14 = (__be16 )__cil_tmp13;
 5652#line 30
 5653  tmp___10 = __fswab16(__cil_tmp14);
 5654  }
 5655#line 30
 5656  if ((int )tmp___10) {
 5657#line 30
 5658    tmp___9 = rec;
 5659  } else {
 5660#line 30
 5661    __cil_tmp15 = (void *)0;
 5662#line 30
 5663    tmp___9 = (struct ihex_binrec  const  *)__cil_tmp15;
 5664  }
 5665#line 30
 5666  return (tmp___9);
 5667}
 5668}
 5669#line 34 "include/linux/ihex.h"
 5670__inline static int ihex_validate_fw(struct firmware  const  *fw ) 
 5671{ struct ihex_binrec  const  *rec ;
 5672  size_t ofs ;
 5673  __u16 tmp___7 ;
 5674  __u16 tmp___8 ;
 5675  size_t __cil_tmp6 ;
 5676  size_t __cil_tmp7 ;
 5677  size_t __cil_tmp8 ;
 5678  size_t __cil_tmp9 ;
 5679  u8 const   *__cil_tmp10 ;
 5680  u8 const   *__cil_tmp11 ;
 5681  void *__cil_tmp12 ;
 5682  __be16 __cil_tmp13 ;
 5683  __be16 __cil_tmp14 ;
 5684  __be16 __cil_tmp15 ;
 5685  __be16 __cil_tmp16 ;
 5686  int __cil_tmp17 ;
 5687  unsigned long __cil_tmp18 ;
 5688  unsigned long __cil_tmp19 ;
 5689  unsigned long __cil_tmp20 ;
 5690  unsigned long __cil_tmp21 ;
 5691
 5692  {
 5693#line 37
 5694  ofs = (size_t )0;
 5695  {
 5696#line 39
 5697  while (1) {
 5698    while_continue: /* CIL Label */ ;
 5699
 5700    {
 5701#line 39
 5702    __cil_tmp6 = (size_t const   )6UL;
 5703#line 39
 5704    __cil_tmp7 = fw->size;
 5705#line 39
 5706    __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
 5707#line 39
 5708    __cil_tmp9 = (size_t )__cil_tmp8;
 5709#line 39
 5710    if (ofs <= __cil_tmp9) {
 5711
 5712    } else {
 5713#line 39
 5714      goto while_break;
 5715    }
 5716    }
 5717    {
 5718#line 40
 5719    __cil_tmp10 = fw->data;
 5720#line 40
 5721    __cil_tmp11 = __cil_tmp10 + ofs;
 5722#line 40
 5723    __cil_tmp12 = (void *)__cil_tmp11;
 5724#line 40
 5725    rec = (struct ihex_binrec  const  *)__cil_tmp12;
 5726#line 43
 5727    __cil_tmp13 = rec->len;
 5728#line 43
 5729    __cil_tmp14 = (__be16 )__cil_tmp13;
 5730#line 43
 5731    tmp___7 = __fswab16(__cil_tmp14);
 5732    }
 5733#line 43
 5734    if ((int )tmp___7) {
 5735
 5736    } else {
 5737#line 44
 5738      return (0);
 5739    }
 5740    {
 5741#line 47
 5742    __cil_tmp15 = rec->len;
 5743#line 47
 5744    __cil_tmp16 = (__be16 )__cil_tmp15;
 5745#line 47
 5746    tmp___8 = __fswab16(__cil_tmp16);
 5747#line 47
 5748    __cil_tmp17 = (int )tmp___8;
 5749#line 47
 5750    __cil_tmp18 = (unsigned long )__cil_tmp17;
 5751#line 47
 5752    __cil_tmp19 = 6UL + __cil_tmp18;
 5753#line 47
 5754    __cil_tmp20 = __cil_tmp19 + 3UL;
 5755#line 47
 5756    __cil_tmp21 = __cil_tmp20 & 1152921504606846972UL;
 5757#line 47
 5758    ofs = ofs + __cil_tmp21;
 5759    }
 5760  }
 5761  while_break___0: /* CIL Label */ ;
 5762  }
 5763
 5764  while_break: ;
 5765#line 49
 5766  return (-22);
 5767}
 5768}
 5769#line 54 "include/linux/ihex.h"
 5770__inline static int request_ihex_firmware(struct firmware  const  **fw , char const   *fw_name ,
 5771                                          struct device *dev ) 
 5772{ struct firmware  const  *lfw ;
 5773  int ret ;
 5774  struct device  const  *__cil_tmp6 ;
 5775
 5776  {
 5777  {
 5778#line 61
 5779  ret = request_firmware(& lfw, fw_name, dev);
 5780  }
 5781#line 62
 5782  if (ret) {
 5783#line 63
 5784    return (ret);
 5785  } else {
 5786
 5787  }
 5788  {
 5789#line 64
 5790  ret = ihex_validate_fw(lfw);
 5791  }
 5792#line 65
 5793  if (ret) {
 5794    {
 5795#line 66
 5796    __cil_tmp6 = (struct device  const  *)dev;
 5797#line 66
 5798    dev_err(__cil_tmp6, "Firmware \"%s\" not valid IHEX records\n", fw_name);
 5799#line 68
 5800    release_firmware(lfw);
 5801    }
 5802#line 69
 5803    return (ret);
 5804  } else {
 5805
 5806  }
 5807#line 71
 5808  *fw = lfw;
 5809#line 72
 5810  return (0);
 5811}
 5812}
 5813#line 91 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5814static int debug  ;
 5815#line 115 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5816static struct usb_device_id  const  id_table_std[1]  = {      {(__u16 )3, (__u16 )1808, (__u16 )32769, (unsigned short)0, (unsigned short)0,
 5817      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
 5818      (unsigned char)0, 0UL}};
 5819#line 120 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5820static struct usb_device_id  const  id_table_prerenumeration[1]  = {      {(__u16 )3, (__u16 )1808, (__u16 )1, (unsigned short)0, (unsigned short)0, (unsigned char)0,
 5821      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
 5822      0UL}};
 5823#line 125 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5824static struct usb_device_id  const  id_table_combined[2]  = {      {(__u16 )3, (__u16 )1808, (__u16 )32769, (unsigned short)0, (unsigned short)0,
 5825      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
 5826      (unsigned char)0, 0UL}, 
 5827        {(__u16 )3, (__u16 )1808, (__u16 )1, (unsigned short)0, (unsigned short)0, (unsigned char)0,
 5828      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
 5829      0UL}};
 5830#line 131
 5831extern struct usb_device_id  const  __mod_usb_device_table  __attribute__((__unused__,
 5832__alias__("id_table_combined"))) ;
 5833#line 133 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5834static struct usb_driver whiteheat_driver  = 
 5835#line 133
 5836     {"whiteheat", & usb_serial_probe, & usb_serial_disconnect, (int (*)(struct usb_interface *intf ,
 5837                                                                       unsigned int code ,
 5838                                                                       void *buf ))0,
 5839    (int (*)(struct usb_interface *intf , pm_message_t message ))0, (int (*)(struct usb_interface *intf ))0,
 5840    (int (*)(struct usb_interface *intf ))0, (int (*)(struct usb_interface *intf ))0,
 5841    (int (*)(struct usb_interface *intf ))0, id_table_combined, {{{{{0U}, 0U, 0U,
 5842                                                                    (void *)0, {(struct lock_class_key *)0,
 5843                                                                                {(struct lock_class *)0,
 5844                                                                                 (struct lock_class *)0},
 5845                                                                                (char const   *)0,
 5846                                                                                0,
 5847                                                                                0UL}}}},
 5848                                                                 {(struct list_head *)0,
 5849                                                                  (struct list_head *)0}},
 5850    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
 5851      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device *dev ))0,
 5852      (int (*)(struct device *dev ))0, (void (*)(struct device *dev ))0, (int (*)(struct device *dev ,
 5853                                                                                  pm_message_t state ))0,
 5854      (int (*)(struct device *dev ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
 5855      (struct driver_private *)0}, 0}, 1U, 0U, 0U};
 5856#line 142
 5857static int whiteheat_firmware_download(struct usb_serial *serial , struct usb_device_id  const  *id ) ;
 5858#line 144
 5859static int whiteheat_firmware_attach(struct usb_serial *serial ) ;
 5860#line 147
 5861static int whiteheat_attach(struct usb_serial *serial ) ;
 5862#line 148
 5863static void whiteheat_release(struct usb_serial *serial ) ;
 5864#line 149
 5865static int whiteheat_open(struct tty_struct *tty , struct usb_serial_port *port ) ;
 5866#line 151
 5867static void whiteheat_close(struct usb_serial_port *port ) ;
 5868#line 152
 5869static int whiteheat_write(struct tty_struct *tty , struct usb_serial_port *port ,
 5870                           unsigned char const   *buf , int count ) ;
 5871#line 155
 5872static int whiteheat_write_room(struct tty_struct *tty ) ;
 5873#line 156
 5874static int whiteheat_ioctl(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
 5875#line 158
 5876static void whiteheat_set_termios(struct tty_struct *tty , struct usb_serial_port *port ,
 5877                                  struct ktermios *old_termios ) ;
 5878#line 160
 5879static int whiteheat_tiocmget(struct tty_struct *tty ) ;
 5880#line 161
 5881static int whiteheat_tiocmset(struct tty_struct *tty , unsigned int set , unsigned int clear ) ;
 5882#line 163
 5883static void whiteheat_break_ctl(struct tty_struct *tty , int break_state ) ;
 5884#line 164
 5885static int whiteheat_chars_in_buffer(struct tty_struct *tty ) ;
 5886#line 165
 5887static void whiteheat_throttle(struct tty_struct *tty ) ;
 5888#line 166
 5889static void whiteheat_unthrottle(struct tty_struct *tty ) ;
 5890#line 167
 5891static void whiteheat_read_callback(struct urb *urb ) ;
 5892#line 168
 5893static void whiteheat_write_callback(struct urb *urb ) ;
 5894#line 170 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5895static struct usb_serial_driver whiteheat_fake_device  = 
 5896#line 170
 5897     {"Connect Tech - WhiteHEAT - (prerenumeration)", id_table_prerenumeration, (char)1,
 5898    {(struct list_head *)0, (struct list_head *)0}, {"whiteheatnofirm", (struct bus_type *)0,
 5899                                                     & __this_module, (char const   *)0,
 5900                                                     (_Bool)0, (struct of_device_id  const  *)0,
 5901                                                     (int (*)(struct device *dev ))0,
 5902                                                     (int (*)(struct device *dev ))0,
 5903                                                     (void (*)(struct device *dev ))0,
 5904                                                     (int (*)(struct device *dev ,
 5905                                                              pm_message_t state ))0,
 5906                                                     (int (*)(struct device *dev ))0,
 5907                                                     (struct attribute_group  const  **)0,
 5908                                                     (struct dev_pm_ops  const  *)0,
 5909                                                     (struct driver_private *)0},
 5910    & whiteheat_driver, {{{{{0U}, 0U, 0U, (void *)0, {(struct lock_class_key *)0,
 5911                                                      {(struct lock_class *)0, (struct lock_class *)0},
 5912                                                      (char const   *)0, 0, 0UL}}}},
 5913                         {(struct list_head *)0, (struct list_head *)0}}, 0UL, 0UL,
 5914    & whiteheat_firmware_download, & whiteheat_firmware_attach, (int (*)(struct usb_serial *serial ))0,
 5915    (void (*)(struct usb_serial *serial ))0, (void (*)(struct usb_serial *serial ))0,
 5916    (int (*)(struct usb_serial_port *port ))0, (int (*)(struct usb_serial_port *port ))0,
 5917    (int (*)(struct usb_serial *serial , pm_message_t message ))0, (int (*)(struct usb_serial *serial ))0,
 5918    (int (*)(struct tty_struct *tty , struct usb_serial_port *port ))0, (void (*)(struct usb_serial_port *port ))0,
 5919    (int (*)(struct tty_struct *tty , struct usb_serial_port *port , unsigned char const   *buf ,
 5920             int count ))0, (int (*)(struct tty_struct *tty ))0, (int (*)(struct tty_struct *tty ,
 5921                                                                          unsigned int cmd ,
 5922                                                                          unsigned long arg ))0,
 5923    (void (*)(struct tty_struct *tty , struct usb_serial_port *port , struct ktermios *old ))0,
 5924    (void (*)(struct tty_struct *tty , int break_state ))0, (int (*)(struct tty_struct *tty ))0,
 5925    (void (*)(struct tty_struct *tty ))0, (void (*)(struct tty_struct *tty ))0, (int (*)(struct tty_struct *tty ))0,
 5926    (int (*)(struct tty_struct *tty , unsigned int set , unsigned int clear ))0, (int (*)(struct tty_struct *tty ,
 5927                                                                                          struct serial_icounter_struct *icount ))0,
 5928    (void (*)(struct usb_serial_port *port , int on ))0, (int (*)(struct usb_serial_port *port ))0,
 5929    (void (*)(struct tty_struct *tty ))0, (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0,
 5930    (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0,
 5931    (int (*)(struct usb_serial_port *port , void *dest , size_t size ))0};
 5932#line 183 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5933static struct usb_serial_driver whiteheat_device  = 
 5934#line 183
 5935     {"Connect Tech - WhiteHEAT", id_table_std, (char)4, {(struct list_head *)0, (struct list_head *)0},
 5936    {"whiteheat", (struct bus_type *)0, & __this_module, (char const   *)0, (_Bool)0,
 5937     (struct of_device_id  const  *)0, (int (*)(struct device *dev ))0, (int (*)(struct device *dev ))0,
 5938     (void (*)(struct device *dev ))0, (int (*)(struct device *dev , pm_message_t state ))0,
 5939     (int (*)(struct device *dev ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
 5940     (struct driver_private *)0}, & whiteheat_driver, {{{{{0U}, 0U, 0U, (void *)0,
 5941                                                          {(struct lock_class_key *)0,
 5942                                                           {(struct lock_class *)0,
 5943                                                            (struct lock_class *)0},
 5944                                                           (char const   *)0, 0, 0UL}}}},
 5945                                                       {(struct list_head *)0, (struct list_head *)0}},
 5946    0UL, 0UL, (int (*)(struct usb_serial *serial , struct usb_device_id  const  *id ))0,
 5947    & whiteheat_attach, (int (*)(struct usb_serial *serial ))0, (void (*)(struct usb_serial *serial ))0,
 5948    & whiteheat_release, (int (*)(struct usb_serial_port *port ))0, (int (*)(struct usb_serial_port *port ))0,
 5949    (int (*)(struct usb_serial *serial , pm_message_t message ))0, (int (*)(struct usb_serial *serial ))0,
 5950    & whiteheat_open, & whiteheat_close, & whiteheat_write, & whiteheat_write_room,
 5951    & whiteheat_ioctl, & whiteheat_set_termios, & whiteheat_break_ctl, & whiteheat_chars_in_buffer,
 5952    & whiteheat_throttle, & whiteheat_unthrottle, & whiteheat_tiocmget, & whiteheat_tiocmset,
 5953    (int (*)(struct tty_struct *tty , struct serial_icounter_struct *icount ))0, (void (*)(struct usb_serial_port *port ,
 5954                                                                                           int on ))0,
 5955    (int (*)(struct usb_serial_port *port ))0, (void (*)(struct tty_struct *tty ))0,
 5956    (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0, & whiteheat_read_callback,
 5957    & whiteheat_write_callback, (void (*)(struct urb *urb ))0, (int (*)(struct usb_serial_port *port ,
 5958                                                                        void *dest ,
 5959                                                                        size_t size ))0};
 5960#line 225 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 5961static int urb_pool_size  =    8;
 5962#line 248
 5963static int start_command_port(struct usb_serial *serial ) ;
 5964#line 249
 5965static void stop_command_port(struct usb_serial *serial ) ;
 5966#line 250
 5967static void command_port_write_callback(struct urb *urb ) ;
 5968#line 251
 5969static void command_port_read_callback(struct urb *urb ) ;
 5970#line 253
 5971static int start_port_read(struct usb_serial_port *port ) ;
 5972#line 254
 5973static struct whiteheat_urb_wrap *urb_to_wrap(struct urb *urb , struct list_head *head ) ;
 5974#line 256
 5975static struct list_head *list_first(struct list_head *head ) ;
 5976#line 257
 5977static void rx_data_softint(struct work_struct *work ) ;
 5978#line 259
 5979static int firm_send_command(struct usb_serial_port *port , __u8 command , __u8 *data ,
 5980                             __u8 datasize ) ;
 5981#line 261
 5982static int firm_open(struct usb_serial_port *port ) ;
 5983#line 262
 5984static int firm_close(struct usb_serial_port *port ) ;
 5985#line 263
 5986static void firm_setup_port(struct tty_struct *tty ) ;
 5987#line 264
 5988static int firm_set_rts(struct usb_serial_port *port , __u8 onoff ) ;
 5989#line 265
 5990static int firm_set_dtr(struct usb_serial_port *port , __u8 onoff ) ;
 5991#line 266
 5992static int firm_set_break(struct usb_serial_port *port , __u8 onoff ) ;
 5993#line 267
 5994static int firm_purge(struct usb_serial_port *port , __u8 rxtx ) ;
 5995#line 268
 5996static int firm_get_dtr_rts(struct usb_serial_port *port ) ;
 5997#line 269
 5998static int firm_report_tx_done(struct usb_serial_port *port ) ;
 5999#line 295 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6000static int whiteheat_firmware_download(struct usb_serial *serial , struct usb_device_id  const  *id ) 
 6001{ int response ;
 6002  int ret ;
 6003  struct firmware  const  *loader_fw ;
 6004  struct firmware  const  *firmware_fw ;
 6005  struct ihex_binrec  const  *record ;
 6006  int tmp___7 ;
 6007  int tmp___8 ;
 6008  __u16 tmp___9 ;
 6009  __u32 tmp___10 ;
 6010  __u16 tmp___11 ;
 6011  __u32 tmp___12 ;
 6012  __u32 tmp___13 ;
 6013  __u16 tmp___14 ;
 6014  __u32 tmp___15 ;
 6015  __u16 tmp___16 ;
 6016  __u32 tmp___17 ;
 6017  __u16 tmp___18 ;
 6018  __u32 tmp___19 ;
 6019  __u16 tmp___20 ;
 6020  __u32 tmp___21 ;
 6021  __u32 tmp___22 ;
 6022  void *__cil_tmp24 ;
 6023  void *__cil_tmp25 ;
 6024  struct usb_device *__cil_tmp26 ;
 6025  struct device *__cil_tmp27 ;
 6026  struct usb_device *__cil_tmp28 ;
 6027  struct device *__cil_tmp29 ;
 6028  struct device  const  *__cil_tmp30 ;
 6029  struct usb_device *__cil_tmp31 ;
 6030  struct device *__cil_tmp32 ;
 6031  struct usb_device *__cil_tmp33 ;
 6032  struct device *__cil_tmp34 ;
 6033  struct device  const  *__cil_tmp35 ;
 6034  u8 const   *__cil_tmp36 ;
 6035  __be16 __cil_tmp37 ;
 6036  __be16 __cil_tmp38 ;
 6037  __be32 __cil_tmp39 ;
 6038  __be32 __cil_tmp40 ;
 6039  int __cil_tmp41 ;
 6040  uint8_t const   *__cil_tmp42 ;
 6041  unsigned char *__cil_tmp43 ;
 6042  int __cil_tmp44 ;
 6043  __u8 __cil_tmp45 ;
 6044  __be16 __cil_tmp46 ;
 6045  __be16 __cil_tmp47 ;
 6046  __be32 __cil_tmp48 ;
 6047  __be32 __cil_tmp49 ;
 6048  struct usb_device *__cil_tmp50 ;
 6049  struct device *__cil_tmp51 ;
 6050  struct device  const  *__cil_tmp52 ;
 6051  uint8_t const   *__cil_tmp53 ;
 6052  int __cil_tmp54 ;
 6053  u8 const   *__cil_tmp55 ;
 6054  __be32 __cil_tmp56 ;
 6055  __be32 __cil_tmp57 ;
 6056  __be16 __cil_tmp58 ;
 6057  __be16 __cil_tmp59 ;
 6058  __be32 __cil_tmp60 ;
 6059  __be32 __cil_tmp61 ;
 6060  int __cil_tmp62 ;
 6061  uint8_t const   *__cil_tmp63 ;
 6062  unsigned char *__cil_tmp64 ;
 6063  int __cil_tmp65 ;
 6064  __u8 __cil_tmp66 ;
 6065  __be16 __cil_tmp67 ;
 6066  __be16 __cil_tmp68 ;
 6067  __be32 __cil_tmp69 ;
 6068  __be32 __cil_tmp70 ;
 6069  struct usb_device *__cil_tmp71 ;
 6070  struct device *__cil_tmp72 ;
 6071  struct device  const  *__cil_tmp73 ;
 6072  uint8_t const   *__cil_tmp74 ;
 6073  int __cil_tmp75 ;
 6074  u8 const   *__cil_tmp76 ;
 6075  __be32 __cil_tmp77 ;
 6076  __be32 __cil_tmp78 ;
 6077  __be16 __cil_tmp79 ;
 6078  __be16 __cil_tmp80 ;
 6079  __be32 __cil_tmp81 ;
 6080  __be32 __cil_tmp82 ;
 6081  int __cil_tmp83 ;
 6082  uint8_t const   *__cil_tmp84 ;
 6083  unsigned char *__cil_tmp85 ;
 6084  int __cil_tmp86 ;
 6085  __u8 __cil_tmp87 ;
 6086  __be16 __cil_tmp88 ;
 6087  __be16 __cil_tmp89 ;
 6088  __be32 __cil_tmp90 ;
 6089  __be32 __cil_tmp91 ;
 6090  struct usb_device *__cil_tmp92 ;
 6091  struct device *__cil_tmp93 ;
 6092  struct device  const  *__cil_tmp94 ;
 6093  uint8_t const   *__cil_tmp95 ;
 6094  int __cil_tmp96 ;
 6095
 6096  {
 6097#line 298
 6098  ret = -2;
 6099#line 299
 6100  __cil_tmp24 = (void *)0;
 6101#line 299
 6102  loader_fw = (struct firmware  const  *)__cil_tmp24;
 6103#line 299
 6104  __cil_tmp25 = (void *)0;
 6105#line 299
 6106  firmware_fw = (struct firmware  const  *)__cil_tmp25;
 6107  {
 6108#line 302
 6109  while (1) {
 6110    while_continue: /* CIL Label */ ;
 6111
 6112#line 302
 6113    if (debug) {
 6114      {
 6115#line 302
 6116      printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 6117             "whiteheat_firmware_download");
 6118      }
 6119    } else {
 6120
 6121    }
 6122#line 302
 6123    goto while_break;
 6124  }
 6125  while_break___4: /* CIL Label */ ;
 6126  }
 6127
 6128  while_break: 
 6129  {
 6130#line 304
 6131  __cil_tmp26 = serial->dev;
 6132#line 304
 6133  __cil_tmp27 = & __cil_tmp26->dev;
 6134#line 304
 6135  tmp___7 = request_ihex_firmware(& firmware_fw, "whiteheat.fw", __cil_tmp27);
 6136  }
 6137#line 304
 6138  if (tmp___7) {
 6139    {
 6140#line 306
 6141    __cil_tmp28 = serial->dev;
 6142#line 306
 6143    __cil_tmp29 = & __cil_tmp28->dev;
 6144#line 306
 6145    __cil_tmp30 = (struct device  const  *)__cil_tmp29;
 6146#line 306
 6147    dev_err(__cil_tmp30, "%s - request \"whiteheat.fw\" failed\n", "whiteheat_firmware_download");
 6148    }
 6149#line 308
 6150    goto out;
 6151  } else {
 6152
 6153  }
 6154  {
 6155#line 310
 6156  __cil_tmp31 = serial->dev;
 6157#line 310
 6158  __cil_tmp32 = & __cil_tmp31->dev;
 6159#line 310
 6160  tmp___8 = request_ihex_firmware(& loader_fw, "whiteheat_loader.fw", __cil_tmp32);
 6161  }
 6162#line 310
 6163  if (tmp___8) {
 6164    {
 6165#line 312
 6166    __cil_tmp33 = serial->dev;
 6167#line 312
 6168    __cil_tmp34 = & __cil_tmp33->dev;
 6169#line 312
 6170    __cil_tmp35 = (struct device  const  *)__cil_tmp34;
 6171#line 312
 6172    dev_err(__cil_tmp35, "%s - request \"whiteheat_loader.fw\" failed\n", "whiteheat_firmware_download");
 6173    }
 6174#line 315
 6175    goto out;
 6176  } else {
 6177
 6178  }
 6179  {
 6180#line 317
 6181  ret = 0;
 6182#line 318
 6183  response = ezusb_set_reset(serial, (unsigned char)1);
 6184#line 320
 6185  __cil_tmp36 = loader_fw->data;
 6186#line 320
 6187  record = (struct ihex_binrec  const  *)__cil_tmp36;
 6188  }
 6189  {
 6190#line 321
 6191  while (1) {
 6192    while_continue___0: /* CIL Label */ ;
 6193
 6194#line 321
 6195    if (record) {
 6196
 6197    } else {
 6198#line 321
 6199      goto while_break___0;
 6200    }
 6201    {
 6202#line 322
 6203    __cil_tmp37 = record->len;
 6204#line 322
 6205    __cil_tmp38 = (__be16 )__cil_tmp37;
 6206#line 322
 6207    tmp___9 = __fswab16(__cil_tmp38);
 6208#line 322
 6209    __cil_tmp39 = record->addr;
 6210#line 322
 6211    __cil_tmp40 = (__be32 )__cil_tmp39;
 6212#line 322
 6213    tmp___10 = __fswab32(__cil_tmp40);
 6214#line 322
 6215    __cil_tmp41 = (int )tmp___10;
 6216#line 322
 6217    __cil_tmp42 = & record->data[0];
 6218#line 322
 6219    __cil_tmp43 = (unsigned char *)__cil_tmp42;
 6220#line 322
 6221    __cil_tmp44 = (int )tmp___9;
 6222#line 322
 6223    __cil_tmp45 = (__u8 )160;
 6224#line 322
 6225    response = ezusb_writememory(serial, __cil_tmp41, __cil_tmp43, __cil_tmp44, __cil_tmp45);
 6226    }
 6227#line 325
 6228    if (response < 0) {
 6229      {
 6230#line 326
 6231      __cil_tmp46 = record->len;
 6232#line 326
 6233      __cil_tmp47 = (__be16 )__cil_tmp46;
 6234#line 326
 6235      tmp___11 = __fswab16(__cil_tmp47);
 6236#line 326
 6237      __cil_tmp48 = record->addr;
 6238#line 326
 6239      __cil_tmp49 = (__be32 )__cil_tmp48;
 6240#line 326
 6241      tmp___12 = __fswab32(__cil_tmp49);
 6242#line 326
 6243      __cil_tmp50 = serial->dev;
 6244#line 326
 6245      __cil_tmp51 = & __cil_tmp50->dev;
 6246#line 326
 6247      __cil_tmp52 = (struct device  const  *)__cil_tmp51;
 6248#line 326
 6249      __cil_tmp53 = & record->data[0];
 6250#line 326
 6251      __cil_tmp54 = (int )tmp___11;
 6252#line 326
 6253      dev_err(__cil_tmp52, "%s - ezusb_writememory failed for loader (%d %04X %p %d)\n",
 6254              "whiteheat_firmware_download", response, tmp___12, __cil_tmp53, __cil_tmp54);
 6255      }
 6256#line 330
 6257      goto while_break___0;
 6258    } else {
 6259
 6260    }
 6261    {
 6262#line 332
 6263    record = ihex_next_binrec(record);
 6264    }
 6265  }
 6266  while_break___5: /* CIL Label */ ;
 6267  }
 6268
 6269  while_break___0: 
 6270  {
 6271#line 335
 6272  response = ezusb_set_reset(serial, (unsigned char)0);
 6273#line 337
 6274  __cil_tmp55 = firmware_fw->data;
 6275#line 337
 6276  record = (struct ihex_binrec  const  *)__cil_tmp55;
 6277  }
 6278  {
 6279#line 338
 6280  while (1) {
 6281    while_continue___1: /* CIL Label */ ;
 6282
 6283#line 338
 6284    if (record) {
 6285      {
 6286#line 338
 6287      __cil_tmp56 = record->addr;
 6288#line 338
 6289      __cil_tmp57 = (__be32 )__cil_tmp56;
 6290#line 338
 6291      tmp___13 = __fswab32(__cil_tmp57);
 6292      }
 6293#line 338
 6294      if (tmp___13 < 6976U) {
 6295
 6296      } else {
 6297#line 338
 6298        goto while_break___1;
 6299      }
 6300    } else {
 6301#line 338
 6302      goto while_break___1;
 6303    }
 6304    {
 6305#line 339
 6306    record = ihex_next_binrec(record);
 6307    }
 6308  }
 6309  while_break___6: /* CIL Label */ ;
 6310  }
 6311
 6312  while_break___1: ;
 6313  {
 6314#line 340
 6315  while (1) {
 6316    while_continue___2: /* CIL Label */ ;
 6317
 6318#line 340
 6319    if (record) {
 6320
 6321    } else {
 6322#line 340
 6323      goto while_break___2;
 6324    }
 6325    {
 6326#line 341
 6327    __cil_tmp58 = record->len;
 6328#line 341
 6329    __cil_tmp59 = (__be16 )__cil_tmp58;
 6330#line 341
 6331    tmp___14 = __fswab16(__cil_tmp59);
 6332#line 341
 6333    __cil_tmp60 = record->addr;
 6334#line 341
 6335    __cil_tmp61 = (__be32 )__cil_tmp60;
 6336#line 341
 6337    tmp___15 = __fswab32(__cil_tmp61);
 6338#line 341
 6339    __cil_tmp62 = (int )tmp___15;
 6340#line 341
 6341    __cil_tmp63 = & record->data[0];
 6342#line 341
 6343    __cil_tmp64 = (unsigned char *)__cil_tmp63;
 6344#line 341
 6345    __cil_tmp65 = (int )tmp___14;
 6346#line 341
 6347    __cil_tmp66 = (__u8 )163;
 6348#line 341
 6349    response = ezusb_writememory(serial, __cil_tmp62, __cil_tmp64, __cil_tmp65, __cil_tmp66);
 6350    }
 6351#line 344
 6352    if (response < 0) {
 6353      {
 6354#line 345
 6355      __cil_tmp67 = record->len;
 6356#line 345
 6357      __cil_tmp68 = (__be16 )__cil_tmp67;
 6358#line 345
 6359      tmp___16 = __fswab16(__cil_tmp68);
 6360#line 345
 6361      __cil_tmp69 = record->addr;
 6362#line 345
 6363      __cil_tmp70 = (__be32 )__cil_tmp69;
 6364#line 345
 6365      tmp___17 = __fswab32(__cil_tmp70);
 6366#line 345
 6367      __cil_tmp71 = serial->dev;
 6368#line 345
 6369      __cil_tmp72 = & __cil_tmp71->dev;
 6370#line 345
 6371      __cil_tmp73 = (struct device  const  *)__cil_tmp72;
 6372#line 345
 6373      __cil_tmp74 = & record->data[0];
 6374#line 345
 6375      __cil_tmp75 = (int )tmp___16;
 6376#line 345
 6377      dev_err(__cil_tmp73, "%s - ezusb_writememory failed for first firmware step (%d %04X %p %d)\n",
 6378              "whiteheat_firmware_download", response, tmp___17, __cil_tmp74, __cil_tmp75);
 6379      }
 6380#line 350
 6381      goto while_break___2;
 6382    } else {
 6383
 6384    }
 6385#line 352
 6386    record = record + 1;
 6387  }
 6388  while_break___7: /* CIL Label */ ;
 6389  }
 6390
 6391  while_break___2: 
 6392  {
 6393#line 355
 6394  response = ezusb_set_reset(serial, (unsigned char)1);
 6395#line 357
 6396  __cil_tmp76 = firmware_fw->data;
 6397#line 357
 6398  record = (struct ihex_binrec  const  *)__cil_tmp76;
 6399  }
 6400  {
 6401#line 358
 6402  while (1) {
 6403    while_continue___3: /* CIL Label */ ;
 6404
 6405#line 358
 6406    if (record) {
 6407      {
 6408#line 358
 6409      __cil_tmp77 = record->addr;
 6410#line 358
 6411      __cil_tmp78 = (__be32 )__cil_tmp77;
 6412#line 358
 6413      tmp___22 = __fswab32(__cil_tmp78);
 6414      }
 6415#line 358
 6416      if (tmp___22 < 6976U) {
 6417
 6418      } else {
 6419#line 358
 6420        goto while_break___3;
 6421      }
 6422    } else {
 6423#line 358
 6424      goto while_break___3;
 6425    }
 6426    {
 6427#line 359
 6428    __cil_tmp79 = record->len;
 6429#line 359
 6430    __cil_tmp80 = (__be16 )__cil_tmp79;
 6431#line 359
 6432    tmp___18 = __fswab16(__cil_tmp80);
 6433#line 359
 6434    __cil_tmp81 = record->addr;
 6435#line 359
 6436    __cil_tmp82 = (__be32 )__cil_tmp81;
 6437#line 359
 6438    tmp___19 = __fswab32(__cil_tmp82);
 6439#line 359
 6440    __cil_tmp83 = (int )tmp___19;
 6441#line 359
 6442    __cil_tmp84 = & record->data[0];
 6443#line 359
 6444    __cil_tmp85 = (unsigned char *)__cil_tmp84;
 6445#line 359
 6446    __cil_tmp86 = (int )tmp___18;
 6447#line 359
 6448    __cil_tmp87 = (__u8 )160;
 6449#line 359
 6450    response = ezusb_writememory(serial, __cil_tmp83, __cil_tmp85, __cil_tmp86, __cil_tmp87);
 6451    }
 6452#line 362
 6453    if (response < 0) {
 6454      {
 6455#line 363
 6456      __cil_tmp88 = record->len;
 6457#line 363
 6458      __cil_tmp89 = (__be16 )__cil_tmp88;
 6459#line 363
 6460      tmp___20 = __fswab16(__cil_tmp89);
 6461#line 363
 6462      __cil_tmp90 = record->addr;
 6463#line 363
 6464      __cil_tmp91 = (__be32 )__cil_tmp90;
 6465#line 363
 6466      tmp___21 = __fswab32(__cil_tmp91);
 6467#line 363
 6468      __cil_tmp92 = serial->dev;
 6469#line 363
 6470      __cil_tmp93 = & __cil_tmp92->dev;
 6471#line 363
 6472      __cil_tmp94 = (struct device  const  *)__cil_tmp93;
 6473#line 363
 6474      __cil_tmp95 = & record->data[0];
 6475#line 363
 6476      __cil_tmp96 = (int )tmp___20;
 6477#line 363
 6478      dev_err(__cil_tmp94, "%s - ezusb_writememory failed for second firmware step (%d %04X %p %d)\n",
 6479              "whiteheat_firmware_download", response, tmp___21, __cil_tmp95, __cil_tmp96);
 6480      }
 6481#line 368
 6482      goto while_break___3;
 6483    } else {
 6484
 6485    }
 6486#line 370
 6487    record = record + 1;
 6488  }
 6489  while_break___8: /* CIL Label */ ;
 6490  }
 6491
 6492  while_break___3: 
 6493  {
 6494#line 372
 6495  ret = 0;
 6496#line 373
 6497  response = ezusb_set_reset(serial, (unsigned char)0);
 6498  }
 6499  out: 
 6500  {
 6501#line 375
 6502  release_firmware(loader_fw);
 6503#line 376
 6504  release_firmware(firmware_fw);
 6505  }
 6506#line 377
 6507  return (ret);
 6508}
 6509}
 6510#line 381 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6511static int whiteheat_firmware_attach(struct usb_serial *serial ) 
 6512{ 
 6513
 6514  {
 6515#line 384
 6516  return (1);
 6517}
 6518}
 6519#line 478 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6520static struct lock_class_key __key___7  ;
 6521#line 479 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6522static struct lock_class_key __key___8  ;
 6523#line 482 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6524static struct lock_class_key __key___9  ;
 6525#line 557 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6526static struct lock_class_key __key___10  ;
 6527#line 559 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6528static struct lock_class_key __key___11  ;
 6529#line 391 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 6530static int whiteheat_attach(struct usb_serial *serial ) 
 6531{ struct usb_serial_port *command_port ;
 6532  struct whiteheat_command_private *command_info ;
 6533  struct usb_serial_port *port ;
 6534  struct whiteheat_private *info ;
 6535  struct whiteheat_hw_info *hw_info ;
 6536  int pipe ;
 6537  int ret ;
 6538  int alen ;
 6539  __u8 *command ;
 6540  __u8 *result ;
 6541  int i ;
 6542  int j ;
 6543  struct urb *urb ;
 6544  int buf_size ;
 6545  struct whiteheat_urb_wrap *wrap ;
 6546  struct list_head *tmp___7 ;
 6547  unsigned int tmp___8 ;
 6548  void *tmp___9 ;
 6549  void *tmp___10 ;
 6550  unsigned int tmp___11 ;
 6551  void *tmp___12 ;
 6552  atomic_long_t __constr_expr_0 ;
 6553  void *tmp___13 ;
 6554  unsigned int tmp___14 ;
 6555  void *tmp___15 ;
 6556  unsigned int tmp___16 ;
 6557  void *tmp___17 ;
 6558  void *tmp___18 ;
 6559  struct list_head  const  *__mptr ;
 6560  struct list_head  const  *__mptr___0 ;
 6561  struct usb_device *__cil_tmp32 ;
 6562  __u8 __cil_tmp33 ;
 6563  unsigned int __cil_tmp34 ;
 6564  int __cil_tmp35 ;
 6565  unsigned int __cil_tmp36 ;
 6566  unsigned int __cil_tmp37 ;
 6567  size_t __cil_tmp38 ;
 6568  __u8 *__cil_tmp39 ;
 6569  __u8 *__cil_tmp40 ;
 6570  unsigned long __cil_tmp41 ;
 6571  struct usb_device *__cil_tmp42 ;
 6572  struct usb_device *__cil_tmp43 ;
 6573  unsigned int __cil_tmp44 ;
 6574  void *__cil_tmp45 ;
 6575  struct usb_device *__cil_tmp46 ;
 6576  struct device *__cil_tmp47 ;
 6577  struct device  const  *__cil_tmp48 ;
 6578  struct usb_serial_driver *__cil_tmp49 ;
 6579  char const   *__cil_tmp50 ;
 6580  struct usb_device *__cil_tmp51 ;
 6581  struct device *__cil_tmp52 ;
 6582  struct device  const  *__cil_tmp53 ;
 6583  struct usb_serial_driver *__cil_tmp54 ;
 6584  char const   *__cil_tmp55 ;
 6585  struct usb_device *__cil_tmp56 ;
 6586  __u8 __cil_tmp57 ;
 6587  unsigned int __cil_tmp58 ;
 6588  int __cil_tmp59 ;
 6589  unsigned int __cil_tmp60 ;
 6590  unsigned int __cil_tmp61 ;
 6591  unsigned int __cil_tmp62 ;
 6592  struct usb_device *__cil_tmp63 ;
 6593  struct usb_device *__cil_tmp64 ;
 6594  unsigned int __cil_tmp65 ;
 6595  void *__cil_tmp66 ;
 6596  unsigned long __cil_tmp67 ;
 6597  int __cil_tmp68 ;
 6598  struct usb_device *__cil_tmp69 ;
 6599  struct device *__cil_tmp70 ;
 6600  struct device  const  *__cil_tmp71 ;
 6601  struct usb_serial_driver *__cil_tmp72 ;
 6602  char const   *__cil_tmp73 ;
 6603  unsigned long __cil_tmp74 ;
 6604  unsigned long __cil_tmp75 ;
 6605  struct usb_device *__cil_tmp76 ;
 6606  struct device *__cil_tmp77 ;
 6607  struct device  const  *__cil_tmp78 ;
 6608  struct usb_serial_driver *__cil_tmp79 ;
 6609  char const   *__cil_tmp80 ;
 6610  __u8 *__cil_tmp81 ;
 6611  __u8 __cil_tmp82 ;
 6612  int __cil_tmp83 ;
 6613  __u8 *__cil_tmp84 ;
 6614  __u8 __cil_tmp85 ;
 6615  int __cil_tmp86 ;
 6616  struct usb_device *__cil_tmp87 ;
 6617  struct device *__cil_tmp88 ;
 6618  struct device  const  *__cil_tmp89 ;
 6619  struct usb_serial_driver *__cil_tmp90 ;
 6620  char const   *__cil_tmp91 ;
 6621  __u8 *__cil_tmp92 ;
 6622  __u8 __cil_tmp93 ;
 6623  int __cil_tmp94 ;
 6624  __u8 *__cil_tmp95 ;
 6625  struct usb_device *__cil_tmp96 ;
 6626  struct device *__cil_tmp97 ;
 6627  struct device  const  *__cil_tmp98 ;
 6628  struct usb_serial_driver *__cil_tmp99 ;
 6629  char const   *__cil_tmp100 ;
 6630  __u8 __cil_tmp101 ;
 6631  int __cil_tmp102 ;
 6632  __u8 __cil_tmp103 ;
 6633  int __cil_tmp104 ;
 6634  unsigned char __cil_tmp105 ;
 6635  int __cil_tmp106 ;
 6636  void *__cil_tmp107 ;
 6637  unsigned long __cil_tmp108 ;
 6638  unsigned long __cil_tmp109 ;
 6639  struct device *__cil_tmp110 ;
 6640  struct device  const  *__cil_tmp111 ;
 6641  struct usb_serial_driver *__cil_tmp112 ;
 6642  char const   *__cil_tmp113 ;
 6643  spinlock_t *__cil_tmp114 ;
 6644  struct raw_spinlock *__cil_tmp115 ;
 6645  struct mutex *__cil_tmp116 ;
 6646  struct work_struct *__cil_tmp117 ;
 6647  struct lockdep_map *__cil_tmp118 ;
 6648  struct list_head *__cil_tmp119 ;
 6649  struct list_head *__cil_tmp120 ;
 6650  struct list_head *__cil_tmp121 ;
 6651  struct list_head *__cil_tmp122 ;
 6652  struct list_head *__cil_tmp123 ;
 6653  struct list_head *__cil_tmp124 ;
 6654  struct device *__cil_tmp125 ;
 6655  struct device  const  *__cil_tmp126 ;
 6656  struct urb *__cil_tmp127 ;
 6657  u32 __cil_tmp128 ;
 6658  size_t __cil_tmp129 ;
 6659  void *__cil_tmp130 ;
 6660  struct device *__cil_tmp131 ;
 6661  struct device  const  *__cil_tmp132 ;
 6662  struct device *__cil_tmp133 ;
 6663  struct device  const  *__cil_tmp134 ;
 6664  struct usb_device *__cil_tmp135 ;
 6665  __u8 __cil_tmp136 ;
 6666  unsigned int __cil_tmp137 ;
 6667  struct usb_device *__cil_tmp138 ;
 6668  int __cil_tmp139 ;
 6669  unsigned int __cil_tmp140 ;
 6670  unsigned int __cil_tmp141 ;
 6671  unsigned int __cil_tmp142 ;
 6672  void *__cil_tmp143 ;
 6673  void *__cil_tmp144 ;
 6674  struct list_head *__cil_tmp145 ;
 6675  struct list_head *__cil_tmp146 ;
 6676  struct device *__cil_tmp147 ;
 6677  struct device  const  *__cil_tmp148 ;
 6678  struct urb *__cil_tmp149 ;
 6679  u32 __cil_tmp150 ;
 6680  size_t __cil_tmp151 ;
 6681  void *__cil_tmp152 ;
 6682  struct device *__cil_tmp153 ;
 6683  struct device  const  *__cil_tmp154 ;
 6684  struct device *__cil_tmp155 ;
 6685  struct device  const  *__cil_tmp156 ;
 6686  struct usb_device *__cil_tmp157 ;
 6687  __u8 __cil_tmp158 ;
 6688  unsigned int __cil_tmp159 ;
 6689  struct usb_device *__cil_tmp160 ;
 6690  int __cil_tmp161 ;
 6691  unsigned int __cil_tmp162 ;
 6692  unsigned int __cil_tmp163 ;
 6693  void *__cil_tmp164 ;
 6694  void *__cil_tmp165 ;
 6695  struct list_head *__cil_tmp166 ;
 6696  struct list_head *__cil_tmp167 ;
 6697  void *__cil_tmp168 ;
 6698  void *__cil_tmp169 ;
 6699  unsigned long __cil_tmp170 ;
 6700  unsigned long __cil_tmp171 ;
 6701  struct usb_device *__cil_tmp172 ;
 6702  struct device *__cil_tmp173 ;
 6703  struct device  const  *__cil_tmp174 ;
 6704  struct usb_serial_driver *__cil_tmp175 ;
 6705  char const   *__cil_tmp176 ;
 6706  struct mutex *__cil_tmp177 ;
 6707  wait_queue_head_t *__cil_tmp178 ;
 6708  void *__cil_tmp179 ;
 6709  struct urb *__cil_tmp180 ;
 6710  struct urb *__cil_tmp181 ;
 6711  void const   *__cil_tmp182 ;
 6712  void const   *__cil_tmp183 ;
 6713  struct usb_device *__cil_tmp184 ;
 6714  struct device *__cil_tmp185 ;
 6715  struct device  const  *__cil_tmp186 ;
 6716  struct usb_serial_driver *__cil_tmp187 ;
 6717  char const   *__cil_tmp188 ;
 6718  struct usb_device *__cil_tmp189 ;
 6719  struct device *__cil_tmp190 ;
 6720  struct device  const  *__cil_tmp191 ;
 6721  struct usb_serial_driver *__cil_tmp192 ;
 6722  char const   *__cil_tmp193 ;
 6723  struct usb_device *__cil_tmp194 ;
 6724  struct device *__cil_tmp195 ;
 6725  struct device  const  *__cil_tmp196 ;
 6726  struct usb_serial_driver *__cil_tmp197 ;
 6727  char const   *__cil_tmp198 ;
 6728  void const   *__cil_tmp199 ;
 6729  unsigned char __cil_tmp200 ;
 6730  int __cil_tmp201 ;
 6731  struct list_head *__cil_tmp202 ;
 6732  struct whiteheat_urb_wrap *__cil_tmp203 ;
 6733  struct list_head *__cil_tmp204 ;
 6734  unsigned int __cil_tmp205 ;
 6735  char *__cil_tmp206 ;
 6736  char *__cil_tmp207 ;
 6737  void const   *__cil_tmp208 ;
 6738  void *__cil_tmp209 ;
 6739  void const   *__cil_tmp210 ;
 6740  struct list_head *__cil_tmp211 ;
 6741  struct whiteheat_urb_wrap *__cil_tmp212 ;
 6742  struct list_head *__cil_tmp213 ;
 6743  unsigned int __cil_tmp214 ;
 6744  char *__cil_tmp215 ;
 6745  char *__cil_tmp216 ;
 6746  void const   *__cil_tmp217 ;
 6747  void *__cil_tmp218 ;
 6748  void const   *__cil_tmp219 ;
 6749  void const   *__cil_tmp220 ;
 6750  void const   *__cil_tmp221 ;
 6751  void const   *__cil_tmp222 ;
 6752
 6753  {
 6754  {
 6755#line 410
 6756  command_port = serial->port[4];
 6757#line 412
 6758  __cil_tmp32 = serial->dev;
 6759#line 412
 6760  __cil_tmp33 = command_port->bulk_out_endpointAddress;
 6761#line 412
 6762  __cil_tmp34 = (unsigned int )__cil_tmp33;
 6763#line 412
 6764  tmp___8 = __create_pipe(__cil_tmp32, __cil_tmp34);
 6765#line 412
 6766  __cil_tmp35 = 3 << 30;
 6767#line 412
 6768  __cil_tmp36 = (unsigned int )__cil_tmp35;
 6769#line 412
 6770  __cil_tmp37 = __cil_tmp36 | tmp___8;
 6771#line 412
 6772  pipe = (int )__cil_tmp37;
 6773#line 414
 6774  __cil_tmp38 = (size_t )2;
 6775#line 414
 6776  tmp___9 = kmalloc(__cil_tmp38, 208U);
 6777#line 414
 6778  command = (__u8 *)tmp___9;
 6779  }
 6780#line 415
 6781  if (! command) {
 6782#line 416
 6783    goto no_command_buffer;
 6784  } else {
 6785
 6786  }
 6787  {
 6788#line 417
 6789  __cil_tmp39 = command + 0;
 6790#line 417
 6791  *__cil_tmp39 = (__u8 )11;
 6792#line 418
 6793  __cil_tmp40 = command + 1;
 6794#line 418
 6795  *__cil_tmp40 = (__u8 )0;
 6796#line 420
 6797  __cil_tmp41 = 19UL + 1UL;
 6798#line 420
 6799  tmp___10 = kmalloc(__cil_tmp41, 208U);
 6800#line 420
 6801  result = (__u8 *)tmp___10;
 6802  }
 6803#line 421
 6804  if (! result) {
 6805#line 422
 6806    goto no_result_buffer;
 6807  } else {
 6808
 6809  }
 6810  {
 6811#line 428
 6812  __cil_tmp42 = serial->dev;
 6813#line 428
 6814  usb_clear_halt(__cil_tmp42, pipe);
 6815#line 429
 6816  __cil_tmp43 = serial->dev;
 6817#line 429
 6818  __cil_tmp44 = (unsigned int )pipe;
 6819#line 429
 6820  __cil_tmp45 = (void *)command;
 6821#line 429
 6822  ret = usb_bulk_msg(__cil_tmp43, __cil_tmp44, __cil_tmp45, 2, & alen, 2000);
 6823  }
 6824#line 431
 6825  if (ret) {
 6826    {
 6827#line 432
 6828    __cil_tmp46 = serial->dev;
 6829#line 432
 6830    __cil_tmp47 = & __cil_tmp46->dev;
 6831#line 432
 6832    __cil_tmp48 = (struct device  const  *)__cil_tmp47;
 6833#line 432
 6834    __cil_tmp49 = serial->type;
 6835#line 432
 6836    __cil_tmp50 = __cil_tmp49->description;
 6837#line 432
 6838    dev_err(__cil_tmp48, "%s: Couldn\'t send command [%d]\n", __cil_tmp50, ret);
 6839    }
 6840#line 434
 6841    goto no_firmware;
 6842  } else
 6843#line 435
 6844  if (alen != 2) {
 6845    {
 6846#line 436
 6847    __cil_tmp51 = serial->dev;
 6848#line 436
 6849    __cil_tmp52 = & __cil_tmp51->dev;
 6850#line 436
 6851    __cil_tmp53 = (struct device  const  *)__cil_tmp52;
 6852#line 436
 6853    __cil_tmp54 = serial->type;
 6854#line 436
 6855    __cil_tmp55 = __cil_tmp54->description;
 6856#line 436
 6857    dev_err(__cil_tmp53, "%s: Send command incomplete [%d]\n", __cil_tmp55, alen);
 6858    }
 6859#line 438
 6860    goto no_firmware;
 6861  } else {
 6862
 6863  }
 6864  {
 6865#line 441
 6866  __cil_tmp56 = serial->dev;
 6867#line 441
 6868  __cil_tmp57 = command_port->bulk_in_endpointAddress;
 6869#line 441
 6870  __cil_tmp58 = (unsigned int )__cil_tmp57;
 6871#line 441
 6872  tmp___11 = __create_pipe(__cil_tmp56, __cil_tmp58);
 6873#line 441
 6874  __cil_tmp59 = 3 << 30;
 6875#line 441
 6876  __cil_tmp60 = (unsigned int )__cil_tmp59;
 6877#line 441
 6878  __cil_tmp61 = __cil_tmp60 | tmp___11;
 6879#line 441
 6880  __cil_tmp62 = __cil_tmp61 | 128U;
 6881#line 441
 6882  pipe = (int )__cil_tmp62;
 6883#line 444
 6884  __cil_tmp63 = serial->dev;
 6885#line 444
 6886  usb_clear_halt(__cil_tmp63, pipe);
 6887#line 445
 6888  __cil_tmp64 = serial->dev;
 6889#line 445
 6890  __cil_tmp65 = (unsigned int )pipe;
 6891#line 445
 6892  __cil_tmp66 = (void *)result;
 6893#line 445
 6894  __cil_tmp67 = 19UL + 1UL;
 6895#line 445
 6896  __cil_tmp68 = (int )__cil_tmp67;
 6897#line 445
 6898  ret = usb_bulk_msg(__cil_tmp64, __cil_tmp65, __cil_tmp66, __cil_tmp68, & alen, 2000);
 6899  }
 6900#line 447
 6901  if (ret) {
 6902    {
 6903#line 448
 6904    __cil_tmp69 = serial->dev;
 6905#line 448
 6906    __cil_tmp70 = & __cil_tmp69->dev;
 6907#line 448
 6908    __cil_tmp71 = (struct device  const  *)__cil_tmp70;
 6909#line 448
 6910    __cil_tmp72 = serial->type;
 6911#line 448
 6912    __cil_tmp73 = __cil_tmp72->description;
 6913#line 448
 6914    dev_err(__cil_tmp71, "%s: Couldn\'t get results [%d]\n", __cil_tmp73, ret);
 6915    }
 6916#line 450
 6917    goto no_firmware;
 6918  } else {
 6919    {
 6920#line 451
 6921    __cil_tmp74 = 19UL + 1UL;
 6922#line 451
 6923    __cil_tmp75 = (unsigned long )alen;
 6924#line 451
 6925    if (__cil_tmp75 != __cil_tmp74) {
 6926      {
 6927#line 452
 6928      __cil_tmp76 = serial->dev;
 6929#line 452
 6930      __cil_tmp77 = & __cil_tmp76->dev;
 6931#line 452
 6932      __cil_tmp78 = (struct device  const  *)__cil_tmp77;
 6933#line 452
 6934      __cil_tmp79 = serial->type;
 6935#line 452
 6936      __cil_tmp80 = __cil_tmp79->description;
 6937#line 452
 6938      dev_err(__cil_tmp78, "%s: Get results incomplete [%d]\n", __cil_tmp80, alen);
 6939      }
 6940#line 454
 6941      goto no_firmware;
 6942    } else {
 6943      {
 6944#line 455
 6945      __cil_tmp81 = command + 0;
 6946#line 455
 6947      __cil_tmp82 = *__cil_tmp81;
 6948#line 455
 6949      __cil_tmp83 = (int )__cil_tmp82;
 6950#line 455
 6951      __cil_tmp84 = result + 0;
 6952#line 455
 6953      __cil_tmp85 = *__cil_tmp84;
 6954#line 455
 6955      __cil_tmp86 = (int )__cil_tmp85;
 6956#line 455
 6957      if (__cil_tmp86 != __cil_tmp83) {
 6958        {
 6959#line 456
 6960        __cil_tmp87 = serial->dev;
 6961#line 456
 6962        __cil_tmp88 = & __cil_tmp87->dev;
 6963#line 456
 6964        __cil_tmp89 = (struct device  const  *)__cil_tmp88;
 6965#line 456
 6966        __cil_tmp90 = serial->type;
 6967#line 456
 6968        __cil_tmp91 = __cil_tmp90->description;
 6969#line 456
 6970        __cil_tmp92 = result + 0;
 6971#line 456
 6972        __cil_tmp93 = *__cil_tmp92;
 6973#line 456
 6974        __cil_tmp94 = (int )__cil_tmp93;
 6975#line 456
 6976        dev_err(__cil_tmp89, "%s: Command failed [%d]\n", __cil_tmp91, __cil_tmp94);
 6977        }
 6978#line 458
 6979        goto no_firmware;
 6980      } else {
 6981
 6982      }
 6983      }
 6984    }
 6985    }
 6986  }
 6987  {
 6988#line 461
 6989  __cil_tmp95 = result + 1;
 6990#line 461
 6991  hw_info = (struct whiteheat_hw_info *)__cil_tmp95;
 6992#line 463
 6993  __cil_tmp96 = serial->dev;
 6994#line 463
 6995  __cil_tmp97 = & __cil_tmp96->dev;
 6996#line 463
 6997  __cil_tmp98 = (struct device  const  *)__cil_tmp97;
 6998#line 463
 6999  __cil_tmp99 = serial->type;
 7000#line 463
 7001  __cil_tmp100 = __cil_tmp99->description;
 7002#line 463
 7003  __cil_tmp101 = hw_info->sw_major_rev;
 7004#line 463
 7005  __cil_tmp102 = (int )__cil_tmp101;
 7006#line 463
 7007  __cil_tmp103 = hw_info->sw_minor_rev;
 7008#line 463
 7009  __cil_tmp104 = (int )__cil_tmp103;
 7010#line 463
 7011  _dev_info(__cil_tmp98, "%s: Driver %s: Firmware v%d.%02d\n", __cil_tmp100, "v2.0",
 7012            __cil_tmp102, __cil_tmp104);
 7013#line 467
 7014  i = 0;
 7015  }
 7016  {
 7017#line 467
 7018  while (1) {
 7019    while_continue: /* CIL Label */ ;
 7020
 7021    {
 7022#line 467
 7023    __cil_tmp105 = serial->num_ports;
 7024#line 467
 7025    __cil_tmp106 = (int )__cil_tmp105;
 7026#line 467
 7027    if (i < __cil_tmp106) {
 7028
 7029    } else {
 7030#line 467
 7031      goto while_break;
 7032    }
 7033    }
 7034    {
 7035#line 468
 7036    port = serial->port[i];
 7037#line 470
 7038    tmp___12 = kmalloc(416UL, 208U);
 7039#line 470
 7040    info = (struct whiteheat_private *)tmp___12;
 7041    }
 7042    {
 7043#line 471
 7044    __cil_tmp107 = (void *)0;
 7045#line 471
 7046    __cil_tmp108 = (unsigned long )__cil_tmp107;
 7047#line 471
 7048    __cil_tmp109 = (unsigned long )info;
 7049#line 471
 7050    if (__cil_tmp109 == __cil_tmp108) {
 7051      {
 7052#line 472
 7053      __cil_tmp110 = & port->dev;
 7054#line 472
 7055      __cil_tmp111 = (struct device  const  *)__cil_tmp110;
 7056#line 472
 7057      __cil_tmp112 = serial->type;
 7058#line 472
 7059      __cil_tmp113 = __cil_tmp112->description;
 7060#line 472
 7061      dev_err(__cil_tmp111, "%s: Out of memory for port structures\n", __cil_tmp113);
 7062      }
 7063#line 475
 7064      goto no_private;
 7065    } else {
 7066
 7067    }
 7068    }
 7069    {
 7070#line 478
 7071    while (1) {
 7072      while_continue___0: /* CIL Label */ ;
 7073      {
 7074#line 478
 7075      __cil_tmp114 = & info->lock;
 7076#line 478
 7077      spinlock_check(__cil_tmp114);
 7078      }
 7079      {
 7080#line 478
 7081      while (1) {
 7082        while_continue___1: /* CIL Label */ ;
 7083        {
 7084#line 478
 7085        __cil_tmp115 = & info->lock.__annonCompField18.rlock;
 7086#line 478
 7087        __raw_spin_lock_init(__cil_tmp115, "&(&info->lock)->rlock", & __key___7);
 7088        }
 7089#line 478
 7090        goto while_break___1;
 7091      }
 7092      while_break___13: /* CIL Label */ ;
 7093      }
 7094
 7095      while_break___1: ;
 7096#line 478
 7097      goto while_break___0;
 7098    }
 7099    while_break___12: /* CIL Label */ ;
 7100    }
 7101
 7102    while_break___0: ;
 7103    {
 7104#line 479
 7105    while (1) {
 7106      while_continue___2: /* CIL Label */ ;
 7107      {
 7108#line 479
 7109      __cil_tmp116 = & info->deathwarrant;
 7110#line 479
 7111      __mutex_init(__cil_tmp116, "&info->deathwarrant", & __key___8);
 7112      }
 7113#line 479
 7114      goto while_break___2;
 7115    }
 7116    while_break___14: /* CIL Label */ ;
 7117    }
 7118
 7119    while_break___2: 
 7120#line 480
 7121    info->flags = (__u8 )0;
 7122#line 481
 7123    info->mcr = (__u8 )0;
 7124    {
 7125#line 482
 7126    while (1) {
 7127      while_continue___3: /* CIL Label */ ;
 7128
 7129      {
 7130#line 482
 7131      while (1) {
 7132        while_continue___4: /* CIL Label */ ;
 7133        {
 7134#line 482
 7135        __cil_tmp117 = & info->rx_work;
 7136#line 482
 7137        __init_work(__cil_tmp117, 0);
 7138#line 482
 7139        __constr_expr_0.counter = 2097664L;
 7140#line 482
 7141        info->rx_work.data = __constr_expr_0;
 7142#line 482
 7143        __cil_tmp118 = & info->rx_work.lockdep_map;
 7144#line 482
 7145        lockdep_init_map(__cil_tmp118, "(&info->rx_work)", & __key___9, 0);
 7146#line 482
 7147        __cil_tmp119 = & info->rx_work.entry;
 7148#line 482
 7149        INIT_LIST_HEAD(__cil_tmp119);
 7150        }
 7151        {
 7152#line 482
 7153        while (1) {
 7154          while_continue___5: /* CIL Label */ ;
 7155#line 482
 7156          info->rx_work.func = & rx_data_softint;
 7157#line 482
 7158          goto while_break___5;
 7159        }
 7160        while_break___17: /* CIL Label */ ;
 7161        }
 7162
 7163        while_break___5: ;
 7164#line 482
 7165        goto while_break___4;
 7166      }
 7167      while_break___16: /* CIL Label */ ;
 7168      }
 7169
 7170      while_break___4: ;
 7171#line 482
 7172      goto while_break___3;
 7173    }
 7174    while_break___15: /* CIL Label */ ;
 7175    }
 7176
 7177    while_break___3: 
 7178    {
 7179#line 483
 7180    info->port = port;
 7181#line 485
 7182    __cil_tmp120 = & info->rx_urbs_free;
 7183#line 485
 7184    INIT_LIST_HEAD(__cil_tmp120);
 7185#line 486
 7186    __cil_tmp121 = & info->rx_urbs_submitted;
 7187#line 486
 7188    INIT_LIST_HEAD(__cil_tmp121);
 7189#line 487
 7190    __cil_tmp122 = & info->rx_urb_q;
 7191#line 487
 7192    INIT_LIST_HEAD(__cil_tmp122);
 7193#line 488
 7194    __cil_tmp123 = & info->tx_urbs_free;
 7195#line 488
 7196    INIT_LIST_HEAD(__cil_tmp123);
 7197#line 489
 7198    __cil_tmp124 = & info->tx_urbs_submitted;
 7199#line 489
 7200    INIT_LIST_HEAD(__cil_tmp124);
 7201#line 491
 7202    j = 0;
 7203    }
 7204    {
 7205#line 491
 7206    while (1) {
 7207      while_continue___6: /* CIL Label */ ;
 7208
 7209#line 491
 7210      if (j < urb_pool_size) {
 7211
 7212      } else {
 7213#line 491
 7214        goto while_break___6;
 7215      }
 7216      {
 7217#line 492
 7218      urb = usb_alloc_urb(0, 208U);
 7219      }
 7220#line 493
 7221      if (! urb) {
 7222        {
 7223#line 494
 7224        __cil_tmp125 = & port->dev;
 7225#line 494
 7226        __cil_tmp126 = (struct device  const  *)__cil_tmp125;
 7227#line 494
 7228        dev_err(__cil_tmp126, "No free urbs available\n");
 7229        }
 7230#line 495
 7231        goto no_rx_urb;
 7232      } else {
 7233
 7234      }
 7235      {
 7236#line 497
 7237      __cil_tmp127 = port->read_urb;
 7238#line 497
 7239      __cil_tmp128 = __cil_tmp127->transfer_buffer_length;
 7240#line 497
 7241      buf_size = (int )__cil_tmp128;
 7242#line 498
 7243      __cil_tmp129 = (size_t )buf_size;
 7244#line 498
 7245      urb->transfer_buffer = kmalloc(__cil_tmp129, 208U);
 7246      }
 7247      {
 7248#line 499
 7249      __cil_tmp130 = urb->transfer_buffer;
 7250#line 499
 7251      if (! __cil_tmp130) {
 7252        {
 7253#line 500
 7254        __cil_tmp131 = & port->dev;
 7255#line 500
 7256        __cil_tmp132 = (struct device  const  *)__cil_tmp131;
 7257#line 500
 7258        dev_err(__cil_tmp132, "Couldn\'t allocate urb buffer\n");
 7259        }
 7260#line 502
 7261        goto no_rx_buf;
 7262      } else {
 7263
 7264      }
 7265      }
 7266      {
 7267#line 504
 7268      tmp___13 = kmalloc(24UL, 208U);
 7269#line 504
 7270      wrap = (struct whiteheat_urb_wrap *)tmp___13;
 7271      }
 7272#line 505
 7273      if (! wrap) {
 7274        {
 7275#line 506
 7276        __cil_tmp133 = & port->dev;
 7277#line 506
 7278        __cil_tmp134 = (struct device  const  *)__cil_tmp133;
 7279#line 506
 7280        dev_err(__cil_tmp134, "Couldn\'t allocate urb wrapper\n");
 7281        }
 7282#line 508
 7283        goto no_rx_wrap;
 7284      } else {
 7285
 7286      }
 7287      {
 7288#line 510
 7289      __cil_tmp135 = serial->dev;
 7290#line 510
 7291      __cil_tmp136 = port->bulk_in_endpointAddress;
 7292#line 510
 7293      __cil_tmp137 = (unsigned int )__cil_tmp136;
 7294#line 510
 7295      tmp___14 = __create_pipe(__cil_tmp135, __cil_tmp137);
 7296#line 510
 7297      __cil_tmp138 = serial->dev;
 7298#line 510
 7299      __cil_tmp139 = 3 << 30;
 7300#line 510
 7301      __cil_tmp140 = (unsigned int )__cil_tmp139;
 7302#line 510
 7303      __cil_tmp141 = __cil_tmp140 | tmp___14;
 7304#line 510
 7305      __cil_tmp142 = __cil_tmp141 | 128U;
 7306#line 510
 7307      __cil_tmp143 = urb->transfer_buffer;
 7308#line 510
 7309      __cil_tmp144 = (void *)port;
 7310#line 510
 7311      usb_fill_bulk_urb(urb, __cil_tmp138, __cil_tmp142, __cil_tmp143, buf_size, & whiteheat_read_callback,
 7312                        __cil_tmp144);
 7313#line 515
 7314      wrap->urb = urb;
 7315#line 516
 7316      __cil_tmp145 = & wrap->list;
 7317#line 516
 7318      __cil_tmp146 = & info->rx_urbs_free;
 7319#line 516
 7320      list_add(__cil_tmp145, __cil_tmp146);
 7321#line 518
 7322      urb = usb_alloc_urb(0, 208U);
 7323      }
 7324#line 519
 7325      if (! urb) {
 7326        {
 7327#line 520
 7328        __cil_tmp147 = & port->dev;
 7329#line 520
 7330        __cil_tmp148 = (struct device  const  *)__cil_tmp147;
 7331#line 520
 7332        dev_err(__cil_tmp148, "No free urbs available\n");
 7333        }
 7334#line 521
 7335        goto no_tx_urb;
 7336      } else {
 7337
 7338      }
 7339      {
 7340#line 523
 7341      __cil_tmp149 = port->write_urb;
 7342#line 523
 7343      __cil_tmp150 = __cil_tmp149->transfer_buffer_length;
 7344#line 523
 7345      buf_size = (int )__cil_tmp150;
 7346#line 524
 7347      __cil_tmp151 = (size_t )buf_size;
 7348#line 524
 7349      urb->transfer_buffer = kmalloc(__cil_tmp151, 208U);
 7350      }
 7351      {
 7352#line 525
 7353      __cil_tmp152 = urb->transfer_buffer;
 7354#line 525
 7355      if (! __cil_tmp152) {
 7356        {
 7357#line 526
 7358        __cil_tmp153 = & port->dev;
 7359#line 526
 7360        __cil_tmp154 = (struct device  const  *)__cil_tmp153;
 7361#line 526
 7362        dev_err(__cil_tmp154, "Couldn\'t allocate urb buffer\n");
 7363        }
 7364#line 528
 7365        goto no_tx_buf;
 7366      } else {
 7367
 7368      }
 7369      }
 7370      {
 7371#line 530
 7372      tmp___15 = kmalloc(24UL, 208U);
 7373#line 530
 7374      wrap = (struct whiteheat_urb_wrap *)tmp___15;
 7375      }
 7376#line 531
 7377      if (! wrap) {
 7378        {
 7379#line 532
 7380        __cil_tmp155 = & port->dev;
 7381#line 532
 7382        __cil_tmp156 = (struct device  const  *)__cil_tmp155;
 7383#line 532
 7384        dev_err(__cil_tmp156, "Couldn\'t allocate urb wrapper\n");
 7385        }
 7386#line 534
 7387        goto no_tx_wrap;
 7388      } else {
 7389
 7390      }
 7391      {
 7392#line 536
 7393      __cil_tmp157 = serial->dev;
 7394#line 536
 7395      __cil_tmp158 = port->bulk_out_endpointAddress;
 7396#line 536
 7397      __cil_tmp159 = (unsigned int )__cil_tmp158;
 7398#line 536
 7399      tmp___16 = __create_pipe(__cil_tmp157, __cil_tmp159);
 7400#line 536
 7401      __cil_tmp160 = serial->dev;
 7402#line 536
 7403      __cil_tmp161 = 3 << 30;
 7404#line 536
 7405      __cil_tmp162 = (unsigned int )__cil_tmp161;
 7406#line 536
 7407      __cil_tmp163 = __cil_tmp162 | tmp___16;
 7408#line 536
 7409      __cil_tmp164 = urb->transfer_buffer;
 7410#line 536
 7411      __cil_tmp165 = (void *)port;
 7412#line 536
 7413      usb_fill_bulk_urb(urb, __cil_tmp160, __cil_tmp163, __cil_tmp164, buf_size, & whiteheat_write_callback,
 7414                        __cil_tmp165);
 7415#line 541
 7416      wrap->urb = urb;
 7417#line 542
 7418      __cil_tmp166 = & wrap->list;
 7419#line 542
 7420      __cil_tmp167 = & info->tx_urbs_free;
 7421#line 542
 7422      list_add(__cil_tmp166, __cil_tmp167);
 7423#line 491
 7424      j = j + 1;
 7425      }
 7426    }
 7427    while_break___18: /* CIL Label */ ;
 7428    }
 7429
 7430    while_break___6: 
 7431    {
 7432#line 545
 7433    __cil_tmp168 = (void *)info;
 7434#line 545
 7435    usb_set_serial_port_data(port, __cil_tmp168);
 7436#line 467
 7437    i = i + 1;
 7438    }
 7439  }
 7440  while_break___11: /* CIL Label */ ;
 7441  }
 7442
 7443  while_break: 
 7444  {
 7445#line 548
 7446  tmp___17 = kmalloc(328UL, 208U);
 7447#line 548
 7448  command_info = (struct whiteheat_command_private *)tmp___17;
 7449  }
 7450  {
 7451#line 550
 7452  __cil_tmp169 = (void *)0;
 7453#line 550
 7454  __cil_tmp170 = (unsigned long )__cil_tmp169;
 7455#line 550
 7456  __cil_tmp171 = (unsigned long )command_info;
 7457#line 550
 7458  if (__cil_tmp171 == __cil_tmp170) {
 7459    {
 7460#line 551
 7461    __cil_tmp172 = serial->dev;
 7462#line 551
 7463    __cil_tmp173 = & __cil_tmp172->dev;
 7464#line 551
 7465    __cil_tmp174 = (struct device  const  *)__cil_tmp173;
 7466#line 551
 7467    __cil_tmp175 = serial->type;
 7468#line 551
 7469    __cil_tmp176 = __cil_tmp175->description;
 7470#line 551
 7471    dev_err(__cil_tmp174, "%s: Out of memory for port structures\n", __cil_tmp176);
 7472    }
 7473#line 554
 7474    goto no_command_private;
 7475  } else {
 7476
 7477  }
 7478  }
 7479  {
 7480#line 557
 7481  while (1) {
 7482    while_continue___7: /* CIL Label */ ;
 7483    {
 7484#line 557
 7485    __cil_tmp177 = & command_info->mutex;
 7486#line 557
 7487    __mutex_init(__cil_tmp177, "&command_info->mutex", & __key___10);
 7488    }
 7489#line 557
 7490    goto while_break___7;
 7491  }
 7492  while_break___19: /* CIL Label */ ;
 7493  }
 7494
 7495  while_break___7: 
 7496#line 558
 7497  command_info->port_running = (__u8 )0;
 7498  {
 7499#line 559
 7500  while (1) {
 7501    while_continue___8: /* CIL Label */ ;
 7502    {
 7503#line 559
 7504    __cil_tmp178 = & command_info->wait_command;
 7505#line 559
 7506    __init_waitqueue_head(__cil_tmp178, & __key___11);
 7507    }
 7508#line 559
 7509    goto while_break___8;
 7510  }
 7511  while_break___20: /* CIL Label */ ;
 7512  }
 7513
 7514  while_break___8: 
 7515  {
 7516#line 560
 7517  __cil_tmp179 = (void *)command_info;
 7518#line 560
 7519  usb_set_serial_port_data(command_port, __cil_tmp179);
 7520#line 561
 7521  __cil_tmp180 = command_port->write_urb;
 7522#line 561
 7523  __cil_tmp180->complete = & command_port_write_callback;
 7524#line 562
 7525  __cil_tmp181 = command_port->read_urb;
 7526#line 562
 7527  __cil_tmp181->complete = & command_port_read_callback;
 7528#line 563
 7529  __cil_tmp182 = (void const   *)result;
 7530#line 563
 7531  kfree(__cil_tmp182);
 7532#line 564
 7533  __cil_tmp183 = (void const   *)command;
 7534#line 564
 7535  kfree(__cil_tmp183);
 7536  }
 7537#line 566
 7538  return (0);
 7539  no_firmware: 
 7540  {
 7541#line 570
 7542  __cil_tmp184 = serial->dev;
 7543#line 570
 7544  __cil_tmp185 = & __cil_tmp184->dev;
 7545#line 570
 7546  __cil_tmp186 = (struct device  const  *)__cil_tmp185;
 7547#line 570
 7548  __cil_tmp187 = serial->type;
 7549#line 570
 7550  __cil_tmp188 = __cil_tmp187->description;
 7551#line 570
 7552  dev_err(__cil_tmp186, "%s: Unable to retrieve firmware version, try replugging\n",
 7553          __cil_tmp188);
 7554#line 573
 7555  __cil_tmp189 = serial->dev;
 7556#line 573
 7557  __cil_tmp190 = & __cil_tmp189->dev;
 7558#line 573
 7559  __cil_tmp191 = (struct device  const  *)__cil_tmp190;
 7560#line 573
 7561  __cil_tmp192 = serial->type;
 7562#line 573
 7563  __cil_tmp193 = __cil_tmp192->description;
 7564#line 573
 7565  dev_err(__cil_tmp191, "%s: If the firmware is not running (status led not blinking)\n",
 7566          __cil_tmp193);
 7567#line 576
 7568  __cil_tmp194 = serial->dev;
 7569#line 576
 7570  __cil_tmp195 = & __cil_tmp194->dev;
 7571#line 576
 7572  __cil_tmp196 = (struct device  const  *)__cil_tmp195;
 7573#line 576
 7574  __cil_tmp197 = serial->type;
 7575#line 576
 7576  __cil_tmp198 = __cil_tmp197->description;
 7577#line 576
 7578  dev_err(__cil_tmp196, "%s: please contact support@connecttech.com\n", __cil_tmp198);
 7579#line 579
 7580  __cil_tmp199 = (void const   *)result;
 7581#line 579
 7582  kfree(__cil_tmp199);
 7583  }
 7584#line 580
 7585  return (-19);
 7586  no_command_private: 
 7587#line 583
 7588  __cil_tmp200 = serial->num_ports;
 7589#line 583
 7590  __cil_tmp201 = (int )__cil_tmp200;
 7591#line 583
 7592  i = __cil_tmp201 - 1;
 7593  {
 7594#line 583
 7595  while (1) {
 7596    while_continue___9: /* CIL Label */ ;
 7597
 7598#line 583
 7599    if (i >= 0) {
 7600
 7601    } else {
 7602#line 583
 7603      goto while_break___9;
 7604    }
 7605    {
 7606#line 584
 7607    port = serial->port[i];
 7608#line 585
 7609    tmp___18 = usb_get_serial_port_data(port);
 7610#line 585
 7611    info = (struct whiteheat_private *)tmp___18;
 7612#line 586
 7613    j = urb_pool_size - 1;
 7614    }
 7615    {
 7616#line 586
 7617    while (1) {
 7618      while_continue___10: /* CIL Label */ ;
 7619
 7620#line 586
 7621      if (j >= 0) {
 7622
 7623      } else {
 7624#line 586
 7625        goto while_break___10;
 7626      }
 7627      {
 7628#line 587
 7629      __cil_tmp202 = & info->tx_urbs_free;
 7630#line 587
 7631      tmp___7 = list_first(__cil_tmp202);
 7632#line 588
 7633      list_del(tmp___7);
 7634#line 589
 7635      __mptr = (struct list_head  const  *)tmp___7;
 7636#line 589
 7637      __cil_tmp203 = (struct whiteheat_urb_wrap *)0;
 7638#line 589
 7639      __cil_tmp204 = & __cil_tmp203->list;
 7640#line 589
 7641      __cil_tmp205 = (unsigned int )__cil_tmp204;
 7642#line 589
 7643      __cil_tmp206 = (char *)__mptr;
 7644#line 589
 7645      __cil_tmp207 = __cil_tmp206 - __cil_tmp205;
 7646#line 589
 7647      wrap = (struct whiteheat_urb_wrap *)__cil_tmp207;
 7648#line 590
 7649      urb = wrap->urb;
 7650#line 591
 7651      __cil_tmp208 = (void const   *)wrap;
 7652#line 591
 7653      kfree(__cil_tmp208);
 7654      }
 7655      no_tx_wrap: 
 7656      {
 7657#line 593
 7658      __cil_tmp209 = urb->transfer_buffer;
 7659#line 593
 7660      __cil_tmp210 = (void const   *)__cil_tmp209;
 7661#line 593
 7662      kfree(__cil_tmp210);
 7663      }
 7664      no_tx_buf: 
 7665      {
 7666#line 595
 7667      usb_free_urb(urb);
 7668      }
 7669      no_tx_urb: 
 7670      {
 7671#line 597
 7672      __cil_tmp211 = & info->rx_urbs_free;
 7673#line 597
 7674      tmp___7 = list_first(__cil_tmp211);
 7675#line 598
 7676      list_del(tmp___7);
 7677#line 599
 7678      __mptr___0 = (struct list_head  const  *)tmp___7;
 7679#line 599
 7680      __cil_tmp212 = (struct whiteheat_urb_wrap *)0;
 7681#line 599
 7682      __cil_tmp213 = & __cil_tmp212->list;
 7683#line 599
 7684      __cil_tmp214 = (unsigned int )__cil_tmp213;
 7685#line 599
 7686      __cil_tmp215 = (char *)__mptr___0;
 7687#line 599
 7688      __cil_tmp216 = __cil_tmp215 - __cil_tmp214;
 7689#line 599
 7690      wrap = (struct whiteheat_urb_wrap *)__cil_tmp216;
 7691#line 600
 7692      urb = wrap->urb;
 7693#line 601
 7694      __cil_tmp217 = (void const   *)wrap;
 7695#line 601
 7696      kfree(__cil_tmp217);
 7697      }
 7698      no_rx_wrap: 
 7699      {
 7700#line 603
 7701      __cil_tmp218 = urb->transfer_buffer;
 7702#line 603
 7703      __cil_tmp219 = (void const   *)__cil_tmp218;
 7704#line 603
 7705      kfree(__cil_tmp219);
 7706      }
 7707      no_rx_buf: 
 7708      {
 7709#line 605
 7710      usb_free_urb(urb);
 7711      }
 7712      no_rx_urb: 
 7713#line 586
 7714      j = j - 1;
 7715    }
 7716    while_break___22: /* CIL Label */ ;
 7717    }
 7718
 7719    while_break___10: 
 7720    {
 7721#line 609
 7722    __cil_tmp220 = (void const   *)info;
 7723#line 609
 7724    kfree(__cil_tmp220);
 7725    }
 7726    no_private: 
 7727#line 583
 7728    i = i - 1;
 7729  }
 7730  while_break___21: /* CIL Label */ ;
 7731  }
 7732
 7733  while_break___9: 
 7734  {
 7735#line 613
 7736  __cil_tmp221 = (void const   *)result;
 7737#line 613
 7738  kfree(__cil_tmp221);
 7739  }
 7740  no_result_buffer: 
 7741  {
 7742#line 615
 7743  __cil_tmp222 = (void const   *)command;
 7744#line 615
 7745  kfree(__cil_tmp222);
 7746  }
 7747  no_command_buffer: 
 7748#line 617
 7749  return (-12);
 7750}
 7751}
 7752#line 621 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 7753static void whiteheat_release(struct usb_serial *serial ) 
 7754{ struct usb_serial_port *command_port ;
 7755  struct usb_serial_port *port ;
 7756  struct whiteheat_private *info ;
 7757  struct whiteheat_urb_wrap *wrap ;
 7758  struct urb *urb ;
 7759  struct list_head *tmp___7 ;
 7760  struct list_head *tmp2 ;
 7761  int i ;
 7762  void *tmp___8 ;
 7763  void *tmp___9 ;
 7764  struct list_head  const  *__mptr ;
 7765  struct list_head  const  *__mptr___0 ;
 7766  void const   *__cil_tmp14 ;
 7767  unsigned char __cil_tmp15 ;
 7768  int __cil_tmp16 ;
 7769  struct list_head *__cil_tmp17 ;
 7770  unsigned long __cil_tmp18 ;
 7771  unsigned long __cil_tmp19 ;
 7772  struct whiteheat_urb_wrap *__cil_tmp20 ;
 7773  struct list_head *__cil_tmp21 ;
 7774  unsigned int __cil_tmp22 ;
 7775  char *__cil_tmp23 ;
 7776  char *__cil_tmp24 ;
 7777  void const   *__cil_tmp25 ;
 7778  void *__cil_tmp26 ;
 7779  void const   *__cil_tmp27 ;
 7780  struct list_head *__cil_tmp28 ;
 7781  unsigned long __cil_tmp29 ;
 7782  unsigned long __cil_tmp30 ;
 7783  struct whiteheat_urb_wrap *__cil_tmp31 ;
 7784  struct list_head *__cil_tmp32 ;
 7785  unsigned int __cil_tmp33 ;
 7786  char *__cil_tmp34 ;
 7787  char *__cil_tmp35 ;
 7788  void const   *__cil_tmp36 ;
 7789  void *__cil_tmp37 ;
 7790  void const   *__cil_tmp38 ;
 7791  void const   *__cil_tmp39 ;
 7792
 7793  {
 7794  {
 7795#line 632
 7796  while (1) {
 7797    while_continue: /* CIL Label */ ;
 7798
 7799#line 632
 7800    if (debug) {
 7801      {
 7802#line 632
 7803      printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 7804             "whiteheat_release");
 7805      }
 7806    } else {
 7807
 7808    }
 7809#line 632
 7810    goto while_break;
 7811  }
 7812  while_break___3: /* CIL Label */ ;
 7813  }
 7814
 7815  while_break: 
 7816  {
 7817#line 635
 7818  command_port = serial->port[4];
 7819#line 636
 7820  tmp___8 = usb_get_serial_port_data(command_port);
 7821#line 636
 7822  __cil_tmp14 = (void const   *)tmp___8;
 7823#line 636
 7824  kfree(__cil_tmp14);
 7825#line 638
 7826  i = 0;
 7827  }
 7828  {
 7829#line 638
 7830  while (1) {
 7831    while_continue___0: /* CIL Label */ ;
 7832
 7833    {
 7834#line 638
 7835    __cil_tmp15 = serial->num_ports;
 7836#line 638
 7837    __cil_tmp16 = (int )__cil_tmp15;
 7838#line 638
 7839    if (i < __cil_tmp16) {
 7840
 7841    } else {
 7842#line 638
 7843      goto while_break___0;
 7844    }
 7845    }
 7846    {
 7847#line 639
 7848    port = serial->port[i];
 7849#line 640
 7850    tmp___9 = usb_get_serial_port_data(port);
 7851#line 640
 7852    info = (struct whiteheat_private *)tmp___9;
 7853#line 641
 7854    tmp___7 = info->rx_urbs_free.next;
 7855#line 641
 7856    tmp2 = tmp___7->next;
 7857    }
 7858    {
 7859#line 641
 7860    while (1) {
 7861      while_continue___1: /* CIL Label */ ;
 7862
 7863      {
 7864#line 641
 7865      __cil_tmp17 = & info->rx_urbs_free;
 7866#line 641
 7867      __cil_tmp18 = (unsigned long )__cil_tmp17;
 7868#line 641
 7869      __cil_tmp19 = (unsigned long )tmp___7;
 7870#line 641
 7871      if (__cil_tmp19 != __cil_tmp18) {
 7872
 7873      } else {
 7874#line 641
 7875        goto while_break___1;
 7876      }
 7877      }
 7878      {
 7879#line 642
 7880      list_del(tmp___7);
 7881#line 643
 7882      __mptr = (struct list_head  const  *)tmp___7;
 7883#line 643
 7884      __cil_tmp20 = (struct whiteheat_urb_wrap *)0;
 7885#line 643
 7886      __cil_tmp21 = & __cil_tmp20->list;
 7887#line 643
 7888      __cil_tmp22 = (unsigned int )__cil_tmp21;
 7889#line 643
 7890      __cil_tmp23 = (char *)__mptr;
 7891#line 643
 7892      __cil_tmp24 = __cil_tmp23 - __cil_tmp22;
 7893#line 643
 7894      wrap = (struct whiteheat_urb_wrap *)__cil_tmp24;
 7895#line 644
 7896      urb = wrap->urb;
 7897#line 645
 7898      __cil_tmp25 = (void const   *)wrap;
 7899#line 645
 7900      kfree(__cil_tmp25);
 7901#line 646
 7902      __cil_tmp26 = urb->transfer_buffer;
 7903#line 646
 7904      __cil_tmp27 = (void const   *)__cil_tmp26;
 7905#line 646
 7906      kfree(__cil_tmp27);
 7907#line 647
 7908      usb_free_urb(urb);
 7909#line 641
 7910      tmp___7 = tmp2;
 7911#line 641
 7912      tmp2 = tmp___7->next;
 7913      }
 7914    }
 7915    while_break___5: /* CIL Label */ ;
 7916    }
 7917
 7918    while_break___1: 
 7919#line 649
 7920    tmp___7 = info->tx_urbs_free.next;
 7921#line 649
 7922    tmp2 = tmp___7->next;
 7923    {
 7924#line 649
 7925    while (1) {
 7926      while_continue___2: /* CIL Label */ ;
 7927
 7928      {
 7929#line 649
 7930      __cil_tmp28 = & info->tx_urbs_free;
 7931#line 649
 7932      __cil_tmp29 = (unsigned long )__cil_tmp28;
 7933#line 649
 7934      __cil_tmp30 = (unsigned long )tmp___7;
 7935#line 649
 7936      if (__cil_tmp30 != __cil_tmp29) {
 7937
 7938      } else {
 7939#line 649
 7940        goto while_break___2;
 7941      }
 7942      }
 7943      {
 7944#line 650
 7945      list_del(tmp___7);
 7946#line 651
 7947      __mptr___0 = (struct list_head  const  *)tmp___7;
 7948#line 651
 7949      __cil_tmp31 = (struct whiteheat_urb_wrap *)0;
 7950#line 651
 7951      __cil_tmp32 = & __cil_tmp31->list;
 7952#line 651
 7953      __cil_tmp33 = (unsigned int )__cil_tmp32;
 7954#line 651
 7955      __cil_tmp34 = (char *)__mptr___0;
 7956#line 651
 7957      __cil_tmp35 = __cil_tmp34 - __cil_tmp33;
 7958#line 651
 7959      wrap = (struct whiteheat_urb_wrap *)__cil_tmp35;
 7960#line 652
 7961      urb = wrap->urb;
 7962#line 653
 7963      __cil_tmp36 = (void const   *)wrap;
 7964#line 653
 7965      kfree(__cil_tmp36);
 7966#line 654
 7967      __cil_tmp37 = urb->transfer_buffer;
 7968#line 654
 7969      __cil_tmp38 = (void const   *)__cil_tmp37;
 7970#line 654
 7971      kfree(__cil_tmp38);
 7972#line 655
 7973      usb_free_urb(urb);
 7974#line 649
 7975      tmp___7 = tmp2;
 7976#line 649
 7977      tmp2 = tmp___7->next;
 7978      }
 7979    }
 7980    while_break___6: /* CIL Label */ ;
 7981    }
 7982
 7983    while_break___2: 
 7984    {
 7985#line 657
 7986    __cil_tmp39 = (void const   *)info;
 7987#line 657
 7988    kfree(__cil_tmp39);
 7989#line 638
 7990    i = i + 1;
 7991    }
 7992  }
 7993  while_break___4: /* CIL Label */ ;
 7994  }
 7995
 7996  while_break___0: ;
 7997#line 659
 7998  return;
 7999}
 8000}
 8001#line 661 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 8002static int whiteheat_open(struct tty_struct *tty , struct usb_serial_port *port ) 
 8003{ int retval ;
 8004  unsigned char __cil_tmp4 ;
 8005  int __cil_tmp5 ;
 8006  struct usb_serial *__cil_tmp6 ;
 8007  struct usb_serial *__cil_tmp7 ;
 8008  __u8 __cil_tmp8 ;
 8009  struct usb_serial *__cil_tmp9 ;
 8010  struct usb_serial *__cil_tmp10 ;
 8011  struct usb_device *__cil_tmp11 ;
 8012  struct urb *__cil_tmp12 ;
 8013  unsigned int __cil_tmp13 ;
 8014  int __cil_tmp14 ;
 8015  struct usb_serial *__cil_tmp15 ;
 8016  struct usb_device *__cil_tmp16 ;
 8017  struct urb *__cil_tmp17 ;
 8018  unsigned int __cil_tmp18 ;
 8019  int __cil_tmp19 ;
 8020  struct device *__cil_tmp20 ;
 8021  struct device  const  *__cil_tmp21 ;
 8022  struct usb_serial *__cil_tmp22 ;
 8023
 8024  {
 8025#line 663
 8026  retval = 0;
 8027  {
 8028#line 665
 8029  while (1) {
 8030    while_continue: /* CIL Label */ ;
 8031
 8032#line 665
 8033    if (debug) {
 8034      {
 8035#line 665
 8036      __cil_tmp4 = port->number;
 8037#line 665
 8038      __cil_tmp5 = (int )__cil_tmp4;
 8039#line 665
 8040      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8041             "whiteheat_open", __cil_tmp5);
 8042      }
 8043    } else {
 8044
 8045    }
 8046#line 665
 8047    goto while_break;
 8048  }
 8049  while_break___1: /* CIL Label */ ;
 8050  }
 8051
 8052  while_break: 
 8053  {
 8054#line 667
 8055  __cil_tmp6 = port->serial;
 8056#line 667
 8057  retval = start_command_port(__cil_tmp6);
 8058  }
 8059#line 668
 8060  if (retval) {
 8061#line 669
 8062    goto exit;
 8063  } else {
 8064
 8065  }
 8066#line 671
 8067  if (tty) {
 8068#line 672
 8069    tty->low_latency = (unsigned char)1;
 8070  } else {
 8071
 8072  }
 8073  {
 8074#line 675
 8075  retval = firm_open(port);
 8076  }
 8077#line 676
 8078  if (retval) {
 8079    {
 8080#line 677
 8081    __cil_tmp7 = port->serial;
 8082#line 677
 8083    stop_command_port(__cil_tmp7);
 8084    }
 8085#line 678
 8086    goto exit;
 8087  } else {
 8088
 8089  }
 8090  {
 8091#line 681
 8092  __cil_tmp8 = (__u8 )3;
 8093#line 681
 8094  retval = firm_purge(port, __cil_tmp8);
 8095  }
 8096#line 682
 8097  if (retval) {
 8098    {
 8099#line 683
 8100    firm_close(port);
 8101#line 684
 8102    __cil_tmp9 = port->serial;
 8103#line 684
 8104    stop_command_port(__cil_tmp9);
 8105    }
 8106#line 685
 8107    goto exit;
 8108  } else {
 8109
 8110  }
 8111#line 688
 8112  if (tty) {
 8113    {
 8114#line 689
 8115    firm_setup_port(tty);
 8116    }
 8117  } else {
 8118
 8119  }
 8120  {
 8121#line 692
 8122  __cil_tmp10 = port->serial;
 8123#line 692
 8124  __cil_tmp11 = __cil_tmp10->dev;
 8125#line 692
 8126  __cil_tmp12 = port->read_urb;
 8127#line 692
 8128  __cil_tmp13 = __cil_tmp12->pipe;
 8129#line 692
 8130  __cil_tmp14 = (int )__cil_tmp13;
 8131#line 692
 8132  usb_clear_halt(__cil_tmp11, __cil_tmp14);
 8133#line 693
 8134  __cil_tmp15 = port->serial;
 8135#line 693
 8136  __cil_tmp16 = __cil_tmp15->dev;
 8137#line 693
 8138  __cil_tmp17 = port->write_urb;
 8139#line 693
 8140  __cil_tmp18 = __cil_tmp17->pipe;
 8141#line 693
 8142  __cil_tmp19 = (int )__cil_tmp18;
 8143#line 693
 8144  usb_clear_halt(__cil_tmp16, __cil_tmp19);
 8145#line 696
 8146  retval = start_port_read(port);
 8147  }
 8148#line 697
 8149  if (retval) {
 8150    {
 8151#line 698
 8152    __cil_tmp20 = & port->dev;
 8153#line 698
 8154    __cil_tmp21 = (struct device  const  *)__cil_tmp20;
 8155#line 698
 8156    dev_err(__cil_tmp21, "%s - failed submitting read urb, error %d\n", "whiteheat_open",
 8157            retval);
 8158#line 701
 8159    firm_close(port);
 8160#line 702
 8161    __cil_tmp22 = port->serial;
 8162#line 702
 8163    stop_command_port(__cil_tmp22);
 8164    }
 8165#line 703
 8166    goto exit;
 8167  } else {
 8168
 8169  }
 8170  exit: 
 8171  {
 8172#line 707
 8173  while (1) {
 8174    while_continue___0: /* CIL Label */ ;
 8175
 8176#line 707
 8177    if (debug) {
 8178      {
 8179#line 707
 8180      printk("<7>%s: %s - exit, retval = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8181             "whiteheat_open", retval);
 8182      }
 8183    } else {
 8184
 8185    }
 8186#line 707
 8187    goto while_break___0;
 8188  }
 8189  while_break___2: /* CIL Label */ ;
 8190  }
 8191
 8192  while_break___0: ;
 8193#line 708
 8194  return (retval);
 8195}
 8196}
 8197#line 712 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 8198static void whiteheat_close(struct usb_serial_port *port ) 
 8199{ struct whiteheat_private *info ;
 8200  void *tmp___7 ;
 8201  struct whiteheat_urb_wrap *wrap ;
 8202  struct urb *urb ;
 8203  struct list_head *tmp___8 ;
 8204  struct list_head *tmp2 ;
 8205  struct list_head  const  *__mptr ;
 8206  struct list_head  const  *__mptr___0 ;
 8207  unsigned char __cil_tmp10 ;
 8208  int __cil_tmp11 ;
 8209  struct mutex *__cil_tmp12 ;
 8210  spinlock_t *__cil_tmp13 ;
 8211  struct list_head *__cil_tmp14 ;
 8212  unsigned long __cil_tmp15 ;
 8213  unsigned long __cil_tmp16 ;
 8214  struct whiteheat_urb_wrap *__cil_tmp17 ;
 8215  struct list_head *__cil_tmp18 ;
 8216  unsigned int __cil_tmp19 ;
 8217  char *__cil_tmp20 ;
 8218  char *__cil_tmp21 ;
 8219  spinlock_t *__cil_tmp22 ;
 8220  spinlock_t *__cil_tmp23 ;
 8221  struct list_head *__cil_tmp24 ;
 8222  struct list_head *__cil_tmp25 ;
 8223  unsigned long __cil_tmp26 ;
 8224  unsigned long __cil_tmp27 ;
 8225  struct list_head *__cil_tmp28 ;
 8226  struct list_head *__cil_tmp29 ;
 8227  unsigned long __cil_tmp30 ;
 8228  unsigned long __cil_tmp31 ;
 8229  struct whiteheat_urb_wrap *__cil_tmp32 ;
 8230  struct list_head *__cil_tmp33 ;
 8231  unsigned int __cil_tmp34 ;
 8232  char *__cil_tmp35 ;
 8233  char *__cil_tmp36 ;
 8234  spinlock_t *__cil_tmp37 ;
 8235  spinlock_t *__cil_tmp38 ;
 8236  struct list_head *__cil_tmp39 ;
 8237  spinlock_t *__cil_tmp40 ;
 8238  struct mutex *__cil_tmp41 ;
 8239  struct usb_serial *__cil_tmp42 ;
 8240
 8241  {
 8242  {
 8243#line 714
 8244  tmp___7 = usb_get_serial_port_data(port);
 8245#line 714
 8246  info = (struct whiteheat_private *)tmp___7;
 8247  }
 8248  {
 8249#line 720
 8250  while (1) {
 8251    while_continue: /* CIL Label */ ;
 8252
 8253#line 720
 8254    if (debug) {
 8255      {
 8256#line 720
 8257      __cil_tmp10 = port->number;
 8258#line 720
 8259      __cil_tmp11 = (int )__cil_tmp10;
 8260#line 720
 8261      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8262             "whiteheat_close", __cil_tmp11);
 8263      }
 8264    } else {
 8265
 8266    }
 8267#line 720
 8268    goto while_break;
 8269  }
 8270  while_break___3: /* CIL Label */ ;
 8271  }
 8272
 8273  while_break: 
 8274  {
 8275#line 722
 8276  firm_report_tx_done(port);
 8277#line 723
 8278  firm_close(port);
 8279#line 726
 8280  __cil_tmp12 = & info->deathwarrant;
 8281#line 726
 8282  mutex_lock_nested(__cil_tmp12, 0U);
 8283#line 727
 8284  __cil_tmp13 = & info->lock;
 8285#line 727
 8286  spin_lock_irq(__cil_tmp13);
 8287#line 728
 8288  tmp___8 = info->rx_urbs_submitted.next;
 8289#line 728
 8290  tmp2 = tmp___8->next;
 8291  }
 8292  {
 8293#line 728
 8294  while (1) {
 8295    while_continue___0: /* CIL Label */ ;
 8296
 8297    {
 8298#line 728
 8299    __cil_tmp14 = & info->rx_urbs_submitted;
 8300#line 728
 8301    __cil_tmp15 = (unsigned long )__cil_tmp14;
 8302#line 728
 8303    __cil_tmp16 = (unsigned long )tmp___8;
 8304#line 728
 8305    if (__cil_tmp16 != __cil_tmp15) {
 8306
 8307    } else {
 8308#line 728
 8309      goto while_break___0;
 8310    }
 8311    }
 8312    {
 8313#line 729
 8314    __mptr = (struct list_head  const  *)tmp___8;
 8315#line 729
 8316    __cil_tmp17 = (struct whiteheat_urb_wrap *)0;
 8317#line 729
 8318    __cil_tmp18 = & __cil_tmp17->list;
 8319#line 729
 8320    __cil_tmp19 = (unsigned int )__cil_tmp18;
 8321#line 729
 8322    __cil_tmp20 = (char *)__mptr;
 8323#line 729
 8324    __cil_tmp21 = __cil_tmp20 - __cil_tmp19;
 8325#line 729
 8326    wrap = (struct whiteheat_urb_wrap *)__cil_tmp21;
 8327#line 730
 8328    urb = wrap->urb;
 8329#line 731
 8330    list_del(tmp___8);
 8331#line 732
 8332    __cil_tmp22 = & info->lock;
 8333#line 732
 8334    spin_unlock_irq(__cil_tmp22);
 8335#line 733
 8336    usb_kill_urb(urb);
 8337#line 734
 8338    __cil_tmp23 = & info->lock;
 8339#line 734
 8340    spin_lock_irq(__cil_tmp23);
 8341#line 735
 8342    __cil_tmp24 = & info->rx_urbs_free;
 8343#line 735
 8344    list_add(tmp___8, __cil_tmp24);
 8345#line 728
 8346    tmp___8 = tmp2;
 8347#line 728
 8348    tmp2 = tmp___8->next;
 8349    }
 8350  }
 8351  while_break___4: /* CIL Label */ ;
 8352  }
 8353
 8354  while_break___0: 
 8355#line 737
 8356  tmp___8 = info->rx_urb_q.next;
 8357#line 737
 8358  tmp2 = tmp___8->next;
 8359  {
 8360#line 737
 8361  while (1) {
 8362    while_continue___1: /* CIL Label */ ;
 8363
 8364    {
 8365#line 737
 8366    __cil_tmp25 = & info->rx_urb_q;
 8367#line 737
 8368    __cil_tmp26 = (unsigned long )__cil_tmp25;
 8369#line 737
 8370    __cil_tmp27 = (unsigned long )tmp___8;
 8371#line 737
 8372    if (__cil_tmp27 != __cil_tmp26) {
 8373
 8374    } else {
 8375#line 737
 8376      goto while_break___1;
 8377    }
 8378    }
 8379    {
 8380#line 738
 8381    __cil_tmp28 = & info->rx_urbs_free;
 8382#line 738
 8383    list_move(tmp___8, __cil_tmp28);
 8384#line 737
 8385    tmp___8 = tmp2;
 8386#line 737
 8387    tmp2 = tmp___8->next;
 8388    }
 8389  }
 8390  while_break___5: /* CIL Label */ ;
 8391  }
 8392
 8393  while_break___1: 
 8394#line 739
 8395  tmp___8 = info->tx_urbs_submitted.next;
 8396#line 739
 8397  tmp2 = tmp___8->next;
 8398  {
 8399#line 739
 8400  while (1) {
 8401    while_continue___2: /* CIL Label */ ;
 8402
 8403    {
 8404#line 739
 8405    __cil_tmp29 = & info->tx_urbs_submitted;
 8406#line 739
 8407    __cil_tmp30 = (unsigned long )__cil_tmp29;
 8408#line 739
 8409    __cil_tmp31 = (unsigned long )tmp___8;
 8410#line 739
 8411    if (__cil_tmp31 != __cil_tmp30) {
 8412
 8413    } else {
 8414#line 739
 8415      goto while_break___2;
 8416    }
 8417    }
 8418    {
 8419#line 740
 8420    __mptr___0 = (struct list_head  const  *)tmp___8;
 8421#line 740
 8422    __cil_tmp32 = (struct whiteheat_urb_wrap *)0;
 8423#line 740
 8424    __cil_tmp33 = & __cil_tmp32->list;
 8425#line 740
 8426    __cil_tmp34 = (unsigned int )__cil_tmp33;
 8427#line 740
 8428    __cil_tmp35 = (char *)__mptr___0;
 8429#line 740
 8430    __cil_tmp36 = __cil_tmp35 - __cil_tmp34;
 8431#line 740
 8432    wrap = (struct whiteheat_urb_wrap *)__cil_tmp36;
 8433#line 741
 8434    urb = wrap->urb;
 8435#line 742
 8436    list_del(tmp___8);
 8437#line 743
 8438    __cil_tmp37 = & info->lock;
 8439#line 743
 8440    spin_unlock_irq(__cil_tmp37);
 8441#line 744
 8442    usb_kill_urb(urb);
 8443#line 745
 8444    __cil_tmp38 = & info->lock;
 8445#line 745
 8446    spin_lock_irq(__cil_tmp38);
 8447#line 746
 8448    __cil_tmp39 = & info->tx_urbs_free;
 8449#line 746
 8450    list_add(tmp___8, __cil_tmp39);
 8451#line 739
 8452    tmp___8 = tmp2;
 8453#line 739
 8454    tmp2 = tmp___8->next;
 8455    }
 8456  }
 8457  while_break___6: /* CIL Label */ ;
 8458  }
 8459
 8460  while_break___2: 
 8461  {
 8462#line 748
 8463  __cil_tmp40 = & info->lock;
 8464#line 748
 8465  spin_unlock_irq(__cil_tmp40);
 8466#line 749
 8467  __cil_tmp41 = & info->deathwarrant;
 8468#line 749
 8469  mutex_unlock(__cil_tmp41);
 8470#line 750
 8471  __cil_tmp42 = port->serial;
 8472#line 750
 8473  stop_command_port(__cil_tmp42);
 8474  }
 8475#line 751
 8476  return;
 8477}
 8478}
 8479#line 754 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 8480static int whiteheat_write(struct tty_struct *tty , struct usb_serial_port *port ,
 8481                           unsigned char const   *buf , int count ) 
 8482{ struct usb_serial *serial ;
 8483  struct whiteheat_private *info ;
 8484  void *tmp___7 ;
 8485  struct whiteheat_urb_wrap *wrap ;
 8486  struct urb *urb ;
 8487  int result ;
 8488  int bytes ;
 8489  int sent ;
 8490  unsigned long flags ;
 8491  struct list_head *tmp___8 ;
 8492  raw_spinlock_t *tmp___9 ;
 8493  int tmp___10 ;
 8494  struct list_head  const  *__mptr ;
 8495  size_t __len ;
 8496  void *__ret ;
 8497  raw_spinlock_t *tmp___11 ;
 8498  raw_spinlock_t *tmp___12 ;
 8499  unsigned char __cil_tmp22 ;
 8500  int __cil_tmp23 ;
 8501  spinlock_t *__cil_tmp24 ;
 8502  struct list_head *__cil_tmp25 ;
 8503  struct list_head  const  *__cil_tmp26 ;
 8504  spinlock_t *__cil_tmp27 ;
 8505  struct list_head *__cil_tmp28 ;
 8506  spinlock_t *__cil_tmp29 ;
 8507  struct whiteheat_urb_wrap *__cil_tmp30 ;
 8508  struct list_head *__cil_tmp31 ;
 8509  unsigned int __cil_tmp32 ;
 8510  char *__cil_tmp33 ;
 8511  char *__cil_tmp34 ;
 8512  int __cil_tmp35 ;
 8513  void *__cil_tmp36 ;
 8514  unsigned char const   *__cil_tmp37 ;
 8515  void const   *__cil_tmp38 ;
 8516  struct device *__cil_tmp39 ;
 8517  void *__cil_tmp40 ;
 8518  unsigned char const   *__cil_tmp41 ;
 8519  struct device *__cil_tmp42 ;
 8520  struct device  const  *__cil_tmp43 ;
 8521  spinlock_t *__cil_tmp44 ;
 8522  struct list_head *__cil_tmp45 ;
 8523  spinlock_t *__cil_tmp46 ;
 8524  spinlock_t *__cil_tmp47 ;
 8525  struct list_head *__cil_tmp48 ;
 8526  spinlock_t *__cil_tmp49 ;
 8527
 8528  {
 8529  {
 8530#line 757
 8531  serial = port->serial;
 8532#line 758
 8533  tmp___7 = usb_get_serial_port_data(port);
 8534#line 758
 8535  info = (struct whiteheat_private *)tmp___7;
 8536#line 763
 8537  sent = 0;
 8538  }
 8539  {
 8540#line 767
 8541  while (1) {
 8542    while_continue: /* CIL Label */ ;
 8543
 8544#line 767
 8545    if (debug) {
 8546      {
 8547#line 767
 8548      __cil_tmp22 = port->number;
 8549#line 767
 8550      __cil_tmp23 = (int )__cil_tmp22;
 8551#line 767
 8552      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8553             "whiteheat_write", __cil_tmp23);
 8554      }
 8555    } else {
 8556
 8557    }
 8558#line 767
 8559    goto while_break;
 8560  }
 8561  while_break___8: /* CIL Label */ ;
 8562  }
 8563
 8564  while_break: ;
 8565#line 769
 8566  if (count == 0) {
 8567    {
 8568#line 770
 8569    while (1) {
 8570      while_continue___0: /* CIL Label */ ;
 8571
 8572#line 770
 8573      if (debug) {
 8574        {
 8575#line 770
 8576        printk("<7>%s: %s - write request of 0 bytes\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8577               "whiteheat_write");
 8578        }
 8579      } else {
 8580
 8581      }
 8582#line 770
 8583      goto while_break___0;
 8584    }
 8585    while_break___9: /* CIL Label */ ;
 8586    }
 8587
 8588    while_break___0: ;
 8589#line 771
 8590    return (0);
 8591  } else {
 8592
 8593  }
 8594  {
 8595#line 774
 8596  while (1) {
 8597    while_continue___1: /* CIL Label */ ;
 8598
 8599#line 774
 8600    if (count) {
 8601
 8602    } else {
 8603#line 774
 8604      goto while_break___1;
 8605    }
 8606    {
 8607#line 775
 8608    while (1) {
 8609      while_continue___2: /* CIL Label */ ;
 8610
 8611      {
 8612#line 775
 8613      while (1) {
 8614        while_continue___3: /* CIL Label */ ;
 8615        {
 8616#line 775
 8617        __cil_tmp24 = & info->lock;
 8618#line 775
 8619        tmp___9 = spinlock_check(__cil_tmp24);
 8620#line 775
 8621        flags = _raw_spin_lock_irqsave(tmp___9);
 8622        }
 8623#line 775
 8624        goto while_break___3;
 8625      }
 8626      while_break___12: /* CIL Label */ ;
 8627      }
 8628
 8629      while_break___3: ;
 8630#line 775
 8631      goto while_break___2;
 8632    }
 8633    while_break___11: /* CIL Label */ ;
 8634    }
 8635
 8636    while_break___2: 
 8637    {
 8638#line 776
 8639    __cil_tmp25 = & info->tx_urbs_free;
 8640#line 776
 8641    __cil_tmp26 = (struct list_head  const  *)__cil_tmp25;
 8642#line 776
 8643    tmp___10 = list_empty(__cil_tmp26);
 8644    }
 8645#line 776
 8646    if (tmp___10) {
 8647      {
 8648#line 777
 8649      __cil_tmp27 = & info->lock;
 8650#line 777
 8651      spin_unlock_irqrestore(__cil_tmp27, flags);
 8652      }
 8653#line 778
 8654      goto while_break___1;
 8655    } else {
 8656
 8657    }
 8658    {
 8659#line 780
 8660    __cil_tmp28 = & info->tx_urbs_free;
 8661#line 780
 8662    tmp___8 = list_first(__cil_tmp28);
 8663#line 781
 8664    list_del(tmp___8);
 8665#line 782
 8666    __cil_tmp29 = & info->lock;
 8667#line 782
 8668    spin_unlock_irqrestore(__cil_tmp29, flags);
 8669#line 784
 8670    __mptr = (struct list_head  const  *)tmp___8;
 8671#line 784
 8672    __cil_tmp30 = (struct whiteheat_urb_wrap *)0;
 8673#line 784
 8674    __cil_tmp31 = & __cil_tmp30->list;
 8675#line 784
 8676    __cil_tmp32 = (unsigned int )__cil_tmp31;
 8677#line 784
 8678    __cil_tmp33 = (char *)__mptr;
 8679#line 784
 8680    __cil_tmp34 = __cil_tmp33 - __cil_tmp32;
 8681#line 784
 8682    wrap = (struct whiteheat_urb_wrap *)__cil_tmp34;
 8683#line 785
 8684    urb = wrap->urb;
 8685    }
 8686    {
 8687#line 786
 8688    __cil_tmp35 = port->bulk_out_size;
 8689#line 786
 8690    if (count > __cil_tmp35) {
 8691#line 786
 8692      bytes = port->bulk_out_size;
 8693    } else {
 8694#line 786
 8695      bytes = count;
 8696    }
 8697    }
 8698    {
 8699#line 788
 8700    __len = (size_t )bytes;
 8701#line 788
 8702    __cil_tmp36 = urb->transfer_buffer;
 8703#line 788
 8704    __cil_tmp37 = buf + sent;
 8705#line 788
 8706    __cil_tmp38 = (void const   *)__cil_tmp37;
 8707#line 788
 8708    __ret = __builtin_memcpy(__cil_tmp36, __cil_tmp38, __len);
 8709#line 790
 8710    __cil_tmp39 = & port->dev;
 8711#line 790
 8712    __cil_tmp40 = urb->transfer_buffer;
 8713#line 790
 8714    __cil_tmp41 = (unsigned char const   *)__cil_tmp40;
 8715#line 790
 8716    usb_serial_debug_data(debug, __cil_tmp39, "whiteheat_write", bytes, __cil_tmp41);
 8717#line 793
 8718    urb->dev = serial->dev;
 8719#line 794
 8720    urb->transfer_buffer_length = (u32 )bytes;
 8721#line 795
 8722    result = usb_submit_urb(urb, 32U);
 8723    }
 8724#line 796
 8725    if (result) {
 8726      {
 8727#line 797
 8728      __cil_tmp42 = & port->dev;
 8729#line 797
 8730      __cil_tmp43 = (struct device  const  *)__cil_tmp42;
 8731#line 797
 8732      dev_err(__cil_tmp43, "%s - failed submitting write urb, error %d\n", "whiteheat_write",
 8733              result);
 8734#line 800
 8735      sent = result;
 8736      }
 8737      {
 8738#line 801
 8739      while (1) {
 8740        while_continue___4: /* CIL Label */ ;
 8741
 8742        {
 8743#line 801
 8744        while (1) {
 8745          while_continue___5: /* CIL Label */ ;
 8746          {
 8747#line 801
 8748          __cil_tmp44 = & info->lock;
 8749#line 801
 8750          tmp___11 = spinlock_check(__cil_tmp44);
 8751#line 801
 8752          flags = _raw_spin_lock_irqsave(tmp___11);
 8753          }
 8754#line 801
 8755          goto while_break___5;
 8756        }
 8757        while_break___14: /* CIL Label */ ;
 8758        }
 8759
 8760        while_break___5: ;
 8761#line 801
 8762        goto while_break___4;
 8763      }
 8764      while_break___13: /* CIL Label */ ;
 8765      }
 8766
 8767      while_break___4: 
 8768      {
 8769#line 802
 8770      __cil_tmp45 = & info->tx_urbs_free;
 8771#line 802
 8772      list_add(tmp___8, __cil_tmp45);
 8773#line 803
 8774      __cil_tmp46 = & info->lock;
 8775#line 803
 8776      spin_unlock_irqrestore(__cil_tmp46, flags);
 8777      }
 8778#line 804
 8779      goto while_break___1;
 8780    } else {
 8781#line 806
 8782      sent = sent + bytes;
 8783#line 807
 8784      count = count - bytes;
 8785      {
 8786#line 808
 8787      while (1) {
 8788        while_continue___6: /* CIL Label */ ;
 8789
 8790        {
 8791#line 808
 8792        while (1) {
 8793          while_continue___7: /* CIL Label */ ;
 8794          {
 8795#line 808
 8796          __cil_tmp47 = & info->lock;
 8797#line 808
 8798          tmp___12 = spinlock_check(__cil_tmp47);
 8799#line 808
 8800          flags = _raw_spin_lock_irqsave(tmp___12);
 8801          }
 8802#line 808
 8803          goto while_break___7;
 8804        }
 8805        while_break___16: /* CIL Label */ ;
 8806        }
 8807
 8808        while_break___7: ;
 8809#line 808
 8810        goto while_break___6;
 8811      }
 8812      while_break___15: /* CIL Label */ ;
 8813      }
 8814
 8815      while_break___6: 
 8816      {
 8817#line 809
 8818      __cil_tmp48 = & info->tx_urbs_submitted;
 8819#line 809
 8820      list_add(tmp___8, __cil_tmp48);
 8821#line 810
 8822      __cil_tmp49 = & info->lock;
 8823#line 810
 8824      spin_unlock_irqrestore(__cil_tmp49, flags);
 8825      }
 8826    }
 8827  }
 8828  while_break___10: /* CIL Label */ ;
 8829  }
 8830
 8831  while_break___1: ;
 8832#line 814
 8833  return (sent);
 8834}
 8835}
 8836#line 817 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 8837static int whiteheat_write_room(struct tty_struct *tty ) 
 8838{ struct usb_serial_port *port ;
 8839  struct whiteheat_private *info ;
 8840  void *tmp___7 ;
 8841  struct list_head *tmp___8 ;
 8842  int room ;
 8843  unsigned long flags ;
 8844  raw_spinlock_t *tmp___9 ;
 8845  void *__cil_tmp9 ;
 8846  unsigned char __cil_tmp10 ;
 8847  int __cil_tmp11 ;
 8848  spinlock_t *__cil_tmp12 ;
 8849  struct list_head *__cil_tmp13 ;
 8850  unsigned long __cil_tmp14 ;
 8851  unsigned long __cil_tmp15 ;
 8852  spinlock_t *__cil_tmp16 ;
 8853  int __cil_tmp17 ;
 8854
 8855  {
 8856  {
 8857#line 819
 8858  __cil_tmp9 = tty->driver_data;
 8859#line 819
 8860  port = (struct usb_serial_port *)__cil_tmp9;
 8861#line 820
 8862  tmp___7 = usb_get_serial_port_data(port);
 8863#line 820
 8864  info = (struct whiteheat_private *)tmp___7;
 8865#line 822
 8866  room = 0;
 8867  }
 8868  {
 8869#line 825
 8870  while (1) {
 8871    while_continue: /* CIL Label */ ;
 8872
 8873#line 825
 8874    if (debug) {
 8875      {
 8876#line 825
 8877      __cil_tmp10 = port->number;
 8878#line 825
 8879      __cil_tmp11 = (int )__cil_tmp10;
 8880#line 825
 8881      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8882             "whiteheat_write_room", __cil_tmp11);
 8883      }
 8884    } else {
 8885
 8886    }
 8887#line 825
 8888    goto while_break;
 8889  }
 8890  while_break___4: /* CIL Label */ ;
 8891  }
 8892
 8893  while_break: ;
 8894  {
 8895#line 827
 8896  while (1) {
 8897    while_continue___0: /* CIL Label */ ;
 8898
 8899    {
 8900#line 827
 8901    while (1) {
 8902      while_continue___1: /* CIL Label */ ;
 8903      {
 8904#line 827
 8905      __cil_tmp12 = & info->lock;
 8906#line 827
 8907      tmp___9 = spinlock_check(__cil_tmp12);
 8908#line 827
 8909      flags = _raw_spin_lock_irqsave(tmp___9);
 8910      }
 8911#line 827
 8912      goto while_break___1;
 8913    }
 8914    while_break___6: /* CIL Label */ ;
 8915    }
 8916
 8917    while_break___1: ;
 8918#line 827
 8919    goto while_break___0;
 8920  }
 8921  while_break___5: /* CIL Label */ ;
 8922  }
 8923
 8924  while_break___0: 
 8925#line 828
 8926  tmp___8 = info->tx_urbs_free.next;
 8927  {
 8928#line 828
 8929  while (1) {
 8930    while_continue___2: /* CIL Label */ ;
 8931
 8932    {
 8933#line 828
 8934    __cil_tmp13 = & info->tx_urbs_free;
 8935#line 828
 8936    __cil_tmp14 = (unsigned long )__cil_tmp13;
 8937#line 828
 8938    __cil_tmp15 = (unsigned long )tmp___8;
 8939#line 828
 8940    if (__cil_tmp15 != __cil_tmp14) {
 8941
 8942    } else {
 8943#line 828
 8944      goto while_break___2;
 8945    }
 8946    }
 8947#line 829
 8948    room = room + 1;
 8949#line 828
 8950    tmp___8 = tmp___8->next;
 8951  }
 8952  while_break___7: /* CIL Label */ ;
 8953  }
 8954
 8955  while_break___2: 
 8956  {
 8957#line 830
 8958  __cil_tmp16 = & info->lock;
 8959#line 830
 8960  spin_unlock_irqrestore(__cil_tmp16, flags);
 8961#line 831
 8962  __cil_tmp17 = port->bulk_out_size;
 8963#line 831
 8964  room = room * __cil_tmp17;
 8965  }
 8966  {
 8967#line 833
 8968  while (1) {
 8969    while_continue___3: /* CIL Label */ ;
 8970
 8971#line 833
 8972    if (debug) {
 8973      {
 8974#line 833
 8975      printk("<7>%s: %s - returns %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 8976             "whiteheat_write_room", room);
 8977      }
 8978    } else {
 8979
 8980    }
 8981#line 833
 8982    goto while_break___3;
 8983  }
 8984  while_break___8: /* CIL Label */ ;
 8985  }
 8986
 8987  while_break___3: ;
 8988#line 834
 8989  return (room);
 8990}
 8991}
 8992#line 837 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 8993static int whiteheat_tiocmget(struct tty_struct *tty ) 
 8994{ struct usb_serial_port *port ;
 8995  struct whiteheat_private *info ;
 8996  void *tmp___7 ;
 8997  unsigned int modem_signals ;
 8998  void *__cil_tmp6 ;
 8999  unsigned char __cil_tmp7 ;
 9000  int __cil_tmp8 ;
 9001  __u8 __cil_tmp9 ;
 9002  int __cil_tmp10 ;
 9003  __u8 __cil_tmp11 ;
 9004  int __cil_tmp12 ;
 9005
 9006  {
 9007  {
 9008#line 839
 9009  __cil_tmp6 = tty->driver_data;
 9010#line 839
 9011  port = (struct usb_serial_port *)__cil_tmp6;
 9012#line 840
 9013  tmp___7 = usb_get_serial_port_data(port);
 9014#line 840
 9015  info = (struct whiteheat_private *)tmp___7;
 9016#line 841
 9017  modem_signals = 0U;
 9018  }
 9019  {
 9020#line 843
 9021  while (1) {
 9022    while_continue: /* CIL Label */ ;
 9023
 9024#line 843
 9025    if (debug) {
 9026      {
 9027#line 843
 9028      __cil_tmp7 = port->number;
 9029#line 843
 9030      __cil_tmp8 = (int )__cil_tmp7;
 9031#line 843
 9032      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9033             "whiteheat_tiocmget", __cil_tmp8);
 9034      }
 9035    } else {
 9036
 9037    }
 9038#line 843
 9039    goto while_break;
 9040  }
 9041  while_break___0: /* CIL Label */ ;
 9042  }
 9043
 9044  while_break: 
 9045  {
 9046#line 845
 9047  firm_get_dtr_rts(port);
 9048  }
 9049  {
 9050#line 846
 9051  __cil_tmp9 = info->mcr;
 9052#line 846
 9053  __cil_tmp10 = (int )__cil_tmp9;
 9054#line 846
 9055  if (__cil_tmp10 & 1) {
 9056#line 847
 9057    modem_signals = modem_signals | 2U;
 9058  } else {
 9059
 9060  }
 9061  }
 9062  {
 9063#line 848
 9064  __cil_tmp11 = info->mcr;
 9065#line 848
 9066  __cil_tmp12 = (int )__cil_tmp11;
 9067#line 848
 9068  if (__cil_tmp12 & 2) {
 9069#line 849
 9070    modem_signals = modem_signals | 4U;
 9071  } else {
 9072
 9073  }
 9074  }
 9075#line 851
 9076  return ((int )modem_signals);
 9077}
 9078}
 9079#line 854 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9080static int whiteheat_tiocmset(struct tty_struct *tty , unsigned int set , unsigned int clear ) 
 9081{ struct usb_serial_port *port ;
 9082  struct whiteheat_private *info ;
 9083  void *tmp___7 ;
 9084  void *__cil_tmp7 ;
 9085  unsigned char __cil_tmp8 ;
 9086  int __cil_tmp9 ;
 9087  __u8 __cil_tmp10 ;
 9088  int __cil_tmp11 ;
 9089  int __cil_tmp12 ;
 9090  __u8 __cil_tmp13 ;
 9091  int __cil_tmp14 ;
 9092  int __cil_tmp15 ;
 9093  __u8 __cil_tmp16 ;
 9094  int __cil_tmp17 ;
 9095  int __cil_tmp18 ;
 9096  __u8 __cil_tmp19 ;
 9097  int __cil_tmp20 ;
 9098  int __cil_tmp21 ;
 9099  __u8 __cil_tmp22 ;
 9100  int __cil_tmp23 ;
 9101  int __cil_tmp24 ;
 9102  __u8 __cil_tmp25 ;
 9103  __u8 __cil_tmp26 ;
 9104  int __cil_tmp27 ;
 9105  int __cil_tmp28 ;
 9106  __u8 __cil_tmp29 ;
 9107
 9108  {
 9109  {
 9110#line 857
 9111  __cil_tmp7 = tty->driver_data;
 9112#line 857
 9113  port = (struct usb_serial_port *)__cil_tmp7;
 9114#line 858
 9115  tmp___7 = usb_get_serial_port_data(port);
 9116#line 858
 9117  info = (struct whiteheat_private *)tmp___7;
 9118  }
 9119  {
 9120#line 860
 9121  while (1) {
 9122    while_continue: /* CIL Label */ ;
 9123
 9124#line 860
 9125    if (debug) {
 9126      {
 9127#line 860
 9128      __cil_tmp8 = port->number;
 9129#line 860
 9130      __cil_tmp9 = (int )__cil_tmp8;
 9131#line 860
 9132      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9133             "whiteheat_tiocmset", __cil_tmp9);
 9134      }
 9135    } else {
 9136
 9137    }
 9138#line 860
 9139    goto while_break;
 9140  }
 9141  while_break___0: /* CIL Label */ ;
 9142  }
 9143
 9144  while_break: ;
 9145#line 862
 9146  if (set & 4U) {
 9147#line 863
 9148    __cil_tmp10 = info->mcr;
 9149#line 863
 9150    __cil_tmp11 = (int )__cil_tmp10;
 9151#line 863
 9152    __cil_tmp12 = __cil_tmp11 | 2;
 9153#line 863
 9154    info->mcr = (__u8 )__cil_tmp12;
 9155  } else {
 9156
 9157  }
 9158#line 864
 9159  if (set & 2U) {
 9160#line 865
 9161    __cil_tmp13 = info->mcr;
 9162#line 865
 9163    __cil_tmp14 = (int )__cil_tmp13;
 9164#line 865
 9165    __cil_tmp15 = __cil_tmp14 | 1;
 9166#line 865
 9167    info->mcr = (__u8 )__cil_tmp15;
 9168  } else {
 9169
 9170  }
 9171#line 867
 9172  if (clear & 4U) {
 9173#line 868
 9174    __cil_tmp16 = info->mcr;
 9175#line 868
 9176    __cil_tmp17 = (int )__cil_tmp16;
 9177#line 868
 9178    __cil_tmp18 = __cil_tmp17 & -3;
 9179#line 868
 9180    info->mcr = (__u8 )__cil_tmp18;
 9181  } else {
 9182
 9183  }
 9184#line 869
 9185  if (clear & 2U) {
 9186#line 870
 9187    __cil_tmp19 = info->mcr;
 9188#line 870
 9189    __cil_tmp20 = (int )__cil_tmp19;
 9190#line 870
 9191    __cil_tmp21 = __cil_tmp20 & -2;
 9192#line 870
 9193    info->mcr = (__u8 )__cil_tmp21;
 9194  } else {
 9195
 9196  }
 9197  {
 9198#line 872
 9199  __cil_tmp22 = info->mcr;
 9200#line 872
 9201  __cil_tmp23 = (int )__cil_tmp22;
 9202#line 872
 9203  __cil_tmp24 = __cil_tmp23 & 1;
 9204#line 872
 9205  __cil_tmp25 = (__u8 )__cil_tmp24;
 9206#line 872
 9207  firm_set_dtr(port, __cil_tmp25);
 9208#line 873
 9209  __cil_tmp26 = info->mcr;
 9210#line 873
 9211  __cil_tmp27 = (int )__cil_tmp26;
 9212#line 873
 9213  __cil_tmp28 = __cil_tmp27 & 2;
 9214#line 873
 9215  __cil_tmp29 = (__u8 )__cil_tmp28;
 9216#line 873
 9217  firm_set_rts(port, __cil_tmp29);
 9218  }
 9219#line 874
 9220  return (0);
 9221}
 9222}
 9223#line 878 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9224static int whiteheat_ioctl(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) 
 9225{ struct usb_serial_port *port ;
 9226  struct serial_struct serstruct ;
 9227  void *user_arg ;
 9228  int tmp___7 ;
 9229  int tmp ;
 9230  int tmp___8 ;
 9231  void *__cil_tmp10 ;
 9232  unsigned char __cil_tmp11 ;
 9233  int __cil_tmp12 ;
 9234  int __cil_tmp13 ;
 9235  void *__cil_tmp14 ;
 9236  struct usb_serial *__cil_tmp15 ;
 9237  unsigned char __cil_tmp16 ;
 9238  unsigned char __cil_tmp17 ;
 9239  unsigned int __cil_tmp18 ;
 9240  unsigned int __cil_tmp19 ;
 9241  unsigned int __cil_tmp20 ;
 9242  void const   *__cil_tmp21 ;
 9243  unsigned int __cil_tmp22 ;
 9244
 9245  {
 9246#line 881
 9247  __cil_tmp10 = tty->driver_data;
 9248#line 881
 9249  port = (struct usb_serial_port *)__cil_tmp10;
 9250#line 883
 9251  user_arg = (void *)arg;
 9252  {
 9253#line 885
 9254  while (1) {
 9255    while_continue: /* CIL Label */ ;
 9256
 9257#line 885
 9258    if (debug) {
 9259      {
 9260#line 885
 9261      __cil_tmp11 = port->number;
 9262#line 885
 9263      __cil_tmp12 = (int )__cil_tmp11;
 9264#line 885
 9265      printk("<7>%s: %s - port %d, cmd 0x%.4x\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9266             "whiteheat_ioctl", __cil_tmp12, cmd);
 9267      }
 9268    } else {
 9269
 9270    }
 9271#line 885
 9272    goto while_break;
 9273  }
 9274  while_break___0: /* CIL Label */ ;
 9275  }
 9276
 9277  while_break: ;
 9278  {
 9279#line 888
 9280  __cil_tmp13 = (int )cmd;
 9281#line 888
 9282  if (__cil_tmp13 == 21534) {
 9283#line 888
 9284    goto case_21534;
 9285  } else {
 9286#line 903
 9287    goto switch_default;
 9288#line 887
 9289    if (0) {
 9290      case_21534: 
 9291      {
 9292#line 889
 9293      __cil_tmp14 = (void *)(& serstruct);
 9294#line 889
 9295      memset(__cil_tmp14, 0, 72UL);
 9296#line 890
 9297      serstruct.type = 11;
 9298#line 891
 9299      __cil_tmp15 = port->serial;
 9300#line 891
 9301      __cil_tmp16 = __cil_tmp15->minor;
 9302#line 891
 9303      serstruct.line = (int )__cil_tmp16;
 9304#line 892
 9305      __cil_tmp17 = port->number;
 9306#line 892
 9307      serstruct.port = (unsigned int )__cil_tmp17;
 9308#line 893
 9309      __cil_tmp18 = 1U << 7;
 9310#line 893
 9311      __cil_tmp19 = 1U << 6;
 9312#line 893
 9313      __cil_tmp20 = __cil_tmp19 | __cil_tmp18;
 9314#line 893
 9315      serstruct.flags = (int )__cil_tmp20;
 9316#line 894
 9317      serstruct.xmit_fifo_size = port->bulk_out_size;
 9318#line 895
 9319      serstruct.custom_divisor = 0;
 9320#line 896
 9321      serstruct.baud_base = 460800;
 9322#line 897
 9323      serstruct.close_delay = (unsigned short)7500;
 9324#line 898
 9325      serstruct.closing_wait = (unsigned short)7500;
 9326#line 900
 9327      __cil_tmp21 = (void const   *)(& serstruct);
 9328#line 900
 9329      __cil_tmp22 = (unsigned int )72UL;
 9330#line 900
 9331      tmp___8 = (int )copy_to_user(user_arg, __cil_tmp21, __cil_tmp22);
 9332#line 900
 9333      tmp = tmp___8;
 9334#line 900
 9335      tmp___7 = tmp;
 9336      }
 9337#line 900
 9338      if (tmp___7) {
 9339#line 901
 9340        return (-14);
 9341      } else {
 9342
 9343      }
 9344#line 902
 9345      goto switch_break;
 9346      switch_default: 
 9347#line 904
 9348      goto switch_break;
 9349    } else {
 9350      switch_break: ;
 9351    }
 9352  }
 9353  }
 9354#line 907
 9355  return (-515);
 9356}
 9357}
 9358#line 911 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9359static void whiteheat_set_termios(struct tty_struct *tty , struct usb_serial_port *port ,
 9360                                  struct ktermios *old_termios ) 
 9361{ 
 9362
 9363  {
 9364  {
 9365#line 914
 9366  firm_setup_port(tty);
 9367  }
 9368#line 915
 9369  return;
 9370}
 9371}
 9372#line 917 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9373static void whiteheat_break_ctl(struct tty_struct *tty , int break_state ) 
 9374{ struct usb_serial_port *port ;
 9375  void *__cil_tmp4 ;
 9376  __u8 __cil_tmp5 ;
 9377
 9378  {
 9379  {
 9380#line 919
 9381  __cil_tmp4 = tty->driver_data;
 9382#line 919
 9383  port = (struct usb_serial_port *)__cil_tmp4;
 9384#line 920
 9385  __cil_tmp5 = (__u8 )break_state;
 9386#line 920
 9387  firm_set_break(port, __cil_tmp5);
 9388  }
 9389#line 921
 9390  return;
 9391}
 9392}
 9393#line 924 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9394static int whiteheat_chars_in_buffer(struct tty_struct *tty ) 
 9395{ struct usb_serial_port *port ;
 9396  struct whiteheat_private *info ;
 9397  void *tmp___7 ;
 9398  struct list_head *tmp___8 ;
 9399  struct whiteheat_urb_wrap *wrap ;
 9400  int chars ;
 9401  unsigned long flags ;
 9402  raw_spinlock_t *tmp___9 ;
 9403  struct list_head  const  *__mptr ;
 9404  void *__cil_tmp11 ;
 9405  unsigned char __cil_tmp12 ;
 9406  int __cil_tmp13 ;
 9407  spinlock_t *__cil_tmp14 ;
 9408  struct list_head *__cil_tmp15 ;
 9409  unsigned long __cil_tmp16 ;
 9410  unsigned long __cil_tmp17 ;
 9411  struct whiteheat_urb_wrap *__cil_tmp18 ;
 9412  struct list_head *__cil_tmp19 ;
 9413  unsigned int __cil_tmp20 ;
 9414  char *__cil_tmp21 ;
 9415  char *__cil_tmp22 ;
 9416  struct urb *__cil_tmp23 ;
 9417  u32 __cil_tmp24 ;
 9418  u32 __cil_tmp25 ;
 9419  u32 __cil_tmp26 ;
 9420  spinlock_t *__cil_tmp27 ;
 9421
 9422  {
 9423  {
 9424#line 926
 9425  __cil_tmp11 = tty->driver_data;
 9426#line 926
 9427  port = (struct usb_serial_port *)__cil_tmp11;
 9428#line 927
 9429  tmp___7 = usb_get_serial_port_data(port);
 9430#line 927
 9431  info = (struct whiteheat_private *)tmp___7;
 9432#line 930
 9433  chars = 0;
 9434  }
 9435  {
 9436#line 933
 9437  while (1) {
 9438    while_continue: /* CIL Label */ ;
 9439
 9440#line 933
 9441    if (debug) {
 9442      {
 9443#line 933
 9444      __cil_tmp12 = port->number;
 9445#line 933
 9446      __cil_tmp13 = (int )__cil_tmp12;
 9447#line 933
 9448      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9449             "whiteheat_chars_in_buffer", __cil_tmp13);
 9450      }
 9451    } else {
 9452
 9453    }
 9454#line 933
 9455    goto while_break;
 9456  }
 9457  while_break___4: /* CIL Label */ ;
 9458  }
 9459
 9460  while_break: ;
 9461  {
 9462#line 935
 9463  while (1) {
 9464    while_continue___0: /* CIL Label */ ;
 9465
 9466    {
 9467#line 935
 9468    while (1) {
 9469      while_continue___1: /* CIL Label */ ;
 9470      {
 9471#line 935
 9472      __cil_tmp14 = & info->lock;
 9473#line 935
 9474      tmp___9 = spinlock_check(__cil_tmp14);
 9475#line 935
 9476      flags = _raw_spin_lock_irqsave(tmp___9);
 9477      }
 9478#line 935
 9479      goto while_break___1;
 9480    }
 9481    while_break___6: /* CIL Label */ ;
 9482    }
 9483
 9484    while_break___1: ;
 9485#line 935
 9486    goto while_break___0;
 9487  }
 9488  while_break___5: /* CIL Label */ ;
 9489  }
 9490
 9491  while_break___0: 
 9492#line 936
 9493  tmp___8 = info->tx_urbs_submitted.next;
 9494  {
 9495#line 936
 9496  while (1) {
 9497    while_continue___2: /* CIL Label */ ;
 9498
 9499    {
 9500#line 936
 9501    __cil_tmp15 = & info->tx_urbs_submitted;
 9502#line 936
 9503    __cil_tmp16 = (unsigned long )__cil_tmp15;
 9504#line 936
 9505    __cil_tmp17 = (unsigned long )tmp___8;
 9506#line 936
 9507    if (__cil_tmp17 != __cil_tmp16) {
 9508
 9509    } else {
 9510#line 936
 9511      goto while_break___2;
 9512    }
 9513    }
 9514#line 937
 9515    __mptr = (struct list_head  const  *)tmp___8;
 9516#line 937
 9517    __cil_tmp18 = (struct whiteheat_urb_wrap *)0;
 9518#line 937
 9519    __cil_tmp19 = & __cil_tmp18->list;
 9520#line 937
 9521    __cil_tmp20 = (unsigned int )__cil_tmp19;
 9522#line 937
 9523    __cil_tmp21 = (char *)__mptr;
 9524#line 937
 9525    __cil_tmp22 = __cil_tmp21 - __cil_tmp20;
 9526#line 937
 9527    wrap = (struct whiteheat_urb_wrap *)__cil_tmp22;
 9528#line 938
 9529    __cil_tmp23 = wrap->urb;
 9530#line 938
 9531    __cil_tmp24 = __cil_tmp23->transfer_buffer_length;
 9532#line 938
 9533    __cil_tmp25 = (u32 )chars;
 9534#line 938
 9535    __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
 9536#line 938
 9537    chars = (int )__cil_tmp26;
 9538#line 936
 9539    tmp___8 = tmp___8->next;
 9540  }
 9541  while_break___7: /* CIL Label */ ;
 9542  }
 9543
 9544  while_break___2: 
 9545  {
 9546#line 940
 9547  __cil_tmp27 = & info->lock;
 9548#line 940
 9549  spin_unlock_irqrestore(__cil_tmp27, flags);
 9550  }
 9551  {
 9552#line 942
 9553  while (1) {
 9554    while_continue___3: /* CIL Label */ ;
 9555
 9556#line 942
 9557    if (debug) {
 9558      {
 9559#line 942
 9560      printk("<7>%s: %s - returns %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9561             "whiteheat_chars_in_buffer", chars);
 9562      }
 9563    } else {
 9564
 9565    }
 9566#line 942
 9567    goto while_break___3;
 9568  }
 9569  while_break___8: /* CIL Label */ ;
 9570  }
 9571
 9572  while_break___3: ;
 9573#line 943
 9574  return (chars);
 9575}
 9576}
 9577#line 947 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9578static void whiteheat_throttle(struct tty_struct *tty ) 
 9579{ struct usb_serial_port *port ;
 9580  struct whiteheat_private *info ;
 9581  void *tmp___7 ;
 9582  void *__cil_tmp5 ;
 9583  unsigned char __cil_tmp6 ;
 9584  int __cil_tmp7 ;
 9585  spinlock_t *__cil_tmp8 ;
 9586  __u8 __cil_tmp9 ;
 9587  int __cil_tmp10 ;
 9588  int __cil_tmp11 ;
 9589  spinlock_t *__cil_tmp12 ;
 9590
 9591  {
 9592  {
 9593#line 949
 9594  __cil_tmp5 = tty->driver_data;
 9595#line 949
 9596  port = (struct usb_serial_port *)__cil_tmp5;
 9597#line 950
 9598  tmp___7 = usb_get_serial_port_data(port);
 9599#line 950
 9600  info = (struct whiteheat_private *)tmp___7;
 9601  }
 9602  {
 9603#line 952
 9604  while (1) {
 9605    while_continue: /* CIL Label */ ;
 9606
 9607#line 952
 9608    if (debug) {
 9609      {
 9610#line 952
 9611      __cil_tmp6 = port->number;
 9612#line 952
 9613      __cil_tmp7 = (int )__cil_tmp6;
 9614#line 952
 9615      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9616             "whiteheat_throttle", __cil_tmp7);
 9617      }
 9618    } else {
 9619
 9620    }
 9621#line 952
 9622    goto while_break;
 9623  }
 9624  while_break___0: /* CIL Label */ ;
 9625  }
 9626
 9627  while_break: 
 9628  {
 9629#line 954
 9630  __cil_tmp8 = & info->lock;
 9631#line 954
 9632  spin_lock_irq(__cil_tmp8);
 9633#line 955
 9634  __cil_tmp9 = info->flags;
 9635#line 955
 9636  __cil_tmp10 = (int )__cil_tmp9;
 9637#line 955
 9638  __cil_tmp11 = __cil_tmp10 | 1;
 9639#line 955
 9640  info->flags = (__u8 )__cil_tmp11;
 9641#line 956
 9642  __cil_tmp12 = & info->lock;
 9643#line 956
 9644  spin_unlock_irq(__cil_tmp12);
 9645  }
 9646#line 957
 9647  return;
 9648}
 9649}
 9650#line 960 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9651static void whiteheat_unthrottle(struct tty_struct *tty ) 
 9652{ struct usb_serial_port *port ;
 9653  struct whiteheat_private *info ;
 9654  void *tmp___7 ;
 9655  int actually_throttled ;
 9656  void *__cil_tmp6 ;
 9657  unsigned char __cil_tmp7 ;
 9658  int __cil_tmp8 ;
 9659  spinlock_t *__cil_tmp9 ;
 9660  __u8 __cil_tmp10 ;
 9661  int __cil_tmp11 ;
 9662  __u8 __cil_tmp12 ;
 9663  int __cil_tmp13 ;
 9664  int __cil_tmp14 ;
 9665  spinlock_t *__cil_tmp15 ;
 9666  struct work_struct *__cil_tmp16 ;
 9667
 9668  {
 9669  {
 9670#line 962
 9671  __cil_tmp6 = tty->driver_data;
 9672#line 962
 9673  port = (struct usb_serial_port *)__cil_tmp6;
 9674#line 963
 9675  tmp___7 = usb_get_serial_port_data(port);
 9676#line 963
 9677  info = (struct whiteheat_private *)tmp___7;
 9678  }
 9679  {
 9680#line 966
 9681  while (1) {
 9682    while_continue: /* CIL Label */ ;
 9683
 9684#line 966
 9685    if (debug) {
 9686      {
 9687#line 966
 9688      __cil_tmp7 = port->number;
 9689#line 966
 9690      __cil_tmp8 = (int )__cil_tmp7;
 9691#line 966
 9692      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9693             "whiteheat_unthrottle", __cil_tmp8);
 9694      }
 9695    } else {
 9696
 9697    }
 9698#line 966
 9699    goto while_break;
 9700  }
 9701  while_break___0: /* CIL Label */ ;
 9702  }
 9703
 9704  while_break: 
 9705  {
 9706#line 968
 9707  __cil_tmp9 = & info->lock;
 9708#line 968
 9709  spin_lock_irq(__cil_tmp9);
 9710#line 969
 9711  __cil_tmp10 = info->flags;
 9712#line 969
 9713  __cil_tmp11 = (int )__cil_tmp10;
 9714#line 969
 9715  actually_throttled = __cil_tmp11 & 2;
 9716#line 970
 9717  __cil_tmp12 = info->flags;
 9718#line 970
 9719  __cil_tmp13 = (int )__cil_tmp12;
 9720#line 970
 9721  __cil_tmp14 = __cil_tmp13 & -4;
 9722#line 970
 9723  info->flags = (__u8 )__cil_tmp14;
 9724#line 971
 9725  __cil_tmp15 = & info->lock;
 9726#line 971
 9727  spin_unlock_irq(__cil_tmp15);
 9728  }
 9729#line 973
 9730  if (actually_throttled) {
 9731    {
 9732#line 974
 9733    __cil_tmp16 = & info->rx_work;
 9734#line 974
 9735    rx_data_softint(__cil_tmp16);
 9736    }
 9737  } else {
 9738
 9739  }
 9740#line 975
 9741  return;
 9742}
 9743}
 9744#line 981 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9745static void command_port_write_callback(struct urb *urb ) 
 9746{ int status ;
 9747
 9748  {
 9749#line 983
 9750  status = urb->status;
 9751  {
 9752#line 985
 9753  while (1) {
 9754    while_continue: /* CIL Label */ ;
 9755
 9756#line 985
 9757    if (debug) {
 9758      {
 9759#line 985
 9760      printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9761             "command_port_write_callback");
 9762      }
 9763    } else {
 9764
 9765    }
 9766#line 985
 9767    goto while_break;
 9768  }
 9769  while_break___1: /* CIL Label */ ;
 9770  }
 9771
 9772  while_break: ;
 9773#line 987
 9774  if (status) {
 9775    {
 9776#line 988
 9777    while (1) {
 9778      while_continue___0: /* CIL Label */ ;
 9779
 9780#line 988
 9781      if (debug) {
 9782        {
 9783#line 988
 9784        printk("<7>%s: nonzero urb status: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9785               status);
 9786        }
 9787      } else {
 9788
 9789      }
 9790#line 988
 9791      goto while_break___0;
 9792    }
 9793    while_break___2: /* CIL Label */ ;
 9794    }
 9795
 9796    while_break___0: ;
 9797#line 989
 9798    return;
 9799  } else {
 9800
 9801  }
 9802#line 991
 9803  return;
 9804}
 9805}
 9806#line 994 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
 9807static void command_port_read_callback(struct urb *urb ) 
 9808{ struct usb_serial_port *command_port ;
 9809  struct whiteheat_command_private *command_info ;
 9810  int status ;
 9811  unsigned char *data ;
 9812  int result ;
 9813  void *tmp___7 ;
 9814  size_t __len ;
 9815  void *__ret ;
 9816  void *__cil_tmp10 ;
 9817  void *__cil_tmp11 ;
 9818  wait_queue_head_t *__cil_tmp12 ;
 9819  void *__cil_tmp13 ;
 9820  struct device *__cil_tmp14 ;
 9821  u32 __cil_tmp15 ;
 9822  int __cil_tmp16 ;
 9823  unsigned char const   *__cil_tmp17 ;
 9824  unsigned char *__cil_tmp18 ;
 9825  unsigned char __cil_tmp19 ;
 9826  int __cil_tmp20 ;
 9827  wait_queue_head_t *__cil_tmp21 ;
 9828  void *__cil_tmp22 ;
 9829  unsigned char *__cil_tmp23 ;
 9830  unsigned char __cil_tmp24 ;
 9831  int __cil_tmp25 ;
 9832  wait_queue_head_t *__cil_tmp26 ;
 9833  void *__cil_tmp27 ;
 9834  unsigned char *__cil_tmp28 ;
 9835  unsigned char __cil_tmp29 ;
 9836  int __cil_tmp30 ;
 9837  unsigned char *__cil_tmp31 ;
 9838  unsigned char __cil_tmp32 ;
 9839  int __cil_tmp33 ;
 9840  u32 __cil_tmp34 ;
 9841  u32 __cil_tmp35 ;
 9842  __u8 *__cil_tmp36 ;
 9843  void *__cil_tmp37 ;
 9844  unsigned char *__cil_tmp38 ;
 9845  void const   *__cil_tmp39 ;
 9846  wait_queue_head_t *__cil_tmp40 ;
 9847  void *__cil_tmp41 ;
 9848  struct urb *__cil_tmp42 ;
 9849  struct usb_serial *__cil_tmp43 ;
 9850  struct urb *__cil_tmp44 ;
 9851
 9852  {
 9853#line 996
 9854  __cil_tmp10 = urb->context;
 9855#line 996
 9856  command_port = (struct usb_serial_port *)__cil_tmp10;
 9857#line 998
 9858  status = urb->status;
 9859#line 999
 9860  __cil_tmp11 = urb->transfer_buffer;
 9861#line 999
 9862  data = (unsigned char *)__cil_tmp11;
 9863  {
 9864#line 1002
 9865  while (1) {
 9866    while_continue: /* CIL Label */ ;
 9867
 9868#line 1002
 9869    if (debug) {
 9870      {
 9871#line 1002
 9872      printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9873             "command_port_read_callback");
 9874      }
 9875    } else {
 9876
 9877    }
 9878#line 1002
 9879    goto while_break;
 9880  }
 9881  while_break___5: /* CIL Label */ ;
 9882  }
 9883
 9884  while_break: 
 9885  {
 9886#line 1004
 9887  tmp___7 = usb_get_serial_port_data(command_port);
 9888#line 1004
 9889  command_info = (struct whiteheat_command_private *)tmp___7;
 9890  }
 9891#line 1005
 9892  if (! command_info) {
 9893    {
 9894#line 1006
 9895    while (1) {
 9896      while_continue___0: /* CIL Label */ ;
 9897
 9898#line 1006
 9899      if (debug) {
 9900        {
 9901#line 1006
 9902        printk("<7>%s: %s - command_info is NULL, exiting.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9903               "command_port_read_callback");
 9904        }
 9905      } else {
 9906
 9907      }
 9908#line 1006
 9909      goto while_break___0;
 9910    }
 9911    while_break___6: /* CIL Label */ ;
 9912    }
 9913
 9914    while_break___0: ;
 9915#line 1007
 9916    return;
 9917  } else {
 9918
 9919  }
 9920#line 1009
 9921  if (status) {
 9922    {
 9923#line 1010
 9924    while (1) {
 9925      while_continue___1: /* CIL Label */ ;
 9926
 9927#line 1010
 9928      if (debug) {
 9929        {
 9930#line 1010
 9931        printk("<7>%s: %s - nonzero urb status: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
 9932               "command_port_read_callback", status);
 9933        }
 9934      } else {
 9935
 9936      }
 9937#line 1010
 9938      goto while_break___1;
 9939    }
 9940    while_break___7: /* CIL Label */ ;
 9941    }
 9942
 9943    while_break___1: ;
 9944#line 1011
 9945    if (status != -2) {
 9946#line 1012
 9947      command_info->command_finished = (__u8 )17;
 9948    } else {
 9949
 9950    }
 9951    {
 9952#line 1013
 9953    __cil_tmp12 = & command_info->wait_command;
 9954#line 1013
 9955    __cil_tmp13 = (void *)0;
 9956#line 1013
 9957    __wake_up(__cil_tmp12, 3U, 1, __cil_tmp13);
 9958    }
 9959#line 1014
 9960    return;
 9961  } else {
 9962
 9963  }
 9964  {
 9965#line 1017
 9966  __cil_tmp14 = & command_port->dev;
 9967#line 1017
 9968  __cil_tmp15 = urb->actual_length;
 9969#line 1017
 9970  __cil_tmp16 = (int )__cil_tmp15;
 9971#line 1017
 9972  __cil_tmp17 = (unsigned char const   *)data;
 9973#line 1017
 9974  usb_serial_debug_data(debug, __cil_tmp14, "command_port_read_callback", __cil_tmp16,
 9975                        __cil_tmp17);
 9976  }
 9977  {
 9978#line 1020
 9979  __cil_tmp18 = data + 0;
 9980#line 1020
 9981  __cil_tmp19 = *__cil_tmp18;
 9982#line 1020
 9983  __cil_tmp20 = (int )__cil_tmp19;
 9984#line 1020
 9985  if (__cil_tmp20 == 16) {
 9986    {
 9987#line 1021
 9988    command_info->command_finished = (__u8 )16;
 9989#line 1022
 9990    __cil_tmp21 = & command_info->wait_command;
 9991#line 1022
 9992    __cil_tmp22 = (void *)0;
 9993#line 1022
 9994    __wake_up(__cil_tmp21, 3U, 1, __cil_tmp22);
 9995    }
 9996  } else {
 9997    {
 9998#line 1023
 9999    __cil_tmp23 = data + 0;
10000#line 1023
10001    __cil_tmp24 = *__cil_tmp23;
10002#line 1023
10003    __cil_tmp25 = (int )__cil_tmp24;
10004#line 1023
10005    if (__cil_tmp25 == 17) {
10006      {
10007#line 1024
10008      command_info->command_finished = (__u8 )17;
10009#line 1025
10010      __cil_tmp26 = & command_info->wait_command;
10011#line 1025
10012      __cil_tmp27 = (void *)0;
10013#line 1025
10014      __wake_up(__cil_tmp26, 3U, 1, __cil_tmp27);
10015      }
10016    } else {
10017      {
10018#line 1026
10019      __cil_tmp28 = data + 0;
10020#line 1026
10021      __cil_tmp29 = *__cil_tmp28;
10022#line 1026
10023      __cil_tmp30 = (int )__cil_tmp29;
10024#line 1026
10025      if (__cil_tmp30 == 13) {
10026        {
10027#line 1029
10028        while (1) {
10029          while_continue___2: /* CIL Label */ ;
10030
10031#line 1029
10032          if (debug) {
10033            {
10034#line 1029
10035            printk("<7>%s: %s - event received\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10036                   "command_port_read_callback");
10037            }
10038          } else {
10039
10040          }
10041#line 1029
10042          goto while_break___2;
10043        }
10044        while_break___8: /* CIL Label */ ;
10045        }
10046
10047        while_break___2: ;
10048      } else {
10049        {
10050#line 1030
10051        __cil_tmp31 = data + 0;
10052#line 1030
10053        __cil_tmp32 = *__cil_tmp31;
10054#line 1030
10055        __cil_tmp33 = (int )__cil_tmp32;
10056#line 1030
10057        if (__cil_tmp33 == 10) {
10058          {
10059#line 1031
10060          __cil_tmp34 = urb->actual_length;
10061#line 1031
10062          __cil_tmp35 = __cil_tmp34 - 1U;
10063#line 1031
10064          __len = (size_t )__cil_tmp35;
10065#line 1031
10066          __cil_tmp36 = & command_info->result_buffer[0];
10067#line 1031
10068          __cil_tmp37 = (void *)__cil_tmp36;
10069#line 1031
10070          __cil_tmp38 = data + 1;
10071#line 1031
10072          __cil_tmp39 = (void const   *)__cil_tmp38;
10073#line 1031
10074          __ret = __builtin_memcpy(__cil_tmp37, __cil_tmp39, __len);
10075#line 1033
10076          command_info->command_finished = (__u8 )16;
10077#line 1034
10078          __cil_tmp40 = & command_info->wait_command;
10079#line 1034
10080          __cil_tmp41 = (void *)0;
10081#line 1034
10082          __wake_up(__cil_tmp40, 3U, 1, __cil_tmp41);
10083          }
10084        } else {
10085          {
10086#line 1036
10087          while (1) {
10088            while_continue___3: /* CIL Label */ ;
10089
10090#line 1036
10091            if (debug) {
10092              {
10093#line 1036
10094              printk("<7>%s: %s - bad reply from firmware\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10095                     "command_port_read_callback");
10096              }
10097            } else {
10098
10099            }
10100#line 1036
10101            goto while_break___3;
10102          }
10103          while_break___9: /* CIL Label */ ;
10104          }
10105
10106          while_break___3: ;
10107        }
10108        }
10109      }
10110      }
10111    }
10112    }
10113  }
10114  }
10115  {
10116#line 1039
10117  __cil_tmp42 = command_port->read_urb;
10118#line 1039
10119  __cil_tmp43 = command_port->serial;
10120#line 1039
10121  __cil_tmp42->dev = __cil_tmp43->dev;
10122#line 1040
10123  __cil_tmp44 = command_port->read_urb;
10124#line 1040
10125  result = usb_submit_urb(__cil_tmp44, 32U);
10126  }
10127#line 1041
10128  if (result) {
10129    {
10130#line 1042
10131    while (1) {
10132      while_continue___4: /* CIL Label */ ;
10133
10134#line 1042
10135      if (debug) {
10136        {
10137#line 1042
10138        printk("<7>%s: %s - failed resubmitting read urb, error %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10139               "command_port_read_callback", result);
10140        }
10141      } else {
10142
10143      }
10144#line 1042
10145      goto while_break___4;
10146    }
10147    while_break___10: /* CIL Label */ ;
10148    }
10149
10150    while_break___4: ;
10151  } else {
10152
10153  }
10154#line 1044
10155  return;
10156}
10157}
10158#line 1047 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10159static void whiteheat_read_callback(struct urb *urb ) 
10160{ struct usb_serial_port *port ;
10161  struct whiteheat_urb_wrap *wrap ;
10162  unsigned char *data ;
10163  struct whiteheat_private *info ;
10164  void *tmp___7 ;
10165  int status ;
10166  void *__cil_tmp8 ;
10167  void *__cil_tmp9 ;
10168  unsigned char __cil_tmp10 ;
10169  int __cil_tmp11 ;
10170  spinlock_t *__cil_tmp12 ;
10171  struct list_head *__cil_tmp13 ;
10172  spinlock_t *__cil_tmp14 ;
10173  struct device *__cil_tmp15 ;
10174  struct device  const  *__cil_tmp16 ;
10175  struct list_head *__cil_tmp17 ;
10176  spinlock_t *__cil_tmp18 ;
10177  spinlock_t *__cil_tmp19 ;
10178  struct list_head *__cil_tmp20 ;
10179  struct list_head *__cil_tmp21 ;
10180  spinlock_t *__cil_tmp22 ;
10181  struct device *__cil_tmp23 ;
10182  u32 __cil_tmp24 ;
10183  int __cil_tmp25 ;
10184  unsigned char const   *__cil_tmp26 ;
10185  spinlock_t *__cil_tmp27 ;
10186  struct list_head *__cil_tmp28 ;
10187  struct list_head *__cil_tmp29 ;
10188  __u8 __cil_tmp30 ;
10189  int __cil_tmp31 ;
10190  __u8 __cil_tmp32 ;
10191  int __cil_tmp33 ;
10192  int __cil_tmp34 ;
10193  spinlock_t *__cil_tmp35 ;
10194  spinlock_t *__cil_tmp36 ;
10195  struct work_struct *__cil_tmp37 ;
10196
10197  {
10198  {
10199#line 1049
10200  __cil_tmp8 = urb->context;
10201#line 1049
10202  port = (struct usb_serial_port *)__cil_tmp8;
10203#line 1051
10204  __cil_tmp9 = urb->transfer_buffer;
10205#line 1051
10206  data = (unsigned char *)__cil_tmp9;
10207#line 1052
10208  tmp___7 = usb_get_serial_port_data(port);
10209#line 1052
10210  info = (struct whiteheat_private *)tmp___7;
10211#line 1053
10212  status = urb->status;
10213  }
10214  {
10215#line 1055
10216  while (1) {
10217    while_continue: /* CIL Label */ ;
10218
10219#line 1055
10220    if (debug) {
10221      {
10222#line 1055
10223      __cil_tmp10 = port->number;
10224#line 1055
10225      __cil_tmp11 = (int )__cil_tmp10;
10226#line 1055
10227      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10228             "whiteheat_read_callback", __cil_tmp11);
10229      }
10230    } else {
10231
10232    }
10233#line 1055
10234    goto while_break;
10235  }
10236  while_break___1: /* CIL Label */ ;
10237  }
10238
10239  while_break: 
10240  {
10241#line 1057
10242  __cil_tmp12 = & info->lock;
10243#line 1057
10244  spin_lock(__cil_tmp12);
10245#line 1058
10246  __cil_tmp13 = & info->rx_urbs_submitted;
10247#line 1058
10248  wrap = urb_to_wrap(urb, __cil_tmp13);
10249  }
10250#line 1059
10251  if (! wrap) {
10252    {
10253#line 1060
10254    __cil_tmp14 = & info->lock;
10255#line 1060
10256    spin_unlock(__cil_tmp14);
10257#line 1061
10258    __cil_tmp15 = & port->dev;
10259#line 1061
10260    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
10261#line 1061
10262    dev_err(__cil_tmp16, "%s - Not my urb!\n", "whiteheat_read_callback");
10263    }
10264#line 1062
10265    return;
10266  } else {
10267
10268  }
10269  {
10270#line 1064
10271  __cil_tmp17 = & wrap->list;
10272#line 1064
10273  list_del(__cil_tmp17);
10274#line 1065
10275  __cil_tmp18 = & info->lock;
10276#line 1065
10277  spin_unlock(__cil_tmp18);
10278  }
10279#line 1067
10280  if (status) {
10281    {
10282#line 1068
10283    while (1) {
10284      while_continue___0: /* CIL Label */ ;
10285
10286#line 1068
10287      if (debug) {
10288        {
10289#line 1068
10290        printk("<7>%s: %s - nonzero read bulk status received: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10291               "whiteheat_read_callback", status);
10292        }
10293      } else {
10294
10295      }
10296#line 1068
10297      goto while_break___0;
10298    }
10299    while_break___2: /* CIL Label */ ;
10300    }
10301
10302    while_break___0: 
10303    {
10304#line 1070
10305    __cil_tmp19 = & info->lock;
10306#line 1070
10307    spin_lock(__cil_tmp19);
10308#line 1071
10309    __cil_tmp20 = & wrap->list;
10310#line 1071
10311    __cil_tmp21 = & info->rx_urbs_free;
10312#line 1071
10313    list_add(__cil_tmp20, __cil_tmp21);
10314#line 1072
10315    __cil_tmp22 = & info->lock;
10316#line 1072
10317    spin_unlock(__cil_tmp22);
10318    }
10319#line 1073
10320    return;
10321  } else {
10322
10323  }
10324  {
10325#line 1076
10326  __cil_tmp23 = & port->dev;
10327#line 1076
10328  __cil_tmp24 = urb->actual_length;
10329#line 1076
10330  __cil_tmp25 = (int )__cil_tmp24;
10331#line 1076
10332  __cil_tmp26 = (unsigned char const   *)data;
10333#line 1076
10334  usb_serial_debug_data(debug, __cil_tmp23, "whiteheat_read_callback", __cil_tmp25,
10335                        __cil_tmp26);
10336#line 1079
10337  __cil_tmp27 = & info->lock;
10338#line 1079
10339  spin_lock(__cil_tmp27);
10340#line 1080
10341  __cil_tmp28 = & wrap->list;
10342#line 1080
10343  __cil_tmp29 = & info->rx_urb_q;
10344#line 1080
10345  list_add_tail(__cil_tmp28, __cil_tmp29);
10346  }
10347  {
10348#line 1081
10349  __cil_tmp30 = info->flags;
10350#line 1081
10351  __cil_tmp31 = (int )__cil_tmp30;
10352#line 1081
10353  if (__cil_tmp31 & 1) {
10354    {
10355#line 1082
10356    __cil_tmp32 = info->flags;
10357#line 1082
10358    __cil_tmp33 = (int )__cil_tmp32;
10359#line 1082
10360    __cil_tmp34 = __cil_tmp33 | 2;
10361#line 1082
10362    info->flags = (__u8 )__cil_tmp34;
10363#line 1083
10364    __cil_tmp35 = & info->lock;
10365#line 1083
10366    spin_unlock(__cil_tmp35);
10367    }
10368#line 1084
10369    return;
10370  } else {
10371
10372  }
10373  }
10374  {
10375#line 1086
10376  __cil_tmp36 = & info->lock;
10377#line 1086
10378  spin_unlock(__cil_tmp36);
10379#line 1088
10380  __cil_tmp37 = & info->rx_work;
10381#line 1088
10382  schedule_work(__cil_tmp37);
10383  }
10384#line 1089
10385  return;
10386}
10387}
10388#line 1092 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10389static void whiteheat_write_callback(struct urb *urb ) 
10390{ struct usb_serial_port *port ;
10391  struct whiteheat_private *info ;
10392  void *tmp___7 ;
10393  struct whiteheat_urb_wrap *wrap ;
10394  int status ;
10395  void *__cil_tmp7 ;
10396  unsigned char __cil_tmp8 ;
10397  int __cil_tmp9 ;
10398  spinlock_t *__cil_tmp10 ;
10399  struct list_head *__cil_tmp11 ;
10400  spinlock_t *__cil_tmp12 ;
10401  struct device *__cil_tmp13 ;
10402  struct device  const  *__cil_tmp14 ;
10403  struct list_head *__cil_tmp15 ;
10404  struct list_head *__cil_tmp16 ;
10405  spinlock_t *__cil_tmp17 ;
10406
10407  {
10408  {
10409#line 1094
10410  __cil_tmp7 = urb->context;
10411#line 1094
10412  port = (struct usb_serial_port *)__cil_tmp7;
10413#line 1095
10414  tmp___7 = usb_get_serial_port_data(port);
10415#line 1095
10416  info = (struct whiteheat_private *)tmp___7;
10417#line 1097
10418  status = urb->status;
10419  }
10420  {
10421#line 1099
10422  while (1) {
10423    while_continue: /* CIL Label */ ;
10424
10425#line 1099
10426    if (debug) {
10427      {
10428#line 1099
10429      __cil_tmp8 = port->number;
10430#line 1099
10431      __cil_tmp9 = (int )__cil_tmp8;
10432#line 1099
10433      printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10434             "whiteheat_write_callback", __cil_tmp9);
10435      }
10436    } else {
10437
10438    }
10439#line 1099
10440    goto while_break;
10441  }
10442  while_break___1: /* CIL Label */ ;
10443  }
10444
10445  while_break: 
10446  {
10447#line 1101
10448  __cil_tmp10 = & info->lock;
10449#line 1101
10450  spin_lock(__cil_tmp10);
10451#line 1102
10452  __cil_tmp11 = & info->tx_urbs_submitted;
10453#line 1102
10454  wrap = urb_to_wrap(urb, __cil_tmp11);
10455  }
10456#line 1103
10457  if (! wrap) {
10458    {
10459#line 1104
10460    __cil_tmp12 = & info->lock;
10461#line 1104
10462    spin_unlock(__cil_tmp12);
10463#line 1105
10464    __cil_tmp13 = & port->dev;
10465#line 1105
10466    __cil_tmp14 = (struct device  const  *)__cil_tmp13;
10467#line 1105
10468    dev_err(__cil_tmp14, "%s - Not my urb!\n", "whiteheat_write_callback");
10469    }
10470#line 1106
10471    return;
10472  } else {
10473
10474  }
10475  {
10476#line 1108
10477  __cil_tmp15 = & wrap->list;
10478#line 1108
10479  __cil_tmp16 = & info->tx_urbs_free;
10480#line 1108
10481  list_move(__cil_tmp15, __cil_tmp16);
10482#line 1109
10483  __cil_tmp17 = & info->lock;
10484#line 1109
10485  spin_unlock(__cil_tmp17);
10486  }
10487#line 1111
10488  if (status) {
10489    {
10490#line 1112
10491    while (1) {
10492      while_continue___0: /* CIL Label */ ;
10493
10494#line 1112
10495      if (debug) {
10496        {
10497#line 1112
10498        printk("<7>%s: %s - nonzero write bulk status received: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10499               "whiteheat_write_callback", status);
10500        }
10501      } else {
10502
10503      }
10504#line 1112
10505      goto while_break___0;
10506    }
10507    while_break___2: /* CIL Label */ ;
10508    }
10509
10510    while_break___0: ;
10511#line 1114
10512    return;
10513  } else {
10514
10515  }
10516  {
10517#line 1117
10518  usb_serial_port_softint(port);
10519  }
10520#line 1118
10521  return;
10522}
10523}
10524#line 1124 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10525static int firm_send_command(struct usb_serial_port *port , __u8 command , __u8 *data ,
10526                             __u8 datasize ) 
10527{ struct usb_serial_port *command_port ;
10528  struct whiteheat_command_private *command_info ;
10529  struct whiteheat_private *info ;
10530  __u8 *transfer_buffer ;
10531  int retval ;
10532  int t ;
10533  void *tmp___7 ;
10534  size_t __len ;
10535  void *__ret ;
10536  long __ret___0 ;
10537  wait_queue_t __wait ;
10538  struct task_struct *tmp___8 ;
10539  void *tmp___9 ;
10540  size_t __len___0 ;
10541  void *__ret___1 ;
10542  int __cil_tmp20 ;
10543  struct usb_serial *__cil_tmp21 ;
10544  struct mutex *__cil_tmp22 ;
10545  struct urb *__cil_tmp23 ;
10546  void *__cil_tmp24 ;
10547  __u8 *__cil_tmp25 ;
10548  __u8 *__cil_tmp26 ;
10549  void *__cil_tmp27 ;
10550  void const   *__cil_tmp28 ;
10551  struct urb *__cil_tmp29 ;
10552  int __cil_tmp30 ;
10553  int __cil_tmp31 ;
10554  struct urb *__cil_tmp32 ;
10555  struct usb_serial *__cil_tmp33 ;
10556  struct urb *__cil_tmp34 ;
10557  __u8 __cil_tmp35 ;
10558  bool __cil_tmp36 ;
10559  wait_queue_head_t *__cil_tmp37 ;
10560  __u8 __cil_tmp38 ;
10561  wait_queue_head_t *__cil_tmp39 ;
10562  struct urb *__cil_tmp40 ;
10563  __u8 __cil_tmp41 ;
10564  int __cil_tmp42 ;
10565  __u8 __cil_tmp43 ;
10566  int __cil_tmp44 ;
10567  __u8 __cil_tmp45 ;
10568  int __cil_tmp46 ;
10569  int __cil_tmp47 ;
10570  __u8 *__cil_tmp48 ;
10571  void *__cil_tmp49 ;
10572  __u8 *__cil_tmp50 ;
10573  void const   *__cil_tmp51 ;
10574  __u8 *__cil_tmp52 ;
10575  void *__cil_tmp53 ;
10576  __u8 *__cil_tmp54 ;
10577  void const   *__cil_tmp55 ;
10578  struct mutex *__cil_tmp56 ;
10579
10580  {
10581#line 1131
10582  retval = 0;
10583  {
10584#line 1134
10585  while (1) {
10586    while_continue: /* CIL Label */ ;
10587
10588#line 1134
10589    if (debug) {
10590      {
10591#line 1134
10592      __cil_tmp20 = (int )command;
10593#line 1134
10594      printk("<7>%s: %s - command %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10595             "firm_send_command", __cil_tmp20);
10596      }
10597    } else {
10598
10599    }
10600#line 1134
10601    goto while_break;
10602  }
10603  while_break___6: /* CIL Label */ ;
10604  }
10605
10606  while_break: 
10607  {
10608#line 1136
10609  __cil_tmp21 = port->serial;
10610#line 1136
10611  command_port = __cil_tmp21->port[4];
10612#line 1137
10613  tmp___7 = usb_get_serial_port_data(command_port);
10614#line 1137
10615  command_info = (struct whiteheat_command_private *)tmp___7;
10616#line 1138
10617  __cil_tmp22 = & command_info->mutex;
10618#line 1138
10619  mutex_lock_nested(__cil_tmp22, 0U);
10620#line 1139
10621  command_info->command_finished = (__u8 )0;
10622#line 1141
10623  __cil_tmp23 = command_port->write_urb;
10624#line 1141
10625  __cil_tmp24 = __cil_tmp23->transfer_buffer;
10626#line 1141
10627  transfer_buffer = (__u8 *)__cil_tmp24;
10628#line 1142
10629  __cil_tmp25 = transfer_buffer + 0;
10630#line 1142
10631  *__cil_tmp25 = command;
10632#line 1143
10633  __len = (size_t )datasize;
10634#line 1143
10635  __cil_tmp26 = transfer_buffer + 1;
10636#line 1143
10637  __cil_tmp27 = (void *)__cil_tmp26;
10638#line 1143
10639  __cil_tmp28 = (void const   *)data;
10640#line 1143
10641  __ret = __builtin_memcpy(__cil_tmp27, __cil_tmp28, __len);
10642#line 1144
10643  __cil_tmp29 = command_port->write_urb;
10644#line 1144
10645  __cil_tmp30 = (int )datasize;
10646#line 1144
10647  __cil_tmp31 = __cil_tmp30 + 1;
10648#line 1144
10649  __cil_tmp29->transfer_buffer_length = (u32 )__cil_tmp31;
10650#line 1145
10651  __cil_tmp32 = command_port->write_urb;
10652#line 1145
10653  __cil_tmp33 = port->serial;
10654#line 1145
10655  __cil_tmp32->dev = __cil_tmp33->dev;
10656#line 1146
10657  __cil_tmp34 = command_port->write_urb;
10658#line 1146
10659  retval = usb_submit_urb(__cil_tmp34, 16U);
10660  }
10661#line 1147
10662  if (retval) {
10663    {
10664#line 1148
10665    while (1) {
10666      while_continue___0: /* CIL Label */ ;
10667
10668#line 1148
10669      if (debug) {
10670        {
10671#line 1148
10672        printk("<7>%s: %s - submit urb failed\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10673               "firm_send_command");
10674        }
10675      } else {
10676
10677      }
10678#line 1148
10679      goto while_break___0;
10680    }
10681    while_break___7: /* CIL Label */ ;
10682    }
10683
10684    while_break___0: ;
10685#line 1149
10686    goto exit;
10687  } else {
10688
10689  }
10690#line 1153
10691  __ret___0 = 500L;
10692  {
10693#line 1153
10694  __cil_tmp35 = command_info->command_finished;
10695#line 1153
10696  __cil_tmp36 = (bool )__cil_tmp35;
10697#line 1153
10698  if (! __cil_tmp36) {
10699    {
10700#line 1153
10701    while (1) {
10702      while_continue___1: /* CIL Label */ ;
10703      {
10704#line 1153
10705      tmp___8 = get_current();
10706#line 1153
10707      __wait.flags = 0U;
10708#line 1153
10709      __wait.private = (void *)tmp___8;
10710#line 1153
10711      __wait.func = & autoremove_wake_function;
10712#line 1153
10713      __wait.task_list.next = & __wait.task_list;
10714#line 1153
10715      __wait.task_list.prev = & __wait.task_list;
10716      }
10717      {
10718#line 1153
10719      while (1) {
10720        while_continue___2: /* CIL Label */ ;
10721        {
10722#line 1153
10723        __cil_tmp37 = & command_info->wait_command;
10724#line 1153
10725        prepare_to_wait(__cil_tmp37, & __wait, 2);
10726        }
10727        {
10728#line 1153
10729        __cil_tmp38 = command_info->command_finished;
10730#line 1153
10731        if ((bool )__cil_tmp38) {
10732#line 1153
10733          goto while_break___2;
10734        } else {
10735
10736        }
10737        }
10738        {
10739#line 1153
10740        __ret___0 = schedule_timeout(__ret___0);
10741        }
10742#line 1153
10743        if (! __ret___0) {
10744#line 1153
10745          goto while_break___2;
10746        } else {
10747
10748        }
10749      }
10750      while_break___9: /* CIL Label */ ;
10751      }
10752
10753      while_break___2: 
10754      {
10755#line 1153
10756      __cil_tmp39 = & command_info->wait_command;
10757#line 1153
10758      finish_wait(__cil_tmp39, & __wait);
10759      }
10760#line 1153
10761      goto while_break___1;
10762    }
10763    while_break___8: /* CIL Label */ ;
10764    }
10765
10766    while_break___1: ;
10767  } else {
10768
10769  }
10770  }
10771#line 1153
10772  t = (int )__ret___0;
10773#line 1155
10774  if (! t) {
10775    {
10776#line 1156
10777    __cil_tmp40 = command_port->write_urb;
10778#line 1156
10779    usb_kill_urb(__cil_tmp40);
10780    }
10781  } else {
10782
10783  }
10784  {
10785#line 1158
10786  __cil_tmp41 = command_info->command_finished;
10787#line 1158
10788  __cil_tmp42 = (int )__cil_tmp41;
10789#line 1158
10790  if (__cil_tmp42 == 0) {
10791    {
10792#line 1159
10793    while (1) {
10794      while_continue___3: /* CIL Label */ ;
10795
10796#line 1159
10797      if (debug) {
10798        {
10799#line 1159
10800        printk("<7>%s: %s - command timed out.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10801               "firm_send_command");
10802        }
10803      } else {
10804
10805      }
10806#line 1159
10807      goto while_break___3;
10808    }
10809    while_break___10: /* CIL Label */ ;
10810    }
10811
10812    while_break___3: 
10813#line 1160
10814    retval = -110;
10815#line 1161
10816    goto exit;
10817  } else {
10818
10819  }
10820  }
10821  {
10822#line 1164
10823  __cil_tmp43 = command_info->command_finished;
10824#line 1164
10825  __cil_tmp44 = (int )__cil_tmp43;
10826#line 1164
10827  if (__cil_tmp44 == 17) {
10828    {
10829#line 1165
10830    while (1) {
10831      while_continue___4: /* CIL Label */ ;
10832
10833#line 1165
10834      if (debug) {
10835        {
10836#line 1165
10837        printk("<7>%s: %s - command failed.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10838               "firm_send_command");
10839        }
10840      } else {
10841
10842      }
10843#line 1165
10844      goto while_break___4;
10845    }
10846    while_break___11: /* CIL Label */ ;
10847    }
10848
10849    while_break___4: 
10850#line 1166
10851    retval = -5;
10852#line 1167
10853    goto exit;
10854  } else {
10855
10856  }
10857  }
10858  {
10859#line 1170
10860  __cil_tmp45 = command_info->command_finished;
10861#line 1170
10862  __cil_tmp46 = (int )__cil_tmp45;
10863#line 1170
10864  if (__cil_tmp46 == 16) {
10865    {
10866#line 1171
10867    while (1) {
10868      while_continue___5: /* CIL Label */ ;
10869
10870#line 1171
10871      if (debug) {
10872        {
10873#line 1171
10874        printk("<7>%s: %s - command completed.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10875               "firm_send_command");
10876        }
10877      } else {
10878
10879      }
10880#line 1171
10881      goto while_break___5;
10882    }
10883    while_break___12: /* CIL Label */ ;
10884    }
10885
10886    while_break___5: ;
10887    {
10888#line 1173
10889    __cil_tmp47 = (int )command;
10890#line 1173
10891    if (__cil_tmp47 == 10) {
10892#line 1173
10893      goto case_10;
10894    } else
10895#line 1172
10896    if (0) {
10897      case_10: 
10898      {
10899#line 1174
10900      tmp___9 = usb_get_serial_port_data(port);
10901#line 1174
10902      info = (struct whiteheat_private *)tmp___9;
10903#line 1175
10904      __len___0 = 1UL;
10905      }
10906#line 1175
10907      if (__len___0 >= 64UL) {
10908        {
10909#line 1175
10910        __cil_tmp48 = & info->mcr;
10911#line 1175
10912        __cil_tmp49 = (void *)__cil_tmp48;
10913#line 1175
10914        __cil_tmp50 = & command_info->result_buffer[0];
10915#line 1175
10916        __cil_tmp51 = (void const   *)__cil_tmp50;
10917#line 1175
10918        __ret___1 = __memcpy(__cil_tmp49, __cil_tmp51, __len___0);
10919        }
10920      } else {
10921        {
10922#line 1175
10923        __cil_tmp52 = & info->mcr;
10924#line 1175
10925        __cil_tmp53 = (void *)__cil_tmp52;
10926#line 1175
10927        __cil_tmp54 = & command_info->result_buffer[0];
10928#line 1175
10929        __cil_tmp55 = (void const   *)__cil_tmp54;
10930#line 1175
10931        __ret___1 = __builtin_memcpy(__cil_tmp53, __cil_tmp55, __len___0);
10932        }
10933      }
10934#line 1177
10935      goto switch_break;
10936    } else {
10937      switch_break: ;
10938    }
10939    }
10940  } else {
10941
10942  }
10943  }
10944  exit: 
10945  {
10946#line 1181
10947  __cil_tmp56 = & command_info->mutex;
10948#line 1181
10949  mutex_unlock(__cil_tmp56);
10950  }
10951#line 1182
10952  return (retval);
10953}
10954}
10955#line 1186 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10956static int firm_open(struct usb_serial_port *port ) 
10957{ struct whiteheat_simple open_command ;
10958  int tmp___7 ;
10959  struct usb_serial *__cil_tmp4 ;
10960  unsigned char __cil_tmp5 ;
10961  int __cil_tmp6 ;
10962  unsigned char __cil_tmp7 ;
10963  int __cil_tmp8 ;
10964  int __cil_tmp9 ;
10965  int __cil_tmp10 ;
10966  __u8 __cil_tmp11 ;
10967  __u8 *__cil_tmp12 ;
10968  __u8 __cil_tmp13 ;
10969
10970  {
10971  {
10972#line 1190
10973  __cil_tmp4 = port->serial;
10974#line 1190
10975  __cil_tmp5 = __cil_tmp4->minor;
10976#line 1190
10977  __cil_tmp6 = (int )__cil_tmp5;
10978#line 1190
10979  __cil_tmp7 = port->number;
10980#line 1190
10981  __cil_tmp8 = (int )__cil_tmp7;
10982#line 1190
10983  __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
10984#line 1190
10985  __cil_tmp10 = __cil_tmp9 + 1;
10986#line 1190
10987  open_command.port = (__u8 )__cil_tmp10;
10988#line 1191
10989  __cil_tmp11 = (__u8 )1;
10990#line 1191
10991  __cil_tmp12 = (__u8 *)(& open_command);
10992#line 1191
10993  __cil_tmp13 = (__u8 )1UL;
10994#line 1191
10995  tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
10996  }
10997#line 1191
10998  return (tmp___7);
10999}
11000}
11001#line 1196 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11002static int firm_close(struct usb_serial_port *port ) 
11003{ struct whiteheat_simple close_command ;
11004  int tmp___7 ;
11005  struct usb_serial *__cil_tmp4 ;
11006  unsigned char __cil_tmp5 ;
11007  int __cil_tmp6 ;
11008  unsigned char __cil_tmp7 ;
11009  int __cil_tmp8 ;
11010  int __cil_tmp9 ;
11011  int __cil_tmp10 ;
11012  __u8 __cil_tmp11 ;
11013  __u8 *__cil_tmp12 ;
11014  __u8 __cil_tmp13 ;
11015
11016  {
11017  {
11018#line 1200
11019  __cil_tmp4 = port->serial;
11020#line 1200
11021  __cil_tmp5 = __cil_tmp4->minor;
11022#line 1200
11023  __cil_tmp6 = (int )__cil_tmp5;
11024#line 1200
11025  __cil_tmp7 = port->number;
11026#line 1200
11027  __cil_tmp8 = (int )__cil_tmp7;
11028#line 1200
11029  __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
11030#line 1200
11031  __cil_tmp10 = __cil_tmp9 + 1;
11032#line 1200
11033  close_command.port = (__u8 )__cil_tmp10;
11034#line 1201
11035  __cil_tmp11 = (__u8 )2;
11036#line 1201
11037  __cil_tmp12 = (__u8 *)(& close_command);
11038#line 1201
11039  __cil_tmp13 = (__u8 )1UL;
11040#line 1201
11041  tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
11042  }
11043#line 1201
11044  return (tmp___7);
11045}
11046}
11047#line 1206 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11048static void firm_setup_port(struct tty_struct *tty ) 
11049{ struct usb_serial_port *port ;
11050  struct whiteheat_port_settings port_settings ;
11051  unsigned int cflag ;
11052  char const   *tmp___7 ;
11053  char const   *tmp___8 ;
11054  char const   *tmp___9 ;
11055  char const   *tmp___10 ;
11056  void *__cil_tmp9 ;
11057  struct ktermios *__cil_tmp10 ;
11058  unsigned char __cil_tmp11 ;
11059  int __cil_tmp12 ;
11060  int __cil_tmp13 ;
11061  unsigned int __cil_tmp14 ;
11062  int __cil_tmp15 ;
11063  unsigned int __cil_tmp16 ;
11064  int __cil_tmp17 ;
11065  unsigned int __cil_tmp18 ;
11066  int __cil_tmp19 ;
11067  int __cil_tmp20 ;
11068  int __cil_tmp21 ;
11069  int __cil_tmp22 ;
11070  int __cil_tmp23 ;
11071  int __cil_tmp24 ;
11072  int __cil_tmp25 ;
11073  int __cil_tmp26 ;
11074  struct ktermios *__cil_tmp27 ;
11075  tcflag_t __cil_tmp28 ;
11076  int __cil_tmp29 ;
11077  struct ktermios *__cil_tmp30 ;
11078  struct ktermios *__cil_tmp31 ;
11079  int __cil_tmp32 ;
11080  int __cil_tmp33 ;
11081  __u8 __cil_tmp34 ;
11082  __u8 *__cil_tmp35 ;
11083  __u8 __cil_tmp36 ;
11084
11085  {
11086#line 1208
11087  __cil_tmp9 = tty->driver_data;
11088#line 1208
11089  port = (struct usb_serial_port *)__cil_tmp9;
11090#line 1210
11091  __cil_tmp10 = tty->termios;
11092#line 1210
11093  cflag = __cil_tmp10->c_cflag;
11094#line 1212
11095  __cil_tmp11 = port->number;
11096#line 1212
11097  __cil_tmp12 = (int )__cil_tmp11;
11098#line 1212
11099  __cil_tmp13 = __cil_tmp12 + 1;
11100#line 1212
11101  port_settings.port = (__u8 )__cil_tmp13;
11102  {
11103#line 1216
11104  __cil_tmp14 = cflag & 48U;
11105#line 1216
11106  __cil_tmp15 = (int )__cil_tmp14;
11107#line 1216
11108  if (__cil_tmp15 == 0) {
11109#line 1216
11110    goto case_0;
11111  } else {
11112    {
11113#line 1217
11114    __cil_tmp16 = cflag & 48U;
11115#line 1217
11116    __cil_tmp17 = (int )__cil_tmp16;
11117#line 1217
11118    if (__cil_tmp17 == 16) {
11119#line 1217
11120      goto case_16;
11121    } else {
11122      {
11123#line 1218
11124      __cil_tmp18 = cflag & 48U;
11125#line 1218
11126      __cil_tmp19 = (int )__cil_tmp18;
11127#line 1218
11128      if (__cil_tmp19 == 32) {
11129#line 1218
11130        goto case_32;
11131      } else {
11132#line 1219
11133        goto switch_default;
11134#line 1215
11135        if (0) {
11136          case_0: 
11137#line 1216
11138          port_settings.bits = (__u8 )5;
11139#line 1216
11140          goto switch_break;
11141          case_16: 
11142#line 1217
11143          port_settings.bits = (__u8 )6;
11144#line 1217
11145          goto switch_break;
11146          case_32: 
11147#line 1218
11148          port_settings.bits = (__u8 )7;
11149#line 1218
11150          goto switch_break;
11151          switch_default: 
11152#line 1220
11153          port_settings.bits = (__u8 )8;
11154#line 1220
11155          goto switch_break;
11156        } else {
11157          switch_break: ;
11158        }
11159      }
11160      }
11161    }
11162    }
11163  }
11164  }
11165  {
11166#line 1222
11167  while (1) {
11168    while_continue: /* CIL Label */ ;
11169
11170#line 1222
11171    if (debug) {
11172      {
11173#line 1222
11174      __cil_tmp20 = (int )port_settings.bits;
11175#line 1222
11176      printk("<7>%s: %s - data bits = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11177             "firm_setup_port", __cil_tmp20);
11178      }
11179    } else {
11180
11181    }
11182#line 1222
11183    goto while_break;
11184  }
11185  while_break___6: /* CIL Label */ ;
11186  }
11187
11188  while_break: ;
11189#line 1225
11190  if (cflag & 256U) {
11191#line 1226
11192    if (cflag & 1073741824U) {
11193#line 1227
11194      if (cflag & 512U) {
11195#line 1228
11196        port_settings.parity = (__u8 )'1';
11197      } else {
11198#line 1230
11199        port_settings.parity = (__u8 )'0';
11200      }
11201    } else
11202#line 1232
11203    if (cflag & 512U) {
11204#line 1233
11205      port_settings.parity = (__u8 )'o';
11206    } else {
11207#line 1235
11208      port_settings.parity = (__u8 )'e';
11209    }
11210  } else {
11211#line 1237
11212    port_settings.parity = (__u8 )'n';
11213  }
11214  {
11215#line 1238
11216  while (1) {
11217    while_continue___0: /* CIL Label */ ;
11218
11219#line 1238
11220    if (debug) {
11221      {
11222#line 1238
11223      __cil_tmp21 = (int )port_settings.parity;
11224#line 1238
11225      printk("<7>%s: %s - parity = %c\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11226             "firm_setup_port", __cil_tmp21);
11227      }
11228    } else {
11229
11230    }
11231#line 1238
11232    goto while_break___0;
11233  }
11234  while_break___7: /* CIL Label */ ;
11235  }
11236
11237  while_break___0: ;
11238#line 1241
11239  if (cflag & 64U) {
11240#line 1242
11241    port_settings.stop = (__u8 )2;
11242  } else {
11243#line 1244
11244    port_settings.stop = (__u8 )1;
11245  }
11246  {
11247#line 1245
11248  while (1) {
11249    while_continue___1: /* CIL Label */ ;
11250
11251#line 1245
11252    if (debug) {
11253      {
11254#line 1245
11255      __cil_tmp22 = (int )port_settings.stop;
11256#line 1245
11257      printk("<7>%s: %s - stop bits = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11258             "firm_setup_port", __cil_tmp22);
11259      }
11260    } else {
11261
11262    }
11263#line 1245
11264    goto while_break___1;
11265  }
11266  while_break___8: /* CIL Label */ ;
11267  }
11268
11269  while_break___1: ;
11270#line 1248
11271  if (cflag & 2147483648U) {
11272#line 1249
11273    port_settings.hflow = (__u8 )136;
11274  } else {
11275#line 1252
11276    port_settings.hflow = (__u8 )0;
11277  }
11278  {
11279#line 1253
11280  while (1) {
11281    while_continue___2: /* CIL Label */ ;
11282
11283#line 1253
11284    if (debug) {
11285      {
11286#line 1253
11287      __cil_tmp23 = (int )port_settings.hflow;
11288#line 1253
11289      if (__cil_tmp23 & 2) {
11290#line 1253
11291        tmp___7 = "DTR";
11292      } else {
11293#line 1253
11294        tmp___7 = "";
11295      }
11296      }
11297      {
11298#line 1253
11299      __cil_tmp24 = (int )port_settings.hflow;
11300#line 1253
11301      if (__cil_tmp24 & 16) {
11302#line 1253
11303        tmp___8 = "DSR";
11304      } else {
11305#line 1253
11306        tmp___8 = "";
11307      }
11308      }
11309      {
11310#line 1253
11311      __cil_tmp25 = (int )port_settings.hflow;
11312#line 1253
11313      if (__cil_tmp25 & 128) {
11314#line 1253
11315        tmp___9 = "RTS";
11316      } else {
11317#line 1253
11318        tmp___9 = "";
11319      }
11320      }
11321      {
11322#line 1253
11323      __cil_tmp26 = (int )port_settings.hflow;
11324#line 1253
11325      if (__cil_tmp26 & 8) {
11326#line 1253
11327        tmp___10 = "CTS";
11328      } else {
11329#line 1253
11330        tmp___10 = "";
11331      }
11332      }
11333      {
11334#line 1253
11335      printk("<7>%s: %s - hardware flow control = %s %s %s %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11336             "firm_setup_port", tmp___10, tmp___9, tmp___8, tmp___7);
11337      }
11338    } else {
11339
11340    }
11341#line 1253
11342    goto while_break___2;
11343  }
11344  while_break___9: /* CIL Label */ ;
11345  }
11346
11347  while_break___2: ;
11348  {
11349#line 1260
11350  __cil_tmp27 = tty->termios;
11351#line 1260
11352  __cil_tmp28 = __cil_tmp27->c_iflag;
11353#line 1260
11354  if (__cil_tmp28 & 4096U) {
11355#line 1261
11356    port_settings.sflow = (__u8 )'b';
11357  } else {
11358#line 1263
11359    port_settings.sflow = (__u8 )'n';
11360  }
11361  }
11362  {
11363#line 1264
11364  while (1) {
11365    while_continue___3: /* CIL Label */ ;
11366
11367#line 1264
11368    if (debug) {
11369      {
11370#line 1264
11371      __cil_tmp29 = (int )port_settings.sflow;
11372#line 1264
11373      printk("<7>%s: %s - software flow control = %c\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11374             "firm_setup_port", __cil_tmp29);
11375      }
11376    } else {
11377
11378    }
11379#line 1264
11380    goto while_break___3;
11381  }
11382  while_break___10: /* CIL Label */ ;
11383  }
11384
11385  while_break___3: 
11386#line 1266
11387  __cil_tmp30 = tty->termios;
11388#line 1266
11389  port_settings.xon = __cil_tmp30->c_cc[8];
11390#line 1267
11391  __cil_tmp31 = tty->termios;
11392#line 1267
11393  port_settings.xoff = __cil_tmp31->c_cc[9];
11394  {
11395#line 1268
11396  while (1) {
11397    while_continue___4: /* CIL Label */ ;
11398
11399#line 1268
11400    if (debug) {
11401      {
11402#line 1268
11403      __cil_tmp32 = (int )port_settings.xon;
11404#line 1268
11405      __cil_tmp33 = (int )port_settings.xoff;
11406#line 1268
11407      printk("<7>%s: %s - XON = %2x, XOFF = %2x\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11408             "firm_setup_port", __cil_tmp32, __cil_tmp33);
11409      }
11410    } else {
11411
11412    }
11413#line 1268
11414    goto while_break___4;
11415  }
11416  while_break___11: /* CIL Label */ ;
11417  }
11418
11419  while_break___4: 
11420  {
11421#line 1272
11422  port_settings.baud = tty_get_baud_rate(tty);
11423  }
11424  {
11425#line 1273
11426  while (1) {
11427    while_continue___5: /* CIL Label */ ;
11428
11429#line 1273
11430    if (debug) {
11431      {
11432#line 1273
11433      printk("<7>%s: %s - baud rate = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11434             "firm_setup_port", port_settings.baud);
11435      }
11436    } else {
11437
11438    }
11439#line 1273
11440    goto while_break___5;
11441  }
11442  while_break___12: /* CIL Label */ ;
11443  }
11444
11445  while_break___5: 
11446  {
11447#line 1276
11448  tty_encode_baud_rate(tty, port_settings.baud, port_settings.baud);
11449#line 1278
11450  port_settings.lloop = (__u8 )0;
11451#line 1281
11452  __cil_tmp34 = (__u8 )3;
11453#line 1281
11454  __cil_tmp35 = (__u8 *)(& port_settings);
11455#line 1281
11456  __cil_tmp36 = (__u8 )13UL;
11457#line 1281
11458  firm_send_command(port, __cil_tmp34, __cil_tmp35, __cil_tmp36);
11459  }
11460#line 1283
11461  return;
11462}
11463}
11464#line 1286 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11465static int firm_set_rts(struct usb_serial_port *port , __u8 onoff ) 
11466{ struct whiteheat_set_rdb rts_command ;
11467  int tmp___7 ;
11468  struct usb_serial *__cil_tmp5 ;
11469  unsigned char __cil_tmp6 ;
11470  int __cil_tmp7 ;
11471  unsigned char __cil_tmp8 ;
11472  int __cil_tmp9 ;
11473  int __cil_tmp10 ;
11474  int __cil_tmp11 ;
11475  __u8 __cil_tmp12 ;
11476  __u8 *__cil_tmp13 ;
11477  __u8 __cil_tmp14 ;
11478
11479  {
11480  {
11481#line 1290
11482  __cil_tmp5 = port->serial;
11483#line 1290
11484  __cil_tmp6 = __cil_tmp5->minor;
11485#line 1290
11486  __cil_tmp7 = (int )__cil_tmp6;
11487#line 1290
11488  __cil_tmp8 = port->number;
11489#line 1290
11490  __cil_tmp9 = (int )__cil_tmp8;
11491#line 1290
11492  __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11493#line 1290
11494  __cil_tmp11 = __cil_tmp10 + 1;
11495#line 1290
11496  rts_command.port = (__u8 )__cil_tmp11;
11497#line 1291
11498  rts_command.state = onoff;
11499#line 1292
11500  __cil_tmp12 = (__u8 )4;
11501#line 1292
11502  __cil_tmp13 = (__u8 *)(& rts_command);
11503#line 1292
11504  __cil_tmp14 = (__u8 )2UL;
11505#line 1292
11506  tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11507  }
11508#line 1292
11509  return (tmp___7);
11510}
11511}
11512#line 1297 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11513static int firm_set_dtr(struct usb_serial_port *port , __u8 onoff ) 
11514{ struct whiteheat_set_rdb dtr_command ;
11515  int tmp___7 ;
11516  struct usb_serial *__cil_tmp5 ;
11517  unsigned char __cil_tmp6 ;
11518  int __cil_tmp7 ;
11519  unsigned char __cil_tmp8 ;
11520  int __cil_tmp9 ;
11521  int __cil_tmp10 ;
11522  int __cil_tmp11 ;
11523  __u8 __cil_tmp12 ;
11524  __u8 *__cil_tmp13 ;
11525  __u8 __cil_tmp14 ;
11526
11527  {
11528  {
11529#line 1301
11530  __cil_tmp5 = port->serial;
11531#line 1301
11532  __cil_tmp6 = __cil_tmp5->minor;
11533#line 1301
11534  __cil_tmp7 = (int )__cil_tmp6;
11535#line 1301
11536  __cil_tmp8 = port->number;
11537#line 1301
11538  __cil_tmp9 = (int )__cil_tmp8;
11539#line 1301
11540  __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11541#line 1301
11542  __cil_tmp11 = __cil_tmp10 + 1;
11543#line 1301
11544  dtr_command.port = (__u8 )__cil_tmp11;
11545#line 1302
11546  dtr_command.state = onoff;
11547#line 1303
11548  __cil_tmp12 = (__u8 )5;
11549#line 1303
11550  __cil_tmp13 = (__u8 *)(& dtr_command);
11551#line 1303
11552  __cil_tmp14 = (__u8 )2UL;
11553#line 1303
11554  tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11555  }
11556#line 1303
11557  return (tmp___7);
11558}
11559}
11560#line 1308 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11561static int firm_set_break(struct usb_serial_port *port , __u8 onoff ) 
11562{ struct whiteheat_set_rdb break_command ;
11563  int tmp___7 ;
11564  struct usb_serial *__cil_tmp5 ;
11565  unsigned char __cil_tmp6 ;
11566  int __cil_tmp7 ;
11567  unsigned char __cil_tmp8 ;
11568  int __cil_tmp9 ;
11569  int __cil_tmp10 ;
11570  int __cil_tmp11 ;
11571  __u8 __cil_tmp12 ;
11572  __u8 *__cil_tmp13 ;
11573  __u8 __cil_tmp14 ;
11574
11575  {
11576  {
11577#line 1312
11578  __cil_tmp5 = port->serial;
11579#line 1312
11580  __cil_tmp6 = __cil_tmp5->minor;
11581#line 1312
11582  __cil_tmp7 = (int )__cil_tmp6;
11583#line 1312
11584  __cil_tmp8 = port->number;
11585#line 1312
11586  __cil_tmp9 = (int )__cil_tmp8;
11587#line 1312
11588  __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11589#line 1312
11590  __cil_tmp11 = __cil_tmp10 + 1;
11591#line 1312
11592  break_command.port = (__u8 )__cil_tmp11;
11593#line 1313
11594  break_command.state = onoff;
11595#line 1314
11596  __cil_tmp12 = (__u8 )6;
11597#line 1314
11598  __cil_tmp13 = (__u8 *)(& break_command);
11599#line 1314
11600  __cil_tmp14 = (__u8 )2UL;
11601#line 1314
11602  tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11603  }
11604#line 1314
11605  return (tmp___7);
11606}
11607}
11608#line 1319 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11609static int firm_purge(struct usb_serial_port *port , __u8 rxtx ) 
11610{ struct whiteheat_purge purge_command ;
11611  int tmp___7 ;
11612  struct usb_serial *__cil_tmp5 ;
11613  unsigned char __cil_tmp6 ;
11614  int __cil_tmp7 ;
11615  unsigned char __cil_tmp8 ;
11616  int __cil_tmp9 ;
11617  int __cil_tmp10 ;
11618  int __cil_tmp11 ;
11619  __u8 __cil_tmp12 ;
11620  __u8 *__cil_tmp13 ;
11621  __u8 __cil_tmp14 ;
11622
11623  {
11624  {
11625#line 1323
11626  __cil_tmp5 = port->serial;
11627#line 1323
11628  __cil_tmp6 = __cil_tmp5->minor;
11629#line 1323
11630  __cil_tmp7 = (int )__cil_tmp6;
11631#line 1323
11632  __cil_tmp8 = port->number;
11633#line 1323
11634  __cil_tmp9 = (int )__cil_tmp8;
11635#line 1323
11636  __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11637#line 1323
11638  __cil_tmp11 = __cil_tmp10 + 1;
11639#line 1323
11640  purge_command.port = (__u8 )__cil_tmp11;
11641#line 1324
11642  purge_command.what = rxtx;
11643#line 1325
11644  __cil_tmp12 = (__u8 )9;
11645#line 1325
11646  __cil_tmp13 = (__u8 *)(& purge_command);
11647#line 1325
11648  __cil_tmp14 = (__u8 )2UL;
11649#line 1325
11650  tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11651  }
11652#line 1325
11653  return (tmp___7);
11654}
11655}
11656#line 1330 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11657static int firm_get_dtr_rts(struct usb_serial_port *port ) 
11658{ struct whiteheat_simple get_dr_command ;
11659  int tmp___7 ;
11660  struct usb_serial *__cil_tmp4 ;
11661  unsigned char __cil_tmp5 ;
11662  int __cil_tmp6 ;
11663  unsigned char __cil_tmp7 ;
11664  int __cil_tmp8 ;
11665  int __cil_tmp9 ;
11666  int __cil_tmp10 ;
11667  __u8 __cil_tmp11 ;
11668  __u8 *__cil_tmp12 ;
11669  __u8 __cil_tmp13 ;
11670
11671  {
11672  {
11673#line 1334
11674  __cil_tmp4 = port->serial;
11675#line 1334
11676  __cil_tmp5 = __cil_tmp4->minor;
11677#line 1334
11678  __cil_tmp6 = (int )__cil_tmp5;
11679#line 1334
11680  __cil_tmp7 = port->number;
11681#line 1334
11682  __cil_tmp8 = (int )__cil_tmp7;
11683#line 1334
11684  __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
11685#line 1334
11686  __cil_tmp10 = __cil_tmp9 + 1;
11687#line 1334
11688  get_dr_command.port = (__u8 )__cil_tmp10;
11689#line 1335
11690  __cil_tmp11 = (__u8 )10;
11691#line 1335
11692  __cil_tmp12 = (__u8 *)(& get_dr_command);
11693#line 1335
11694  __cil_tmp13 = (__u8 )1UL;
11695#line 1335
11696  tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
11697  }
11698#line 1335
11699  return (tmp___7);
11700}
11701}
11702#line 1340 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11703static int firm_report_tx_done(struct usb_serial_port *port ) 
11704{ struct whiteheat_simple close_command ;
11705  int tmp___7 ;
11706  struct usb_serial *__cil_tmp4 ;
11707  unsigned char __cil_tmp5 ;
11708  int __cil_tmp6 ;
11709  unsigned char __cil_tmp7 ;
11710  int __cil_tmp8 ;
11711  int __cil_tmp9 ;
11712  int __cil_tmp10 ;
11713  __u8 __cil_tmp11 ;
11714  __u8 *__cil_tmp12 ;
11715  __u8 __cil_tmp13 ;
11716
11717  {
11718  {
11719#line 1344
11720  __cil_tmp4 = port->serial;
11721#line 1344
11722  __cil_tmp5 = __cil_tmp4->minor;
11723#line 1344
11724  __cil_tmp6 = (int )__cil_tmp5;
11725#line 1344
11726  __cil_tmp7 = port->number;
11727#line 1344
11728  __cil_tmp8 = (int )__cil_tmp7;
11729#line 1344
11730  __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
11731#line 1344
11732  __cil_tmp10 = __cil_tmp9 + 1;
11733#line 1344
11734  close_command.port = (__u8 )__cil_tmp10;
11735#line 1345
11736  __cil_tmp11 = (__u8 )12;
11737#line 1345
11738  __cil_tmp12 = (__u8 *)(& close_command);
11739#line 1345
11740  __cil_tmp13 = (__u8 )1UL;
11741#line 1345
11742  tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
11743  }
11744#line 1345
11745  return (tmp___7);
11746}
11747}
11748#line 1353 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11749static int start_command_port(struct usb_serial *serial ) 
11750{ struct usb_serial_port *command_port ;
11751  struct whiteheat_command_private *command_info ;
11752  int retval ;
11753  void *tmp___7 ;
11754  struct mutex *__cil_tmp6 ;
11755  __u8 __cil_tmp7 ;
11756  struct usb_device *__cil_tmp8 ;
11757  struct urb *__cil_tmp9 ;
11758  unsigned int __cil_tmp10 ;
11759  int __cil_tmp11 ;
11760  struct urb *__cil_tmp12 ;
11761  struct urb *__cil_tmp13 ;
11762  struct usb_device *__cil_tmp14 ;
11763  struct device *__cil_tmp15 ;
11764  struct device  const  *__cil_tmp16 ;
11765  __u8 __cil_tmp17 ;
11766  int __cil_tmp18 ;
11767  int __cil_tmp19 ;
11768  struct mutex *__cil_tmp20 ;
11769
11770  {
11771  {
11772#line 1357
11773  retval = 0;
11774#line 1359
11775  command_port = serial->port[4];
11776#line 1360
11777  tmp___7 = usb_get_serial_port_data(command_port);
11778#line 1360
11779  command_info = (struct whiteheat_command_private *)tmp___7;
11780#line 1361
11781  __cil_tmp6 = & command_info->mutex;
11782#line 1361
11783  mutex_lock_nested(__cil_tmp6, 0U);
11784  }
11785  {
11786#line 1362
11787  __cil_tmp7 = command_info->port_running;
11788#line 1362
11789  if (! __cil_tmp7) {
11790    {
11791#line 1364
11792    __cil_tmp8 = serial->dev;
11793#line 1364
11794    __cil_tmp9 = command_port->read_urb;
11795#line 1364
11796    __cil_tmp10 = __cil_tmp9->pipe;
11797#line 1364
11798    __cil_tmp11 = (int )__cil_tmp10;
11799#line 1364
11800    usb_clear_halt(__cil_tmp8, __cil_tmp11);
11801#line 1366
11802    __cil_tmp12 = command_port->read_urb;
11803#line 1366
11804    __cil_tmp12->dev = serial->dev;
11805#line 1367
11806    __cil_tmp13 = command_port->read_urb;
11807#line 1367
11808    retval = usb_submit_urb(__cil_tmp13, 208U);
11809    }
11810#line 1368
11811    if (retval) {
11812      {
11813#line 1369
11814      __cil_tmp14 = serial->dev;
11815#line 1369
11816      __cil_tmp15 = & __cil_tmp14->dev;
11817#line 1369
11818      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
11819#line 1369
11820      dev_err(__cil_tmp16, "%s - failed submitting read urb, error %d\n", "start_command_port",
11821              retval);
11822      }
11823#line 1372
11824      goto exit;
11825    } else {
11826
11827    }
11828  } else {
11829
11830  }
11831  }
11832#line 1375
11833  __cil_tmp17 = command_info->port_running;
11834#line 1375
11835  __cil_tmp18 = (int )__cil_tmp17;
11836#line 1375
11837  __cil_tmp19 = __cil_tmp18 + 1;
11838#line 1375
11839  command_info->port_running = (__u8 )__cil_tmp19;
11840  exit: 
11841  {
11842#line 1378
11843  __cil_tmp20 = & command_info->mutex;
11844#line 1378
11845  mutex_unlock(__cil_tmp20);
11846  }
11847#line 1379
11848  return (retval);
11849}
11850}
11851#line 1383 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11852static void stop_command_port(struct usb_serial *serial ) 
11853{ struct usb_serial_port *command_port ;
11854  struct whiteheat_command_private *command_info ;
11855  void *tmp___7 ;
11856  struct mutex *__cil_tmp5 ;
11857  __u8 __cil_tmp6 ;
11858  int __cil_tmp7 ;
11859  int __cil_tmp8 ;
11860  __u8 __cil_tmp9 ;
11861  struct urb *__cil_tmp10 ;
11862  struct mutex *__cil_tmp11 ;
11863
11864  {
11865  {
11866#line 1388
11867  command_port = serial->port[4];
11868#line 1389
11869  tmp___7 = usb_get_serial_port_data(command_port);
11870#line 1389
11871  command_info = (struct whiteheat_command_private *)tmp___7;
11872#line 1390
11873  __cil_tmp5 = & command_info->mutex;
11874#line 1390
11875  mutex_lock_nested(__cil_tmp5, 0U);
11876#line 1391
11877  __cil_tmp6 = command_info->port_running;
11878#line 1391
11879  __cil_tmp7 = (int )__cil_tmp6;
11880#line 1391
11881  __cil_tmp8 = __cil_tmp7 - 1;
11882#line 1391
11883  command_info->port_running = (__u8 )__cil_tmp8;
11884  }
11885  {
11886#line 1392
11887  __cil_tmp9 = command_info->port_running;
11888#line 1392
11889  if (! __cil_tmp9) {
11890    {
11891#line 1393
11892    __cil_tmp10 = command_port->read_urb;
11893#line 1393
11894    usb_kill_urb(__cil_tmp10);
11895    }
11896  } else {
11897
11898  }
11899  }
11900  {
11901#line 1394
11902  __cil_tmp11 = & command_info->mutex;
11903#line 1394
11904  mutex_unlock(__cil_tmp11);
11905  }
11906#line 1395
11907  return;
11908}
11909}
11910#line 1398 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11911static int start_port_read(struct usb_serial_port *port ) 
11912{ struct whiteheat_private *info ;
11913  void *tmp___7 ;
11914  struct whiteheat_urb_wrap *wrap ;
11915  struct urb *urb ;
11916  int retval ;
11917  unsigned long flags ;
11918  struct list_head *tmp___8 ;
11919  struct list_head *tmp2 ;
11920  raw_spinlock_t *tmp___9 ;
11921  struct list_head  const  *__mptr ;
11922  raw_spinlock_t *tmp___10 ;
11923  struct list_head  const  *__mptr___0 ;
11924  raw_spinlock_t *tmp___11 ;
11925  raw_spinlock_t *tmp___12 ;
11926  spinlock_t *__cil_tmp16 ;
11927  struct list_head *__cil_tmp17 ;
11928  unsigned long __cil_tmp18 ;
11929  unsigned long __cil_tmp19 ;
11930  struct whiteheat_urb_wrap *__cil_tmp20 ;
11931  struct list_head *__cil_tmp21 ;
11932  unsigned int __cil_tmp22 ;
11933  char *__cil_tmp23 ;
11934  char *__cil_tmp24 ;
11935  struct usb_serial *__cil_tmp25 ;
11936  spinlock_t *__cil_tmp26 ;
11937  spinlock_t *__cil_tmp27 ;
11938  struct list_head *__cil_tmp28 ;
11939  struct list_head *__cil_tmp29 ;
11940  unsigned long __cil_tmp30 ;
11941  unsigned long __cil_tmp31 ;
11942  struct whiteheat_urb_wrap *__cil_tmp32 ;
11943  struct list_head *__cil_tmp33 ;
11944  unsigned int __cil_tmp34 ;
11945  char *__cil_tmp35 ;
11946  char *__cil_tmp36 ;
11947  spinlock_t *__cil_tmp37 ;
11948  spinlock_t *__cil_tmp38 ;
11949  struct list_head *__cil_tmp39 ;
11950  spinlock_t *__cil_tmp40 ;
11951  struct list_head *__cil_tmp41 ;
11952  spinlock_t *__cil_tmp42 ;
11953
11954  {
11955  {
11956#line 1400
11957  tmp___7 = usb_get_serial_port_data(port);
11958#line 1400
11959  info = (struct whiteheat_private *)tmp___7;
11960#line 1403
11961  retval = 0;
11962  }
11963  {
11964#line 1408
11965  while (1) {
11966    while_continue: /* CIL Label */ ;
11967
11968    {
11969#line 1408
11970    while (1) {
11971      while_continue___0: /* CIL Label */ ;
11972      {
11973#line 1408
11974      __cil_tmp16 = & info->lock;
11975#line 1408
11976      tmp___9 = spinlock_check(__cil_tmp16);
11977#line 1408
11978      flags = _raw_spin_lock_irqsave(tmp___9);
11979      }
11980#line 1408
11981      goto while_break___0;
11982    }
11983    while_break___10: /* CIL Label */ ;
11984    }
11985
11986    while_break___0: ;
11987#line 1408
11988    goto while_break;
11989  }
11990  while_break___9: /* CIL Label */ ;
11991  }
11992
11993  while_break: 
11994#line 1410
11995  tmp___8 = info->rx_urbs_free.next;
11996#line 1410
11997  tmp2 = tmp___8->next;
11998  {
11999#line 1410
12000  while (1) {
12001    while_continue___1: /* CIL Label */ ;
12002
12003    {
12004#line 1410
12005    __cil_tmp17 = & info->rx_urbs_free;
12006#line 1410
12007    __cil_tmp18 = (unsigned long )__cil_tmp17;
12008#line 1410
12009    __cil_tmp19 = (unsigned long )tmp___8;
12010#line 1410
12011    if (__cil_tmp19 != __cil_tmp18) {
12012
12013    } else {
12014#line 1410
12015      goto while_break___1;
12016    }
12017    }
12018    {
12019#line 1411
12020    list_del(tmp___8);
12021#line 1412
12022    __mptr = (struct list_head  const  *)tmp___8;
12023#line 1412
12024    __cil_tmp20 = (struct whiteheat_urb_wrap *)0;
12025#line 1412
12026    __cil_tmp21 = & __cil_tmp20->list;
12027#line 1412
12028    __cil_tmp22 = (unsigned int )__cil_tmp21;
12029#line 1412
12030    __cil_tmp23 = (char *)__mptr;
12031#line 1412
12032    __cil_tmp24 = __cil_tmp23 - __cil_tmp22;
12033#line 1412
12034    wrap = (struct whiteheat_urb_wrap *)__cil_tmp24;
12035#line 1413
12036    urb = wrap->urb;
12037#line 1414
12038    __cil_tmp25 = port->serial;
12039#line 1414
12040    urb->dev = __cil_tmp25->dev;
12041#line 1415
12042    __cil_tmp26 = & info->lock;
12043#line 1415
12044    spin_unlock_irqrestore(__cil_tmp26, flags);
12045#line 1416
12046    retval = usb_submit_urb(urb, 208U);
12047    }
12048#line 1417
12049    if (retval) {
12050      {
12051#line 1418
12052      while (1) {
12053        while_continue___2: /* CIL Label */ ;
12054
12055        {
12056#line 1418
12057        while (1) {
12058          while_continue___3: /* CIL Label */ ;
12059          {
12060#line 1418
12061          __cil_tmp27 = & info->lock;
12062#line 1418
12063          tmp___10 = spinlock_check(__cil_tmp27);
12064#line 1418
12065          flags = _raw_spin_lock_irqsave(tmp___10);
12066          }
12067#line 1418
12068          goto while_break___3;
12069        }
12070        while_break___13: /* CIL Label */ ;
12071        }
12072
12073        while_break___3: ;
12074#line 1418
12075        goto while_break___2;
12076      }
12077      while_break___12: /* CIL Label */ ;
12078      }
12079
12080      while_break___2: 
12081      {
12082#line 1419
12083      __cil_tmp28 = & info->rx_urbs_free;
12084#line 1419
12085      list_add(tmp___8, __cil_tmp28);
12086#line 1420
12087      tmp___8 = info->rx_urbs_submitted.next;
12088#line 1420
12089      tmp2 = tmp___8->next;
12090      }
12091      {
12092#line 1420
12093      while (1) {
12094        while_continue___4: /* CIL Label */ ;
12095
12096        {
12097#line 1420
12098        __cil_tmp29 = & info->rx_urbs_submitted;
12099#line 1420
12100        __cil_tmp30 = (unsigned long )__cil_tmp29;
12101#line 1420
12102        __cil_tmp31 = (unsigned long )tmp___8;
12103#line 1420
12104        if (__cil_tmp31 != __cil_tmp30) {
12105
12106        } else {
12107#line 1420
12108          goto while_break___4;
12109        }
12110        }
12111        {
12112#line 1421
12113        __mptr___0 = (struct list_head  const  *)tmp___8;
12114#line 1421
12115        __cil_tmp32 = (struct whiteheat_urb_wrap *)0;
12116#line 1421
12117        __cil_tmp33 = & __cil_tmp32->list;
12118#line 1421
12119        __cil_tmp34 = (unsigned int )__cil_tmp33;
12120#line 1421
12121        __cil_tmp35 = (char *)__mptr___0;
12122#line 1421
12123        __cil_tmp36 = __cil_tmp35 - __cil_tmp34;
12124#line 1421
12125        wrap = (struct whiteheat_urb_wrap *)__cil_tmp36;
12126#line 1422
12127        urb = wrap->urb;
12128#line 1423
12129        list_del(tmp___8);
12130#line 1424
12131        __cil_tmp37 = & info->lock;
12132#line 1424
12133        spin_unlock_irqrestore(__cil_tmp37, flags);
12134#line 1425
12135        usb_kill_urb(urb);
12136        }
12137        {
12138#line 1426
12139        while (1) {
12140          while_continue___5: /* CIL Label */ ;
12141
12142          {
12143#line 1426
12144          while (1) {
12145            while_continue___6: /* CIL Label */ ;
12146            {
12147#line 1426
12148            __cil_tmp38 = & info->lock;
12149#line 1426
12150            tmp___11 = spinlock_check(__cil_tmp38);
12151#line 1426
12152            flags = _raw_spin_lock_irqsave(tmp___11);
12153            }
12154#line 1426
12155            goto while_break___6;
12156          }
12157          while_break___16: /* CIL Label */ ;
12158          }
12159
12160          while_break___6: ;
12161#line 1426
12162          goto while_break___5;
12163        }
12164        while_break___15: /* CIL Label */ ;
12165        }
12166
12167        while_break___5: 
12168        {
12169#line 1427
12170        __cil_tmp39 = & info->rx_urbs_free;
12171#line 1427
12172        list_add(tmp___8, __cil_tmp39);
12173#line 1420
12174        tmp___8 = tmp2;
12175#line 1420
12176        tmp2 = tmp___8->next;
12177        }
12178      }
12179      while_break___14: /* CIL Label */ ;
12180      }
12181
12182      while_break___4: ;
12183#line 1429
12184      goto while_break___1;
12185    } else {
12186
12187    }
12188    {
12189#line 1431
12190    while (1) {
12191      while_continue___7: /* CIL Label */ ;
12192
12193      {
12194#line 1431
12195      while (1) {
12196        while_continue___8: /* CIL Label */ ;
12197        {
12198#line 1431
12199        __cil_tmp40 = & info->lock;
12200#line 1431
12201        tmp___12 = spinlock_check(__cil_tmp40);
12202#line 1431
12203        flags = _raw_spin_lock_irqsave(tmp___12);
12204        }
12205#line 1431
12206        goto while_break___8;
12207      }
12208      while_break___18: /* CIL Label */ ;
12209      }
12210
12211      while_break___8: ;
12212#line 1431
12213      goto while_break___7;
12214    }
12215    while_break___17: /* CIL Label */ ;
12216    }
12217
12218    while_break___7: 
12219    {
12220#line 1432
12221    __cil_tmp41 = & info->rx_urbs_submitted;
12222#line 1432
12223    list_add(tmp___8, __cil_tmp41);
12224#line 1410
12225    tmp___8 = tmp2;
12226#line 1410
12227    tmp2 = tmp___8->next;
12228    }
12229  }
12230  while_break___11: /* CIL Label */ ;
12231  }
12232
12233  while_break___1: 
12234  {
12235#line 1435
12236  __cil_tmp42 = & info->lock;
12237#line 1435
12238  spin_unlock_irqrestore(__cil_tmp42, flags);
12239  }
12240#line 1437
12241  return (retval);
12242}
12243}
12244#line 1441 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12245static struct whiteheat_urb_wrap *urb_to_wrap(struct urb *urb , struct list_head *head ) 
12246{ struct whiteheat_urb_wrap *wrap ;
12247  struct list_head *tmp___7 ;
12248  struct list_head  const  *__mptr ;
12249  unsigned long __cil_tmp6 ;
12250  unsigned long __cil_tmp7 ;
12251  struct whiteheat_urb_wrap *__cil_tmp8 ;
12252  struct list_head *__cil_tmp9 ;
12253  unsigned int __cil_tmp10 ;
12254  char *__cil_tmp11 ;
12255  char *__cil_tmp12 ;
12256  unsigned long __cil_tmp13 ;
12257  struct urb *__cil_tmp14 ;
12258  unsigned long __cil_tmp15 ;
12259  void *__cil_tmp16 ;
12260
12261  {
12262#line 1447
12263  tmp___7 = head->next;
12264  {
12265#line 1447
12266  while (1) {
12267    while_continue: /* CIL Label */ ;
12268
12269    {
12270#line 1447
12271    __cil_tmp6 = (unsigned long )head;
12272#line 1447
12273    __cil_tmp7 = (unsigned long )tmp___7;
12274#line 1447
12275    if (__cil_tmp7 != __cil_tmp6) {
12276
12277    } else {
12278#line 1447
12279      goto while_break;
12280    }
12281    }
12282#line 1448
12283    __mptr = (struct list_head  const  *)tmp___7;
12284#line 1448
12285    __cil_tmp8 = (struct whiteheat_urb_wrap *)0;
12286#line 1448
12287    __cil_tmp9 = & __cil_tmp8->list;
12288#line 1448
12289    __cil_tmp10 = (unsigned int )__cil_tmp9;
12290#line 1448
12291    __cil_tmp11 = (char *)__mptr;
12292#line 1448
12293    __cil_tmp12 = __cil_tmp11 - __cil_tmp10;
12294#line 1448
12295    wrap = (struct whiteheat_urb_wrap *)__cil_tmp12;
12296    {
12297#line 1449
12298    __cil_tmp13 = (unsigned long )urb;
12299#line 1449
12300    __cil_tmp14 = wrap->urb;
12301#line 1449
12302    __cil_tmp15 = (unsigned long )__cil_tmp14;
12303#line 1449
12304    if (__cil_tmp15 == __cil_tmp13) {
12305#line 1450
12306      return (wrap);
12307    } else {
12308
12309    }
12310    }
12311#line 1447
12312    tmp___7 = tmp___7->next;
12313  }
12314  while_break___0: /* CIL Label */ ;
12315  }
12316
12317  while_break: ;
12318  {
12319#line 1453
12320  __cil_tmp16 = (void *)0;
12321#line 1453
12322  return ((struct whiteheat_urb_wrap *)__cil_tmp16);
12323  }
12324}
12325}
12326#line 1457 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12327static struct list_head *list_first(struct list_head *head ) 
12328{ 
12329
12330  {
12331#line 1459
12332  return (head->next);
12333}
12334}
12335#line 1463 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12336static void rx_data_softint(struct work_struct *work ) 
12337{ struct whiteheat_private *info ;
12338  struct work_struct  const  *__mptr ;
12339  struct usb_serial_port *port ;
12340  struct tty_struct *tty ;
12341  struct tty_struct *tmp___7 ;
12342  struct whiteheat_urb_wrap *wrap ;
12343  struct urb *urb ;
12344  unsigned long flags ;
12345  struct list_head *tmp___8 ;
12346  struct list_head *tmp2 ;
12347  int result ;
12348  int sent ;
12349  raw_spinlock_t *tmp___9 ;
12350  struct list_head  const  *__mptr___0 ;
12351  int tmp___10 ;
12352  raw_spinlock_t *tmp___11 ;
12353  raw_spinlock_t *tmp___12 ;
12354  struct whiteheat_private *__cil_tmp19 ;
12355  struct work_struct *__cil_tmp20 ;
12356  unsigned int __cil_tmp21 ;
12357  char *__cil_tmp22 ;
12358  char *__cil_tmp23 ;
12359  struct tty_port *__cil_tmp24 ;
12360  spinlock_t *__cil_tmp25 ;
12361  __u8 __cil_tmp26 ;
12362  int __cil_tmp27 ;
12363  spinlock_t *__cil_tmp28 ;
12364  struct list_head *__cil_tmp29 ;
12365  unsigned long __cil_tmp30 ;
12366  unsigned long __cil_tmp31 ;
12367  spinlock_t *__cil_tmp32 ;
12368  struct whiteheat_urb_wrap *__cil_tmp33 ;
12369  struct list_head *__cil_tmp34 ;
12370  unsigned int __cil_tmp35 ;
12371  char *__cil_tmp36 ;
12372  char *__cil_tmp37 ;
12373  void *__cil_tmp38 ;
12374  unsigned char const   *__cil_tmp39 ;
12375  u32 __cil_tmp40 ;
12376  size_t __cil_tmp41 ;
12377  struct usb_serial *__cil_tmp42 ;
12378  struct device *__cil_tmp43 ;
12379  struct device  const  *__cil_tmp44 ;
12380  spinlock_t *__cil_tmp45 ;
12381  struct list_head *__cil_tmp46 ;
12382  spinlock_t *__cil_tmp47 ;
12383  struct list_head *__cil_tmp48 ;
12384  spinlock_t *__cil_tmp49 ;
12385
12386  {
12387  {
12388#line 1466
12389  __mptr = (struct work_struct  const  *)work;
12390#line 1466
12391  __cil_tmp19 = (struct whiteheat_private *)0;
12392#line 1466
12393  __cil_tmp20 = & __cil_tmp19->rx_work;
12394#line 1466
12395  __cil_tmp21 = (unsigned int )__cil_tmp20;
12396#line 1466
12397  __cil_tmp22 = (char *)__mptr;
12398#line 1466
12399  __cil_tmp23 = __cil_tmp22 - __cil_tmp21;
12400#line 1466
12401  info = (struct whiteheat_private *)__cil_tmp23;
12402#line 1467
12403  port = info->port;
12404#line 1468
12405  __cil_tmp24 = & port->port;
12406#line 1468
12407  tmp___7 = tty_port_tty_get(__cil_tmp24);
12408#line 1468
12409  tty = tmp___7;
12410#line 1475
12411  sent = 0;
12412  }
12413  {
12414#line 1477
12415  while (1) {
12416    while_continue: /* CIL Label */ ;
12417
12418    {
12419#line 1477
12420    while (1) {
12421      while_continue___0: /* CIL Label */ ;
12422      {
12423#line 1477
12424      __cil_tmp25 = & info->lock;
12425#line 1477
12426      tmp___9 = spinlock_check(__cil_tmp25);
12427#line 1477
12428      flags = _raw_spin_lock_irqsave(tmp___9);
12429      }
12430#line 1477
12431      goto while_break___0;
12432    }
12433    while_break___7: /* CIL Label */ ;
12434    }
12435
12436    while_break___0: ;
12437#line 1477
12438    goto while_break;
12439  }
12440  while_break___6: /* CIL Label */ ;
12441  }
12442
12443  while_break: ;
12444  {
12445#line 1478
12446  __cil_tmp26 = info->flags;
12447#line 1478
12448  __cil_tmp27 = (int )__cil_tmp26;
12449#line 1478
12450  if (__cil_tmp27 & 1) {
12451    {
12452#line 1479
12453    __cil_tmp28 = & info->lock;
12454#line 1479
12455    spin_unlock_irqrestore(__cil_tmp28, flags);
12456    }
12457#line 1480
12458    goto out;
12459  } else {
12460
12461  }
12462  }
12463#line 1483
12464  tmp___8 = info->rx_urb_q.next;
12465#line 1483
12466  tmp2 = tmp___8->next;
12467  {
12468#line 1483
12469  while (1) {
12470    while_continue___1: /* CIL Label */ ;
12471
12472    {
12473#line 1483
12474    __cil_tmp29 = & info->rx_urb_q;
12475#line 1483
12476    __cil_tmp30 = (unsigned long )__cil_tmp29;
12477#line 1483
12478    __cil_tmp31 = (unsigned long )tmp___8;
12479#line 1483
12480    if (__cil_tmp31 != __cil_tmp30) {
12481
12482    } else {
12483#line 1483
12484      goto while_break___1;
12485    }
12486    }
12487    {
12488#line 1484
12489    list_del(tmp___8);
12490#line 1485
12491    __cil_tmp32 = & info->lock;
12492#line 1485
12493    spin_unlock_irqrestore(__cil_tmp32, flags);
12494#line 1487
12495    __mptr___0 = (struct list_head  const  *)tmp___8;
12496#line 1487
12497    __cil_tmp33 = (struct whiteheat_urb_wrap *)0;
12498#line 1487
12499    __cil_tmp34 = & __cil_tmp33->list;
12500#line 1487
12501    __cil_tmp35 = (unsigned int )__cil_tmp34;
12502#line 1487
12503    __cil_tmp36 = (char *)__mptr___0;
12504#line 1487
12505    __cil_tmp37 = __cil_tmp36 - __cil_tmp35;
12506#line 1487
12507    wrap = (struct whiteheat_urb_wrap *)__cil_tmp37;
12508#line 1488
12509    urb = wrap->urb;
12510    }
12511#line 1490
12512    if (tty) {
12513#line 1490
12514      if (urb->actual_length) {
12515        {
12516#line 1491
12517        __cil_tmp38 = urb->transfer_buffer;
12518#line 1491
12519        __cil_tmp39 = (unsigned char const   *)__cil_tmp38;
12520#line 1491
12521        __cil_tmp40 = urb->actual_length;
12522#line 1491
12523        __cil_tmp41 = (size_t )__cil_tmp40;
12524#line 1491
12525        tmp___10 = tty_insert_flip_string(tty, __cil_tmp39, __cil_tmp41);
12526#line 1491
12527        sent = sent + tmp___10;
12528        }
12529      } else {
12530
12531      }
12532    } else {
12533
12534    }
12535    {
12536#line 1494
12537    __cil_tmp42 = port->serial;
12538#line 1494
12539    urb->dev = __cil_tmp42->dev;
12540#line 1495
12541    result = usb_submit_urb(urb, 32U);
12542    }
12543#line 1496
12544    if (result) {
12545      {
12546#line 1497
12547      __cil_tmp43 = & port->dev;
12548#line 1497
12549      __cil_tmp44 = (struct device  const  *)__cil_tmp43;
12550#line 1497
12551      dev_err(__cil_tmp44, "%s - failed resubmitting read urb, error %d\n", "rx_data_softint",
12552              result);
12553      }
12554      {
12555#line 1500
12556      while (1) {
12557        while_continue___2: /* CIL Label */ ;
12558
12559        {
12560#line 1500
12561        while (1) {
12562          while_continue___3: /* CIL Label */ ;
12563          {
12564#line 1500
12565          __cil_tmp45 = & info->lock;
12566#line 1500
12567          tmp___11 = spinlock_check(__cil_tmp45);
12568#line 1500
12569          flags = _raw_spin_lock_irqsave(tmp___11);
12570          }
12571#line 1500
12572          goto while_break___3;
12573        }
12574        while_break___10: /* CIL Label */ ;
12575        }
12576
12577        while_break___3: ;
12578#line 1500
12579        goto while_break___2;
12580      }
12581      while_break___9: /* CIL Label */ ;
12582      }
12583
12584      while_break___2: 
12585      {
12586#line 1501
12587      __cil_tmp46 = & info->rx_urbs_free;
12588#line 1501
12589      list_add(tmp___8, __cil_tmp46);
12590      }
12591#line 1502
12592      goto __Cont;
12593    } else {
12594
12595    }
12596    {
12597#line 1505
12598    while (1) {
12599      while_continue___4: /* CIL Label */ ;
12600
12601      {
12602#line 1505
12603      while (1) {
12604        while_continue___5: /* CIL Label */ ;
12605        {
12606#line 1505
12607        __cil_tmp47 = & info->lock;
12608#line 1505
12609        tmp___12 = spinlock_check(__cil_tmp47);
12610#line 1505
12611        flags = _raw_spin_lock_irqsave(tmp___12);
12612        }
12613#line 1505
12614        goto while_break___5;
12615      }
12616      while_break___12: /* CIL Label */ ;
12617      }
12618
12619      while_break___5: ;
12620#line 1505
12621      goto while_break___4;
12622    }
12623    while_break___11: /* CIL Label */ ;
12624    }
12625
12626    while_break___4: 
12627    {
12628#line 1506
12629    __cil_tmp48 = & info->rx_urbs_submitted;
12630#line 1506
12631    list_add(tmp___8, __cil_tmp48);
12632    }
12633    __Cont: 
12634#line 1483
12635    tmp___8 = tmp2;
12636#line 1483
12637    tmp2 = tmp___8->next;
12638  }
12639  while_break___8: /* CIL Label */ ;
12640  }
12641
12642  while_break___1: 
12643  {
12644#line 1508
12645  __cil_tmp49 = & info->lock;
12646#line 1508
12647  spin_unlock_irqrestore(__cil_tmp49, flags);
12648  }
12649#line 1510
12650  if (sent) {
12651    {
12652#line 1511
12653    tty_flip_buffer_push(tty);
12654    }
12655  } else {
12656
12657  }
12658  out: 
12659  {
12660#line 1513
12661  tty_kref_put(tty);
12662  }
12663#line 1514
12664  return;
12665}
12666}
12667#line 1520
12668static int whiteheat_init(void)  __attribute__((__section__(".init.text"), __no_instrument_function__)) ;
12669#line 1520
12670static int whiteheat_init(void)  __attribute__((__section__(".init.text"), __no_instrument_function__)) ;
12671#line 1520 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12672static int whiteheat_init(void) 
12673{ int retval ;
12674
12675  {
12676  {
12677#line 1523
12678  retval = usb_serial_register(& whiteheat_fake_device);
12679  }
12680#line 1524
12681  if (retval) {
12682#line 1525
12683    goto failed_fake_register;
12684  } else {
12685
12686  }
12687  {
12688#line 1526
12689  retval = usb_serial_register(& whiteheat_device);
12690  }
12691#line 1527
12692  if (retval) {
12693#line 1528
12694    goto failed_device_register;
12695  } else {
12696
12697  }
12698  {
12699#line 1529
12700  retval = usb_register(& whiteheat_driver);
12701  }
12702#line 1530
12703  if (retval) {
12704#line 1531
12705    goto failed_usb_register;
12706  } else {
12707
12708  }
12709  {
12710#line 1532
12711  printk("<6>whiteheat: v2.0:USB ConnectTech WhiteHEAT driver\n");
12712  }
12713#line 1534
12714  return (0);
12715  failed_usb_register: 
12716  {
12717#line 1536
12718  usb_serial_deregister(& whiteheat_device);
12719  }
12720  failed_device_register: 
12721  {
12722#line 1538
12723  usb_serial_deregister(& whiteheat_fake_device);
12724  }
12725  failed_fake_register: 
12726#line 1540
12727  return (retval);
12728}
12729}
12730#line 1544
12731static void whiteheat_exit(void)  __attribute__((__section__(".exit.text"), __no_instrument_function__)) ;
12732#line 1544
12733static void whiteheat_exit(void)  __attribute__((__section__(".exit.text"), __no_instrument_function__)) ;
12734#line 1544 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12735static void whiteheat_exit(void) 
12736{ 
12737
12738  {
12739  {
12740#line 1546
12741  usb_deregister(& whiteheat_driver);
12742#line 1547
12743  usb_serial_deregister(& whiteheat_fake_device);
12744#line 1548
12745  usb_serial_deregister(& whiteheat_device);
12746  }
12747#line 1549
12748  return;
12749}
12750}
12751#line 1552 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12752int init_module(void) 
12753{ int tmp___7 ;
12754
12755  {
12756  {
12757#line 1552
12758  tmp___7 = whiteheat_init();
12759  }
12760#line 1552
12761  return (tmp___7);
12762}
12763}
12764#line 1553 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12765void cleanup_module(void) 
12766{ 
12767
12768  {
12769  {
12770#line 1553
12771  whiteheat_exit();
12772  }
12773#line 1553
12774  return;
12775}
12776}
12777#line 1555 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12778static char const   __mod_author1555[87]  __attribute__((__used__, __unused__, __section__(".modinfo"),
12779__aligned__(1)))  = 
12780#line 1555
12781  {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'h', 
12782        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'G', 
12783        (char const   )'r',      (char const   )'e',      (char const   )'g',      (char const   )' ', 
12784        (char const   )'K',      (char const   )'r',      (char const   )'o',      (char const   )'a', 
12785        (char const   )'h',      (char const   )'-',      (char const   )'H',      (char const   )'a', 
12786        (char const   )'r',      (char const   )'t',      (char const   )'m',      (char const   )'a', 
12787        (char const   )'n',      (char const   )' ',      (char const   )'<',      (char const   )'g', 
12788        (char const   )'r',      (char const   )'e',      (char const   )'g',      (char const   )'@', 
12789        (char const   )'k',      (char const   )'r',      (char const   )'o',      (char const   )'a', 
12790        (char const   )'h',      (char const   )'.',      (char const   )'c',      (char const   )'o', 
12791        (char const   )'m',      (char const   )'>',      (char const   )',',      (char const   )' ', 
12792        (char const   )'S',      (char const   )'t',      (char const   )'u',      (char const   )'a', 
12793        (char const   )'r',      (char const   )'t',      (char const   )' ',      (char const   )'M', 
12794        (char const   )'a',      (char const   )'c',      (char const   )'D',      (char const   )'o', 
12795        (char const   )'n',      (char const   )'a',      (char const   )'l',      (char const   )'d', 
12796        (char const   )' ',      (char const   )'<',      (char const   )'s',      (char const   )'t', 
12797        (char const   )'u',      (char const   )'a',      (char const   )'r',      (char const   )'t', 
12798        (char const   )'m',      (char const   )'@',      (char const   )'c',      (char const   )'o', 
12799        (char const   )'n',      (char const   )'n',      (char const   )'e',      (char const   )'c', 
12800        (char const   )'t',      (char const   )'t',      (char const   )'e',      (char const   )'c', 
12801        (char const   )'h',      (char const   )'.',      (char const   )'c',      (char const   )'o', 
12802        (char const   )'m',      (char const   )'>',      (char const   )'\000'};
12803#line 1556 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12804static char const   __mod_description1556[45]  __attribute__((__used__, __unused__,
12805__section__(".modinfo"), __aligned__(1)))  = 
12806#line 1556
12807  {      (char const   )'d',      (char const   )'e',      (char const   )'s',      (char const   )'c', 
12808        (char const   )'r',      (char const   )'i',      (char const   )'p',      (char const   )'t', 
12809        (char const   )'i',      (char const   )'o',      (char const   )'n',      (char const   )'=', 
12810        (char const   )'U',      (char const   )'S',      (char const   )'B',      (char const   )' ', 
12811        (char const   )'C',      (char const   )'o',      (char const   )'n',      (char const   )'n', 
12812        (char const   )'e',      (char const   )'c',      (char const   )'t',      (char const   )'T', 
12813        (char const   )'e',      (char const   )'c',      (char const   )'h',      (char const   )' ', 
12814        (char const   )'W',      (char const   )'h',      (char const   )'i',      (char const   )'t', 
12815        (char const   )'e',      (char const   )'H',      (char const   )'E',      (char const   )'A', 
12816        (char const   )'T',      (char const   )' ',      (char const   )'d',      (char const   )'r', 
12817        (char const   )'i',      (char const   )'v',      (char const   )'e',      (char const   )'r', 
12818        (char const   )'\000'};
12819#line 1557 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12820static char const   __mod_license1557[12]  __attribute__((__used__, __unused__, __section__(".modinfo"),
12821__aligned__(1)))  = 
12822#line 1557
12823  {      (char const   )'l',      (char const   )'i',      (char const   )'c',      (char const   )'e', 
12824        (char const   )'n',      (char const   )'s',      (char const   )'e',      (char const   )'=', 
12825        (char const   )'G',      (char const   )'P',      (char const   )'L',      (char const   )'\000'};
12826#line 1559 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12827static char const   __mod_firmware1559[22]  __attribute__((__used__, __unused__, __section__(".modinfo"),
12828__aligned__(1)))  = 
12829#line 1559
12830  {      (char const   )'f',      (char const   )'i',      (char const   )'r',      (char const   )'m', 
12831        (char const   )'w',      (char const   )'a',      (char const   )'r',      (char const   )'e', 
12832        (char const   )'=',      (char const   )'w',      (char const   )'h',      (char const   )'i', 
12833        (char const   )'t',      (char const   )'e',      (char const   )'h',      (char const   )'e', 
12834        (char const   )'a',      (char const   )'t',      (char const   )'.',      (char const   )'f', 
12835        (char const   )'w',      (char const   )'\000'};
12836#line 1560 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12837static char const   __mod_firmware1560[29]  __attribute__((__used__, __unused__, __section__(".modinfo"),
12838__aligned__(1)))  = 
12839#line 1560
12840  {      (char const   )'f',      (char const   )'i',      (char const   )'r',      (char const   )'m', 
12841        (char const   )'w',      (char const   )'a',      (char const   )'r',      (char const   )'e', 
12842        (char const   )'=',      (char const   )'w',      (char const   )'h',      (char const   )'i', 
12843        (char const   )'t',      (char const   )'e',      (char const   )'h',      (char const   )'e', 
12844        (char const   )'a',      (char const   )'t',      (char const   )'_',      (char const   )'l', 
12845        (char const   )'o',      (char const   )'a',      (char const   )'d',      (char const   )'e', 
12846        (char const   )'r',      (char const   )'.',      (char const   )'f',      (char const   )'w', 
12847        (char const   )'\000'};
12848#line 1562 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12849static char const   __param_str_urb_pool_size[14]  = 
12850#line 1562
12851  {      (char const   )'u',      (char const   )'r',      (char const   )'b',      (char const   )'_', 
12852        (char const   )'p',      (char const   )'o',      (char const   )'o',      (char const   )'l', 
12853        (char const   )'_',      (char const   )'s',      (char const   )'i',      (char const   )'z', 
12854        (char const   )'e',      (char const   )'\000'};
12855#line 1562 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12856static struct kernel_param  const  __param_urb_pool_size  __attribute__((__used__,
12857__unused__, __section__("__param"), __aligned__(sizeof(void *))))  =    {__param_str_urb_pool_size, (struct kernel_param_ops  const  *)(& param_ops_int),
12858    (u16 )0, (u16 )0, {(void *)(& urb_pool_size)}};
12859#line 1562 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12860static char const   __mod_urb_pool_sizetype1562[27]  __attribute__((__used__, __unused__,
12861__section__(".modinfo"), __aligned__(1)))  = 
12862#line 1562
12863  {      (char const   )'p',      (char const   )'a',      (char const   )'r',      (char const   )'m', 
12864        (char const   )'t',      (char const   )'y',      (char const   )'p',      (char const   )'e', 
12865        (char const   )'=',      (char const   )'u',      (char const   )'r',      (char const   )'b', 
12866        (char const   )'_',      (char const   )'p',      (char const   )'o',      (char const   )'o', 
12867        (char const   )'l',      (char const   )'_',      (char const   )'s',      (char const   )'i', 
12868        (char const   )'z',      (char const   )'e',      (char const   )':',      (char const   )'i', 
12869        (char const   )'n',      (char const   )'t',      (char const   )'\000'};
12870#line 1563 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12871static char const   __mod_urb_pool_size1563[55]  __attribute__((__used__, __unused__,
12872__section__(".modinfo"), __aligned__(1)))  = 
12873#line 1563
12874  {      (char const   )'p',      (char const   )'a',      (char const   )'r',      (char const   )'m', 
12875        (char const   )'=',      (char const   )'u',      (char const   )'r',      (char const   )'b', 
12876        (char const   )'_',      (char const   )'p',      (char const   )'o',      (char const   )'o', 
12877        (char const   )'l',      (char const   )'_',      (char const   )'s',      (char const   )'i', 
12878        (char const   )'z',      (char const   )'e',      (char const   )':',      (char const   )'N', 
12879        (char const   )'u',      (char const   )'m',      (char const   )'b',      (char const   )'e', 
12880        (char const   )'r',      (char const   )' ',      (char const   )'o',      (char const   )'f', 
12881        (char const   )' ',      (char const   )'u',      (char const   )'r',      (char const   )'b', 
12882        (char const   )'s',      (char const   )' ',      (char const   )'t',      (char const   )'o', 
12883        (char const   )' ',      (char const   )'u',      (char const   )'s',      (char const   )'e', 
12884        (char const   )' ',      (char const   )'f',      (char const   )'o',      (char const   )'r', 
12885        (char const   )' ',      (char const   )'b',      (char const   )'u',      (char const   )'f', 
12886        (char const   )'f',      (char const   )'e',      (char const   )'r',      (char const   )'i', 
12887        (char const   )'n',      (char const   )'g',      (char const   )'\000'};
12888#line 1565 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12889static char const   __param_str_debug[6]  = {      (char const   )'d',      (char const   )'e',      (char const   )'b',      (char const   )'u', 
12890        (char const   )'g',      (char const   )'\000'};
12891#line 1565 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12892static struct kernel_param  const  __param_debug  __attribute__((__used__, __unused__,
12893__section__("__param"), __aligned__(sizeof(void *))))  =    {__param_str_debug, (struct kernel_param_ops  const  *)(& param_ops_bool), (u16 )420,
12894    (u16 )0, {(void *)(& debug)}};
12895#line 1565 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12896static char const   __mod_debugtype1565[20]  __attribute__((__used__, __unused__,
12897__section__(".modinfo"), __aligned__(1)))  = 
12898#line 1565
12899  {      (char const   )'p',      (char const   )'a',      (char const   )'r',      (char const   )'m', 
12900        (char const   )'t',      (char const   )'y',      (char const   )'p',      (char const   )'e', 
12901        (char const   )'=',      (char const   )'d',      (char const   )'e',      (char const   )'b', 
12902        (char const   )'u',      (char const   )'g',      (char const   )':',      (char const   )'b', 
12903        (char const   )'o',      (char const   )'o',      (char const   )'l',      (char const   )'\000'};
12904#line 1566 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12905static char const   __mod_debug1566[32]  __attribute__((__used__, __unused__, __section__(".modinfo"),
12906__aligned__(1)))  = 
12907#line 1566
12908  {      (char const   )'p',      (char const   )'a',      (char const   )'r',      (char const   )'m', 
12909        (char const   )'=',      (char const   )'d',      (char const   )'e',      (char const   )'b', 
12910        (char const   )'u',      (char const   )'g',      (char const   )':',      (char const   )'D', 
12911        (char const   )'e',      (char const   )'b',      (char const   )'u',      (char const   )'g', 
12912        (char const   )' ',      (char const   )'e',      (char const   )'n',      (char const   )'a', 
12913        (char const   )'b',      (char const   )'l',      (char const   )'e',      (char const   )'d', 
12914        (char const   )' ',      (char const   )'o',      (char const   )'r',      (char const   )' ', 
12915        (char const   )'n',      (char const   )'o',      (char const   )'t',      (char const   )'\000'};
12916#line 1584
12917void ldv_check_final_state(void)  __attribute__((__ldv_model__)) ;
12918#line 1587
12919extern void ldv_check_return_value(int res ) ;
12920#line 1590
12921extern void ldv_initialize(void) ;
12922#line 1593
12923extern int nondet_int(void) ;
12924#line 1596 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12925int LDV_IN_INTERRUPT  ;
12926#line 1629 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12927static int res_whiteheat_firmware_download_0  ;
12928#line 1709 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12929static int res_whiteheat_open_4  ;
12930#line 1599 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12931void main(void) 
12932{ struct usb_serial *var_group1 ;
12933  struct usb_device_id  const  *var_whiteheat_firmware_download_0_p1 ;
12934  struct tty_struct *var_group2 ;
12935  struct usb_serial_port *var_group3 ;
12936  unsigned char const   *var_whiteheat_write_6_p2 ;
12937  int var_whiteheat_write_6_p3 ;
12938  unsigned int var_whiteheat_ioctl_10_p1 ;
12939  unsigned long var_whiteheat_ioctl_10_p2 ;
12940  struct ktermios *var_whiteheat_set_termios_11_p2 ;
12941  int var_whiteheat_break_ctl_12_p1 ;
12942  unsigned int var_whiteheat_tiocmset_9_p1 ;
12943  unsigned int var_whiteheat_tiocmset_9_p2 ;
12944  struct urb *var_group4 ;
12945  int tmp___7 ;
12946  int ldv_s_whiteheat_fake_device_usb_serial_driver ;
12947  int ldv_s_whiteheat_device_usb_serial_driver ;
12948  int tmp___8 ;
12949  int tmp___9 ;
12950  int __cil_tmp19 ;
12951  int __cil_tmp20 ;
12952
12953  {
12954  {
12955#line 1969
12956  LDV_IN_INTERRUPT = 1;
12957#line 1978
12958  ldv_initialize();
12959#line 2000
12960  tmp___7 = whiteheat_init();
12961  }
12962#line 2000
12963  if (tmp___7) {
12964#line 2001
12965    goto ldv_final;
12966  } else {
12967
12968  }
12969#line 2002
12970  ldv_s_whiteheat_fake_device_usb_serial_driver = 0;
12971#line 2005
12972  ldv_s_whiteheat_device_usb_serial_driver = 0;
12973  {
12974#line 2009
12975  while (1) {
12976    while_continue: /* CIL Label */ ;
12977    {
12978#line 2009
12979    tmp___9 = nondet_int();
12980    }
12981#line 2009
12982    if (tmp___9) {
12983
12984    } else {
12985      {
12986#line 2009
12987      __cil_tmp19 = ldv_s_whiteheat_fake_device_usb_serial_driver == 0;
12988#line 2009
12989      if (! __cil_tmp19) {
12990
12991      } else {
12992        {
12993#line 2009
12994        __cil_tmp20 = ldv_s_whiteheat_device_usb_serial_driver == 0;
12995#line 2009
12996        if (! __cil_tmp20) {
12997
12998        } else {
12999#line 2009
13000          goto while_break;
13001        }
13002        }
13003      }
13004      }
13005    }
13006    {
13007#line 2014
13008    tmp___8 = nondet_int();
13009    }
13010#line 2016
13011    if (tmp___8 == 0) {
13012#line 2016
13013      goto case_0;
13014    } else
13015#line 2051
13016    if (tmp___8 == 1) {
13017#line 2051
13018      goto case_1;
13019    } else
13020#line 2083
13021    if (tmp___8 == 2) {
13022#line 2083
13023      goto case_2;
13024    } else
13025#line 2118
13026    if (tmp___8 == 3) {
13027#line 2118
13028      goto case_3;
13029    } else
13030#line 2150
13031    if (tmp___8 == 4) {
13032#line 2150
13033      goto case_4;
13034    } else
13035#line 2182
13036    if (tmp___8 == 5) {
13037#line 2182
13038      goto case_5;
13039    } else
13040#line 2214
13041    if (tmp___8 == 6) {
13042#line 2214
13043      goto case_6;
13044    } else
13045#line 2246
13046    if (tmp___8 == 7) {
13047#line 2246
13048      goto case_7;
13049    } else
13050#line 2278
13051    if (tmp___8 == 8) {
13052#line 2278
13053      goto case_8;
13054    } else
13055#line 2310
13056    if (tmp___8 == 9) {
13057#line 2310
13058      goto case_9;
13059    } else
13060#line 2342
13061    if (tmp___8 == 10) {
13062#line 2342
13063      goto case_10;
13064    } else
13065#line 2374
13066    if (tmp___8 == 11) {
13067#line 2374
13068      goto case_11;
13069    } else
13070#line 2406
13071    if (tmp___8 == 12) {
13072#line 2406
13073      goto case_12;
13074    } else
13075#line 2438
13076    if (tmp___8 == 13) {
13077#line 2438
13078      goto case_13;
13079    } else
13080#line 2470
13081    if (tmp___8 == 14) {
13082#line 2470
13083      goto case_14;
13084    } else
13085#line 2502
13086    if (tmp___8 == 15) {
13087#line 2502
13088      goto case_15;
13089    } else
13090#line 2534
13091    if (tmp___8 == 16) {
13092#line 2534
13093      goto case_16;
13094    } else
13095#line 2566
13096    if (tmp___8 == 17) {
13097#line 2566
13098      goto case_17;
13099    } else {
13100#line 2598
13101      goto switch_default;
13102#line 2014
13103      if (0) {
13104        case_0: 
13105#line 2019
13106        if (ldv_s_whiteheat_fake_device_usb_serial_driver == 0) {
13107          {
13108#line 2040
13109          res_whiteheat_firmware_download_0 = whiteheat_firmware_download(var_group1,
13110                                                                          var_whiteheat_firmware_download_0_p1);
13111#line 2041
13112          ldv_check_return_value(res_whiteheat_firmware_download_0);
13113          }
13114#line 2042
13115          if (res_whiteheat_firmware_download_0) {
13116#line 2043
13117            goto ldv_module_exit;
13118          } else {
13119
13120          }
13121#line 2044
13122          ldv_s_whiteheat_fake_device_usb_serial_driver = 0;
13123        } else {
13124
13125        }
13126#line 2050
13127        goto switch_break;
13128        case_1: 
13129        {
13130#line 2075
13131        whiteheat_firmware_attach(var_group1);
13132        }
13133#line 2082
13134        goto switch_break;
13135        case_2: 
13136#line 2086
13137        if (ldv_s_whiteheat_device_usb_serial_driver == 0) {
13138          {
13139#line 2107
13140          res_whiteheat_open_4 = whiteheat_open(var_group2, var_group3);
13141#line 2108
13142          ldv_check_return_value(res_whiteheat_open_4);
13143          }
13144#line 2109
13145          if (res_whiteheat_open_4) {
13146#line 2110
13147            goto ldv_module_exit;
13148          } else {
13149
13150          }
13151#line 2111
13152          ldv_s_whiteheat_device_usb_serial_driver = ldv_s_whiteheat_device_usb_serial_driver + 1;
13153        } else {
13154
13155        }
13156#line 2117
13157        goto switch_break;
13158        case_3: 
13159#line 2121
13160        if (ldv_s_whiteheat_device_usb_serial_driver == 1) {
13161          {
13162#line 2142
13163          whiteheat_close(var_group3);
13164#line 2143
13165          ldv_s_whiteheat_device_usb_serial_driver = ldv_s_whiteheat_device_usb_serial_driver + 1;
13166          }
13167        } else {
13168
13169        }
13170#line 2149
13171        goto switch_break;
13172        case_4: 
13173#line 2153
13174        if (ldv_s_whiteheat_device_usb_serial_driver == 2) {
13175          {
13176#line 2174
13177          whiteheat_release(var_group1);
13178#line 2175
13179          ldv_s_whiteheat_device_usb_serial_driver = 0;
13180          }
13181        } else {
13182
13183        }
13184#line 2181
13185        goto switch_break;
13186        case_5: 
13187        {
13188#line 2206
13189        whiteheat_attach(var_group1);
13190        }
13191#line 2213
13192        goto switch_break;
13193        case_6: 
13194        {
13195#line 2238
13196        whiteheat_write(var_group2, var_group3, var_whiteheat_write_6_p2, var_whiteheat_write_6_p3);
13197        }
13198#line 2245
13199        goto switch_break;
13200        case_7: 
13201        {
13202#line 2270
13203        whiteheat_write_room(var_group2);
13204        }
13205#line 2277
13206        goto switch_break;
13207        case_8: 
13208        {
13209#line 2302
13210        whiteheat_ioctl(var_group2, var_whiteheat_ioctl_10_p1, var_whiteheat_ioctl_10_p2);
13211        }
13212#line 2309
13213        goto switch_break;
13214        case_9: 
13215        {
13216#line 2334
13217        whiteheat_set_termios(var_group2, var_group3, var_whiteheat_set_termios_11_p2);
13218        }
13219#line 2341
13220        goto switch_break;
13221        case_10: 
13222        {
13223#line 2366
13224        whiteheat_break_ctl(var_group2, var_whiteheat_break_ctl_12_p1);
13225        }
13226#line 2373
13227        goto switch_break;
13228        case_11: 
13229        {
13230#line 2398
13231        whiteheat_tiocmget(var_group2);
13232        }
13233#line 2405
13234        goto switch_break;
13235        case_12: 
13236        {
13237#line 2430
13238        whiteheat_tiocmset(var_group2, var_whiteheat_tiocmset_9_p1, var_whiteheat_tiocmset_9_p2);
13239        }
13240#line 2437
13241        goto switch_break;
13242        case_13: 
13243        {
13244#line 2462
13245        whiteheat_chars_in_buffer(var_group2);
13246        }
13247#line 2469
13248        goto switch_break;
13249        case_14: 
13250        {
13251#line 2494
13252        whiteheat_throttle(var_group2);
13253        }
13254#line 2501
13255        goto switch_break;
13256        case_15: 
13257        {
13258#line 2526
13259        whiteheat_unthrottle(var_group2);
13260        }
13261#line 2533
13262        goto switch_break;
13263        case_16: 
13264        {
13265#line 2558
13266        whiteheat_read_callback(var_group4);
13267        }
13268#line 2565
13269        goto switch_break;
13270        case_17: 
13271        {
13272#line 2590
13273        whiteheat_write_callback(var_group4);
13274        }
13275#line 2597
13276        goto switch_break;
13277        switch_default: 
13278#line 2598
13279        goto switch_break;
13280      } else {
13281        switch_break: ;
13282      }
13283    }
13284  }
13285  while_break___0: /* CIL Label */ ;
13286  }
13287
13288  while_break: ;
13289  ldv_module_exit: 
13290  {
13291#line 2626
13292  whiteheat_exit();
13293  }
13294  ldv_final: 
13295  {
13296#line 2629
13297  ldv_check_final_state();
13298  }
13299#line 2632
13300  return;
13301}
13302}
13303#line 5 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13304void ldv_blast_assert(void) 
13305{ 
13306
13307  {
13308  ERROR: 
13309#line 6
13310  goto ERROR;
13311}
13312}
13313#line 7 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13314extern void *ldv_undefined_pointer(void) ;
13315#line 10 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13316void ldv_assume_stop(void)  __attribute__((__ldv_model_inline__)) ;
13317#line 22
13318void ldv_assume_stop(void)  __attribute__((__ldv_model_inline__)) ;
13319#line 22 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13320void ldv_assume_stop(void) 
13321{ 
13322
13323  {
13324  LDV_STOP: 
13325#line 23
13326  goto LDV_STOP;
13327}
13328}
13329#line 29 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13330int ldv_urb_state  =    0;
13331#line 31 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13332int ldv_coherent_state  =    0;
13333#line 62
13334void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
13335                         dma_addr_t *dma )  __attribute__((__ldv_model__)) ;
13336#line 62 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13337void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
13338                         dma_addr_t *dma ) 
13339{ void *arbitrary_memory ;
13340  void *tmp___7 ;
13341
13342  {
13343  {
13344#line 64
13345  while (1) {
13346    while_continue: /* CIL Label */ ;
13347    {
13348#line 64
13349    tmp___7 = ldv_undefined_pointer();
13350#line 64
13351    arbitrary_memory = tmp___7;
13352    }
13353#line 64
13354    if (! arbitrary_memory) {
13355#line 64
13356      return ((void *)0);
13357    } else {
13358
13359    }
13360#line 64
13361    ldv_coherent_state = ldv_coherent_state + 1;
13362#line 64
13363    return (arbitrary_memory);
13364#line 64
13365    goto while_break;
13366  }
13367  while_break___0: /* CIL Label */ ;
13368  }
13369
13370  while_break: ;
13371#line 65
13372  return ((void *)0);
13373}
13374}
13375#line 68
13376void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma )  __attribute__((__ldv_model__)) ;
13377#line 68 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13378void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) 
13379{ void *__cil_tmp5 ;
13380  unsigned long __cil_tmp6 ;
13381  unsigned long __cil_tmp7 ;
13382  int __cil_tmp8 ;
13383
13384  {
13385  {
13386#line 70
13387  while (1) {
13388    while_continue: /* CIL Label */ ;
13389
13390    {
13391#line 70
13392    __cil_tmp5 = (void *)0;
13393#line 70
13394    __cil_tmp6 = (unsigned long )__cil_tmp5;
13395#line 70
13396    __cil_tmp7 = (unsigned long )addr;
13397#line 70
13398    __cil_tmp8 = __cil_tmp7 != __cil_tmp6;
13399#line 70
13400    if (! __cil_tmp8) {
13401      {
13402#line 70
13403      ldv_assume_stop();
13404      }
13405    } else {
13406
13407    }
13408    }
13409#line 70
13410    if (addr) {
13411#line 70
13412      if (ldv_coherent_state >= 1) {
13413
13414      } else {
13415        {
13416#line 70
13417        ldv_blast_assert();
13418        }
13419      }
13420#line 70
13421      ldv_coherent_state = ldv_coherent_state - 1;
13422    } else {
13423
13424    }
13425#line 70
13426    goto while_break;
13427  }
13428  while_break___0: /* CIL Label */ ;
13429  }
13430
13431  while_break: ;
13432#line 71
13433  return;
13434}
13435}
13436#line 74
13437struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags )  __attribute__((__ldv_model__)) ;
13438#line 74 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13439struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) 
13440{ void *arbitrary_memory ;
13441  void *tmp___7 ;
13442  void *__cil_tmp5 ;
13443
13444  {
13445  {
13446#line 75
13447  while (1) {
13448    while_continue: /* CIL Label */ ;
13449    {
13450#line 75
13451    tmp___7 = ldv_undefined_pointer();
13452#line 75
13453    arbitrary_memory = tmp___7;
13454    }
13455#line 75
13456    if (! arbitrary_memory) {
13457      {
13458#line 75
13459      __cil_tmp5 = (void *)0;
13460#line 75
13461      return ((struct urb *)__cil_tmp5);
13462      }
13463    } else {
13464
13465    }
13466#line 75
13467    ldv_urb_state = ldv_urb_state + 1;
13468#line 75
13469    return ((struct urb *)arbitrary_memory);
13470#line 75
13471    goto while_break;
13472  }
13473  while_break___0: /* CIL Label */ ;
13474  }
13475
13476  while_break: ;
13477#line 76
13478  return ((struct urb *)0);
13479}
13480}
13481#line 79
13482void usb_free_urb(struct urb *urb )  __attribute__((__ldv_model__)) ;
13483#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13484void usb_free_urb(struct urb *urb ) 
13485{ struct urb *__cil_tmp2 ;
13486  unsigned long __cil_tmp3 ;
13487  unsigned long __cil_tmp4 ;
13488  int __cil_tmp5 ;
13489
13490  {
13491  {
13492#line 80
13493  while (1) {
13494    while_continue: /* CIL Label */ ;
13495
13496    {
13497#line 80
13498    __cil_tmp2 = (struct urb *)0;
13499#line 80
13500    __cil_tmp3 = (unsigned long )__cil_tmp2;
13501#line 80
13502    __cil_tmp4 = (unsigned long )urb;
13503#line 80
13504    __cil_tmp5 = __cil_tmp4 != __cil_tmp3;
13505#line 80
13506    if (! __cil_tmp5) {
13507      {
13508#line 80
13509      ldv_assume_stop();
13510      }
13511    } else {
13512
13513    }
13514    }
13515#line 80
13516    if (urb) {
13517#line 80
13518      if (ldv_urb_state >= 1) {
13519
13520      } else {
13521        {
13522#line 80
13523        ldv_blast_assert();
13524        }
13525      }
13526#line 80
13527      ldv_urb_state = ldv_urb_state - 1;
13528    } else {
13529
13530    }
13531#line 80
13532    goto while_break;
13533  }
13534  while_break___0: /* CIL Label */ ;
13535  }
13536
13537  while_break: ;
13538#line 81
13539  return;
13540}
13541}
13542#line 84
13543void ldv_check_final_state(void)  __attribute__((__ldv_model__)) ;
13544#line 84 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.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"
13545void ldv_check_final_state(void) 
13546{ 
13547
13548  {
13549#line 86
13550  if (ldv_urb_state == 0) {
13551
13552  } else {
13553    {
13554#line 86
13555    ldv_blast_assert();
13556    }
13557  }
13558#line 88
13559  if (ldv_coherent_state == 0) {
13560
13561  } else {
13562    {
13563#line 88
13564    ldv_blast_assert();
13565    }
13566  }
13567#line 89
13568  return;
13569}
13570}